/* ============================================================
   Вилла «Александрия» — витрина объекта
   Тёмный люкс: камень, золото, серифная антиква.
   Requires _shared/css/tokens.css + base.css.
   ============================================================ */

:root{
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
}

html{ scroll-behavior:smooth; }
body{ background:var(--bg,#050505); }
section[id],header[id]{ scroll-margin-top:72px; }

/* reveal on scroll */
.rv{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.rv.vis{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .rv{ opacity:1; transform:none; transition:none; } }

/* ---------- NAV ---------- */
.nav{ position:fixed; inset:0 0 auto 0; z-index:60; transition:background .3s ease, border-color .3s ease; border-bottom:1px solid transparent; }
.nav:not(.solid){ background:linear-gradient(180deg, rgba(5,5,5,.55) 0%, rgba(5,5,5,0) 100%); }
.nav.solid{ background:rgba(5,5,5,.86); -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px); border-bottom-color:rgba(255,255,255,.06); }
.nav-in{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.nav .brand{ font-family:var(--serif); font-size:22px; letter-spacing:.04em; color:#f5f5f5; text-decoration:none; display:flex; align-items:center; gap:10px; }
.nav .brand .mono{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid var(--gold,#E5B869); color:var(--gold,#E5B869); font-family:var(--mono); font-size:14px; }
.nav .links{ display:flex; align-items:center; gap:22px; }
.nav .links a{ color:#c9c9c9; text-decoration:none; font-size:13.5px; letter-spacing:.02em; transition:color .2s; }
.nav .links a:hover{ color:var(--gold,#E5B869); }
.langsw{ display:flex; gap:2px; border:1px solid rgba(255,255,255,.14); border-radius:2px; padding:2px; }
.langsw button{ background:none; border:0; color:#8a8a8a; font-family:var(--mono); font-size:11px; padding:4px 7px; cursor:pointer; }
.langsw button.on{ background:var(--gold,#E5B869); color:#050505; }
.cta-nav{ background:none; border:1px solid var(--gold,#E5B869); color:var(--gold,#E5B869); font-size:13px; letter-spacing:.04em; padding:9px 18px; cursor:pointer; transition:background .2s,color .2s; }
.cta-nav:hover{ background:var(--gold,#E5B869); color:#050505; }
.navtoggle{ display:none; background:none; border:0; color:#f5f5f5; font-size:22px; cursor:pointer; }

/* ---------- HERO ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center 38%; }
.hero-bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(5,5,5,.42) 0%, rgba(5,5,5,.12) 34%, rgba(5,5,5,.62) 74%, rgba(5,5,5,.94) 100%); }
.hero .inner{ position:relative; z-index:2; width:100%; padding-bottom:110px; }
.hero .eyebrow{ color:var(--gold,#E5B869); font-family:var(--mono); font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; text-shadow:0 1px 14px rgba(0,0,0,.85), 0 0 3px rgba(0,0,0,.6); }
.hero .name{ font-family:var(--serif); font-weight:500; font-size:clamp(44px, 7.2vw, 96px); line-height:1.02; color:#fff; margin:18px 0 14px; text-shadow:0 2px 40px rgba(0,0,0,.45); }
.hero .tagline{ max-width:560px; color:#e4e4e4; font-size:clamp(16px,1.7vw,19px); line-height:1.55; margin:0 0 22px; }
.hero-facts{ display:flex; align-items:center; gap:14px; color:#d9d9d9; font-family:var(--mono); font-size:13px; letter-spacing:.06em; margin-bottom:30px; text-shadow:0 1px 12px rgba(0,0,0,.8); }
.hero-facts i{ width:4px; height:4px; border-radius:50%; background:var(--gold,#E5B869); }
.hero .row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.btn-lg{ background:var(--gold,#E5B869); border:0; color:#050505; font-weight:600; font-size:15px; letter-spacing:.03em; padding:16px 34px; cursor:pointer; transition:background .2s, transform .2s; }
.btn-lg:hover{ background:var(--gold-l,#F2D9A4); transform:translateY(-1px); }
.btn-ghost{ display:inline-block; border:1px solid rgba(255,255,255,.35); color:#f0f0f0; text-decoration:none; font-size:14.5px; padding:15px 28px; transition:border-color .2s,color .2s; }
.btn-ghost:hover{ border-color:var(--gold,#E5B869); color:var(--gold,#E5B869); }
.hero-price{ margin-top:34px; display:flex; align-items:baseline; gap:16px; }
.hero-price .l{ color:#9a9a9a; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; font-family:var(--mono); }
.hero-price .v{ font-family:var(--serif); font-size:clamp(26px,3vw,38px); color:var(--gold,#E5B869); letter-spacing:.02em; }
.hero .scroll{ position:absolute; z-index:2; left:50%; transform:translateX(-50%); bottom:26px; display:flex; flex-direction:column; align-items:center; gap:8px; color:#9a9a9a; font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; }
.hero .scroll i{ width:1px; height:34px; background:linear-gradient(180deg,var(--gold,#E5B869),transparent); animation:drop 2s ease infinite; }
@keyframes drop{ 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 100%{transform:scaleY(0);transform-origin:bottom} }

/* ---------- SECTIONS COMMON ---------- */
section{ padding:110px 0; }
.sec-head{ margin-bottom:56px; max-width:720px; }
.sec-head .eyebrow{ color:var(--gold,#E5B869); font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; }
.sec-head h2{ font-family:var(--serif); font-weight:500; font-size:clamp(32px,4vw,52px); line-height:1.08; color:#f5f5f5; margin:14px 0 0; }
.sec-head .lede{ color:#b9b9b9; font-size:16.5px; line-height:1.6; margin:18px 0 0; max-width:560px; }

/* ---------- MANIFESTO ---------- */
.manifesto{ padding:0; }
.chapter{ display:grid; grid-template-columns:1.15fr .85fr; min-height:88vh; }
.chapter.rev{ grid-template-columns:.85fr 1.15fr; }
.chapter.rev .ch-media{ order:2; }
.ch-media{ position:relative; overflow:hidden; }
.ch-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.ch-text{ display:flex; flex-direction:column; justify-content:center; padding:9vw 7vw; background:#0a0a0a; }
.chapter:nth-child(2) .ch-text{ background:#080808; }
.ch-no{ color:var(--gold,#E5B869); font-size:15px; letter-spacing:.3em; margin-bottom:22px; }
.ch-text h2{ font-family:var(--serif); font-weight:500; font-size:clamp(36px,4.4vw,64px); color:#f5f5f5; margin:0 0 22px; }
.ch-text p{ color:#bdbdbd; font-size:clamp(15.5px,1.4vw,18px); line-height:1.75; max-width:46ch; margin:0; }

/* ---------- NUMBERS ---------- */
.numbers{ padding:96px 0; border-top:1px solid rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.05); background:#070707; }
.nums{ display:grid; grid-template-columns:repeat(5,1fr); gap:28px; text-align:center; }
.nums .v{ font-family:var(--serif); font-size:clamp(38px,4.6vw,64px); color:#f5f5f5; line-height:1; }
.nums .v small{ font-size:.42em; color:var(--gold,#E5B869); letter-spacing:.06em; }
.nums .l{ margin-top:12px; color:#9a9a9a; font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }

/* ---------- SPACES ---------- */
.spaces{ background:var(--bg,#050505); }
.levels{ display:flex; flex-direction:column; }
.lvl{ display:grid; grid-template-columns:120px 1fr 300px; gap:28px; align-items:center; padding:34px 0; border-top:1px solid rgba(255,255,255,.08); }
.lvl:last-child{ border-bottom:1px solid rgba(255,255,255,.08); }
.lvl .no{ color:var(--gold,#E5B869); font-size:15px; letter-spacing:.2em; padding-top:6px; align-self:start; }
.lvl-media{ overflow:hidden; }
.lvl-media img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; transition:transform .8s ease; }
.lvl:hover .lvl-media img{ transform:scale(1.04); }
.lvl h3{ font-family:var(--serif); font-weight:500; font-size:clamp(24px,2.4vw,32px); color:#f0f0f0; margin:0 0 10px; }
.lvl p{ color:#ababab; font-size:15.5px; line-height:1.7; margin:0; max-width:66ch; }
.lvl.yard h3{ color:var(--gold,#E5B869); }

/* ---------- GALLERY ---------- */
.gallery{ background:#070707; }
.mosaic{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.mosaic figure{ margin:0; position:relative; overflow:hidden; aspect-ratio:4/3; }
.mosaic img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s ease; }
@media (max-width:960px){ .mosaic{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .mosaic{ grid-template-columns:1fr; } .mosaic figure{ aspect-ratio:3/2; } }
.mosaic figure:hover img{ transform:scale(1.035); }
.mosaic figcaption{ position:absolute; inset:auto 0 0 0; padding:40px 18px 14px; font-size:13px; color:#e8e8e8; letter-spacing:.02em;
  background:linear-gradient(180deg, transparent, rgba(5,5,5,.82)); opacity:0; transform:translateY(8px); transition:opacity .35s ease, transform .35s ease; }
.mosaic figure:hover figcaption{ opacity:1; transform:none; }
@media (hover:none){ .mosaic figcaption{ opacity:1; transform:none; } }
.mosaic .zone{ position:absolute; z-index:2; top:12px; left:12px; padding:3px 9px; font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(242,217,164,.92); background:rgba(5,5,5,.45); -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px); border:1px solid rgba(229,184,105,.22); }

/* ---------- COAST BAND ---------- */
.coast{ position:relative; padding:0; overflow:hidden; }
.coast img{ width:100%; height:min(58vh,560px); object-fit:cover; display:block; }
.coast::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,5,5,.5), rgba(5,5,5,.06) 40%, rgba(5,5,5,.55)); }
.coast p{ position:absolute; z-index:2; left:50%; bottom:9%; transform:translateX(-50%); margin:0; width:max-content; max-width:90vw; text-align:center;
  font-family:var(--serif); font-size:clamp(20px,2.6vw,32px); color:#f5f5f5; text-shadow:0 2px 26px rgba(0,0,0,.6); }

/* ---------- LIFESTYLE ---------- */
.lifestyle{ background:var(--bg,#050505); padding-bottom:0; }
.day{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.moment{ margin:0; position:relative; overflow:hidden; aspect-ratio:3/4; }
.moment img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1s ease; }
.moment:hover img{ transform:scale(1.05); }
.moment figcaption{ position:absolute; inset:auto 0 0 0; padding:110px 22px 26px;
  background:linear-gradient(180deg, transparent, rgba(5,5,5,.88)); }
.moment .tm{ color:var(--gold,#E5B869); font-size:11px; letter-spacing:.28em; text-transform:uppercase; }
.moment p{ color:#ececec; font-family:var(--serif); font-size:clamp(17px,1.5vw,21px); line-height:1.35; margin:10px 0 0; max-width:26ch; }

/* ---------- LOCATION ---------- */
.location{ background:var(--bg,#050505); }
.loc-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center; }
.map{ border:1px solid rgba(255,255,255,.08); background:#0a0a0a; }
.map svg{ width:100%; height:auto; display:block; }
.dist{ list-style:none; margin:0; padding:0; }
.dist li{ display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.dist li:first-child{ border-top:1px solid rgba(255,255,255,.08); }
.dist .t{ color:#d5d5d5; font-size:16px; display:flex; align-items:baseline; gap:14px; }
.dist .t i{ font-style:normal; font-size:18px; flex:none; }
.dist .v{ color:var(--gold,#E5B869); font-size:14px; letter-spacing:.06em; white-space:nowrap; }
.map.sat{ border:1px solid rgba(229,184,105,.22); }

/* ---------- VALUE ---------- */
.value{ background:#070707; border-top:1px solid rgba(255,255,255,.05); }
.val-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.val-price .eyebrow{ color:var(--gold,#E5B869); font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; }
.val-price .big{ font-family:var(--serif); font-weight:500; font-size:clamp(44px,5.4vw,72px); color:#f5f5f5; margin:16px 0 12px; letter-spacing:.01em; }
.val-price .note{ color:#9d9d9d; font-size:14.5px; line-height:1.6; max-width:36ch; margin:0 0 28px; }
.val-list h3{ font-family:var(--serif); font-weight:500; font-size:24px; color:#f0f0f0; margin:4px 0 18px; }
.val-list ul{ list-style:none; margin:0 0 24px; padding:0; }
.val-list li{ display:flex; gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.07); color:#c9c9c9; font-size:15.5px; }
.val-list li::before{ content:"—"; color:var(--gold,#E5B869); }
.val-logic{ color:#9d9d9d; font-size:14.5px; line-height:1.7; font-style:italic; margin:0; }

/* ---------- AGENT ---------- */
.agent{ background:var(--bg,#050505); }
.agent-card{ display:grid; grid-template-columns:150px 1fr; gap:44px; align-items:center; border:1px solid rgba(229,184,105,.28); padding:52px; background:linear-gradient(160deg, rgba(229,184,105,.05), transparent 55%); }
.mono-badge{ width:150px; height:150px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold,#E5B869); color:var(--gold,#E5B869); font-family:var(--serif); font-size:64px; }
.agent-in .eyebrow{ color:var(--gold,#E5B869); font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; }
.agent-in h2{ font-family:var(--serif); font-weight:500; font-size:clamp(26px,3vw,38px); color:#f5f5f5; margin:12px 0 12px; }
.agent-in p{ color:#b3b3b3; font-size:15.5px; line-height:1.65; max-width:60ch; margin:0 0 24px; }
.agent-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ag-phone{ color:#f5f5f5; text-decoration:none; font-size:18px; letter-spacing:.04em; border-bottom:1px solid rgba(229,184,105,.5); padding-bottom:2px; }
.bo{ display:inline-block; border:1px solid rgba(255,255,255,.22); color:#e0e0e0; text-decoration:none; font-size:13.5px; padding:10px 20px; transition:border-color .2s,color .2s; }
.bo:hover{ border-color:var(--gold,#E5B869); color:var(--gold,#E5B869); }

/* ---------- FAQ ---------- */
.faqsec{ background:#070707; }
.faq details{ border-bottom:1px solid rgba(255,255,255,.08); }
.faq details:first-child{ border-top:1px solid rgba(255,255,255,.08); }
.faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; color:#e8e8e8; font-size:18px; font-family:var(--serif); letter-spacing:.01em; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--gold,#E5B869); font-size:22px; font-family:var(--mono); transition:transform .25s ease; flex:none; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq p{ color:#ababab; font-size:15px; line-height:1.7; margin:0; padding:0 0 22px; max-width:70ch; }


/* ---------- HERO MESSENGER BUTTONS ---------- */
.msgrow{ display:flex; gap:12px; margin-top:14px; flex-wrap:wrap; }
.msg-btn{ display:inline-flex; align-items:center; gap:9px; height:46px; padding:0 18px;
  border:1px solid rgba(255,255,255,.22); background:rgba(5,5,5,.38); -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#f0f0f0; font-size:13.5px; letter-spacing:.02em; text-decoration:none; border-radius:12px;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.msg-btn svg{ width:19px; height:19px; flex:0 0 auto; }
.msg-btn:hover{ transform:translateY(-2px); background:rgba(5,5,5,.55); }
.msg-btn.wa:hover{ border-color:rgba(37,211,102,.65); box-shadow:0 12px 30px -14px rgba(37,211,102,.45); }
.msg-btn.tg:hover{ border-color:rgba(34,158,217,.65); box-shadow:0 12px 30px -14px rgba(34,158,217,.45); }
.msg-btn.mx:hover{ border-color:rgba(39,135,245,.65); box-shadow:0 12px 30px -14px rgba(39,135,245,.45); }
@media (max-width:560px){ .msgrow{ gap:9px; } .msg-btn{ height:44px; padding:0 14px; font-size:13px; flex:1 1 auto; justify-content:center; } }

/* ---------- FINALE ---------- */
.finale{ position:relative; min-height:92vh; display:flex; align-items:center; padding:0; overflow:hidden; }
.fin-bg{ position:absolute; inset:0; background-size:cover; background-position:center 28%; }
.fin-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,5,5,.5), rgba(5,5,5,.34) 45%, rgba(5,5,5,.78)); }
.finale .inner{ position:relative; z-index:2; text-align:center; }
.finale h2{ font-family:var(--serif); font-weight:500; font-size:clamp(38px,6vw,80px); color:#fff; margin:0 0 16px; text-shadow:0 2px 40px rgba(0,0,0,.5); }
.finale p{ color:#e4e4e4; font-size:clamp(15.5px,1.6vw,18px); margin:0 0 34px; }

/* ---------- FOOTER ---------- */
.ft{ padding:64px 0 90px; border-top:1px solid rgba(255,255,255,.06); background:var(--bg,#050505); }
.ft .row{ display:flex; align-items:flex-start; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.ft .brand{ font-family:var(--serif); font-size:24px; color:#f0f0f0; }
.ft .brand small{ display:block; margin-top:8px; color:#8a8a8a; font-family:var(--sans); font-size:13px; }
.ft .cols{ display:flex; flex-direction:column; gap:10px; text-align:right; }
.ft .cols a{ color:#9d9d9d; text-decoration:none; font-size:13.5px; }
.ft .cols a:hover{ color:var(--gold,#E5B869); }
.ft .bottom{ margin-top:44px; padding-top:20px; border-top:1px solid rgba(255,255,255,.05); color:#6f6f6f; font-size:12px; }

/* ---------- STICKY BAR (desktop) ---------- */
.sbar{ position:fixed; z-index:55; left:50%; bottom:22px; transform:translate(-50%, 120px); display:flex; align-items:center; gap:26px;
  background:rgba(10,10,10,.9); -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px); border:1px solid rgba(229,184,105,.3); padding:12px 12px 12px 24px;
  transition:transform .45s cubic-bezier(.22,.8,.3,1); }
.sbar.show{ transform:translate(-50%, 0); }
.sb-l{ display:flex; align-items:baseline; gap:16px; }
.sb-l .nm{ color:#f0f0f0; font-family:var(--serif); font-size:17px; }
.sb-l .pr{ color:var(--gold,#E5B869); font-size:13.5px; letter-spacing:.04em; }
.sb-cta{ background:var(--gold,#E5B869); border:0; color:#050505; font-weight:600; font-size:13.5px; padding:11px 22px; cursor:pointer; }
.sb-cta:hover{ background:var(--gold-l,#F2D9A4); }

/* ---------- MOBILE BAR ---------- */
.mbar{ display:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px){
  .day{ grid-template-columns:1fr 1fr; }
  .moment{ aspect-ratio:4/3; }
  .chapter, .chapter.rev{ grid-template-columns:1fr; min-height:0; }
  .chapter.rev .ch-media{ order:0; }
  .ch-media{ aspect-ratio:4/3; }
  .ch-text{ padding:56px 6vw 72px; }
  .loc-grid{ grid-template-columns:1fr; gap:36px; }
  .val-grid{ grid-template-columns:1fr; gap:44px; }
  .nums{ grid-template-columns:repeat(3,1fr); gap:36px 20px; }
}

@media (max-width: 860px){
  .nav .links{ position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:flex-start; gap:4px;
    background:rgba(5,5,5,.97); -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px); padding:18px 22px 26px; border-bottom:1px solid rgba(255,255,255,.08);
    display:none; }
  .nav .links.open{ display:flex; }
  .nav .links a{ padding:11px 0; font-size:16px; width:100%; }
  .langsw{ margin:12px 0; }
  .cta-nav{ width:100%; padding:13px; }
  .navtoggle{ display:block; }

  section{ padding:76px 0; }
  .sec-head{ margin-bottom:36px; }
  .hero .inner{ padding-bottom:96px; }
  .hero .name{ font-size:clamp(30px, 10.5vw, 44px); overflow-wrap:break-word; }
  .hero-facts{ flex-wrap:wrap; row-gap:6px; }
  .hero .row .btn-lg{ width:100%; text-align:center; }
  .hero .row .btn-ghost{ width:100%; text-align:center; }
  .hero-price{ margin-top:26px; }

  .mosaic{ grid-template-columns:1fr; gap:12px; }
  .mosaic figure.wide{ grid-column:auto; }

  .lvl{ grid-template-columns:1fr; gap:14px; padding:30px 0; }
  .lvl-media{ order:3; }
  .nums{ grid-template-columns:repeat(2,1fr); text-align:left; }
  .day{ grid-template-columns:1fr; }
  .moment{ aspect-ratio:3/2; }

  .agent-card{ grid-template-columns:1fr; gap:26px; padding:32px 24px; }
  .mono-badge{ width:96px; height:96px; font-size:42px; }
  .ft .cols{ text-align:left; }

  .sbar{ display:none; }
  .mbar{ position:fixed; z-index:55; inset:auto 0 0 0; display:flex; gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(8,8,8,.94); -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px); border-top:1px solid rgba(255,255,255,.08); }
  .mbar-call{ flex:0 0 auto; display:flex; align-items:center; gap:8px; color:#e8e8e8; text-decoration:none; font-size:13.5px; border:1px solid rgba(255,255,255,.2); padding:12px 16px; }
  .mbar-lead{ flex:1; padding:12px 10px; font-size:14px; }
  .ft{ padding-bottom:120px; }
  #sa-fab{ bottom:76px !important; }
}

@media (max-width: 480px){
  .nums{ grid-template-columns:repeat(2,1fr); }
  .hero-price .v{ font-size:26px; }
}

/* mobile: keep AI fab above the bottom action bar (bugfix, no design change) */
@media(max-width:640px){
  #sa-fab{bottom:82px !important}
  #sa-panel{bottom:140px !important}
}
