:root{
  --navy:#0d3654;
  --navy-2:#0a2d46;
  --green:#3f9655;
  --green-dark:#087d42;
  --green-soft:#edf7f1;
  --teal:#0d607a;
  --teal-dark:#084e68;
  --gold:#d9a52a;
  --ink:#12354f;
  --muted:#60778a;
  --line:#d9e4e8;
  --surface:#ffffff;
  --surface-2:#f5f9f8;
  --surface-3:#eef6f3;
  --shadow-sm:0 8px 24px rgba(13,53,84,.06);
  --shadow:0 18px 50px rgba(13,53,84,.10);
  --radius:14px;
  --container:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit;text-decoration:none}
.container{max-width:var(--container)}

h1,h2,h3,h4,h5,h6{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--navy-2);font-weight:750;letter-spacing:-.045em;line-height:1.08}
h1{font-size:clamp(3.35rem,5.4vw,5.1rem);margin:0}
h2{font-size:clamp(2rem,3.5vw,3.35rem);margin:0}
h3{font-size:1.15rem;margin:0}
p{color:var(--muted);margin:0 0 1rem}

/* Top contact strip */
.top-strip{background:var(--navy-2);color:#fff;font-size:11px;line-height:1.3;padding:8px 0}
.top-strip span{display:flex;align-items:center;gap:6px}
.top-strip i{font-size:12px;opacity:.9}
.top-strip a{color:#fff}

/* Header */
.site-header{background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);z-index:1000}
.site-header .navbar{min-height:78px}
.navbar-brand img{display:block;width:145px;height:auto}
.navbar-toggler{border:0;padding:8px}
.navbar-toggler:focus{box-shadow:none}
.navbar-toggler span{display:block;width:25px;height:2px;background:var(--navy);margin:5px 0;border-radius:10px}
.nav-link{position:relative;color:var(--navy)!important;font-size:14px;font-weight:700;padding:.65rem .7rem!important}
.nav-link::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:3px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:center;transition:transform .22s ease}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-link.active,.nav-link:hover{color:var(--green-dark)!important}
.nav-actions{align-items:center}

/* Buttons */
.btn{border-radius:10px;font-weight:750;padding:.78rem 1.15rem;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-1px)}
.btn-lg{padding:.9rem 1.25rem}
.btn-green{background:var(--green);border:1px solid var(--green);color:#fff}
.btn-green:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff;box-shadow:0 8px 20px rgba(8,125,66,.18)}
.btn-outline-green{background:#fff;border:1px solid var(--green);color:var(--green-dark)}
.btn-outline-green:hover{background:var(--green-soft);border-color:var(--green-dark);color:var(--green-dark)}
.btn-light{background:#fff;border:1px solid rgba(255,255,255,.9);color:var(--navy)}

.eyebrow{display:inline-block;color:var(--green-dark);font-size:12px;font-weight:800;letter-spacing:.14em;line-height:1.2;margin-bottom:15px}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:20px}
.hero-points span{display:flex;align-items:center;color:#506b7d;font-size:13px;font-weight:650}
.hero-points i{color:var(--green);margin-right:6px}

/* Animation */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.reveal.is-visible{opacity:1;transform:none}

/* Homepage hero */
.home-hero{position:relative;overflow:hidden;padding:64px 0 56px;background:linear-gradient(135deg,#f3f8f6 0%,#fff 68%)}
.home-hero .row{min-height:520px}
.home-hero h1{max-width:700px}
.home-hero h1 em{font-style:normal;color:var(--green)}
.hero-lead{max-width:640px;font-size:18px;line-height:1.7}
.hero-photo{position:relative;max-width:600px;margin-left:auto;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.hero-photo img{display:block;width:100%;height:520px;object-fit:cover;object-position:center}

/* Quick navigation */
.quick-links{position:relative;z-index:2;padding:16px 0;background:#fff;border-bottom:1px solid rgba(217,228,232,.7)}
.quick-card{height:100%;min-height:92px;display:flex;align-items:center;gap:14px;padding:17px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);transition:.25s ease}
.quick-card:hover{transform:translateY(-3px);border-color:#b9d3c4;box-shadow:var(--shadow)}
.quick-card>i:first-child{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:11px;background:var(--green-soft);color:var(--green-dark);font-size:21px}
.quick-card div{min-width:0;display:flex;flex-direction:column;flex:1}
.quick-card strong{font-size:14px;color:var(--navy);line-height:1.3}
.quick-card span{font-size:12px;color:var(--muted);line-height:1.45;margin-top:4px}
.quick-card .arrow{font-size:16px;color:var(--green-dark)}

/* General sections */
.section-pad{padding:76px 0}
.section-head{max-width:760px;margin-bottom:30px}
.section-head.text-center{margin-left:auto;margin-right:auto}
.section-head h2{margin-bottom:12px}
.section-head p{font-size:16px;max-width:700px}

/* Homepage services */
.services-home{background:#f8fbfa}
.service-card{display:flex;flex-direction:column;height:100%;min-height:235px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);transition:.25s ease}
.service-card:hover{transform:translateY(-4px);border-color:#b8d3c5;box-shadow:var(--shadow)}
.service-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;border-radius:11px;background:var(--green-soft);color:var(--green-dark);font-size:21px;margin-bottom:18px}
.service-card h3{font-size:18px;letter-spacing:-.025em;margin-bottom:8px}
.service-card p{font-size:13px;line-height:1.6;margin-bottom:12px}
.service-card>span,.large-service span{display:inline-flex;align-items:center;gap:6px;margin-top:auto;color:var(--green-dark);font-size:13px;font-weight:750}

/* Compounding band */
.compounding-band{position:relative;overflow:hidden;background:var(--teal);color:#fff;padding:72px 0}
.compounding-band::after{content:"";position:absolute;width:480px;height:480px;border:80px solid rgba(255,255,255,.055);border-radius:50%;right:-210px;top:-250px;pointer-events:none}
.compounding-band h2{color:#fff;max-width:760px;margin-bottom:14px}
.compounding-band p{max-width:720px;color:rgba(255,255,255,.78);font-size:16px;line-height:1.7}
.compounding-band .eyebrow{color:#a8dbbc}
.specialty-preview{display:grid;gap:10px;position:relative;z-index:1}
.specialty-preview>div{display:flex;align-items:baseline;gap:12px;min-height:72px;padding:15px 18px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.08)}
.specialty-preview strong{font-size:31px;color:#fff;line-height:1}
.specialty-preview span{font-size:12px;color:rgba(255,255,255,.75)}

/* Specialty grid */
.specialty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.specialty-chip{min-height:74px;display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:.25s ease}
.specialty-chip:hover{transform:translateY(-3px);border-color:#b7d2c3;box-shadow:var(--shadow-sm)}
.specialty-chip>i:first-child{width:24px;text-align:center;color:var(--green-dark);font-size:19px;flex:0 0 24px}
.specialty-chip span{flex:1;color:var(--navy);font-size:14px;font-weight:700;line-height:1.35}
.specialty-chip .bi-arrow-right{color:#91a3ae;font-size:15px}
.specialty-chip.large{min-height:98px}
.specialty-chip.large span{display:flex;flex-direction:column;gap:4px}
.specialty-chip.large small{font-size:12px;color:var(--muted);font-weight:500}

/* CTA */
.cta-band{padding:68px 0;background:linear-gradient(135deg,#f0f8f3,#fff)}
.cta-band h2{margin-bottom:10px}
.cta-band p{max-width:650px;margin:0 auto}

/* Inner page heroes — same heading scale as homepage */
.page-hero,.service-hero,.provider-hero{position:relative;overflow:hidden;padding:68px 0 62px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f3f8f6 0%,#fff 72%)}
.page-hero::after,.service-hero::after,.provider-hero::after{content:"";position:absolute;width:430px;height:430px;right:-190px;top:50%;transform:translateY(-50%);border:1px solid rgba(63,150,85,.12);border-radius:50%;box-shadow:0 0 0 70px rgba(63,150,85,.025),0 0 0 140px rgba(63,150,85,.018);pointer-events:none}
.page-hero h1,.service-hero h1,.provider-hero h1{max-width:980px;margin:0}
.page-hero p,.service-hero p,.provider-hero p{max-width:850px;font-size:17px;line-height:1.72;margin-top:18px}
.page-hero .row,.service-hero .row,.provider-hero .row{min-height:310px;align-items:center}

/* Large service list */
.large-service{height:100%;min-height:168px;display:flex;gap:20px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);transition:.25s ease}
.large-service:hover{transform:translateY(-3px);border-color:#b8d3c5;box-shadow:var(--shadow)}
.large-service .service-icon{flex:0 0 48px}
.large-service h2{font-size:22px;margin-bottom:7px}
.large-service p{font-size:13px;line-height:1.6;margin-bottom:10px}

/* Soft bands */
.soft-band{background:var(--surface-2);padding:62px 0;border-top:1px solid #e5eeee;border-bottom:1px solid #e5eeee}

/* Content / check grids */
.content-block{width:100%}
.content-block>h2{margin-bottom:24px}
.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.check-grid>div{height:100%;min-height:108px;display:flex;align-items:flex-start;gap:11px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.check-grid i{color:var(--green-dark);font-size:17px;flex:0 0 auto;margin-top:2px}
.check-grid span{font-size:14px;line-height:1.6;color:var(--ink)}

/* Feature rows */
.feature-row{display:grid;grid-template-columns:70px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}
.feature-row:first-child{padding-top:0}
.feature-row h2{font-size:26px;margin-bottom:8px}
.feature-num{font-size:22px;color:#9aacb5;font-weight:700}

/* Vaccine section */
.vaccine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vaccine-card{height:100%;display:flex;gap:11px;align-items:flex-start;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.vaccine-card i{color:var(--green-dark);font-size:18px;flex:0 0 auto}
.vaccine-card span{font-size:14px;line-height:1.55}
.vaccine-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vaccine-group{display:flex;gap:15px;align-items:flex-start;height:100%;padding:21px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.vaccine-group-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;border-radius:11px;background:var(--green-soft);color:var(--green-dark);font-size:19px}
.vaccine-group h3{font-size:17px;margin:1px 0 5px}
.vaccine-group p{font-size:13px;margin:0}
.vaccine-help{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;border:1px solid #cfe3d6;border-radius:14px;background:#f1f8f4}
.vaccine-help h3{font-size:20px;margin-bottom:4px}
.vaccine-help p{font-size:13px;margin:0}

/* Cards */
.info-card,.feature-card,.refill-box,.provider-access,.provider-quote{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.info-card{padding:28px}
.info-card>i{font-size:27px;color:var(--green-dark);display:block;margin-bottom:14px}
.feature-card{height:100%;padding:28px}
.feature-card.tall{padding:34px}
.feature-kicker{color:var(--green-dark);font-size:11px;font-weight:800;letter-spacing:.12em}

/* Difference */
.difference{background:#fff}
.difference .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}
.difference .row>[class*="col-"]{width:auto;padding:0;margin:0}
.difference-card{height:100%;min-height:125px;display:flex;gap:14px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.difference-card>i{color:var(--green-dark);font-size:21px;flex:0 0 auto}
.difference-card h3{font-size:16px;margin-bottom:5px}
.difference-card p{font-size:13px;line-height:1.55;margin:0}
.cost-callout{margin-top:14px;padding:16px 18px;border:1px solid #eadfb9;border-radius:12px;background:#fbf7ea;color:#5c522f;font-size:13px}
.cost-callout a{color:var(--green-dark);font-weight:800}

/* Notes */
.note-box{display:flex;gap:12px;margin-top:18px;padding:16px;border:1px solid #d4e6ea;border-radius:12px;background:#f1f7f8}
.note-box i{color:var(--teal);font-size:19px;flex:0 0 auto}
.note-box p{font-size:13px;margin:0}

/* Stats */
.stat-stack{display:grid;gap:10px}
.stat-stack>div{display:flex;align-items:baseline;gap:12px;padding:18px;border-radius:12px;background:var(--teal);color:#fff}
.stat-stack strong{font-size:32px;color:#fff}
.stat-stack span{font-size:12px;color:rgba(255,255,255,.78)}

/* Providers */
.provider-step{height:100%;min-height:180px;position:relative;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);transition:.25s ease}
.provider-step:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.provider-step .step-number{position:absolute;right:18px;top:16px;color:#9aacb5;font-size:11px;font-weight:800}
.provider-step>i{width:44px;height:44px;display:grid;place-items:center;margin-bottom:16px;border-radius:11px;background:var(--green-soft);color:var(--green-dark);font-size:20px}
.provider-step h3{font-size:17px;margin-bottom:6px}
.provider-step p,.provider-step a{font-size:13px;color:var(--muted);margin:0}
.provider-step a{color:var(--green-dark);font-weight:750}
.provider-timeline{max-width:980px}
.provider-timeline-item{display:grid;grid-template-columns:50px 1fr;gap:18px;padding:23px 0;border-bottom:1px solid var(--line)}
.provider-timeline-item>span{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--teal);color:#fff;font-size:11px;font-weight:800}
.provider-timeline-item h3{font-size:18px;margin-bottom:5px}
.provider-timeline-item p{font-size:13px;margin:0}
.provider-access,.provider-quote{height:100%;padding:28px}
.provider-quote{display:flex;flex-direction:column;justify-content:center;background:var(--navy);color:#fff;border-color:transparent}
.provider-quote i{font-size:28px;color:#a8dbbc;margin-bottom:14px}
.provider-quote strong{font-size:18px;color:#fff;margin-bottom:5px}
.provider-quote p{color:rgba(255,255,255,.72);font-size:13px;margin:0}
.provider-offer{height:100%;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.provider-offer>i{color:var(--green-dark);font-size:22px;display:block;margin-bottom:14px}
.provider-offer h3{font-size:16px;margin-bottom:7px}
.provider-offer p{font-size:13px;margin:0}
.provider-specialty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.provider-specialty-grid a{min-height:54px;display:flex;align-items:center;gap:8px;padding:12px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(255,255,255,.07);color:#fff;font-size:12px;font-weight:700}
.provider-specialty-grid a i:first-child{color:#a8dbbc}
.provider-specialty-grid a i:last-child{margin-left:auto;color:rgba(255,255,255,.6)}
.quality-badge{height:100%;min-height:96px;display:flex;align-items:center;gap:12px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.quality-badge i{color:var(--green-dark);font-size:22px}
.quality-badge strong{font-size:13px}

/* Refill */
.refill-box{padding:34px;background:#f6faf8}
.refill-box h2{margin-bottom:10px}
.form-control,.form-select{min-height:50px;border:1px solid var(--line);border-radius:10px;padding:.75rem .85rem;color:var(--ink);background:#fff}
textarea.form-control{min-height:125px}
.form-control:focus,.form-select:focus{border-color:#8fc0a2;box-shadow:0 0 0 .2rem rgba(63,150,85,.11)}
label{display:block;font-size:12px;font-weight:750;color:var(--navy);margin-bottom:6px}

/* About / local proof */
.local-proof{background:var(--surface-2);padding:64px 0}
.award-seal{width:170px;height:170px;border:2px solid var(--gold);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:auto;text-align:center;color:var(--teal);background:#fffdf7}
.award-seal span{color:var(--gold);font-size:20px}.award-seal strong{font-size:11px;letter-spacing:.1em}.award-seal b{font-size:32px}.award-seal small{font-size:10px;color:var(--muted)}
.about-photo{width:100%;height:480px;object-fit:cover;border-radius:14px;box-shadow:var(--shadow)}

/* Footer */
.site-footer{background:var(--navy-2);color:#fff;padding:56px 0 22px}
.footer-logo{width:145px;background:#fff;border-radius:8px}
.site-footer h6{color:#fff;font-size:13px;letter-spacing:.01em;margin-bottom:14px}
.site-footer p,.site-footer a{color:rgba(255,255,255,.72);font-size:13px}
.site-footer p{margin-bottom:9px}
.site-footer a:hover{color:#fff}
.site-footer i{margin-right:5px;color:#a8dbbc}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:32px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);font-size:11px}
.mobile-cta{display:none}

/* Intentional rhythm: no giant dead zones */
.services-home+.compounding-band{margin-top:0}
.compounding-band+.section-pad{padding-top:72px}
.page-hero+.section-pad{padding-top:66px}
.section-pad+.soft-band{margin-top:0}

@media (max-width:1199.98px){
  :root{--container:1140px}
  .navbar-brand img{width:138px}
  .nav-link{padding-left:.55rem!important;padding-right:.55rem!important}
  .nav-link::after{left:.55rem;right:.55rem}
  .home-hero .row{min-height:480px}
  .hero-photo img{height:500px}
  .difference .row{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:991.98px){
  :root{--container:960px}
  .navbar-collapse{padding:12px 0 4px}
  .navbar-nav{padding-top:4px}
  .nav-link{padding:.7rem 0!important}
  .nav-link::after{left:0;right:auto;width:30px;bottom:3px}
  .nav-actions{flex-direction:column;align-items:stretch;margin-left:0!important}
  .nav-actions .btn{width:100%;text-align:center}
  .home-hero,.page-hero,.service-hero,.provider-hero{padding:54px 0}
  .home-hero .row,.page-hero .row,.service-hero .row,.provider-hero .row{min-height:0}
  .hero-photo{max-width:none}
  .hero-photo img{height:470px}
  .specialty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vaccine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .difference .row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .provider-specialty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-hero::after,.service-hero::after,.provider-hero::after{right:-260px}
  .site-footer{padding-bottom:88px}
}

@media (max-width:767.98px){
  :root{--container:100%}
  .container{padding-left:18px;padding-right:18px}
  .top-strip{font-size:10px}
  .top-strip .container{justify-content:center!important;text-align:center}
  .site-header .navbar{min-height:70px}
  .navbar-brand img{width:132px}
  h1{font-size:2.9rem}
  h2{font-size:2.15rem}
  .home-hero{padding:40px 0 38px}
  .home-hero h1,.page-hero h1,.service-hero h1,.provider-hero h1{font-size:2.9rem;line-height:1.04}
  .hero-lead,.page-hero p,.service-hero p,.provider-hero p{font-size:15px;line-height:1.65}
  .hero-actions{display:grid;grid-template-columns:1fr;margin-top:22px}
  .hero-actions .btn{width:100%}
  .hero-points{display:grid;gap:7px;margin-top:18px}
  .hero-photo img{height:390px}
  .quick-links{padding:10px 0}
  .quick-card{min-height:78px}
  .section-pad{padding:50px 0}
  .section-head{margin-bottom:24px}
  .section-head p{font-size:15px}
  .services-home .row{row-gap:12px}
  .service-card{min-height:0;padding:21px}
  .large-service{min-height:0;padding:20px}
  .large-service h2{font-size:20px}
  .compounding-band{padding:52px 0}
  .specialty-preview{margin-top:10px}
  .specialty-grid,.check-grid,.vaccine-grid{grid-template-columns:1fr}
  .specialty-chip{min-height:68px}
  .difference .row{grid-template-columns:1fr}
  .difference-card{min-height:0}
  .vaccine-groups{grid-template-columns:1fr}
  .vaccine-help{display:block;padding:20px}
  .vaccine-help .btn{width:100%;margin-top:15px}
  .provider-specialty-grid{grid-template-columns:1fr}
  .provider-step{min-height:0}
  .feature-row{grid-template-columns:40px 1fr;gap:13px;padding:22px 0}
  .feature-row h2{font-size:21px}
  .refill-box{padding:22px}
  .footer-bottom{display:grid;gap:5px}
  .mobile-cta{position:fixed;display:grid;grid-template-columns:1fr 1fr;left:0;right:0;bottom:0;height:62px;background:#fff;border-top:1px solid var(--line);z-index:1100;box-shadow:0 -8px 25px rgba(13,53,84,.12)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:800}
  .mobile-cta a:first-child{color:var(--navy)}
  .mobile-cta a:last-child{background:var(--green);color:#fff}
  .mobile-cta i{font-size:17px}
  .page-hero::after,.service-hero::after,.provider-hero::after{width:280px;height:280px;right:-190px;opacity:.7}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .btn,.quick-card,.service-card,.large-service,.specialty-chip,.provider-step{transition:none}
}

/* Clean Difference grid structure (rebuilt from the approved content). */
.difference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.difference-item{min-width:0}
.difference-item .difference-card{height:100%}
@media (max-width:1199.98px){.difference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767.98px){.difference-grid{grid-template-columns:1fr}}

/* Inner hero composition: the empty side becomes a quiet visual field rather than a dead void. */
.page-hero > .container,
.service-hero > .container,
.provider-hero > .container{position:relative;z-index:1}
.page-hero .col-lg-6:only-child,
.service-hero .col-lg-6:only-child,
.provider-hero .col-lg-6:only-child{width:100%;flex:0 0 100%}
.page-hero .col-lg-6:only-child>div,
.service-hero .col-lg-6:only-child>div,
.provider-hero .col-lg-6:only-child>div{max-width:900px}

/* Custom gastrointestinal icon — replaces the unavailable Bootstrap stomach icon. */
.custom-category-icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
  object-position: center;
  flex: 0 0 24px;
  display: block;
  margin: 0;
}

.specialty-chip.large .custom-category-icon {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
}

/* =========================================================
   FOOTER — FINAL ALIGNMENT FIX
   ========================================================= */

/* The footer columns use a dedicated grid so navigation links never
   run together and the contact block gets enough horizontal room. */
.site-footer > .container > .row {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.35fr) minmax(150px, .8fr) minmax(170px, .9fr) minmax(360px, 1.85fr);
  gap: 42px;
  align-items: start;
}

.site-footer > .container > .row > [class*="col-"] {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding-left: 0;
  padding-right: 0;
}

/* Footer navigation is vertical, never inline. */
.site-footer > .container > .row > div:nth-child(2) > a,
.site-footer > .container > .row > div:nth-child(3) > a {
  display: block;
  width: fit-content;
  margin: 0 0 9px;
  line-height: 1.45;
  white-space: normal;
}

/* Contact details get a stable icon column and readable text column. */
.site-footer > .container > .row > div:nth-child(4) p {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  column-gap: 7px;
  align-items: start;
  margin: 0 0 10px;
  line-height: 1.45;
}

.site-footer > .container > .row > div:nth-child(4) p > i {
  margin: 2px 0 0;
  width: 18px;
  text-align: center;
}

.site-footer > .container > .row > div:nth-child(4) p > a {
  min-width: 0;
}

.site-footer .footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.site-footer .footer-bottom span:last-child {
  text-align: right;
}

/* Desktop: prevent the footer from becoming too tall. */
@media (min-width: 992px) {
  .site-footer {
    padding-top: 48px;
  }

  .site-footer > .container > .row {
    margin: 0;
  }
}

/* Tablet: two balanced columns. */
@media (min-width: 768px) and (max-width: 991.98px) {
  .site-footer > .container > .row {
    grid-template-columns: 1.2fr 1fr;
    gap: 32px 44px;
  }

  .site-footer .footer-bottom {
    margin-top: 28px;
  }
}

/* Mobile: one clean vertical flow. */
@media (max-width: 767.98px) {
  .site-footer > .container > .row {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .site-footer > .container > .row > div:nth-child(2) > a,
  .site-footer > .container > .row > div:nth-child(3) > a {
    margin-bottom: 8px;
  }

  .site-footer .footer-bottom {
    display: grid;
    gap: 6px;
    margin-top: 24px;
  }

  .site-footer .footer-bottom span:last-child {
    text-align: left;
  }
}

/* Gastrointestinal specialty card alignment — match every other specialty item. */
.specialty-chip.large {
  display:flex;
  align-items:center;
  gap:12px;
}
.specialty-chip.large > :first-child {
  width:28px;
  min-width:28px;
  flex:0 0 28px;
  display:block;
  text-align:center;
  line-height:1;
}
.specialty-chip.large > span {
  flex:1 1 auto;
  min-width:0;
}
.specialty-chip.large > .bi-arrow-right,
.specialty-chip.large > i:last-child {
  width:auto;
  min-width:15px;
  flex:0 0 auto;
  margin-left:auto;
  color:#91a3ae;
  font-size:15px;
  text-align:center;
}
.custom-category-icon {
  width:28px !important;
  height:28px !important;
  flex:0 0 28px !important;
  margin:0 !important;
  object-fit:contain;
}
.custom-category-icon + span strong {
  color:var(--navy) !important;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
}
.custom-category-icon + span small {
  color:var(--muted) !important;
  font-size:12px;
  font-weight:500;
}

/* =========================================================
   GLOBAL SPECIALTY CARD ALIGNMENT — FINAL
   One geometry for every specialty card, including custom PNG icons.
   ========================================================= */
.specialty-chip {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) 22px !important;
  align-items: center !important;
  column-gap: 12px !important;
  min-width: 0;
}

.specialty-chip > i:first-child,
.specialty-chip > img:first-child {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  flex: none !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  text-align: center !important;
  font-size: 19px !important;
  line-height: 1 !important;
}

.specialty-chip > span {
  min-width: 0 !important;
  margin: 0 !important;
  color: var(--navy) !important;
  font-family: Inter, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-align: left !important;
}

.specialty-chip > .bi-arrow-right {
  width: 22px !important;
  min-width: 22px !important;
  margin: 0 !important;
  justify-self: end !important;
  text-align: right !important;
  color: #91a3ae !important;
  font-size: 15px !important;
  line-height: 1 !important;
}

/* Detailed specialty cards use exactly the same icon/text/arrow columns. */
.specialty-chip.large {
  min-height: 98px;
}

.specialty-chip.large > span {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

.specialty-chip.large > span > strong {
  font-family: Inter, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: var(--navy) !important;
}

.specialty-chip.large > span > small {
  font-family: Inter, sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
}

/* Custom GI icon uses the same green as the rest of the specialty icons. */
.custom-category-icon {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  flex: none !important;
  object-fit: contain !important;
  margin: 0 !important;
}

/* Mobile: preserve the same icon/text/arrow relationship. */
@media (max-width: 575.98px) {
  .specialty-chip {
    grid-template-columns: 26px minmax(0, 1fr) 20px !important;
    column-gap: 10px !important;
  }

  .specialty-chip > i:first-child,
  .specialty-chip > img:first-child,
  .custom-category-icon {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
  }

  .specialty-chip > span {
    font-size: 14px !important;
  }
}

/* =========================================================
   CONTENT BLOCKS — COMPACT, CONTENT-LED LAYOUT
   Prevent short copy from creating oversized empty cards.
   ========================================================= */

/* Check/benefit cards should size to their content while still
   stretching naturally to the tallest card in their row. */
.check-grid {
  align-items: stretch;
  grid-auto-rows: auto;
}

.check-grid > div {
  height: auto !important;
  min-height: 0 !important;
  padding: 16px 18px !important;
  align-self: stretch;
}

.check-grid span {
  line-height: 1.5 !important;
}

/* When there are five items, use a balanced 3 + 2 composition:
   the second row uses the full width instead of leaving a large
   unused third column. */
.check-grid:has(> :nth-child(5):last-child) {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.check-grid:has(> :nth-child(5):last-child) > :nth-child(-n+3) {
  grid-column: span 2;
}

.check-grid:has(> :nth-child(5):last-child) > :nth-child(n+4) {
  grid-column: span 3;
}

/* Four-item blocks read better as a balanced 2 + 2 rather than
   3 + 1 with an orphaned card. */
.check-grid:has(> :nth-child(4):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Three-item blocks remain a clean three-column row. */
.check-grid:has(> :nth-child(3):last-child) {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Avoid artificial vertical space in other content cards. */
.vaccine-card,
.feature-card,
.info-card,
.provider-access,
.provider-quote {
  height: auto;
}

@media (max-width: 991.98px) {
  .check-grid:has(> :nth-child(5):last-child),
  .check-grid:has(> :nth-child(4):last-child),
  .check-grid:has(> :nth-child(3):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .check-grid:has(> :nth-child(5):last-child) > :nth-child(-n+3),
  .check-grid:has(> :nth-child(5):last-child) > :nth-child(n+4) {
    grid-column: auto;
  }
}

@media (max-width: 575.98px) {
  .check-grid:has(> :nth-child(5):last-child),
  .check-grid:has(> :nth-child(4):last-child),
  .check-grid:has(> :nth-child(3):last-child) {
    grid-template-columns: 1fr;
  }

  .check-grid > div {
    padding: 15px 16px !important;
  }
}

/* Canonical pharmacy trust details */
.site-footer .footer-trust {
  margin-bottom: 8px !important;
}
.site-footer .footer-trust i {
  color: #087D42;
}
.site-footer .footer-trust strong {
  font-weight: 700;
}

/* =========================================================
   PCCA OFFICIAL LOGO
   Official white PCCA asset used on dark trust surfaces.
   ========================================================= */
.pcca-footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  padding: 8px 11px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
}
.pcca-footer-badge img {
  width: 92px;
  height: auto;
  display: block;
}
.pcca-footer-badge span {
  color: rgba(255,255,255,.88);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.pcca-quality-badge {
  background: var(--navy-deep) !important;
  color: #fff !important;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  text-align: center;
}
.pcca-quality-badge img {
  width: 112px;
  height: auto;
  display: block;
}
.pcca-quality-badge strong {
  color: #fff !important;
}
.pcca-section-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  margin-bottom: 18px;
  background: var(--navy-deep);
  border-radius: 8px;
}
.pcca-section-badge img {
  width: 96px;
  height: auto;
  display: block;
}
.pcca-section-badge span {
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}
@media (max-width: 575.98px) {
  .pcca-footer-badge img { width: 84px; }
  .pcca-section-badge img { width: 86px; }
  .pcca-section-badge { gap: 9px; padding: 9px 11px; }
}

/* =========================================================
   FOOTER — POLISHED 4-COLUMN SYSTEM
   ========================================================= */
.site-footer {
  background: var(--navy-2);
  color: #fff;
  padding: 54px 0 20px;
}

.site-footer .footer-grid {
  display: grid;
  grid-template-columns: minmax(230px, 1.25fr) minmax(130px, .72fr) minmax(150px, .78fr) minmax(330px, 1.55fr);
  gap: 42px;
  align-items: start;
}

.site-footer .footer-brand {
  max-width: 330px;
}

.site-footer .footer-logo {
  width: 145px;
  height: auto;
  display: block;
  background: #fff;
  border-radius: 8px;
  margin-bottom: 17px;
}

.site-footer .footer-brand p {
  max-width: 315px;
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.65;
}

.site-footer h6 {
  margin: 1px 0 13px;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
}

.site-footer .footer-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.site-footer .footer-links a {
  display: block;
  width: fit-content;
  margin: 0 0 9px;
  color: rgba(255,255,255,.74);
  font-size: 13px;
  line-height: 1.35;
  text-decoration: none;
}

.site-footer .footer-links a:hover {
  color: #fff;
}

.site-footer .footer-contact {
  min-width: 0;
}

.site-footer .pcca-footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 16px;
  padding: 7px 10px;
  min-height: 40px;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 7px;
}

.site-footer .pcca-footer-badge img {
  width: 78px;
  height: auto;
  display: block;
}

.site-footer .pcca-footer-badge span {
  color: rgba(255,255,255,.9);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.site-footer .footer-contact-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.site-footer .footer-contact-list p {
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  column-gap: 8px;
  align-items: start;
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.45;
}

.site-footer .footer-contact-list p i {
  width: 17px;
  margin: 1px 0 0;
  color: #a8dbbc;
  font-size: 14px;
  text-align: center;
}

.site-footer .footer-contact-list p a {
  color: rgba(255,255,255,.78);
  text-decoration: none;
  font-size: 13px;
}

.site-footer .footer-contact-list p a:hover {
  color: #fff;
}

.site-footer .footer-contact-list .footer-trust {
  grid-template-columns: 17px auto auto;
  column-gap: 8px;
  align-items: center;
  color: rgba(255,255,255,.76);
}

.site-footer .footer-contact-list .footer-trust strong {
  color: #fff;
  font-weight: 800;
}

.site-footer .footer-contact-list .footer-trust span {
  white-space: nowrap;
}

.site-footer .footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 42px;
  padding-top: 17px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.48);
  font-size: 11px;
  line-height: 1.4;
}

@media (max-width: 991.98px) {
  .site-footer .footer-grid {
    grid-template-columns: 1.15fr .85fr;
    gap: 34px 48px;
  }

  .site-footer .footer-brand {
    max-width: 360px;
  }

  .site-footer .footer-contact {
    grid-column: 1 / -1;
    max-width: 560px;
  }
}

@media (max-width: 575.98px) {
  .site-footer {
    padding: 42px 0 86px;
  }

  .site-footer .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .site-footer .footer-brand,
  .site-footer .footer-contact {
    max-width: none;
  }

  .site-footer .footer-links a {
    margin-bottom: 8px;
  }

  .site-footer .pcca-footer-badge {
    margin-bottom: 14px;
  }

  .site-footer .footer-contact-list {
    gap: 9px;
  }

  .site-footer .footer-contact-list p {
    font-size: 12.5px;
  }

  .site-footer .footer-contact-list p a {
    font-size: 12.5px;
  }

  .site-footer .footer-bottom {
    display: grid;
    gap: 6px;
    margin-top: 30px;
  }
}

/* =========================================================
   GOOGLE REVIEWS — SOCIABLEKIT
   ========================================================= */
.reviews-section {
  background: #f7faf9;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.reviews-section .section-head {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.reviews-section .section-head h2 {
  margin-bottom: 10px;
}

.reviews-section .section-head p {
  margin-bottom: 0;
}

.reviews-widget-wrap {
  max-width: 1180px;
  margin: 30px auto 0;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 14px 35px rgba(13,53,84,.07);
  overflow: hidden;
}

.reviews-widget-wrap .sk-ww-google-reviews {
  width: 100%;
}

@media (max-width: 767.98px) {
  .reviews-widget-wrap {
    margin-top: 22px;
    padding: 12px;
    border-radius: 8px;
  }
}

/* =========================================================
   GOOGLE REVIEWS — COMPACT HEIGHT
   Keep the third-party review carousel visually contained
   without making the section dominate the homepage.
   ========================================================= */
.reviews-widget-wrap {
  margin-top: 24px !important;
  padding: 10px !important;
  height: 570px !important;
  max-height: 570px !important;
  overflow: hidden !important;
  border-radius: 8px !important;
}

.reviews-widget-wrap .sk-ww-google-reviews {
  height: 100% !important;
  max-height: 100% !important;
  overflow: hidden !important;
}

@media (max-width: 767.98px) {
  .reviews-widget-wrap {
    margin-top: 18px !important;
    padding: 6px !important;
    height: 520px !important;
    max-height: 520px !important;
  }
}
