/* ============================================================
   Smilenzo — design tokens
   ============================================================ */
:root{
  --paper: #FBF7EE;
  --paper-deep: #F1E9D6;
  --white: #FFFFFF;
  --ink: #142433;
  --ink-soft: #62707E;
  --coral: #C1503F;
  --turquoise: #1E7A72;
  --turquoise-deep: #13544E;
  --gold: #C9973E;
  --line: #E1D6B8;
  --logo-green: #1F5C3B;
  --logo-orange: #B5541C;
  --logo-green-onDark: #4C9A72;
  --logo-orange-onDark: #E08A4C;

  --font-serif: 'Newsreader', Georgia, serif;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --wrap: 1180px;
  --radius: 14px;
  --radius-sm: 8px;
  --shadow-sm: 0 1px 3px rgba(20,36,51,0.08);
  --shadow-md: 0 10px 30px rgba(20,36,51,0.10);
  --shadow-lg: 0 20px 60px rgba(20,36,51,0.16);
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:600;
  line-height:1.15;
  margin:0 0 .5em;
  color:var(--ink);
}
h1{ font-size:clamp(2.2rem, 4.2vw, 3.6rem); font-weight:500; }
h2{ font-size:clamp(1.7rem, 3vw, 2.4rem); }
h3{ font-size:1.3rem; }
h4{ font-size:1.05rem; }
p{ margin:0 0 1em; color:var(--ink-soft); }
a{ color:inherit; text-decoration:none; }
em{ font-style:italic; color:var(--coral); }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:pointer; }
input, select, textarea{ font-family:inherit; font-size:.95rem; }
ul{ list-style:none; margin:0; padding:0; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }

/* Reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* Decorative tile band */
.tile-band{
  height:6px;
  background:repeating-linear-gradient(90deg, var(--turquoise) 0 24px, var(--coral) 24px 48px, var(--gold) 48px 72px);
}
.tile-band.gold{
  background:repeating-linear-gradient(90deg, var(--gold) 0 24px, var(--paper-deep) 24px 48px);
}

/* ============================================================
   Header / nav
   ============================================================ */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,247,238,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  max-width:var(--wrap); margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{ display:flex; align-items:center; gap:8px; }
.brand-mark{ width:30px; height:30px; color:var(--logo-green); flex:none; }
.brand-mark svg{ width:100%; height:100%; }
.brand-mark .mark-accent{ stroke:var(--logo-orange); }
.brand span{ font-family:var(--font-serif); font-size:1.35rem; font-weight:600; }
.brand-smil{ color:var(--logo-green); }
.brand-e{
  background:linear-gradient(135deg, var(--logo-green) 50%, var(--logo-orange) 50%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:var(--logo-green);
}
.brand-nzo{ color:var(--logo-orange); }

.nav-links-desktop{ flex:1; display:flex; justify-content:center; min-width:0; }
.nav-links-desktop ul{ display:flex; align-items:center; gap:26px; }
.nav-links-desktop a{
  font-size:.88rem; font-weight:500; color:var(--ink-soft);
  padding:6px 2px; border-bottom:2px solid transparent; transition:color .15s,border-color .15s;
  white-space:nowrap;
}
.nav-links-desktop a:hover{ color:var(--ink); }
.nav-links-desktop a.active{ color:var(--turquoise-deep); border-bottom-color:var(--coral); }

.nav-more{ position:relative; list-style:none; }
.nav-more-btn{
  display:flex; align-items:center; gap:5px; background:none; border:none;
  font-family:inherit; font-size:.88rem; font-weight:500; color:var(--ink-soft);
  padding:6px 2px; border-bottom:2px solid transparent; transition:color .15s,border-color .15s;
  white-space:nowrap;
}
.nav-more-btn svg{ width:14px; height:14px; transition:transform .15s; }
.nav-more-btn:hover{ color:var(--ink); }
.nav-more-btn.active{ color:var(--turquoise-deep); border-bottom-color:var(--coral); }
.nav-more.open .nav-more-btn svg{ transform:rotate(180deg); }
.nav-more-dropdown{
  position:absolute; left:50%; top:calc(100% + 12px); transform:translate(-50%,-6px);
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md); padding:6px; min-width:170px;
  display:flex; flex-direction:column; gap:2px;
  opacity:0; pointer-events:none; transition:opacity .15s, transform .15s;
}
.nav-more.open .nav-more-dropdown{ opacity:1; pointer-events:auto; transform:translate(-50%,0); }
.nav-more-dropdown a{
  text-align:left; padding:8px 10px; border-radius:6px; font-size:.86rem;
  font-weight:500; color:var(--ink); white-space:nowrap; border-bottom:none;
}
.nav-more-dropdown a:hover{ background:var(--paper-deep); }
.nav-more-dropdown a.active{ color:var(--turquoise-deep); background:#F1F8F6; }

.nav-right-group{ display:flex; align-items:center; gap:14px; }

.lang-switch{ position:relative; }
.lang-btn{
  display:flex; align-items:center; gap:6px; background:var(--paper-deep);
  border:1px solid var(--line); border-radius:999px; padding:7px 12px;
  color:var(--ink); font-size:.82rem; font-weight:600;
}
.lang-btn svg{ width:16px; height:16px; }
.lang-dropdown{
  position:absolute; right:0; top:calc(100% + 8px);
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md); padding:6px; min-width:150px;
  display:flex; flex-direction:column; gap:2px;
  opacity:0; pointer-events:none; transform:translateY(-6px);
  transition:opacity .15s, transform .15s;
}
.lang-switch.open .lang-dropdown{ opacity:1; pointer-events:auto; transform:translateY(0); }
.lang-dropdown button{
  text-align:left; background:none; border:none; padding:8px 10px; border-radius:6px;
  font-size:.86rem; color:var(--ink);
}
.lang-dropdown button:hover{ background:var(--paper-deep); }

.menu-btn{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; background:none; border:1px solid var(--line); border-radius:8px;
}
.menu-btn span{ height:2px; width:18px; margin:0 auto; background:var(--ink); border-radius:2px; transition:transform .2s, opacity .2s; }
.menu-btn[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-btn[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-panel{
  display:none; flex-direction:column; padding:6px 24px 18px; gap:2px;
  border-top:1px solid var(--line);
}
.mobile-panel.open{ display:flex; }
.mobile-panel a{ padding:11px 4px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--line); font-size:.94rem; }
.mobile-panel a:last-child{ border-bottom:none; }

/* ============================================================
   Pages
   ============================================================ */
.page[hidden]{ display:none; }

/* ============================================================
   Hero
   ============================================================ */
.hero{ padding:64px 0 40px; }
.hero-grid{
  display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:start;
}
.eyebrow{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--turquoise-deep); font-weight:600; margin-bottom:14px;
}
.lead{ font-size:1.08rem; max-width:52ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin:22px 0 30px; }
.btn-primary{
  background:var(--coral); color:var(--white); padding:13px 24px; border-radius:999px;
  font-weight:600; font-size:.92rem; box-shadow:var(--shadow-sm); transition:transform .15s, box-shadow .15s, background .15s;
  display:inline-block;
}
.btn-primary:hover{ background:#a8402f; transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn-ghost{
  border:1.5px solid var(--ink); color:var(--ink); padding:12px 22px; border-radius:999px;
  font-weight:600; font-size:.92rem; transition:background .15s, color .15s;
  display:inline-block;
}
.btn-ghost:hover{ background:var(--ink); color:var(--paper); }

.trust-strip{ display:flex; flex-direction:column; gap:10px; }
.trust-item{ display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--ink-soft); }
.trust-item .dot{ width:7px; height:7px; border-radius:50%; background:var(--turquoise); flex:none; }

/* Boarding-pass card */
.pass{
  background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow-lg);
  overflow:hidden; border:1px solid var(--line);
}
.pass-main{ padding:26px 26px 22px; }
.pass-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.pass-title{ font-family:var(--font-serif); font-size:1.15rem; font-weight:600; }
.pass-tag{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; color:var(--turquoise-deep);
  background:#E4F1EE; padding:4px 9px; border-radius:5px; font-weight:600;
}
.pass-sub{ font-size:.84rem; margin-bottom:20px; }
.pass-route{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.pass-route .code{ font-family:var(--font-mono); font-size:1.5rem; font-weight:700; color:var(--ink); letter-spacing:.02em; }
.pass-route .city{ font-size:.78rem; color:var(--ink-soft); }
.line-icon{
  flex:1; height:1.5px; margin:0 16px; position:relative;
  background:repeating-linear-gradient(90deg, var(--ink-soft) 0 6px, transparent 6px 12px);
}
.line-icon::after{
  content:"✈"; position:absolute; left:50%; top:50%; transform:translate(-50%,-58%);
  font-size:.95rem; color:var(--turquoise-deep); background:var(--white); padding:0 4px;
}
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:.78rem; font-weight:600; color:var(--ink-soft); margin-bottom:6px; }
.field select, .field input, .field textarea{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px;
  background:var(--paper); color:var(--ink); font-size:.92rem; transition:border-color .15s;
}
.field select:focus, .field input:focus, .field textarea:focus{ outline:none; border-color:var(--turquoise); }
.field textarea{ resize:vertical; min-height:90px; }

.perforation{
  position:relative; height:0; border-top:2px dashed var(--line);
}
.perforation::before, .perforation::after{
  content:""; position:absolute; top:-11px; width:22px; height:22px; border-radius:50%; background:var(--paper);
}
.perforation::before{ left:-11px; }
.perforation::after{ right:-11px; }

.pass-stub{
  background:var(--paper-deep); padding:20px 26px; display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.stub-label{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; color:var(--ink-soft); text-transform:uppercase; }
.stub-value{ font-family:var(--font-serif); font-size:1.9rem; font-weight:600; color:var(--coral); margin:2px 0 6px; }
.estimate-note{ font-size:.72rem; color:var(--ink-soft); max-width:26ch; margin:0; }
.stub-barcode{ display:flex; align-items:flex-end; gap:3px; flex:none; }
.stub-barcode span{ width:3px; background:var(--ink); display:block; }

/* Clinic illustration */
.clinic-scene{
  margin:44px auto 0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md);
}
.clinic-scene svg{ width:100%; height:auto; display:block; }
.clinic-scene img{ width:100%; height:auto; display:block; }

.photo-banner{
  margin-bottom:44px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md);
  border:1px solid var(--line); max-height:320px;
}
.photo-banner img{ width:100%; height:100%; max-height:320px; object-fit:cover; display:block; }

/* ============================================================
   Assure strip
   ============================================================ */
.assure-strip{ background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:44px; padding:28px 0; }
.assure-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.assure-item{ display:flex; align-items:center; gap:12px; font-size:.85rem; font-weight:500; }
.icon-medallion{
  width:38px; height:38px; border-radius:50%; background:var(--paper-deep); flex:none;
  display:flex; align-items:center; justify-content:center;
}
.icon-medallion svg{ width:20px; height:20px; }

/* ============================================================
   Quote section
   ============================================================ */
.quote-section{ background:var(--ink); padding:64px 0; margin-top:0; }
.quote-section .eyebrow{ color:var(--gold); }
.quote-section p{ color:#AEB9C4; max-width:56ch; }
.quote-form{
  margin-top:32px; background:var(--paper); border-radius:var(--radius); padding:30px;
  display:grid; grid-template-columns:repeat(2,1fr); gap:18px 20px;
}
.field-full{ grid-column:1 / -1; }
.quote-submit{
  background:var(--coral); color:var(--white); border:none; padding:14px 28px; border-radius:999px;
  font-weight:600; font-size:.94rem; transition:background .15s, transform .15s;
}
.quote-submit:hover{ background:#a8402f; transform:translateY(-1px); }
.form-success{
  display:none; margin-top:14px; font-size:.85rem; color:var(--turquoise-deep); font-weight:500;
  background:#E4F1EE; padding:12px 14px; border-radius:8px;
}
.form-success.show{ display:block; }
.form-error{
  display:none; margin-top:14px; font-size:.85rem; color:#8A2E1F; font-weight:500;
  background:#FBEAE7; padding:12px 14px; border-radius:8px;
}
.form-error.show{ display:block; }
.quote-submit[disabled], .review-submit[disabled]{ opacity:.6; cursor:not-allowed; }

/* ============================================================
   Section head (generic)
   ============================================================ */
section{ padding:72px 0; }
.section-head{ max-width:70ch; margin-bottom:44px; }
.section-head p{ font-size:1rem; }

/* ============================================================
   Verification / stamps
   ============================================================ */
.stamp-page{ display:flex; flex-direction:column; gap:0; }
.stamp-row{
  display:grid; grid-template-columns:120px 260px 1fr; align-items:center; gap:24px;
  padding:22px 0; border-bottom:1px dashed var(--line);
}
.stamp-row:first-child{ border-top:1px dashed var(--line); }
.stamp-circle{
  width:76px; height:76px; border-radius:50%; border:2px solid var(--coral);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  transform:rotate(-6deg);
}
.stamp-circle svg{ width:26px; height:26px; }
.stamp-code{ font-family:var(--font-mono); font-size:.6rem; font-weight:700; color:var(--coral); letter-spacing:.04em; }
.stamp-title{ font-family:var(--font-serif); font-size:1.15rem; font-weight:600; }
.stamp-detail{ font-size:.88rem; margin:0; }

.steps{
  max-width:var(--wrap); margin:0 auto; padding:0 24px 72px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  align-items:start;
}
.step{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px;
}
.step-num{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; color:var(--turquoise-deep); font-weight:700; margin:14px 0 6px; }
.step h3{ font-size:1.1rem; margin-bottom:6px; }
.step p{ font-size:.87rem; margin:0; }

/* ============================================================
   Tariff (treatments)
   ============================================================ */
.tariff-groups{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; align-items:start; }
.tariff-group{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.tariff-group h3{ margin-bottom:14px; padding-bottom:12px; border-bottom:2px solid var(--gold); }
.tariff-line{
  display:grid; grid-template-columns:1fr auto; gap:2px 12px; padding:11px 0; border-bottom:1px solid var(--line);
}
.tariff-line:last-child{ border-bottom:none; }
.t-name{ font-weight:600; font-size:.88rem; grid-column:1; }
.t-desc{ font-size:.76rem; color:var(--ink-soft); grid-column:1; }
.t-price{ font-family:var(--font-mono); font-size:.82rem; font-weight:700; color:var(--turquoise-deep); grid-column:2; grid-row:1 / span 2; align-self:center; white-space:nowrap; }

/* ============================================================
   Compare
   ============================================================ */
.cmp-block{ margin-bottom:52px; }
.cmp-block:last-of-type{ margin-bottom:28px; }
.cmp-block-head{ display:flex; gap:18px; align-items:flex-start; margin-bottom:18px; }
.cmp-num{ font-family:var(--font-mono); font-size:1.6rem; font-weight:700; color:var(--line); }
.cmp-block-head p{ margin:0; font-size:.88rem; }
.cmp-select-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.cmp-chip{
  background:var(--white); border:1px solid var(--line); border-radius:999px; padding:8px 16px;
  font-size:.82rem; font-weight:600; color:var(--ink-soft); transition:all .15s;
}
.cmp-chip:hover{ border-color:var(--turquoise); color:var(--ink); }
.cmp-chip.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.cmp-table{ display:flex; flex-direction:column; gap:10px; }
.cmp-row{
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:"market price" "bar bar";
  align-items:center; column-gap:14px; row-gap:9px;
  background:var(--white); padding:15px 20px; border:1px solid var(--line); border-radius:10px;
  transition:border-color .15s, box-shadow .15s, transform .15s;
}
.cmp-row:hover{ box-shadow:var(--shadow-sm); }
.cmp-row.highlight{
  border-color:var(--turquoise); background:#F1F8F6;
  box-shadow:0 6px 20px rgba(30,122,114,0.12);
}
.cmp-market{ grid-area:market; display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.9rem; font-weight:600; }
.cmp-market .flag{
  font-family:var(--font-mono); font-size:.66rem; color:var(--ink-soft); font-weight:700;
  background:var(--paper-deep); padding:3px 7px; border-radius:4px; letter-spacing:.03em;
}
.cmp-row.highlight .cmp-market .flag{ color:var(--turquoise-deep); background:#DCEEEB; }
.cmp-save{
  font-family:var(--font-mono); font-size:.64rem; font-weight:700; letter-spacing:.04em;
  color:var(--turquoise-deep); background:#DCEEEB; padding:3px 8px; border-radius:999px;
}
.cmp-price{ grid-area:price; font-family:var(--font-mono); font-weight:700; font-size:.94rem; text-align:right; white-space:nowrap; }
.cmp-row.highlight .cmp-price{ color:var(--turquoise-deep); }
.cmp-bar-wrap{ grid-area:bar; display:block; }
.cmp-bar-track{
  display:block; width:100%; height:11px; border-radius:6px; background:var(--paper-deep); overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(20,36,51,0.06);
}
.cmp-bar{
  display:block; height:100%; border-radius:6px; min-width:10px;
  background:linear-gradient(90deg, #9AA7B0, var(--ink-soft));
  transition:width .5s cubic-bezier(.22,.9,.3,1);
}
.cmp-row.highlight .cmp-bar{ background:linear-gradient(90deg, var(--turquoise), var(--turquoise-deep)); }
.cmp-note{ font-size:.74rem; color:var(--ink-soft); max-width:80ch; margin-top:8px; }

/* ============================================================
   Doctors
   ============================================================ */
.gallery-notice, .review-notice{
  background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:16px 18px; font-size:.85rem; color:var(--ink-soft); margin-bottom:32px;
}
.gallery-notice strong, .review-notice strong{ color:var(--ink); }
.doctors-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.doc-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:22px; text-align:center; }
.doc-avatar{
  width:64px; height:64px; border-radius:50%; background:var(--paper-deep); margin:0 auto 14px;
  display:flex; align-items:center; justify-content:center;
}
.doc-avatar svg{ width:30px; height:30px; }
.doc-name{ font-family:var(--font-serif); font-weight:600; font-size:1.02rem; }
.doc-spec{ font-size:.76rem; color:var(--turquoise-deep); font-weight:600; margin:2px 0 8px; }
.doc-body p{ font-size:.78rem; margin:0; }

/* ============================================================
   Gallery
   ============================================================ */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:44px; }
.gallery-slot{
  background:var(--white); border:1px dashed var(--line); border-radius:var(--radius); padding:30px 18px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; min-height:170px; justify-content:center;
}
.gallery-slot .icon{ width:34px; height:34px; }
.case-tag{ font-family:var(--font-mono); font-size:.68rem; font-weight:700; color:var(--coral); letter-spacing:.04em; }
.gallery-slot span{ font-size:.78rem; color:var(--ink-soft); }

.ba-wrap{ max-width:640px; margin:0 auto; }
.ba-slider{
  position:relative; height:220px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow-md);
}
.ba-side{ position:absolute; inset:0; }
.ba-side svg{ width:100%; height:100%; display:block; }
.ba-after{ clip-path:inset(0 0 0 50%); }
.ba-handle-line{ position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--white); box-shadow:0 0 0 1px rgba(0,0,0,.15); pointer-events:none; }
.ba-label{
  position:absolute; top:10px; font-family:var(--font-mono); font-size:.65rem; font-weight:700; letter-spacing:.06em;
  background:rgba(20,36,51,0.75); color:var(--white); padding:4px 9px; border-radius:4px;
}
.ba-label.before{ left:10px; }
.ba-label.after{ right:10px; }
.ba-range{
  position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; appearance:none;
}
.ba-caption{ text-align:center; font-size:.76rem; color:var(--ink-soft); margin-top:12px; }

/* ============================================================
   Guide
   ============================================================ */
.guide-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:start; }
.guide-list{ display:flex; flex-direction:column; gap:26px; }
.guide-item{ display:flex; gap:16px; }
.g-icon{
  width:42px; height:42px; border-radius:10px; background:var(--paper-deep); flex:none;
  display:flex; align-items:center; justify-content:center;
}
.g-icon svg{ width:22px; height:22px; }
.guide-item h4{ margin-bottom:4px; }
.guide-item p{ font-size:.88rem; margin:0; }
.guide-map-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-md);
}
.guide-map-card svg{ width:100%; height:auto; display:block; }
.guide-map-card iframe{ width:100%; height:340px; display:block; }
.guide-map-caption{
  font-family:var(--font-mono); font-size:.68rem; color:var(--ink-soft); padding:10px 16px;
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.guide-map-link{ color:var(--turquoise-deep); font-weight:600; white-space:nowrap; }
.guide-map-link:hover{ text-decoration:underline; }

/* ============================================================
   Blog
   ============================================================ */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.blog-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:24px; display:flex; flex-direction:column; }
.blog-tag{ font-family:var(--font-mono); font-size:.66rem; font-weight:700; letter-spacing:.06em; color:var(--gold); text-transform:uppercase; margin-bottom:10px; }
.blog-card h4{ font-size:1.05rem; margin-bottom:8px; }
.blog-card p{ font-size:.85rem; flex:1; }
.blog-read{ font-size:.82rem; font-weight:600; color:var(--turquoise-deep); margin-top:6px; }
.blog-read:hover{ text-decoration:underline; }

/* ============================================================
   Reviews
   ============================================================ */
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:52px; }
.review-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
.review-stars{ color:var(--gold); letter-spacing:2px; margin-bottom:10px; }
.review-card .quote{ font-style:italic; font-size:.9rem; color:var(--ink); margin-bottom:10px; }
.review-meta{ font-size:.74rem; color:var(--ink-soft); }
.review-form{ max-width:640px; margin:0 auto; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:30px; }
.review-form h3{ margin-bottom:4px; }
.review-form-sub{ font-size:.85rem; color:var(--ink-soft); margin-bottom:22px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.star-picker{ display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px; font-size:1.5rem; }
.star-picker span{ color:var(--line); cursor:pointer; transition:color .1s; }
.star-picker span.active, .star-picker span:hover, .star-picker span:hover ~ span{ color:var(--gold); }
.review-submit{
  background:var(--turquoise-deep); color:var(--white); border:none; padding:13px 26px; border-radius:999px;
  font-weight:600; font-size:.9rem; margin-top:6px;
}
.review-form-note{ font-size:.72rem; color:var(--ink-soft); margin-top:14px; }
.review-thanks{
  display:none; margin-top:14px; font-size:.85rem; color:var(--turquoise-deep); font-weight:500;
  background:#E4F1EE; padding:12px 14px; border-radius:8px;
}
.review-thanks.show{ display:block; }

/* ============================================================
   FAQ
   ============================================================ */
.faq-list{ max-width:820px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item:first-child{ border-top:1px solid var(--line); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:none; border:none; padding:20px 2px; text-align:left; font-size:1rem; font-weight:600; color:var(--ink);
}
.faq-q .plus{ color:var(--coral); font-size:1.3rem; font-weight:400; transition:transform .2s; flex:none; }
.faq-item.open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq-item.open .faq-a{ max-height:220px; }
.faq-a-inner{ padding:0 2px 20px; font-size:.9rem; color:var(--ink-soft); }

/* ============================================================
   Partners
   ============================================================ */
.partner-benefits{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-bottom:52px; }
.partner-benefit{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
.partner-benefit h4{ margin:12px 0 6px; font-size:1rem; }
.partner-benefit p{ font-size:.84rem; margin:0; }
.partner-split{ display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.partner-model{ background:var(--ink); color:var(--paper); border-radius:var(--radius); padding:28px; }
.partner-model h4{ color:var(--paper); margin-bottom:16px; }
.model-row{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.12); font-size:.86rem; }
.model-row:last-child{ border-bottom:none; }
.model-row .label{ color:#AEB9C4; }
.model-row .val{ font-weight:600; font-family:var(--font-mono); font-size:.82rem; }
.partner-form-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:28px; }
.calc-sub{ font-size:.85rem; margin-bottom:20px; }

/* ============================================================
   Footer
   ============================================================ */
footer{ background:var(--ink); color:#AEB9C4; padding:64px 0 24px; margin-top:60px; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:56px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.12); }
.foot-brand{ font-family:var(--font-serif); font-size:1.4rem; font-weight:600; margin-bottom:14px; }
.foot-brand .brand-smil{ color:var(--logo-green-onDark); }
.foot-brand .brand-e{
  background:linear-gradient(135deg, var(--logo-green-onDark) 50%, var(--logo-orange-onDark) 50%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:var(--logo-green-onDark);
}
.foot-brand .brand-nzo{ color:var(--logo-orange-onDark); }
.foot-note{ font-size:.85rem; max-width:42ch; }
.foot-newsletter{ display:flex; gap:8px; margin:18px 0 8px; max-width:360px; }
.foot-newsletter input{
  flex:1; padding:11px 12px; border-radius:8px; border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06); color:var(--paper);
}
.foot-newsletter input::placeholder{ color:#7C8894; }
.foot-newsletter button{
  background:var(--coral); color:var(--white); border:none; padding:0 20px; border-radius:8px; font-weight:600; font-size:.86rem;
}
.nl-success{ display:none; font-size:.78rem; color:#8FD6C9; margin-bottom:14px; }
.nl-success.show{ display:block; }
.foot-social{ display:flex; gap:10px; }
.foot-social a{
  width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
}
.foot-social svg{ width:17px; height:17px; }
.foot-links{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.foot-col h5{ color:var(--paper); font-family:var(--font-sans); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; margin:0 0 14px; font-weight:700; }
.foot-col a{ display:block; font-size:.86rem; padding:6px 0; }
.foot-col a:hover{ color:var(--paper); }
.foot-bottom{ font-size:.76rem; padding-top:22px; color:#7C8894; }
.foot-bottom .notranslate{ color:#AEB9C4; }

/* ============================================================
   Sticky CTA (mobile)
   ============================================================ */
.sticky-cta{ display:none; }

/* ============================================================
   Floating chat widget
   ============================================================ */
.fab-stack{ position:fixed; right:22px; bottom:22px; z-index:200; display:flex; flex-direction:column; align-items:flex-end; gap:14px; }
.fab{
  width:56px; height:56px; border-radius:50%; background:var(--coral); color:var(--white); border:none;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg);
  transition:transform .15s;
}
.fab:hover{ transform:scale(1.06); }
.fab svg{ width:24px; height:24px; }
.chat-panel{
  display:none; flex-direction:column; width:320px; max-width:calc(100vw - 44px); height:420px;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg); overflow:hidden;
}
.chat-panel.open{ display:flex; }
.chat-head{
  background:var(--ink); color:var(--paper); padding:14px 16px; display:flex; align-items:center; justify-content:space-between; font-size:.92rem;
}
.chat-head button{ background:none; border:none; color:var(--paper); font-size:1rem; }
.chat-body{ flex:1; overflow-y:auto; padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
.chat-bubble{
  background:var(--paper-deep); padding:10px 12px; border-radius:12px 12px 12px 2px; font-size:.85rem; max-width:88%;
}
.chat-bubble.user{ align-self:flex-end; background:var(--turquoise-deep); color:var(--white); border-radius:12px 12px 2px 12px; }
.chat-foot{ display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); }
.chat-foot input{ flex:1; border:1px solid var(--line); border-radius:8px; padding:9px 10px; font-size:.85rem; }
.chat-foot button{ background:var(--coral); color:var(--white); border:none; border-radius:8px; padding:0 14px; font-size:.85rem; font-weight:600; }
.chat-demo-note{ font-size:.68rem; color:var(--ink-soft); text-align:center; padding:0 12px 10px; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1080px){
  .nav-links-desktop{ display:none; }
  .menu-btn{ display:flex; }
  .hero-grid{ grid-template-columns:1fr; }
  .assure-row{ grid-template-columns:repeat(2,1fr); }
  .tariff-groups{ grid-template-columns:1fr 1fr; }
  .doctors-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .blog-grid{ grid-template-columns:1fr 1fr; }
  .review-grid{ grid-template-columns:1fr 1fr; }
  .guide-grid{ grid-template-columns:1fr; }
  .partner-benefits{ grid-template-columns:1fr 1fr; }
  .partner-split{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; gap:36px; }
  .steps{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 900px){
  .stamp-row{
    grid-template-columns:72px 1fr;
    grid-template-rows:auto auto;
    column-gap:20px; row-gap:6px;
    padding:20px 0;
  }
  .stamp-circle{ grid-column:1; grid-row:1 / span 2; width:64px; height:64px; }
  .stamp-circle svg{ width:22px; height:22px; }
  .stamp-title{ grid-column:2; grid-row:1; }
  .stamp-detail{ grid-column:2; grid-row:2; }
}
@media (max-width: 720px){
  .quote-form{ grid-template-columns:1fr; }
  .tariff-groups{ grid-template-columns:1fr; }
  .doctors-grid{ grid-template-columns:1fr 1fr; }
  .gallery-grid{ grid-template-columns:1fr; }
  .blog-grid{ grid-template-columns:1fr; }
  .review-grid{ grid-template-columns:1fr; }
  .partner-benefits{ grid-template-columns:1fr; }
  .foot-links{ grid-template-columns:1fr 1fr; }
  .field-row{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .stamp-row{
    grid-template-columns:1fr; grid-template-rows:auto auto; text-align:left; gap:10px;
  }
  .stamp-circle{ grid-column:1; grid-row:auto; transform:none; width:76px; height:76px; }
  .stamp-circle svg{ width:26px; height:26px; }
  .stamp-title{ grid-column:1; grid-row:auto; }
  .stamp-detail{ grid-column:1; grid-row:auto; }
  section{ padding:52px 0; }
  .hero{ padding:36px 0 24px; }
  .sticky-cta{
    display:block; position:fixed; left:16px; right:16px; bottom:16px; z-index:150;
  }
  .sticky-cta a{
    display:block; text-align:center; background:var(--coral); color:var(--white); padding:15px; border-radius:999px;
    font-weight:600; box-shadow:var(--shadow-lg);
  }
  .fab-stack{ bottom:88px; }
}
@media (max-width: 420px){
  .steps{ padding-left:16px; padding-right:16px; }
}
