/* ============================================================
   OFFER LANDING PAGE — "Reducere 700€ la implanturi dentare"
   Built on the site design system (tokens from style.css).
   White/green/blue card language, no black. Info from the
   official Implantodent offer page, restyled to our system.
   ============================================================ */

/* ---- hero: offer image card with floating discount badge ---- */
.ohero { position: relative; }
.ohero .phero__inner { max-width: 40rem; }
/* offer hero is content-rich — let it grow instead of clipping the H1 */
.phero.ohero { height: auto; min-height: min(74svh, 640px); }
.phero.ohero .phero__inner { padding-top: clamp(2.2rem, 5vw, 3.6rem); padding-bottom: clamp(2rem, 4vw, 3rem); }
/* stronger, taller scrim so the eyebrow + H1 keep AA contrast over bright image areas */
.phero.ohero::after {
  background:
    linear-gradient(to top, rgba(8,10,12,.88) 0%, rgba(8,10,12,.55) 45%, rgba(8,10,12,.42) 72%, rgba(8,10,12,.5) 100%),
    linear-gradient(to right, rgba(8,10,12,.62) 0%, rgba(8,10,12,.28) 46%, rgba(8,10,12,0) 72%);
}
.ohero__ctarow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem;
  margin-top: 1.6rem;
}
.ohero__phone {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  padding: .55rem .2rem;
}
.ohero__phone svg { width: 18px; height: 18px; stroke: var(--blue-sky); }
.ohero__badge {
  position: absolute;
  top: clamp(1.2rem, 3vw, 2.2rem);
  right: clamp(1.2rem, 3vw, 2.2rem);
  z-index: 3;
  display: grid;
  place-items: center;
  text-align: center;
  width: clamp(112px, 16vw, 168px);
  height: clamp(112px, 16vw, 168px);
  border-radius: 50%;
  background: linear-gradient(158deg, #37991f 0%, #2a7d1a 100%);
  color: #fff;
  box-shadow: 0 18px 44px -14px rgba(42, 125, 26, .7);
  border: 3px solid rgba(255, 255, 255, .35);
}
.ohero__badge b { font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.ohero__badge span { font-size: clamp(.6rem, 1.1vw, .74rem); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin-top: .25rem; opacity: .92; }
@media (max-width: 560px) { .ohero__badge { width: 96px; height: 96px; top: 1rem; right: 1rem; } }

/* ---- trust strip under hero ---- */
.ostrip {
  width: var(--shell);
  margin: var(--card-gap) auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--card-gap);
}
.ostrip__item {
  display: flex;
  align-items: center;
  gap: .9rem;
  background: #fff;
  border: 1px solid rgba(16, 24, 32, .06);
  border-radius: var(--r-card);
  box-shadow: var(--card-shadow);
  padding: 1.15rem 1.4rem;
}
.ostrip__ic {
  flex: none;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 13px;
  background: rgba(62, 168, 44, .12);
  color: var(--green);
}
.ostrip__ic svg { width: 22px; height: 22px; }
.ostrip__item:nth-child(2) .ostrip__ic { background: rgba(27, 111, 183, .1); color: var(--blue); }
.ostrip__t { font-weight: 800; font-size: 1.02rem; letter-spacing: -0.01em; line-height: 1.15; }
.ostrip__s { font-size: .85rem; color: var(--ink-60); margin-top: .1rem; }
@media (max-width: 780px) { .ostrip { grid-template-columns: 1fr; } }

/* ---- big offer explainer card (700€ / 10%) ---- */
.odeal {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: var(--card-gap);
}
.odeal__card {
  border-radius: var(--r-card);
  padding: clamp(1.8rem, 3.4vw, 2.8rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.odeal__card--green { background: linear-gradient(158deg, #37991f 0%, #2a7d1a 100%); color: #fff; }
.odeal__card--blue { background: linear-gradient(158deg, #2f86cf 0%, #14548f 100%); color: #fff; }
.odeal__tag {
  align-self: flex-start;
  font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em;
  color: #fff; background: rgba(255, 255, 255, .2);
  padding: .35rem .8rem; border-radius: 100px; margin-bottom: 1.1rem;
}
.odeal__big { font-size: clamp(3rem, 7vw, 4.6rem); font-weight: 800; letter-spacing: -0.04em; line-height: .95; }
.odeal__big small { font-size: .34em; font-weight: 700; letter-spacing: -0.01em; }
.odeal__lead { font-size: 1.05rem; line-height: 1.5; margin-top: .9rem; color: rgba(255, 255, 255, .88); max-width: 26ch; }
.odeal__note { font-size: .84rem; margin-top: 1.3rem; color: rgba(255, 255, 255, .68); }

/* ---- generic white section card wrapper ---- */
.ocard {
  width: var(--shell);
  margin: var(--card-gap) auto 0;
  background: #fff;
  border: 1px solid rgba(16, 24, 32, .06);
  border-radius: var(--r-card);
  box-shadow: var(--card-shadow);
  padding: clamp(2rem, 4vw, 3.4rem);
}
.osplit, .oform-card { margin-top: var(--card-gap); }
.ocard__head { max-width: 46rem; margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.ocard__head h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); letter-spacing: -0.025em; line-height: 1.08; }
.ocard__head p { color: var(--ink-60); font-size: 1.05rem; line-height: 1.55; margin-top: .7rem; }

/* ---- "ce include prețul" — 3 cards ---- */
.oinc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap); }
.oinc-card {
  background: var(--paper);
  border-radius: 20px;
  padding: 1.6rem;
  border: 1px solid rgba(16, 24, 32, .05);
}
.oinc-card__n {
  font-size: .8rem; font-weight: 800; color: var(--blue);
  letter-spacing: .06em;
}
.oinc-card h3 { font-size: 1.18rem; letter-spacing: -0.02em; margin-top: .5rem; }
.oinc-card p { color: var(--ink-60); font-size: .95rem; line-height: 1.5; margin-top: .5rem; }
@media (max-width: 780px) { .oinc-grid { grid-template-columns: 1fr; } }

/* ---- "de ce Implantodent" — stat cards ---- */
.owhy-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--card-gap);
}
.owhy-card {
  background: var(--paper);
  border: 1px solid rgba(16, 24, 32, .05);
  border-radius: 20px;
  padding: 1.5rem 1.5rem 1.6rem;
}
.owhy-card__num { font-size: clamp(1.9rem, 3.4vw, 2.5rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1; color: var(--green); }
.owhy-card:nth-child(even) .owhy-card__num { color: var(--blue); }
.owhy-card__lbl { font-size: .95rem; color: var(--ink-60); line-height: 1.4; margin-top: .55rem; }
@media (max-width: 900px) { .owhy-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---- etape (steps) ---- */
.ostep-list { display: grid; gap: var(--card-gap); }
.ostep {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1rem, 2.4vw, 1.8rem);
  align-items: start;
  padding: clamp(1.3rem, 2.6vw, 1.8rem);
  background: #fff;
  border: 1px solid rgba(16, 24, 32, .05);
  box-shadow: 0 14px 32px -20px rgba(16, 24, 32, .22);
  border-radius: 20px;
}
.ostep__n {
  flex: none;
  width: clamp(48px, 6vw, 60px); height: clamp(48px, 6vw, 60px);
  display: grid; place-items: center;
  border-radius: 15px;
  background: linear-gradient(158deg, #37991f 0%, #2a7d1a 100%);
  color: #fff; font-weight: 800; font-size: 1.3rem; letter-spacing: -0.02em;
}
.ostep:nth-child(even) .ostep__n { background: linear-gradient(158deg, #2f86cf 0%, #14548f 100%); }
.ostep h3 { font-size: 1.2rem; letter-spacing: -0.02em; }
.ostep p { color: var(--ink-60); font-size: .98rem; line-height: 1.55; margin-top: .4rem; }

/* ---- finantare (installments) card ---- */
.ofin {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--card-gap);
  align-items: stretch;
}
.ofin__box {
  min-width: 0;
  background: #fff;
  border: 1px solid rgba(16, 24, 32, .06);
  border-radius: var(--r-card);
  box-shadow: var(--card-shadow);
  padding: clamp(1.8rem, 3.4vw, 2.6rem);
}
.ofin__box .btn { white-space: normal; }

/* ---- "plată în rate" — credit-card visual + info ---- */
.rate-wrap {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1.8rem, 4vw, 3.4rem);
  align-items: center;
}
.ratecard {
  position: relative;
  width: min(370px, 100%);
  aspect-ratio: 1.6 / 1;
  border-radius: 20px;
  padding: clamp(1.3rem, 3.4vw, 1.7rem);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(130% 150% at 12% 8%, rgba(255, 255, 255, .18), transparent 46%),
    linear-gradient(135deg, #0f6b3f 0%, #14548f 100%);
  box-shadow: 0 30px 60px -24px rgba(16, 24, 32, .55), inset 0 0 0 1px rgba(255, 255, 255, .1);
}
.ratecard__sheen {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(115deg, transparent 42%, rgba(255, 255, 255, .13) 50%, transparent 58%);
}
.ratecard__top { display: flex; align-items: center; justify-content: space-between; }
.ratecard__brand { font-weight: 800; letter-spacing: .16em; font-size: .82rem; }
.ratecard__chip {
  position: relative;
  width: 46px; height: 34px; border-radius: 7px;
  background: linear-gradient(135deg, #e9cd83, #b8923f);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .18);
  flex: none;
}
.ratecard__chip::before, .ratecard__chip::after {
  content: ""; position: absolute; left: 22%; right: 22%; height: 1.5px; background: rgba(0, 0, 0, .22);
}
.ratecard__chip::before { top: 38%; }
.ratecard__chip::after { top: 62%; }
.ratecard__label { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; color: rgba(255, 255, 255, .74); }
.ratecard__big { display: block; font-size: clamp(1.7rem, 5.2vw, 2.15rem); font-weight: 800; letter-spacing: -0.02em; margin-top: .2rem; }
.ratecard__star { font-size: .5em; vertical-align: super; opacity: .8; }
.ratecard__bot { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.ratecard__num { font-size: 1.05rem; font-weight: 700; letter-spacing: .1em; }
.ratecard__partner { font-size: .72rem; line-height: 1.35; color: rgba(255, 255, 255, .74); text-align: right; }
.rate-info p { color: var(--ink-60); font-size: 1.05rem; line-height: 1.6; }
.rate-info .btn { white-space: normal; }
@media (max-width: 780px) {
  .rate-wrap { grid-template-columns: 1fr; gap: 1.6rem; }
  .ratecard { margin-inline: auto; }
}
.ofin__box--accent { background: linear-gradient(158deg, #2f86cf 0%, #14548f 100%); color: #fff; border-color: transparent; display: flex; flex-direction: column; justify-content: center; }
.ofin__box--accent h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); letter-spacing: -0.025em; line-height: 1.1; }
.ofin__box--accent p { color: rgba(255, 255, 255, .85); font-size: 1.02rem; line-height: 1.55; margin-top: .8rem; }
.ofin__pill { align-self: flex-start; margin-top: 1.4rem; background: rgba(255,255,255,.18); color: #fff; font-weight: 800; padding: .5rem 1rem; border-radius: 100px; font-size: .95rem; }
.ofin__box h3 { font-size: 1.15rem; letter-spacing: -0.02em; }
.ofin__steps { list-style: none; margin-top: 1.1rem; display: grid; gap: .9rem; }
.ofin__steps li { display: flex; gap: .8rem; align-items: flex-start; font-size: .98rem; line-height: 1.5; color: var(--ink-60); }
.ofin__steps svg { flex: none; width: 22px; height: 22px; color: var(--green); margin-top: .1rem; }
@media (max-width: 780px) { .ofin { grid-template-columns: 1fr; } }

/* ---- FAQ accordion ---- */
.ofaq-list { display: grid; gap: .8rem; }
.ofaq {
  background: #fff;
  border: 1px solid rgba(16, 24, 32, .06);
  box-shadow: 0 8px 20px -14px rgba(16, 24, 32, .16);
  border-radius: 18px;
  overflow: hidden;
}
.ofaq summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.5rem;
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
}
.ofaq summary::-webkit-details-marker { display: none; }
.ofaq summary .ofaq__ic {
  flex: none; width: 30px; height: 30px; display: grid; place-items: center;
  border-radius: 50%; background: rgba(62, 168, 44, .12); color: var(--green);
  transition: transform .3s var(--ease), background .3s;
}
.ofaq summary .ofaq__ic svg { width: 16px; height: 16px; }
.ofaq[open] summary .ofaq__ic { transform: rotate(45deg); background: var(--green); color: #fff; }
.ofaq__a { padding: 0 1.5rem 1.3rem; color: var(--ink-60); font-size: .98rem; line-height: 1.6; max-width: 60ch; }

/* ---- final CTA phones ---- */
.octa-phones { display: flex; flex-wrap: wrap; gap: 1.4rem; justify-content: center; margin-top: 1.8rem; }
.octa-phones a { color: #fff; font-weight: 700; display: inline-flex; align-items: center; gap: .5rem; }
.octa-phones a small { display: block; font-size: .72rem; font-weight: 600; color: var(--blue-sky); text-transform: uppercase; letter-spacing: .1em; }
.octa-phones svg { width: 18px; height: 18px; stroke: var(--blue-sky); }

/* ============================================================
   /implant-dentar-oferta — full campaign landing components
   (extends the shared offer system above)
   ============================================================ */

/* ---- hero highlight + benefit pills ---- */
.ohero__hl { color: var(--blue-sky); white-space: nowrap; }
.ohero__pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.3rem; }
.ohero__pill {
  display: inline-flex; align-items: center; gap: .45rem;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff; font-size: .84rem; font-weight: 600;
  padding: .4rem .8rem; border-radius: 100px;
  backdrop-filter: blur(4px);
}
.ohero__pill svg { width: 15px; height: 15px; stroke: var(--blue-sky); }
.ohero__micro { margin-top: 1rem; font-size: .88rem; color: rgba(255,255,255,.72); max-width: 42ch; }
.ohero__trust { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; margin-top: 1.1rem; font-size: .88rem; color: rgba(255, 255, 255, .9); }
.ohero__trust b { color: #fff; font-weight: 800; }
.ohero__stars { color: #F5A623; letter-spacing: 1px; font-size: .95rem; }
.ohero__sep { opacity: .45; }
.btn--ghost-light {
  background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.5);
}
.btn--ghost-light:hover { background: rgba(255,255,255,.12); color: #fff; }

/* ===== offer-first hero hierarchy — 700€ is the dominant element ===== */
.ohero__promo {
  display: inline-block; line-height: 1.35;
  font-size: .78rem; font-weight: 700; letter-spacing: .01em; color: #fff;
  background: rgba(62, 168, 44, .24); border: 1px solid rgba(126, 200, 90, .6);
  padding: .4rem .9rem; border-radius: 100px;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.ohero__promo b { white-space: nowrap; }
.ohero__promo b { font-weight: 800; }
.ohero .ohero__title { max-width: none; margin: 1.05rem 0 .8rem; }
.ohero__kicker { display: block; font-size: clamp(1.05rem, 1.5vw, 1.4rem); font-weight: 700; color: rgba(255, 255, 255, .92); line-height: 1.12; letter-spacing: -0.01em; }
.ohero__amount { display: block; font-size: clamp(3.6rem, 8.5vw, 6rem); font-weight: 800; color: var(--green); line-height: .92; letter-spacing: -0.04em; margin: .1rem 0; text-shadow: 0 3px 34px rgba(8, 10, 12, .6); }
.ohero__amount span { white-space: nowrap; }
.ohero__titletail { display: block; font-size: clamp(1.45rem, 2.9vw, 2.25rem); font-weight: 800; color: #fff; line-height: 1.08; letter-spacing: -0.02em; }
.ohero__sub { margin-top: .3rem; }
.ohero__micro2 { margin-top: 1rem; font-size: .88rem; color: rgba(255, 255, 255, .82); max-width: 46ch; line-height: 1.5; }

/* ---- trust bar ---- */
/* trust band — 4 value props with icons */
.trustband {
  width: var(--shell); margin: var(--card-gap) auto 0;
  background: #fff; border: 1px solid rgba(16, 24, 32, .06);
  border-radius: var(--r-card); box-shadow: var(--card-shadow);
  display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden;
}
.trustband__item { display: flex; align-items: center; gap: .75rem; padding: clamp(1.1rem, 2.4vw, 1.5rem) clamp(1rem, 2vw, 1.4rem); position: relative; }
.trustband__item + .trustband__item::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: rgba(16, 24, 32, .1); }
.trustband__ic { flex: none; width: 54px; height: 54px; display: grid; place-items: center; }
.trustband__ic img { width: 100%; height: 100%; object-fit: contain; display: block; }
.trustband__lbl { font-size: .92rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; }
@media (max-width: 780px) {
  .trustband { grid-template-columns: repeat(2, 1fr); }
  .trustband__item:nth-child(odd)::before { display: none; }
  .trustband__item:nth-child(3), .trustband__item:nth-child(4) { border-top: 1px solid rgba(16, 24, 32, .08); }
}
@media (max-width: 400px) { .trustband__lbl { font-size: .84rem; } .trustband__ic { width: 46px; height: 46px; } }

.trustbar {
  width: var(--shell); margin: var(--card-gap) auto 0;
  background: #fff; border: 1px solid rgba(16,24,32,.06);
  border-radius: var(--r-card); box-shadow: var(--card-shadow);
  display: grid; grid-template-columns: repeat(5, 1fr);
  overflow: hidden;
}
.trustbar__item { padding: clamp(1.1rem,2.4vw,1.6rem) clamp(1rem,2vw,1.4rem); text-align: center; position: relative; }
.trustbar__item + .trustbar__item::before {
  content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: rgba(16,24,32,.1);
}
.trustbar__num { font-size: clamp(1.25rem,2.4vw,1.7rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: var(--green); }
.trustbar__item:nth-child(even) .trustbar__num { color: var(--blue); }
.trustbar__lbl { font-size: .82rem; color: var(--ink-60); margin-top: .35rem; line-height: 1.3; }
@media (max-width: 780px) {
  .trustbar { grid-template-columns: repeat(2, 1fr); }
  .trustbar__item:nth-child(odd)::before { display: none; }
  .trustbar__item:nth-child(3)::before, .trustbar__item:nth-child(5)::before { display: none; }
  .trustbar__item { border-top: 1px solid rgba(16,24,32,.08); }
  .trustbar__item:nth-child(1), .trustbar__item:nth-child(2) { border-top: 0; }
  .trustbar__item:nth-child(5) { grid-column: 1 / -1; }
}

/* ---- benefits (2x2) ---- */
/* "potrivit pentru tine" checklist */
.ofit-list { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .85rem 1.6rem; }
.ofit-list li { display: flex; gap: .7rem; align-items: flex-start; font-size: 1.02rem; line-height: 1.4; }
.ofit-list li svg { flex: none; width: 22px; height: 22px; color: var(--green); margin-top: .12rem; }
@media (max-width: 640px) { .ofit-list { grid-template-columns: 1fr; } }

/* "potrivit pentru tine" — real photo + checklist, two columns */
.ofit { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(1.6rem, 3.6vw, 3rem); align-items: center; }
.ofit__media { border-radius: var(--r-card); overflow: hidden; aspect-ratio: 3 / 2; background: #0A0C0E; }
.ofit__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.ofit__content .ofit-list { grid-template-columns: 1fr; gap: .85rem; }
@media (max-width: 820px) {
  .ofit { grid-template-columns: 1fr; gap: 1.5rem; }
  .ofit__media { aspect-ratio: 3 / 2; }
}

/* process — 3 steps */
.oproc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap); }
.oproc { background: #fff; border: 1px solid rgba(16, 24, 32, .05); box-shadow: 0 14px 32px -20px rgba(16, 24, 32, .22); border-radius: 20px; padding: clamp(1.4rem, 2.8vw, 1.9rem); }
.oproc__n { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: linear-gradient(158deg, #37991f 0%, #2a7d1a 100%); color: #fff; font-weight: 800; font-size: 1.2rem; margin-bottom: 1rem; }
.oproc:nth-child(2) .oproc__n { background: linear-gradient(158deg, #2f86cf 0%, #14548f 100%); }
.oproc h3 { font-size: 1.15rem; letter-spacing: -0.02em; }
.oproc p { color: var(--ink-60); font-size: .96rem; line-height: 1.55; margin-top: .5rem; }
@media (max-width: 780px) { .oproc-grid { grid-template-columns: 1fr; } }

.oben-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--card-gap); }
.oben {
  display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: start;
  background: var(--paper); border: 1px solid rgba(16,24,32,.05);
  border-radius: 20px; padding: clamp(1.3rem,2.6vw,1.7rem);
}
.oben__ic {
  flex: none; width: 46px; height: 46px; display: grid; place-items: center;
  border-radius: 13px; background: rgba(62,168,44,.12); color: var(--green);
}
.oben:nth-child(even) .oben__ic { background: rgba(27,111,183,.1); color: var(--blue); }
.oben__ic svg { width: 23px; height: 23px; }
.oben h3 { font-size: 1.12rem; letter-spacing: -0.02em; }
.oben p { color: var(--ink-60); font-size: .96rem; line-height: 1.55; margin-top: .35rem; }
@media (max-width: 720px) { .oben-grid { grid-template-columns: 1fr; } }

/* ---- TotalFix editorial split ---- */
.osplit {
  width: var(--shell); margin-inline: auto;
  background: #fff; border: 1px solid rgba(16,24,32,.06);
  border-radius: var(--r-card); box-shadow: var(--card-shadow); overflow: hidden;
  display: grid; grid-template-columns: 1.05fr .95fr;
}
.osplit__body { padding: clamp(2rem,4vw,3.4rem); display: flex; flex-direction: column; justify-content: center; }
.osplit__body h2 { font-size: clamp(1.6rem,3vw,2.3rem); letter-spacing: -0.025em; line-height: 1.12; }
.osplit__body p { color: var(--ink-60); font-size: 1.02rem; line-height: 1.6; margin-top: .9rem; }
.osplit__list { list-style: none; margin: 1.3rem 0 0; display: grid; gap: .7rem; }
.osplit__list li { display: flex; gap: .7rem; align-items: center; font-size: .98rem; }
.osplit__list svg { flex: none; width: 20px; height: 20px; color: var(--green); }
.osplit__cta { margin-top: 1.8rem; }
.osplit__media { position: relative; min-height: 320px; background: #0A0C0E; }
.osplit__media img, .osplit__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 860px) {
  .osplit { grid-template-columns: 1fr; }
  .osplit__media { min-height: 260px; order: -1; }
}

/* ---- 3-tier offer cards ---- */
.otiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap); align-items: stretch; }
.otier {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid rgba(16,24,32,.08);
  border-radius: var(--r-card); box-shadow: var(--card-shadow);
  padding: clamp(1.6rem,3vw,2.2rem);
}
.otier--feature { background: linear-gradient(158deg, #37991f 0%, #2a7d1a 100%); border-color: transparent; color: #fff; }
.otier__tag { align-self: flex-start; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; padding: .35rem .8rem; border-radius: 100px; margin-bottom: 1rem; color: var(--blue); background: rgba(27,111,183,.1); }
.otier--feature .otier__tag { color: #fff; background: rgba(255,255,255,.2); }
.otier__label { font-size: 1.05rem; font-weight: 700; letter-spacing: -0.01em; }
.otier__val { font-size: clamp(1.9rem,3.6vw,2.5rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; margin-top: .5rem; color: var(--blue); }
.otier--feature .otier__val { color: #fff; }
.otier__desc { color: var(--ink-60); font-size: .96rem; line-height: 1.55; margin-top: .8rem; }
.otier--feature .otier__desc { color: rgba(255,255,255,.85); }
@media (max-width: 820px) { .otiers { grid-template-columns: 1fr; } }

/* ---- before/after wrapper on white card ---- */
.ocard .ba { margin: 0; max-width: 620px; aspect-ratio: 4 / 3; height: auto; }
.ba-wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.4rem,3vw,2.4rem); align-items: center; }
.ba-wrap__txt h3 { font-size: 1.3rem; letter-spacing: -0.02em; }
.ba-wrap__txt p { color: var(--ink-60); font-size: 1rem; line-height: 1.6; margin-top: .6rem; }
.ba-wrap__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.1rem; }
.ba-wrap__chips span { font-size: .8rem; font-weight: 700; color: var(--blue); background: rgba(27,111,183,.1); padding: .35rem .8rem; border-radius: 100px; }
@media (max-width: 820px) { .ba-wrap { grid-template-columns: 1fr; } .ocard .ba { max-width: none; } }

/* ---- accessible video modal ---- */
.vmodal { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center; padding: clamp(1rem,4vw,3rem); background: rgba(6,10,12,.82); backdrop-filter: blur(4px); }
.vmodal.open { display: flex; }
.vmodal__box { position: relative; width: auto; max-width: 100%; }
.vmodal__frame { position: relative; height: min(84svh, 780px); aspect-ratio: 9 / 16; width: auto; max-width: 100%; background: #000; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px -20px rgba(0,0,0,.7); }
.vmodal__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vmodal__close { position: absolute; top: -14px; right: -14px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: var(--ink); display: grid; place-items: center; cursor: pointer; box-shadow: 0 8px 24px -8px rgba(0,0,0,.5); }
.vmodal__close svg { width: 22px; height: 22px; }
@media (max-width: 560px) { .vmodal__close { top: -50px; right: 0; } }

/* ---- video testimonials carousel (YouTube Shorts style) ---- */
.vcar { position: relative; }
.vcar__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; flex-wrap: wrap; }
.vcar__head > .ocard__head { min-width: 0; flex: 1 1 260px; }
.vcar__nav { display: flex; gap: .5rem; }
.vcar__btn {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1.5px solid var(--line); background: #fff; color: var(--ink);
  display: grid; place-items: center; cursor: pointer;
  transition: background .25s, color .25s, border-color .25s, opacity .25s;
}
.vcar__btn:hover { background: var(--green); color: #fff; border-color: var(--green); }
.vcar__btn:disabled { opacity: .35; cursor: default; }
.vcar__btn svg { width: 20px; height: 20px; }
.vcar__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; margin: 0 calc(-1 * clamp(1rem,2vw,1.5rem)); padding: .3rem clamp(1rem,2vw,1.5rem); }
.vcar__viewport::-webkit-scrollbar { display: none; }
.vcar__track { display: flex; gap: var(--card-gap); }
.vcard {
  --vcard-w: clamp(224px, 20vw, 292px);
  flex: 0 0 var(--vcard-w); width: var(--vcard-w);
  scroll-snap-align: start;
}
.vcard__media {
  position: relative; display: block; width: 100%; aspect-ratio: 9 / 16;
  border-radius: 22px; overflow: hidden; background: #0A0C0E;
  border: 0; padding: 0; cursor: pointer; color: #fff;
}
.vcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vcard__media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vcard__grad { position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,10,12,.82) 0%, rgba(6,10,12,.1) 42%, rgba(6,10,12,.28) 100%); z-index: 1; pointer-events: none; }
.vcard.playing .vcard__grad, .vcard.playing .vcard__play, .vcard.playing .vcard__cap, .vcard.playing .vcard__brand { display: none; }
.vcard__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 2;
  width: 58px; height: 58px; border-radius: 50%;
  background: rgba(62,168,44,.95); color: #fff; display: grid; place-items: center;
  box-shadow: 0 10px 30px -8px rgba(0,0,0,.5); transition: transform .3s var(--ease);
  pointer-events: none;
}
.vcard__media:hover .vcard__play { transform: translate(-50%,-50%) scale(1.08); }
.vcard__play svg { width: 24px; height: 24px; margin-left: 3px; }
.vcard__brand { position: absolute; top: .8rem; left: .8rem; z-index: 2; display: inline-flex; align-items: center; gap: .35rem; font-size: .68rem; font-weight: 700; letter-spacing: .02em; background: rgba(255,255,255,.16); backdrop-filter: blur(6px); padding: .3rem .6rem; border-radius: 100px; }
.vcard__brand b { color: #fff; }
.vcard__brand b span:first-child { color: #fff; }
.vcard__cap { position: absolute; left: .9rem; right: .9rem; bottom: .9rem; z-index: 2; text-align: left; }
.vcard__cap b { display: block; font-size: 1rem; letter-spacing: -0.01em; }
.vcard__cap span { font-size: .82rem; color: rgba(255,255,255,.8); }
.vcar__foot { display: flex; align-items: center; gap: 1.2rem; margin-top: 1.6rem; flex-wrap: wrap; }
.vcar__foot .btn, .osplit__cta .btn, .otier .btn, .oben .btn { white-space: normal; text-align: center; }
.vcar__progress { position: relative; height: 4px; border-radius: 4px; background: rgba(16,24,32,.1); flex: 1; min-width: 140px; overflow: hidden; }
.vcar__progress span { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 4px; background: var(--green); width: 30%; transition: transform .1s linear; }
@media (max-width: 720px) {
  .vcard { --vcard-w: 74vw; }
  .vcard { max-width: 300px; }
}

/* ---- press cards ---- */
.press-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap); }
.pcard {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid rgba(16,24,32,.08);
  border-radius: 20px; overflow: hidden; box-shadow: var(--card-shadow);
}
.pcard__top {
  padding: 1rem 1.4rem; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: .8rem;
}
.pcard__pub { font-weight: 800; letter-spacing: -0.01em; font-size: 1.05rem; }
.pcard__logo { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
.pcard--ws .pcard__top { background: #0B2E4F; }
.pcard--forbes .pcard__top { background: #9E1B1F; }
.pcard--adev .pcard__top { background: #1A1A1A; }
.pcard__body { padding: 1.4rem 1.4rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.pcard__cat { font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-60); }
.pcard__title { font-size: 1.12rem; letter-spacing: -0.02em; line-height: 1.25; margin-top: .5rem; }
.pcard__desc { color: var(--ink-60); font-size: .93rem; line-height: 1.5; margin-top: .6rem; }
.pcard__cta { margin-top: auto; padding-top: 1.2rem; display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--blue); align-self: flex-start; }
.pcard__cta svg { width: 16px; height: 16px; }
.pcard__cta[aria-disabled="true"] { color: var(--ink-40); pointer-events: none; }
.pcard__cta[aria-disabled="true"]::after { content: " — link în curs de confirmare"; font-weight: 500; font-size: .78rem; }
@media (max-width: 920px) { .press-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .press-grid { grid-template-columns: 1fr; } }

/* ---- authority list (De ce Implantodent) ---- */
.oauth-list { list-style: none; display: grid; gap: 0; }
.oauth-list li { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 0; border-top: 1px solid rgba(16,24,32,.1); }
.oauth-list li:first-child { border-top: 0; }
.oauth-list .dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--blue); margin-top: .5rem; }
.oauth-list li:nth-child(even) .dot { background: var(--green); }
.oauth-list p { font-size: 1.02rem; line-height: 1.5; }
.oauth-list b { font-weight: 700; }

/* ---- form card ---- */
.oform-card {
  width: var(--shell); margin-inline: auto;
  background: #fff; border: 1px solid rgba(16,24,32,.06);
  border-radius: var(--r-card); box-shadow: var(--card-shadow);
  padding: clamp(2rem,4vw,3.4rem);
  display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.8rem,3.6vw,3rem); align-items: start;
}
.oform-card > * { min-width: 0; }
.oform-card__intro h2 { font-size: clamp(1.7rem,3.2vw,2.4rem); letter-spacing: -0.025em; line-height: 1.1; }
.oform-card__intro p { color: var(--ink-60); font-size: 1.05rem; line-height: 1.6; margin-top: .9rem; }
.oform-card__intro .oform-usp { list-style: none; margin-top: 1.6rem; display: grid; gap: .8rem; }
.oform-card__intro .oform-usp li { display: flex; gap: .7rem; align-items: center; font-size: .98rem; color: var(--ink); }
.oform-card__intro .oform-usp svg { flex: none; width: 20px; height: 20px; color: var(--green); }
.oform .form-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
.oform .field--full { grid-column: 1 / -1; }
.oform .cx-check { display: flex; width: 100%; align-items: flex-start; gap: .6rem; margin-top: 1.1rem; font-size: .92rem; line-height: 1.5; color: var(--ink-60); }
.oform .oform__submit { display: inline-flex; margin-top: 1.3rem; }
.oform__err { display: none; color: #B01116; font-size: .82rem; margin-top: .2rem; }
.field.invalid input, .field.invalid select { border-color: #B01116; box-shadow: 0 0 0 3px rgba(176,17,22,.12); }
.field.invalid .oform__err, .oform__err.show { display: block; }
.oform__legend { font-size: .8rem; color: var(--ink-60); margin-bottom: 1rem; }
.oform .req { color: #B01116; font-weight: 700; }
.oform .opt { font-weight: 500; color: var(--ink-60); }
.oform .cx-check a { color: var(--blue); font-weight: 600; text-decoration: underline; }
.oform .cx-check > span { flex: 1; min-width: 0; }
.oform .cx-check input[type="checkbox"] { margin-top: .18rem; width: 18px; height: 18px; flex: none; accent-color: var(--green); }
.oform .cx-check.invalid { color: #B01116; }
.oform .cx-check.invalid input[type="checkbox"] { outline: 2px solid #B01116; outline-offset: 2px; }
.oform__err--check { margin-top: .35rem; }
.oform__fail { color: #B01116; font-weight: 600; font-size: .9rem; margin-top: 1rem; }
.oform__fail[hidden] { display: none; }
.oform__submit { position: relative; }
.oform__submit[aria-busy="true"] { pointer-events: none; opacity: .85; }
.oform__spin { display: none; width: 18px; height: 18px; border: 2.5px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%; animation: ospin .7s linear infinite; }
.oform__submit[aria-busy="true"] .oform__spin { display: inline-block; }
.oform__loading { display: none; }
.oform__submit[aria-busy="true"] .arrow, .oform__submit[aria-busy="true"] .oform__submit-lbl { display: none; }
.oform__submit[aria-busy="true"] .oform__loading { display: inline; }
@keyframes ospin { to { transform: rotate(360deg); } }
.oform-success { display: none; text-align: center; padding: 1rem; }
.oform-card.is-sent .oform { display: none; }
.oform-card.is-sent .oform-success { display: block; }
.oform-success .tick-big { width: 60px; height: 60px; margin: 0 auto 1.2rem; border-radius: 50%; display: grid; place-items: center; background: rgba(62,168,44,.14); color: var(--green); }
.oform-success .tick-big svg { width: 30px; height: 30px; }
.oform-success h3 { font-size: 1.4rem; letter-spacing: -0.02em; }
.oform-success p { color: var(--ink-60); margin-top: .6rem; max-width: 40ch; margin-inline: auto; }
@media (max-width: 860px) { .oform-card { grid-template-columns: 1fr; } .oform .form-grid { grid-template-columns: 1fr; } }

/* ---- disclaimer note ---- */
.onote {
  width: 100%; max-width: var(--shell); margin: var(--card-gap) auto 0;
  display: flex; gap: .8rem; align-items: flex-start;
  background: #E3F0DC; border-radius: 16px; padding: 1rem 1.3rem;
  font-size: .92rem; line-height: 1.55; color: var(--ink);
}
.onote svg { flex: none; width: 20px; height: 20px; color: var(--green); margin-top: .15rem; }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  .vcard__play, .vcar__progress span, .oform__spin { transition: none !important; animation: none !important; }
  .vcar__viewport { scroll-behavior: auto; }
}

/* tiny-device safety net (below the 360px design minimum) */
@media (max-width: 359px) {
  html, body { overflow-x: hidden; }
}

/* ============================================================
   Added sections: etape w/ photos · cât costă · cazuri complexe
   · recenzii Google carousel
   ============================================================ */

/* etape with photos */
.ostep { grid-template-columns: clamp(200px, 32%, 360px) 1fr; align-items: center; }
.ostep__media { position: relative; flex: none; }
.ostep__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; display: block; }
.ostep__media .ostep__n { position: absolute; top: -12px; left: -12px; width: 44px; height: 44px; font-size: 1.1rem; border-radius: 13px; }
@media (max-width: 640px) { .ostep { grid-template-columns: 1fr; gap: 1rem; } .ostep__media img { aspect-ratio: 16 / 10; } .ostep__media .ostep__n { width: 38px; height: 38px; font-size: 1rem; top: -10px; left: -10px; } }

/* etape "see all" accordion */
.ostep-more { margin-top: .3rem; }
.ostep-more .ostep-more__body { display: grid; gap: var(--card-gap); padding: .3rem 1.5rem 1.3rem; }
@media (max-width: 560px) { .ostep-more .ostep-more__body { padding: .3rem 1rem 1.1rem; } }

/* discreet medical note (used once) */
.omed-note { font-size: .82rem; color: var(--ink-40); line-height: 1.5; margin-top: 1.4rem; }

/* header actions group (offer badge + Aplică CTA + burger) */
.header--pill .hactions { display: flex; align-items: center; gap: .6rem; justify-self: end; }
.header--pill .hbadge {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .8rem; font-weight: 700; color: var(--blue);
  background: rgba(27, 111, 183, .1); padding: .45rem .85rem;
  border-radius: 100px; white-space: nowrap;
}
.header--pill .hbadge b { font-weight: 800; }
@media (max-width: 1180px) { .header--pill .hbadge { display: none; } }

/* mobile: show the "Aplică" CTA instead of the burger (no mega-menu on phone) */
@media (max-width: 1020px) {
  .header--pill .burger { display: none; }
  .header--pill .hcta { display: inline-flex; }
}
@media (max-width: 600px) {
  .hcta__ext { display: none; } /* button becomes just "Află reducerea ↗" so it fits at 360px */
  .ohero__pills { display: none; } /* declutter the mobile hero — the 3 benefit pills are hidden on phones */
}

/* form anchor offset under the fixed header */
.oform-card { scroll-margin-top: calc(var(--header-h) + 14px); }

/* legal note under the form */
.form-note--legal { font-size: .78rem; color: var(--ink-40); margin-top: .3rem; }

/* cât costă */
.ocost-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--card-gap); align-items: start; }
.ocost__txt p { color: var(--ink-60); font-size: 1.05rem; line-height: 1.65; }
.ocost__txt p + p { margin-top: .9rem; }
.ocost__box { background: linear-gradient(158deg, #37991f 0%, #2a7d1a 100%); color: #fff; border-radius: var(--r-card); padding: clamp(1.6rem, 3.4vw, 2.4rem); }
.ocost__box h3 { font-size: 1.3rem; letter-spacing: -0.02em; }
.ocost__box > p { color: rgba(255, 255, 255, .88); margin-top: .6rem; line-height: 1.55; }
.ocost__box ul { list-style: none; margin-top: 1.1rem; display: grid; gap: .6rem; }
.ocost__box li { display: flex; gap: .6rem; align-items: center; font-size: .98rem; color: rgba(255, 255, 255, .92); }
.ocost__box li svg { flex: none; width: 18px; height: 18px; }
.ocost__box .btn { margin-top: 1.4rem; white-space: normal; }
@media (max-width: 820px) { .ocost-grid { grid-template-columns: 1fr; } }

/* cazuri complexe */
.ocase-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap); }
.ocase { background: var(--paper); border: 1px solid rgba(16, 24, 32, .05); border-radius: 20px; padding: clamp(1.4rem, 2.8vw, 1.9rem); }
.ocase__ic { width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center; background: rgba(27, 111, 183, .1); color: var(--blue); margin-bottom: 1rem; }
.ocase:nth-child(2) .ocase__ic { background: rgba(62, 168, 44, .12); color: var(--green); }
.ocase__ic svg { width: 24px; height: 24px; }
.ocase h3 { font-size: 1.15rem; letter-spacing: -0.02em; }
.ocase p { color: var(--ink-60); font-size: .96rem; line-height: 1.55; margin-top: .5rem; }
@media (max-width: 780px) { .ocase-grid { grid-template-columns: 1fr; } }

/* recenzii Google */
.greview__head { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem); flex-wrap: wrap; margin-bottom: 1.6rem; }
.greview__big { font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1; color: var(--ink); }
.greview__stars { display: flex; gap: 2px; color: #F5A623; margin-top: .3rem; }
.greview__stars svg { width: 20px; height: 20px; }
.greview__meta { font-size: .98rem; color: var(--ink-60); line-height: 1.4; }
.greview__meta b { color: var(--ink); }
.greview__cta { margin-left: auto; }
.grcard { --w: clamp(258px, 26vw, 322px); flex: 0 0 var(--w); width: var(--w); scroll-snap-align: start; background: #fff; border: 1px solid rgba(16, 24, 32, .05); box-shadow: 0 16px 38px -20px rgba(16, 24, 32, .28); border-radius: 18px; padding: 1.4rem; display: flex; flex-direction: column; }
.grcard__top { display: flex; align-items: center; gap: .75rem; }
.grcard__ph { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex: none; }
.grcard__who b { display: block; font-size: .98rem; letter-spacing: -0.01em; }
.grcard__who span { font-size: .82rem; color: var(--ink-60); }
.grcard__stars { display: flex; gap: 2px; color: #F5A623; margin: .9rem 0 .5rem; }
.grcard__stars svg { width: 16px; height: 16px; }
.grcard__quote { color: var(--ink); font-size: .97rem; line-height: 1.55; }
.grcard__g { margin-top: auto; padding-top: 1rem; display: flex; align-items: center; gap: .45rem; font-size: .8rem; color: var(--ink-60); }
.grcard__g .g { font-weight: 800; font-size: .95rem; }
.grcard__g .g b:nth-child(1){color:#4285F4} .grcard__g .g b:nth-child(2){color:#EA4335} .grcard__g .g b:nth-child(3){color:#FBBC05} .grcard__g .g b:nth-child(4){color:#4285F4} .grcard__g .g b:nth-child(5){color:#34A853} .grcard__g .g b:nth-child(6){color:#EA4335}
@media (max-width: 720px) { .grcard { --w: 78vw; max-width: 320px; } .greview__cta { margin-left: 0; width: 100%; } }

/* card-ify: offer & rate as full white cards (client: "totul în carduri") */
.ocard--plain { background: #fff; }
.ocard > .section-head { margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.ocard > .section-head .h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); letter-spacing: -0.025em; line-height: 1.08; }

/* ---- before/after disclaimer ---- */
.ba-wrap__note { font-size: .8rem; color: var(--ink-40); margin-top: .8rem; line-height: 1.45; }

/* ---- compact form ---- */
.oform-card--compact { grid-template-columns: .85fr 1.15fr; }
@media (max-width: 860px) { .oform-card--compact { grid-template-columns: 1fr; } }

/* ---- mobile form ergonomics: 16px inputs (no iOS zoom) + 48px targets ---- */
@media (max-width: 860px) {
  .oform .field input, .oform .field select, .oform .field textarea { font-size: 16px; padding: .8rem 1rem; min-height: 48px; }
  .oform .field textarea { min-height: 96px; }
  .oform .oform__submit { width: 100%; justify-content: center; min-height: 48px; }
}

/* ---- sticky mobile CTA (never on desktop) ---- */
.mcta { display: none; }
@media (max-width: 860px) {
  .mcta {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    display: flex; gap: .6rem; align-items: center;
    padding: .55rem clamp(12px, 4vw, 18px);
    padding-bottom: calc(.55rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .95);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-top: 1px solid rgba(16, 24, 32, .1);
    box-shadow: 0 -8px 24px -14px rgba(16, 24, 32, .3);
    transform: translateY(130%);
    transition: transform .35s var(--ease);
  }
  .mcta--show { transform: translateY(0); }
  .mcta__call {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: .5rem;
    padding: .8rem 1.15rem; border-radius: 100px; font-weight: 700; font-size: .95rem;
    color: var(--ink); border: 1.5px solid var(--line); background: #fff; min-height: 48px;
  }
  .mcta__call svg { width: 18px; height: 18px; stroke: var(--green); }
  .mcta__book { flex: 1; justify-content: center; min-height: 48px; padding-block: .8rem; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) { .mcta { transition: none; } }

/* ---- 3D tilt on hover (applied to card-like elements via JS on pointer devices) ---- */
.tilt3d { transition: transform .45s var(--ease), box-shadow .45s var(--ease); transform-style: preserve-3d; will-change: transform; }
.tilt3d.is-tilting { transition: transform .12s ease-out, box-shadow .12s ease-out; box-shadow: 0 34px 70px -26px rgba(16, 24, 32, .42); }
.tilt3d .vcard__media, .tilt3d img { transform: translateZ(0); }
@media (prefers-reduced-motion: reduce) {
  .tilt3d { transition: none; }
}

/* ============================================================
   CONVERSION ROUND — hero+form split, real case, reviews grid,
   cost rework, team press strip, simplified footer
   ============================================================ */

/* anchor offset under fixed header for scrolled-to sections */
.ocard, .osplit, .ohero-wrap, #clinici { scroll-margin-top: calc(var(--header-h) + 14px); }
/* the locations shell (.loc) only had margin-inline:auto — give it the same top gap as every .ocard */
#clinici { margin-top: var(--card-gap); }
/* new clinic building exteriors — per-photo framing (overrides locations.css, offer page only) */
#clinici .loc-card--bucuresti .loc-card__img { object-position: 57% center; }
#clinici .loc-card--constanta .loc-card__img { object-position: 43% center; }
#clinici .loc-card--ovidiu .loc-card__img { object-position: center 42%; }

/* ---- HERO + FORM (two columns on desktop) ---- */
.ohero-wrap {
  width: var(--shell); margin: var(--card-gap) auto 0;
  display: grid; grid-template-columns: 1fr; gap: var(--card-gap);
}
.ohero-wrap .phero.ohero { width: 100%; margin: 0; }
.ohero-wrap .oform-card--hero { width: 100%; margin: 0; }
@media (min-width: 981px) {
  .ohero-wrap { grid-template-columns: 1.04fr .96fr; align-items: stretch; }
  .ohero-wrap .phero.ohero { min-height: 0; align-items: center; }
  .ohero-wrap .phero h1 { font-size: clamp(2rem, 3.3vw, 3.1rem); }
  .ohero-wrap .phero .phero__inner { max-width: 34rem; }
}

/* hero form card — single column, tighter than the full form card */
.oform-card--hero {
  grid-template-columns: 1fr; gap: 1.1rem; align-content: start;
  padding: clamp(1.5rem, 3vw, 2.3rem);
}
.oform-card--hero .oform-card__intro { margin-bottom: 0; }
.oform-card--hero .oform-card__intro .eyebrow--dot { margin-bottom: .5rem; }
.oform-card--hero .oform-card__intro h2 { font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.18; }
.oform-card--hero .oform-card__intro p { font-size: .96rem; margin-top: .5rem; }
.oform-card--hero .oform__submit { width: 100%; justify-content: center; }
.oform-card--hero .form-note { margin-top: .7rem; }
.oform-card--hero .oform .form-grid { grid-template-columns: 1fr; }

/* ---- real case block (before/after facts) ---- */
.caz-facts { list-style: none; display: grid; gap: 0; }
.caz-facts li { display: grid; grid-template-columns: auto 1fr; gap: .95rem; align-items: center; padding: .9rem 0; border-top: 1px solid rgba(16, 24, 32, .08); }
.caz-facts li:first-child { border-top: 0; padding-top: .1rem; }
.caz-facts__ic { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: rgba(27, 111, 183, .1); color: var(--blue); }
.caz-facts li:nth-child(even) .caz-facts__ic { background: rgba(62, 168, 44, .12); color: var(--green); }
.caz-facts__ic svg { width: 22px; height: 22px; }
.caz-facts__k { display: block; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-40); }
.caz-facts__v { display: block; color: var(--ink); font-size: 1.02rem; line-height: 1.38; margin-top: .15rem; font-weight: 600; }
@media (max-width: 560px) { .caz-facts__ic { width: 40px; height: 40px; } .caz-facts__ic svg { width: 20px; height: 20px; } }
.center-start { margin-top: 1.6rem; }
.center-start .btn { white-space: normal; }

/* ---- 3-review grid (reuse .grcard, drop carousel sizing) ---- */
.greview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap); }
.greview-grid .grcard { flex: initial; width: auto; }
@media (max-width: 860px) { .greview-grid { grid-template-columns: 1fr; } }

/* ---- cost rework ---- */
.ocost__points { list-style: none; margin: 1.2rem 0 0; display: grid; gap: .7rem; }
.ocost__points li { display: flex; gap: .6rem; align-items: center; font-size: 1rem; color: var(--ink); }
.ocost__points svg { flex: none; width: 20px; height: 20px; color: var(--green); }
.ocost__side { display: flex; flex-direction: column; align-items: flex-start; gap: 1.1rem; }
.ocost__side .ratecard { width: 100%; max-width: 520px; }
.ocost__ratenote { font-size: .9rem; color: var(--ink-60); line-height: 1.55; }
.ocost__side .btn { white-space: normal; }

/* ---- TotalFix fine print ---- */
.osplit__fine { font-size: .86rem; color: var(--ink-40); margin-top: 1rem; line-height: 1.5; }

/* ---- final form trust aside ---- */
.oform-trust { margin-top: 1.6rem; display: grid; gap: 1rem; }
.oform-trust__rating { display: flex; align-items: center; gap: .5rem; font-size: .95rem; color: var(--ink); }
.oform-trust__rating b { font-weight: 800; }
.oform-trust__stars { color: #F5A623; letter-spacing: 1px; }
.oform-trust__locs { list-style: none; display: grid; gap: .5rem; }
.oform-trust__locs li { font-size: .9rem; color: var(--ink-60); line-height: 1.4; }
.oform-trust__locs b { color: var(--ink); }
.oform-trust__locs a { color: var(--blue); font-weight: 700; }
.oform-trust__note { font-size: .85rem; color: var(--ink-40); }

/* ---- team press strip ---- */
.press-strip { margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(16, 24, 32, .1); display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.2rem; }
.press-strip__lbl { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-40); }
.press-strip__item { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: var(--blue); font-size: .95rem; }
.press-strip__item svg { width: 15px; height: 15px; }

/* ---- simplified footer ---- */
.ofoot { width: var(--shell); margin: var(--card-gap) auto; }
.ofoot__card { background: #fff; border: 1px solid rgba(16, 24, 32, .06); border-radius: var(--r-card); box-shadow: var(--card-shadow); padding: clamp(1.8rem, 3.5vw, 2.8rem); }
.ofoot__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.4rem; }
.ofoot__logo img { height: 38px; width: auto; display: block; }
.ofoot__contact { display: flex; flex-direction: column; gap: .3rem; text-align: right; }
.ofoot__contact a { font-weight: 700; color: var(--ink); }
.ofoot__contact b { color: var(--blue); font-weight: 800; }
.ofoot__hours { font-size: .88rem; color: var(--ink-60); font-weight: 400; }
.ofoot__locs { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.8rem; padding-top: 1.6rem; border-top: 1px solid rgba(16, 24, 32, .1); }
.ofoot__locs li { display: flex; flex-direction: column; gap: .2rem; }
.ofoot__locs b { font-size: .98rem; }
.ofoot__locs span { font-size: .9rem; color: var(--ink-60); line-height: 1.4; }
.ofoot__legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(16, 24, 32, .1); font-size: .85rem; color: var(--ink-60); }
.ofoot__links { display: flex; gap: 1.2rem; }
.ofoot__links a { color: var(--ink-60); }
.ofoot__links a:hover { color: var(--blue); }
@media (max-width: 860px) {
  .ofoot { margin-bottom: 5.5rem; } /* clear the sticky bar */
  .ofoot__top { flex-direction: column; align-items: flex-start; }
  .ofoot__contact { text-align: left; }
  .ofoot__locs { grid-template-columns: 1fr; gap: .8rem; }
  .ofoot__legal { flex-direction: column; align-items: flex-start; }
}

/* ---- campaign validity pill (date from offerConfig.campaignEndDate) ---- */
.ocampaign {
  display: flex; align-items: center; gap: .55rem;
  font-size: .85rem; font-weight: 600; color: var(--blue); line-height: 1.4;
  background: rgba(27, 111, 183, .08); border: 1px solid rgba(27, 111, 183, .16);
  padding: .6rem .9rem; border-radius: 12px; margin-top: 1.1rem;
}
.ocampaign svg { flex: none; width: 17px; height: 17px; }
.ocampaign b { font-weight: 800; white-space: nowrap; }
.ocampaign--center { max-width: max-content; margin-inline: auto; margin-top: var(--card-gap); }

/* ---- real-case source caption + review disclaimer ---- */
.caz-source { font-size: .82rem; color: var(--ink-60); margin-top: 1rem; line-height: 1.45; }
.grcard__disc { font-size: .72rem; color: var(--ink-60); line-height: 1.4; margin-top: .5rem; }
