/* ============================================================
   STIGMA ERAKLIINIK — theme stylesheet
   Ported verbatim from the approved single-page mockup.
   Design tokens live in :root here (drive the locked marketing page);
   theme.json mirrors the palette+fonts so the Gutenberg blog is on-brand.
   Fix vs mockup: --rose-400 defined (was referenced for the hero underline but missing).
   ============================================================ */
/* ============================================================
   STIGMA ERAKLIINIK — design tokens
   ============================================================ */
:root{
  /* brand — calm medical teal */
  --teal-900:#0a3a36;
  --teal-800:#0e4d47;
  --teal-700:#12655c;   /* primary */
  --teal-600:#177a6e;
  --teal-500:#2a978a;
  --teal-200:#bfe1db;
  --teal-100:#dcefec;
  --teal-50:#f1f8f6;
  /* accent — refined rose / magenta */
  --rose-700:#9e3a5c;
  --rose-600:#b14a6c;
  --rose-500:#c4607f;
  --rose-400:#d7799a;
  --rose-200:#f0d3dd;
  --rose-100:#f7e6ec;
  --rose-50:#fcf3f6;
  /* neutrals */
  --ink:#13201f;
  --body:#3c4a48;
  --muted:#5a6866;
  --line:#e3ebe9;
  --line-soft:#eef3f1;
  --bg:#f7faf9;
  --surface:#ffffff;
  --surface-2:#fbfdfc;

  /* type */
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-xs:0.8125rem;   /* 13 */
  --fs-sm:0.9375rem;   /* 15 */
  --fs-base:1.0625rem; /* 17 */
  --fs-md:1.1875rem;   /* 19 */
  --fs-lg:1.375rem;    /* 22 */
  --fs-xl:1.75rem;     /* 28 */
  --fs-2xl:2.25rem;    /* 36 */
  --fs-3xl:3rem;       /* 48 */

  /* spacing (4px rhythm) */
  --s-1:4px;  --s-2:8px;  --s-3:12px; --s-4:16px; --s-5:20px;
  --s-6:24px; --s-8:32px; --s-10:40px;--s-12:48px;--s-14:56px;
  --s-16:64px;--s-20:80px;--s-24:96px;--s-32:128px;

  /* radius */
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;

  /* shadow */
  --sh-sm:0 1px 2px rgba(14,77,71,.06), 0 1px 3px rgba(14,77,71,.05);
  --sh-md:0 6px 16px rgba(14,77,71,.07), 0 2px 6px rgba(14,77,71,.05);
  --sh-lg:0 18px 40px rgba(14,77,71,.10), 0 6px 14px rgba(14,77,71,.06);

  --maxw:1180px;
}

/* ============================================================ reset */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--sans);
  font-size:var(--fs-base);
  line-height:1.6;
  color:var(--body);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{margin:0;font-family:var(--serif);color:var(--ink);font-weight:600;line-height:1.12;letter-spacing:-.01em;}
p{margin:0;}
ul{margin:0;}
:focus-visible{outline:3px solid var(--teal-500);outline-offset:3px;border-radius:6px;}

/* ============================================================ layout */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--s-6);}
.section{padding:var(--s-24) 0;}
.section--tight{padding:var(--s-16) 0;}
.section--decor{background:url(../img/bg-decor.webp) center/cover no-repeat, var(--bg);}
.eyebrow{
  display:inline-flex;align-items:center;gap:var(--s-2);
  font-family:var(--sans);font-weight:600;font-size:var(--fs-xs);
  letter-spacing:.14em;text-transform:uppercase;color:var(--teal-700);
  margin-bottom:var(--s-4);
}
/* anchor targets clear the sticky 74px header (nav jumps + skip link) */
[id]{scroll-margin-top:90px;}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--rose-500);border-radius:2px;}
.section-head{max-width:660px;margin-bottom:var(--s-12);}
.section-head h2{font-size:var(--fs-2xl);}
.section-head p{margin-top:var(--s-4);font-size:var(--fs-md);color:var(--muted);}
.lead{font-size:var(--fs-md);color:var(--muted);}

/* ============================================================ buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-height:48px;padding:0 var(--s-6);border-radius:var(--r-pill);
  font-family:var(--sans);font-weight:600;font-size:var(--fs-sm);
  border:1.5px solid transparent;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
  white-space:nowrap;
}
.btn svg{width:18px;height:18px;flex:none;}
.btn--primary{background:var(--teal-700);color:#fff;box-shadow:var(--sh-sm);}
.btn--primary:hover{background:var(--teal-800);transform:translateY(-1px);box-shadow:var(--sh-md);}
.btn--accent{background:var(--rose-600);color:#fff;box-shadow:var(--sh-sm);}
.btn--accent:hover{background:var(--rose-700);transform:translateY(-1px);box-shadow:var(--sh-md);}
.btn--ghost{background:#fff;color:var(--teal-800);border-color:var(--teal-200);}
.btn--ghost:hover{border-color:var(--teal-600);background:var(--teal-50);}
.btn--lg{min-height:54px;padding:0 var(--s-8);font-size:var(--fs-base);}
.textlink{
  display:inline-flex;align-items:center;gap:var(--s-2);
  font-weight:600;font-size:var(--fs-sm);color:var(--teal-700);
  /* >=48px touch target without shifting layout */
  padding:12px 0;margin:-12px 0;
}
.textlink svg{width:16px;height:16px;transition:transform .18s ease;}
.textlink:hover{color:var(--teal-800);}
.textlink:hover svg{transform:translateX(3px);}

/* ============================================================ header */
.header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.88);backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
}
.header__row{display:flex;align-items:center;gap:var(--s-6);min-height:74px;}
.brand{display:flex;align-items:center;gap:var(--s-3);margin-right:auto;}
.brand__mark{
  width:48px;height:48px;border-radius:15px;flex:none;
  background:linear-gradient(150deg,var(--teal-600),var(--teal-800));
  display:grid;place-items:center;color:#fff;box-shadow:var(--sh-sm);
  position:relative;
}
.brand__mark span{font-family:var(--serif);font-weight:600;font-size:25px;line-height:1;}
.brand__mark::after{content:"";position:absolute;right:-3px;bottom:-3px;width:15px;height:15px;border-radius:50%;background:var(--rose-500);border:2.5px solid #fff;}
.brand__text{display:flex;flex-direction:column;}
.brand__name{font-family:var(--serif);font-weight:600;font-size:25px;line-height:1.12;color:var(--ink);}
.brand__sub{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:1px;}

.nav{display:flex;align-items:center;gap:var(--s-1);}
.nav a{
  padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);
  font-weight:500;font-size:var(--fs-sm);color:var(--body);transition:color .15s,background .15s;
}
.nav a:hover{color:var(--teal-800);background:var(--teal-50);}

.header__actions{display:flex;align-items:center;gap:var(--s-4);}
.lang{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--teal-50);border:1px solid var(--line);border-radius:var(--r-pill);}
.lang a{
  min-width:34px;min-height:30px;padding:0 var(--s-2);border-radius:var(--r-pill);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:var(--fs-xs);font-weight:600;color:var(--muted);transition:.15s;
}
.lang a:hover{color:var(--teal-800);}
.lang a[aria-current="true"]{background:#fff;color:var(--teal-800);box-shadow:var(--sh-sm);}
.header__phone{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700;color:var(--teal-800);font-size:var(--fs-sm);}
.header__phone svg{width:18px;height:18px;color:var(--rose-600);}
.header__phone:hover{color:var(--teal-900);}

.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);background:#fff;border-radius:var(--r-sm);color:var(--ink);align-items:center;justify-content:center;}
.menu-toggle svg{width:24px;height:24px;}

/* ============================================================ hero */
.hero{position:relative;overflow:hidden;background:
   radial-gradient(60% 55% at 95% 6%, var(--teal-50) 0%, transparent 55%),
   radial-gradient(50% 60% at 0% 100%, var(--rose-50) 0%, transparent 55%),
   var(--surface);
}
.hero__grid{
  position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--s-12);
  align-items:center;padding:var(--s-20) 0 var(--s-24);
}
.hero .eyebrow{background:var(--rose-100);color:var(--rose-700);padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);margin-bottom:var(--s-6);letter-spacing:.12em;}
.hero .eyebrow::before{display:none;}
.hero h1{font-size:clamp(2.25rem,4.4vw,3.5rem);line-height:1.06;color:var(--ink);letter-spacing:-.02em;}
.hero h1 em{font-style:normal;color:var(--rose-600);position:relative;white-space:nowrap;}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.16em;background:var(--rose-400);border-radius:4px;opacity:.6;}
.hero__lead{margin-top:var(--s-5);font-size:var(--fs-md);color:var(--muted);max-width:32em;line-height:1.55;}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-8);}
.hero__assure{display:inline-flex;align-items:center;gap:var(--s-2);margin-top:var(--s-8);font-size:var(--fs-sm);color:var(--body);font-weight:500;padding:var(--s-2) var(--s-4);background:var(--teal-50);border:1px solid var(--line);border-radius:var(--r-pill);}
.hero__assure svg{width:18px;height:18px;color:var(--teal-600);flex:none;}

/* hero visual */
.hero__media{position:relative;}
.hero__media::before{content:"";position:absolute;right:-16px;bottom:-16px;width:72%;height:84%;background:var(--rose-100);border-radius:var(--r-xl);z-index:0;}
.hero__media::after{content:"";position:absolute;left:-14px;top:-14px;width:46%;height:46%;border:2px solid var(--teal-200);border-radius:var(--r-lg);z-index:0;}
.hero__photo{
  position:relative;z-index:1;aspect-ratio:4/5;border-radius:var(--r-xl);overflow:hidden;
  box-shadow:var(--sh-lg);background:
    linear-gradient(155deg,var(--teal-600) 0%, var(--teal-800) 60%, var(--teal-900) 100%);
}
.ph-photo{position:relative;width:100%;height:100%;display:grid;place-items:center;color:rgba(255,255,255,.85);}
.ph-photo::before{content:"";position:absolute;inset:0;background:
   radial-gradient(60% 50% at 30% 25%, rgba(255,255,255,.16), transparent 60%),
   radial-gradient(50% 40% at 85% 90%, rgba(196,96,127,.4), transparent 60%);}
.ph-photo__label{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s-2);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:600;}
.ph-photo__label svg{width:30px;height:30px;opacity:.85;}
.hero__badge{
  position:absolute;left:-22px;bottom:34px;z-index:2;
  background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-lg);
  padding:var(--s-4) var(--s-5);display:flex;align-items:center;gap:var(--s-3);max-width:230px;
}
.hero__badge .ring{width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--rose-100);color:var(--rose-700);}
.hero__badge .ring svg{width:24px;height:24px;}
.hero__badge b{display:block;font-family:var(--serif);font-size:var(--fs-lg);color:var(--ink);line-height:1;}
.hero__badge small{color:var(--muted);font-size:var(--fs-xs);}

/* trust strip */
.trust{border-top:1px solid var(--line);background:var(--surface);}
.trust__row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2);padding:var(--s-6) 0;}
.trust__item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-4);}
.trust__item + .trust__item{border-left:1px solid var(--line-soft);}
.trust__ic{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700);}
.trust__ic svg{width:22px;height:22px;}
.trust__item b{display:block;color:var(--ink);font-weight:700;font-size:var(--fs-sm);font-family:var(--sans);}
.trust__item span{font-size:var(--fs-xs);color:var(--muted);}

/* ============================================================ service cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-8);display:flex;flex-direction:column;gap:var(--s-4);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:var(--teal-200);}
.card__ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700);}
.card__ic svg{width:28px;height:28px;}
.card--rose .card__ic{background:var(--rose-100);color:var(--rose-700);}
.card h3{font-size:var(--fs-lg);}
.card p{color:var(--muted);font-size:var(--fs-sm);flex:1;}
.card .textlink{margin-top:var(--s-1);}

/* service detail sections */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);align-items:center;}
.svc--flip .svc__media{order:2;}
.svc__media{
  aspect-ratio:5/4;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-md);
  background:linear-gradient(150deg,var(--teal-100),var(--teal-200));
  position:relative;
}
.svc--rose .svc__media{background:linear-gradient(150deg,var(--rose-100),var(--rose-200));}
.svc__media .ph-photo{color:rgba(14,77,71,.45);}
.svc--rose .svc__media .ph-photo{color:rgba(158,58,92,.5);}
.svc__media .ph-photo::before{background:radial-gradient(60% 50% at 30% 25%, rgba(255,255,255,.35), transparent 60%);}
.svc__body .eyebrow{margin-bottom:var(--s-3);}
.svc__body h2{font-size:var(--fs-2xl);}
.svc__body > p{margin-top:var(--s-4);color:var(--muted);font-size:var(--fs-md);}
.svc__list{list-style:none;padding:0;margin:var(--s-6) 0 var(--s-8);display:grid;gap:var(--s-3);}
.svc__list li{display:flex;align-items:flex-start;gap:var(--s-3);font-size:var(--fs-base);color:var(--body);}
.svc__list .chk{width:24px;height:24px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700);margin-top:1px;}
.svc--rose .svc__list .chk{background:var(--rose-100);color:var(--rose-700);}
.svc__list .chk svg{width:14px;height:14px;}

/* ============================================================ why / trust block */
.why{background:var(--teal-800);color:#eaf3f1;position:relative;overflow:hidden;}
.why::before{content:"";position:absolute;inset:0;background:
  radial-gradient(70% 60% at 90% 0%, rgba(196,96,127,.22), transparent 60%),
  radial-gradient(60% 60% at 0% 100%, rgba(42,151,138,.28), transparent 60%);}
.why .container{position:relative;}
.why .eyebrow{color:var(--rose-200);}
.why .eyebrow::before{background:var(--rose-400);background:var(--rose-500);}
.why h2{color:#fff;font-size:var(--fs-2xl);max-width:18em;}
.why__lead{margin-top:var(--s-4);color:#bdd6d1;font-size:var(--fs-md);max-width:42em;}
.why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-6);margin-top:var(--s-14);}
.why__item{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);padding:var(--s-8) var(--s-6);}
.why__ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;margin-bottom:var(--s-5);}
.why__ic svg{width:26px;height:26px;}
.why__num{font-family:var(--serif);font-size:var(--fs-xl);color:#fff;line-height:1;}
.why__item h3{color:#fff;font-size:var(--fs-md);font-family:var(--sans);font-weight:700;margin-top:var(--s-2);}
.why__item p{color:#a9c8c2;font-size:var(--fs-sm);margin-top:var(--s-2);}

/* ============================================================ doctors */
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);}
.doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-8);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-4);transition:box-shadow .2s,transform .2s,border-color .2s;}
.doc:hover{box-shadow:var(--sh-md);transform:translateY(-3px);border-color:var(--teal-200);}
.doc__avatar{
  width:84px;height:84px;border-radius:50%;flex:none;display:grid;place-items:center;
  overflow:hidden;
  font-family:var(--serif);font-weight:600;font-size:var(--fs-xl);color:var(--teal-800);
  background:radial-gradient(circle at 30% 25%, var(--teal-100), var(--teal-200));
  border:1px solid var(--teal-200);
}
.doc__avatar svg{width:100%;height:100%;display:block;}
.doc--rose .doc__avatar{color:var(--rose-700);background:radial-gradient(circle at 30% 25%, var(--rose-100), var(--rose-200));border-color:var(--rose-200);}
.doc__name{font-size:var(--fs-lg);}
.doc__role{font-size:var(--fs-sm);color:var(--teal-700);font-weight:600;}
.doc--rose .doc__role{color:var(--rose-700);}
.doc__meta{font-size:var(--fs-xs);color:var(--muted);display:flex;align-items:center;gap:var(--s-2);margin-top:auto;padding-top:var(--s-2);}
.doc__meta svg{width:15px;height:15px;color:var(--teal-600);}
.docs-note{margin-top:var(--s-8);font-size:var(--fs-sm);color:var(--muted);display:flex;align-items:center;gap:var(--s-2);}
.docs-note svg{width:18px;height:18px;color:var(--teal-600);}

/* ============================================================ downloadable forms (PDF) */
.docfiles-intro{max-width:760px;font-size:var(--fs-md);color:var(--muted);margin-bottom:var(--s-8);}
.docfiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);}
.docfile{
  display:flex;align-items:flex-start;gap:var(--s-4);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--s-6);text-decoration:none;color:var(--ink);
  transition:box-shadow .2s,transform .2s,border-color .2s;
}
.docfile:hover{box-shadow:var(--sh-md);transform:translateY(-3px);border-color:var(--teal-200);}
.docfile__ic{
  flex:none;width:44px;height:44px;border-radius:var(--r-sm);
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--teal-700);background:var(--teal-50);border:1px solid var(--teal-200);
}
.docfile__ic svg{width:22px;height:22px;}
.docfile__body{display:flex;flex-direction:column;gap:var(--s-1);}
.docfile__title{font-weight:600;line-height:1.3;}
.docfile__desc{font-size:var(--fs-sm);color:var(--muted);}
.docfile__meta{font-size:var(--fs-xs);color:var(--teal-700);font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-top:var(--s-1);}

/* ============================================================ FAQ */
.faq{max-width:820px;margin:0 auto;display:grid;gap:var(--s-3);}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;transition:border-color .2s,box-shadow .2s;}
.faq details[open]{border-color:var(--teal-200);box-shadow:var(--sh-sm);}
.faq summary{
  list-style:none;cursor:pointer;padding:var(--s-5) var(--s-6);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  font-family:var(--serif);font-weight:600;font-size:var(--fs-md);color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .q-ic{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700);transition:transform .2s,background .2s;}
.faq summary .q-ic svg{width:16px;height:16px;}
.faq details[open] summary .q-ic{transform:rotate(45deg);background:var(--teal-700);color:#fff;}
.faq .faq__a{padding:0 var(--s-6) var(--s-5);color:var(--muted);font-size:var(--fs-base);max-width:60ch;}

/* ============================================================ contact */
.contact{background:var(--surface);border-top:1px solid var(--line);}
.contact__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:var(--s-16);align-items:start;}
.contact__info .eyebrow{margin-bottom:var(--s-4);}
.contact__info h2{font-size:var(--fs-2xl);}
.contact__info > p{margin-top:var(--s-4);color:var(--muted);font-size:var(--fs-md);}
.cinfo-list{list-style:none;padding:0;margin:var(--s-8) 0 0;display:grid;gap:var(--s-5);}
.cinfo-list li{display:flex;gap:var(--s-4);align-items:flex-start;}
.cinfo-list .ic{width:46px;height:46px;border-radius:13px;flex:none;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-700);}
.cinfo-list .ic svg{width:22px;height:22px;}
.cinfo-list li > div{display:flex;flex-direction:column;gap:3px;}
.cinfo-list .k{display:block;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;}
.cinfo-list .v{font-size:var(--fs-md);color:var(--ink);font-weight:600;}
.cinfo-list a.v:hover{color:var(--teal-700);}

/* map */
.map{margin-top:var(--s-8);position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-sm);height:230px;
  /* Self-hosted OpenStreetMap snapshot centered on Pikk 20 (no third-party requests at visit time). */
  background:url('../img/map-pikk20.webp') center/cover no-repeat, var(--teal-50);
}
.map__attr{position:absolute;right:var(--s-2);top:var(--s-2);font-size:11px;line-height:1;background:rgba(255,255,255,.85);padding:3px 8px;border-radius:var(--r-pill);}
.map__attr a{color:var(--muted);text-decoration:none;}
.map__attr a:hover{text-decoration:underline;}
.map__pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);color:var(--rose-600);filter:drop-shadow(0 4px 6px rgba(0,0,0,.2));}
.map__pin svg{width:42px;height:42px;}
.map__chip{position:absolute;left:var(--s-4);bottom:var(--s-4);background:#fff;border-radius:var(--r-pill);box-shadow:var(--sh-md);padding:var(--s-2) var(--s-4);font-size:var(--fs-sm);font-weight:600;color:var(--ink);display:flex;align-items:center;gap:var(--s-2);}
.map__chip svg{width:16px;height:16px;color:var(--teal-700);}
.map__link{position:absolute;right:var(--s-4);bottom:var(--s-4);min-height:44px;}

/* form */
.formcard{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s-10);box-shadow:var(--sh-sm);}
.formcard h3{font-size:var(--fs-xl);}
.formcard > p{margin-top:var(--s-2);color:var(--muted);font-size:var(--fs-sm);margin-bottom:var(--s-6);}
.field{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-5);}
.field label{font-size:var(--fs-sm);font-weight:600;color:var(--ink);}
.field label .req{color:var(--rose-600);}
.field input,.field textarea{
  width:100%;font-family:var(--sans);font-size:var(--fs-base);color:var(--ink);
  padding:var(--s-3) var(--s-4);border:1.5px solid var(--line);border-radius:var(--r-sm);
  background:#fff;min-height:50px;transition:border-color .15s,box-shadow .15s;
}
.field textarea{min-height:120px;resize:vertical;line-height:1.5;}
.field input::placeholder,.field textarea::placeholder{color:#9aa8a6;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--teal-500);box-shadow:0 0 0 3px var(--teal-100);}
.consent{display:flex;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-6);}
.consent input{width:22px;height:22px;min-width:22px;margin-top:2px;accent-color:var(--teal-700);flex:none;}
.consent label{font-size:var(--fs-sm);color:var(--muted);line-height:1.5;}
.consent a{color:var(--teal-700);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.formcard .btn{width:100%;}
.form-foot{margin-top:var(--s-4);font-size:var(--fs-xs);color:var(--muted);text-align:center;display:flex;align-items:center;justify-content:center;gap:var(--s-2);}
.form-foot svg{width:15px;height:15px;color:var(--teal-600);}

/* ============================================================ footer */
.footer{background:var(--teal-900);color:#bcd4cf;padding:var(--s-20) 0 var(--s-8);}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--s-12);padding-bottom:var(--s-12);border-bottom:1px solid rgba(255,255,255,.1);}
.footer .brand__name{color:#fff;}
.footer .brand__sub{color:#7fa39c;}
.footer__about{margin-top:var(--s-5);font-size:var(--fs-sm);color:#9fbeb8;max-width:34ch;}
.footer h4{color:#fff;font-family:var(--sans);font-weight:700;font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--s-5);}
.footer__links{list-style:none;padding:0;display:grid;gap:var(--s-3);}
.footer__links a{font-size:var(--fs-sm);color:#bcd4cf;}
.footer__links a:hover{color:#fff;}
.footer__c{display:grid;gap:var(--s-3);font-size:var(--fs-sm);}
.footer__c a{color:#dbeae6;font-weight:600;}
.footer__c a:hover{color:#fff;}
.footer__c .lbl{color:#7fa39c;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);padding-top:var(--s-8);font-size:var(--fs-xs);color:#7fa39c;}
.footer__meta{display:inline-flex;gap:8px;align-items:center;}
.footer__by{font-weight:600;}
.cc-open{cursor:pointer;}
.cc-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 34px rgba(14,77,71,.16);}
.cc-banner[hidden]{display:none;}
.cc-banner__in{max-width:1180px;margin:0 auto;padding:16px 20px;display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;justify-content:space-between;}
.cc-banner__txt{margin:0;font-size:14px;line-height:1.5;color:var(--body);max-width:64ch;}
.cc-banner__btns{display:flex;gap:10px;flex:none;}
.cc-banner__btns .btn{padding:10px 18px;font-size:14px;}
@media(max-width:560px){.cc-banner__btns{width:100%;}.cc-banner__btns .btn{flex:1;}}
.prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:15px;}
/* Narrow phones: the 4-column cookie tables must scroll inside their box, never widen the page. */
@media (max-width:600px){
  .prose table{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;}
}
.prose th,.prose td{border:1px solid var(--line);padding:9px 13px;text-align:left;vertical-align:top;}
.prose th{background:var(--teal-50);font-weight:600;color:var(--ink);}
.footer__lang{display:inline-flex;gap:var(--s-1);}
.footer__lang a{padding:4px 10px;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.16);color:#bcd4cf;}
.footer__lang a[aria-current="true"]{background:rgba(255,255,255,.12);color:#fff;}

/* skip link */
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--teal-800);padding:var(--s-3) var(--s-5);border-radius:var(--r-sm);z-index:100;font-weight:600;}
.skip:focus{left:var(--s-4);top:var(--s-4);}

/* ============================================================ responsive */
@media (max-width:1080px){
  .nav a{padding:var(--s-2);font-size:var(--fs-xs);}
  .header__row{gap:var(--s-4);}
}
@media (max-width:980px){
  .section{padding:var(--s-16) 0;}
  .menu-toggle{display:inline-flex;}
  .nav{
    position:fixed;inset:74px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;
    background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--sh-lg);
    padding:var(--s-3);max-height:calc(100vh - 74px);overflow:auto;
    transform:translateY(-12px);opacity:0;pointer-events:none;
    visibility:hidden;transition:transform .2s,opacity .2s,visibility .2s; /* hidden links must not be Tab stops */
  }
  .nav.is-open{transform:none;opacity:1;pointer-events:auto;visibility:visible;}
  .nav a{padding:var(--s-4);font-size:var(--fs-base);border-radius:var(--r-sm);}
  .header__phone span.full{display:none;}
  .lang{display:none;}
  .hero__grid{grid-template-columns:1fr;gap:var(--s-10);padding:var(--s-12) 0 var(--s-16);}
  .hero__media{max-width:440px;}
  .hero__photo{aspect-ratio:5/4;}
  /* stacked layout: keep the floating badge inside the viewport (desktop left:-22px hangs off-screen here) */
  .hero__badge{left:var(--s-4);bottom:var(--s-4);}
  .trust__row{grid-template-columns:1fr 1fr;gap:var(--s-3);}
  .trust__item + .trust__item{border-left:0;}
  .trust__item:nth-child(odd){border-right:1px solid var(--line-soft);}
  .trust__item:last-child{border-right:0;}
  .cards,.docs,.why__grid{grid-template-columns:1fr 1fr;}
  .docfiles{grid-template-columns:1fr;}
  .svc{grid-template-columns:1fr;gap:var(--s-8);}
  .svc--flip .svc__media{order:0;}
  .svc__media{max-width:520px;}
  .contact__grid{grid-template-columns:1fr;gap:var(--s-12);}
  .footer__top{grid-template-columns:1fr 1fr;gap:var(--s-10);}
}
@media (max-width:600px){
  :root{--fs-2xl:1.875rem;--fs-3xl:2.25rem;}
  .container{padding:0 var(--s-5);}
  .section{padding:var(--s-14) 0;}
  .cards,.docs,.why__grid,.trust__row{grid-template-columns:1fr;}
  .trust__item:nth-child(odd){border-right:0;}
  .trust__item{border-top:1px solid var(--line-soft);padding-top:var(--s-3);}
  .trust__row .trust__item:first-child{border-top:0;}
  .hero__cta .btn{flex:1;}
  /* relative (not static) so z-index:2 keeps it ABOVE the hero__media::before rose decor;
     visible again on phones since the trust strip no longer repeats the Haigekassa message */
  .hero__badge{left:auto;right:auto;bottom:auto;position:relative;margin-top:var(--s-4);max-width:none;}
  .formcard{padding:var(--s-6);}
  .footer__top{grid-template-columns:1fr;gap:var(--s-8);}
  .brand__sub{display:none;}
}

/* Compact header on phones: keep logo + phone + burger on ONE line even at 360px / large font scale */
@media (max-width:480px){
  .header__row{gap:var(--s-4);}
  .brand{gap:var(--s-2);}
  .brand__mark{width:42px;height:42px;border-radius:13px;}
  .brand__mark span{font-size:22px;}
  .brand__mark::after{width:13px;height:13px;}
  .brand__name{font-size:22px;}
  .header__phone{font-size:14px;white-space:nowrap;}
}

/* ============================================================
   Additions for the native Gutenberg blog/pages + the lead form
   (not in the mockup — built on the same tokens so they stay on-brand)
   ============================================================ */

/* contact-form success banner */
.form-notice{background:var(--teal-50);border:1px solid var(--teal-200);color:var(--teal-800);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-5);font-size:var(--fs-sm);font-weight:600;}
.form-notice--err{background:var(--rose-50);border-color:var(--rose-200);color:var(--rose-700);}

/* teal title band for blog/pages/404/search (mirrors the "Miks Stigma" section) */
.page-hero{background:var(--teal-800);color:#eaf3f1;position:relative;overflow:hidden;}
.page-hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(70% 60% at 90% 0%, rgba(196,96,127,.18), transparent 60%),
  radial-gradient(60% 60% at 0% 100%, rgba(42,151,138,.24), transparent 60%);}
.page-hero .container{position:relative;padding-top:var(--s-16);padding-bottom:var(--s-16);}
.page-hero .eyebrow{color:var(--rose-200);}
.page-hero .eyebrow::before{background:var(--rose-500);}
.page-hero h1{color:#fff;font-size:var(--fs-3xl);max-width:18em;line-height:1.08;}
.page-hero p{margin-top:var(--s-4);color:#bdd6d1;font-size:var(--fs-md);max-width:42em;}

/* post-card grid */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);}
.post-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s;color:inherit;}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:var(--teal-200);}
.post-card__img{aspect-ratio:16/10;overflow:hidden;background:linear-gradient(150deg,var(--teal-100),var(--teal-200));}
.post-card__img img{width:100%;height:100%;object-fit:cover;}
.post-card__body{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3);flex:1;}
.post-card__date{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--teal-600);font-weight:600;}
.post-card h3{font-size:var(--fs-lg);}
.post-card p{color:var(--muted);font-size:var(--fs-sm);flex:1;}
.post-card .textlink{margin-top:var(--s-1);}

/* pagination */
.pagination{margin-top:var(--s-12);display:flex;gap:var(--s-2);flex-wrap:wrap;}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--body);font-weight:600;font-size:var(--fs-sm);background:#fff;}
.pagination .page-numbers.current{background:var(--teal-700);color:#fff;border-color:var(--teal-700);}
.pagination a.page-numbers:hover{border-color:var(--teal-600);background:var(--teal-50);}

/* prose (blog post + generic page body, styled from theme tokens) */
.prose{font-size:var(--fs-base);color:var(--body);line-height:1.75;}
.prose > * + *{margin-top:var(--s-5);}
.prose h2{font-size:var(--fs-xl);margin-top:var(--s-10);}
.prose h3{font-size:var(--fs-lg);margin-top:var(--s-8);}
.prose a{color:var(--teal-700);text-decoration:underline;text-underline-offset:2px;}
.prose a:hover{color:var(--teal-800);}
.prose ul,.prose ol{padding-left:var(--s-6);display:grid;gap:var(--s-2);}
.prose img{border-radius:var(--r-md);}
.prose blockquote{border-left:3px solid var(--rose-500);padding-left:var(--s-5);color:var(--muted);font-style:italic;margin-left:0;}
.prose strong{color:var(--ink);}

@media (max-width:980px){ .blog-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .blog-grid{grid-template-columns:1fr;} }
