/* Vitals Media — shared layout. Skins define: colors, fonts, personality. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{text-decoration:none;color:inherit}
h1,h2,h3{line-height:1.12;margin:0 0 .5em;text-wrap:balance}
p{margin:0 0 1em}
.vm-wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* Nav */
.vm-nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px)}
.vm-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 24px}
.vm-logo{font-weight:700;letter-spacing:.12em;font-size:15px}
.vm-links{display:flex;gap:26px;font-size:14px}
.vm-links a{opacity:.75}
.vm-links a:hover{opacity:1}
@media(max-width:760px){.vm-links{display:none}}

/* Buttons */
.vm-btn{display:inline-block;padding:14px 30px;border-radius:4px;font-weight:600;font-size:15px;letter-spacing:.02em;transition:transform .15s ease,opacity .15s ease;border:1.5px solid transparent}
.vm-btn:hover{transform:translateY(-1px)}
.vm-btn-small{padding:9px 20px;font-size:13.5px}
.vm-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

/* Hero */
.vm-hero{padding:110px 0 90px;text-align:left}
.vm-hero h1{font-size:clamp(40px,6.5vw,68px);max-width:17ch}
.vm-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:12.5px;font-weight:600;margin-bottom:18px}
.vm-sub{font-size:19px;max-width:54ch;opacity:.85}
.vm-pulse{display:block;width:min(540px,90%);height:52px;margin:18px 0 26px}

/* Sections */
main section{padding:84px 0}
.vm-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:700;margin-bottom:14px;opacity:.75}
main h2{font-size:clamp(28px,4vw,42px);max-width:22ch}
.vm-grid-2{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:start}
@media(max-width:820px){.vm-grid-2{grid-template-columns:1fr}}

/* Cards */
.vm-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:40px}
@media(max-width:760px){.vm-cards{grid-template-columns:1fr}}
.vm-card{padding:30px 28px;border-radius:8px}
.vm-card h3{font-size:20px;margin-bottom:.4em}
.vm-card p{margin:0;font-size:15.5px;opacity:.85}

/* Steps */
.vm-steps{list-style:none;margin:44px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:step}
@media(max-width:900px){.vm-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vm-steps{grid-template-columns:1fr}}
.vm-steps li{position:relative;padding-top:14px}
.vm-step-n{display:block;font-size:13px;font-weight:700;letter-spacing:.14em;margin-bottom:10px;opacity:.6}
.vm-steps h3{font-size:17.5px}
.vm-steps p{font-size:14.5px;opacity:.8;margin:0}

/* Why list */
.vm-why-list{list-style:none;margin:0;padding:0}
.vm-why-list li{padding:18px 0;font-size:16.5px;border-bottom:1px solid}
.vm-why-list li:last-child{border-bottom:none}

/* Chips */
.vm-chips{list-style:none;display:flex;flex-wrap:wrap;gap:12px;padding:0;margin:36px 0 22px}
.vm-chips li{padding:11px 22px;border-radius:999px;font-size:14.5px;font-weight:600;border:1.5px solid}
.vm-fit-note{max-width:58ch;opacity:.8}

/* Cases */
.vm-case-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:40px 0 20px}
@media(max-width:700px){.vm-case-row{grid-template-columns:1fr}}
.vm-case{padding:34px 30px;border-radius:8px}
.vm-case-tag{text-transform:uppercase;font-size:11px;letter-spacing:.14em;font-weight:700;opacity:.65;margin-bottom:12px}
.vm-case h3{font-size:19px}
.vm-case p:last-child{margin:0;font-size:15px;opacity:.8}

/* Contact / footer */
.vm-contact{text-align:center}
.vm-contact h2{margin-left:auto;margin-right:auto}
.vm-contact .vm-sub{margin:14px auto 0}
.vm-contact .vm-cta-row{justify-content:center}
.vm-foot-note{margin-top:34px;font-size:13.5px;letter-spacing:.06em;opacity:.6}
.vm-footer{padding:26px 0;font-size:13px}
.vm-footer-inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;opacity:.65}

/* FAQ */
.vm-faq-list{margin-top:36px;max-width:760px}
.vm-faq-list details{padding:4px 0;border-bottom:1px solid}
.vm-faq-list summary{cursor:pointer;font-weight:600;font-size:17px;padding:16px 36px 16px 0;list-style:none;position:relative}
.vm-faq-list summary::-webkit-details-marker{display:none}
.vm-faq-list summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400}
.vm-faq-list details[open] summary::after{content:"\2212"}
.vm-faq-list details p{padding:0 0 18px;max-width:62ch}

/* Skip link */
.vm-skip{position:absolute;left:-9999px;top:0;z-index:100;padding:12px 20px;font-weight:700}
.vm-skip:focus{left:12px;top:12px}

/* Keyboard focus */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:3px;border-radius:2px}

/* Mobile nav toggle */
.vm-burger{display:none;background:none;border:none;font:inherit;cursor:pointer;padding:8px;line-height:1}
@media(max-width:760px){
  .vm-burger{display:block}
  .vm-links{display:none}
  .vm-nav.vm-open .vm-links{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;padding:8px 24px 16px}
  .vm-nav.vm-open .vm-links a{padding:12px 0;font-size:16px}
}

/* Anchor landings clear the sticky nav */
main section[id]{scroll-margin-top:76px}

/* Safety: never show parent-theme scroll-top on landing */
#ast-scroll-top{display:none !important}
