/* VISION HERO — visionhhero.com — unique prefix: vshr */
:root{
  --vshr-navy-950:#08152b; --vshr-navy-900:#0b2f5c; --vshr-navy-800:#123b73; --vshr-navy-700:#164a8f;
  --vshr-cyan-300:#7fd8ff; --vshr-cyan-400:#4dc4f5; --vshr-cyan-500:#22aee8; --vshr-cyan-600:#1490c9;
  --vshr-ink-900:#0e1b2e; --vshr-ink-700:#3b4a5e; --vshr-ink-500:#647486; --vshr-ink-300:#aab7c4;
  --vshr-bg:#f5f9fc; --vshr-bg-tint:#eaf4fb; --vshr-white:#ffffff;
  --vshr-green:#2e9e5b; --vshr-red:#d9534f;
  --vshr-radius-sm:10px; --vshr-radius-md:16px; --vshr-radius-lg:24px;
  --vshr-shadow-sm:0 2px 10px rgba(11,47,92,.08); --vshr-shadow-md:0 10px 30px rgba(11,47,92,.12); --vshr-shadow-lg:0 24px 60px rgba(11,47,92,.20);
  --vshr-font-head:'Sora',sans-serif; --vshr-font-body:'Karla',sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--vshr-font-body);color:var(--vshr-ink-900);background:var(--vshr-bg);line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--vshr-font-head);line-height:1.15;margin:0 0 12px;color:var(--vshr-navy-900);}
p{margin:0 0 14px;color:var(--vshr-ink-700);}
a{color:var(--vshr-cyan-600);}
img{max-width:100%;display:block;}
.vshr-wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

/* ---------- Buttons ---------- */
.vshr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:99px;font-family:var(--vshr-font-head);font-weight:700;font-size:15px;text-decoration:none;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;}
.vshr-btn--primary{background:linear-gradient(135deg,var(--vshr-cyan-500),var(--vshr-navy-700));color:#fff;box-shadow:var(--vshr-shadow-md);}
.vshr-btn--primary:hover{transform:translateY(-2px);box-shadow:var(--vshr-shadow-lg);}
.vshr-btn--dark{background:var(--vshr-navy-900);color:#fff;}
.vshr-btn--sm{padding:9px 18px;font-size:13px;}
.vshr-btn--lg{padding:17px 32px;font-size:16.5px;}
.vshr-btn--block{width:100%;}

/* ---------- Header ---------- */
.vshr-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid #e2ecf3;}
.vshr-header-row{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:20px;}
.vshr-logo{display:flex;align-items:center;gap:8px;font-family:var(--vshr-font-head);font-weight:600;font-size:19px;color:var(--vshr-navy-900);text-decoration:none;}
.vshr-logo strong{color:var(--vshr-cyan-600);}
.vshr-logo-mark{display:inline-flex;color:var(--vshr-cyan-500);}
.vshr-nav{display:flex;align-items:center;gap:22px;}
.vshr-nav a{color:var(--vshr-ink-700);text-decoration:none;font-weight:600;font-size:14.5px;}
.vshr-nav a:hover{color:var(--vshr-cyan-600);}
.vshr-nav-cta{display:none;}
.vshr-navtoggle{display:none;background:none;border:none;color:var(--vshr-navy-900);cursor:pointer;}
@media (max-width:960px){
  .vshr-nav{position:fixed;inset:64px 0 0 0;background:#fff;flex-direction:column;align-items:flex-start;padding:26px 24px;gap:18px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:.2s ease;}
  .vshr-nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
  .vshr-navtoggle{display:block;}
  .vshr-header-cta{display:none;}
  .vshr-nav-cta{display:inline-flex;margin-top:10px;}
}
.vshr-header-cta{flex-shrink:0;}

/* ---------- Sticky CTA ---------- */
.vshr-stickycta{position:fixed;left:0;right:0;bottom:-100px;z-index:60;background:var(--vshr-navy-900);color:#fff;transition:bottom .3s ease;}
.vshr-stickycta.is-visible{bottom:0;}
.vshr-stickycta-row{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;gap:16px;font-size:14px;}
.vshr-stickycta-actions{display:flex;align-items:center;gap:12px;}
.vshr-stickyclose{background:none;border:none;color:#fff;opacity:.7;cursor:pointer;}
@media (max-width:640px){.vshr-stickycta-row span{display:none;}}

/* ---------- Hero ---------- */
.vshr-hero{position:relative;background:radial-gradient(1000px 480px at 85% 0%,rgba(34,174,232,.20),transparent 60%),linear-gradient(180deg,var(--vshr-navy-950),var(--vshr-navy-900) 80%);color:#eaf3fb;overflow:hidden;padding:52px 0 80px;}
.vshr-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;position:relative;z-index:2;}
.vshr-hero h1{font-size:clamp(30px,4vw,46px);color:#fff;margin:14px 0 16px;}
.vshr-hero-desc{font-size:17px;color:#c7dced;max-width:540px;margin-bottom:22px;}
.vshr-eyebrow{display:inline-block;background:rgba(34,174,232,.15);color:var(--vshr-cyan-300);border:1px solid rgba(127,216,255,.35);border-radius:99px;padding:6px 16px;font-family:var(--vshr-font-head);font-weight:600;font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;}
.vshr-section--white .vshr-eyebrow,.vshr-section--tint .vshr-eyebrow{background:rgba(20,144,201,.1);color:var(--vshr-cyan-600);border-color:rgba(20,144,201,.25);}
.vshr-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:0 0 26px;}
.vshr-check-item{display:flex;align-items:flex-start;gap:9px;font-weight:600;font-size:14px;color:#e7f1fa;}
.vshr-check-item svg{flex-shrink:0;margin-top:2px;color:var(--vshr-cyan-400);}
.vshr-hero-ctas{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.vshr-hero-price{font-family:var(--vshr-font-head);color:#dcecf7;}
.vshr-hero-price b{color:var(--vshr-cyan-300);font-size:19px;}
.vshr-compliance-note{margin-top:20px;font-size:11.5px;color:#8fa6bb;max-width:520px;}
.vshr-hero-media{position:relative;display:flex;justify-content:center;}
.vshr-hero-media img{max-width:420px;filter:drop-shadow(0 30px 60px rgba(0,0,0,.45));}
@media (max-width:960px){
  .vshr-hero-grid{grid-template-columns:1fr;}
  .vshr-hero-media{order:-1;}
  .vshr-check-grid{grid-template-columns:1fr;}
}

/* ---------- Hero dot-connect network ---------- */
.vshr-hero-network{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.6;pointer-events:none;}
.vshr-net-line{stroke:var(--vshr-cyan-400);stroke-width:1;stroke-dasharray:var(--len) var(--len);stroke-dashoffset:var(--len);opacity:0;animation:vshr-net-draw 7s ease-in-out infinite;animation-delay:var(--d);}
.vshr-net-dot{fill:var(--vshr-cyan-300);opacity:0;animation:vshr-net-pulse 7s ease-in-out infinite;animation-delay:var(--d);transform-box:fill-box;transform-origin:center;}
@keyframes vshr-net-draw{
  0%{stroke-dashoffset:var(--len);opacity:0;}
  8%{opacity:.8;} 35%{stroke-dashoffset:0;opacity:.5;} 75%{stroke-dashoffset:0;opacity:.22;} 100%{stroke-dashoffset:0;opacity:0;}
}
@keyframes vshr-net-pulse{
  0%{opacity:0;transform:scale(.4);} 10%{opacity:1;transform:scale(1.3);} 22%{opacity:.7;transform:scale(1);} 70%{opacity:.45;transform:scale(1);} 100%{opacity:0;transform:scale(.6);}
}
@media (prefers-reduced-motion:reduce){.vshr-net-line,.vshr-net-dot{animation:none;opacity:.3;stroke-dashoffset:0;}}
@media (max-width:960px){.vshr-hero-network{opacity:.4;}}

/* ---------- Badge bar ---------- */
.vshr-badgebar{background:var(--vshr-white);border-bottom:1px solid #e2ecf3;padding:16px 0;}
.vshr-badgebar-row{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;}
.vshr-badge-item{display:flex;align-items:center;gap:8px;font-family:var(--vshr-font-head);font-weight:600;font-size:13px;color:var(--vshr-navy-800);}
.vshr-badge-item svg{color:var(--vshr-cyan-500);}

/* ---------- Sections ---------- */
.vshr-section{padding:74px 0;}
.vshr-section--white{background:var(--vshr-white);}
.vshr-section--tint{background:var(--vshr-bg-tint);}
.vshr-section--dark{background:linear-gradient(180deg,var(--vshr-navy-950),var(--vshr-navy-900));color:#eaf3fb;}
.vshr-section--dark h2,.vshr-section--dark p{color:#eaf3fb;}
.vshr-section--dark .vshr-eyebrow{background:rgba(34,174,232,.15);color:var(--vshr-cyan-300);border-color:rgba(127,216,255,.35);}
.vshr-kicker{max-width:640px;margin:0 auto 42px;text-align:center;}
.vshr-kicker h2{font-size:clamp(24px,3vw,34px);}

/* ---------- Split layout ---------- */
.vshr-split{display:grid;grid-template-columns:.95fr 1.05fr;gap:52px;align-items:center;}
.vshr-split--rev{grid-template-columns:1.05fr .95fr;}
.vshr-split--rev .vshr-split-media{order:2;}
.vshr-split-media img{border-radius:var(--vshr-radius-lg);box-shadow:var(--vshr-shadow-md);}
@media (max-width:900px){.vshr-split,.vshr-split--rev{grid-template-columns:1fr;}.vshr-split--rev .vshr-split-media{order:0;}}

/* ---------- Why cards ---------- */
.vshr-works-img{display:block;width:100%;height:auto;max-width:1100px;margin:0 auto 40px;border-radius:var(--vshr-radius-lg);}
.vshr-card-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.vshr-whycard{background:var(--vshr-white);border:1px solid #e2ecf3;border-radius:var(--vshr-radius-md);padding:26px 22px;text-align:left;}
.vshr-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--vshr-cyan-500),var(--vshr-navy-700));color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.vshr-whycard h3{font-size:17px;}
.vshr-whycard p{font-size:14px;margin:0;}
@media (max-width:900px){.vshr-card-grid4{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.vshr-card-grid4{grid-template-columns:1fr;}}

/* ---------- Pricing ---------- */
.vshr-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;}
.vshr-price-card{position:relative;background:var(--vshr-white);border:1px solid #e2ecf3;border-radius:var(--vshr-radius-lg);padding:30px 24px;text-align:center;box-shadow:var(--vshr-shadow-sm);display:flex;flex-direction:column;}
.vshr-price-card.is-best{border-color:var(--vshr-cyan-500);box-shadow:var(--vshr-shadow-lg);transform:scale(1.03);}
.vshr-price-tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--vshr-cyan-500),var(--vshr-navy-700));color:#fff;font-family:var(--vshr-font-head);font-weight:700;font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;padding:6px 16px;border-radius:99px;white-space:nowrap;}
.vshr-price-media img{margin:14px auto 8px;max-width:150px;}
.vshr-price-name{font-family:var(--vshr-font-head);font-weight:700;font-size:19px;color:var(--vshr-navy-900);}
.vshr-price-sub-name{color:var(--vshr-ink-500);font-size:13.5px;margin-bottom:14px;}
.vshr-price-row{display:flex;align-items:baseline;justify-content:center;gap:6px;font-family:var(--vshr-font-head);margin-bottom:4px;}
.vshr-price-row b{font-size:30px;color:var(--vshr-navy-900);}
.vshr-price-row span{color:var(--vshr-ink-500);font-size:13.5px;}
.vshr-price-sub{color:var(--vshr-ink-500);font-size:13px;margin-bottom:18px;}
.vshr-price-includes{list-style:none;padding:0;margin:0 0 22px;text-align:left;flex-grow:1;}
.vshr-price-includes li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--vshr-ink-700);margin-bottom:8px;}
.vshr-price-includes svg{color:var(--vshr-cyan-500);flex-shrink:0;}
@media (max-width:900px){.vshr-price-grid{grid-template-columns:1fr;}.vshr-price-card.is-best{transform:none;}}

/* ---------- Ingredient grid ---------- */
.vshr-ing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px;}
.vshr-ing-card{background:var(--vshr-white);border:1px solid #e2ecf3;border-radius:var(--vshr-radius-md);padding:22px;text-align:center;}
.vshr-ing-card img{margin:0 auto 12px;border-radius:12px;}
.vshr-ing-card h3{font-size:16px;}
.vshr-ing-card p{font-size:13.5px;margin:0;}
@media (max-width:900px){.vshr-ing-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.vshr-ing-grid{grid-template-columns:1fr;}}

/* ---------- Comparison chart (animated) ---------- */
.vshr-cmp-chart{max-width:760px;margin:36px auto 0;background:var(--vshr-navy-950);border-radius:var(--vshr-radius-lg);padding:32px 30px 26px;box-shadow:var(--vshr-shadow-md);}
.vshr-cmp-title{color:#fff;font-family:var(--vshr-font-head);font-weight:700;font-size:16px;margin:0 0 6px;}
.vshr-cmp-sub{color:#9db6cc;font-size:13px;margin:0 0 26px;}
.vshr-cmp-row{margin-bottom:22px;}
.vshr-cmp-label{color:#eaf3fb;font-weight:700;font-family:var(--vshr-font-head);font-size:14px;margin-bottom:10px;}
.vshr-cmp-bar-line{display:grid;grid-template-columns:132px 1fr;align-items:center;gap:12px;margin-bottom:6px;}
.vshr-cmp-bar-tag{font-size:11.5px;font-weight:700;color:#b9cee0;}
.vshr-cmp-tag--vh{color:var(--vshr-cyan-300);}
.vshr-cmp-track{position:relative;height:9px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;}
.vshr-cmp-fill{position:absolute;inset:0;width:0;border-radius:99px;transition:width 1.3s cubic-bezier(.16,.84,.44,1);}
.vshr-cmp-fill--vh{background:linear-gradient(90deg,var(--vshr-cyan-600),var(--vshr-cyan-300));}
.vshr-cmp-fill--typ{background:linear-gradient(90deg,#5a6b7d,#8a9aab);}
@media (max-width:560px){.vshr-cmp-bar-line{grid-template-columns:100px 1fr;}.vshr-cmp-chart{padding:26px 20px 22px;}}
@media (prefers-reduced-motion:reduce){.vshr-cmp-fill{transition:none;}}

/* ---------- Reviews ---------- */
.vshr-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.vshr-review-card{background:var(--vshr-white);border:1px solid #e2ecf3;border-radius:var(--vshr-radius-md);padding:24px;}
.vshr-review-top{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.vshr-review-top img{border-radius:50%;}
.vshr-review-name{font-weight:700;font-family:var(--vshr-font-head);font-size:14.5px;}
.vshr-review-stars{color:#f2b134;font-size:13px;}
.vshr-review-card h3{font-size:15.5px;}
.vshr-review-card p{font-size:13.5px;margin:0;}
.vshr-review-disclosure{text-align:center;font-size:12px;color:var(--vshr-ink-500);margin-top:18px;}
@media (max-width:900px){.vshr-review-grid{grid-template-columns:1fr;}}

/* ---------- Guarantee ---------- */
.vshr-guarantee-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;}
.vshr-guarantee-media{display:flex;justify-content:center;}
.vshr-guarantee-media img{filter:drop-shadow(0 20px 40px rgba(0,0,0,.4));}
@media (max-width:900px){.vshr-guarantee-grid{grid-template-columns:1fr;}.vshr-guarantee-media{order:-1;}}

/* ---------- FAQ ---------- */
.vshr-faq-wrap{max-width:760px;margin:0 auto;}
.vshr-faq-item{border-bottom:1px solid #e2ecf3;padding:18px 0;}
.vshr-faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-family:var(--vshr-font-head);font-weight:700;font-size:15.5px;color:var(--vshr-navy-900);}
.vshr-faq-item summary::-webkit-details-marker{display:none;}
.vshr-faq-item .vshr-plus{color:var(--vshr-cyan-500);font-size:22px;transition:transform .2s ease;}
.vshr-faq-item[open] .vshr-plus{transform:rotate(45deg);}
.vshr-faq-item p{margin-top:12px;font-size:14.5px;}

/* ---------- CTA band ---------- */
.vshr-section--cta{background:linear-gradient(135deg,var(--vshr-navy-900),var(--vshr-cyan-600));}
.vshr-cta-band{text-align:center;color:#fff;}
.vshr-cta-band h2{color:#fff;}
.vshr-cta-band p{color:#dcecf7;margin-bottom:24px;}
.vshr-cta-img{width:180px;height:180px;margin:0 auto 20px;display:block;}

/* ---------- Popup ---------- */
.vshr-popup{position:fixed;inset:0;background:rgba(8,21,43,.7);z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:.2s ease;}
.vshr-popup.is-visible{opacity:1;pointer-events:auto;}
.vshr-popup-inner{background:#fff;border-radius:var(--vshr-radius-lg);padding:34px 30px;max-width:420px;position:relative;text-align:center;}
.vshr-popup-close{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--vshr-ink-500);cursor:pointer;}
.vshr-popup-inner h3{font-size:21px;}
.vshr-popup-inner p{font-size:14.5px;}

/* ---------- Footer ---------- */
.vshr-footer{background:var(--vshr-navy-950);color:#c7dced;padding:56px 0 26px;}
.vshr-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px;margin-bottom:36px;}
.vshr-footer h4{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px;}
.vshr-footer a{display:block;color:#a9c1d6;text-decoration:none;font-size:14px;margin-bottom:9px;}
.vshr-footer a:hover{color:var(--vshr-cyan-300);}
.vshr-footer-desc{font-size:13px;color:#93aac0;}
.vshr-logo--footer{margin-bottom:14px;color:#fff;}
.vshr-logo--footer strong{color:var(--vshr-cyan-300);}
.vshr-footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid rgba(255,255,255,.1);padding-top:22px;font-size:12.5px;color:#7d92a8;}
@media (max-width:900px){.vshr-footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.vshr-footer-grid{grid-template-columns:1fr;}}

/* ---------- Breadcrumb ---------- */
.vshr-breadcrumb{font-size:13px;color:var(--vshr-ink-500);margin:24px auto 0;max-width:1180px;padding:0 24px;}
.vshr-breadcrumb a{color:var(--vshr-cyan-600);text-decoration:none;font-weight:600;}

/* ---------- Legal / generic pages ---------- */
.vshr-legal{max-width:820px;margin:40px auto;padding:0 24px;}
.vshr-legal h1{font-size:30px;}
.vshr-legal h2{margin-top:30px;font-size:19px;}
.vshr-legal p,.vshr-legal li{color:var(--vshr-ink-700);font-size:15px;}
.vshr-legal ul{padding-left:20px;}
.vshr-legal .vshr-meta{color:var(--vshr-ink-500);font-size:13px;}

/* ---------- 404 ---------- */
.vshr-404{text-align:center;padding:110px 24px;}
.vshr-404 h1{font-size:clamp(64px,12vw,140px);color:var(--vshr-cyan-500);margin-bottom:0;}

/* ---------- Blog ---------- */
.vshr-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.vshr-blog-card{background:var(--vshr-white);border:1px solid #e2ecf3;border-radius:var(--vshr-radius-md);overflow:hidden;text-decoration:none;display:block;}
.vshr-blog-card img{aspect-ratio:16/10;object-fit:cover;}
.vshr-blog-card-body{padding:18px;}
.vshr-blog-tag{color:var(--vshr-cyan-600);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.vshr-blog-card h3{font-size:17px;margin:8px 0 6px;color:var(--vshr-navy-900);}
.vshr-blog-card p{font-size:13.5px;margin:0;}
@media (max-width:900px){.vshr-blog-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.vshr-blog-grid{grid-template-columns:1fr;}}
.vshr-post{max-width:760px;margin:0 auto;padding:0 24px;}
.vshr-post h1{font-size:clamp(26px,4vw,38px);}
.vshr-post-meta{color:var(--vshr-ink-500);font-size:13.5px;margin-bottom:24px;}
.vshr-post img{border-radius:var(--vshr-radius-lg);margin:20px 0;}
.vshr-post p{font-size:16px;}
.vshr-post h2{margin-top:32px;font-size:22px;}

.vshr-center{text-align:center;}
