/* =========================================================
   ОСНОВА Капитал · «ОСНОВА Человечный»
   Тепло · безопасность · доверие через людей
   ========================================================= */

:root{
  /* palette */
  --ivory:        #FBF7F0;   /* warm background */
  --ivory-2:      #F4EEE2;   /* slightly deeper card bg */
  --ivory-3:      #EFE7D7;
  --forest:       #1F4D3A;   /* primary deep forest */
  --forest-dark:  #143A2B;   /* darker */
  --forest-ink:   #102E22;   /* text on light */
  --terracotta:   #C8754D;   /* warm accent / CTA */
  --terracotta-dk:#B0623C;
  --sage:         #A9C0AE;   /* soft sage */
  --sage-soft:    #CFE0D3;
  --cream-card:   #FFFFFF;

  --text:         #1B3A2C;   /* dark green-ink for body (AA on ivory) */
  --text-soft:    #46604F;   /* muted */
  --text-on-dark: #F3EEE3;

  /* type */
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:  'Manrope', 'Segoe UI', system-ui, -apple-system, sans-serif;

  /* radii */
  --r-sm: 12px;
  --r-md: 20px;
  --r-lg: 28px;
  --r-xl: 36px;
  --r-pill: 999px;

  /* shadows (soft, warm) */
  --sh-sm: 0 4px 14px rgba(31,77,58,.07);
  --sh-md: 0 14px 40px rgba(31,77,58,.10);
  --sh-lg: 0 26px 70px rgba(31,77,58,.16);
  --sh-cta: 0 12px 28px rgba(200,117,77,.32);

  --maxw: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(16px,1.05vw,17.5px);
  line-height:1.62;
  color:var(--text);
  background:var(--ivory);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
h1,h2,h3{ font-family:var(--serif); font-weight:600; line-height:1.12; color:var(--forest-ink); letter-spacing:-.01em; margin:0; }
p{ margin:0; }

.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.container-narrow{ max-width:840px; }

.visually-hidden{
  position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute; left:-999px; top:0; z-index:1000;
  background:var(--forest); color:#fff; padding:12px 20px; border-radius:0 0 var(--r-sm) 0;
  font-weight:700;
}
.skip-link:focus{ left:0; }

:focus-visible{
  outline:3px solid var(--terracotta);
  outline-offset:3px;
  border-radius:6px;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:.85em 1.6em;
  font-weight:700; font-size:1rem; line-height:1;
  border-radius:var(--r-pill);
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), background .25s ease, color .25s ease;
  text-align:center; white-space:nowrap;
}
.btn:active{ transform:translateY(1px) scale(.98); }
.btn-lg{ padding:1.05em 2em; font-size:1.05rem; }
.btn-block{ width:100%; }

.btn-primary{ background:var(--forest); color:#fff; box-shadow:var(--sh-sm); }
.btn-primary:hover{ background:var(--forest-dark); transform:translateY(-3px); box-shadow:var(--sh-md); }

.btn-accent{ background:var(--terracotta); color:#fff; box-shadow:var(--sh-cta); }
.btn-accent:hover{ background:var(--terracotta-dk); transform:translateY(-3px) scale(1.02); box-shadow:0 16px 34px rgba(200,117,77,.42); }

.btn-ghost{ background:rgba(255,255,255,.65); color:var(--forest); border:2px solid var(--sage); }
.btn-ghost:hover{ background:#fff; border-color:var(--forest); transform:translateY(-3px); box-shadow:var(--sh-sm); }

/* ============ HEADER ============ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,247,240,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(31,77,58,.07);
  transition:box-shadow .3s ease, background .3s ease;
}
.site-header.scrolled{ box-shadow:0 6px 24px rgba(31,77,58,.08); background:rgba(251,247,240,.94); }
.header-inner{ display:flex; align-items:center; gap:18px; min-height:74px; }

.logo{ display:inline-flex; align-items:center; gap:11px; flex-shrink:0; }
.logo-mark svg{ display:block; border-radius:11px; box-shadow:var(--sh-sm); }
.logo-text{ display:flex; flex-direction:column; line-height:1; }
.logo-text strong{ font-family:var(--serif); font-size:1.18rem; color:var(--forest-ink); letter-spacing:.01em; }
.logo-text span{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--terracotta); font-weight:700; }

.main-nav{ margin-left:auto; }
.main-nav ul{ display:flex; gap:clamp(6px,0.9vw,18px); }
.main-nav a{
  font-size:.9rem; font-weight:600; color:var(--text-soft);
  padding:8px 4px; position:relative; transition:color .2s ease;
  white-space:nowrap;
}
.main-nav a::after{
  content:""; position:absolute; left:4px; right:4px; bottom:2px; height:2px;
  background:var(--terracotta); border-radius:2px;
  transform:scaleX(0); transform-origin:center; transition:transform .25s var(--ease);
}
.main-nav a:hover{ color:var(--forest-ink); }
.main-nav a:hover::after{ transform:scaleX(1); }

.header-actions{ display:flex; align-items:center; gap:clamp(8px,1vw,14px); margin-left:clamp(8px,1.4vw,18px); flex-shrink:0; }
.header-phone{
  display:inline-flex; align-items:center; gap:7px;
  font-weight:700; font-size:.92rem; color:var(--forest-ink);
  transition:color .2s ease;
  white-space:nowrap;
}
.header-phone span{ white-space:nowrap; }
.header-phone svg{ color:var(--terracotta); }
.header-phone:hover{ color:var(--terracotta); }
.header-cta{ padding:.7em 1.3em; }

.burger{ display:none; width:46px; height:46px; border-radius:14px; flex-direction:column; gap:5px; align-items:center; justify-content:center; background:rgba(255,255,255,.6); }
.burger span{ width:22px; height:2.5px; background:var(--forest-ink); border-radius:2px; transition:transform .3s var(--ease), opacity .25s ease; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* mobile menu */
.mobile-menu{
  position:fixed; top:0; right:0; bottom:0; width:min(86vw,360px); z-index:200;
  background:var(--ivory); box-shadow:var(--sh-lg);
  transform:translateX(100%); transition:transform .38s var(--ease);
  padding:90px 26px 30px; overflow-y:auto;
}
.mobile-menu.open{ transform:translateX(0); }
.mobile-menu ul{ display:flex; flex-direction:column; gap:4px; margin-bottom:22px; }
.mobile-menu a{ display:block; padding:13px 12px; border-radius:var(--r-sm); font-weight:600; font-size:1.05rem; color:var(--forest-ink); transition:background .2s ease; }
.mobile-menu a:hover{ background:var(--ivory-2); }
.mobile-phone{ display:block; margin:10px 0 16px; font-size:1.25rem; }
.menu-overlay{ position:fixed; inset:0; z-index:150; background:rgba(16,46,34,.4); opacity:0; transition:opacity .3s ease; }
.menu-overlay.show{ opacity:1; }

/* ============ HERO ============ */
.hero{ position:relative; padding:clamp(40px,6vw,84px) 0 clamp(80px,9vw,130px); overflow:hidden; background:
  radial-gradient(1200px 600px at 78% -10%, var(--sage-soft) 0%, transparent 55%),
  linear-gradient(170deg, #FCF9F3 0%, var(--ivory) 40%, #F1ECE0 100%);
}
.hero-blobs{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.blob{ position:absolute; filter:blur(6px); opacity:.5; }
.blob path{ opacity:.6; }
.blob-1{ width:46vw; max-width:560px; top:-12%; right:-8%; opacity:.45; }
.blob-2{ width:30vw; max-width:360px; bottom:2%; left:-9%; opacity:.32; }
.blob-3{ width:22vw; max-width:260px; top:48%; right:34%; opacity:.10; }

.hero-inner{ position:relative; z-index:2; display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(28px,4vw,60px); align-items:center; }

.hero-eyebrow{ display:inline-block; font-weight:700; font-size:.85rem; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta); margin-bottom:18px; background:rgba(200,117,77,.10); padding:7px 16px; border-radius:var(--r-pill); }
.hero h1{ font-size:clamp(2.1rem,5vw,3.7rem); margin-bottom:20px; }
.hero-sub{ font-size:clamp(1.05rem,1.5vw,1.28rem); color:var(--text-soft); max-width:34ch; margin-bottom:26px; }
.hero-sub strong{ color:var(--forest-ink); }

.trust-badges{ display:flex; flex-wrap:wrap; gap:10px 12px; margin-bottom:30px; }
.trust-badges li{
  display:inline-flex; align-items:center; gap:7px;
  font-size:.85rem; font-weight:600; color:var(--forest);
  background:rgba(255,255,255,.7); border:1px solid var(--sage);
  padding:8px 14px; border-radius:var(--r-pill);
}
.trust-badges svg{ color:var(--forest); flex-shrink:0; }

.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:24px; }

.hero-miniform{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; background:rgba(255,255,255,.66); border:1px solid rgba(31,77,58,.10); padding:10px; border-radius:var(--r-pill); max-width:520px; box-shadow:var(--sh-sm); }
.hero-miniform input{
  flex:1 1 180px; min-width:0; border:none; background:transparent;
  padding:.7em 1em; font-size:1rem; color:var(--forest-ink); font-family:inherit;
}
.hero-miniform input:focus{ outline:none; }
.hero-miniform .btn{ flex:0 0 auto; }
.hero-miniform.error{ border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(200,117,77,.18); }
.form-msg{ flex-basis:100%; font-size:.86rem; font-weight:600; margin-top:2px; min-height:1px; }
.form-msg.ok{ color:var(--forest); }
.form-msg.err{ color:var(--terracotta-dk); }

/* hero visual */
.hero-visual{ position:relative; }
.hero-photo-wrap{ position:relative; max-width:480px; margin-inline:auto; }
.hero-photo{
  position:relative; z-index:2; margin:0; border-radius:46% 54% 52% 48% / 54% 48% 52% 46%;
  overflow:hidden; box-shadow:var(--sh-lg);
  aspect-ratio:7/8; background:linear-gradient(160deg,var(--sage) 0%, var(--forest) 100%);
  animation:morphPhoto 16s ease-in-out infinite;
}
.hero-photo img{ width:100%; height:100%; object-fit:cover; }
.hero-photo-deco{ position:absolute; border-radius:50%; z-index:1; }
.deco-a{ width:62%; height:62%; top:-8%; right:-10%; background:radial-gradient(circle at 30% 30%, var(--terracotta), var(--terracotta-dk)); opacity:.16; }
.deco-b{ width:48%; height:48%; bottom:-6%; left:-8%; background:radial-gradient(circle at 40% 40%, var(--sage), var(--forest)); opacity:.22; }

.hero-floating-card{
  position:absolute; z-index:3; background:#fff; border-radius:var(--r-md);
  box-shadow:var(--sh-md); padding:13px 18px; display:flex; align-items:center; gap:10px;
}
.card-rate{ top:8%; left:-6%; flex-direction:column; align-items:flex-start; gap:2px; }
.card-rate .fc-label{ font-size:.74rem; color:var(--text-soft); font-weight:600; }
.card-rate .fc-value{ font-family:var(--serif); font-size:1.5rem; font-weight:700; color:var(--terracotta); }
.card-time{ bottom:6%; right:-8%; }
.card-time span{ font-size:.82rem; line-height:1.2; color:var(--text-soft); }
.card-time strong{ font-size:1.05rem; color:var(--forest-ink); }

@keyframes morphPhoto{
  0%,100%{ border-radius:46% 54% 52% 48% / 54% 48% 52% 46%; }
  50%{ border-radius:54% 46% 48% 52% / 48% 54% 46% 52%; }
}

.hero-wave{ position:absolute; left:0; right:0; bottom:-1px; z-index:1; line-height:0; }
.hero-wave svg{ width:100%; height:clamp(40px,6vw,80px); }

/* image fallback (broken Unsplash) */
.img-fallback{
  width:100%; height:100%;
  background:linear-gradient(150deg,var(--sage) 0%, var(--forest) 100%)!important;
  position:relative; min-height:160px;
}
.img-fallback::after{
  content:attr(data-initials);
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:3rem; font-weight:700; color:rgba(255,255,255,.85);
}

/* ============ TRUST BAR ============ */
.trust-bar{ background:linear-gradient(165deg,var(--forest) 0%, var(--forest-dark) 100%); color:var(--text-on-dark); padding:clamp(34px,5vw,56px) 0; position:relative; }
.trust-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:24px 18px; text-align:center; }
.trust-item{ display:flex; flex-direction:column; gap:6px; }
.trust-num{ font-family:var(--serif); font-size:clamp(2rem,3.2vw,2.9rem); font-weight:700; color:#fff; line-height:1; }
.trust-cap{ font-size:.85rem; color:rgba(243,238,227,.78); line-height:1.35; }

/* ============ SECTION HEAD ============ */
section{ position:relative; }
.calc-section, .advantages, .owner, .collateral, .how, .cases, .team, .reviews, .docs, .faq, .contacts{
  padding:clamp(56px,8vw,108px) 0;
}
.section-head{ text-align:center; max-width:660px; margin:0 auto clamp(34px,5vw,58px); }
.section-tag{
  display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--terracotta); background:rgba(200,117,77,.10); padding:6px 16px; border-radius:var(--r-pill); margin-bottom:16px;
}
.section-head h2{ font-size:clamp(1.7rem,3.4vw,2.7rem); margin-bottom:14px; }
.section-head p{ font-size:clamp(1rem,1.3vw,1.15rem); color:var(--text-soft); }

/* ============ CALCULATOR ============ */
.calc-section{ background:var(--ivory); }
.calc-card{
  display:grid; grid-template-columns:1.1fr .9fr; gap:0;
  background:var(--cream-card); border-radius:var(--r-xl); overflow:hidden;
  box-shadow:var(--sh-lg); border:1px solid rgba(31,77,58,.06);
}
.calc-controls{ padding:clamp(26px,3.5vw,44px); display:flex; flex-direction:column; gap:26px; }
.calc-field{ display:flex; flex-direction:column; gap:12px; }
.calc-field-top{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.calc-field label,.calc-field-label{ font-weight:700; font-size:1rem; color:var(--forest-ink); }
.calc-input-wrap{ display:inline-flex; align-items:center; gap:4px; background:var(--ivory-2); border-radius:var(--r-sm); padding:6px 12px; border:1.5px solid transparent; transition:border-color .2s ease; }
.calc-input-wrap:focus-within{ border-color:var(--terracotta); }
.calc-input-wrap input,.calc-input-wrap output{
  font-family:var(--serif); font-weight:700; font-size:1.15rem; color:var(--forest-ink);
  border:none; background:transparent; text-align:right; width:auto; min-width:40px; font-variant-numeric:tabular-nums;
}
#calc-amount-num{ width:120px; }
.calc-input-wrap input:focus{ outline:none; }
.calc-unit{ font-weight:700; color:var(--text-soft); font-size:1rem; }

/* range slider */
input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:8px; border-radius:var(--r-pill);
  background:var(--ivory-3); outline-offset:6px; cursor:pointer;
}
input[type=range]::-webkit-slider-runnable-track{ height:8px; border-radius:var(--r-pill); background:transparent; }
input[type=range]::-moz-range-track{ height:8px; border-radius:var(--r-pill); background:var(--ivory-3); }
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:26px; height:26px; margin-top:-9px; border-radius:50%;
  background:var(--terracotta); border:4px solid #fff; box-shadow:0 4px 12px rgba(200,117,77,.4);
  transition:transform .15s ease;
}
input[type=range]::-moz-range-thumb{
  width:26px; height:26px; border-radius:50%; background:var(--terracotta); border:4px solid #fff;
  box-shadow:0 4px 12px rgba(200,117,77,.4);
}
input[type=range]:hover::-webkit-slider-thumb{ transform:scale(1.12); }
input[type=range]:active::-webkit-slider-thumb{ transform:scale(1.2); }
.calc-range-labels{ display:flex; justify-content:space-between; font-size:.78rem; color:var(--text-soft); font-weight:600; }

.calc-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.calc-chip{
  padding:.6em 1.15em; border-radius:var(--r-pill); font-weight:600; font-size:.92rem;
  background:var(--ivory-2); color:var(--text-soft); border:2px solid transparent;
  transition:all .22s var(--ease);
}
.calc-chip:hover{ color:var(--forest-ink); transform:translateY(-2px); }
.calc-chip.is-active{ background:var(--forest); color:#fff; border-color:var(--forest); box-shadow:var(--sh-sm); }

.calc-result{
  background:linear-gradient(165deg,var(--forest) 0%, var(--forest-dark) 100%); color:var(--text-on-dark);
  padding:clamp(26px,3.5vw,44px); display:flex; flex-direction:column; gap:18px;
}
.calc-result-obj{ font-size:.95rem; color:rgba(243,238,227,.8); }
.calc-result-obj strong{ color:#fff; }
.calc-result-main{ display:flex; flex-direction:column; gap:4px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.14); }
.calc-result-label{ font-size:.9rem; color:rgba(243,238,227,.78); }
.calc-result-payment{ font-family:var(--serif); font-size:clamp(2.1rem,3.6vw,3rem); font-weight:700; color:#fff; line-height:1; font-variant-numeric:tabular-nums; }
.calc-result-rows{ display:flex; flex-direction:column; gap:12px; }
.calc-result-row{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:.96rem; }
.calc-result-row span{ color:rgba(243,238,227,.78); }
.calc-result-row strong{ font-size:1.1rem; color:#fff; font-variant-numeric:tabular-nums; }
.calc-result .btn{ margin-top:6px; }
.calc-note{ font-size:.82rem; color:rgba(243,238,227,.62); text-align:center; }

/* ============ ADVANTAGES ============ */
.advantages{ background:linear-gradient(180deg,var(--ivory) 0%, #F6F1E7 100%); }
.adv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
.adv-card{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--cream-card); border-radius:var(--r-lg); padding:30px 28px;
  box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
/* Светлая фото-подложка: релевантное фото приглушено, светлый градиент держит чёрный текст читаемым */
.adv-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.adv-bg img{ width:100%; height:100%; object-fit:cover; opacity:.3;
  filter:saturate(.82) sepia(.12) brightness(1.05); transition:opacity .45s var(--ease), transform .9s var(--ease); }
.adv-card::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(160deg, rgba(251,247,240,.56) 0%, rgba(251,247,240,.78) 52%, rgba(251,247,240,.92) 100%); }
.adv-card.adv-bg-fail .adv-bg, .adv-card.adv-bg-fail::before{ display:none; }
.adv-card > .adv-icon, .adv-card > h3, .adv-card > p{ position:relative; z-index:2; }
.adv-card:hover .adv-bg img{ opacity:.42; transform:scale(1.05); }
.adv-card:hover{ transform:translateY(-7px); box-shadow:var(--sh-md); }
.adv-card-wide{ grid-column:span 1; }
.adv-icon{
  display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px;
  border-radius:18px; background:linear-gradient(150deg,var(--sage-soft),var(--sage)); color:var(--forest);
  margin-bottom:18px; transition:transform .3s var(--ease), background .3s ease;
}
.adv-card:hover .adv-icon{ transform:rotate(-6deg) scale(1.08); background:linear-gradient(150deg,var(--terracotta),var(--terracotta-dk)); color:#fff; }
.adv-card h3{ font-size:1.22rem; margin-bottom:10px; }
.adv-card p{ color:var(--text-soft); font-size:.97rem; }

/* ============ OWNER / STORYTELLING ============ */
.owner{ background:
  radial-gradient(900px 500px at 10% 0%, var(--sage-soft) 0%, transparent 50%),
  linear-gradient(180deg,#F6F1E7 0%, var(--ivory) 100%);
  overflow:hidden;
}
.owner-decor{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.leaf{ position:absolute; opacity:.5; }
.leaf-1{ width:120px; top:14%; left:3%; }
.leaf-2{ width:90px; bottom:18%; right:4%; }

.owner .container{ position:relative; z-index:1; }

/* ---- compact horizontal step slider ---- */
.story{
  position:relative; border-radius:var(--r-xl); overflow:hidden;
  box-shadow:var(--sh-lg); border:1px solid rgba(31,77,58,.08);
  margin-bottom:clamp(34px,5vw,56px);
  /* base brand fallback under all photos */
  background:linear-gradient(150deg,var(--forest) 0%, var(--forest-dark) 100%);
  touch-action:pan-y;
}
/* background crossfade layers */
.story-bg{ position:absolute; inset:0; z-index:0; }
.story-bg-layer{
  position:absolute; inset:0; opacity:0; transition:opacity .7s var(--ease);
  background-size:cover; background-position:center;
}
.story-bg-layer.is-active{ opacity:1; }
/* relevant Unsplash photo with rich gradient fallback under each */
.story-bg-layer[data-bg="1"]{ background-color:#7a5a3c; background-image:linear-gradient(150deg,rgba(31,77,58,.25),rgba(120,80,45,.45)), url("https://images.unsplash.com/photo-1450101499163-c8848c66ca85?auto=format&fit=crop&w=1400&q=70"); }
.story-bg-layer[data-bg="2"]{ background-color:#2c4a5a; background-image:linear-gradient(150deg,rgba(16,46,34,.35),rgba(40,70,90,.5)), url("https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1400&q=70"); }
.story-bg-layer[data-bg="3"]{ background-color:#3f5d44; background-image:linear-gradient(150deg,rgba(31,77,58,.3),rgba(60,90,60,.45)), url("https://images.unsplash.com/photo-1560185007-cde436f6a4d0?auto=format&fit=crop&w=1400&q=70"); }
.story-bg-layer[data-bg="4"]{ background-color:#8a6b4a; background-image:linear-gradient(150deg,rgba(31,77,58,.25),rgba(200,117,77,.4)), url("https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?auto=format&fit=crop&w=1400&q=70"); }
.story-bg-scrim{
  position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(16,46,34,.86) 0%, rgba(16,46,34,.6) 45%, rgba(16,46,34,.34) 100%);
}

.story-viewport{ position:relative; z-index:1; overflow:hidden; }
.story-track{ display:flex; will-change:transform; transition:transform .5s var(--ease); cursor:grab; }
.story-track.is-dragging{ transition:none; cursor:grabbing; }
.story-slide{
  flex:0 0 100%; min-width:100%; box-sizing:border-box;
  display:flex; align-items:center; gap:clamp(20px,3vw,44px);
  padding:clamp(30px,4.5vw,56px) clamp(54px,7vw,96px);
  min-height:clamp(240px,30vw,320px);
}
.story-illu{
  flex:0 0 auto; width:clamp(110px,14vw,170px); aspect-ratio:1/1;
  background:rgba(251,247,240,.92); border-radius:var(--r-lg); padding:14px;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--sh-md);
}
.story-illu .illu{ width:100%; height:100%; }
.story-slide-text{ flex:1 1 auto; color:var(--text-on-dark); min-width:0; }
.story-slide-text .story-step-num{ font-family:var(--serif); font-size:1.35rem; font-weight:700; color:var(--sage); display:block; margin-bottom:8px; }
.story-slide-text h3{ font-size:clamp(1.25rem,2.3vw,1.7rem); margin-bottom:12px; color:#fff; }
.story-slide-text p{ color:rgba(243,238,227,.92); font-size:clamp(.96rem,1.2vw,1.06rem); line-height:1.55; max-width:46ch; }

/* arrows */
.story-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:46px; height:46px; border-radius:50%;
  background:rgba(251,247,240,.92); color:var(--forest-ink);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:var(--sh-md); transition:transform .25s var(--ease), background .25s ease;
}
.story-arrow:hover{ background:#fff; transform:translateY(-50%) scale(1.08); color:var(--terracotta); }
.story-arrow:focus-visible{ outline:3px solid var(--terracotta); outline-offset:2px; }
.story-prev{ left:clamp(10px,1.4vw,18px); }
.story-next{ right:clamp(10px,1.4vw,18px); }

/* indicators */
.story-dots{
  position:absolute; left:0; right:0; bottom:clamp(12px,1.6vw,18px); z-index:3;
  display:flex; justify-content:center; gap:10px;
}
.story-dot{
  width:42px; height:30px; border-radius:var(--r-pill);
  background:rgba(251,247,240,.32); color:rgba(255,255,255,.9);
  font-family:var(--serif); font-weight:700; font-size:.82rem; letter-spacing:.02em;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .25s ease, color .25s ease, transform .25s var(--ease);
}
.story-dot:hover{ background:rgba(251,247,240,.55); transform:translateY(-2px); }
.story-dot.is-active{ background:var(--terracotta); color:#fff; box-shadow:var(--sh-sm); }
.story-dot:focus-visible{ outline:3px solid #fff; outline-offset:2px; }

/* NOT schemes */
.not-schemes{ text-align:center; margin-bottom:clamp(28px,4vw,44px); }
.not-title{ font-size:1.4rem; margin-bottom:20px; }
.not-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; max-width:760px; margin-inline:auto; }
.not-plate{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:.96rem;
  padding:.7em 1.3em; border-radius:var(--r-pill);
  background:#fff; color:var(--text-soft); border:1.5px solid rgba(31,77,58,.10);
}
.yes-plate{ background:var(--forest); color:#fff; border-color:var(--forest); font-weight:700; box-shadow:var(--sh-sm); }

/* fraud checklist */
.fraud-card{
  background:#fff; border-radius:var(--r-xl); padding:clamp(26px,3.5vw,42px);
  box-shadow:var(--sh-md); max-width:780px; margin-inline:auto; border:1px solid rgba(31,77,58,.06);
  border-top:5px solid var(--terracotta);
}
.fraud-head{ display:flex; gap:16px; align-items:flex-start; margin-bottom:20px; }
.fraud-icon{ flex-shrink:0; display:inline-flex; width:54px; height:54px; border-radius:16px; align-items:center; justify-content:center; background:rgba(200,117,77,.12); color:var(--terracotta); }
.fraud-head h3{ font-size:1.4rem; margin-bottom:4px; }
.fraud-head p{ color:var(--text-soft); font-size:.95rem; }
.fraud-list{ display:flex; flex-direction:column; gap:12px; margin-bottom:22px; }
.fraud-list li{ display:flex; align-items:flex-start; gap:12px; font-weight:500; }
.fraud-list li span{ flex-shrink:0; width:24px; height:24px; border-radius:50%; background:rgba(200,117,77,.14); color:var(--terracotta-dk); display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:.85rem; }
.fraud-close{ background:var(--ivory-2); border-radius:var(--r-md); padding:18px 20px; font-size:1.02rem; }
.fraud-close strong{ color:var(--forest); }

/* ============ SECTION HOVER-BACKGROUND (collateral + cases) ============ */
.has-hoverbg{ position:relative; isolation:isolate; transition:background-color .6s var(--ease); }
.has-hoverbg .container{ position:relative; z-index:2; }
.hoverbg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hoverbg-layer{
  position:absolute; inset:0; opacity:0; transition:opacity .6s var(--ease);
  background-size:cover; background-position:center;
}
.hoverbg-scrim{
  position:absolute; inset:0; opacity:0; transition:opacity .6s var(--ease);
  background:linear-gradient(180deg, rgba(16,46,34,.74) 0%, rgba(16,46,34,.6) 100%);
}
/* when any card is hovered, the section turns the matching photo on */
.has-hoverbg.bg-on .hoverbg-scrim{ opacity:1; }
.has-hoverbg.bg-on .hoverbg-layer.is-active{ opacity:1; }
/* text turns light only while a photo background is shown */
.has-hoverbg.bg-on .section-tag{ background:rgba(251,247,240,.18); color:#fff; }
.has-hoverbg.bg-on .section-head h2{ color:#fff; }
.has-hoverbg.bg-on .section-head p{ color:rgba(243,238,227,.92); }

/* collateral backgrounds (per property type), brand color fallback under photo */
.collateral .hoverbg-layer[data-bg="kvartira"]{ background-color:#3a5a47; background-image:url("https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?auto=format&fit=crop&w=1400&q=70"); }
.collateral .hoverbg-layer[data-bg="dom"]{ background-color:#41503a; background-image:url("https://images.unsplash.com/photo-1568605114967-8130f3a36994?auto=format&fit=crop&w=1400&q=70"); }
.collateral .hoverbg-layer[data-bg="aparts"]{ background-color:#2c4a52; background-image:url("https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?auto=format&fit=crop&w=1400&q=70"); }
.collateral .hoverbg-layer[data-bg="commerce"]{ background-color:#4a4334; background-image:url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1400&q=70"); }
.collateral .hoverbg-layer[data-bg="dolya"]{ background-color:#5a4a3a; background-image:url("https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?auto=format&fit=crop&w=1400&q=70"); }

/* cases backgrounds (per case location) */
.cases .hoverbg-layer[data-bg="case-mitino"]{ background-color:#3a5a47; background-image:url("https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?auto=format&fit=crop&w=1400&q=70"); }
.cases .hoverbg-layer[data-bg="case-dom"]{ background-color:#41503a; background-image:url("https://images.unsplash.com/photo-1568605114967-8130f3a36994?auto=format&fit=crop&w=1400&q=70"); }
.cases .hoverbg-layer[data-bg="case-cao"]{ background-color:#2c4a52; background-image:url("https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?auto=format&fit=crop&w=1400&q=70"); }
.cases .hoverbg-layer[data-bg="case-tverskaya"]{ background-color:#4a4334; background-image:url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1400&q=70"); }

/* keep cards legible while section background is a photo */
.has-hoverbg.bg-on .coll-card,
.has-hoverbg.bg-on .case-card{ box-shadow:0 18px 44px rgba(16,46,34,.45); }

/* ============ COLLATERAL ============ */
.collateral{ background:var(--ivory); }
.coll-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:clamp(14px,1.8vw,22px); }
.coll-card{
  background:var(--cream-card); border-radius:var(--r-lg); padding:28px 24px; text-align:center;
  box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.coll-card:hover{ transform:translateY(-7px); box-shadow:var(--sh-md); }
.coll-icon{ display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:20px; background:linear-gradient(150deg,var(--sage-soft),var(--sage)); color:var(--forest); margin-bottom:16px; transition:transform .3s var(--ease); }
.coll-card:hover .coll-icon{ transform:translateY(-3px) scale(1.06) rotate(4deg); }
.coll-card h3{ font-size:1.16rem; margin-bottom:8px; }
.coll-card p{ color:var(--text-soft); font-size:.92rem; }

/* ============ HOW / TIMELINE ============ */
.how{ background:linear-gradient(180deg,var(--ivory) 0%, #F6F1E7 100%); }
.timeline{ position:relative; max-width:760px; margin-inline:auto; display:flex; flex-direction:column; gap:8px; padding-left:0; }
.timeline::before{ content:""; position:absolute; left:21px; top:20px; bottom:20px; width:3px; background:repeating-linear-gradient(var(--sage) 0 8px, transparent 8px 16px); }
.tl-step{ display:flex; gap:22px; align-items:flex-start; padding:14px 0; position:relative; }
.tl-dot{
  flex-shrink:0; width:45px; height:45px; border-radius:50%; z-index:1;
  background:var(--forest); color:#fff; font-family:var(--serif); font-weight:700; font-size:1.25rem;
  display:inline-flex; align-items:center; justify-content:center; box-shadow:0 0 0 6px var(--ivory);
  transition:transform .3s var(--ease), background .3s ease;
}
.tl-step:hover .tl-dot{ background:var(--terracotta); transform:scale(1.08); }
.tl-body{ background:#fff; border-radius:var(--r-md); padding:20px 24px; flex:1; box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05); }
.tl-time{ display:inline-block; font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--terracotta); margin-bottom:6px; }
.tl-body h3{ font-size:1.22rem; margin-bottom:6px; }
.tl-body p{ color:var(--text-soft); font-size:.96rem; }

/* ============ CASES ============ */
.cases{ background:var(--ivory); }
.case-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:clamp(16px,2vw,26px); }
.case-card{ background:var(--cream-card); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05); transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.case-card:hover{ transform:translateY(-7px); box-shadow:var(--sh-md); }
.case-photo{ position:relative; aspect-ratio:5/3; overflow:hidden; background:linear-gradient(150deg,var(--sage),var(--forest)); }
.case-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.case-card:hover .case-photo img{ transform:scale(1.07); }
.case-sum{ position:absolute; left:14px; bottom:14px; background:var(--terracotta); color:#fff; font-weight:700; font-family:var(--serif); font-size:1.2rem; padding:7px 16px; border-radius:var(--r-pill); box-shadow:var(--sh-sm); }
.case-body{ padding:20px 22px; }
.case-body h3{ font-size:1.18rem; margin-bottom:12px; }
.case-meta{ display:flex; flex-direction:column; gap:7px; }
.case-meta li{ position:relative; padding-left:20px; font-size:.92rem; color:var(--text-soft); }
.case-meta li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--sage); }

/* ============ TEAM ============ */
.team{ background:linear-gradient(180deg,var(--ivory) 0%, #F6F1E7 100%); }
.team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:clamp(16px,2vw,26px); }
.team-card{ background:var(--cream-card); border-radius:var(--r-lg); padding:22px; text-align:center; box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05); transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.team-card:hover{ transform:translateY(-7px); box-shadow:var(--sh-md); }
.team-photo{ aspect-ratio:1/1; border-radius:50%; overflow:hidden; max-width:170px; margin:0 auto 18px; background:linear-gradient(150deg,var(--sage),var(--forest)); box-shadow:var(--sh-sm); position:relative; }
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-photo .img-fallback{ border-radius:50%; }
.team-card h3{ font-size:1.18rem; margin-bottom:4px; }
.team-role{ font-weight:700; color:var(--terracotta); font-size:.92rem; margin-bottom:8px; }
.team-note{ color:var(--text-soft); font-size:.9rem; }

/* ============ REVIEWS ============ */
.reviews{ background:var(--ivory); }
.ratings-bar{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:clamp(28px,4vw,46px); }
.rating-badge{ display:inline-flex; align-items:center; gap:10px; background:#fff; border-radius:var(--r-pill); padding:10px 22px; box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.06); }
.rating-platform{ font-weight:700; color:var(--forest-ink); }
.rating-stars{ color:var(--terracotta); letter-spacing:1px; font-size:.95rem; }
.rating-score{ font-family:var(--serif); font-weight:700; font-size:1.2rem; color:var(--forest); }

.review-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:clamp(16px,2vw,24px); }
.review-card{ background:var(--cream-card); border-radius:var(--r-lg); padding:28px 26px; box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05); display:flex; flex-direction:column; gap:14px; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.review-card:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); }
.review-stars{ color:var(--terracotta); letter-spacing:2px; font-size:1.05rem; }
.review-text{ font-size:1rem; color:var(--text); line-height:1.55; flex:1; }
.review-author{ display:flex; align-items:center; gap:13px; font-size:.9rem; color:var(--text-soft); }
.review-avatar{ flex-shrink:0; width:46px; height:46px; border-radius:50%; background:linear-gradient(150deg,var(--sage),var(--forest)); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:700; }
.review-author strong{ color:var(--forest-ink); font-size:.98rem; }

.review-video{ align-items:center; justify-content:center; text-align:center; background:linear-gradient(160deg,var(--forest) 0%, var(--forest-dark) 100%); color:var(--text-on-dark); gap:18px; }
.video-play{ width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.16); color:#fff; display:inline-flex; align-items:center; justify-content:center; transition:transform .25s var(--ease), background .25s ease; }
.video-play:hover{ transform:scale(1.1); background:var(--terracotta); }
.review-video-cap{ font-weight:600; }
.review-video-cap span{ font-weight:400; color:rgba(243,238,227,.7); font-size:.86rem; }

/* ---- reviews: parallax + marquee + decorative shapes ---- */
.reviews{ overflow:hidden; }
.review-card{ will-change:transform; }

/* decorative parallax shapes */
.rev-decor{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.rev-shape{ position:absolute; border-radius:50%; opacity:.5; }
.rev-shape-1{ width:240px; height:240px; top:8%; left:-60px; background:radial-gradient(circle at 35% 35%, var(--sage-soft), var(--sage)); opacity:.45; }
.rev-shape-2{ width:170px; height:170px; bottom:10%; right:-40px; background:radial-gradient(circle at 40% 40%, rgba(200,117,77,.55), rgba(200,117,77,.2)); opacity:.4; }
.rev-shape-3{ width:120px; height:120px; top:22%; right:14%; background:radial-gradient(circle at 40% 40%, rgba(169,192,174,.7), rgba(169,192,174,.1)); opacity:.5; }
.rev-quote{ position:absolute; font-family:var(--serif); font-weight:700; line-height:.6; color:var(--sage); opacity:.32; user-select:none; }
.rev-quote-1{ font-size:220px; top:4%; right:6%; }
.rev-quote-2{ font-size:160px; bottom:2%; left:5%; color:var(--terracotta); opacity:.18; }
.reviews .container, .rev-marquee{ position:relative; z-index:1; }

/* running ratings marquee */
.rev-marquee{ margin:0 0 clamp(26px,4vw,42px); -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.rev-marquee-track{ display:inline-flex; gap:14px; white-space:nowrap; animation:rev-marquee 28s linear infinite; will-change:transform; }
.rev-marquee:hover .rev-marquee-track{ animation-play-state:paused; }
.rev-pill{
  display:inline-flex; align-items:center; gap:9px; flex:0 0 auto;
  background:#fff; border-radius:var(--r-pill); padding:11px 22px; box-shadow:var(--sh-sm);
  border:1px solid rgba(31,77,58,.07); font-weight:700; color:var(--forest);
}
.rev-pill b{ color:var(--forest-ink); }
.rev-pill .rev-stars{ color:var(--terracotta); letter-spacing:1px; font-style:normal; font-size:.92rem; }
.rev-pill-accent{ background:var(--forest); color:#fff; }
@keyframes rev-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============ DOCS ============ */
.docs{
  position:relative; isolation:isolate;
  background:linear-gradient(180deg,var(--ivory) 0%, #F6F1E7 100%);
}
/* refined premium texture: soft brand glows + a fine diagonal weave + dotted grid */
.docs::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(31,77,58,.08), transparent 42%),
    radial-gradient(circle at 88% 82%, rgba(200,117,77,.07), transparent 46%),
    repeating-linear-gradient(135deg, rgba(31,77,58,.035) 0 1px, transparent 1px 11px),
    radial-gradient(rgba(31,77,58,.05) 1px, transparent 1.4px);
  background-size:auto, auto, auto, 22px 22px;
}
.docs-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; margin-bottom:clamp(28px,4vw,40px); }
.doc-card{ display:flex; align-items:center; gap:14px; background:var(--cream-card); border-radius:var(--r-md); padding:18px 18px; box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.06); transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.doc-card:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); }
.doc-icon{ flex-shrink:0; width:46px; height:46px; border-radius:13px; background:rgba(200,117,77,.12); color:var(--terracotta); display:inline-flex; align-items:center; justify-content:center; }
.doc-name{ flex:1; min-width:0; font-weight:600; font-size:.92rem; color:var(--forest-ink); line-height:1.25; overflow-wrap:break-word; word-break:break-word; }
.doc-sub{ display:block; margin-top:2px; font-size:.72rem; font-weight:700; letter-spacing:.04em; color:var(--text-soft); }
.doc-ext{ flex-shrink:0; font-size:.72rem; font-weight:800; letter-spacing:.06em; color:var(--text-soft); background:var(--ivory-2); padding:4px 8px; border-radius:8px; }

.checked-by{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px; background:#fff; border-radius:var(--r-lg); padding:22px 28px; box-shadow:var(--sh-sm); max-width:640px; margin-inline:auto; border:1px solid rgba(31,77,58,.05); }
.checked-title{ font-weight:700; color:var(--forest-ink); }
.checked-list{ display:flex; flex-wrap:wrap; gap:10px; }
.checked-list li{ display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:.92rem; color:var(--forest); background:var(--ivory-2); padding:7px 16px; border-radius:var(--r-pill); }
.checked-list li::before{ content:"✓"; color:var(--terracotta); font-weight:800; }

/* ============ FAQ ============ */
.faq{ background:var(--ivory); }
.faq-list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:var(--cream-card); border-radius:var(--r-md); box-shadow:var(--sh-sm); border:1px solid rgba(31,77,58,.05); overflow:hidden; transition:box-shadow .25s ease; }
.faq-item[open]{ box-shadow:var(--sh-md); }
.faq-item summary{
  list-style:none; cursor:pointer; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-family:var(--serif); font-weight:600; font-size:1.1rem; color:var(--forest-ink);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-chevron{ flex-shrink:0; width:26px; height:26px; border-radius:50%; background:var(--ivory-2); position:relative; transition:background .25s ease, transform .3s var(--ease); }
.faq-chevron::before,.faq-chevron::after{ content:""; position:absolute; top:50%; left:50%; width:11px; height:2.5px; background:var(--forest); border-radius:2px; transform:translate(-50%,-50%); transition:transform .3s var(--ease); }
.faq-chevron::after{ transform:translate(-50%,-50%) rotate(90deg); }
.faq-item[open] .faq-chevron{ background:var(--terracotta); }
.faq-item[open] .faq-chevron::before,.faq-item[open] .faq-chevron::after{ background:#fff; }
.faq-item[open] .faq-chevron::after{ transform:translate(-50%,-50%) rotate(0); }
.faq-answer{ padding:0 24px; max-height:0; overflow:hidden; transition:max-height .4s var(--ease), padding .4s var(--ease); }
.faq-answer p{ color:var(--text-soft); padding-bottom:22px; }
.faq-item[open] .faq-answer{ max-height:500px; }

/* ============ FINAL CTA ============ */
.final-cta{ position:relative; padding:clamp(56px,8vw,108px) 0; background:linear-gradient(165deg,var(--forest) 0%, var(--forest-dark) 100%); overflow:hidden; }
.cta-blobs{ position:absolute; inset:0; pointer-events:none; }
.cta-blob{ position:absolute; border-radius:50%; filter:blur(40px); }
.cb1{ width:340px; height:340px; background:var(--terracotta); opacity:.22; top:-80px; right:-60px; }
.cb2{ width:300px; height:300px; background:var(--sage); opacity:.18; bottom:-90px; left:-60px; }
.cta-card{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:center; background:rgba(251,247,240,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--r-xl); padding:clamp(28px,4vw,52px); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.cta-text h2{ color:#fff; font-size:clamp(1.6rem,3vw,2.5rem); margin-bottom:14px; }
.cta-text p{ color:rgba(243,238,227,.82); margin-bottom:22px; font-size:1.05rem; }
.cta-perks{ display:flex; flex-direction:column; gap:12px; }
.cta-perks li{ display:flex; align-items:center; gap:11px; font-weight:600; color:#fff; }
.cta-perks svg{ flex-shrink:0; color:var(--sage); background:rgba(169,192,174,.16); border-radius:50%; padding:4px; box-sizing:content-box; width:18px; height:18px; }

.cta-form{ background:var(--cream-card); border-radius:var(--r-lg); padding:clamp(24px,3vw,36px); box-shadow:var(--sh-lg); display:flex; flex-direction:column; gap:16px; }
.form-row{ display:flex; flex-direction:column; gap:7px; }
.form-row label{ font-weight:700; font-size:.9rem; color:var(--forest-ink); }
.cta-form input,.cta-form select{
  width:100%; padding:.85em 1.1em; border:1.5px solid rgba(31,77,58,.14); border-radius:var(--r-sm);
  font-family:inherit; font-size:1rem; color:var(--forest-ink); background:var(--ivory); transition:border-color .2s ease, box-shadow .2s ease;
}
.cta-form input:focus,.cta-form select:focus{ outline:none; border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(200,117,77,.16); background:#fff; }
.cta-form input.invalid{ border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(200,117,77,.18); }
.cta-consent{ font-size:.8rem; color:var(--text-soft); text-align:center; line-height:1.4; }

/* ============ CONTACTS ============ */
.contacts{ background:linear-gradient(180deg,var(--ivory) 0%, #F6F1E7 100%); }
.contacts-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3vw,46px); align-items:stretch; }
.contacts-info{ display:flex; flex-direction:column; gap:24px; }
.contact-block{ display:flex; gap:16px; align-items:flex-start; }
.contact-icon{ flex-shrink:0; width:50px; height:50px; border-radius:15px; background:linear-gradient(150deg,var(--sage-soft),var(--sage)); color:var(--forest); display:inline-flex; align-items:center; justify-content:center; }
.contact-block h3{ font-size:1.12rem; margin-bottom:4px; }
.contact-block p{ color:var(--text-soft); }
.contact-block a{ color:var(--forest); font-weight:700; transition:color .2s ease; }
.contact-block a:hover{ color:var(--terracotta); }
.contact-messengers{ display:flex; flex-wrap:wrap; gap:12px; margin-top:4px; }
.msg-btn{ display:inline-flex; align-items:center; gap:8px; padding:.7em 1.3em; border-radius:var(--r-pill); font-weight:700; color:#fff; transition:transform .25s var(--ease), box-shadow .25s ease; }
.msg-wa{ background:#25946b; }
.msg-tg{ background:#2f86c5; }
.msg-btn:hover{ transform:translateY(-3px); box-shadow:var(--sh-md); }

.contacts-map{ position:relative; border-radius:var(--r-xl); overflow:hidden; background:linear-gradient(165deg,var(--forest) 0%, var(--forest-dark) 100%); min-height:340px; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; box-shadow:var(--sh-md); }
.map-skyline{ position:absolute; left:0; right:0; bottom:64px; display:flex; align-items:flex-end; justify-content:center; gap:10px; padding:0 30px; }
.tower{ width:34px; border-radius:8px 8px 0 0; background:linear-gradient(180deg,var(--sage) 0%, rgba(169,192,174,.4) 100%); position:relative; }
.t1{ height:90px; } .t2{ height:140px; } .t3{ height:200px; width:46px; background:linear-gradient(180deg,#fff 0%, var(--sage) 100%); } .t4{ height:120px; } .t5{ height:70px; }
.tower::after{ content:""; position:absolute; inset:8px 6px auto 6px; height:60%; background:repeating-linear-gradient(transparent 0 8px, rgba(31,77,58,.18) 8px 11px); border-radius:4px; }
.t3.here .map-pin{ position:absolute; top:-44px; left:50%; transform:translateX(-50%); animation:pinBounce 2.4s var(--ease) infinite; filter:drop-shadow(0 6px 10px rgba(0,0,0,.3)); }
@keyframes pinBounce{ 0%,100%{ transform:translateX(-50%) translateY(0); } 50%{ transform:translateX(-50%) translateY(-8px); } }
.map-river{ position:absolute; left:0; right:0; bottom:0; height:64px; background:linear-gradient(180deg, rgba(169,192,174,.25), rgba(169,192,174,.05)); border-top:2px solid rgba(169,192,174,.4); }
.map-caption{ position:relative; z-index:1; color:#fff; }
.map-caption strong{ display:block; font-family:var(--serif); font-size:1.2rem; margin-bottom:3px; }
.map-caption span{ color:rgba(243,238,227,.78); font-size:.9rem; }

/* ============ FOOTER ============ */
.site-footer{ background:var(--forest-dark); color:var(--text-on-dark); padding:clamp(48px,6vw,76px) 0 30px; }
.footer-top{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:clamp(24px,3vw,48px); padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.1); }
.logo-footer .logo-text strong{ color:#fff; }
.footer-tagline{ color:rgba(243,238,227,.74); margin:16px 0 20px; max-width:34ch; font-size:.96rem; }
.footer-nav h3,.footer-contacts h3{ font-family:var(--serif); font-size:1.1rem; color:#fff; margin-bottom:16px; }
.footer-nav ul{ display:flex; flex-direction:column; gap:9px; }
.footer-nav a{ color:rgba(243,238,227,.74); font-size:.94rem; transition:color .2s ease; }
.footer-nav a:hover{ color:var(--terracotta); }
.footer-contacts p{ color:rgba(243,238,227,.74); margin-bottom:10px; font-size:.94rem; }
.footer-contacts a{ color:#fff; font-weight:600; }
.footer-contacts a:hover{ color:var(--terracotta); }

.footer-requisites{ padding:24px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-requisites p{ color:rgba(243,238,227,.62); font-size:.85rem; line-height:1.7; }
.footer-warning{ padding:20px 0; }
.footer-warning p{ color:rgba(243,238,227,.5); font-size:.8rem; line-height:1.65; }
.footer-bottom{ display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; padding-top:20px; font-size:.84rem; color:rgba(243,238,227,.55); }
.footer-bottom a{ color:rgba(243,238,227,.7); }
.footer-bottom a:hover{ color:var(--terracotta); }

/* ============ TO-TOP ============ */
.to-top{ position:fixed; right:24px; bottom:24px; z-index:90; width:50px; height:50px; border-radius:50%; background:var(--forest); color:#fff; display:inline-flex; align-items:center; justify-content:center; box-shadow:var(--sh-md); opacity:0; transform:translateY(14px); transition:opacity .3s ease, transform .3s var(--ease), background .25s ease; }
.to-top.show{ opacity:1; transform:translateY(0); }
.to-top:hover{ background:var(--terracotta); transform:translateY(-3px); }

/* ============ SCROLL REVEAL ============ */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
/* stagger inside grids */
.adv-grid .reveal.in,.coll-grid .reveal.in,.team-grid .reveal.in,.case-grid .reveal.in,.review-grid .reveal.in,.docs-grid .reveal.in{ transition-delay:var(--d,0s); }

/* ============ RESPONSIVE ============ */
/* Tighten the full desktop nav before it ever wraps (1180–1400px) */
@media (max-width:1400px){
  .main-nav ul{ gap:clamp(4px,0.6vw,12px); }
  .main-nav a{ font-size:.86rem; padding:8px 3px; }
  .header-phone{ font-size:.88rem; }
  .header-cta{ padding:.66em 1.05em; }
  .header-inner{ gap:12px; }
}
/* Below ~1180px the 7-item nav + phone + CTA no longer fit one line → burger */
@media (max-width:1180px){
  .main-nav{ display:none; }
  .burger{ display:flex; }
  .header-phone span{ display:none; }
  .header-phone{ padding:8px; }
  .header-cta{ padding:.7em 1.3em; font-size:.95rem; }
}
@media (max-width:1080px){
  .trust-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:900px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-text{ order:1; }
  .hero-visual{ order:2; }
  .hero-sub{ max-width:48ch; }
  .calc-card{ grid-template-columns:1fr; }
  .story-slide{ flex-direction:column; text-align:center; gap:18px; padding:28px clamp(48px,9vw,64px) 58px; min-height:0; }
  .story-slide-text p{ max-width:none; margin-inline:auto; }
  .cta-card{ grid-template-columns:1fr; }
  .contacts-grid{ grid-template-columns:1fr; }
}
@media (max-width:680px){
  .adv-grid{ grid-template-columns:1fr; }
  .trust-grid{ grid-template-columns:repeat(2,1fr); gap:22px 14px; }
  .footer-top{ grid-template-columns:1fr; }
  .header-cta{ display:none; }
  .hero-actions .btn{ flex:1 1 100%; }
  .hero-miniform{ border-radius:var(--r-lg); }
  .hero-miniform .btn{ width:100%; }
  .ratings-bar{ gap:10px; }
  .rating-badge{ padding:9px 16px; }
}
@media (max-width:400px){
  :root{ --gutter:16px; }
  .logo-text strong{ font-size:1.05rem; }
  .hero-floating-card{ padding:9px 13px; }
  .card-rate .fc-value{ font-size:1.25rem; }
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
  .reveal{ opacity:1!important; transform:none!important; }
  .blob path{ animation:none!important; }
  .hero-photo{ animation:none!important; }
  .story-track{ transition:none!important; }
  .story-bg-layer{ transition:none!important; }
  .rev-marquee-track{ animation:none!important; }
  .review-card, .rev-shape, .rev-quote{ transform:none!important; }
  .map-pin{ animation:none!important; }
}
