:root{
  --red:#AF2B2E;
  --red-dark:#87201F;
  --red-wash:#F7E9E6;
  --ink:#221D1A;
  --paper:#F6F1E7;
  --paper-deep:#EDE5D3;
  --white:#FFFEFB;
  --sage:#5F6E52;
  --gold:#B9862F;
  --line:rgba(34,29,26,0.14);
  --line-soft:rgba(34,29,26,0.08);
  --shadow: 0 1px 2px rgba(34,29,26,0.05), 0 10px 28px rgba(34,29,26,0.07);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(circle at 1px 1px, rgba(34,29,26,0.05) 1px, transparent 0);
  background-size:22px 22px;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{font-family:'Fraunces', serif; margin:0; font-weight:600; letter-spacing:-0.01em;}
.gu{font-family:'Noto Sans Gujarati', sans-serif;}
.mono{font-family:'IBM Plex Mono', monospace;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--red); display:flex; align-items:center; gap:10px; margin-bottom:16px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--red);}
section{padding:100px 0; position:relative;}
@media (max-width:720px){ section{padding:68px 0;} }

.ticked{position:relative;}
.ticked::before, .ticked::after{content:''; position:absolute; width:10px; height:10px; border:1.5px solid var(--red); opacity:0.55;}
.ticked::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.ticked::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}

/* ---------- Header ---------- */
header{position:sticky; top:0; z-index:100; background:rgba(246,241,231,0.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:15px 28px; max-width:1180px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:12px;}
.brand-name{font-family:'Fraunces', serif; font-weight:600; font-size:18.5px; line-height:1.15;}
.brand-name small{display:block; font-family:'IBM Plex Mono'; font-weight:500; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--sage); margin-top:3px;}
nav ul{list-style:none; display:flex; gap:28px; margin:0; padding:0;}
nav ul a{font-size:14.5px; font-weight:500; color:var(--ink); opacity:0.72; transition:opacity .15s;}
nav ul a:hover, nav ul a.active{opacity:1;}
nav ul a.active{color:var(--red); opacity:1;}
.nav-cta{display:flex; align-items:center; gap:18px;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:2px; font-size:14px; font-weight:600; border:1.5px solid var(--red); cursor:pointer; transition:transform .15s ease, background .15s ease;}
.btn-solid{background:var(--red); color:var(--white);}
.btn-solid:hover{background:var(--red-dark); transform:translateY(-1px);}
.btn-ghost{background:transparent; color:var(--red);}
.btn-ghost:hover{background:var(--red); color:var(--white);}
.call-link{display:none; font-size:14px; font-weight:600; color:var(--ink); font-family:'IBM Plex Mono';}
@media (min-width:900px){ .call-link{display:inline-flex; align-items:center; gap:6px;} }
.mobile-toggle{display:none; background:none; border:none; font-size:24px; cursor:pointer; color:var(--ink);}
@media (max-width:860px){ nav ul{display:none;} .mobile-toggle{display:block;} }
.mark{width:36px; height:36px; flex-shrink:0; object-fit:contain;}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{padding:56px 0 48px; border-bottom:1px solid var(--line);}
.page-hero .eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:clamp(30px,4vw,46px); line-height:1.1; letter-spacing:-0.02em; max-width:760px;}
.page-hero p{font-size:16.5px; opacity:0.75; max-width:600px; margin-top:16px;}
.breadcrumb{font-family:'IBM Plex Mono'; font-size:12px; opacity:0.55; margin-bottom:20px;}
.breadcrumb a{color:var(--red);}

/* ---------- Hero (home) ---------- */
.hero{padding:56px 0 44px; position:relative; overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;}
@media (max-width:940px){ .hero-grid{grid-template-columns:1fr;} }
.hero h1{font-size:clamp(34px, 4.4vw, 56px); line-height:1.07; letter-spacing:-0.02em;}
.hero h1 em{font-style:italic; color:var(--red);}
.hero-sub{font-size:17px; max-width:480px; margin:22px 0 8px; opacity:0.82;}
.hero-gu{font-size:15.5px; color:var(--sage); margin-bottom:32px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px;}
.hero-stats{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:22px;}
.hero-stat{padding-right:32px; margin-right:32px; border-right:1px solid var(--line);}
.hero-stat:last-child{border-right:none;}
.hero-stat b{display:block; font-family:'Fraunces',serif; font-size:27px; color:var(--red);}
.hero-stat span{font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink); opacity:0.62;}
.hero-media{position:relative;}
.hero-media .frame{border-radius:2px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line);}
.hero-media img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 30%;}
@media (min-width:940px){ .hero-media img{aspect-ratio:5/6;} }
.hero-tag{position:absolute; bottom:-24px; left:-24px; background:var(--white); border:1px solid var(--line); border-radius:2px; padding:16px 20px; box-shadow:var(--shadow); display:flex; align-items:center; gap:12px; max-width:250px;}
@media (max-width:940px){ .hero-tag{left:16px;} }
.hero-tag .dot{width:9px; height:9px; border-radius:50%; background:var(--sage); box-shadow:0 0 0 4px rgba(95,110,82,0.16); flex-shrink:0;}
.hero-tag b{font-size:13px; font-family:'IBM Plex Sans';}
.hero-tag span{font-size:11px; opacity:0.62; display:block;}
.hero-stamp{position:absolute; top:22px; right:22px; width:86px; height:86px; border:1.5px dashed rgba(247,254,251,0.55); border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; transform:rotate(8deg);}
.hero-stamp span{font-family:'IBM Plex Mono'; font-size:9.5px; color:#fff; letter-spacing:0.06em; line-height:1.5; text-transform:uppercase;}

/* ---------- Trust bar ---------- */
.trustbar{background:var(--ink); color:var(--paper); padding:20px 0; overflow:hidden;}
.trustbar .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px 28px;}
.trust-item{display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:500; white-space:nowrap;}
.trust-item .n{font-family:'IBM Plex Mono'; color:var(--gold); font-size:12px;}

/* ---------- Quick actions ---------- */
.quick-actions{padding:64px 0;}
.qa-head{max-width:600px; margin-bottom:32px;}
.qa-head p{margin:0; font-size:15.5px; opacity:0.72;}
.qa-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width:860px){ .qa-grid{grid-template-columns:1fr;} }
.qa-card{display:block; background:var(--white); border:1px solid var(--line); border-radius:6px; padding:26px 24px; transition:transform .15s ease, box-shadow .15s ease;}
.qa-card:hover{transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--red);}
.qa-icon{display:flex; width:38px; height:38px; color:var(--red); margin-bottom:16px;}
.qa-card h4{font-size:17px; margin-bottom:8px;}
.qa-card p{font-size:13.5px; opacity:0.7; margin:0 0 16px;}
.qa-cta{font-family:'IBM Plex Mono'; font-size:12px; font-weight:600; color:var(--red); letter-spacing:0.02em;}

/* ---------- Section headers ---------- */
.sec-head{max-width:640px; margin-bottom:52px;}
.sec-head h2{font-size:clamp(28px,3.2vw,40px); line-height:1.12;}
.sec-head p{margin-top:14px; font-size:16px; opacity:0.75; max-width:560px;}
.sec-foot-link{margin-top:36px; font-size:14.5px;}
.sec-foot-link a{color:var(--red); font-weight:600;}

/* ---------- About ---------- */
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
@media (max-width:900px){ .about-grid{grid-template-columns:1fr;} }
.about-media{position:relative;}
.about-media img{border-radius:2px; box-shadow:var(--shadow); border:1px solid var(--line);}
.about-credential{margin-top:18px; padding:16px 18px; background:var(--white); border:1px solid var(--line); border-radius:2px; border-left:3px solid var(--red);}
.about-credential b{font-size:14px;}
.about-credential p{margin:4px 0 0; font-size:13px; opacity:0.7;}
.about-body p{font-size:16px; margin-bottom:18px;}
.about-body p.legacy{font-size:14.5px; padding:14px 18px; background:var(--paper-deep); border-left:3px solid var(--sage); border-radius:2px; opacity:0.85;}
.about-facts{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:28px;}
.fact{padding:18px; background:var(--white); border:1px solid var(--line); border-radius:2px;}
.fact b{font-family:'Fraunces'; font-size:23px; color:var(--red); display:block;}
.fact span{font-size:12.5px; opacity:0.7;}

/* ---------- Tests ---------- */
.test-cats{display:flex; flex-direction:column; gap:2px;}
.test-cat{background:var(--white); border:1px solid var(--line); border-radius:2px; overflow:hidden;}
.test-cat + .test-cat{margin-top:14px;}
.test-cat-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:16px 22px; background:var(--paper-deep); border-bottom:1px solid var(--line);}
.test-cat-head h4{font-size:15px; font-family:'IBM Plex Mono'; text-transform:uppercase; letter-spacing:0.05em; font-weight:600;}
.test-cat-head span{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--red); flex-shrink:0;}
.test-rows{display:grid; grid-template-columns:repeat(2,1fr);}
@media (max-width:760px){ .test-rows{grid-template-columns:1fr;} }
.test-row{display:flex; justify-content:space-between; gap:14px; align-items:baseline; padding:13px 22px; border-bottom:1px dashed var(--line-soft); font-size:14.5px;}
.test-rows .test-row:nth-child(odd){border-right:1px dashed var(--line-soft);}
@media (max-width:760px){ .test-rows .test-row:nth-child(odd){border-right:none;} }
.test-row b{font-weight:500;}
.test-row .abbr{font-family:'IBM Plex Mono'; font-size:11px; color:var(--sage); opacity:0.85; flex-shrink:0; text-align:right;}
.tests-more{margin-top:28px; padding:18px 22px; background:var(--red-wash); border-radius:2px; font-size:14.5px; border-left:3px solid var(--red);}
.organ-filter{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px;}
.organ-chip{font-family:'IBM Plex Sans'; font-size:13.5px; font-weight:500; cursor:pointer; padding:9px 16px; border-radius:20px; border:1px solid var(--line); background:var(--white); color:var(--ink); transition:all .15s ease;}
.organ-chip:hover{border-color:var(--red); color:var(--red);}
.organ-chip.active{background:var(--red); border-color:var(--red); color:var(--white);}
.test-cat.hidden, .test-row.hidden{display:none;}
.tests-more a{color:var(--red); font-weight:600;}

/* ---------- Packages ---------- */
.pkg-note{font-size:13px; opacity:0.6; margin-top:18px;}
.pkg-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media (max-width:1040px){ .pkg-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .pkg-grid{grid-template-columns:1fr;} }
.pkg-card{background:var(--white); border:1px solid var(--line); border-radius:2px; padding:24px 22px; display:flex; flex-direction:column; position:relative;}
.pkg-card.featured{border-color:var(--red); box-shadow:0 0 0 1px var(--red);}
.pkg-card.flagship{background:var(--ink); border-color:var(--ink); color:var(--paper);}
.pkg-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; gap:8px;}
.pkg-card h4{font-size:18px;}
.pkg-badge{font-family:'IBM Plex Mono'; font-size:10px; background:var(--gold); color:var(--white); padding:3px 8px; border-radius:20px; letter-spacing:0.04em; white-space:nowrap;}
.pkg-card.flagship .pkg-badge{background:var(--red);}
.pkg-card p.desc{font-size:13px; opacity:0.72; margin:0 0 20px; min-height:52px;}
.pkg-card.flagship p.desc{opacity:0.75;}
.price-row{margin-top:auto; padding-top:16px; border-top:1px dashed var(--line);}
.pkg-card.flagship .price-row{border-top-color:rgba(246,241,231,0.25);}
.price-offer{font-family:'Fraunces'; font-size:28px; color:var(--red); font-weight:600;}
.pkg-card.flagship .price-offer{color:#E8A756;}
.price-regular{font-size:13px; opacity:0.5; text-decoration:line-through; margin-left:8px;}
.price-flat{font-family:'Fraunces'; font-size:28px; color:var(--red); font-weight:600;}

/* ---------- Why choose / process ---------- */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line);}
@media (max-width:860px){ .why-grid{grid-template-columns:1fr;} }
.why-card{padding:30px 26px; background:var(--white);}
.why-icon{width:40px; height:40px; margin-bottom:18px; color:var(--red);}
.why-card h4{font-size:18px; margin-bottom:8px;}
.why-card p{font-size:14px; opacity:0.7; margin:0;}

.best-list{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:2px; overflow:hidden;}
@media (max-width:760px){ .best-list{grid-template-columns:1fr;} }
.best-item{display:flex; gap:18px; padding:28px 26px; background:var(--white);}
.best-num{font-family:'Fraunces'; font-size:30px; font-weight:600; color:var(--red-wash); -webkit-text-stroke:1.5px var(--red); flex-shrink:0; line-height:1;}
.best-item h4{font-size:16.5px; margin-bottom:6px;}
.best-item p{font-size:13.5px; opacity:0.72; margin:0;}

.process{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
@media (max-width:860px){ .process{grid-template-columns:1fr;} }
.process-step{position:relative;}
.process-media{border-radius:2px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); margin-bottom:20px; aspect-ratio:1/1;}
.process-media img{width:100%; height:100%; object-fit:cover; object-position:center 25%;}
.process-num{font-family:'IBM Plex Mono'; font-size:12.5px; color:var(--red); margin-bottom:10px; display:block;}
.process-step h4{font-size:18px; margin-bottom:8px;}
.process-step p{font-size:14px; opacity:0.7; margin:0;}

/* ---------- Team ---------- */
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px;}
@media (max-width:760px){ .team-grid{grid-template-columns:1fr;} }
.team-card{background:var(--white); border:1px solid var(--line); border-radius:2px; overflow:hidden;}
.team-photo{aspect-ratio:4/5; overflow:hidden;}
.team-photo img{width:100%; height:100%; object-fit:cover; object-position:center 20%;}
.team-info{padding:24px 26px;}
.team-info h4{font-size:21px; margin-bottom:4px;}
.team-role{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--red); letter-spacing:0.04em; text-transform:uppercase;}
.team-info p{font-size:14.5px; opacity:0.72; margin-top:14px;}

/* ---------- Press ---------- */
.press-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}
@media (max-width:900px){ .press-grid{grid-template-columns:1fr;} }
.press-media{position:relative; display:block;}
.press-media img{border-radius:2px; box-shadow:var(--shadow); border:1px solid var(--line);}
.press-media .zoom-hint{position:absolute; bottom:12px; right:12px; background:rgba(34,29,26,0.78); color:#fff; font-family:'IBM Plex Mono'; font-size:10.5px; padding:5px 10px; border-radius:2px; letter-spacing:0.04em;}
.award-row{display:flex; align-items:flex-start; gap:16px; margin-bottom:18px; padding:16px 18px; background:var(--white); border:1px solid var(--line); border-radius:2px;}
.award-icon{width:34px; height:34px; flex-shrink:0; color:var(--gold);}
.award-row b{font-size:14.5px; display:block;}
.award-row span{font-size:12.5px; opacity:0.65;}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media (max-width:860px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
.gallery-grid img{border-radius:2px; aspect-ratio:1/1; width:100%; object-fit:cover; border:1px solid var(--line);}
.gallery-video{grid-column:span 2; position:relative; border-radius:2px; overflow:hidden; border:1px solid var(--line); aspect-ratio:2/1; background:#000;}
@media (max-width:560px){ .gallery-video{grid-column:span 2;} }
.gallery-video video{width:100%; height:100%; object-fit:contain; display:block;}
.video-note{margin-top:20px; padding:16px 18px; background:var(--paper-deep); border-radius:2px; font-size:13.5px; opacity:0.7; border-left:3px solid var(--sage);}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-q{display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:'Fraunces'; font-size:17px; font-weight:500; gap:16px;}
.faq-q .plus{font-family:'IBM Plex Mono'; color:var(--red); font-size:20px; transition:transform .2s; flex-shrink:0;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:320px;}
.faq-a p{font-size:14.5px; opacity:0.72; margin:14px 0 0;}

/* ---------- CTA band ---------- */
.cta-band{background:var(--red); color:var(--white); text-align:center; padding:84px 0; position:relative; overflow:hidden;}
.cta-band h2{color:var(--white); font-size:clamp(28px,3.5vw,42px);}
.cta-band p{opacity:0.88; margin:16px 0 30px; font-size:16px;}
.cta-band .gu{opacity:0.85; font-size:15px; margin-top:-14px; margin-bottom:28px;}
.cta-band .btn-solid{background:var(--white); color:var(--red); border-color:var(--white);}
.cta-band .btn-solid:hover{background:var(--paper);}
.cta-band .btn-ghost{color:var(--white); border-color:rgba(255,255,255,0.5);}
.cta-band .btn-ghost:hover{background:rgba(255,255,255,0.14); color:var(--white);}
.cta-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }
.contact-list{list-style:none; margin:0; padding:0;}
.contact-list li{display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line);}
.contact-list li:first-child{padding-top:0;}
.contact-ic{width:22px; height:22px; color:var(--red); flex-shrink:0; margin-top:2px;}
.contact-list b{display:block; font-size:15px; margin-bottom:3px;}
.contact-list span, .contact-list a{font-size:14px; opacity:0.75;}
.map-frame{border-radius:2px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); aspect-ratio:4/3;}
.map-frame iframe{width:100%; height:100%; border:0;}

/* ---------- Patient portal (report access) ---------- */
.portal-card{background:var(--white); border:1px solid var(--line); border-radius:6px; padding:32px; box-shadow:var(--shadow);}
.portal-card h3{font-size:22px; margin-bottom:8px;}
.portal-card > p{font-size:14.5px; opacity:0.72; margin:0 0 24px;}
.portal-field{margin-bottom:16px;}
.portal-field label{display:block; font-size:12.5px; font-family:'IBM Plex Mono'; text-transform:uppercase; letter-spacing:0.05em; opacity:0.65; margin-bottom:7px;}
.portal-field input{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:2px; font-family:'IBM Plex Sans'; font-size:15px; background:var(--paper); color:var(--ink);}
.portal-field input:focus{outline:2px solid var(--red); outline-offset:1px; border-color:var(--red);}
.portal-submit{width:100%; justify-content:center; padding:13px; font-size:14.5px;}
.portal-note{margin-top:18px; padding:14px 16px; background:var(--paper-deep); border-radius:2px; font-size:13px; opacity:0.75; border-left:3px solid var(--sage); display:none;}
.portal-note.show{display:block;}
.portal-note.error{border-left-color:var(--red); background:var(--red-wash);}
.portal-divider{display:flex; align-items:center; gap:12px; margin:22px 0; font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; opacity:0.5;}
.portal-divider::before, .portal-divider::after{content:''; height:1px; background:var(--line); flex:1;}
.portal-first-visit{font-size:13.5px; opacity:0.72; text-align:center;}
.portal-first-visit a{color:var(--red); font-weight:600;}

/* ---------- Legal pages (Privacy Policy / Terms) ---------- */
.legal-content{max-width:820px;}
.legal-content h2{font-size:24px; margin:44px 0 14px;}
.legal-content h2:first-child{margin-top:0;}
.legal-content h3{font-size:17px; font-family:'IBM Plex Sans'; font-weight:600; margin:26px 0 10px;}
.legal-content p{font-size:15px; opacity:0.82; margin:0 0 14px;}
.legal-content ul{margin:0 0 14px; padding-left:22px;}
.legal-content li{font-size:15px; opacity:0.82; margin-bottom:8px;}
.legal-content strong{color:var(--ink); opacity:1;}
.legal-meta{font-family:'IBM Plex Mono'; font-size:12px; opacity:0.55; margin-bottom:36px; padding-bottom:24px; border-bottom:1px solid var(--line);}
.legal-callout{background:var(--red-wash); border-left:3px solid var(--red); border-radius:2px; padding:16px 20px; margin:20px 0; font-size:14px;}
.legal-toc{background:var(--white); border:1px solid var(--line); border-radius:6px; padding:22px 26px; margin-bottom:40px;}
.legal-toc b{font-family:'IBM Plex Mono'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold); display:block; margin-bottom:12px;}
.legal-toc ol{margin:0; padding-left:20px;}
.legal-toc li{font-size:14px; margin-bottom:7px;}
.legal-toc a{color:var(--ink); opacity:0.78;}
.legal-toc a:hover{color:var(--red); opacity:1;}
.pending{background:#FFF3C4; color:#7A5B00; padding:1px 7px; border-radius:3px; font-family:'IBM Plex Mono'; font-size:12.5px; white-space:nowrap;}

/* ---------- Footer ---------- */
footer{background:var(--ink); color:var(--paper); padding:64px 0 28px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1.2fr 0.9fr 0.9fr 0.9fr; gap:36px; margin-bottom:48px;}
@media (max-width:1000px){ .footer-grid{grid-template-columns:1fr 1fr 1fr;} }
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr 1fr;} }
.footer-why{list-style:none; margin:0; padding:0;}
.footer-why li{display:flex; gap:8px; margin-bottom:10px; font-size:13px; opacity:0.75; line-height:1.5;}
.footer-why li::before{content:'✓'; color:var(--gold); flex-shrink:0; font-weight:600;}
.footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
footer p{font-size:13.5px; opacity:0.65; line-height:1.7;}
footer h5{font-family:'IBM Plex Mono'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold); margin-bottom:16px;}
footer ul{list-style:none; margin:0; padding:0;}
footer li{margin-bottom:10px; font-size:14px; opacity:0.75;}
footer a:hover{opacity:1; text-decoration:underline;}
.footer-legal{border-top:1px solid rgba(246,241,231,0.12); padding-top:22px; margin-top:8px;}
.footer-legal p{font-size:12px; opacity:0.5; line-height:1.7; margin:0 0 6px;}
.footer-bottom{border-top:1px solid rgba(246,241,231,0.12); padding-top:24px; margin-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12px; opacity:0.55;}
.footer-bottom a{opacity:1; text-decoration:underline;}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

::selection{background:var(--red); color:var(--white);}
:focus-visible{outline:2px solid var(--red); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
}
