/* =========================================================================
   VIRETA — "Ledger Plum" design system
   Dense, hairline-ruled, ledger-book rhythm. Numbered tabs. No airy padding.
   Prefix: vlt- (abbreviated-hyphenated, functional suffixes)
   ========================================================================= */

:root{
  /* shared tokens (cookie banner + shell) */
  --site-bg:#2c1524;
  --site-surface:#3a1f30;
  --site-text:#efe6e4;
  --site-muted:#b79aa4;
  --site-accent:#d69fb0;

  /* local extensions */
  --vlt-accent2:#c98a4a;
  --vlt-bg-deep:#22101c;
  --vlt-line:rgba(239,230,228,.14);
  --vlt-line-strong:rgba(239,230,228,.28);
  --vlt-radius:6px;
  --vlt-container:1100px;
  --vlt-gap:24px;
  --vlt-sec-pad:56px;

  --font-head:'Zilla Slab', Georgia, serif;
  --font-body:'Karla', Arial, sans-serif;
  --font-num:'Alfa Slab One', Georgia, serif;
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;
  background:var(--site-bg);
  color:var(--site-text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
ul,ol{margin:0;padding:0;}
button{font-family:inherit;}

h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  color:var(--site-text);
  line-height:1.15;
  margin:0 0 .5em;
  font-weight:600;
}
h1{font-size:clamp(2rem,4.2vw,3.1rem);}
h2{font-size:clamp(1.5rem,3vw,2.2rem);}
h3{font-size:clamp(1.15rem,2vw,1.5rem);}
p{margin:0 0 1em;color:var(--site-text);}

::selection{background:var(--site-accent);color:var(--vlt-bg-deep);}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--site-accent);
  outline-offset:2px;
}

.vlt-container{
  max-width:var(--vlt-container);
  margin:0 auto;
  padding:0 20px;
}
@media(max-width:480px){
  .vlt-container{padding:0 16px;}
}

.vlt-sec{
  padding:var(--vlt-sec-pad) 0;
  border-bottom:1px solid var(--vlt-line);
}
.vlt-sec:last-of-type{border-bottom:none;}

.vlt-eyebrow{
  display:inline-block;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--vlt-accent2);
  font-weight:700;
  margin-bottom:10px;
}
.vlt-lede{
  color:var(--site-muted);
  font-size:1.05rem;
  max-width:52ch;
}

/* ---------- signature element: ledger tab numerals ---------- */
.vlt-sec-tab{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin-bottom:36px;
}
.vlt-sec-tab .vlt-sec-num{
  font-family:var(--font-num);
  font-size:clamp(2.2rem,5.6vw,3.6rem);
  color:var(--vlt-accent2);
  opacity:.85;
  line-height:1;
  flex-shrink:0;
}
.vlt-sec-tab .vlt-sec-ttl{margin:0;}
.vlt-sec-tab::after{
  content:'';
  flex:1;
  height:1px;
  background:var(--vlt-line-strong);
  align-self:center;
  margin-left:8px;
}

/* ---------- buttons ---------- */
.vlt-cta-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--site-accent);
  color:var(--vlt-bg-deep);
  font-weight:700;
  font-size:.92rem;
  padding:13px 24px;
  border-radius:var(--vlt-radius);
  text-decoration:none;
  border:1px solid var(--site-accent);
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.vlt-cta-btn:hover{background:var(--vlt-accent2);border-color:var(--vlt-accent2);transform:translateY(-2px);}
.vlt-cta-btn.vlt-btn-ghost{
  background:transparent;color:var(--site-text);border-color:var(--vlt-line-strong);
}
.vlt-cta-btn.vlt-btn-ghost:hover{border-color:var(--site-accent);color:var(--site-accent);background:transparent;}
.vlt-btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

/* ---------- forms ---------- */
.vlt-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.vlt-field label{
  font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--site-muted);
}
.vlt-field input,.vlt-field textarea,.vlt-field select{
  background:var(--site-bg);
  border:1px solid var(--vlt-line-strong);
  border-radius:var(--vlt-radius);
  padding:11px 13px;
  color:var(--site-text);
  font-family:var(--font-body);
  font-size:.95rem;
  width:100%;
}
.vlt-field textarea{resize:vertical;min-height:110px;}
.vlt-field input::placeholder,.vlt-field textarea::placeholder{color:var(--site-muted);opacity:.7;}

/* =========================================================================
   HEADER — thin utility bar + large nav bar below
   ========================================================================= */
.vlt-site-head{position:sticky;top:0;z-index:500;background:var(--site-bg);}

.vlt-util-bar{
  background:var(--vlt-bg-deep);
  border-bottom:1px solid var(--vlt-line);
  font-size:.78rem;
}
.vlt-util-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 20px;gap:16px;flex-wrap:wrap;
}
.vlt-util-grp{display:flex;gap:22px;flex-wrap:wrap;}
.vlt-util-itm{
  color:var(--site-muted);text-decoration:none;
  display:inline-flex;gap:6px;align-items:center;
}
.vlt-util-itm i{color:var(--vlt-accent2);}
.vlt-util-itm:hover{color:var(--site-accent);}
.vlt-util-reg{color:var(--site-muted);}

.vlt-nav-bar{
  padding:16px 0;
  border-bottom:1px solid var(--vlt-line-strong);
  background:var(--site-bg);
  transition:padding .25s ease;
}
#nav-shell-2iv.is-scrolled .vlt-nav-bar{
  padding:10px 0;
  box-shadow:0 10px 24px rgba(0,0,0,.32);
}
.vlt-nav-row{display:flex;align-items:center;justify-content:space-between;gap:24px;}

.vlt-brand{display:inline-flex;align-items:baseline;gap:10px;text-decoration:none;}
.vlt-brand-ico{width:34px;height:34px;display:block;flex-shrink:0;}
.vlt-brand-txt{
  font-family:var(--font-head);font-size:1.5rem;font-weight:600;
  color:var(--site-text);letter-spacing:.01em;
}

.vlt-nav-main{display:flex;gap:30px;}
.vlt-nav-itm{
  color:var(--site-text);text-decoration:none;font-size:.86rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;padding:6px 0;
  border-bottom:2px solid transparent;
}
.vlt-nav-itm:hover,.vlt-nav-itm.is-active{border-color:var(--site-accent);color:var(--site-accent);}

.vlt-burger{
  display:none;width:42px;height:42px;background:none;
  border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);
  flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;
}
.vlt-burger span{display:block;width:20px;height:2px;background:var(--site-text);}

@media(max-width:860px){
  .vlt-nav-main{display:none;}
  .vlt-burger{display:flex;}
}

/* mobile drawer */
.vlt-scrim{
  position:fixed;inset:0;background:rgba(15,6,11,.6);
  opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:850;
}
.vlt-scrim.is-open{opacity:1;pointer-events:auto;}

.vlt-drawer{
  position:fixed;top:0;right:0;height:100%;width:min(320px,86vw);
  background:var(--site-surface);border-left:1px solid var(--vlt-line-strong);
  transform:translateX(100%);transition:transform .35s ease;
  z-index:900;overflow-y:auto;
}
.vlt-drawer.is-open{transform:translateX(0);}
.vlt-drawer-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 22px;border-bottom:1px solid var(--vlt-line-strong);
}
.vlt-drawer-close{background:none;border:none;color:var(--site-text);font-size:1.7rem;line-height:1;cursor:pointer;}
.vlt-drawer-nav{display:flex;flex-direction:column;}
.vlt-drawer-nav .vlt-nav-itm{
  display:block;padding:16px 22px;border-bottom:1px solid var(--vlt-line);
  border-bottom-width:1px;border-left:0;font-size:.88rem;
}

/* =========================================================================
   HERO — split: headline+form left / image right
   ========================================================================= */
.vlt-hero-blk{padding:var(--vlt-sec-pad) 0;border-bottom:1px solid var(--vlt-line);}
.vlt-hero-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;
}
@media(max-width:860px){.vlt-hero-grid{grid-template-columns:1fr;}}
.vlt-hero-copy h1{margin-bottom:.4em;}
.vlt-hero-form{
  background:var(--site-surface);border:1px solid var(--vlt-line-strong);
  border-radius:var(--vlt-radius);padding:26px;margin-top:26px;
}
.vlt-hero-form h3{margin-bottom:16px;}
.vlt-hero-media{
  aspect-ratio:4/5;border-radius:var(--vlt-radius);overflow:hidden;
  border:1px solid var(--vlt-line-strong);
}
.vlt-hero-media img{display:block;width:100%;height:100%;object-fit:cover;}
@media(max-width:860px){.vlt-hero-media{aspect-ratio:16/9;}}

/* =========================================================================
   TESTIMONIALS — 3-up quote cards
   ========================================================================= */
.vlt-testi-grp{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--vlt-gap);}
@media(max-width:860px){.vlt-testi-grp{grid-template-columns:1fr;}}
.vlt-testi-card{
  background:var(--site-surface);border:1px solid var(--vlt-line);
  border-radius:var(--vlt-radius);padding:28px 26px;position:relative;
}
.vlt-testi-card::before{
  content:'\201C';font-family:var(--font-num);font-size:2.8rem;
  color:var(--vlt-accent2);opacity:.55;line-height:1;display:block;margin-bottom:6px;
}
.vlt-testi-quote{color:var(--site-text);font-size:.98rem;}
.vlt-testi-name{font-weight:700;margin-top:14px;font-family:var(--font-head);}
.vlt-testi-role{color:var(--site-muted);font-size:.82rem;}

/* =========================================================================
   STATS — bordered boxes
   ========================================================================= */
.vlt-stat-grp{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);overflow:hidden;
}
.vlt-stat-itm{
  padding:30px 18px;text-align:center;border-right:1px solid var(--vlt-line-strong);
}
.vlt-stat-itm:last-child{border-right:none;}
.vlt-stat-num{font-family:var(--font-num);font-size:clamp(1.7rem,4vw,2.4rem);color:var(--site-accent);}
.vlt-stat-lbl{color:var(--site-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-top:8px;}
@media(max-width:768px){
  .vlt-stat-grp{grid-template-columns:repeat(2,1fr);}
  .vlt-stat-itm{border-bottom:1px solid var(--vlt-line-strong);}
  .vlt-stat-itm:nth-child(2n){border-right:none;}
}

/* =========================================================================
   INLINE FORM — form beside a photo of the person who answers
   ========================================================================= */
.vlt-inline-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:center;}
@media(max-width:860px){.vlt-inline-grid{grid-template-columns:1fr;}}
.vlt-inline-photo{aspect-ratio:3/4;border-radius:var(--vlt-radius);overflow:hidden;border:1px solid var(--vlt-line-strong);}
.vlt-inline-photo img{display:block;width:100%;height:100%;object-fit:cover;}
.vlt-inline-name{font-family:var(--font-head);margin-top:14px;margin-bottom:0;}
.vlt-inline-role{color:var(--site-accent);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;}
.vlt-inline-form{background:var(--site-surface);border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);padding:28px;}

/* =========================================================================
   PAGE HERO variants
   ========================================================================= */
.vlt-phero-blk{padding:var(--vlt-sec-pad) 0 40px;border-bottom:1px solid var(--vlt-line-strong);}

/* side image variant */
.vlt-phero-split .vlt-phero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
@media(max-width:860px){.vlt-phero-split .vlt-phero-grid{grid-template-columns:1fr;}}
.vlt-phero-split .vlt-phero-media{aspect-ratio:4/5;border-radius:var(--vlt-radius);overflow:hidden;border:1px solid var(--vlt-line-strong);}
.vlt-phero-split .vlt-phero-media img{display:block;width:100%;height:100%;object-fit:cover;}

/* centered compact variant */
.vlt-phero-center{text-align:center;max-width:740px;margin:0 auto;}

/* type-only variant */
.vlt-phero-type{max-width:820px;}
.vlt-phero-type h1{font-size:clamp(2.2rem,5vw,3.6rem);}

/* compact hero (contact) */
.vlt-phero-compact{max-width:760px;}

/* =========================================================================
   CHECKLIST — beside image
   ========================================================================= */
.vlt-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
@media(max-width:860px){.vlt-check-grid{grid-template-columns:1fr;}}
.vlt-check-list{list-style:none;display:flex;flex-direction:column;gap:14px;}
.vlt-check-list li{
  display:flex;gap:12px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--vlt-line);
}
.vlt-check-list li i{color:var(--site-accent);margin-top:3px;flex-shrink:0;}
.vlt-check-media{aspect-ratio:4/5;border-radius:var(--vlt-radius);overflow:hidden;border:1px solid var(--vlt-line-strong);}
.vlt-check-media img{display:block;width:100%;height:100%;object-fit:cover;}

/* =========================================================================
   PROCESS — 4 numbered steps in a row
   ========================================================================= */
.vlt-proc-grp{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--vlt-gap);}
@media(max-width:900px){.vlt-proc-grp{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.vlt-proc-grp{grid-template-columns:1fr;}}
.vlt-proc-itm{border:1px solid var(--vlt-line);border-radius:var(--vlt-radius);padding:26px 22px;}
.vlt-proc-num{font-family:var(--font-num);font-size:2.1rem;color:var(--vlt-accent2);display:block;margin-bottom:12px;}
.vlt-proc-itm h3{margin-bottom:8px;}
.vlt-proc-itm p{color:var(--site-muted);font-size:.92rem;margin:0;}

/* =========================================================================
   FAQ — accordion (shared) + two-column variant
   ========================================================================= */
[data-collapsible]{border-top:1px solid var(--vlt-line-strong);}
[data-acc-item]{border-bottom:1px solid var(--vlt-line-strong);}
[data-acc-trigger]{
  width:100%;text-align:left;background:none;border:none;color:var(--site-text);
  font-family:var(--font-head);font-size:1.02rem;font-weight:600;
  padding:18px 4px;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;
}
[data-acc-trigger] .vlt-acc-ico{
  flex-shrink:0;color:var(--site-accent);transition:transform .3s ease;font-size:1.1rem;
}
[data-acc-item].is-open [data-acc-trigger] .vlt-acc-ico{transform:rotate(45deg);}
[data-acc-item] .vlt-acc-body{max-height:0;overflow:hidden;transition:max-height .3s ease;}
[data-acc-item].is-open .vlt-acc-body{max-height:600px;}
.vlt-acc-body-in{padding:0 4px 20px;color:var(--site-muted);font-size:.95rem;}

.vlt-faq-cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;}
@media(max-width:768px){.vlt-faq-cols{grid-template-columns:1fr;}}

/* =========================================================================
   CTA STRIP — 3 variants
   ========================================================================= */
.vlt-cta-full{
  background:var(--site-surface);border-top:1px solid var(--vlt-line-strong);
  border-bottom:1px solid var(--vlt-line-strong);padding:52px 0;text-align:center;
}
.vlt-cta-full h2{margin-bottom:.3em;}

.vlt-cta-split{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;
  background:var(--site-surface);border:1px solid var(--vlt-line-strong);
  border-radius:var(--vlt-radius);padding:44px;
}
@media(max-width:768px){.vlt-cta-split{grid-template-columns:1fr;}}
.vlt-cta-split-info{display:flex;flex-direction:column;gap:12px;justify-content:center;border-left:1px solid var(--vlt-line-strong);padding-left:40px;}
@media(max-width:768px){.vlt-cta-split-info{border-left:none;border-top:1px solid var(--vlt-line-strong);padding-left:0;padding-top:24px;}}
.vlt-cta-split-info a{color:var(--site-text);text-decoration:none;display:flex;align-items:center;gap:10px;}
.vlt-cta-split-info a i{color:var(--site-accent);}

.vlt-cta-card{
  max-width:640px;margin:0 auto;text-align:center;background:var(--site-surface);
  border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);padding:46px 40px;
}

/* =========================================================================
   METHODOLOGY — numbered phases down the page, rule between
   ========================================================================= */
.vlt-method-list{display:flex;flex-direction:column;}
.vlt-method-itm{
  display:grid;grid-template-columns:110px 1fr;gap:30px;padding:34px 0;
  border-bottom:1px solid var(--vlt-line-strong);
}
.vlt-method-itm:last-child{border-bottom:none;}
.vlt-method-num{font-family:var(--font-num);font-size:2.8rem;color:var(--vlt-accent2);line-height:1;}
@media(max-width:640px){.vlt-method-itm{grid-template-columns:1fr;}}

/* =========================================================================
   CREDENTIALS — row of mark tiles with captions
   ========================================================================= */
.vlt-cred-grp{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media(max-width:768px){.vlt-cred-grp{grid-template-columns:repeat(2,1fr);}}
.vlt-cred-itm{border:1px solid var(--vlt-line);border-radius:var(--vlt-radius);padding:22px;text-align:center;}
.vlt-cred-mark{height:46px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--site-accent);font-size:1.8rem;}
.vlt-cred-cap{font-size:.78rem;color:var(--site-muted);text-transform:uppercase;letter-spacing:.04em;}

/* =========================================================================
   TEAM — 3-4 person cards with photos
   ========================================================================= */
.vlt-team-grp{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--vlt-gap);}
@media(max-width:900px){.vlt-team-grp{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.vlt-team-grp{grid-template-columns:1fr;}}
.vlt-team-card{border:1px solid var(--vlt-line);border-radius:var(--vlt-radius);overflow:hidden;background:var(--site-surface);}
.vlt-team-photo{aspect-ratio:3/4;}
.vlt-team-photo img{display:block;width:100%;height:100%;object-fit:cover;}
.vlt-team-info{padding:18px;}
.vlt-team-name{font-family:var(--font-head);font-weight:600;margin-bottom:2px;}
.vlt-team-role{color:var(--site-accent);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;}

/* =========================================================================
   PRICING — 3 cards
   ========================================================================= */
.vlt-price-grp{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--vlt-gap);}
@media(max-width:860px){.vlt-price-grp{grid-template-columns:1fr;}}
.vlt-price-card{
  border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);
  padding:34px 28px;background:var(--site-surface);display:flex;flex-direction:column;position:relative;
}
.vlt-price-card.is-feat{border-color:var(--site-accent);}
.vlt-price-card.is-feat::before{
  content:'Recommended';position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--site-accent);color:var(--vlt-bg-deep);font-size:.68rem;text-transform:uppercase;
  padding:5px 14px;border-radius:20px;font-weight:700;letter-spacing:.04em;
}
.vlt-price-amt{font-family:var(--font-num);font-size:2.3rem;color:var(--site-accent);margin:16px 0;}
.vlt-price-amt span{font-size:.9rem;color:var(--site-muted);font-family:var(--font-body);}
.vlt-price-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin:22px 0;flex:1;}
.vlt-price-list li{padding-bottom:10px;border-bottom:1px solid var(--vlt-line);font-size:.9rem;}

/* =========================================================================
   COMPARISON — us vs them, two columns
   ========================================================================= */
.vlt-comp-grid{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);overflow:hidden;
}
.vlt-comp-col{padding:30px 28px;}
.vlt-comp-us{background:var(--site-surface);border-right:1px solid var(--vlt-line-strong);}
@media(max-width:768px){
  .vlt-comp-grid{grid-template-columns:1fr;}
  .vlt-comp-us{border-right:none;border-bottom:1px solid var(--vlt-line-strong);}
}
.vlt-comp-hd{font-family:var(--font-head);margin-bottom:16px;}
.vlt-comp-list{list-style:none;display:flex;flex-direction:column;gap:12px;}
.vlt-comp-list li{padding-bottom:12px;border-bottom:1px solid var(--vlt-line);display:flex;gap:10px;font-size:.92rem;}
.vlt-comp-list li i{margin-top:3px;flex-shrink:0;}
.vlt-comp-us .vlt-comp-list li i{color:var(--site-accent);}
.vlt-comp-col:not(.vlt-comp-us) .vlt-comp-list li i{color:var(--site-muted);}

/* =========================================================================
   CONTACT — two columns: reassurance left, form right
   ========================================================================= */
.vlt-contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;}
@media(max-width:860px){.vlt-contact-grid{grid-template-columns:1fr;}}
.vlt-contact-aside{padding-top:6px;}
.vlt-contact-aside ul{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:22px;}
.vlt-contact-aside ul li{display:flex;gap:10px;align-items:flex-start;color:var(--site-muted);}
.vlt-contact-aside ul li i{color:var(--site-accent);margin-top:4px;}
.vlt-contact-form-wrap{
  background:var(--site-surface);border:1px solid var(--vlt-line-strong);
  border-radius:var(--vlt-radius);padding:32px;
}

/* =========================================================================
   FOOTER — big multi-column, ledger hairline separators
   ========================================================================= */
.vlt-site-foot{background:var(--vlt-bg-deep);border-top:1px solid var(--vlt-line-strong);padding:64px 0 26px;}
.vlt-foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;}
@media(max-width:900px){.vlt-foot-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.vlt-foot-grid{grid-template-columns:1fr;}}
.vlt-foot-brand .vlt-brand-txt{font-size:1.4rem;}
.vlt-foot-tag{color:var(--site-muted);font-size:.9rem;margin-top:14px;max-width:32ch;}
.vlt-foot-hd{
  font-family:var(--font-head);font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;
  margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--vlt-accent2);color:var(--site-text);
}
.vlt-foot-nav{display:flex;flex-direction:column;gap:10px;}
.vlt-foot-lnk{color:var(--site-muted);text-decoration:none;font-size:.9rem;}
.vlt-foot-lnk:hover{color:var(--site-accent);}
.vlt-foot-legal p{color:var(--site-muted);font-size:.88rem;margin:0 0 10px;}
.vlt-foot-social{display:flex;gap:10px;margin-top:18px;}
.vlt-foot-social a{
  width:34px;height:34px;border:1px solid var(--vlt-line-strong);border-radius:var(--vlt-radius);
  display:flex;align-items:center;justify-content:center;color:var(--site-muted);text-decoration:none;
}
.vlt-foot-social a:hover{color:var(--site-accent);border-color:var(--site-accent);}
.vlt-foot-rule{height:1px;background:var(--vlt-line-strong);margin:44px 0 20px;}
.vlt-foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.82rem;color:var(--site-muted);}
.vlt-foot-legal-lnks{display:flex;gap:18px;flex-wrap:wrap;}
.vlt-foot-legal-lnks a{color:var(--site-muted);text-decoration:none;}
.vlt-foot-legal-lnks a:hover{color:var(--site-accent);}

/* =========================================================================
   SWIPER (shared component)
   ========================================================================= */
.reel-6ao{padding-bottom:46px;}
.reel-6ao .swiper-slide{height:auto;}
.swiper-pagination-bullet{background:var(--site-muted);opacity:.5;}
.swiper-pagination-bullet-active{background:var(--site-accent);opacity:1;}
.swiper-button-next,.swiper-button-prev{color:var(--site-accent);}
.swiper-button-next::after,.swiper-button-prev::after{font-size:1.2rem;}

/* =========================================================================
   MODAL (shared component) — scroll-safe overlay
   ========================================================================= */
.site-modal{
  position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(20,8,16,.72);opacity:0;pointer-events:none;
  transition:opacity .3s ease;z-index:1000;padding:20px;
}
.site-modal.is-open{opacity:1;pointer-events:auto;}
.site-modal .vlt-modal-dlg{
  background:var(--site-surface);border:1px solid var(--vlt-line-strong);
  border-radius:var(--vlt-radius);max-width:520px;width:100%;padding:34px;
  position:relative;transform:translateY(20px);transition:transform .3s ease;
}
.site-modal.is-open .vlt-modal-dlg{transform:translateY(0);}
.vlt-modal-close{
  position:absolute;top:14px;right:14px;background:none;border:none;
  color:var(--site-muted);font-size:1.5rem;line-height:1;cursor:pointer;
}
.vlt-modal-close:hover{color:var(--site-accent);}

/* =========================================================================
   Misc utility
   ========================================================================= */
.vlt-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--vlt-gap);}
.vlt-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--vlt-gap);}
@media(max-width:860px){.vlt-grid-2,.vlt-grid-3{grid-template-columns:1fr;}}

[data-aos]{ }

@media(max-width:360px){
  h1{font-size:1.7rem;}
  .vlt-hero-form,.vlt-inline-form,.vlt-contact-form-wrap{padding:20px;}
}


/* --- cookie consent (per-site) --- */
.ck-bj2-overlay{position:fixed;inset:0;opacity:0;visibility:hidden;transition:.25s;z-index:9998;}
.ck-bj2-overlay.is-open{opacity:1;visibility:visible;}
.ck-bj2-panel{position:fixed;background:var(--site-surface,#fff);color:var(--site-text,#1a1a1a);
  box-shadow:0 20px 60px rgba(0,0,0,.28);padding:24px;opacity:0;visibility:hidden;transition:.25s;z-index:9999;}
.ck-bj2-panel.is-open{opacity:1;visibility:visible;}
.ck-bj2-panel h3{margin:0 0 8px;font-size:1.2rem;}
.ck-bj2-panel>p{margin:0 0 16px;color:var(--site-muted,#666);font-size:.95rem;}
.ck-bj2-cat{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid rgba(128,128,128,.2);}
.ck-bj2-cat h4{margin:0 0 2px;font-size:.98rem;}
.ck-bj2-cat p{margin:0;color:var(--site-muted,#777);font-size:.85rem;}
.ck-bj2-switch{position:relative;flex:0 0 auto;width:44px;height:24px;}
.ck-bj2-switch input{opacity:0;width:0;height:0;position:absolute;}
.ck-bj2-switch span{position:absolute;inset:0;background:#c9c9c9;border-radius:999px;transition:.2s;cursor:pointer;}
.ck-bj2-switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.ck-bj2-switch input:checked+span{background:var(--site-accent,#2b7);}
.ck-bj2-switch input:checked+span::before{transform:translateX(20px);}
.ck-bj2-switch input:disabled+span{opacity:.6;cursor:not-allowed;}
.ck-bj2-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.ck-bj2-actions button{flex:1;min-width:140px;padding:11px 16px;border:none;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;}
.ck-bj2-actions #ck-bj2-all{background:var(--site-accent,#2b7);color:#fff;}
.ck-bj2-actions #ck-bj2-save{background:transparent;color:var(--site-text,#222);border:1px solid rgba(128,128,128,.4);}
.ck-bj2-links{display:flex;gap:16px;margin-top:14px;font-size:.85rem;}
.ck-bj2-links a{color:var(--site-accent,#2b7);text-decoration:underline;}
.ck-bj2-trigger{position:fixed;left:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:var(--site-surface,#fff);color:var(--site-accent,#2b7);box-shadow:0 6px 18px rgba(0,0,0,.2);z-index:9997;font-size:1.1rem;}

.ck-bj2-overlay{background:transparent;pointer-events:none;}
.ck-bj2-panel{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;transform:translateY(100%);}
.ck-bj2-panel>*{max-width:900px;margin-left:auto;margin-right:auto;}
.ck-bj2-panel.is-open{transform:translateY(0);}
@media(max-width:520px){.ck-bj2-actions button{min-width:100%;}}
#dock-0ad{left:auto !important;right:18px !important;}
@media(max-width:520px){#dock-0ad{right:12px !important;}}
html[data-cookie-open] #dock-0ad{bottom:min(46vh,260px) !important;}


/* --- safety net (deterministic) --- */
*,*::before,*::after{box-sizing:border-box;}
html,body{overflow-x:hidden;overflow-x:clip;max-width:100%;}
img,svg,video,iframe,canvas{max-width:100%;}
table{max-width:100%;}
/* simpleParallax оборачивает <img> в свой .simpleParallax — заставляем обёртку
   тянуться на всю высоту родителя, а фото внутри — cover. Проценты безопасны:
   при родителе без заданной высоты height:100% откатывается к auto (без коллапса). */
.simpleParallax{display:block;width:100%;height:100%;}
.simpleParallax img{width:100%;height:100%;object-fit:cover;}
/* Браузерный дефолт для <blockquote> и <figure> — margin: 1em 40px. Модель берёт
   эти семантические теги для отзывов и карточек с подписью, но сбросить поля
   забывает: внутри карточки в 267px текст сжимался до 131px (по 40px с каждой
   стороны) и переносился по одному слову, а между карточками зияли пустоты.
   Сбрасываем только горизонтальные поля — вертикальные обычно задуманы. */
blockquote, figure { margin-left: 0; margin-right: 0; }
/* Вложенные фигуры внутри сеток тоже не должны добавлять отступ сбоку. */
figure > blockquote, figure > figcaption { margin-left: 0; margin-right: 0; }
/* Если AOS не поднялся (CDN недоступен, блокировщик) — main.js вешает .no-aos.
   Без этого элементы с data-aos остались бы с opacity:0 из aos.css, то есть
   половина страницы была бы невидимой. */
html.no-aos [data-aos]{opacity:1 !important;transform:none !important;}
/* Пользователи с prefers-reduced-motion получают контент сразу, без анимаций. */
@media(prefers-reduced-motion:reduce){
  [data-aos]{opacity:1 !important;transform:none !important;transition:none !important;}
}
