/* ============================================================
   РЕЧ И ПЕЧАТ — Design System v2
   Institucijsko-prefinjen stil "overenog dokumenta"
   ============================================================ */

/* ---------- Fonts ---------- */

/* ---------- Easing system ---------- */
:root {
  --ease-ui:     cubic-bezier(0.16, 1, 0.3, 1);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --page-gutter: clamp(18px, 4vw, 56px);
  --section-pad: clamp(64px, 7.6vw, 116px);
  --section-pad-sm: clamp(44px, 5.6vw, 78px);
  --band-pad: clamp(38px, 5vw, 64px);
  --radius-xs: 4px;
  --radius-sm: 7px;
  --radius-md: 11px;
  --radius-lg: 16px;
  /* warm espresso dark tones (shared across dark bands) */
  --espresso-1: #14100B;
  --espresso-2: #211910;
  --espresso-3: #2B2115;
  --on-dark:      #F4ECDD;
  --on-dark-soft: #C3B49A;
  --on-dark-faint:#8E7C62;
  --surface-depth: #FBF7EF;
  --surface-pressed: #F1EADF;
  --shadow-contact: 0 1px 0 rgba(255,255,255,.6) inset, 0 12px 24px -18px rgba(42,32,18,.42);
  --shadow-lift: 0 1px 0 rgba(255,255,255,.7) inset, 0 22px 44px -24px rgba(42,32,18,.46);
  --shadow-dark: 0 1px 0 rgba(255,255,255,.05) inset, 0 26px 50px -28px rgba(0,0,0,.6);
  --topbar-h: 42px;
  --header-h: 74px;
  --trust-h: 46px;
}

/* ---------- Theme palettes ---------- */
:root,
[data-theme="steel"] {
  --ink:          #1A140C;
  --text:         #2E2619;
  --muted:        #6E6150;
  --primary:      #7C5621;
  --primary-deep: #2A2016;
  --accent:       #B07D2A;
  --accent-soft:  #E6CD97;
  --paper:        #F4EFE5;
  --surface:      #FFFFFF;
  --surface-depth:#FBF7EF;
  --surface-pressed:#F1EADF;
  --tint:         #F1E8D6;
  --tint-deep:    #E3D4B8;
  --line:         #E2D8C6;
  --line-soft:    #EDE6D8;
  --seal:         #2A2016;
}
[data-theme="ink"] {
  --ink:          #0A1825;
  --text:         #162838;
  --muted:        #4D6372;
  --primary:      #1E4E69;
  --primary-deep: #102E45;
  --accent:       #A0722E;
  --accent-soft:  #E2D4AD;
  --paper:        #F0EBE1;
  --surface:      #FFFFFF;
  --tint:         #D9E6EE;
  --tint-deep:    #C1D5E3;
  --line:         #CCC7B5;
  --line-soft:    #DAD5CC;
  --seal:         #102E45;
}
[data-theme="archive"] {
  --ink:          #1A1D22;
  --text:         #262C33;
  --muted:        #5A636C;
  --primary:      #3A4C57;
  --primary-deep: #222F38;
  --accent:       #7A3035;
  --accent-soft:  #DFC9C7;
  --paper:        #F0EBE3;
  --surface:      #FFFFFF;
  --tint:         #E2E3E1;
  --tint-deep:    #D0D2D0;
  --line:         #CFC9B8;
  --line-soft:    #DEDAD2;
  --seal:         #222F38;
}
[data-theme="sky"] {
  --ink:          #0D3550;
  --text:         #1A3F5A;
  --muted:        #4E6F80;
  --primary:      #2568A2;
  --primary-deep: #1A4B7E;
  --accent:       #1A7C70;
  --accent-soft:  #BCDEDA;
  --paper:        #F7FAFB;
  --surface:      #FFFFFF;
  --tint:         #DFF0F8;
  --tint-deep:    #C5E0F1;
  --line:         #D5E5EE;
  --line-soft:    #E5EFF5;
  --seal:         #1A4B7E;
}

/* ---------- Font sets ---------- */
:root,
[data-font="editorial"] { --font-head:'Source Serif 4',Georgia,serif; --font-body:'Manrope',system-ui,sans-serif; --head-weight:600; }
[data-font="classic"]   { --font-head:'PT Serif',Georgia,serif;       --font-body:'PT Sans',system-ui,sans-serif;  --head-weight:700; }
[data-font="modern"]    { --font-head:'Manrope',system-ui,sans-serif;  --font-body:'Manrope',system-ui,sans-serif;  --head-weight:800; }

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:             var(--font-body);
  color:                   var(--text);
  background:
    radial-gradient(circle at 12% -2%, rgba(255,255,255,.6), transparent 30rem),
    radial-gradient(circle at 90% 8%, rgba(176,125,42,.06), transparent 36rem),
    linear-gradient(180deg, #F7F3EB 0%, var(--paper) 46%, #EFE8DA 100%);
  line-height:             1.65;
  font-size:               17px;
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x:              hidden;
}

/* Grain texture — subtle analog depth */
body::after {
  content:          "";
  position:         fixed;
  inset:            0;
  z-index:          9997;
  pointer-events:   none;
  opacity:          0.038;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.68' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:  200px 200px;
}

img    { max-width:100%; display:block; }
a      { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; }

h1,h2,h3,h4 {
  font-family:         var(--font-head);
  font-weight:         var(--head-weight);
  color:               var(--ink);
  line-height:         1.1;
  letter-spacing:      -0.015em;
  text-wrap:           balance;
  font-optical-sizing: auto;
}
h1 { letter-spacing:-0.022em; }
h2 { letter-spacing:-0.016em; }
h3 { letter-spacing:-0.008em; }
p  { text-wrap:pretty; }

/* ---------- Layout ---------- */
.wrap,
.wrap-narrow {
  width:calc(100% - (var(--page-gutter) * 2));
  margin-inline:auto;
}
.wrap        { max-width:1240px; }
.wrap-narrow { max-width:880px; }
section      { position:relative; width:100%; }
.pad         { padding-block:var(--section-pad); }
.pad-sm      { padding-block:var(--section-pad-sm); }

/* overline label with index number */
.overline {
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-body); font-weight:700;
  font-size:11.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--primary-deep); opacity:.9;
}
.overline::before { content:attr(data-num); color:var(--accent); font-weight:700; letter-spacing:.05em; }
.overline .rule   { width:36px; height:1px; background:var(--accent); opacity:.55; }

.eyebrow {
  font-family:var(--font-body); font-weight:700; font-size:11.5px;
  letter-spacing:.24em; text-transform:uppercase; color:var(--primary);
}

.lede { font-size:clamp(17px,1.9vw,20.5px); color:var(--muted); line-height:1.65; }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 28px; border-radius:var(--radius-sm);
  font-family:var(--font-body); font-weight:700; font-size:14.5px;
  letter-spacing:.012em; border:1.5px solid transparent;
  transition:transform 160ms var(--ease-ui),
             background 220ms var(--ease-smooth),
             color 220ms var(--ease-smooth),
             box-shadow 220ms var(--ease-smooth),
             border-color 220ms var(--ease-smooth);
  white-space:nowrap;
}
.btn:active { transform:scale(0.97); }
.btn svg    { width:16px; height:16px; }

.btn-primary { background:var(--primary-deep); color:#fff; }
.btn-primary:hover {
  background:var(--ink);
  box-shadow:var(--shadow-lift);
}
.btn-accent { background:var(--accent); color:#fff; }
.btn-accent:hover {
  filter:brightness(1.07);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 10px 14px -12px rgba(89,51,12,.55);
}
.btn-ghost { background:rgba(255,255,255,.18); color:var(--primary-deep); border-color:var(--line); }
.btn-ghost:hover { border-color:var(--primary-deep); background:var(--surface); box-shadow:var(--shadow-contact); }
.btn-light { background:#fff; color:var(--primary-deep); box-shadow:var(--shadow-contact); }
.btn-light:hover { background:var(--tint); }
.btn-lg { padding:17px 34px; font-size:15.5px; }

/* link with arrow */
.link-arrow {
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; font-size:14px; color:var(--primary-deep);
  letter-spacing:.012em; border-bottom:1.5px solid transparent; padding-bottom:2px;
  transition:gap 240ms var(--ease-ui), border-color 220ms var(--ease-smooth), color 180ms var(--ease-smooth);
}
.link-arrow:hover { gap:14px; border-color:var(--accent); color:var(--ink); }
.link-arrow svg   { width:14px; height:14px; transition:transform 240ms var(--ease-ui); }
.link-arrow:hover svg { transform:translateX(2px); }

/* ---------- Top utility bar ---------- */
.topbar { background:var(--espresso-1); color:var(--on-dark-soft); font-size:12.5px; letter-spacing:.01em; }
.topbar .wrap {
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:var(--topbar-h); padding-block:7px;
}
.topbar a {
  display:inline-flex; align-items:center; gap:7px;
  color:var(--on-dark); font-weight:500; white-space:nowrap;
  transition:color 180ms var(--ease-smooth);
}
.topbar a:hover   { color:#fff; }
.topbar svg       { width:13px; height:13px; opacity:.7; color:var(--accent-soft); }
.topbar .tb-left  { display:flex; gap:22px; flex-wrap:wrap; }
.topbar .tb-note  { display:inline-flex; align-items:center; gap:8px; color:var(--on-dark-faint); }
.topbar .tb-note .dot {
  width:6px; height:6px; border-radius:50%;
  background:#52c490;
  box-shadow:0 0 0 3px rgba(82,196,144,.20);
  animation:dot-pulse 2.8s ease-in-out infinite;
}

@keyframes dot-pulse {
  0%,100% { box-shadow:0 0 0 3px rgba(82,196,144,.20); }
  50%      { box-shadow:0 0 0 5px rgba(82,196,144,.08); }
}

/* ---------- Header ---------- */
.site-header {
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter:saturate(1.2) blur(14px);
  -webkit-backdrop-filter:saturate(1.2) blur(14px);
  border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset;
  transition:background 280ms var(--ease-smooth), border-color 280ms var(--ease-smooth), box-shadow 280ms var(--ease-smooth);
}
.site-header .wrap { display:flex; align-items:center; gap:clamp(16px,2vw,28px); min-height:var(--header-h); }

.brand { display:flex; align-items:center; gap:12px; flex:0 0 auto; min-width:202px; }
.brand img  { height:48px; width:auto; }
.brand .bt  { line-height:1.08; }
.brand .bt b {
  font-family:var(--font-head); font-weight:700; color:var(--ink);
  font-size:18.5px; letter-spacing:.015em; display:block; white-space:nowrap;
}
.brand .bt span {
  font-size:10px; letter-spacing:.30em; text-transform:uppercase;
  color:var(--primary); font-weight:700;
}

.nav {
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:clamp(8px,1.15vw,18px);
  flex:1 1 auto;
  min-width:0;
}
.nav a {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:8px 2px;
  font-size:14px;
  font-weight:700;
  line-height:1.18;
  text-align:center;
  white-space:nowrap;
  color:color-mix(in srgb, var(--ink) 86%, var(--muted));
  border-radius:var(--radius-xs);
  transition:color 180ms var(--ease-smooth), transform 180ms var(--ease-ui);
}
.nav a:hover  { color:var(--primary-deep); transform:translateY(-1px); }
.nav a.active { color:var(--primary-deep); }
.nav a.active::after {
  content:""; position:absolute; left:0; right:0; bottom:2px; height:2px;
  background:linear-gradient(90deg, transparent 0%, var(--accent) 16%, var(--accent) 84%, transparent 100%);
}
.header-actions { display:flex; align-items:center; gap:12px; flex:0 0 auto; }

/* language toggle */
.lang {
  display:inline-flex; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden;
  font-size:11.5px; font-weight:700; letter-spacing:.04em;
  background:color-mix(in srgb, var(--surface) 82%, transparent);
}
.lang button {
  padding:7px 12px; background:transparent; color:var(--muted); border:0;
  transition:background 160ms var(--ease-smooth), color 160ms var(--ease-smooth);
}
.lang button.on { background:var(--primary-deep); color:#fff; }
.lang button:not(.on):hover { background:var(--tint); color:var(--primary-deep); }

/* hamburger */
.burger {
  display:none; width:44px; height:44px; border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%);
  align-items:center; justify-content:center;
  box-shadow:var(--shadow-contact);
  transition:background 160ms var(--ease-smooth), border-color 160ms var(--ease-smooth), transform 160ms var(--ease-ui);
}
.burger:hover { background:var(--tint); border-color:var(--primary); transform:translateY(-1px); }
.burger span  { display:block; width:20px; height:1.5px; background:var(--ink); position:relative; }
.burger span::before,.burger span::after {
  content:""; position:absolute; left:0; width:20px; height:1.5px; background:var(--ink);
  transition:transform 180ms var(--ease-ui), top 180ms var(--ease-ui), opacity 140ms var(--ease-smooth);
}
.burger span::before { top:-6px; } .burger span::after { top:6px; }
.burger.is-open span { background:transparent; }
.burger.is-open span::before { top:0; transform:rotate(45deg); }
.burger.is-open span::after { top:0; transform:rotate(-45deg); }

/* mobile drawer */
.drawer { position:fixed; inset:0; z-index:80; visibility:hidden; pointer-events:none; }
.drawer.open { visibility:visible; pointer-events:auto; }
.drawer:not(.open) .scrim,
.drawer:not(.open) .panel { display:none; }
.drawer .scrim {
  position:absolute; inset:0;
  background:rgba(20,16,11,.60);
  opacity:0;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  transition:opacity .24s var(--ease-smooth);
}
.drawer.open .scrim { opacity:1; }
.drawer .panel {
  position:absolute; top:0; right:0; height:100%; width:min(404px,92vw);
  background:
    radial-gradient(circle at 88% 0%, rgba(176,125,42,.14), transparent 17rem),
    linear-gradient(180deg, #fff 0%, var(--surface-depth) 100%);
  border-left:1px solid color-mix(in srgb, var(--line) 88%, #fff);
  box-shadow:-24px 0 68px -34px rgba(42,32,18,.62);
  padding:18px 18px max(20px, env(safe-area-inset-bottom));
  display:flex; flex-direction:column; gap:4px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  transform:translateX(100%); transition:transform .28s var(--ease-ui);
}
.drawer.open .panel { transform:translateX(0); }
.drawer-head {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding-bottom:16px; border-bottom:1px solid var(--line-soft);
}
.drawer-brand { display:flex; align-items:center; gap:10px; min-width:0; }
.drawer-brand img { width:44px; height:44px; object-fit:contain; }
.drawer-brand b {
  display:block; color:var(--ink); font-family:var(--font-head); font-size:18px; line-height:1.05;
}
.drawer-brand small {
  display:block; color:var(--primary); font-size:10px; font-weight:800; letter-spacing:.20em; text-transform:uppercase;
}
.drawer-actions {
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  padding:16px 0 14px;
}
.drawer-actions a {
  min-height:52px; display:flex; align-items:center; justify-content:center; gap:9px;
  border-radius:var(--radius-sm); font-weight:800; font-size:14px;
  border:1px solid var(--line); background:var(--surface); color:var(--ink);
  box-shadow:0 10px 24px -18px rgba(42,32,18,.42);
}
.drawer-actions a.call {
  color:#1a1006;
  background:linear-gradient(180deg, #d29b43 0%, var(--accent) 100%);
  border-color:color-mix(in srgb, var(--accent) 78%, #fff);
}
.drawer-actions svg { width:18px; height:18px; flex:none; }
.drawer-nav { display:flex; flex-direction:column; gap:6px; }
.drawer-nav a {
  min-height:46px;
  padding:12px 13px;
  border:1px solid transparent;
  border-radius:var(--radius-sm);
  font-weight:700; font-size:15.5px; color:var(--ink);
  display:flex; align-items:center; justify-content:space-between;
  transition:color 160ms var(--ease-smooth), background 160ms var(--ease-smooth), border-color 160ms var(--ease-smooth), transform 160ms var(--ease-ui);
}
.drawer-nav a::after {
  content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg); opacity:.36; flex:none;
}
.drawer-nav a:hover { color:var(--primary-deep); background:rgba(176,125,42,.07); transform:translateX(2px); }
.drawer-nav a.active {
  color:var(--primary-deep);
  background:rgba(176,125,42,.10);
  border-color:rgba(176,125,42,.20);
}
.drawer .panel .close {
  flex:none; width:42px; height:42px; position:relative;
  border:1px solid var(--line); border-radius:var(--radius-sm);
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%);
  box-shadow:var(--shadow-contact);
  transition:background 160ms var(--ease-smooth), transform 160ms var(--ease-ui);
}
.drawer .panel .close span,
.drawer .panel .close::before {
  content:""; position:absolute; left:11px; right:11px; top:20px; height:1.7px; background:var(--ink);
}
.drawer .panel .close span { transform:rotate(45deg); }
.drawer .panel .close::before { transform:rotate(-45deg); }
.drawer .panel .close:hover { background:var(--tint); transform:translateY(-1px); }
.drawer-note {
  margin-top:auto; padding-top:16px; color:var(--muted);
  font-size:13.5px; line-height:1.55;
}

/* ---------- Certificate framing & motifs ---------- */
.cert-frame {
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  box-shadow:inset 0 0 0 4px var(--surface), inset 0 0 0 5px var(--line);
}
.rule-double { border-top:1px solid var(--line); position:relative; }
.rule-double::after { content:""; position:absolute; left:0; right:0; top:3px; height:1px; background:var(--line); }

.kicker-seal {
  width:52px; height:52px; flex:none; border-radius:50%;
  border:1.5px solid var(--accent); color:var(--accent);
  display:grid; place-items:center; font-weight:800; font-size:18px; position:relative;
}
.kicker-seal::after {
  content:""; position:absolute; inset:5px;
  border:1px dashed color-mix(in srgb,var(--accent) 50%, transparent); border-radius:50%;
}

/* rotating stamp */
.stamp       { color:var(--seal); opacity:.82; }
.stamp.faded { opacity:.11; }

/* guilloche backdrop */
.guilloche {
  background-image:radial-gradient(circle at 1px 1px, color-mix(in srgb,var(--primary) 13%, transparent) 1px, transparent 0);
  background-size:22px 22px;
}

/* ---------- Hero ---------- */
.hero {
  background:
    linear-gradient(90deg, rgba(16,11,6,.90) 0%, rgba(18,13,7,.74) 38%, rgba(20,15,9,.26) 66%, rgba(20,15,9,.06) 100%),
    url("../assets/hero-background.webp") center / cover no-repeat;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(20,15,9,.04), rgba(16,11,6,.34)),
    radial-gradient(circle at 16% 38%, rgba(230,205,151,.18), transparent 30%);
}
.hero .wrap {
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(320px,.90fr); gap:clamp(28px,4.6vw,58px);
  align-items:center; padding-block:clamp(32px,4vw,56px);
  min-height:clamp(560px, calc(100svh - var(--topbar-h) - var(--header-h) - var(--trust-h) - 2px), 790px);
  position:relative;
  z-index:1;
}
.hero .eyebrow { color:var(--accent-soft); }
.hero h1 {
  color:#fff;
  font-size:clamp(36px,4.5vw,58px);
  line-height:1.02;
  letter-spacing:-0.026em;
  max-width:11.4em;
  text-shadow:0 2px 26px rgba(0,0,0,.30);
}
.hero h1 .em { color:#f0d7a7; font-style:italic; }
.hero .lede  { margin-top:16px; max-width:33em; color:rgba(245,241,232,.84); }
.hero-cta    { display:flex; gap:14px; flex-wrap:wrap; margin-top:24px; }
.hero .btn-primary { background:var(--accent); color:#1a1006; }
.hero .btn-primary:hover { background:#c79238; box-shadow:0 16px 38px -14px rgba(176,125,42,.6); }
.hero .btn-ghost {
  color:#fff;
  border-color:rgba(255,255,255,.34);
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.hero .btn-ghost:hover { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.62); }
.hero-visual { position:relative; width:min(100%,560px); justify-self:end; }
.hero-doc {
  background:rgba(255,255,255,.82); border:1px solid rgba(255,255,255,.58);
  border-radius:var(--radius-md);
  box-shadow:0 32px 80px -30px rgba(0,0,0,.52), 0 8px 20px -10px rgba(0,0,0,.22);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:24px; position:relative;
}
.hero-doc .doc-head {
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--line); padding-bottom:16px; margin-bottom:18px;
}
.hero-doc .doc-head .t   { font-family:var(--font-head); color:var(--ink); font-weight:700; font-size:14.5px; }
.hero-doc .doc-head .ref { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.hero-doc .doc-lines { display:flex; flex-direction:column; gap:10px; }
.hero-doc .doc-lines i { display:block; height:8px; border-radius:2px; background:var(--tint); }
.hero-doc .doc-lines i:nth-child(3) { width:78%; } .hero-doc .doc-lines i:nth-child(6) { width:64%; }
.hero-doc .doc-foot {
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-top:24px; padding-top:20px; border-top:1px dashed var(--line);
}
.hero-doc .sig {
  font-family:'Source Serif 4',serif; font-style:italic; font-size:21px;
  color:var(--primary-deep); border-bottom:1.5px solid var(--ink); padding:0 6px 3px;
}
.hero-stamp {
  position:absolute; right:-22px; bottom:-22px; width:124px; height:124px;
  filter:drop-shadow(0 12px 24px rgba(11,30,40,.22));
}
.hero-stamp svg { width:100%; height:100%; }

@media (max-height:860px) and (min-width:1001px){
  .hero .wrap {
    min-height:calc(100svh - var(--topbar-h) - var(--header-h) - var(--trust-h) - 2px);
    padding-block:clamp(24px,3vw,44px);
    gap:clamp(24px,3.5vw,46px);
  }
  .hero h1 {
    font-size:clamp(34px,3.85vw,50px);
    max-width:10.9em;
  }
  .hero .lede {
    font-size:clamp(15.5px,1.25vw,18px);
    line-height:1.55;
    max-width:31em;
    margin-top:12px;
  }
  .hero-cta { margin-top:18px; }
  .hero .btn-lg {
    padding:14px 25px;
    font-size:14.5px;
  }
  .hero-visual { width:min(100%,520px); }
  .hero-doc { padding:20px; }
  .hero-doc .doc-head {
    padding-bottom:12px;
    margin-bottom:14px;
  }
  .hero-doc .doc-lines { gap:8px; }
  .hero-doc .doc-lines i { height:7px; }
  .hero-doc .doc-foot {
    margin-top:18px;
    padding-top:16px;
  }
  .hero-doc .sig { font-size:19px; }
  .hero-stamp {
    width:104px;
    height:104px;
    right:-16px;
    bottom:-16px;
  }
}

@media (max-width:1360px) and (min-width:1001px){
  .hero .wrap {
    grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);
    gap:clamp(24px,3.6vw,46px);
  }
  .hero h1 { font-size:clamp(34px,4vw,52px); }
  .hero-visual { width:min(100%,520px); }
}

/* ---------- Trust strip ---------- */
.trust { background:linear-gradient(180deg, var(--espresso-2) 0%, var(--espresso-1) 100%); color:var(--on-dark-soft); box-shadow:0 1px 0 rgba(255,255,255,.05) inset; border-top:1px solid rgba(230,205,151,.10); }
.trust .wrap { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(10px,1.8vw,20px); min-height:var(--trust-h); padding-block:4px; align-items:center; }
.trust .ti  { display:flex; gap:9px; align-items:center; min-width:0; }
.trust .ti svg  { width:17px; height:17px; flex:none; color:var(--accent-soft); }
.trust .ti b    { display:block; color:#fff; font-family:var(--font-head); font-size:13px; line-height:1.12; font-weight:600; }
.trust .ti span { display:none; }

/* ---------- Section heads ---------- */
.sec-head     { max-width:60ch; }
.sec-head h2  { font-size:clamp(27px,3.6vw,44px); margin-top:18px; }
.sec-head p   { margin-top:16px; }
.sec-head.center { margin-inline:auto; text-align:center; }
.sec-head.center .overline { justify-content:center; }

/* ---------- Service cards ---------- */
.grid { display:grid; gap:clamp(16px,2vw,24px); }
.g-3  { grid-template-columns:repeat(3,1fr); }
.g-2  { grid-template-columns:repeat(2,1fr); }
.g-4  { grid-template-columns:repeat(4,1fr); }

.svc {
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border:1px solid color-mix(in srgb, var(--line) 86%, #fff);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-contact);
  padding:clamp(24px,2.8vw,32px) clamp(22px,2.5vw,28px);
  overflow:hidden;
  display:flex; flex-direction:column; gap:13px;
  position:relative;
  transition:transform 280ms var(--ease-ui), box-shadow 280ms var(--ease-ui), border-color 280ms var(--ease-smooth);
}
.svc::before {
  content:""; position:absolute; left:0; top:0; width:100%; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:left;
  transition:transform 300ms var(--ease-ui);
}
.svc:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-lift);
  border-color:var(--tint-deep);
}
.svc:hover::before { transform:scaleX(1); }
.svc .ic {
  width:48px; height:48px; border-radius:var(--radius-sm); background:linear-gradient(180deg, var(--tint) 0%, var(--tint-deep) 100%);
  color:var(--primary-deep); display:grid; place-items:center;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 6px 12px -12px rgba(7,26,35,.44);
  transition:background 240ms var(--ease-smooth);
}
.svc:hover .ic { background:var(--tint-deep); }
.svc .ic svg { width:22px; height:22px; }
.svc h3 { font-size:19px; }
.svc p  { color:var(--muted); font-size:15px; }
.svc .num { position:absolute; right:22px; top:20px; font-family:var(--font-head); font-size:13px; color:var(--line); font-weight:700; }

/* ---------- Process steps ---------- */
.steps { counter-reset:st; display:grid; gap:0; }
.step {
  display:grid; grid-template-columns:auto 1fr; gap:24px;
  padding:24px 0; border-top:1px solid var(--line); align-items:start;
}
.step:last-child { border-bottom:1px solid var(--line); }
.step .sn { counter-increment:st; }
.step .sn b {
  font-family:var(--font-head); font-size:clamp(36px,5vw,54px);
  color:var(--accent); font-weight:600; line-height:1;
}
.step h3 { font-size:21px; margin-bottom:7px; }
.step p  { color:var(--muted); max-width:60ch; }

/* ---------- Languages chips ---------- */
.langlist { display:flex; flex-wrap:wrap; gap:10px; }
.langlist .lc {
  display:inline-flex; align-items:center; gap:9px;
  padding:10px 16px; border:1px solid var(--line);
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border-radius:var(--radius-sm); font-weight:600; font-size:14px; color:var(--text);
  box-shadow:var(--shadow-contact);
  transition:border-color 180ms var(--ease-smooth), background 180ms var(--ease-smooth);
}
.langlist .lc:hover      { border-color:var(--primary); background:var(--tint); }
.langlist .lc .flag      { width:18px; height:13px; border-radius:1px; background:var(--tint-deep); flex:none; }
.langlist .lc.feat       { border-color:var(--primary-deep); }

/* ---------- Split feature ---------- */
.split       { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,60px); align-items:center; }
.split.rev   { direction:rtl; } .split.rev>*{ direction:ltr; }
.media       { position:relative; border:1px solid var(--line); border-radius:var(--radius-md); background:linear-gradient(180deg, var(--tint) 0%, var(--tint-deep) 100%); aspect-ratio:4/3; overflow:hidden; box-shadow:var(--shadow-contact); }
.media image-slot { width:100%; height:100%; }
.checklist { list-style:none; display:flex; flex-direction:column; gap:13px; margin-top:24px; }
.checklist li { display:flex; gap:12px; align-items:flex-start; font-size:15.5px; }
.checklist li svg { width:20px; height:20px; flex:none; color:var(--primary); margin-top:1px; }

/* ---------- Testimonials ---------- */
.quote {
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border:1px solid color-mix(in srgb, var(--line) 88%, #fff);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-contact);
  padding:clamp(24px,2.8vw,32px) clamp(22px,2.5vw,30px) clamp(22px,2.6vw,28px);
  display:flex; flex-direction:column; gap:16px;
  transition:box-shadow 280ms var(--ease-ui), transform 280ms var(--ease-ui);
}
.quote:hover { box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.quote .stars     { display:flex; gap:3px; color:var(--accent); }
.quote .stars svg { width:16px; height:16px; }
.quote p { font-family:var(--font-head); font-size:17.5px; color:var(--ink); line-height:1.52; font-style:italic; }
.quote .who { display:flex; align-items:center; gap:12px; margin-top:auto; }
.quote .who .av {
  width:40px; height:40px; border-radius:var(--radius-sm); background:linear-gradient(180deg, var(--tint) 0%, var(--tint-deep) 100%);
  color:var(--primary-deep); display:grid; place-items:center; font-weight:800; font-size:14px;
  box-shadow:0 1px 0 rgba(255,255,255,.72) inset;
}
.quote .who b    { font-size:14px; color:var(--ink); display:block; }
.quote .who span { font-size:12px; color:var(--muted); }

/* ---------- FAQ ---------- */
.faq { border:1px solid color-mix(in srgb, var(--line) 88%, #fff); border-radius:var(--radius-md); background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); box-shadow:var(--shadow-contact); overflow:hidden; }
.faq details { border-bottom:1px solid var(--line); }
.faq details:last-child { border-bottom:0; }
.faq summary {
  list-style:none; cursor:pointer; padding:22px 18px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  font-family:var(--font-head); font-weight:600; font-size:18px; color:var(--ink);
  transition:color 180ms var(--ease-smooth);
}
.faq summary:hover { color:var(--primary-deep); }
.faq summary::-webkit-details-marker { display:none; }
.faq summary .pm {
  width:30px; height:30px; flex:none; border:1px solid var(--line);
  border-radius:var(--radius-sm); display:grid; place-items:center; position:relative;
  transition:background 220ms var(--ease-smooth), border-color 220ms var(--ease-smooth);
}
.faq summary .pm::before,.faq summary .pm::after { content:""; position:absolute; background:var(--primary-deep); }
.faq summary .pm::before { width:12px; height:1.5px; }
.faq summary .pm::after  { width:1.5px; height:12px; transition:transform 240ms var(--ease-ui), opacity 200ms var(--ease-smooth); }
.faq details[open] summary .pm { background:var(--primary-deep); border-color:var(--primary-deep); }
.faq details[open] summary .pm::before { background:#fff; }
.faq details[open] summary .pm::after  { background:#fff; opacity:0; transform:rotate(90deg); }
.faq .ans { padding:0 18px 26px; color:var(--muted); max-width:74ch; font-size:15.5px; line-height:1.65; }

/* ---------- Pricing ---------- */
.ptable { border:1px solid color-mix(in srgb, var(--line) 88%, #fff); border-radius:var(--radius-md); background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); box-shadow:var(--shadow-contact); overflow:hidden; }
.prow {
  display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:16px;
  padding:18px 24px; border-bottom:1px solid var(--line-soft); align-items:center;
}
.prow:last-child { border-bottom:0; }
.prow.head { background:var(--ink); color:#fff; font-weight:700; font-size:12px; letter-spacing:.07em; text-transform:uppercase; }
.prow.head .ink { color:#fff; }
.prow .pl b    { font-family:var(--font-head); font-size:16px; color:var(--ink); display:block; }
.prow .pl span { font-size:13px; color:var(--muted); }
.prow .pc      { font-weight:700; color:var(--primary-deep); }

.pcards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,24px); }
.pcard {
  border:1px solid color-mix(in srgb, var(--line) 88%, #fff); background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-contact);
  padding:clamp(24px,2.8vw,32px) clamp(22px,2.5vw,28px);
  display:flex; flex-direction:column; gap:8px; position:relative;
  transition:box-shadow 280ms var(--ease-ui), transform 280ms var(--ease-ui);
}
.pcard:hover { transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.pcard.feat { border:1.5px solid var(--primary-deep); box-shadow:var(--shadow-lift); }
.pcard .tag {
  position:absolute; top:-12px; left:28px;
  background:var(--accent); color:#fff; font-size:11px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; padding:5px 12px;
}
.pcard h3      { font-size:19.5px; }
.pcard .amt    { font-family:var(--font-head); font-size:40px; color:var(--ink); margin:6px 0; font-variant-numeric:tabular-nums; }
.pcard .amt small { font-size:15px; color:var(--muted); font-family:var(--font-body); font-weight:600; }
.pcard ul      { list-style:none; display:flex; flex-direction:column; gap:10px; margin:14px 0 22px; }
.pcard ul li   { display:flex; gap:10px; font-size:14.5px; color:var(--text); }
.pcard ul li svg { width:17px; height:17px; color:var(--primary); flex:none; margin-top:2px; }

/* ---------- Form ---------- */
.form-card { background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border:1px solid color-mix(in srgb, var(--line) 88%, #fff); border-radius:var(--radius-md); box-shadow:var(--shadow-contact); padding:clamp(28px,4vw,44px); }
.field { display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field label { font-size:12.5px; font-weight:700; letter-spacing:.05em; color:var(--ink); text-transform:uppercase; }
.field label .req { color:var(--accent); }
.field input,.field select,.field textarea {
  font-family:inherit; font-size:15.5px; color:var(--ink); background:color-mix(in srgb, var(--paper) 78%, #fff);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:13px 14px; width:100%;
  transition:border-color 180ms var(--ease-smooth), box-shadow 180ms var(--ease-smooth), background 180ms var(--ease-smooth);
}
.field input:focus,.field select:focus,.field textarea:focus {
  outline:none; border-color:var(--primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%, transparent);
  background:var(--surface);
}
.field textarea { resize:vertical; min-height:120px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.dropzone {
  border:1.5px dashed var(--line); background:color-mix(in srgb, var(--paper) 78%, #fff);
  border-radius:var(--radius-md); padding:28px; text-align:center; color:var(--muted); cursor:pointer;
  transition:border-color 180ms var(--ease-smooth), background 180ms var(--ease-smooth), color 180ms var(--ease-smooth);
}
.dropzone:hover,.dropzone.drag { border-color:var(--primary); background:var(--tint); color:var(--primary-deep); }
.dropzone svg   { width:28px; height:28px; margin:0 auto 8px; color:var(--primary); }
.dropzone .files { margin-top:10px; font-size:13px; color:var(--primary-deep); font-weight:600; }
.consent { display:flex; gap:11px; align-items:flex-start; font-size:13px; color:var(--muted); }
.consent input { width:18px; height:18px; margin-top:2px; accent-color:var(--primary-deep); flex:none; }
.form-ok {
  display:none; padding:18px;
  background:color-mix(in srgb,#4fae7d 12%, var(--surface));
  border:1px solid color-mix(in srgb,#4fae7d 35%, var(--line));
  color:#1f6b46; font-weight:600; font-size:14.5px;
  margin-bottom:18px; border-radius:var(--radius-sm);
}
.form-ok.show { display:block; }

/* ---------- Contact quick page ---------- */
.contact-quick {
  background:
    radial-gradient(circle at 12% 0%, rgba(176,125,42,.08), transparent 20rem),
    var(--bg);
}
.contact-layout {
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(360px,1.14fr);
  gap:clamp(28px,4.8vw,64px);
  align-items:start;
}
.contact-copy {
  position:sticky;
  top:calc(var(--topbar-h) + var(--header-h) + 28px);
}
.contact-copy h2 {
  font-size:clamp(28px,3.6vw,44px);
  line-height:1.08;
  letter-spacing:-0.018em;
  max-width:13ch;
  margin-top:16px;
}
.contact-copy p {
  color:var(--muted);
  font-size:clamp(16px,1.35vw,18px);
  line-height:1.72;
  max-width:48ch;
  margin-top:18px;
}
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.contact-actions .btn-ghost {
  color:var(--primary-deep);
  border-color:color-mix(in srgb, var(--primary) 30%, var(--line));
  background:rgba(255,255,255,.72);
}
.contact-cards { display:grid; gap:12px; }
.contact-card {
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
  padding:clamp(18px,2.6vw,26px);
  border:1px solid color-mix(in srgb, var(--line) 86%, #fff);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%);
  box-shadow:var(--shadow-contact);
  color:var(--ink);
  transition:transform 180ms var(--ease-ui), border-color 180ms var(--ease-smooth), box-shadow 180ms var(--ease-smooth);
}
.contact-card:is(a):hover {
  transform:translateY(-2px);
  border-color:color-mix(in srgb, var(--accent) 42%, var(--line));
  box-shadow:0 22px 52px -34px rgba(74,57,32,.44);
}
.contact-card.primary {
  background:
    radial-gradient(circle at 92% 8%, rgba(230,205,151,.20), transparent 12rem),
    linear-gradient(165deg, var(--espresso-2) 0%, var(--espresso-1) 100%);
  color:#fff;
  border-color:rgba(230,205,151,.18);
}
.contact-card .ic {
  width:56px;
  height:56px;
  border-radius:var(--radius-sm);
  display:grid;
  place-items:center;
  flex:none;
  color:var(--primary-deep);
  background:var(--tint);
}
.contact-card.primary .ic { color:#1a1006; background:var(--accent-soft); }
.contact-card .ic svg { width:23px; height:23px; }
.contact-card span:last-child { min-width:0; }
.contact-card small {
  display:block;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.contact-card.primary small { color:rgba(245,241,232,.70); }
.contact-card b {
  display:block;
  margin-top:6px;
  color:inherit;
  font-family:var(--font-head);
  font-size:clamp(19px,2vw,25px);
  line-height:1.15;
  overflow-wrap:anywhere;
}
.contact-card em {
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-style:normal;
  font-size:14px;
}
.contact-card.primary em { color:rgba(245,241,232,.76); }

/* ---------- Page hero (interior) ---------- */
.phero {
  background:
    radial-gradient(circle at 12% 30%, rgba(230,205,151,.12), transparent 42%),
    linear-gradient(135deg, var(--espresso-1) 0%, var(--espresso-3) 100%);
  color:#fff; position:relative; overflow:hidden; box-shadow:var(--shadow-dark);
}
.phero .wrap { padding-block:clamp(48px,6.4vw,84px); position:relative; z-index:2; }
.phero .crumbs {
  font-size:12.5px; color:var(--on-dark-faint); display:flex; gap:8px;
  align-items:center; margin-bottom:18px;
}
.phero .crumbs a { transition:color 160ms var(--ease-smooth); }
.phero .crumbs a:hover { color:#fff; }
.phero h1   { color:#fff; font-size:clamp(32px,4.6vw,54px); max-width:18ch; letter-spacing:-0.022em; }
.phero p    { color:var(--on-dark-soft); max-width:56ch; margin-top:18px; font-size:17.5px; }
.phero .pstamp {
  position:absolute; right:var(--page-gutter); top:50%; transform:translateY(-50%);
  width:240px; height:240px; opacity:.07; color:#fff; z-index:1;
}
.phero .pstamp svg { width:100%; height:100%; }

/* ---------- CTA band ---------- */
.ctaband {
  background:
    radial-gradient(circle at 85% 120%, rgba(230,205,151,.14), transparent 50%),
    linear-gradient(135deg, var(--espresso-3) 0%, var(--espresso-1) 100%);
  color:#fff; box-shadow:var(--shadow-dark);
}
.ctaband .wrap {
  display:grid; grid-template-columns:1.4fr auto; gap:40px;
  align-items:center; padding-block:var(--band-pad);
}
.ctaband h2 { color:#fff; font-size:clamp(26px,3.4vw,40px); letter-spacing:-0.016em; }
.ctaband p  { color:var(--on-dark-soft); margin-top:12px; max-width:48ch; }
.ctaband .acts { display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.site-footer { background:linear-gradient(180deg, var(--espresso-1) 0%, #0B0805 100%); color:var(--on-dark-soft); font-size:14px; box-shadow:var(--shadow-dark); }
.site-footer .top {
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:38px;
  padding-block:clamp(48px,5.8vw,68px); border-bottom:1px solid rgba(230,205,151,.10);
}
.site-footer .fbrand img { height:62px; margin-bottom:16px; }
.site-footer .fbrand p   { max-width:32ch; color:var(--on-dark-faint); line-height:1.65; }
.site-footer h4 {
  color:var(--accent-soft); font-family:var(--font-body); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px;
}
.site-footer ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.site-footer a  { color:var(--on-dark-soft); transition:color 160ms var(--ease-smooth); }
.site-footer a:hover { color:#fff; }
.site-footer .contact-li { display:flex; gap:10px; align-items:flex-start; }
.site-footer .contact-li svg { width:15px; height:15px; flex:none; margin-top:3px; color:var(--accent-soft); }
.site-footer .bot {
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding-block:24px; font-size:12.5px; color:var(--on-dark-faint);
}

/* ---------- Glossary ---------- */
.gl-toolbar {
  position:sticky; top:76px; z-index:40;
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(1.1) blur(8px);
  -webkit-backdrop-filter:saturate(1.1) blur(8px);
  padding:14px 0; margin-bottom:6px;
  border-bottom:1px solid var(--line);
}
.gl-search { position:relative; flex:1 1 420px; display:flex; align-items:center; }
.gl-search>svg { position:absolute; left:16px; width:19px; height:19px; color:var(--primary); pointer-events:none; }
.gl-search input {
  width:100%; font-family:inherit; font-size:16.5px; color:var(--ink);
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border:1.5px solid var(--line); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-contact);
  padding:15px 44px 15px 46px;
  transition:border-color 180ms var(--ease-smooth), box-shadow 180ms var(--ease-smooth);
}
.gl-search input::-webkit-search-cancel-button { display:none; }
.gl-search input:focus {
  outline:none; border-color:var(--primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%, transparent);
}
.gl-clear {
  position:absolute; right:10px; width:28px; height:28px;
  border:0; border-radius:var(--radius-sm); background:var(--tint); color:var(--primary-deep);
  font-size:18px; line-height:1; display:grid; place-items:center;
  transition:background 160ms var(--ease-smooth);
}
.gl-clear:hover { background:var(--tint-deep); }
.gl-count { font-size:13px; font-weight:700; letter-spacing:.04em; color:var(--muted); white-space:nowrap; }

.gl-cats { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 26px; }
.gl-chip {
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 13px; border:1px solid var(--line); border-radius:var(--radius-sm);
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); font-size:13px; font-weight:600; color:var(--text);
  box-shadow:var(--shadow-contact);
  transition:border-color 180ms var(--ease-smooth), color 180ms var(--ease-smooth), background 180ms var(--ease-smooth);
}
.gl-chip i    { font-style:normal; font-size:11px; font-weight:700; color:var(--muted); }
.gl-chip:hover { border-color:var(--primary); color:var(--primary-deep); }
.gl-chip.on   { background:var(--primary-deep); border-color:var(--primary-deep); color:#fff; }
.gl-chip.on i { color:var(--accent-soft); }

.gl-list { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.gl-row {
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border:1px solid color-mix(in srgb, var(--line) 88%, #fff);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-contact);
  padding:20px 22px; display:flex; flex-direction:column; gap:7px;
  transition:box-shadow 240ms var(--ease-ui), transform 240ms var(--ease-ui);
}
.gl-row:hover { box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.gl-head { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
.gl-en   { font-family:var(--font-head); font-size:19.5px; color:var(--primary-deep); line-height:1.15; }
.gl-en mark,.gl-sr mark {
  background:color-mix(in srgb,var(--accent) 22%, transparent);
  color:inherit; border-radius:var(--radius-xs); padding:0 1px;
}
.gl-chip-tag {
  flex:none; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); background:var(--tint); padding:4px 9px; border-radius:var(--radius-xs); white-space:nowrap;
}
.gl-sr  { font-size:15.5px; font-weight:600; color:var(--ink); }
.gl-def { font-size:14px; color:var(--muted); line-height:1.55; }

.gl-empty { text-align:center; padding:64px 20px; color:var(--muted); }
.gl-empty svg  { width:44px; height:44px; color:var(--line); margin:0 auto 14px; }
.gl-empty p    { font-family:var(--font-head); font-size:20px; color:var(--ink); margin-bottom:6px; }
.gl-empty span { font-size:15px; }
.gl-note { margin-top:30px; font-size:13px; color:var(--muted); border-top:1px solid var(--line-soft); padding-top:18px; max-width:78ch; }

/* Landing glossary teaser */
.gl-teaser {
  background:
    radial-gradient(circle at 80% 10%, rgba(230,205,151,.12), transparent 46%),
    linear-gradient(135deg, var(--espresso-1) 0%, var(--espresso-3) 100%);
  color:#fff; box-shadow:var(--shadow-dark);
}
.gl-teaser .wrap {
  display:grid; grid-template-columns:1.1fr 1fr; gap:48px;
  align-items:center; padding-block:var(--band-pad);
}
.gl-teaser .overline         { color:var(--on-dark-soft); }
.gl-teaser .overline::before { color:var(--accent-soft); }
.gl-teaser .overline .rule   { background:var(--accent-soft); }
.gl-teaser h2  { color:#fff; font-size:clamp(26px,3.4vw,42px); margin-top:18px; }
.gl-teaser p   { color:var(--on-dark-soft); margin-top:14px; max-width:46ch; }
.gl-teaser .tform { display:flex; gap:10px; margin-top:26px; flex-wrap:wrap; }
.gl-teaser .tinput { position:relative; flex:1 1 240px; display:flex; align-items:center; }
.gl-teaser .tinput svg { position:absolute; left:15px; width:18px; height:18px; color:var(--ink); opacity:.50; pointer-events:none; }
.gl-teaser .tinput input {
  width:100%; font-family:inherit; font-size:15.5px; color:var(--ink);
  background:#fff; border:0; border-radius:var(--radius-sm); padding:14px 16px 14px 44px;
  transition:box-shadow 180ms var(--ease-smooth);
}
.gl-teaser .tinput input:focus { outline:none; box-shadow:0 0 0 3px var(--accent); }
.gl-teaser .tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.gl-teaser .tags a {
  font-size:12.5px; font-weight:600; color:var(--on-dark-soft);
  border:1px solid rgba(230,205,151,.22); padding:6px 12px; border-radius:var(--radius-sm);
  transition:border-color 160ms var(--ease-smooth), color 160ms var(--ease-smooth);
}
.gl-teaser .tags a:hover { border-color:var(--accent-soft); color:#fff; }
.gl-teaser .tvisual { position:relative; }
.gl-teaser .tcard {
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-depth) 100%); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-md); box-shadow:var(--shadow-dark); padding:24px;
}
.gl-teaser .tcard .gl-row { box-shadow:none; transform:none; }

/* ---------- Tweaks panel ---------- */
#tweaks {
  position:fixed; right:18px; bottom:18px; z-index:200;
  width:312px; max-width:calc(100vw - 24px);
  background:#fff; border:1px solid #d5d5d5; border-radius:6px;
  box-shadow:0 24px 60px -16px rgba(0,0,0,.28);
  font-family:'Manrope',sans-serif; display:none; overflow:hidden;
}
#tweaks.show { display:block; }
#tweaks .tk-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:13px 16px; background:#0B1E28; color:#fff;
}
#tweaks .tk-head b      { font-size:14px; letter-spacing:.02em; }
#tweaks .tk-head button { background:transparent; border:0; color:#bcd; font-size:18px; line-height:1; }
#tweaks .tk-body { padding:15px 16px; max-height:70vh; overflow:auto; }
#tweaks .tk-sec  { margin-bottom:18px; }
#tweaks .tk-sec>label { font-size:11px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; color:#888; display:block; margin-bottom:9px; }
#tweaks .sw { display:flex; gap:8px; flex-wrap:wrap; }
#tweaks .sw button {
  flex:1 1 0; min-width:62px; border:1px solid #ddd; border-radius:4px;
  padding:8px 6px; background:#fff; font-size:11.5px; font-weight:600; color:#444;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  transition:border-color 160ms var(--ease-smooth);
}
#tweaks .sw button.on { border-color:#0B1E28; box-shadow:0 0 0 2px rgba(11,30,40,.16); }
#tweaks .sw .chip     { width:100%; height:14px; border-radius:3px; display:flex; overflow:hidden; }
#tweaks .sw .chip i   { flex:1; }
#tweaks .seg          { display:flex; border:1px solid #ddd; border-radius:4px; overflow:hidden; }
#tweaks .seg button   { flex:1; border:0; background:#fff; padding:9px 4px; font-size:12px; font-weight:600; color:#555; transition:background 160ms, color 160ms; }
#tweaks .seg button.on { background:#0B1E28; color:#fff; }
.tweak-fab { position:fixed; right:18px; bottom:18px; z-index:199; }

/* ---------- Reveal animation ---------- */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity:0; transform:translateY(18px); transition:opacity .65s var(--ease-ui), transform .65s var(--ease-ui); }
  .reveal.in { opacity:1; transform:none; }
}

/* ---------- Focus styles ---------- */
:focus-visible { outline:2px solid var(--primary); outline-offset:3px; border-radius:2px; }

/* ---------- Responsive ---------- */
@media (max-width:1240px){
  :root {
    --page-gutter: clamp(18px, 4.8vw, 40px);
    --section-pad: clamp(52px, 7vw, 84px);
    --section-pad-sm: clamp(36px, 5.2vw, 62px);
  }
  .nav    { display:none; }
  .burger { display:flex; }
  .topbar .tb-note { display:none; }
}
@media (max-width:1000px){
  .hero {
    background:
      linear-gradient(90deg, rgba(16,11,6,.92) 0%, rgba(18,13,7,.78) 58%, rgba(20,15,9,.40) 100%),
      url("../assets/hero-background.webp") 35% center / cover no-repeat;
  }
  .hero .wrap   { grid-template-columns:1fr; gap:34px; min-height:auto; }
  .hero-visual  { display:none; }
  .trust .wrap  { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
  .g-3,.g-4    { grid-template-columns:repeat(2,1fr); }
  .split        { grid-template-columns:1fr; gap:32px; } .split.rev{ direction:ltr; }
  .pcards       { grid-template-columns:1fr; }
  .ctaband .wrap { grid-template-columns:1fr; }
  .site-footer .top { grid-template-columns:1fr 1fr; gap:32px; }
  .gl-toolbar   { top:0; }
  .gl-list      { grid-template-columns:1fr; }
  .gl-teaser .wrap { grid-template-columns:1fr; gap:32px; }
  .contact-layout { grid-template-columns:1fr; gap:28px; }
  .contact-copy { position:static; }
  .contact-copy h2 { max-width:16ch; }
}
@media (max-width:680px){
  :root {
    --page-gutter: 16px;
    --section-pad: 50px;
    --section-pad-sm: 36px;
    --band-pad: 32px;
    --topbar-h: 36px;
    --header-h: 66px;
  }
  body { font-size:16px; }
  .topbar              { font-size:12px; }
  .topbar .wrap        { min-height:36px; gap:10px; padding-block:5px; }
  .topbar .tb-left     { width:100%; justify-content:space-between; gap:10px; }
  .topbar a            { gap:6px; min-width:0; }
  .topbar a span       { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .topbar a[href^="mailto"] { max-width:48vw; }
  .site-header .wrap   { min-height:66px; gap:10px; }
  .brand               { min-width:0; gap:9px; flex:1 1 auto; }
  .brand img           { height:42px; }
  .brand .bt b         { font-size:17px; }
  .header-actions .btn { display:none; }
  .topbar .tb-note     { display:none; }
  .header-actions      { gap:8px; }
  .lang button         { padding:7px 10px; }
  .burger              { width:42px; height:42px; flex:none; }
  .drawer .panel       { width:min(370px,94vw); padding:16px 16px max(18px, env(safe-area-inset-bottom)); }
  .drawer-head         { padding-bottom:14px; }
  .drawer-brand img    { width:40px; height:40px; }
  .drawer-brand b      { font-size:16px; }
  .drawer-actions      { padding-block:14px 12px; }
  .drawer-actions a    { min-height:50px; }
  .drawer-nav          { gap:5px; }
  .drawer-nav a        { min-height:45px; padding:11px 12px; font-size:15px; }
  .g-3,.g-4,.g-2      { grid-template-columns:1fr; }
  .field-row           { grid-template-columns:1fr; }
  .split,.form-card,.svc,.quote,.pcard,.gl-list,.gl-row,.gl-head,.site-footer .top { min-width:0; }
  .svc b,.contact-li a,.contact-li span,.gl-en,.gl-sr,.gl-def,.field input,.field textarea { overflow-wrap:anywhere; }
  .gl-head             { align-items:flex-start; flex-direction:column; gap:8px; }
  .gl-chip-tag         { white-space:normal; }
  .prow                { grid-template-columns:1.4fr 1fr; }
  .prow .pc.hide-m     { display:none; }
  .trust .wrap         { grid-template-columns:repeat(2,minmax(0,1fr)); padding-block:10px; gap:10px 14px; }
  .trust .ti           { align-items:flex-start; gap:9px; }
  .trust .ti b         { font-size:13.5px; }
  .trust .ti span      { font-size:11.5px; }
  .hero {
    background:
      linear-gradient(180deg, rgba(16,11,6,.93) 0%, rgba(18,13,7,.86) 52%, rgba(20,15,9,.70) 100%),
      url("../assets/hero-background.webp") 66% center / cover no-repeat;
  }
  .hero .wrap          { padding-block:34px 28px; gap:24px; }
  .hero h1             { font-size:clamp(34px,11vw,46px); max-width:12em; }
  .hero .lede          { margin-top:16px; }
  .hero-cta            { margin-top:20px; }
  .hero .btn           { width:100%; justify-content:center; white-space:normal; text-align:center; }
  .hero-visual         { display:none; }
  .hero-stamp          { width:100px; height:100px; right:-8px; bottom:-14px; }
  .brand .bt span      { display:none; }
  .phero .wrap         { padding-block:42px 48px; }
  .phero h1            { font-size:clamp(31px,10vw,42px); max-width:12ch; }
  .phero p             { font-size:16px; line-height:1.62; }
  .phero .pstamp       { opacity:.18; right:-42px; bottom:-42px; width:150px; height:150px; }
  .contact-quick       { padding-block:42px 54px; }
  .contact-copy h2     { font-size:clamp(27px,8.2vw,36px); max-width:13ch; }
  .contact-copy p      { font-size:16px; line-height:1.64; }
  .contact-actions     { flex-direction:column; margin-top:22px; }
  .contact-actions .btn { width:100%; justify-content:center; text-align:center; white-space:normal; }
  .contact-card        { align-items:flex-start; padding:18px; gap:13px; border-radius:var(--radius-sm); }
  .contact-card .ic    { width:48px; height:48px; }
  .contact-card b      { font-size:18px; }
  .contact-card em     { font-size:13.5px; }
  .pcard               { padding:22px 18px; }
  .faq summary         { padding:18px 15px; font-size:16.5px; }
  .faq .ans            { padding-inline:15px; }
}

@media (max-width:380px){
  :root { --page-gutter: 14px; }
  .topbar a[href^="mailto"] { max-width:44vw; }
  .topbar a[href^="mailto"] span { display:none; }
  .brand img { height:38px; }
  .brand .bt b { font-size:15.5px; }
  .lang button { padding:6px 9px; font-size:11px; }
  .burger { width:40px; height:40px; }
  .drawer .panel { width:95vw; padding-inline:14px; }
  .drawer-actions { grid-template-columns:1fr; }
  .hero .wrap { padding-block:24px 18px; }
  .hero-cta { margin-top:18px; }
  .hero h1 { font-size:clamp(31px,10.5vw,40px); }
  .hero .lede { font-size:15.5px; }
  .trust .wrap { padding-block:8px; gap:8px 12px; }
  .contact-card { padding:16px; }
  .contact-card .ic { width:44px; height:44px; }
  .contact-card b { font-size:17px; }
}
