/* REVIA — Design System v2 */

@font-face{ font-family:'Manrope'; src:url('fonts/Manrope-Light.ttf') format('truetype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face{ font-family:'Manrope'; src:url('fonts/Manrope-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Manrope'; src:url('fonts/Manrope-Medium.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'Manrope'; src:url('fonts/Manrope-SemiBold.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Manrope'; src:url('fonts/Manrope-Bold.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:'Manrope'; src:url('fonts/Manrope-ExtraBold.ttf') format('truetype'); font-weight:800; font-style:normal; font-display:swap; }

:root{
  --color-dark:        #08102D;
  --color-navy:        #1A2C3E;
  --color-mid:         #2E4156;
  --color-slate:       #5A6B7C;
  --color-mist:        #8DA1B2;
  --color-pale:        #DCE2E8;
  --color-bg:          #F6F8FA;
  --color-white:       #FFFFFF;
  --color-accent:      #08102D;
  --color-accent-hover:#1A2C3E;

  --text-xs:   12px;
  --text-sm:   14px;
  --text-base: 16px;
  --text-md:   18px;
  --text-lg:   22px;
  --text-xl:   28px;
  --text-2xl:  36px;
  --text-3xl:  48px;
  --text-4xl:  64px;

  --radius: 12px;
  --radius-sm: 8px;
  --ease: cubic-bezier(.16,.85,.45,1);

  /* legacy compat aliases */
  --bg: var(--color-bg);
  --bg-soft: var(--color-bg);
  --bg-alt: var(--color-pale);
  --card: var(--color-white);
  --card-line: var(--color-pale);
  --text: var(--color-dark);
  --text-dim: var(--color-mid);
  --muted: var(--color-slate);
  --accent: var(--color-accent);
  --accent-light: var(--color-navy);
  --accent-deep: var(--color-navy);
  --accent-glow: rgba(8,16,45,0.06);
  --line: var(--color-pale);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-dark);
  font-family:'Manrope',sans-serif;
  font-size:var(--text-base);
  line-height:1.7;
  font-weight:400;
  letter-spacing:0;
  -webkit-font-smoothing:antialiased;
}
::selection{ background:var(--color-dark); color:var(--color-white); }
a{color:inherit;text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
h1,h2,h3,h4{ font-family:'Manrope',sans-serif; font-weight:700; margin:0; letter-spacing:-0.02em; color:var(--color-dark); }
p{ margin:0; }

.eyebrow{
  font-family:'Manrope',sans-serif; font-size:var(--text-xs); letter-spacing:0.08em; text-transform:uppercase;
  color:var(--color-slate); font-weight:500; display:inline-flex; align-items:center; gap:8px;
}
.eyebrow::before{content:""; width:18px; height:1.5px; background:var(--color-dark); display:inline-block; border-radius:1px;}
p.lead{ color:var(--color-slate); font-size:17px; max-width:56ch; }

/* BUTTONS */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 28px; border-radius:var(--radius-sm);
  font-size:var(--text-sm); letter-spacing:0.02em; text-transform:uppercase; font-weight:600; cursor:pointer;
  border:1.5px solid transparent; transition:all .2s ease;
  font-family:'Manrope',sans-serif;
}
.btn-gold{
  background:var(--color-dark); color:var(--color-white); border-color:var(--color-dark);
  box-shadow:none;
}
.btn-gold:hover{
  background:var(--color-navy);
  border-color:var(--color-navy);
  transform:translateY(-2px);
  box-shadow:0 4px 16px -4px rgba(8,16,45,0.25);
}
.btn-ghost{
  border-color:var(--color-dark); color:var(--color-dark); background:transparent;
}
.btn-ghost:hover{
  background:var(--color-dark); color:var(--color-white);
  transform:translateY(-2px);
}
.btn-ghost[data-lead-open]{
  box-shadow:0 0 16px rgba(8,16,45,.25);
  animation:btnGlowDark 2.5s ease-in-out infinite;
}
@keyframes btnGlowDark{
  0%,100%{box-shadow:0 0 16px rgba(8,16,45,.2);}
  50%{box-shadow:0 0 28px rgba(8,16,45,.45);}
}

/* HEADER */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(255,255,255,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--color-pale);
  transition: box-shadow .3s ease;
}
header.scrolled{
  box-shadow:0 2px 16px rgba(8,16,45,0.08);
}
header.scrolled .nav{ padding-top:14px; padding-bottom:14px; }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:20px 32px; max-width:1180px; margin:0 auto; transition: padding .3s ease; }
.logo{ font-family:'Manrope',sans-serif; font-size:19px; font-weight:800; letter-spacing:0.02em; display:flex; align-items:center; gap:10px; color:var(--color-dark);}
.logo .logo-drop{ flex:none; }
.logo .logo-sub{ color:var(--color-slate); font-size:12px; font-weight:500; letter-spacing:0.04em; }
.logo .mark{
  width:28px;height:28px;
  background:var(--color-dark);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center; position:relative; flex:none;
}
.logo .mark::after{content:""; width:6px;height:6px;background:var(--color-white); border-radius:50%;}
.navlinks{ display:flex; gap:28px; font-size:13.5px; color:var(--color-mid); font-weight:500; }
.navlinks a{ transition:color .2s ease; }
.navlinks a:hover, .navlinks a.active{ color:var(--color-dark); }
.navcta{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; justify-content:flex-end; }
.navcta .phone{ font-size:13.5px; color:var(--color-mid); white-space:nowrap; font-weight:500;}
.nav-address{ font-size:11.5px; color:var(--color-slate); white-space:nowrap; width:100%; text-align:right; margin-top:-16px; text-decoration:none; transition:color .2s; }
.nav-address:hover{ color:var(--color-dark); }
.navburger{ display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:6px; }
.navburger span{ width:20px; height:1.5px; background:var(--color-dark); display:block; border-radius:1px; }
@media (max-width: 940px){
  .navlinks, .navcta .phone, .nav-address{ display:none; }
  .navburger{ display:flex; }
}
@media (max-width: 480px){
  header .logo .logo-text{ display:none; }
}
.mobile-panel{ display:none; flex-direction:column; gap:2px; padding:6px 32px 22px; border-bottom:1px solid var(--color-pale); background:var(--color-white); }
.mobile-panel.open{ display:flex; }
.mobile-panel a{ padding:12px 0; border-top:1px solid var(--color-pale); color:var(--color-mid); font-size:14.5px; font-weight:500; }

/* PAGE HERO (inner pages) */
.page-hero{ padding:140px 0 48px; border-bottom:1px solid var(--color-pale);
  background:var(--color-bg);
}
.page-hero h1{ font-size:clamp(32px,4.2vw,50px); line-height:1.08; margin-top:16px; max-width:18ch; font-weight:800; }
.breadcrumb{ font-size:var(--text-xs); color:var(--color-mist); }
.breadcrumb a:hover{ color:var(--color-dark); }

section{ padding:72px 0; }
@media (max-width:700px){ section{ padding:48px 0; } .wrap{ padding:0 22px; } }
.sec-head{ max-width:640px; margin-bottom:40px; }
.sec-head h2{ font-size:clamp(28px,3.2vw,var(--text-2xl)); margin-top:16px; font-weight:700; }
.sec-head p{ color:var(--color-mid); margin-top:16px; }

/* image placeholder */
.img-ph{
  border:1px solid var(--color-pale); border-radius:var(--radius);
  background:var(--color-pale);
  display:flex; align-items:center; justify-content:center; text-align:center; color:var(--color-slate);
  font-size:var(--text-xs); padding:28px; min-height:220px; line-height:1.6;
  position:relative; overflow:hidden;
}
.img-ph::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(8,16,45,0.03), transparent);
}
.img-ph span{ position:relative; z-index:1; }
.img-ph b{ display:block; color:var(--color-mid); font-size:var(--text-sm); font-weight:500; margin-bottom:8px; }

/* generic card */
.card{ border:1px solid var(--color-pale); border-radius:var(--radius); background:var(--color-white); transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.card:hover{ border-color:var(--color-mist); transform:translateY(-4px); box-shadow:0 8px 32px -8px rgba(8,16,45,0.12); }

/* directions grid */
.dir-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--color-pale); border:1px solid var(--color-pale); border-radius:var(--radius); overflow:hidden; }
@media (max-width:960px){ .dir-grid{ grid-template-columns:repeat(2,1fr);} }
.dir-card{ background:var(--color-white); padding:36px 26px; min-height:190px; display:flex; flex-direction:column; justify-content:space-between; transition:background .25s ease; }
.dir-card:hover{ background:var(--color-bg); }
.dir-card .num{ font-size:var(--text-xs); color:var(--color-slate); letter-spacing:0.08em; }
.dir-card h4{ font-size:16.5px; margin-top:18px; font-weight:600;}
.dir-card span{ font-size:13px; color:var(--color-slate); margin-top:10px; display:block; }

/* constructor */
.constructor{ background:var(--color-bg); border-top:1px solid var(--color-pale); border-bottom:1px solid var(--color-pale); }
.cons-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; }
@media (max-width:900px){ .cons-grid{ grid-template-columns:1fr; } }
.cons-opts{ display:flex; flex-direction:column; gap:10px; margin-top:30px; }
.cons-opt{
  text-align:left; padding:18px 22px; border:1px solid var(--color-pale); background:var(--color-white); color:var(--color-dark);
  font-family:'Manrope',sans-serif; font-size:15px; cursor:pointer; border-radius:var(--radius-sm);
  display:flex; justify-content:space-between; align-items:center; transition:.25s ease;
}
.cons-opt:hover{ border-color:var(--color-mist); box-shadow:0 2px 12px rgba(8,16,45,0.06); }
.cons-opt.active{ background:var(--color-dark); color:var(--color-white); border-color:var(--color-dark); font-weight:600; }
.cons-opt .arrow{ opacity:.5; }
.cons-result{
  background:var(--color-white); border:1px solid var(--color-pale); border-radius:var(--radius); padding:40px; min-height:340px;
  box-shadow:0 2px 12px rgba(8,16,45,0.06);
}
.cons-result .tag{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-slate); font-weight:500; }
.cons-result h3{ font-size:26px; margin-top:14px; }
.cons-result p{ color:var(--color-mid); margin-top:16px; }
.cons-result .stats{ display:flex; gap:30px; margin-top:28px; flex-wrap:wrap; }
.cons-result .stats div{ font-size:var(--text-xs); color:var(--color-slate);}
.cons-result .stats b{ display:block; font-size:20px; color:var(--color-dark); font-weight:700; }
.cons-result .price{ margin-top:28px; padding-top:24px; border-top:1px dashed var(--color-pale); display:flex; justify-content:space-between; align-items:center;}
.cons-result .price b{ font-size:22px; color:var(--color-dark); font-weight:700;}

/* product cards */
.prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:900px){ .prod-grid{ grid-template-columns:1fr; } }
.prod-card{
  border:1px solid var(--color-pale); border-radius:var(--radius); background:var(--color-white);
  padding:34px 28px; display:flex; flex-direction:column; height:100%;
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  position:relative; overflow:hidden;
}
.prod-card::after{
  content:none;
}
.prod-card:hover{ transform:translateY(-4px); border-color:var(--color-mist); box-shadow:0 8px 32px -8px rgba(8,16,45,0.12); }
.prod-card .icon{
  width:48px;height:48px;
  background:rgba(8,16,45,0.06);
  border:1px solid var(--color-pale); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--color-dark); font-size:17px;
}
.prod-card h3{ font-size:21px; margin-top:22px; font-weight:700; }
.prod-card .sub{ font-size:13px; color:var(--color-slate); margin-top:5px; }
.prod-card p{ color:var(--color-mid); font-size:14.5px; margin-top:16px; flex:1; }
.prod-card ul{ list-style:none; padding:0; margin:18px 0 0; font-size:13.5px; color:var(--color-mid); }
.prod-card ul li{ padding:7px 0; border-top:1px solid var(--color-pale); }
.prod-card ul li::before{ content:"\2014  "; color:var(--color-mist); }
.prod-card .prod-protocol{
  margin-top:16px; padding-top:16px; border-top:1px solid var(--color-pale);
  font-size:12.5px; line-height:1.5; color:var(--color-slate);
}
.prod-card .prod-foot{ margin-top:22px; padding-top:20px; border-top:1px solid var(--color-pale); display:flex; justify-content:space-between; align-items:center; }
.prod-card .prod-foot b{ font-size:19px; font-weight:700; }
.bundle-note{ text-align:center; margin-top:34px; color:var(--color-mid); font-size:13.5px; }
.bundle-note b{ color:var(--color-dark); }

/* IV drips */
.iv-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--color-pale); border:1px solid var(--color-pale); border-radius:var(--radius); overflow:hidden; margin-top:12px;}
@media (max-width:900px){ .iv-grid{ grid-template-columns:repeat(2,1fr);} }
.iv-card{ background:var(--color-white); padding:28px 24px; transition:background .25s ease, transform .25s ease, box-shadow .25s ease;}
.iv-card:hover{ background:var(--color-bg); transform:translateY(-4px); box-shadow:0 8px 24px rgba(8,16,45,0.08); }
.iv-card h4{ font-size:15px; font-weight:600; }
.iv-card span.p{ display:block; margin-top:12px; color:var(--color-dark); font-size:17px; font-weight:700; }
.iv-card p{ font-size:var(--text-xs); color:var(--color-mid); margin-top:8px; }

/* tabs / comparison */
.tabs{ display:flex; gap:8px; margin-bottom:36px; flex-wrap:wrap; }
.tab-btn{
  padding:11px 20px; border:1px solid var(--color-pale); background:var(--color-white);
  color:var(--color-mid); font-size:13px; cursor:pointer; border-radius:100px;
  font-family:'Manrope',sans-serif; font-weight:500; transition:.25s ease;
}
.tab-btn:hover{ border-color:var(--color-mist); }
.tab-btn.active{ background:var(--color-dark); color:var(--color-white); border-color:var(--color-dark); font-weight:600;}
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--color-pale); border:1px solid var(--color-pale); border-radius:var(--radius); overflow:hidden; }
@media (max-width:800px){ .compare{ grid-template-columns:1fr; } }
.compare-col{ background:var(--color-white); padding:32px; }
.compare-col h4{ font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--color-slate); font-weight:600;}
.compare-col.ours h4{ color:var(--color-dark); }
.compare-row{ padding:15px 0; border-top:1px solid var(--color-pale); font-size:14.5px; color:var(--color-mid); }
.compare-col.ours .compare-row{ color:var(--color-dark); }

/* cases */
.case-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
@media (max-width:800px){ .case-grid{ grid-template-columns:1fr; } }
.case-card{
  border:1px solid var(--color-pale); border-radius:var(--radius); padding:32px; background:var(--color-white);
  transition: transform .25s ease, box-shadow .25s ease;
}
.case-card:hover{ transform:translateY(-4px); box-shadow:0 8px 32px -8px rgba(8,16,45,0.12); }
.case-result{ font-size:29px; color:var(--color-dark); font-weight:700; }
.case-card p{ color:var(--color-mid); font-size:14.5px; margin-top:14px; }
.case-card .who{ font-size:var(--text-xs); color:var(--color-slate); margin-top:18px; padding-top:18px; border-top:1px solid var(--color-pale);}

/* process steps */
.process{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
@media (max-width:800px){ .process{ grid-template-columns:1fr; } }
.step .n{ font-size:42px; color:var(--color-mist); font-weight:700; }
.step h4{ font-size:var(--text-md); margin-top:12px; font-weight:600;}
.step p{ color:var(--color-mid); font-size:14.5px; margin-top:12px; }

/* trust */
.trust{ background:var(--color-bg); border-top:1px solid var(--color-pale); border-bottom:1px solid var(--color-pale); }
.trust-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
@media (max-width:900px){ .trust-grid{ grid-template-columns:1fr; } }
.trust ul{ list-style:none; padding:0; margin:26px 0 0; }
.trust li{ padding:15px 0; border-top:1px solid var(--color-pale); color:var(--color-mid); font-size:14.5px; display:flex; gap:14px; }
.trust li::before{ content:"\2713"; color:var(--color-dark); flex:none; font-weight:700; }

/* doctors */
.doc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:800px){ .doc-grid{ grid-template-columns:1fr; } }
.doc-card{ text-align:left; transition:transform .25s ease, box-shadow .25s ease; }
.doc-card:hover{ transform:translateY(-5px); box-shadow:0 8px 32px rgba(8,16,45,0.1); }
.avatar-ph{
  aspect-ratio:4/5; border-radius:var(--radius);
  background:var(--color-pale);
  border:1px solid var(--color-pale);
  display:flex; align-items:center; justify-content:center; font-size:var(--text-xs); color:var(--color-slate); text-align:center; padding:18px;
  position:relative; overflow:hidden;
}
.avatar-ph::before{ content:none; }
.doc-card h4{ font-size:16.5px; margin-top:18px; font-weight:600;}
.doc-card .role{ font-size:13px; color:var(--color-slate); margin-top:4px; }
.doc-card p{ font-size:13.5px; color:var(--color-mid); margin-top:10px; }

/* pricing */
.price-table{ width:100%; border-collapse:collapse; margin-top:12px; }
.price-table th{ text-align:left; font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--color-slate); font-weight:600; padding:16px 0; border-bottom:1px solid var(--color-pale);}
.price-table td{ padding:20px 0; border-bottom:1px solid var(--color-pale); font-size:15px; color:var(--color-mid); }
.price-table td.pname{ color:var(--color-dark); font-size:16.5px; font-weight:500; }
.price-table td.pval{ color:var(--color-dark); font-size:16.5px; text-align:right; font-weight:700; }
.price-note{ font-size:13px; color:var(--color-slate); margin-top:22px; }

/* faq */
.faq-item{ border-top:1px solid var(--color-pale); }
.faq-item:last-child{ border-bottom:1px solid var(--color-pale); }
.faq-q{ padding:24px 0; display:flex; justify-content:space-between; align-items:center; gap:20px; cursor:pointer; font-size:var(--text-base); font-family:'Manrope',sans-serif; color:var(--color-dark); font-weight:500; }
.faq-q .faq-arrow{ color:var(--color-dark); font-size:24px; transition:transform .3s ease; flex:none; line-height:1; transform:rotate(90deg); }
.faq-item.open .faq-arrow{ transform:rotate(270deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; color:var(--color-mid); font-size:14.5px; }
.faq-item.open .faq-a{ padding-bottom:24px; }

/* reviews carousel */
.reviews-rail{ display:flex; gap:16px; overflow-x:auto; padding:8px 4px 24px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; align-items:flex-start; }
.reviews-rail::-webkit-scrollbar{ height:5px; }
.reviews-rail::-webkit-scrollbar-thumb{ background:var(--color-pale); border-radius:4px; }
.review-card{
  width:260px; min-width:260px; scroll-snap-align:start; border:1px solid var(--color-pale);
  border-radius:var(--radius); background:var(--color-white); padding:0; overflow:hidden;
  box-shadow:0 2px 12px rgba(8,16,45,0.06); flex-shrink:0;
  transition: border-color .25s ease, box-shadow .25s ease, transform .3s ease;
}
.review-card:hover{
  border-color:var(--color-slate);
  box-shadow:0 8px 32px -8px rgba(8,16,45,0.12);
  transform:scale(1.04);
  z-index:2;
}
.review-shot{
  width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
}
.review-card .meta{ font-size:var(--text-xs); color:var(--color-slate); display:flex; justify-content:space-between; padding:12px 16px; }
.review-quote{
  font-size:13px; font-style:normal; color:var(--color-mid); padding:10px 14px;
  margin:0; line-height:1.45;
  background:rgba(8,16,45,0.03); position:relative;
  max-height:0; overflow:hidden; opacity:0;
  transition: max-height .4s ease, opacity .3s ease, padding .3s ease;
  padding-top:0; padding-bottom:0;
}
.review-card:hover .review-quote{
  max-height:200px; opacity:1;
  padding-top:10px; padding-bottom:10px;
}
.review-card--cta{
  display:flex; align-items:center; justify-content:center;
  align-self:center;
  background:transparent; border:none; box-shadow:none;
  min-width:200px; width:200px; min-height:auto;
}
.review-card--cta:hover{ border-color:transparent; box-shadow:none; transform:none; }
.review-note{ font-size:var(--text-xs); color:var(--color-slate); margin-top:8px; }

/* blog */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-card{ transition:transform .25s ease, box-shadow .25s ease; }
.blog-card:hover{ transform:translateY(-4px); box-shadow:0 8px 24px rgba(8,16,45,0.08); }
.blog-card .cover{
  aspect-ratio:16/10; border-radius:var(--radius);
  background:var(--color-pale);
  border:1px solid var(--color-pale); display:flex; align-items:center; justify-content:center;
  font-size:11.5px; color:var(--color-slate); text-align:center; padding:18px; margin-bottom:18px;
}
.blog-card h4{ font-size:16.5px; font-weight:600; line-height:1.35; }
.blog-card span.cat{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-slate); font-weight:500; }
.blog-card p{ font-size:13.5px; color:var(--color-mid); margin-top:10px; }
.article-body{ max-width:720px; margin:0 auto; }
.article-body h2{ font-size:24px; margin-top:48px; margin-bottom:16px; }
.article-body h3{ font-size:19px; margin-top:32px; margin-bottom:12px; }
.article-body p{ color:var(--color-mid); font-size:15.5px; margin-bottom:16px; }
.article-body ul{ color:var(--color-mid); font-size:15.5px; padding-left:20px; }
.article-body li{ margin-bottom:8px; }
.article-meta{ display:flex; gap:16px; font-size:var(--text-xs); color:var(--color-slate); margin-top:18px; }
.article-callout{
  border-left:3px solid var(--color-dark); padding:18px 22px;
  background:rgba(8,16,45,0.04); border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-size:14.5px; color:var(--color-mid); margin:28px 0;
}

/* cta band */
.cta-band{
  text-align:center; padding:72px 0;
  background:var(--color-dark);
  position:relative; overflow:hidden;
}
.cta-band::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:60px; height:1.5px;
  background:var(--color-mist);
  opacity:0.4;
}
.cta-band h2{ font-size:clamp(28px,4vw,44px); max-width:640px; margin:0 auto 22px; font-weight:700; color:var(--color-white); }
.cta-band p{ color:var(--color-mist); max-width:480px; margin:0 auto 36px; }
.cta-band .btn-gold{
  background:var(--color-white); color:var(--color-dark); border-color:var(--color-white);
}
.cta-band .btn-gold:hover{
  background:var(--color-pale); border-color:var(--color-pale);
}
.cta-band .btn-ghost{
  border-color:#fff;color:#fff;
  box-shadow:0 0 18px rgba(255,255,255,.35);
  animation:btnGlow 2.5s ease-in-out infinite;
}
.cta-band .btn-ghost:hover{
  background:rgba(255,255,255,.15); color:#fff;
  box-shadow:0 0 32px rgba(255,255,255,.6);
}
@keyframes btnGlow{
  0%,100%{box-shadow:0 0 18px rgba(255,255,255,.3);}
  50%{box-shadow:0 0 32px rgba(255,255,255,.6);}
}
.cta-band .eyebrow{ color:var(--color-mist); }
.cta-band .eyebrow::before{ background:var(--color-mist); }

/* footer */
footer{ border-top:none; padding:70px 0 44px; background:var(--color-dark); }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:44px; }
@media (max-width:800px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
.foot-grid h5{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-white); margin-bottom:18px; font-weight:600;}
.foot-grid a, .foot-grid p{ display:block; color:var(--color-mist); font-size:var(--text-sm); margin-bottom:11px; transition:color .2s ease; }
.foot-grid a:hover{ color:var(--color-white); }
.foot-legal{ margin-top:60px; padding-top:26px; border-top:1px solid var(--color-navy); font-size:var(--text-xs); color:var(--color-slate); line-height:1.75; text-align:center; }
.foot-legal a{ color:var(--color-mist); }
.foot-legal a:hover{ color:var(--color-white); }
footer .logo .logo-img{ }
footer p{ color:var(--color-mist); }
.badge-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:24px;}
.badge{ font-size:11px; letter-spacing:.04em; color:var(--color-mist); border:1px solid var(--color-navy); padding:7px 13px; border-radius:100px; }

/* DOCS / LICENSES */
.docs-section{ background:var(--color-bg); padding:60px 0; }
.docs-grid{
  display:flex; flex-wrap:wrap; gap:24px;
  justify-content:center;
}
.docs-grid .doc-card{ width:calc((100% - 48px)/3); }
@media(max-width:900px){ .docs-grid .doc-card{ width:calc((100% - 24px)/2); } }
@media(max-width:560px){ .docs-grid .doc-card{ width:100%; } }
.doc-card{
  background:var(--color-white); border:1px solid var(--color-pale); border-radius:var(--radius);
  padding:24px; box-shadow:0 2px 12px rgba(8,16,45,0.06);
  transition:box-shadow .25s ease, border-color .25s ease;
  display:flex; flex-direction:column; gap:12px; width:100%;
}
.doc-card:hover{ box-shadow:0 6px 24px rgba(8,16,45,0.10); border-color:var(--color-slate); }
.doc-thumb{
  display:block; border-radius:var(--radius-sm); overflow:hidden;
  background:var(--color-pale); aspect-ratio:4/3; margin-bottom:4px;
}
.doc-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .3s ease;
}
.doc-card:hover .doc-thumb img{ transform:scale(1.03); }
.doc-card h4{ font-size:var(--text-base); font-weight:700; color:var(--color-dark); margin:0; }
.doc-card p{ font-size:13px; color:var(--color-mid); line-height:1.55; margin:0; }
.doc-badge{
  display:inline-block; background:var(--color-pale); color:var(--color-mid);
  border-radius:100px; padding:4px 12px; font-size:12px; font-weight:500; width:fit-content;
}
.doc-link{
  font-size:var(--text-sm); font-weight:500; color:var(--color-dark);
  text-decoration:underline; text-underline-offset:3px;
  transition:color .2s ease; margin-top:auto;
}
.doc-link:hover{ color:var(--color-navy); }
.doc-link span{ display:inline-block; transition:transform .2s ease; }
.doc-link:hover span{ transform:translateX(3px); }
.docs-verify{
  text-align:center; font-size:13px; color:var(--color-slate);
  margin-top:32px;
}
@media(max-width:800px){ .docs-section{ padding:40px 0; } }

/* GALLERY MARQUEE */
.gallery-section{ background:var(--color-white); padding:60px 0; overflow:hidden; }
.gallery-marquee{ overflow:hidden; width:100%; cursor:pointer; padding:8px 0; position:relative; }
.gallery-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.85); border:1px solid var(--color-pale);
  color:var(--color-dark); font-size:24px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; opacity:0; transition:opacity .3s ease, background .2s ease;
  box-shadow:0 2px 8px rgba(8,16,45,0.1);
}
.gallery-marquee:hover .gallery-arrow{ opacity:1; }
.gallery-arrow:hover{ background:#fff; }
.gallery-arrow--left{ left:16px; }
.gallery-arrow--right{ right:16px; }
.gallery-track{
  display:flex; gap:20px; width:max-content;
  will-change:transform;
}
.gallery-slide{
  flex:0 0 auto; width:360px; height:240px;
  border-radius:var(--radius); overflow:hidden;
  background:var(--color-pale);
}
.gallery-slide img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .4s ease, filter .4s ease;
}
.gallery-slide:hover img{ transform:scale(1.04); filter:brightness(1.05); }
@media(max-width:800px){
  .gallery-section{ padding:36px 0; }
  .gallery-slide{ width:280px; height:190px; }
}
@media(max-width:480px){
  .gallery-slide{ width:240px; height:160px; }
  .gallery-track{ gap:12px; }
}

/* comfort amenities */
.comfort-block{ margin-top:0; margin-bottom:40px; }
.comfort-title{ font-size:20px; font-weight:700; color:var(--color-dark); margin:0 0 24px; }
.comfort-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
}
.comfort-item{
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 18px; border-radius:12px;
  background:var(--color-bg); transition:box-shadow .2s ease;
}
.comfort-item:hover{ box-shadow:0 2px 12px rgba(8,16,45,.06); }
.comfort-icon{
  flex-shrink:0; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  border-radius:10px; background:#fff; color:var(--color-mid);
  box-shadow:0 1px 4px rgba(8,16,45,.06);
}
.comfort-item div:last-child{ display:flex; flex-direction:column; gap:2px; }
.comfort-item strong{ font-size:13.5px; font-weight:600; color:var(--color-dark); line-height:1.3; }
.comfort-item span{ font-size:12.5px; color:var(--color-slate); line-height:1.4; }
@media(max-width:800px){
  .comfort-grid{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px){
  .comfort-grid{ grid-template-columns:1fr; }
  .comfort-block{ margin-top:32px; padding-top:28px; }
}

/* legal pages */
.legal-body{ max-width:760px; }
.legal-body h2{ font-size:20px; margin-top:36px; margin-bottom:12px; }
.legal-body p, .legal-body li{ color:var(--color-mid); font-size:14.5px; margin-bottom:12px; }
.legal-body ul{ padding-left:20px; }

/* SCROLL ANIMATIONS */
.reveal{
  opacity:0; transform:translateY(28px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.visible{
  opacity:1; transform:translateY(0);
}
.reveal-left{
  opacity:0; transform:translateX(-36px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal-left.visible{
  opacity:1; transform:translateX(0);
}
.reveal-right{
  opacity:0; transform:translateX(36px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal-right.visible{
  opacity:1; transform:translateX(0);
}
.reveal-scale{
  opacity:0; transform:scale(0.94);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal-scale.visible{
  opacity:1; transform:scale(1);
}

/* stagger children */
.stagger > *{ opacity:0; transform:translateY(20px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.stagger.visible > *{ opacity:1; transform:translateY(0); }
.stagger.visible > *:nth-child(1){ transition-delay:.06s; }
.stagger.visible > *:nth-child(2){ transition-delay:.14s; }
.stagger.visible > *:nth-child(3){ transition-delay:.22s; }
.stagger.visible > *:nth-child(4){ transition-delay:.30s; }
.stagger.visible > *:nth-child(5){ transition-delay:.38s; }
.stagger.visible > *:nth-child(6){ transition-delay:.46s; }
.stagger.visible > *:nth-child(7){ transition-delay:.54s; }
.stagger.visible > *:nth-child(8){ transition-delay:.62s; }

/* HERO ENTRANCE */
.hero-anim .eyebrow,
.hero-anim h1,
.hero-anim .lead,
.hero-anim .hero-buttons,
.hero-anim .hero-stats,
.hero-anim .hero-visual{
  opacity:0; transform:translateY(24px);
  animation: heroIn .9s var(--ease) forwards;
}
.hero-anim .eyebrow{ animation-delay:.15s; }
.hero-anim h1{ animation-delay:.3s; }
.hero-anim .lead{ animation-delay:.45s; }
.hero-anim .hero-buttons{ animation-delay:.6s; }
.hero-anim .hero-stats{ animation-delay:.75s; }
.hero-anim .hero-visual{ animation-delay:.2s; transform:translateY(28px) scale(0.97); }
@keyframes heroIn{
  to{ opacity:1; transform:translateY(0) scale(1); }
}

/* HERO — main landing */
.hero{
  padding:100px 0 0; position:relative; overflow:hidden; min-height:100vh;
  background:var(--color-bg);
}
.hero-particles{
  position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none;
}
.hero > .wrap{
  display:grid; grid-template-columns:1.2fr 0.8fr; gap:48px; align-items:center;
  position:relative; z-index:1; min-height:calc(100vh - 100px);
  max-width:1320px;
}
.hero > .wrap > div:first-child{ grid-column:1; grid-row:1; }
.hero .eyebrow{ margin-bottom:24px; }
.hero .eyebrow::before{ display:none; }
.hero h1{
  font-size:clamp(36px,4.6vw,56px); font-weight:800; line-height:1.08;
  letter-spacing:-0.02em; max-width:none;
}
.hero h1 .accent{ color:var(--color-navy); font-style:normal; }
.hero .lead{ margin-top:18px; font-size:16.5px; max-width:48ch; color:var(--color-slate); }
.hero-buttons{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }
.hero-buttons .btn{ font-size:13px; padding:14px 28px; }
.hero-stats{
  display:flex; gap:0; margin-top:36px; flex-wrap:wrap;
}
.hero-stat{
  padding:0 28px; border-left:1px solid var(--color-pale);
}
.hero-stat:first-child{ padding-left:0; border-left:none; }
.hero-stat b{
  display:block; font-size:26px; font-weight:700; color:var(--color-dark);
  letter-spacing:-0.02em;
}
.hero-stat span{ font-size:13px; color:var(--color-slate); line-height:1.4; display:block; }

/* Hero visual */
.hero-visual{
  grid-column:2; grid-row:1;
  position:relative; min-height:460px; display:flex; align-items:flex-end;
  justify-content:flex-end; padding:24px; overflow:visible;
}

/* DNA image */
.dna-image-wrap{
  position:absolute; top:0; bottom:0; left:-80px; right:-60px; z-index:0;
  overflow:hidden; pointer-events:none;
  will-change:transform;
  transition:transform 0.1s linear;
  border:none; outline:none;
}
.dna-hero-img{
  width:100%; height:100%; object-fit:cover;
  object-position:center center;
  pointer-events:none; user-select:none;
  border:none; outline:none;
}

/* Glassmorphism info card */
.hero-card{
  position:relative; z-index:2;
  background:rgba(255,255,255,0.88); backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--color-pale); border-radius:var(--radius);
  padding:24px 28px; max-width:360px;
  box-shadow:0 2px 12px rgba(8,16,45,0.06);
}
.hero-card-head{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.hero-card-head b{ font-size:var(--text-md); font-weight:700; color:var(--color-dark); }
.hero-card-head .plus-icon{
  width:32px; height:32px; border-radius:50%;
  border:1px solid var(--color-pale); background:var(--color-white);
  display:flex; align-items:center; justify-content:center;
  font-size:18px; color:var(--color-slate); flex:none; cursor:pointer;
  transition:all .2s ease;
}
.hero-card-head .plus-icon:hover{ border-color:var(--color-dark); color:var(--color-dark); }
.hero-card p{ font-size:var(--text-sm); color:var(--color-mid); line-height:1.55; }

.hero-location{
  grid-column:2; grid-row:1; align-self:start; justify-self:end;
  z-index:3; display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:500; color:var(--color-mid);
  text-decoration:none; padding:8px 14px;
  background:rgba(255,255,255,0.82); backdrop-filter:blur(10px);
  border:1px solid var(--color-pale); border-radius:20px;
  transition:all .25s ease; white-space:nowrap;
}
.hero-location svg{ flex-shrink:0; color:var(--color-slate); transition:color .25s ease; }
.hero-location:hover{ color:var(--color-dark); border-color:var(--color-mist); box-shadow:0 2px 10px rgba(8,16,45,0.08); }
.hero-location:hover svg{ color:var(--color-dark); }
.hero-anim .hero-location{ animation: heroIn .9s var(--ease) forwards; animation-delay:.3s; opacity:0; transform:translateY(-12px); }

@media (max-width:900px){
  .hero > .wrap{ grid-template-columns:1fr; min-height:auto; max-width:100%; }
  .hero-visual{ min-height:340px; }
  .hero{ min-height:auto; padding-bottom:60px; }
  .dna-image-wrap{ inset:-20px -40px -20px -40px; }
  .hero-particles{ display:none; }
  .hero-location{
    grid-column:1; grid-row:1; justify-self:start; align-self:start;
    font-size:12px; padding:6px 12px; white-space:normal;
  }
  .hero-visual{ grid-column:1; grid-row:3; }
  .hero > .wrap > div:first-child{ grid-column:1; grid-row:2; }
  .hero-anim .hero-location{ transform:translateY(0); }
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; scroll-behavior:auto !important; animation:none !important; }
  .reveal, .reveal-left, .reveal-right, .reveal-scale,
  .stagger > * { opacity:1 !important; transform:none !important; }
  .hero-particles{ display:none !important; }
  .dna-image-wrap{ transition:none !important; }
}

/* DROPDOWN MENU */
.nav-dropdown{
  position:relative;
}
.nav-dropdown > a{
  display:flex; align-items:center; gap:4px; cursor:pointer;
}
.nav-dropdown > a .dd-arrow{
  display:inline-block; width:0; height:0;
  border-left:3.5px solid transparent; border-right:3.5px solid transparent;
  border-top:4px solid currentColor;
  transition:transform .3s ease;
  margin-top:1px;
}
.nav-dropdown:hover > a .dd-arrow{
  transform:rotate(180deg);
}
.nav-dropdown .dd-panel{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  min-width:280px;
  background:rgba(255,255,255,0.97); backdrop-filter:blur(16px);
  border:1px solid var(--color-pale); border-radius:var(--radius);
  box-shadow:0 8px 32px -8px rgba(8,16,45,0.12);
  padding:10px 0;
  opacity:0; visibility:hidden;
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  transform:translateX(-50%) translateY(12px);
  z-index:200;
}
.nav-dropdown:hover .dd-panel,
.nav-dropdown:focus-within .dd-panel{
  opacity:1; visibility:visible;
  transform:translateX(-50%) translateY(6px);
}
.dd-panel a{
  display:block; padding:10px 22px; font-size:13.5px; color:var(--color-mid);
  transition:background .2s ease, color .2s ease;
}
.dd-panel a:hover{
  background:rgba(8,16,45,0.04); color:var(--color-dark);
}
.dd-panel a .dd-sub{
  display:block; font-size:11.5px; color:var(--color-slate); margin-top:1px;
}

/* Mobile dropdown */
.mobile-panel .mob-dd-toggle{
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 0; border-top:1px solid var(--color-pale); color:var(--color-mid);
  font-size:14.5px; cursor:pointer; background:none; border-left:0; border-right:0; border-bottom:0;
  font-family:inherit; width:100%; text-align:left; font-weight:500;
}
.mob-dd-toggle .dd-arrow{
  display:inline-block; width:0; height:0;
  border-left:4px solid transparent; border-right:4px solid transparent;
  border-top:5px solid currentColor;
  transition:transform .3s ease;
}
.mob-dd-toggle.open .dd-arrow{
  transform:rotate(180deg);
}
.mobile-panel .mob-dd-list{
  display:none; flex-direction:column; padding-left:16px;
}
.mobile-panel .mob-dd-list.open{
  display:flex;
}
.mobile-panel .mob-dd-list a{
  padding:10px 0; border-top:1px solid var(--color-pale); color:var(--color-mid); font-size:13.5px;
}

/* SERVICE PAGES */

/* Category filter tabs */
.filter-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:32px; }
.filter-tab{
  padding:9px 18px; border:1px solid var(--color-pale); background:var(--color-white);
  color:var(--color-mid); font-size:var(--text-xs); cursor:pointer; border-radius:100px;
  font-family:'Manrope',sans-serif; font-weight:500; transition:.25s ease;
}
.filter-tab:hover{ border-color:var(--color-mist); }
.filter-tab.active{ background:var(--color-dark); color:var(--color-white); border-color:var(--color-dark); font-weight:600;}

/* Service cards grid */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:900px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .svc-grid{ grid-template-columns:1fr; } }
.svc-card{
  border:1px solid var(--color-pale); border-radius:var(--radius); background:var(--color-white);
  padding:28px 24px; display:flex; flex-direction:column;
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.svc-card:hover{ transform:translateY(-4px); border-color:var(--color-mist); box-shadow:0 8px 32px -8px rgba(8,16,45,0.12); }
.svc-card .svc-tag{ font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-slate); font-weight:500; }
.svc-card h4{ font-size:17px; margin-top:8px; font-weight:600; }
.svc-card p{ color:var(--color-mid); font-size:13.5px; margin-top:10px; flex:1; }
.svc-card ul{ list-style:none; padding:0; margin:12px 0 0; font-size:13px; color:var(--color-mid); }
.svc-card ul li{ padding:5px 0; border-top:1px solid var(--color-pale); }
.svc-card ul li::before{ content:"\2014  "; color:var(--color-mist); }

/* Stack cards */
.stack-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:32px; }
@media (max-width:700px){ .stack-grid{ grid-template-columns:1fr; } }
.stack-card{
  border:1px solid var(--color-pale); border-radius:var(--radius); background:var(--color-white); padding:28px 24px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.stack-card:hover{ transform:translateY(-4px); box-shadow:0 8px 32px -8px rgba(8,16,45,0.12); }
.stack-card h4{ font-size:var(--text-base); font-weight:600; color:var(--color-dark); }
.stack-card .stack-sub{ font-size:var(--text-xs); color:var(--color-slate); margin-top:4px; }
.stack-card p{ color:var(--color-mid); font-size:13.5px; margin-top:10px; }

/* Info callout box */
.svc-intro{
  background:var(--color-white); border:1px solid var(--color-pale); border-radius:var(--radius);
  padding:36px 32px; margin-bottom:48px;
}
.svc-intro h3{ font-size:20px; margin-bottom:14px; }
.svc-intro p{ color:var(--color-mid); font-size:14.5px; margin-bottom:12px; }
.svc-intro ul{ list-style:none; padding:0; margin:14px 0; }
.svc-intro ul li{ padding:6px 0; color:var(--color-mid); font-size:var(--text-sm); }
.svc-intro ul li::before{ content:"\2014  "; color:var(--color-dark); }

/* Service animation container */
.svc-anim{
  display:flex; align-items:center; justify-content:center;
  min-height:280px; margin:48px 0;
  border-radius:var(--radius); overflow:hidden;
  background:var(--color-bg);
  border:1px solid var(--color-pale);
}
@media (max-width:700px){ .svc-anim{ min-height:200px; } }

/* Disclaimer */
.disclaimer{
  font-size:var(--text-xs); color:var(--color-slate); margin-top:32px; padding:18px 22px;
  border-top:1px solid var(--color-pale); line-height:1.65; font-weight:300;
}

/* Service tab switcher */
.svc-tabs{ display:flex; gap:0; border:1px solid var(--color-pale); border-radius:var(--radius-sm); overflow:hidden; margin-bottom:28px; width:fit-content; }
.svc-tab-btn{
  padding:12px 24px; font-size:13.5px; font-family:'Manrope',sans-serif;
  cursor:pointer; background:var(--color-white); color:var(--color-mid);
  border:none; border-right:1px solid var(--color-pale);
  transition:background .25s ease, color .25s ease; font-weight:500;
}
.svc-tab-btn:last-child{ border-right:none; }
.svc-tab-btn:hover{ background:var(--color-bg); }
.svc-tab-btn.active{ background:var(--color-dark); color:var(--color-white); font-weight:600; }
.svc-tab-content{ display:none; }
.svc-tab-content.active{ display:block; }

/* Service detail sections */
.svc-detail{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;
}
@media (max-width:800px){ .svc-detail{ grid-template-columns:1fr; } }
.svc-detail h3{ font-size:var(--text-lg); margin-bottom:14px; }
.svc-detail p{ color:var(--color-mid); font-size:14.5px; margin-bottom:14px; }
.svc-detail ul{ list-style:none; padding:0; }
.svc-detail ul li{ padding:8px 0; border-top:1px solid var(--color-pale); color:var(--color-mid); font-size:var(--text-sm); display:flex; gap:10px; }
.svc-detail ul li::before{ content:"\2713"; color:var(--color-dark); flex:none; font-weight:700; }

/* Injection layers */
.injection-layers{
  display:flex; flex-direction:column; gap:0; border:1px solid var(--color-pale); border-radius:var(--radius); overflow:hidden;
}
.inj-layer{
  padding:22px 26px; background:var(--color-white); border-bottom:1px solid var(--color-pale);
  cursor:pointer; transition:background .25s ease;
}
.inj-layer:last-child{ border-bottom:none; }
.inj-layer:hover, .inj-layer.active{ background:rgba(8,16,45,0.04); }
.inj-layer h4{ font-size:15px; font-weight:600; display:flex; align-items:center; gap:8px; }
.inj-layer h4 .inj-dot{ width:8px; height:8px; border-radius:50%; background:var(--color-dark); }
.inj-layer p{ color:var(--color-mid); font-size:13.5px; margin-top:6px; }

/* Logo image */
.logo-img{
  height:36px; width:auto; display:block;
}
header .logo{ display:flex; align-items:center; gap:10px; text-decoration:none; }
header .logo .logo-img{ height:36px; }
footer .logo{ display:flex; align-items:center; gap:8px; text-decoration:none; }
footer .logo .logo-img{ height:32px; }
@media(max-width:480px){
  .logo-img{ height:28px; }
  header .logo .logo-img{ height:28px; }
}

/* QUIZ */
.quiz-inline{
  margin-top:18px; padding:14px 18px;
  background:var(--color-white); border:1px solid var(--color-pale); border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.quiz-inline span{ font-size:var(--text-sm); font-weight:600; color:var(--color-dark); }
.quiz-inline-btn{ padding:10px 22px !important; font-size:var(--text-xs) !important; white-space:nowrap; }
@media (max-width:600px){
  .quiz-inline{ flex-direction:column; align-items:stretch; text-align:center; }
  .quiz-inline-btn{ justify-content:center; }
}
.quiz-invite{
  background:rgba(8,16,45,0.04);
  border:1px solid var(--color-pale); border-radius:var(--radius);
  padding:18px 28px; margin-bottom:32px;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.quiz-invite p{ color:var(--color-mid); font-size:15px; flex:1; min-width:240px; }
.quiz-invite p strong{ color:var(--color-dark); }
.quiz-invite .btn{ white-space:nowrap; flex:none; }

.quiz-overlay{
  display:none; position:fixed; inset:0; z-index:500;
  background:rgba(8,16,45,0.45); backdrop-filter:blur(6px);
  align-items:center; justify-content:center; padding:20px;
  animation:quizFadeIn .3s ease;
}
.quiz-overlay.open{ display:flex; }
@keyframes quizFadeIn{ from{opacity:0} to{opacity:1} }

.quiz-modal{
  background:var(--color-white); border-radius:var(--radius); width:100%; max-width:720px;
  max-height:90vh; overflow-y:auto; position:relative;
  box-shadow:0 24px 80px -16px rgba(8,16,45,0.25);
  animation:quizSlideUp .4s var(--ease);
}
@keyframes quizSlideUp{ from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:translateY(0)} }

.quiz-close{
  position:absolute; top:16px; right:16px; z-index:2;
  width:36px; height:36px; border-radius:50%; border:1px solid var(--color-pale);
  background:var(--color-white); cursor:pointer; display:flex; align-items:center; justify-content:center;
  font-size:18px; color:var(--color-slate); transition:all .2s ease;
}
.quiz-close:hover{ border-color:var(--color-dark); color:var(--color-dark); }

.quiz-header{
  padding:28px 32px 0; position:sticky; top:0; background:var(--color-white); z-index:1;
}
.quiz-progress-wrap{
  display:flex; align-items:center; gap:14px; margin-bottom:6px;
}
.quiz-progress-text{ font-size:13px; color:var(--color-slate); white-space:nowrap; font-weight:500; }
.quiz-progress-bar{
  flex:1; height:6px; background:var(--color-pale); border-radius:3px; overflow:hidden;
}
.quiz-progress-fill{
  height:100%; background:var(--color-dark);
  border-radius:3px; transition:width .4s ease;
}
.quiz-block-label{
  font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--color-slate); font-weight:500; margin-top:12px;
}

.quiz-body{ padding:20px 32px 32px; }

.quiz-question{
  display:none; animation:quizQFade .35s var(--ease);
}
.quiz-question.active{ display:block; }
@keyframes quizQFade{ from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:translateX(0)} }

.quiz-question h3{
  font-size:19px; font-weight:600; line-height:1.35; margin-bottom:20px; color:var(--color-dark);
}

.quiz-options{ display:flex; flex-direction:column; gap:8px; }
.quiz-opt{
  text-align:left; padding:14px 18px; border:1px solid var(--color-pale);
  background:var(--color-white); color:var(--color-mid); font-size:var(--text-sm); line-height:1.45;
  cursor:pointer; border-radius:var(--radius-sm); font-family:'Manrope',sans-serif;
  transition:all .2s ease; display:flex; align-items:flex-start; gap:12px;
}
.quiz-opt:hover{ border-color:var(--color-mist); background:rgba(8,16,45,0.03); color:var(--color-dark); }
.quiz-opt.selected{ background:var(--color-dark); color:var(--color-white); border-color:var(--color-dark); }
.quiz-opt .qo-score{
  flex:none; width:24px; height:24px; border-radius:50%;
  border:2px solid var(--color-pale); display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; margin-top:1px; transition:all .2s ease;
}
.quiz-opt:hover .qo-score{ border-color:var(--color-mist); color:var(--color-dark); }
.quiz-opt.selected .qo-score{ border-color:rgba(255,255,255,0.4); color:var(--color-white); }

.quiz-nav{
  display:flex; justify-content:space-between; align-items:center; margin-top:20px; padding-top:16px;
  border-top:1px solid var(--color-pale);
}
.quiz-back{
  font-size:13.5px; color:var(--color-slate); cursor:pointer; background:none; border:none;
  font-family:'Manrope',sans-serif; display:flex; align-items:center; gap:6px;
  transition:color .2s ease; padding:8px 0;
}
.quiz-back:hover{ color:var(--color-dark); }
.quiz-back:disabled{ opacity:0; pointer-events:none; }

/* Quiz result screen */
.quiz-result{ display:none; animation:quizQFade .5s var(--ease); }
.quiz-result.active{ display:block; }
.quiz-result-type{
  font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--color-slate); font-weight:500; margin-bottom:8px;
}
.quiz-result h2{ font-size:var(--text-lg); line-height:1.3; margin-bottom:20px; color:var(--color-dark); }
.quiz-result-section{ margin-bottom:20px; }
.quiz-result-section h4{
  font-size:var(--text-sm); font-weight:600; color:var(--color-dark); margin-bottom:8px;
  letter-spacing:.04em; text-transform:uppercase;
}
.quiz-result-section p{ color:var(--color-mid); font-size:14.5px; line-height:1.65; }
.quiz-result-steps{ counter-reset:qstep; padding:0; list-style:none; margin:0; }
.quiz-result-steps li{
  counter-increment:qstep; padding:10px 0; border-top:1px solid var(--color-pale);
  color:var(--color-mid); font-size:var(--text-sm); display:flex; gap:12px;
}
.quiz-result-steps li::before{
  content:counter(qstep); flex:none; width:26px; height:26px; border-radius:50%;
  background:rgba(8,16,45,0.06); color:var(--color-dark); font-weight:700; font-size:var(--text-xs);
  display:flex; align-items:center; justify-content:center;
}
.quiz-result-cta{
  margin-top:24px; padding:22px 24px; background:var(--color-bg);
  border-radius:var(--radius-sm); border:1px solid var(--color-pale);
}
.quiz-result-cta p{ color:var(--color-mid); font-size:var(--text-sm); margin-bottom:14px; line-height:1.55; }
.quiz-result-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.quiz-restart{
  font-size:13px; color:var(--color-slate); cursor:pointer; background:none;
  border:1px solid var(--color-pale); border-radius:100px; padding:10px 20px;
  font-family:'Manrope',sans-serif; transition:all .2s ease;
}
.quiz-restart:hover{ border-color:var(--color-dark); color:var(--color-dark); }

/* Quiz thinking screen */
.quiz-thinking{ display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:360px; text-align:center; padding:40px 20px; }
.quiz-thinking canvas{ width:280px; height:280px; margin-bottom:20px; }
.quiz-thinking-phrase{ font-size:15px; color:var(--color-mid); min-height:1.7em; transition:opacity .6s ease; }
.quiz-thinking-phrase.fade-out{ opacity:0; }

.bn-node{ fill:var(--color-dark); opacity:0.7; }
.bn-line{ stroke:var(--color-navy); stroke-width:0.8; opacity:0.2; }
.bn-pulse{ fill:var(--color-navy); opacity:0; }

/* Reusable rotating phrase */
.rotating-phrase{ font-size:15px; color:var(--color-mid); min-height:1.7em; transition:opacity .6s ease; }
.rotating-phrase.fade-out{ opacity:0; }

@media (prefers-reduced-motion: reduce){
  .bn-node{ opacity:0.7 !important; }
  .bn-pulse{ opacity:0.5 !important; }
  .quiz-thinking-phrase,.rotating-phrase{ transition:none !important; }
}

@media (max-width:600px){
  .quiz-invite{ padding:22px 20px; flex-direction:column; align-items:stretch; }
  .quiz-invite .btn{ text-align:center; justify-content:center; }
  .quiz-modal{ max-height:95vh; border-radius:var(--radius-sm); }
  .quiz-header{ padding:20px 20px 0; }
  .quiz-body{ padding:16px 20px 24px; }
  .quiz-question h3{ font-size:17px; }
  .quiz-opt{ padding:12px 14px; font-size:13.5px; }
  .quiz-result h2{ font-size:19px; }
  .quiz-thinking canvas{ width:220px; height:220px; }
}

/* Product card image */
.prod-img{
  width:100%; height:180px; object-fit:cover; border-radius:var(--radius);
  margin-bottom:16px;
}

/* Lead form modal */
.lead-overlay{
  position:fixed; inset:0; background:rgba(8,16,45,0.45); z-index:9999;
  display:none; align-items:center; justify-content:center; padding:20px;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
.lead-overlay.open{ display:flex; }
.lead-modal{
  background:var(--color-white); border-radius:var(--radius); padding:36px 32px;
  max-width:420px; width:100%; position:relative;
  box-shadow:0 24px 48px -12px rgba(8,16,45,0.2);
  animation:leadIn 0.3s ease;
}
@keyframes leadIn{ from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }
.lead-modal h3{ font-size:20px; margin-bottom:6px; }
.lead-modal p{ font-size:var(--text-sm); color:var(--color-mid); margin-bottom:20px; }
.lead-close{
  position:absolute; top:12px; right:16px; background:none; border:none;
  font-size:24px; color:var(--color-slate); cursor:pointer; line-height:1;
}
.lead-close:hover{ color:var(--color-dark); }
.lead-field{ margin-bottom:14px; }
.lead-field label{ display:block; font-size:13px; color:var(--color-mid); margin-bottom:4px; }
.lead-field input{
  width:100%; padding:12px 14px; border:1px solid var(--color-pale); border-radius:var(--radius-sm);
  font-size:15px; font-family:'Manrope',sans-serif; background:var(--color-bg);
  color:var(--color-dark); transition:border-color 0.2s;
}
.lead-field input:focus{ outline:none; border-color:var(--color-dark); }
.lead-field input.lead-error{ border-color:#c53030; }
.lead-hint{ font-size:var(--text-xs); color:#c53030; margin-top:4px; display:none; }
.lead-field input.lead-error + .lead-hint{ display:block; }
.lead-submit{
  width:100%; padding:14px; background:var(--color-dark); color:var(--color-white); border:none;
  border-radius:var(--radius-sm); font-size:15px; font-weight:600; cursor:pointer;
  font-family:'Manrope',sans-serif; transition:background 0.2s;
}
.lead-submit:hover{ background:var(--color-navy); }
.lead-submit:disabled{ opacity:0.6; cursor:not-allowed; }
.lead-success{ text-align:center; padding:20px 0; }
.lead-success h3{ color:var(--color-dark); margin-bottom:8px; }

/* Doc Lightbox */
.doc-lightbox{ position:fixed; inset:0; z-index:9999; background:rgba(8,16,45,0.92); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s ease; }
.doc-lightbox.active{ opacity:1; pointer-events:auto; }
.doc-lightbox__img{ max-width:90vw; max-height:85vh; object-fit:contain; border-radius:var(--radius); box-shadow:0 8px 40px rgba(0,0,0,0.4); transform:scale(0.92); transition:transform .3s ease; }
.doc-lightbox.active .doc-lightbox__img{ transform:scale(1); }
.doc-lightbox__close{ position:absolute; top:20px; right:24px; background:none; border:none; color:#fff; font-size:36px; line-height:1; cursor:pointer; opacity:0.7; transition:opacity .2s; z-index:2; }
.doc-lightbox__close:hover{ opacity:1; }
.doc-lightbox__prev,.doc-lightbox__next{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.1); border:none; color:#fff; font-size:32px; width:48px; height:48px; border-radius:50%; cursor:pointer; opacity:0.6; transition:opacity .2s, background .2s; z-index:2; display:flex; align-items:center; justify-content:center; }
.doc-lightbox__prev:hover,.doc-lightbox__next:hover{ opacity:1; background:rgba(255,255,255,0.2); }
.doc-lightbox__prev{ left:16px; }
.doc-lightbox__next{ right:16px; }
@media(max-width:600px){
  .doc-lightbox__prev,.doc-lightbox__next{ width:36px; height:36px; font-size:24px; }
  .doc-lightbox__prev{ left:8px; }
  .doc-lightbox__next{ right:8px; }
  .doc-lightbox__close{ top:12px; right:16px; font-size:30px; }
}
.doc-thumb{ cursor:zoom-in; }
.doc-link[data-doc-lightbox]{ cursor:zoom-in; }

/* Test Popup */
.test-popup{ position:fixed; inset:0; z-index:10000; background:rgba(8,16,45,0.85); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .4s ease; padding:20px; }
.test-popup.active{ opacity:1; pointer-events:auto; }
.test-popup__inner{ position:relative; max-width:520px; width:100%; background:var(--color-white); border-radius:var(--radius); overflow:hidden; transform:translateY(20px) scale(0.96); transition:transform .4s ease; box-shadow:0 16px 60px rgba(0,0,0,0.3); }
.test-popup.active .test-popup__inner{ transform:translateY(0) scale(1); }
.test-popup__close{ position:absolute; top:12px; right:16px; background:rgba(255,255,255,0.9); border:none; font-size:28px; line-height:1; cursor:pointer; color:var(--color-dark); z-index:2; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.test-popup__close:hover{ background:#fff; }
.test-popup__img{ width:100%; display:block; }
.test-popup__btn{ width:100%; border-radius:0; padding:16px; font-size:var(--text-base); }

/* Price Block */
.price-block{ background:var(--color-white); border:1px solid var(--color-pale); border-radius:var(--radius); padding:28px 24px; max-width:560px; }
.price-block h3{ font-size:var(--text-lg); margin-bottom:16px; }
.price-row{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-top:1px solid var(--color-pale); gap:16px; }
.price-row:first-of-type{ border-top:none; }
.price-row span:first-child{ color:var(--color-mid); font-size:var(--text-base); }
.price-val{ font-weight:700; font-size:var(--text-md); color:var(--color-dark); white-space:nowrap; }

/* Peptide Detail Link */
.pep-detail-link{ display:inline-block; margin:12px 0 16px; color:var(--color-dark); font-weight:600; font-size:var(--text-sm); text-decoration:none; border-bottom:1px solid var(--color-pale); padding-bottom:2px; transition:border-color .2s; }
.pep-detail-link:hover{ border-color:var(--color-dark); }

/* Peptide Price Button */
.pep-price-btn{ width:100%; margin-top:auto; padding:12px 20px; font-size:var(--text-sm); }

/* Peptide Modal */
.pep-modal-overlay{ position:fixed; inset:0; z-index:9999; background:rgba(8,16,45,0.85); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s ease; padding:20px; overflow-y:auto; }
.pep-modal-overlay.active{ opacity:1; pointer-events:auto; }
.pep-modal{ background:var(--color-white); border-radius:var(--radius); max-width:640px; width:100%; max-height:85vh; overflow-y:auto; padding:40px 36px; position:relative; transform:translateY(20px) scale(0.97); transition:transform .3s ease; box-shadow:0 12px 48px rgba(0,0,0,0.25); }
.pep-modal-overlay.active .pep-modal{ transform:translateY(0) scale(1); }
.pep-modal__close{ position:absolute; top:16px; right:20px; background:none; border:none; font-size:28px; line-height:1; cursor:pointer; color:var(--color-slate); transition:color .2s; }
.pep-modal__close:hover{ color:var(--color-dark); }
.pep-modal__title{ font-size:var(--text-xl); font-weight:700; color:var(--color-dark); margin-bottom:20px; padding-right:32px; }
.pep-modal__body h4{ font-size:var(--text-md); font-weight:700; color:var(--color-dark); margin:20px 0 10px; }
.pep-modal__body h4:first-child{ margin-top:0; }
.pep-modal__body p{ color:var(--color-mid); line-height:1.7; margin-bottom:12px; }
.pep-modal__body ul{ padding-left:20px; margin-bottom:16px; }
.pep-modal__body li{ color:var(--color-mid); line-height:1.7; margin-bottom:6px; }
.pep-modal__body strong{ color:var(--color-dark); }
@media(max-width:600px){
  .pep-modal{ padding:28px 20px; max-height:90vh; }
  .pep-modal__title{ font-size:var(--text-lg); }
}

/* Disclaimer */
.disclaimer{ text-align:center; color:var(--color-slate); font-size:var(--text-sm); line-height:1.6; max-width:680px; margin:48px auto 0; padding:24px; border:1px solid var(--color-pale); border-radius:var(--radius); background:var(--color-bg); }

/* Hero extras */
.hero-descriptor{
  font-size:var(--text-sm); letter-spacing:0.06em; text-transform:uppercase;
  color:var(--color-slate); font-weight:500; margin-bottom:16px;
}
h1.hero-descriptor{
  font-size:var(--text-sm); letter-spacing:0.06em; text-transform:uppercase;
  color:var(--color-slate); font-weight:500; margin-bottom:16px;
}
.hero-headline{
  font-size:clamp(28px,4.5vw,var(--text-3xl)); font-weight:700; line-height:1.15;
  letter-spacing:-0.01em; color:var(--color-dark); margin-bottom:20px;
}
.hero-anim .hero-headline{ animation: heroIn 1s var(--ease) forwards; animation-delay:.25s; opacity:0; transform:translateY(24px); }
.hero-services{
  display:flex; gap:10px; flex-wrap:wrap; margin-top:24px;
}
.hero-svc-tag{
  padding:8px 16px; border:1px solid var(--color-pale); border-radius:100px;
  font-size:var(--text-xs); color:var(--color-mid); font-weight:500;
  transition:all .2s ease; background:rgba(255,255,255,0.7);
}
.hero-svc-tag:hover{ border-color:var(--color-dark); color:var(--color-dark); background:var(--color-white); }
.hero-meta{
  margin-top:20px; font-size:13px; color:var(--color-slate); font-weight:400;
}
.hero-anim .hero-services{ animation: heroIn .9s var(--ease) forwards; animation-delay:.7s; opacity:0; transform:translateY(24px); }
.hero-anim .hero-meta{ animation: heroIn .9s var(--ease) forwards; animation-delay:.8s; opacity:0; transform:translateY(24px); }
.hero-anim .hero-descriptor{ animation: heroIn .9s var(--ease) forwards; animation-delay:.1s; opacity:0; transform:translateY(24px); }

/* Ticker */
.ticker{
  background:var(--color-dark); color:var(--color-white); overflow:hidden;
  padding:14px 0; white-space:nowrap;
}
.ticker-track{
  display:inline-flex; gap:0; animation:tickerScroll 20s linear infinite;
}
.ticker-track span{
  font-size:var(--text-sm); font-weight:500; letter-spacing:0.02em;
  padding:0 12px;
}
.ticker-dot{ opacity:0.4; }
@keyframes tickerScroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}
@media(prefers-reduced-motion:reduce){ .ticker-track{ animation:none; } }

/* Reviews expanded (always visible text) */
.reviews-expanded .review-quote{
  max-height:200px; opacity:1;
  padding-top:10px; padding-bottom:10px;
}
.reviews-expanded .review-shot{ cursor:zoom-in; }

/* IV cards: hide last 2 on mobile */
@media(max-width:700px){
  .iv-card--extra{ display:none; }
}

/* Form section */
.form-section{ background:var(--color-bg); border-top:1px solid var(--color-pale); }
.form-card{
  background:var(--color-white); border:1px solid var(--color-pale); border-radius:var(--radius);
  padding:40px 36px; max-width:520px; margin:0 auto;
  box-shadow:0 2px 12px rgba(8,16,45,0.06);
}
.form-card h3{ font-size:var(--text-lg); margin-bottom:6px; }
.form-card .lead{ margin-bottom:24px; }
.form-field{ margin-bottom:16px; }
.form-field label{ display:block; font-size:13px; color:var(--color-mid); margin-bottom:5px; font-weight:500; }
.form-field input,
.form-field textarea{
  width:100%; padding:12px 14px; border:1px solid var(--color-pale); border-radius:var(--radius-sm);
  font-size:15px; font-family:'Manrope',sans-serif; background:var(--color-bg);
  color:var(--color-dark); transition:border-color 0.2s; resize:vertical;
}
.form-field input:focus,
.form-field textarea:focus{ outline:none; border-color:var(--color-dark); }
.form-checkbox{
  display:flex; align-items:flex-start; gap:10px; margin:18px 0;
  font-size:13px; color:var(--color-mid); line-height:1.5;
}
.form-checkbox input[type="checkbox"]{ margin-top:3px; flex:none; accent-color:var(--color-dark); }
.form-checkbox a{ color:var(--color-dark); text-decoration:underline; }
.form-submit{
  width:100%; padding:14px; background:var(--color-dark); color:var(--color-white); border:none;
  border-radius:var(--radius-sm); font-size:15px; font-weight:600; cursor:pointer;
  font-family:'Manrope',sans-serif; transition:background 0.2s;
}
.form-submit:hover{ background:var(--color-navy); }
.form-submit:disabled{ opacity:0.5; cursor:not-allowed; }
.form-success{ display:none; text-align:center; padding:20px 0; }
.form-success h3{ color:var(--color-dark); margin-bottom:8px; }
.form-success p{ color:var(--color-mid); }

/* Contacts */
.contacts-hero{
  text-align:center; max-width:620px; margin:0 auto; padding:24px 0 16px;
}
.contacts-hero h1{ max-width:none; margin:0 auto; }
.contacts-hero .lead{ margin:16px auto 0; text-align:center; }
.contacts-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;
}
.contacts-info{
  background:var(--color-white); border:1px solid var(--color-pale);
  border-radius:var(--radius); padding:32px; box-shadow:0 2px 12px rgba(8,16,45,0.04);
}
.contacts-info h3{ font-size:20px; margin-bottom:24px; font-weight:700; }
.contacts-row{
  display:flex; align-items:flex-start; gap:14px; padding:14px 0;
  border-bottom:1px solid var(--color-pale); font-size:15px; color:var(--color-mid);
}
.contacts-row:last-of-type{ border-bottom:none; }
.contacts-row svg{ flex-shrink:0; color:var(--color-slate); margin-top:2px; }
.contacts-label{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--color-slate); font-weight:500; margin-bottom:4px; }
.contacts-row a{ color:var(--color-dark); font-weight:600; text-decoration:none; transition:color .2s; }
.contacts-row a:hover{ color:var(--color-navy); text-decoration:underline; text-underline-offset:3px; }
.contacts-map{
  min-height:400px; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--color-pale);
}
.contacts-map iframe{ width:100%; height:100%; min-height:400px; border:0; display:block; }
@media(max-width:800px){
  .contacts-grid{ grid-template-columns:1fr; gap:32px; }
  .contacts-map iframe{ min-height:320px; }
}

/* SERVICE CATALOG */
.catalog-section{ background:var(--color-bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.catalog-tabs{
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:32px;
}
.catalog-tab{
  padding:10px 20px; border:1px solid var(--color-pale); border-radius:100px;
  font-size:var(--text-sm); font-weight:500; color:var(--color-mid);
  background:var(--color-white); cursor:pointer;
  transition:all .25s ease; white-space:nowrap;
}
.catalog-tab:hover{ border-color:var(--color-mist); color:var(--color-dark); }
.catalog-tab.active{
  background:var(--color-dark); color:var(--color-white);
  border-color:var(--color-dark);
}
.catalog-cards{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
}
.catalog-card{
  background:var(--color-white); border:1px solid var(--color-pale);
  border-radius:var(--radius); overflow:hidden;
  transition:box-shadow .3s ease, border-color .3s ease, transform .3s ease;
  display:flex; flex-direction:column; text-decoration:none; color:inherit;
}
.catalog-card:hover{
  transform:translateY(-4px); border-color:var(--color-mist);
  box-shadow:0 8px 28px -6px rgba(8,16,45,0.12);
}
.catalog-card-img-wrap{
  position:relative; overflow:hidden;
}
.catalog-card-img{
  width:100%; height:180px; object-fit:cover; display:block;
  background:var(--color-pale);
}
.catalog-zoom{
  position:absolute; bottom:8px; right:8px;
  width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,0.85); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .25s ease;
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
}
.catalog-zoom svg{ color:var(--color-dark); }
.catalog-card:hover .catalog-zoom,
.catalog-card-img-wrap:active .catalog-zoom{ opacity:1; }
@media(max-width:768px){ .catalog-zoom{ opacity:1; } }
.catalog-lightbox{
  position:fixed; inset:0; z-index:10000;
  background:rgba(8,16,45,0.85); display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.catalog-lightbox.open{ opacity:1; pointer-events:auto; }
.catalog-lightbox img{
  max-width:90vw; max-height:85vh; border-radius:12px;
  box-shadow:0 8px 40px rgba(0,0,0,0.4); object-fit:contain;
}
.catalog-lightbox-close{
  position:absolute; top:20px; right:24px;
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,0.15); border:none; cursor:pointer;
  font-size:24px; color:#fff; display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.catalog-lightbox-close:hover{ background:rgba(255,255,255,0.3); }
.catalog-card-icon{
  height:140px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--color-bg) 0%, var(--color-pale) 100%);
}
.catalog-card-icon svg{ width:48px; height:48px; color:var(--color-slate); }
.catalog-card-body{ padding:20px; flex:1; display:flex; flex-direction:column; }
.catalog-card-body h4{
  font-size:16px; font-weight:700; color:var(--color-dark);
  margin:0 0 8px; line-height:1.3;
}
.catalog-card-body p{
  font-size:13px; color:var(--color-mid); line-height:1.5;
  margin:0; flex:1;
}
.catalog-card-components{
  font-size:12px; color:var(--color-slate); line-height:1.5;
  margin:0; padding-top:12px; margin-top:12px;
  border-top:1px solid var(--color-pale);
}
.catalog-card-body .catalog-link{
  display:inline-flex; align-items:center; gap:4px;
  font-size:13px; font-weight:600; color:var(--color-dark);
  margin-top:14px; transition:gap .2s ease;
}
.catalog-card:hover .catalog-link{ gap:8px; }
.catalog-bottom{
  text-align:center; margin-top:32px;
}
@media(max-width:1024px){
  .catalog-cards{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:768px){
  .catalog-tabs{
    flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; gap:6px; padding-bottom:4px;
  }
  .catalog-tabs::-webkit-scrollbar{ display:none; }
  .catalog-tab{ flex:0 0 auto; padding:8px 16px; font-size:13px; }
  .catalog-cards{
    grid-template-columns:none; display:flex; gap:14px;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; scrollbar-width:none;
    padding-bottom:8px; margin:0 -20px; padding-left:20px; padding-right:20px;
  }
  .catalog-cards::-webkit-scrollbar{ display:none; }
  .catalog-card{
    flex:0 0 75vw; max-width:300px; scroll-snap-align:start;
  }
}
@media(max-width:480px){
  .catalog-card{ flex:0 0 80vw; }
}

/* RESPONSIVE — full adaptive */
@media(max-width:900px){
  .hero h1{ font-size:clamp(28px,5vw,40px); }
  .docs-grid .doc-card{ width:calc((100% - 24px)/2); }
  .cons-grid{ grid-template-columns:1fr; gap:32px; }
  .process{ grid-template-columns:1fr; gap:24px; }
  .iv-grid{ grid-template-columns:repeat(2,1fr); }
  .prod-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .svc-detail{ grid-template-columns:1fr; gap:32px; }
}
@media(max-width:600px){
  .hero h1{ font-size:clamp(24px,6vw,32px); }
  .hero-services{ gap:6px; }
  .hero-svc-tag{ padding:6px 12px; font-size:11px; }
  .hero-buttons .btn{ width:100%; justify-content:center; }
  .docs-grid .doc-card{ width:100%; }
  .iv-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; gap:24px; }
  .ticker-track span{ font-size:12px; padding:0 8px; }
  .review-card{ width:220px; min-width:220px; }
  .form-card{ padding:28px 20px; }
  section{ padding:40px 0; }
  .sec-head{ margin-bottom:28px; }
  .cta-band{ padding:48px 0; }
  .cta-band h2{ font-size:clamp(18px,4vw,28px); }
}
@media(max-width:380px){
  .wrap{ padding:0 16px; }
  .hero h1{ font-size:22px; }
  .hero-meta{ font-size:11px; }
}

/* ── Lead Modal ── */
.lead-overlay{
  position:fixed; inset:0; z-index:9999;
  background:rgba(8,16,45,0.55); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .3s var(--ease), visibility .3s;
}
.lead-overlay.open{ opacity:1; visibility:visible; }
.lead-modal{
  background:var(--color-white); border-radius:var(--radius);
  padding:40px 36px; width:min(460px,calc(100vw - 32px));
  max-height:calc(100vh - 40px); overflow-y:auto;
  position:relative;
  transform:translateY(24px) scale(.97); opacity:0;
  transition:transform .35s var(--ease), opacity .35s var(--ease);
}
.lead-overlay.open .lead-modal{ transform:translateY(0) scale(1); opacity:1; }
.lead-close{
  position:absolute; top:12px; right:16px;
  background:none; border:none; font-size:28px; line-height:1;
  color:var(--color-slate); cursor:pointer; transition:color .2s;
}
.lead-close:hover{ color:var(--color-dark); }
.lead-modal h3{
  font-size:var(--text-xl); font-weight:700; color:var(--color-dark);
  margin-bottom:6px;
}
.lead-modal > div > p,
#leadFormWrap > p{
  font-size:var(--text-sm); color:var(--color-slate); margin-bottom:24px;
}
.lead-field{ margin-bottom:16px; }
.lead-field label{
  display:block; font-size:var(--text-sm); font-weight:500;
  color:var(--color-mid); margin-bottom:6px;
}
.lead-field input,
.lead-field textarea{
  width:100%; padding:12px 14px; border:1px solid var(--color-pale);
  border-radius:var(--radius-sm); font-size:var(--text-base);
  font-family:inherit; color:var(--color-dark); background:var(--color-bg);
  transition:border-color .2s;
}
.lead-field input:focus,
.lead-field textarea:focus{
  outline:none; border-color:var(--color-accent);
}
.lead-field input.lead-error{ border-color:#c0392b; }
.lead-hint{
  font-size:var(--text-xs); color:#c0392b; margin-top:4px; min-height:16px;
}
.lead-field textarea{ resize:vertical; min-height:72px; }
.lead-checkbox{
  display:inline; line-height:1.5;
  font-size:13px; color:var(--color-slate); cursor:pointer;
  margin:20px 0 24px;
}
.lead-checkbox input[type="checkbox"]{
  width:16px; height:16px; margin-right:6px;
  accent-color:var(--color-accent);
  vertical-align:-2px;
}
.lead-checkbox a{ color:var(--color-accent); text-decoration:underline; }
.lead-submit{
  width:100%; padding:14px; border:none; border-radius:var(--radius-sm);
  background:var(--color-accent); color:var(--color-white);
  font-size:var(--text-base); font-weight:600; font-family:inherit;
  cursor:pointer; transition:background .2s, opacity .2s;
}
.lead-submit:hover:not(:disabled){ background:var(--color-accent-hover); }
.lead-submit:disabled{ opacity:.45; cursor:not-allowed; }
.lead-success,
.lead-error-msg{ text-align:center; padding:32px 0; }
.lead-success h3{ color:var(--color-dark); margin-bottom:8px; }
.lead-success p{ color:var(--color-slate); }
.lead-error-msg p{ color:#c0392b; font-size:var(--text-sm); }
.lead-error-msg a{ color:var(--color-accent); }
@media(max-width:600px){
  .lead-modal{ padding:28px 20px; }
}
