/* =========================================================================
   eurogarant — ВНЖ Испании под ключ. Лендинг. styles.css
   Дизайн-токены: concept.md §1 (все перенесены в :root).
   ========================================================================= */

/* ---------- :root — ВСЕ дизайн-токены ---------- */
:root {
  /* 1.1 Palette — Primary */
  --primary-900:#0A2A43; --primary-800:#0E3A5C; --primary-700:#13507E;
  --primary-600:#1A6AA6; --primary-500:#2E86C1; --primary-300:#8FC4E3;
  --primary-100:#DCEBF5;
  /* Accent */
  --accent-700:#B5471F; --accent-600:#D2622A; --accent-500:#E27A3F;
  --accent-400:#F0A368; --accent-200:#FAD9BF;
  /* Neutrals */
  --ink-900:#0F1B26; --ink-700:#33424F; --ink-500:#5B6B78; --ink-300:#A7B4BE;
  --surface-50:#F6FAFD; --surface-0:#FFFFFF; --text-on-dark:#EAF3FA;
  /* Glass */
  --glass-light:rgba(255,255,255,0.55);
  --glass-light-soft:rgba(255,255,255,0.38);
  --glass-dark:rgba(12,40,60,0.42);
  --glass-border:rgba(255,255,255,0.55);
  --glass-border-dark:rgba(255,255,255,0.16);
  --glass-tint-primary:rgba(46,134,193,0.10);
  /* Semantic */
  --success-600:#1E8E5A; --success-bg:rgba(30,142,90,0.12);
  --danger-600:#C0392B; --danger-bg:rgba(192,57,43,0.10);
  --warning-600:#C98A12;

  /* 1.2 Gradients / blobs */
  --grad-page:linear-gradient(180deg,#F6FAFD 0%,#EEF5FB 60%,#F6FAFD 100%);
  --grad-hero:radial-gradient(120% 120% at 80% 10%,#1A6AA6 0%,#0E3A5C 55%,#0A2A43 100%);
  --grad-cta:linear-gradient(135deg,#D2622A 0%,#E27A3F 100%);
  --grad-dark:linear-gradient(160deg,#0E3A5C 0%,#0A2A43 100%);
  --blob-sea:radial-gradient(circle,rgba(46,134,193,0.55) 0%,rgba(46,134,193,0) 70%);
  --blob-sun:radial-gradient(circle,rgba(240,163,104,0.50) 0%,rgba(240,163,104,0) 70%);

  /* 1.3 Typography */
  --font-head:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-h1:clamp(2.0rem,1.3rem + 3.3vw,3.5rem);
  --fs-h2:clamp(1.6rem,1.2rem + 1.8vw,2.5rem);
  --fs-h3:clamp(1.2rem,1.05rem + 0.7vw,1.5rem);
  --fs-lead:clamp(1.05rem,0.98rem + 0.5vw,1.3rem);
  --fs-body:clamp(1.0rem,0.97rem + 0.15vw,1.125rem);
  --fs-small:0.875rem;
  --fs-overline:0.75rem;

  /* 1.4 Radii */
  --r-xs:8px; --r-sm:12px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;

  /* 1.5 Shadows */
  --sh-1:0 1px 2px rgba(10,42,67,0.06),0 1px 1px rgba(10,42,67,0.04);
  --sh-2:0 6px 16px rgba(10,42,67,0.08),0 2px 4px rgba(10,42,67,0.05);
  --sh-3:0 14px 40px rgba(10,42,67,0.12),0 4px 10px rgba(10,42,67,0.06);
  --sh-cta:0 10px 24px rgba(210,98,42,0.35);
  --sh-inset-glass:inset 0 1px 0 rgba(255,255,255,0.6);

  /* 1.6 Spacing (8pt) */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px; --space-10:128px;
  --space-section:clamp(64px,8vw,128px);
  --container:1200px; --container-narrow:760px; --gutter:clamp(16px,4vw,40px);

  /* 1.7 Blur */
  --blur-sm:blur(8px); --blur-md:blur(16px); --blur-lg:blur(24px);

  /* 1.8 Animation */
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --dur-1:120ms; --dur-2:200ms; --dur-3:320ms; --dur-4:600ms; --dur-blob:18s;

  /* 1.9 Z-index */
  --z-blob:0; --z-base:1; --z-glass:2; --z-sticky-header:40;
  --z-popup-overlay:90; --z-popup:100; --z-toast:120; --z-cta-bar:80;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0; font-family:var(--font-body); font-size:var(--fs-body);
  line-height:1.6; color:var(--ink-900); background:var(--surface-50);
  background-image:var(--grad-page); background-attachment:fixed;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-head); margin:0 0 var(--space-4); color:var(--primary-700);}
h1{font-size:var(--fs-h1); line-height:1.08; font-weight:800; letter-spacing:-0.02em;}
h2{font-size:var(--fs-h2); line-height:1.15; font-weight:700; letter-spacing:-0.01em;}
h3{font-size:var(--fs-h3); line-height:1.25; font-weight:700; letter-spacing:-0.005em;}
p{margin:0 0 var(--space-4);}
a{color:var(--primary-600); text-decoration:none; transition:color var(--dur-2) var(--ease-in-out);}
a:hover{color:var(--primary-500);}
img,svg{max-width:100%; height:auto; display:block;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit; cursor:pointer;}

/* Accessibility: visible focus ring */
:focus-visible{outline:3px solid var(--primary-500); outline-offset:2px; border-radius:4px;}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200; background:var(--primary-700);
  color:#fff; padding:var(--space-3) var(--space-4); border-radius:0 0 var(--r-sm) 0;
}
.skip-link:focus{left:0;}
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- Layout helpers ---------- */
.container{width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter);}
.section{padding-block:var(--space-section); position:relative;}
.section--narrow .container{max-width:var(--container-narrow);}
.section__head{max-width:760px; margin-bottom:var(--space-7);}
.section__head--center{margin-inline:auto; text-align:center;}
.lead{font-size:var(--fs-lead); line-height:1.5; font-weight:500; color:var(--ink-700);}
.overline{
  display:inline-block; font-size:var(--fs-overline); font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--accent-700);
}

/* ---------- Glass surface ---------- */
.glass{
  background:var(--glass-light);
  -webkit-backdrop-filter:var(--blur-md); backdrop-filter:var(--blur-md);
  border:1px solid var(--glass-border);
  border-radius:var(--r-lg); box-shadow:var(--sh-3),var(--sh-inset-glass);
}
.glass-soft{
  background:var(--glass-light-soft);
  -webkit-backdrop-filter:var(--blur-md); backdrop-filter:var(--blur-md);
  border:1px solid var(--glass-border); border-radius:var(--r-lg);
  box-shadow:var(--sh-2),var(--sh-inset-glass);
}
.glass-dark{
  background:var(--glass-dark);
  -webkit-backdrop-filter:var(--blur-lg); backdrop-filter:var(--blur-lg);
  border:1px solid var(--glass-border-dark);
  border-radius:var(--r-lg); box-shadow:var(--sh-3),var(--sh-inset-glass);
}
/* Fallback: no backdrop-filter support -> increase opacity to 0.85 */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .glass{background:rgba(255,255,255,0.92);}
  .glass-soft{background:rgba(255,255,255,0.85);}
  .glass-dark{background:rgba(12,40,60,0.85);}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2);
  min-height:48px; padding:var(--space-3) var(--space-6);
  font-family:var(--font-head); font-weight:700; font-size:1rem; line-height:1.2;
  border:none; border-radius:var(--r-pill); text-align:center;
  transition:transform var(--dur-2) var(--ease-in-out),
             background var(--dur-2) var(--ease-in-out),
             box-shadow var(--dur-2) var(--ease-in-out);
}
.btn--cta{background:var(--grad-cta); color:#fff; box-shadow:var(--sh-cta);}
.btn--cta:hover{background:var(--accent-500); color:#fff; transform:translateY(-2px);}
.btn--cta:active{transform:scale(0.98);}
.btn--outline{
  background:transparent; color:var(--primary-700);
  border:1.5px solid var(--primary-600); box-shadow:var(--sh-1);
}
.btn--outline:hover{background:var(--glass-tint-primary); color:var(--primary-700); transform:translateY(-2px);}
.btn--ghost{background:transparent; color:var(--primary-600); padding-inline:var(--space-3);}
.btn--ghost:hover{color:var(--primary-500);}
.btn--block{width:100%;}
.btn--lg{min-height:54px; font-size:1.0625rem; padding-inline:var(--space-7);}

/* Messenger buttons */
.btn-msg{
  display:inline-flex; align-items:center; gap:var(--space-2);
  min-height:48px; padding:var(--space-3) var(--space-5);
  border-radius:var(--r-pill); font-weight:600; font-size:0.95rem;
  background:var(--glass-light); border:1px solid var(--glass-border);
  color:var(--ink-700); box-shadow:var(--sh-1);
  -webkit-backdrop-filter:var(--blur-sm); backdrop-filter:var(--blur-sm);
  transition:transform var(--dur-2) var(--ease-in-out),background var(--dur-2);
}
.btn-msg svg{width:22px; height:22px;}
.btn-msg:hover{transform:translateY(-2px);}
.btn-msg--wa:hover{background:#25D366; color:#fff;}
.btn-msg--tg:hover{background:#229ED9; color:#fff;}

/* Chips / badges */
.chip{
  display:inline-flex; align-items:center; gap:var(--space-2);
  padding:var(--space-2) var(--space-4); border-radius:var(--r-pill);
  font-size:var(--fs-small); font-weight:600; background:var(--accent-200);
  color:var(--accent-700);
}
.chip--glass{background:var(--glass-light); border:1px solid var(--glass-border); color:var(--ink-700);}
.badge-status{
  display:inline-flex; align-items:center; gap:6px; padding:4px 12px;
  border-radius:var(--r-pill); font-size:var(--fs-small); font-weight:600;
  background:var(--success-bg); color:var(--success-600);
}
.badge-status::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--success-600);}

.arrow-link{display:inline-flex; align-items:center; gap:6px; font-weight:600; color:var(--primary-600);}
.arrow-link .arr{transition:transform var(--dur-2) var(--ease-in-out);}
.arrow-link:hover .arr{transform:translateX(4px);}

/* ---------- Reveal-on-scroll ---------- */
.reveal{opacity:0; transform:translateY(16px); transition:opacity var(--dur-4) var(--ease-out),transform var(--dur-4) var(--ease-out);}
.reveal.is-visible{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{transition:opacity var(--dur-3) ease; transform:none;}
}

/* =========================================================================
   B00 — Header (sticky)
   ========================================================================= */
.site-header{
  position:sticky; top:0; z-index:var(--z-sticky-header);
  background:var(--glass-light); border-bottom:1px solid var(--glass-border);
  -webkit-backdrop-filter:var(--blur-sm); backdrop-filter:var(--blur-sm);
  box-shadow:var(--sh-1); transition:background var(--dur-2),box-shadow var(--dur-2);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .site-header{background:rgba(246,250,253,0.92);}
}
.site-header.scrolled{background:rgba(246,250,253,0.82); box-shadow:var(--sh-2);}
.header__inner{display:flex; align-items:center; gap:var(--space-5); min-height:68px;}
.logo{display:inline-flex; align-items:center; gap:var(--space-2); font-family:var(--font-head); font-weight:800; font-size:1.25rem; color:var(--primary-700);}
.logo img{width:34px; height:34px;}
.main-nav{margin-left:auto;}
.main-nav ul{display:flex; gap:var(--space-5); align-items:center;}
.main-nav a{position:relative; font-weight:600; color:var(--ink-700); padding-block:var(--space-2);}
.main-nav a::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--primary-600); transition:width var(--dur-2) var(--ease-in-out);}
.main-nav a:hover{color:var(--primary-700);} .main-nav a:hover::after{width:100%;}
.main-nav a.active{color:var(--primary-700);}
.main-nav a.active::after{width:100%;}
.header__actions{display:flex; align-items:center; gap:var(--space-3);}
.header__msg{display:flex; gap:var(--space-2);}
.icon-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:var(--r-pill);
  background:var(--glass-light); border:1px solid var(--glass-border);
  color:var(--primary-700); box-shadow:var(--sh-1); transition:transform var(--dur-2),background var(--dur-2);
}
.icon-btn svg{width:22px; height:22px;}
.icon-btn:hover{transform:translateY(-2px);}
.icon-btn.wa:hover{background:#25D366; color:#fff;}
.icon-btn.tg:hover{background:#229ED9; color:#fff;}
.burger{display:none; width:44px; height:44px; border:1px solid var(--glass-border); background:var(--glass-light); border-radius:var(--r-sm); flex-direction:column; align-items:center; justify-content:center; gap:5px;}
.burger span{display:block; width:22px; height:2px; background:var(--primary-700); border-radius:2px; transition:transform var(--dur-2),opacity var(--dur-2);}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Mobile slide-out menu */
.mobile-menu{
  position:fixed; inset:68px 0 0 0; z-index:var(--z-sticky-header);
  background:var(--glass-light); -webkit-backdrop-filter:var(--blur-lg); backdrop-filter:var(--blur-lg);
  padding:var(--space-6) var(--gutter); transform:translateX(100%);
  transition:transform var(--dur-3) var(--ease-out); display:none; flex-direction:column; gap:var(--space-4);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .mobile-menu{background:rgba(246,250,253,0.97);}
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{font-size:1.25rem; font-weight:700; color:var(--primary-700); padding:var(--space-3) 0; min-height:44px; display:flex; align-items:center;}

/* =========================================================================
   B01 — Hero
   ========================================================================= */
.hero{
  position:relative; color:var(--text-on-dark); background:var(--grad-hero);
  padding-block:clamp(96px,10vw,150px) var(--space-section); overflow:hidden;
}
.hero__bg{position:absolute; inset:0; z-index:var(--z-blob); object-fit:cover; width:100%; height:100%; opacity:0.6;}
.blob{position:absolute; border-radius:50%; filter:blur(8px); z-index:var(--z-blob); pointer-events:none;}
.blob--sea{width:520px; height:520px; background:var(--blob-sea); top:-120px; right:-80px;}
.blob--sun{width:440px; height:440px; background:var(--blob-sun); bottom:-140px; left:-100px;}
.hero__grid{position:relative; z-index:var(--z-glass); display:grid; gap:var(--space-7); align-items:start;}
.hero h1{color:var(--text-on-dark);}
.hero .overline{color:var(--accent-400);}
.hero__lead{font-size:var(--fs-lead); color:var(--text-on-dark); opacity:0.92; max-width:60ch;}
.hero__bullets{display:grid; gap:var(--space-3); margin-block:var(--space-5);}
.hero__bullets li{display:flex; gap:var(--space-3); align-items:flex-start; line-height:1.5;}
.hero__bullets .ck{flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--accent-600); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:14px; margin-top:2px;}
.hero__promise{font-size:var(--fs-small); color:var(--primary-300); margin-block:var(--space-4);}
.hero__chips{display:flex; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-5);}
.hero__chips .chip{background:rgba(255,255,255,0.12); color:var(--text-on-dark); border:1px solid var(--glass-border-dark);}
.hero__cta-row{display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center;}
.hero__trust{font-size:var(--fs-small); color:var(--primary-300); margin-top:var(--space-4); display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-4);}
.hero__microtrust{font-size:var(--fs-small); color:var(--primary-300); margin-top:var(--space-5); padding-top:var(--space-4); border-top:1px solid var(--glass-border-dark);}

/* Hero form (glass-dark) */
.hero-form{padding:var(--space-6); align-self:start;}
.hero-form h2{color:var(--text-on-dark); font-size:var(--fs-h3);}
.hero-form .form-note{color:var(--primary-300); font-size:var(--fs-small);}

/* ---------- Forms ---------- */
.field{margin-bottom:var(--space-4);}
.field label{display:block; font-size:var(--fs-small); font-weight:600; margin-bottom:6px;}
.field input,.field textarea{
  width:100%; min-height:48px; padding:var(--space-3) var(--space-4);
  font-family:inherit; font-size:1rem; color:var(--ink-900);
  background:var(--surface-0); border:1.5px solid var(--ink-300);
  border-radius:var(--r-sm); transition:border-color var(--dur-2),box-shadow var(--dur-2);
}
.field textarea{min-height:84px; resize:vertical;}
.field input:focus,.field textarea:focus{
  outline:none; border-color:var(--primary-500);
  box-shadow:0 0 0 3px rgba(46,134,193,0.18);
}
.field input:invalid:not(:placeholder-shown){border-color:var(--danger-600);}
.consent{display:flex; gap:var(--space-3); align-items:flex-start; font-size:var(--fs-small); color:var(--ink-700); margin-bottom:var(--space-4);}
.consent input{flex:0 0 auto; width:22px; height:22px; margin-top:2px; accent-color:var(--accent-600);}
.hero-form .field label,.dark-form .field label{color:var(--text-on-dark);}
.hero-form .consent,.dark-form .consent{color:var(--primary-300);}
.hero-form .consent a,.dark-form .consent a{color:var(--accent-400);}

/* =========================================================================
   B02 — Golden visa hook plate
   ========================================================================= */
.hook-plate{
  padding:var(--space-6); border-left:4px solid var(--warning-600);
  display:grid; gap:var(--space-4);
}
.hook-plate__top{display:flex; gap:var(--space-4); align-items:flex-start;}
.hook-plate__icon{flex:0 0 auto; width:44px; height:44px; border-radius:var(--r-md); background:rgba(201,138,18,0.14); color:var(--warning-600); display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:800;}
.hook-plate__alts{display:grid; gap:var(--space-3);}
.alt-chip{padding:var(--space-3) var(--space-4); border-radius:var(--r-md); background:var(--glass-light-soft); border:1px solid var(--glass-border);}
.alt-chip strong{color:var(--primary-700);}
.alt-chip:hover{background:var(--accent-200);}

/* =========================================================================
   B03 — Основания (cards grid)
   ========================================================================= */
.cards-grid{display:grid; gap:var(--space-5);}
.osn-card{padding:var(--space-5); display:flex; flex-direction:column; gap:var(--space-3); transition:transform var(--dur-2) var(--ease-in-out),box-shadow var(--dur-2),border-color var(--dur-2);}
.osn-card:hover,.osn-card:focus-within{transform:translateY(-4px); box-shadow:var(--sh-3); border-color:var(--accent-400);}
.osn-card__head{display:flex; gap:var(--space-3); align-items:center;}
.osn-card__icon{flex:0 0 auto; width:56px; height:56px;}
.osn-card h3{margin:0;}
.osn-card dl{margin:0; display:grid; gap:var(--space-2);}
.osn-card dt{font-weight:700; color:var(--primary-700); font-size:var(--fs-small);}
.osn-card dd{margin:0; color:var(--ink-700); font-size:0.95rem;}
.osn-card .warn-note{color:var(--accent-700); font-weight:600;}
.osn-card .btn{margin-top:auto;}
.osn-card--arraigo{border-style:dashed; border-color:var(--primary-300); background:var(--glass-light-soft); justify-content:center; text-align:center; align-items:center;}

/* =========================================================================
   B04 — Боли
   ========================================================================= */
.pains-grid{display:grid; gap:var(--space-4);}
.pain-card{padding:var(--space-5); display:flex; gap:var(--space-3); align-items:flex-start; transition:transform var(--dur-2);}
.pain-card:hover{transform:translateY(-3px);}
.pain-card .q{flex:0 0 auto; width:28px; height:28px; border-radius:50%; background:var(--glass-tint-primary); color:var(--primary-600); display:flex; align-items:center; justify-content:center; font-weight:700;}
.bridge{margin-top:var(--space-7); text-align:center; font-size:var(--fs-lead); font-weight:600; color:var(--accent-700); max-width:760px; margin-inline:auto;}

/* =========================================================================
   B05 — Что входит (4 steps)
   ========================================================================= */
.steps-row{display:grid; gap:var(--space-5);}
.step-card{padding:var(--space-5); position:relative; transition:transform var(--dur-2);}
.step-card:hover{transform:translateY(-4px);}
.step-card .num{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:var(--primary-700); color:#fff; font-family:var(--font-head); font-weight:800; margin-bottom:var(--space-3); transition:background var(--dur-2);}
.step-card:hover .num{background:var(--accent-600);}
.step-card .result{margin-top:var(--space-3); padding-top:var(--space-3); border-top:1px solid var(--glass-border); font-size:0.95rem; color:var(--success-600); font-weight:500;}

/* =========================================================================
   B06 — Этапы (timeline)
   ========================================================================= */
.timeline{display:grid; gap:var(--space-5); position:relative;}
.stage-card{padding:var(--space-5); display:grid; gap:var(--space-2); position:relative;}
.stage-card .node{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:var(--accent-600); color:#fff; font-family:var(--font-head); font-weight:800; margin-bottom:var(--space-2);}
.stage-card .term{justify-self:start;}
.stages-illu{margin-top:var(--space-6); border-radius:var(--r-lg); overflow:hidden;}

/* =========================================================================
   B07 — Гарантия
   ========================================================================= */
.guarantee-grid{display:grid; gap:var(--space-5); margin-bottom:var(--space-6);}
.guarantee-card{padding:var(--space-5); transition:transform var(--dur-2);}
.guarantee-card:hover{transform:translateY(-4px);}
.guarantee-card .shield{width:44px; height:44px; color:var(--primary-600); margin-bottom:var(--space-3);}
.anti-marker{padding:var(--space-5); display:flex; gap:var(--space-4); align-items:flex-start; background:var(--glass-light-soft);}
.anti-marker .i{flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--glass-tint-primary); color:var(--primary-600); display:flex; align-items:center; justify-content:center; font-weight:700; font-style:italic;}
.anti-marker p{margin:0; color:var(--ink-700);}

/* =========================================================================
   B08 — Почему мы / E-E-A-T
   ========================================================================= */
.trust-grid{display:grid; gap:var(--space-5); margin-bottom:var(--space-6);}
.trust-card{padding:var(--space-5); transition:transform var(--dur-2);}
.trust-card:hover{transform:translateY(-4px);}
.trust-card h3{font-size:1.15rem; color:var(--primary-700);}
.socproof-slots{display:grid; gap:var(--space-4); margin-bottom:var(--space-6);}
.socproof-slot{padding:var(--space-5); border:1.5px dashed var(--primary-300); border-radius:var(--r-lg); background:var(--glass-light-soft); color:var(--ink-500); text-align:center; font-style:italic;}
.cta-msg-row{display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center;}

/* =========================================================================
   B09 — Возражения (accordion-like Q->A)
   ========================================================================= */
.objections{display:grid; gap:var(--space-4);}
.objection{padding:var(--space-5); transition:transform var(--dur-2);}
.objection:hover{transform:translateY(-3px);}
.objection .obj-q{display:inline-block; padding:var(--space-2) var(--space-4); border:1.5px solid var(--accent-400); border-radius:var(--r-pill); color:var(--accent-700); font-weight:700; font-size:0.95rem; margin-bottom:var(--space-3);}
.objection p{margin:0;}

/* =========================================================================
   B10 — Тарифы
   ========================================================================= */
.pricing-grid{display:grid; gap:var(--space-5); align-items:stretch;}
.price-card{padding:var(--space-6); display:flex; flex-direction:column; gap:var(--space-3); transition:transform var(--dur-2),box-shadow var(--dur-2);}
.price-card:hover{transform:translateY(-4px); box-shadow:var(--sh-3);}
.price-card .price{font-family:var(--font-head); font-weight:800; font-size:1.6rem; color:var(--accent-700);}
.price-card ul{display:grid; gap:var(--space-2); margin-block:var(--space-3);}
.price-card li{display:flex; gap:var(--space-2); align-items:flex-start; font-size:0.95rem; color:var(--ink-700);}
.price-card li::before{content:"✓"; color:var(--success-600); font-weight:700; flex:0 0 auto;}
.price-card li.muted{color:var(--ink-500);} .price-card li.muted::before{content:"–"; color:var(--ink-300);}
.price-card .btn{margin-top:auto;}
.price-card--featured{border:2px solid transparent; background:linear-gradient(var(--glass-light),var(--glass-light)) padding-box,var(--grad-cta) border-box; box-shadow:var(--sh-3);}
.price-card__badge{align-self:flex-start; background:var(--grad-cta); color:#fff; padding:4px 14px; border-radius:var(--r-pill); font-size:var(--fs-small); font-weight:700;}
.price-note{margin-top:var(--space-5); font-size:var(--fs-small); color:var(--ink-500); max-width:760px;}

/* =========================================================================
   B11 — Причины отказов (table/cards)
   ========================================================================= */
.refusals{display:grid; gap:var(--space-4);}
.refusal{padding:var(--space-4) var(--space-5); display:grid; gap:var(--space-3); grid-template-columns:1fr auto 1fr; align-items:center; transition:transform var(--dur-2);}
.refusal:hover{transform:translateY(-3px);}
.refusal .cause{color:var(--danger-600); font-weight:600;}
.refusal .arr{color:var(--primary-500); font-size:1.4rem; text-align:center; transition:transform var(--dur-2);}
.refusal:hover .arr{transform:translateX(4px);}
.refusal .fix{color:var(--success-600); font-weight:500;}

/* =========================================================================
   B12 — Отзывы (placeholder slots)
   ========================================================================= */
.reviews{display:grid; gap:var(--space-5);}
.review-card{padding:var(--space-5); display:flex; flex-direction:column; gap:var(--space-3); transition:transform var(--dur-2);}
.review-card:hover{transform:translateY(-4px);}
.review-card__head{display:flex; gap:var(--space-3); align-items:center;}
.review-card__avatar{width:48px; height:48px; border-radius:50%;}
.review-card .quote{color:var(--accent-600); font-size:2rem; font-family:var(--font-head); line-height:1;}
.review-card .placeholder-text{color:var(--ink-500); font-style:italic;}
.reviews-note{margin-top:var(--space-5); text-align:center; color:var(--ink-500); font-size:var(--fs-small); max-width:680px; margin-inline:auto;}

/* =========================================================================
   B13 — Что даёт ВНЖ + налоги
   ========================================================================= */
.vnj-grid{display:grid; gap:var(--space-6);}
.benefits-list{display:grid; gap:var(--space-3);}
.benefits-list li{display:flex; gap:var(--space-3); align-items:flex-start;}
.benefits-list .ck{flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--success-bg); color:var(--success-600); display:inline-flex; align-items:center; justify-content:center; font-size:14px; font-weight:700;}
.tax-panel{padding:var(--space-6); background:linear-gradient(var(--glass-light),var(--glass-light)); border-left:4px solid var(--accent-400);}
.tax-panel h3{color:var(--accent-700);}
.cta-leadmag{margin-top:var(--space-6);}

/* =========================================================================
   B14 — FAQ (accordion)
   ========================================================================= */
.faq{display:grid; gap:var(--space-3);}
.faq-item{border-radius:var(--r-md); overflow:hidden; background:var(--glass-light-soft); border:1px solid var(--glass-border); -webkit-backdrop-filter:var(--blur-md); backdrop-filter:var(--blur-md);}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.faq-item{background:rgba(255,255,255,0.85);}}
.faq-item.open{border-left:3px solid var(--accent-600);}
.faq-q{width:100%; display:flex; gap:var(--space-4); align-items:center; justify-content:space-between; padding:var(--space-4) var(--space-5); background:transparent; border:none; text-align:left; font-family:var(--font-head); font-weight:700; font-size:1.05rem; color:var(--primary-700); min-height:56px; transition:background var(--dur-2);}
.faq-q:hover{background:var(--glass-tint-primary);}
.faq-q .pm{flex:0 0 auto; width:28px; height:28px; position:relative; transition:transform var(--dur-3) var(--ease-in-out);}
.faq-q .pm::before,.faq-q .pm::after{content:""; position:absolute; background:var(--accent-600); border-radius:2px; left:50%; top:50%; transform:translate(-50%,-50%);}
.faq-q .pm::before{width:14px; height:2px;}
.faq-q .pm::after{width:2px; height:14px; transition:transform var(--dur-3) var(--ease-in-out);}
.faq-item.open .pm::after{transform:translate(-50%,-50%) scaleY(0);}
.faq-a{overflow:hidden; height:0; transition:height var(--dur-3) var(--ease-out);}
@media (prefers-reduced-motion:reduce){.faq-a{transition:none;}}
.faq-a__inner{padding:0 var(--space-5) var(--space-5); color:var(--ink-700);}
.faq-a__inner a{word-break:break-word;}

/* =========================================================================
   B15 — Финальный CTA + форма (dark)
   ========================================================================= */
.final-cta{position:relative; background:var(--grad-dark); color:var(--text-on-dark); overflow:hidden;}
.final-cta .blob{opacity:0.5;}
.final-cta__inner{position:relative; z-index:var(--z-glass); max-width:760px; margin-inline:auto; text-align:center;}
.final-cta h2{color:var(--text-on-dark);}
.final-cta .lead{color:var(--text-on-dark); opacity:0.92;}
.dark-form{padding:var(--space-6); margin-top:var(--space-6); text-align:left;}
.dark-form h2{color:var(--text-on-dark);}
.final-microtrust{margin-top:var(--space-4); font-size:var(--fs-small); color:var(--primary-300);}

/* Success message (hidden, structure only) */
.form-success{display:none; padding:var(--space-5); border-radius:var(--r-md); background:var(--success-bg); color:var(--success-600); border:1px solid rgba(30,142,90,0.3);}
.form-success.show{display:block;}

/* =========================================================================
   B16 — Контакты
   ========================================================================= */
.contacts-grid{display:grid; gap:var(--space-6);}
.contacts-panel{padding:var(--space-6);}
.contact-channels{display:grid; gap:var(--space-3); margin-bottom:var(--space-5);}
.contact-channel{display:flex; gap:var(--space-3); align-items:center; padding:var(--space-3) var(--space-4); border-radius:var(--r-md); background:var(--glass-light-soft); border:1px solid var(--glass-border); min-height:52px; transition:transform var(--dur-2),background var(--dur-2);}
.contact-channel:hover{transform:translateY(-2px);}
.contact-channel svg{width:24px; height:24px; flex:0 0 auto;}
.cities{display:flex; flex-wrap:wrap; gap:var(--space-2); margin-block:var(--space-4);}
.req-block{font-size:var(--fs-small); color:var(--ink-500);}

/* =========================================================================
   B17 — Footer
   ========================================================================= */
.site-footer{background:var(--grad-dark); color:var(--text-on-dark); padding-block:var(--space-8) var(--space-6);}
.footer__grid{display:grid; gap:var(--space-6);}
.footer__brand .logo{color:#fff;}
.footer nav ul{display:flex; flex-wrap:wrap; gap:var(--space-4);}
.footer nav a,.footer a{color:var(--primary-300);}
.footer nav a:hover,.footer a:hover{color:#fff;}
.footer__disclaimer{font-size:var(--fs-small); color:var(--primary-300); padding-top:var(--space-5); border-top:1px solid var(--glass-border-dark); max-width:860px;}
.footer__copy{font-size:var(--fs-small); color:var(--primary-300); margin-top:var(--space-4);}

/* =========================================================================
   Sticky mobile CTA bar
   ========================================================================= */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:var(--z-cta-bar);
  display:none; gap:var(--space-3); padding:var(--space-3) var(--gutter);
  background:var(--glass-light); border-top:1px solid var(--glass-border);
  -webkit-backdrop-filter:var(--blur-md); backdrop-filter:var(--blur-md);
  box-shadow:0 -6px 16px rgba(10,42,67,0.1);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .sticky-cta{background:rgba(246,250,253,0.95);}
}
.sticky-cta .btn{flex:1;}
.sticky-cta .icon-btn{flex:0 0 auto;}

/* =========================================================================
   Modal — popup quiz «Подходит ли мне?»
   ========================================================================= */
.modal-overlay{
  position:fixed; inset:0; z-index:var(--z-popup-overlay); display:none;
  align-items:center; justify-content:center; padding:var(--gutter);
  background:rgba(10,42,67,0.55); -webkit-backdrop-filter:var(--blur-sm); backdrop-filter:var(--blur-sm);
}
.modal-overlay.open{display:flex;}
.modal{
  position:relative; z-index:var(--z-popup); width:100%; max-width:540px;
  max-height:90vh; overflow-y:auto; padding:var(--space-6);
  background:var(--glass-light); -webkit-backdrop-filter:var(--blur-lg); backdrop-filter:var(--blur-lg);
  border:1px solid var(--glass-border); border-radius:var(--r-lg); box-shadow:var(--sh-3),var(--sh-inset-glass);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.modal{background:rgba(255,255,255,0.96);}}
.modal__close{position:absolute; top:var(--space-3); right:var(--space-3); width:44px; height:44px; border-radius:50%; border:none; background:var(--glass-light-soft); color:var(--primary-700); font-size:1.5rem; line-height:1; display:flex; align-items:center; justify-content:center;}
.modal__close:hover{background:var(--accent-200);}

/* =========================================================================
   Responsive — mobile-first breakpoints 360 / 768 / 1024 / 1440
   ========================================================================= */

/* ≤768: burger + sticky CTA bar */
@media (max-width:768px){
  .main-nav,.header__msg .tg-only,.header__cta{display:none;}
  .burger{display:flex;}
  .mobile-menu{display:flex;}
  .sticky-cta{display:flex;}
  body{padding-bottom:76px;}
  .refusal{grid-template-columns:1fr; gap:var(--space-2); text-align:left;}
  .refusal .arr{justify-self:start; transform:rotate(90deg);}
  .refusal:hover .arr{transform:rotate(90deg) translateX(4px);}
}

/* ≥768: 2-column card grids */
@media (min-width:768px){
  .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pains-grid{grid-template-columns:repeat(2,1fr);}
  .steps-row{grid-template-columns:repeat(2,1fr);}
  .guarantee-grid{grid-template-columns:repeat(2,1fr);}
  .trust-grid{grid-template-columns:repeat(2,1fr);}
  .socproof-slots{grid-template-columns:repeat(3,1fr);}
  .reviews{grid-template-columns:repeat(3,1fr);}
  .objections{grid-template-columns:repeat(2,1fr);}
  .footer__grid{grid-template-columns:1.4fr 1fr;}
}

/* ≥1024: hero 2 columns, 3-col grids, horizontal contacts */
@media (min-width:1024px){
  .hero__grid{grid-template-columns:7fr 5fr; gap:var(--space-8);}
  .cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .steps-row{grid-template-columns:repeat(4,1fr);}
  .guarantee-grid{grid-template-columns:repeat(3,1fr);}
  .trust-grid{grid-template-columns:repeat(4,1fr);}
  .timeline{grid-template-columns:repeat(5,1fr);}
  .pricing-grid{grid-template-columns:repeat(3,1fr);}
  .pains-grid{grid-template-columns:repeat(3,1fr);}
  .vnj-grid{grid-template-columns:1.1fr 0.9fr;}
  .contacts-grid{grid-template-columns:1fr 1fr;}
  .price-card--featured{transform:translateY(-12px);}
  .price-card--featured:hover{transform:translateY(-16px);}
}

/* ≥1440: max air */
@media (min-width:1440px){
  .blob--sea{width:640px; height:640px;}
  .blob--sun{width:560px; height:560px;}
}

/* parallax helper toggled via JS; disabled on reduced-motion */
@media (prefers-reduced-motion:reduce){
  .blob{animation:none !important;}
  *{scroll-behavior:auto;}
}
@media (prefers-reduced-motion:no-preference){
  .blob--sea{animation:float-a var(--dur-blob) ease-in-out infinite;}
  .blob--sun{animation:float-b var(--dur-blob) ease-in-out infinite;}
}
@keyframes float-a{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-24px,20px) scale(1.06);}}
@keyframes float-b{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(20px,-18px) scale(1.05);}}

/* =========================================================================
   Формы: inline-ошибки + квиз-шаги (Шаг 11a, backend)
   ========================================================================= */
.field--error input,.field--error textarea{border-color:var(--danger-600); box-shadow:0 0 0 3px var(--danger-bg);}
.field-error{margin-top:var(--space-2); font-size:var(--fs-small); color:var(--danger-600); line-height:1.4;}
.field-error:empty{display:none;}
.consent.field--error{padding:var(--space-2) var(--space-3); border-radius:var(--r-sm); background:var(--danger-bg);}
.hero-form .field-error,.dark-form .field-error{color:var(--accent-400);}
button[aria-busy="true"]{opacity:.75; cursor:progress;}

.quiz-steps{margin-top:var(--space-4);}
.quiz-progress{font-size:var(--fs-small); font-weight:600; color:var(--primary-600); margin-bottom:var(--space-3); letter-spacing:.02em;}
.quiz-question{font-size:var(--fs-lead); font-weight:600; color:var(--ink-900); margin-bottom:var(--space-4); line-height:1.4;}
.quiz-options{display:grid; gap:var(--space-3); margin-bottom:var(--space-4);}
.quiz-opt{text-align:left; justify-content:flex-start;}
.quiz-back{margin-top:var(--space-2);}
.quiz-result__note{font-size:var(--fs-small); color:var(--ink-500); margin-bottom:var(--space-4); line-height:1.5;}

/* ---------- QA-фикс: устранение горизонтального оверфлоу (Шаг 12, браузерный) ---------- */
/* грид-треки и их контент должны уметь сжиматься ниже min-content (длинные слова в заголовках) */
.cards-grid > *, .pains-grid > *, .timeline > *, .pricing-grid > *,
.guarantee-grid > *, .trust-grid > *, .objections > *, .reviews > *{min-width:0;}
.osn-card, .osn-card__head{min-width:0;}
.osn-card h3, .osn-card dd, .price-card h3{overflow-wrap:anywhere; word-break:break-word;}
img{max-width:100%;}
