/* =========================================================================
   VENTO — isvento.pro
   Design system: "Regulatory Ledger"
   Dense utilitarian ledger — ruled statement pages, running numerals,
   hairline rules between every row & column. No shadows, no rounded panels.
   Class scheme: vnt.<section>.<element>  (dot-separated, escaped in CSS)
   ========================================================================= */

:root{
  --site-bg:#EEF1F5;
  --site-surface:#FFFFFF;
  --site-text:#101B2D;
  --site-muted:#5B6B80;
  --site-accent:#FF5A1F;
  --site-accent2:#1F3A5F;

  --vnt-hairline:rgba(16,27,45,.15);
  --vnt-hairline-strong:rgba(16,27,45,.30);
  --vnt-radius:6px;
  --vnt-container:1100px;
  --vnt-gutter:24px;
  --vnt-section-pad:clamp(40px,6vw,56px);

  --font-head:'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
  --font-body:'Manrope', ui-sans-serif, system-ui, sans-serif;
}

/* ---------- reset / base ------------------------------------------------ */
*,*::before,*::after{ box-sizing:border-box; }
html{ overflow-x:hidden; scroll-behavior:smooth; }
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;
  overflow-x:hidden;
}
img,svg{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; background:none; }
input,textarea,select{ font-family:inherit; font-size:inherit; }
ul{ margin:0; padding:0; }
h1,h2,h3,h4{ font-family:var(--font-head); color:var(--site-text); margin:0; font-weight:600; letter-spacing:-.01em; }
p{ margin:0; }
address{ font-style:normal; }
::selection{ background:var(--site-accent); color:#fff; }

:focus-visible{ outline:2px solid var(--site-accent); outline-offset:3px; }

.vnt\.container{
  width:100%;
  max-width:var(--vnt-container);
  margin-inline:auto;
  padding-inline:var(--vnt-gutter);
}
@media(min-width:1200px){
  .vnt\.container{ padding-inline:32px; }
}

.vnt\.rule{ height:1px; width:100%; background:var(--vnt-hairline); border:none; margin:0; }

/* ---------- section / numeral (signature element) ----------------------- */
.vnt\.section{
  padding-block:var(--vnt-section-pad);
  border-bottom:1px solid var(--vnt-hairline);
  background:var(--site-bg);
}
.vnt\.section\.surface{ background:var(--site-surface); }
.vnt\.section\.head{ margin-bottom:32px; max-width:820px; }
.vnt\.section\.numeral{
  display:inline-block;
  font-family:var(--font-head);
  font-weight:700;
  font-size:13px;
  letter-spacing:.16em;
  color:var(--site-accent);
  margin-bottom:12px;
  font-variant-numeric:tabular-nums;
}
.vnt\.section\.kicker{
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.16em;
  color:var(--site-muted);
  margin-bottom:8px;
}
.vnt\.section\.title{ font-size:clamp(24px,3.4vw,34px); line-height:1.15; }
.vnt\.section\.sub{ color:var(--site-muted); max-width:60ch; margin-top:12px; font-size:16px; }

/* ---------- buttons ------------------------------------------------------ */
.vnt\.btn\.primary{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--site-accent); color:#fff;
  padding:13px 22px; border-radius:var(--vnt-radius);
  border:1px solid var(--site-accent);
  font-family:var(--font-head); font-weight:600; font-size:14px; letter-spacing:.02em;
  transition:background .2s ease, transform .15s ease;
}
.vnt\.btn\.primary:hover{ background:#e04c15; transform:translateY(-1px); }

.vnt\.btn\.ghost{
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:var(--site-text);
  padding:12px 22px; border-radius:var(--vnt-radius);
  border:1px solid var(--vnt-hairline-strong);
  font-family:var(--font-head); font-weight:600; font-size:14px;
  transition:border-color .2s ease, color .2s ease;
}
.vnt\.btn\.ghost:hover{ border-color:var(--site-accent2); color:var(--site-accent2); }

.vnt\.btn\.line{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-head); font-weight:600; font-size:15px;
  color:var(--site-accent2); border-bottom:1px solid currentColor; padding-bottom:3px;
}
.vnt\.btn\.line i{ transition:transform .2s ease; }
.vnt\.btn\.line:hover i{ transform:translateX(4px); }
.vnt\.btn\.line\.on-dark{ color:#fff; }

/* ---------- generic card (vnt.card.consult sample) ----------------------- */
.vnt\.card{ background:var(--site-surface); border:1px solid var(--vnt-hairline-strong); border-radius:var(--vnt-radius); padding:26px; }
.vnt\.card\.consult{ border-top:3px solid var(--site-accent); }

/* ==========================================================================
   HEADER — thin top utility bar + large nav, hairline bottom border
   ========================================================================== */
#brand-bar-jv6{ position:sticky; top:0; z-index:100; background:var(--site-surface); }

.vnt\.header\.utility{ background:var(--site-accent2); color:#fff; }
.vnt\.util\.inner{
  max-width:var(--vnt-container); margin-inline:auto;
  padding:9px var(--vnt-gutter);
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-size:12px; letter-spacing:.02em; flex-wrap:wrap;
}
.vnt\.util\.contact{ display:flex; gap:20px; flex-wrap:wrap; }
.vnt\.util\.contact a{ color:#fff; opacity:.88; transition:opacity .15s ease; }
.vnt\.util\.contact a:hover{ opacity:1; text-decoration:underline; }
.vnt\.util\.reg{ opacity:.72; font-variant-numeric:tabular-nums; letter-spacing:.04em; }

.vnt\.header\.main{ border-bottom:1px solid var(--vnt-hairline-strong); background:var(--site-surface); transition:padding .2s ease; }
.vnt\.main\.inner{
  max-width:var(--vnt-container); margin-inline:auto;
  padding:18px var(--vnt-gutter);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
#brand-bar-jv6.is-scrolled .vnt\.header\.utility{ display:none; }
#brand-bar-jv6.is-scrolled .vnt\.main\.inner{ padding-block:12px; }

.vnt\.brand\.mark{ display:flex; align-items:center; gap:10px; }
.vnt\.brand\.icon{ width:32px; height:32px; flex-shrink:0; }
.vnt\.brand\.word{
  font-family:var(--font-head); font-weight:700; font-size:21px;
  letter-spacing:-.01em; color:var(--site-text); line-height:1;
}

.vnt\.nav\.bar{ display:none; align-items:center; gap:32px; }
@media(min-width:960px){ .vnt\.nav\.bar{ display:flex; } }
.vnt\.nav\.item{
  font-family:var(--font-head); font-weight:500; font-size:15px;
  color:var(--site-text); position:relative; padding:6px 0;
}
.vnt\.nav\.item::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--site-accent); transform:scaleX(0); transform-origin:left;
  transition:transform .2s ease;
}
.vnt\.nav\.item:hover::after,
.vnt\.nav\.item\.is-active::after{ transform:scaleX(1); }

.vnt\.nav\.toggle{
  display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
  border:1px solid var(--vnt-hairline-strong); border-radius:var(--vnt-radius);
  padding:11px; min-width:44px; min-height:44px;
}
@media(min-width:960px){ .vnt\.nav\.toggle{ display:none; } }
.vnt\.nav\.toggle span{ width:20px; height:2px; background:var(--site-text); display:block; transition:transform .2s ease, opacity .2s ease; }
#hamburger-skc[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
#hamburger-skc[aria-expanded="true"] span:nth-child(2){ opacity:0; }
#hamburger-skc[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* mobile drawer — does not lock page scroll */
#scrim-2qz{
  position:fixed; inset:0; background:rgba(16,27,45,.45);
  z-index:120; opacity:0; visibility:hidden; transition:opacity .25s ease;
}
#scrim-2qz.is-open{ opacity:1; visibility:visible; }

#drawer-8i3{
  position:fixed; top:0; right:0; bottom:0; width:min(320px,86vw);
  background:var(--site-surface); z-index:130;
  transform:translateX(100%); transition:transform .3s ease;
  padding:22px; overflow-y:auto; border-left:1px solid var(--vnt-hairline-strong);
}
#drawer-8i3.is-open{ transform:translateX(0); }
.vnt\.drawer\.head{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:16px; margin-bottom:12px; border-bottom:1px solid var(--vnt-hairline);
}
.vnt\.drawer\.title{ font-family:var(--font-head); font-weight:700; font-size:17px; }
.vnt\.drawer\.close{ font-size:24px; line-height:1; color:var(--site-text); width:36px; height:36px; }
.vnt\.drawer\.nav{ display:flex; flex-direction:column; }
.vnt\.drawer\.nav .vnt\.nav\.item{ padding:15px 4px; border-bottom:1px solid var(--vnt-hairline); }
.vnt\.drawer\.nav .vnt\.nav\.item::after{ display:none; }

/* ==========================================================================
   HERO — index: type-only, oversized headline on solid/gradient field
   ========================================================================== */
.vnt\.hero\.field{
  background:linear-gradient(165deg, var(--site-accent2) 0%, #142640 100%);
  color:#fff;
  padding-block:calc(var(--vnt-section-pad) * 1.7);
  position:relative;
}
.vnt\.hero\.kicker{
  text-transform:uppercase; letter-spacing:.22em; font-size:12px;
  color:rgba(255,255,255,.65); margin-bottom:20px; display:flex; align-items:center; gap:12px;
}
.vnt\.hero\.kicker::before{ content:""; width:34px; height:1px; background:var(--site-accent); }
.vnt\.hero\.title{
  font-size:clamp(38px,7vw,76px); line-height:1.02; font-weight:700;
  max-width:17ch; letter-spacing:-.02em; color:#fff;
}
.vnt\.hero\.sub{
  margin-top:24px; font-size:clamp(16px,2vw,19px);
  color:rgba(255,255,255,.78); max-width:54ch; line-height:1.6;
}
.vnt\.hero\.link{
  margin-top:34px; display:inline-flex; align-items:center; gap:10px;
  color:#fff; font-family:var(--font-head); font-weight:600;
  border-bottom:1px solid var(--site-accent); padding-bottom:4px;
}
.vnt\.hero\.link i{ transition:transform .2s ease; }
.vnt\.hero\.link:hover i{ transform:translateX(4px); }

/* ---------- page_hero variants ------------------------------------------- */
.vnt\.pagehero\.kicker{ text-transform:uppercase; letter-spacing:.16em; font-size:12px; color:var(--site-accent); margin-bottom:14px; }
.vnt\.pagehero\.title{ font-size:clamp(30px,5vw,48px); line-height:1.08; max-width:22ch; }
.vnt\.pagehero\.sub{ margin-top:16px; color:var(--site-muted); max-width:60ch; font-size:17px; line-height:1.65; }

.vnt\.pagehero\.plain{ background:var(--site-bg); padding-block:var(--vnt-section-pad); border-bottom:1px solid var(--vnt-hairline); }

.vnt\.pagehero\.tinted{ background:var(--site-accent2); padding-block:var(--vnt-section-pad); }
.vnt\.pagehero\.tinted .vnt\.pagehero\.title{ color:#fff; }
.vnt\.pagehero\.tinted .vnt\.pagehero\.kicker{ color:#ffb495; }
.vnt\.pagehero\.tinted .vnt\.pagehero\.sub{ color:rgba(255,255,255,.75); }

.vnt\.pagehero\.compact{ background:var(--site-surface); padding-block:var(--vnt-section-pad); text-align:center; border-bottom:1px solid var(--vnt-hairline); }
.vnt\.pagehero\.compact .vnt\.pagehero\.title{ margin-inline:auto; }
.vnt\.pagehero\.compact .vnt\.pagehero\.sub{ margin-inline:auto; max-width:56ch; }
.vnt\.pagehero\.compact .vnt\.pagehero\.kicker{ justify-content:center; display:block; }

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.vnt\.testimonials\.grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
@media(min-width:1200px){ .vnt\.testimonials\.grid{ grid-template-columns:repeat(3,1fr); } }
.vnt\.testimonial\.card{ padding:30px 26px; border-left:1px solid var(--vnt-hairline); border-top:1px solid var(--vnt-hairline); }
@media(min-width:1200px){
  .vnt\.testimonials\.grid .vnt\.testimonial\.card{ border-top:none; }
  .vnt\.testimonials\.grid .vnt\.testimonial\.card:first-child{ border-left:none; }
}
.vnt\.testimonial\.quote{ font-family:var(--font-head); font-size:18px; line-height:1.55; color:var(--site-text); }
.vnt\.testimonial\.byline{ margin-top:20px; font-size:14px; color:var(--site-muted); display:flex; flex-direction:column; gap:2px; }
.vnt\.testimonial\.byline strong{ color:var(--site-text); font-family:var(--font-head); }

/* single large testimonial with photo (cfo-advisory) */
.vnt\.testimonial\.feature{ display:grid; grid-template-columns:1fr; gap:30px; align-items:center; }
@media(min-width:768px){ .vnt\.testimonial\.feature{ grid-template-columns:220px 1fr; } }
.vnt\.testimonial\.photo{ width:100%; aspect-ratio:1/1; overflow:hidden; border-radius:var(--vnt-radius); border:1px solid var(--vnt-hairline-strong); background:var(--site-accent2); }
.vnt\.testimonial\.photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.25) sepia(.15) hue-rotate(172deg) saturate(1.4) brightness(.92); }
.vnt\.testimonial\.feature\.quote{ font-family:var(--font-head); font-size:clamp(20px,2.6vw,28px); line-height:1.35; }
.vnt\.testimonial\.feature\.byline{ margin-top:18px; color:var(--site-muted); font-size:15px; }
.vnt\.testimonial\.feature\.byline strong{ color:var(--site-text); }

/* ==========================================================================
   BENEFITS — numbered, ledger row grid
   ========================================================================== */
.vnt\.benefits\.grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
@media(min-width:1200px){ .vnt\.benefits\.grid{ grid-template-columns:repeat(4,1fr); } }
.vnt\.benefit\.row{ padding:24px 22px; border-left:1px solid var(--vnt-hairline); border-top:1px solid var(--vnt-hairline); }
@media(min-width:1200px){
  .vnt\.benefit\.row{ border-top:none; }
  .vnt\.benefits\.grid .vnt\.benefit\.row:first-child{ border-left:none; }
}
.vnt\.benefit\.num{ font-family:var(--font-head); font-weight:700; font-size:13px; color:var(--site-accent); letter-spacing:.12em; margin-bottom:12px; display:block; }
.vnt\.benefit\.title{ font-size:17px; margin-bottom:10px; }
.vnt\.benefit\.text{ color:var(--site-muted); font-size:14.5px; line-height:1.65; }

/* ==========================================================================
   TRUST BAR — membership / association marks row
   ========================================================================== */
.vnt\.trust\.bar{ padding-block:34px; background:var(--site-surface); border-bottom:1px solid var(--vnt-hairline); border-top:1px solid var(--vnt-hairline); }
.vnt\.trust\.row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); align-items:center; }
.vnt\.trust\.mark{
  display:flex; align-items:center; justify-content:center; padding:12px;
  color:var(--site-muted); font-family:var(--font-head); font-weight:600;
  font-size:13px; letter-spacing:.05em; text-align:center;
  border-left:1px solid var(--vnt-hairline);
}
.vnt\.trust\.row .vnt\.trust\.mark:first-child{ border-left:none; }

/* ==========================================================================
   CTA STRIP — full band / centered card / split with inline form
   ========================================================================== */
.vnt\.cta\.strip{ background:var(--site-accent2); color:#fff; padding-block:var(--vnt-section-pad); }
.vnt\.cta\.inner{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:26px; }
.vnt\.cta\.title{ font-size:clamp(22px,3vw,30px); max-width:28ch; color:#fff; }
.vnt\.cta\.sub{ color:rgba(255,255,255,.7); margin-top:8px; }
.vnt\.cta\.actions{ display:flex; gap:14px; flex-wrap:wrap; }

.vnt\.cta\.card{
  max-width:720px; margin-inline:auto; text-align:center;
  background:var(--site-surface); border:1px solid var(--vnt-hairline-strong);
  border-radius:var(--vnt-radius); padding:48px 34px;
}
.vnt\.cta\.card .vnt\.cta\.title{ color:var(--site-text); margin-inline:auto; }
.vnt\.cta\.card .vnt\.cta\.sub{ color:var(--site-muted); margin-inline:auto; max-width:50ch; }
.vnt\.cta\.card\.actions{ margin-top:26px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

.vnt\.cta\.split{ display:grid; grid-template-columns:1fr; gap:30px; }
@media(min-width:900px){ .vnt\.cta\.split{ grid-template-columns:1fr 1fr; align-items:center; } }
.vnt\.cta\.form{ display:flex; gap:10px; flex-wrap:wrap; background:rgba(255,255,255,.06); padding:18px; border:1px solid rgba(255,255,255,.22); border-radius:var(--vnt-radius); }
.vnt\.cta\.form input{ flex:1; min-width:170px; padding:12px 14px; border-radius:var(--vnt-radius); border:1px solid rgba(255,255,255,.32); background:rgba(255,255,255,.08); color:#fff; }
.vnt\.cta\.form input::placeholder{ color:rgba(255,255,255,.6); }

/* ==========================================================================
   AUDIENCE — two columns: this is for you / this is not for you
   ========================================================================== */
.vnt\.audience\.grid{ display:grid; grid-template-columns:1fr; }
@media(min-width:768px){ .vnt\.audience\.grid{ grid-template-columns:1fr 1fr; } }
.vnt\.audience\.col{ padding:30px 0; border-top:1px solid var(--vnt-hairline); }
@media(min-width:768px){
  .vnt\.audience\.col{ border-top:none; padding:0 34px; }
  .vnt\.audience\.col:first-child{ border-left:none; padding-left:0; }
  .vnt\.audience\.col:last-child{ border-left:1px solid var(--vnt-hairline); }
}
.vnt\.audience\.heading{ display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-size:18px; margin-bottom:20px; }
.vnt\.audience\.yes .vnt\.audience\.heading i{ color:var(--site-accent); }
.vnt\.audience\.no .vnt\.audience\.heading i{ color:var(--site-muted); }
.vnt\.audience\.list{ list-style:none; display:flex; flex-direction:column; gap:0; }
.vnt\.audience\.list li{ padding:14px 0; border-bottom:1px solid var(--vnt-hairline); font-size:15px; color:var(--site-text); display:flex; gap:10px; }
.vnt\.audience\.list li i{ color:var(--site-accent); margin-top:3px; flex-shrink:0; }
.vnt\.audience\.no .vnt\.audience\.list li i{ color:var(--site-muted); }

/* ==========================================================================
   PROCESS — 4 numbered steps in a row
   ========================================================================== */
.vnt\.process\.row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
@media(min-width:1200px){ .vnt\.process\.row{ grid-template-columns:repeat(4,1fr); } }
.vnt\.process\.step{ padding:26px 22px; border-left:1px solid var(--vnt-hairline); border-top:1px solid var(--vnt-hairline); }
@media(min-width:1200px){
  .vnt\.process\.step{ border-top:none; }
  .vnt\.process\.row .vnt\.process\.step:first-child{ border-left:none; }
}
.vnt\.process\.num{ font-family:var(--font-head); font-size:36px; font-weight:700; color:var(--vnt-hairline-strong); line-height:1; margin-bottom:16px; }
.vnt\.process\.title{ font-size:16px; margin-bottom:8px; }
.vnt\.process\.text{ color:var(--site-muted); font-size:14px; line-height:1.65; }

/* ==========================================================================
   FAQ — accordion (collapsed by default, .is-open expands)
   ========================================================================== */
[data-accordion]{ border-top:1px solid var(--vnt-hairline); }
[data-acc-item]{ border-bottom:1px solid var(--vnt-hairline); }
[data-acc-trigger]{
  width:100%; border:none; padding:22px 4px; display:flex;
  justify-content:space-between; align-items:center; gap:16px; text-align:left;
  font-family:var(--font-head); font-weight:600; font-size:16px; color:var(--site-text);
}
.vnt\.faq\.icon{
  flex-shrink:0; width:24px; height:24px; border:1px solid var(--vnt-hairline-strong);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  transition:transform .25s ease, background .25s ease, border-color .25s ease; color:var(--site-text);
}
[data-acc-item]\.is-open .vnt\.faq\.icon{ transform:rotate(45deg); background:var(--site-accent); border-color:var(--site-accent); color:#fff; }
[data-acc-item].is-open .vnt\.faq\.icon{ transform:rotate(45deg); background:var(--site-accent); border-color:var(--site-accent); color:#fff; }

.vnt\.faq\.body{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
[data-acc-item].is-open .vnt\.faq\.body{ max-height:600px; }
.vnt\.faq\.body\.inner{ padding:0 4px 22px; color:var(--site-muted); font-size:15px; line-height:1.7; max-width:70ch; }

/* ==========================================================================
   CHECKLIST — two column: intro text + checkmark list
   ========================================================================== */
.vnt\.checklist\.grid{ display:grid; grid-template-columns:1fr; gap:34px; }
@media(min-width:900px){ .vnt\.checklist\.grid{ grid-template-columns:1fr 1fr; } }
.vnt\.checklist\.intro{ font-size:17px; color:var(--site-muted); line-height:1.75; }
.vnt\.checklist\.list{ list-style:none; }
.vnt\.checklist\.item{ display:flex; gap:12px; padding:15px 0; border-bottom:1px solid var(--vnt-hairline); font-size:15px; }
.vnt\.checklist\.item i{ color:var(--site-accent); margin-top:3px; flex-shrink:0; }

/* ==========================================================================
   STATS — row of big numbers
   ========================================================================== */
.vnt\.stats\.row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
@media(min-width:1200px){ .vnt\.stats\.row{ grid-template-columns:repeat(4,1fr); } }
.vnt\.stat\.item{ padding:24px 22px; border-left:1px solid var(--vnt-hairline); border-top:1px solid var(--vnt-hairline); }
@media(min-width:1200px){
  .vnt\.stat\.item{ border-top:none; }
  .vnt\.stats\.row .vnt\.stat\.item:first-child{ border-left:none; }
}
.vnt\.stat\.num{ font-family:var(--font-head); font-size:clamp(30px,4vw,44px); font-weight:700; color:var(--site-accent2); font-variant-numeric:tabular-nums; }
.vnt\.stat\.label{ margin-top:10px; font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--site-muted); }

/* ==========================================================================
   CASE STUDY — three-act: situation / work / result
   ========================================================================== */
.vnt\.case\.grid{ display:grid; grid-template-columns:1fr; }
@media(min-width:900px){ .vnt\.case\.grid{ grid-template-columns:repeat(3,1fr); } }
.vnt\.case\.act{ padding:28px 26px; border-top:1px solid var(--vnt-hairline); }
@media(min-width:900px){
  .vnt\.case\.act{ border-top:none; border-left:1px solid var(--vnt-hairline); }
  .vnt\.case\.grid .vnt\.case\.act:first-child{ border-left:none; }
}
.vnt\.case\.label{ font-family:var(--font-head); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--site-accent); margin-bottom:16px; }
.vnt\.case\.text{ color:var(--site-text); font-size:15px; line-height:1.75; }

/* ==========================================================================
   SPLIT FEATURE — rows with numbered labels
   ========================================================================== */
.vnt\.splitfeature\.row{
  display:grid; grid-template-columns:64px 1fr; gap:20px;
  padding-block:28px; border-bottom:1px solid var(--vnt-hairline); align-items:start;
}
@media(min-width:768px){ .vnt\.splitfeature\.row{ grid-template-columns:100px 1fr; } }
.vnt\.splitfeature\.num{ font-family:var(--font-head); font-weight:700; font-size:22px; color:var(--vnt-hairline-strong); }
.vnt\.splitfeature\.title{ font-size:19px; margin-bottom:10px; }
.vnt\.splitfeature\.text{ color:var(--site-muted); font-size:15px; line-height:1.75; max-width:65ch; }

/* ==========================================================================
   METHODOLOGY — numbered phases down the page, rule between
   ========================================================================== */
.vnt\.methodology\.list{ display:flex; flex-direction:column; }
.vnt\.methodology\.phase{ display:grid; grid-template-columns:52px 1fr; gap:22px; padding-block:32px; }
@media(min-width:768px){ .vnt\.methodology\.phase{ grid-template-columns:64px 1fr; } }
.vnt\.methodology\.num{
  font-family:var(--font-head); font-weight:700; font-size:15px; color:#fff;
  background:var(--site-accent2); width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.vnt\.methodology\.title{ font-size:18px; margin-bottom:10px; }
.vnt\.methodology\.text{ color:var(--site-muted); font-size:15px; line-height:1.75; max-width:68ch; }
.vnt\.methodology\.rule{ height:1px; background:var(--vnt-hairline); width:100%; }

/* ==========================================================================
   CONTACT FORM — two columns: reassurance + form
   ========================================================================== */
.vnt\.contactform\.grid{ display:grid; grid-template-columns:1fr; gap:38px; }
@media(min-width:900px){ .vnt\.contactform\.grid{ grid-template-columns:.85fr 1.15fr; } }
.vnt\.contactform\.aside p{ color:var(--site-muted); line-height:1.8; margin-top:16px; font-size:15.5px; }
.vnt\.contactform\.aside\.item{ display:flex; gap:12px; padding:16px 0; border-bottom:1px solid var(--vnt-hairline); }
.vnt\.contactform\.aside\.item i{ color:var(--site-accent); margin-top:3px; }
.vnt\.contactform\.panel{ background:var(--site-surface); border:1px solid var(--vnt-hairline-strong); border-radius:var(--vnt-radius); padding:32px; }
.vnt\.form\.field{ margin-bottom:18px; display:flex; flex-direction:column; gap:7px; }
.vnt\.form\.label{ font-size:13px; font-weight:600; color:var(--site-text); font-family:var(--font-head); letter-spacing:.02em; }
.vnt\.form\.input, .vnt\.form\.textarea{
  border:1px solid var(--vnt-hairline-strong); border-radius:var(--vnt-radius);
  padding:13px 14px; font-family:var(--font-body); font-size:15px;
  background:var(--site-bg); color:var(--site-text); width:100%;
}
.vnt\.form\.textarea{ min-height:150px; resize:vertical; }
.vnt\.form\.input:focus, .vnt\.form\.textarea:focus{ outline:2px solid var(--site-accent); outline-offset:1px; background:#fff; }
.vnt\.form\.submit{ width:100%; justify-content:center; margin-top:6px; }
.vnt\.form\.note{ margin-top:14px; font-size:12.5px; color:var(--site-muted); }

/* ==========================================================================
   MEDIA / IMAGERY — navy-duotone thumbnails, strict grid alignment
   ========================================================================== */
.vnt\.media\.frame{ overflow:hidden; border-radius:var(--vnt-radius); border:1px solid var(--vnt-hairline-strong); background:var(--site-accent2); }
.vnt\.media\.frame img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.3) sepia(.15) hue-rotate(175deg) saturate(1.4) brightness(.9); }
.vnt\.media\.frame\.wide{ aspect-ratio:16/9; }
.vnt\.media\.frame\.square{ aspect-ratio:1/1; }
.vnt\.media\.frame\.tall{ aspect-ratio:3/4; }
.shift-media-2e2{ width:100%; height:100%; object-fit:cover; }

/* ==========================================================================
   SWIPER
   ========================================================================== */
.swipe-deck-u3t{ padding-bottom:48px; }
.swipe-deck-u3t .swiper-slide{ height:auto; }
.swiper-pagination-bullet{ background:var(--vnt-hairline-strong); opacity:1; border-radius:2px; width:8px; height:8px; }
.swiper-pagination-bullet-active{ background:var(--site-accent); }
.swiper-button-next, .swiper-button-prev{
  color:var(--site-accent2); width:40px; height:40px; background:var(--site-surface);
  border:1px solid var(--vnt-hairline-strong); border-radius:50%;
}
.swiper-button-next::after, .swiper-button-prev::after{ font-size:14px; font-weight:700; }

/* ==========================================================================
   MODALS — fixed overlay, scroll-safe
   ========================================================================== */
.site-modal, .lightbox-xx3{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:24px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s ease, visibility .25s ease;
}
.site-modal.is-open, .lightbox-xx3.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
.vnt\.modal\.backdrop{ position:absolute; inset:0; background:rgba(16,27,45,.6); }
.vnt\.modal\.dialog{
  position:relative; background:var(--site-surface); border-radius:var(--vnt-radius);
  border:1px solid var(--vnt-hairline-strong); max-width:520px; width:100%;
  padding:36px 32px; max-height:85vh; overflow-y:auto;
}
.vnt\.modal\.close{
  position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--vnt-hairline-strong); font-size:18px;
}
.vnt\.modal\.title{ font-size:22px; margin-bottom:12px; }
.vnt\.modal\.text{ color:var(--site-muted); line-height:1.7; font-size:15px; }

/* ==========================================================================
   FOOTER — big multi-column, hairline verticals, no rounded panels
   ========================================================================== */
.vnt\.footer\.wrap{ background:var(--site-accent2); color:#fff; padding-top:var(--vnt-section-pad); }
.vnt\.footer\.grid{
  max-width:var(--vnt-container); margin-inline:auto; padding-inline:var(--vnt-gutter);
  display:grid; grid-template-columns:1fr; gap:38px; padding-bottom:44px;
}
@media(min-width:768px){ .vnt\.footer\.grid{ grid-template-columns:1.2fr 1fr 1fr 1fr; } }
.vnt\.footer\.col{ padding-left:0; }
@media(min-width:768px){
  .vnt\.footer\.col{ padding-left:28px; border-left:1px solid rgba(255,255,255,.18); }
  .vnt\.footer\.grid .vnt\.footer\.col:first-child{ border-left:none; padding-left:0; }
}
.vnt\.footer\.brand{ display:flex; flex-direction:column; gap:16px; }
.vnt\.footer\.brand\.mark{ display:flex; align-items:center; gap:10px; }
.vnt\.footer\.brand\.mark .vnt\.brand\.icon{ width:30px; height:30px; filter:brightness(0) invert(1); }
.vnt\.footer\.brand\.word{ font-family:var(--font-head); font-weight:700; font-size:19px; color:#fff; }
.vnt\.footer\.tagline{ color:rgba(255,255,255,.65); font-size:14px; line-height:1.65; max-width:32ch; }
.vnt\.footer\.heading{ font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,255,255,.55); margin-bottom:18px; }
.vnt\.footer\.nav{ display:flex; flex-direction:column; gap:11px; }
.vnt\.footer\.nav a, .vnt\.footer\.legalnav a{ color:rgba(255,255,255,.85); font-size:14.5px; transition:color .15s ease; }
.vnt\.footer\.nav a:hover, .vnt\.footer\.legalnav a:hover{ color:var(--site-accent); }
.vnt\.footer\.legal, .vnt\.footer\.address, .vnt\.footer\.contact{ color:rgba(255,255,255,.75); font-size:14px; line-height:1.85; }
.vnt\.footer\.contact{ margin-top:14px; }
.vnt\.footer\.contact a{ color:rgba(255,255,255,.85); transition:color .15s ease; }
.vnt\.footer\.contact a:hover{ color:var(--site-accent); }

.vnt\.footer\.bottom{
  border-top:1px solid rgba(255,255,255,.18);
  padding:20px var(--vnt-gutter); max-width:var(--vnt-container); margin-inline:auto;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;
  font-size:13px; color:rgba(255,255,255,.6);
}
.vnt\.footer\.legalnav{ display:flex; gap:20px; flex-wrap:wrap; }

/* ==========================================================================
   AOS override — subtle, low-amplitude motion
   ========================================================================== */
[data-aos]{ transition-timing-function:ease-out !important; }
[data-aos^="fade"]{ transition-duration:.55s !important; }

/* ==========================================================================
   MISC UTILITIES
   ========================================================================== */
.vnt\.grid\.two{ display:grid; grid-template-columns:1fr; gap:32px; }
@media(min-width:768px){ .vnt\.grid\.two{ grid-template-columns:1fr 1fr; } }
.vnt\.grid\.three{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:0; }

@media(min-width:1200px){
  .vnt\.section{ padding-block:calc(var(--vnt-section-pad) + 8px); }
}


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

.cookie-bar-iw1-overlay{background:transparent;pointer-events:none;}
.cookie-bar-iw1-panel{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;transform:translateY(100%);}
.cookie-bar-iw1-panel>*{max-width:900px;margin-left:auto;margin-right:auto;}
.cookie-bar-iw1-panel.is-open{transform:translateY(0);}
@media(max-width:520px){.cookie-bar-iw1-actions button{min-width:100%;}}
#side-dock-n3i{left:auto !important;right:18px !important;}
@media(max-width:520px){#side-dock-n3i{right:12px !important;}}
html[data-cookie-open] #side-dock-n3i{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;}
}
