:root{
  --stone:#F4F5F3; --stone-2:#E7EAE6; --graphite:#1D1F1E; --graphite-2:#33383A;
  --lake:#2D6E8E; --lake-dark:#1E4E66; --gold:#E0A526; --rule:#D3D8D3;
  --display:"Bricolage Grotesque",system-ui,sans-serif; --body:"Manrope",system-ui,sans-serif;
  --pad:clamp(20px,5vw,60px); --maxw:1240px;
}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;background:var(--stone);color:var(--graphite);font-family:var(--body);font-size:17.5px;line-height:1.65;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);}
h1,h2,h3{font-family:var(--display);margin:0;letter-spacing:-.03em;font-weight:800;line-height:.98;}
:focus-visible{outline:3px solid var(--lake);outline-offset:3px;}
.tag{font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lake);margin:0 0 16px;}

/* NAV */
.nav{position:sticky;top:0;z-index:60;background:var(--stone);border-bottom:2px solid var(--graphite);}
.nav-in{display:flex;align-items:center;gap:26px;padding:14px var(--pad);max-width:var(--maxw);margin:0 auto;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:14px;margin-right:auto;text-decoration:none;}
.brand img{height:46px;width:auto;border:2px solid var(--graphite);background:#fff;padding:3px 8px;}
.brand b{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.03em;line-height:1.05;}
.nav a.link{font-size:15px;font-weight:600;text-decoration:none;}
.nav a.link:hover{color:var(--lake);}
.nav a.link[aria-current="page"]{border-bottom:3px solid var(--gold);}
.book{display:inline-block;background:var(--gold);color:var(--graphite);font-family:var(--display);font-weight:700;font-size:16px;
  padding:14px 26px;text-decoration:none;border:2px solid var(--graphite);box-shadow:4px 4px 0 var(--graphite);letter-spacing:-.01em;}
.book:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--graphite);}
@media(max-width:960px){
  .nav-in{gap:10px 22px;padding-top:12px;padding-bottom:12px;}
  .brand{flex-basis:100%;}
  .brand b{font-size:17px;}
  .brand img{height:38px;}
  .nav a.link{font-size:14px;white-space:nowrap;}
  .nav .book{display:none;}
}

/* HERO (home) — display type at half the original mockup scale */
.hero{padding:clamp(30px,4.5vw,58px) 0 0;}
h1{font-size:clamp(30px,5.5vw,66px);font-variation-settings:"opsz" 96;}
h1 .lake{color:var(--lake);}
.hero-meta{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,54px);align-items:stretch;}
.sub{font-size:clamp(18px,2vw,22px);font-weight:500;max-width:40ch;margin:0;}
.hero-acts{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:26px;}
.callbig{font-family:var(--display);font-weight:700;font-size:20px;text-decoration:none;border-bottom:3px solid var(--gold);}
.strip{background:var(--graphite);color:var(--stone);margin-top:clamp(30px,4vw,52px);}
.strip-in{display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,44px);padding:18px var(--pad);max-width:var(--maxw);margin:0 auto;font-size:15px;font-weight:600;}
.strip-in span{display:flex;align-items:center;gap:10px;}
.strip-in span::before{content:"";width:8px;height:8px;background:var(--gold);flex:0 0 auto;}
.heroimg{position:relative;}
.heroimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;border:2px solid var(--graphite);}

/* SUBPAGE HERO */
.page-hero{padding:clamp(34px,5vw,64px) 0 0;}
.page-hero .sub{margin-top:18px;}

/* SECTIONS */
.sec{padding:clamp(48px,6.5vw,92px) 0;}
h2{font-size:clamp(28px,4.2vw,50px);font-variation-settings:"opsz" 72;}
h1 + .lede{margin-top:18px;}
.lede{font-size:19px;color:var(--graphite-2);max-width:56ch;margin:18px 0 0;}
.why{background:var(--lake);color:#fff;}
.why h2{color:#fff;}
.why .lede{color:rgba(255,255,255,.86);}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(18px,2.6vw,34px);margin-top:40px;}
.why-item h3{font-size:22px;font-variation-settings:"opsz" 24;margin-bottom:8px;}
.why-item p{margin:0;color:rgba(255,255,255,.84);font-size:16.5px;}
.why-item .rule{width:44px;height:4px;background:var(--gold);margin-bottom:16px;}

.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:0;margin-top:40px;border-top:2px solid var(--graphite);border-left:2px solid var(--graphite);}
.svc{border-right:2px solid var(--graphite);border-bottom:2px solid var(--graphite);padding:26px;background:var(--stone);transition:background .15s ease;}
.svc:hover{background:var(--stone-2);}
.svc h3{font-size:21px;font-variation-settings:"opsz" 24;margin-bottom:8px;}
.svc p{margin:0;font-size:16px;color:var(--graphite-2);}

.doc{background:var(--stone-2);}
.doc-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,64px);align-items:center;}
.doc img.portrait{border:2px solid var(--graphite);width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;}
.cutout-bg{background:linear-gradient(168deg,#4A89AA 0%,var(--lake) 52%,var(--lake-dark) 100%);}
/* alternate Jason liked, kept for easy swap:
.cutout-bg{background:url("images/office-blur.jpg") center/cover no-repeat;} */
.pull{font-family:var(--display);font-weight:700;font-size:clamp(22px,3vw,32px);line-height:1.18;letter-spacing:-.025em;margin:26px 0 0;}
.pull span{background:var(--gold);padding:0 6px;}

/* As-seen-on media card */
.seen{display:flex;gap:20px;align-items:center;margin-top:30px;flex-wrap:wrap;}
.seen img{width:min(240px,100%);border:2px solid var(--graphite);}
.seen p{margin:0;font-size:15px;font-weight:600;color:var(--graphite-2);max-width:30ch;}

.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,54px);margin-top:34px;}
table.hrs{width:100%;border-collapse:collapse;}
table.hrs caption{text-align:left;font-size:12.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--lake);padding-bottom:12px;}
table.hrs td{padding:11px 0;border-top:1px solid var(--rule);font-size:16.5px;font-weight:500;}
table.hrs td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--graphite-2);}
.addrbox{border:2px solid var(--graphite);padding:26px;background:var(--stone);}
.addrbox strong{font-family:var(--display);font-size:21px;font-weight:700;display:block;margin-bottom:6px;}

/* Timeline / credentials (The Practice) */
.cred-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;margin-top:40px;border-top:2px solid var(--graphite);border-left:2px solid var(--graphite);}
.cred{border-right:2px solid var(--graphite);border-bottom:2px solid var(--graphite);padding:26px;background:var(--stone);}
.cred h3{font-size:19px;font-variation-settings:"opsz" 24;margin-bottom:8px;}
.cred p{margin:0;font-size:16px;color:var(--graphite-2);}
.cred .k{font-family:var(--display);font-weight:800;font-size:34px;color:var(--lake);line-height:1;margin-bottom:10px;}

/* FORM (contact) */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px;}
.form-grid .full{grid-column:1/-1;}
label{display:block;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite-2);margin-bottom:8px;}
input,textarea{width:100%;font-family:var(--body);font-size:16.5px;padding:13px 14px;border:2px solid var(--graphite);background:#fff;color:var(--graphite);}
textarea{min-height:140px;resize:vertical;}
button.book{cursor:pointer;font-size:17px;}
.form-note{font-size:14.5px;color:var(--graphite-2);margin-top:14px;}

/* Google review links */
.gstars{margin:20px 0 0;font-size:15.5px;font-weight:600;}
.gstars a{text-decoration:none;}
.gstars a:hover{color:var(--lake);}
.gstars .stars{color:var(--gold);letter-spacing:2px;}
.gstars a.leave{margin-left:14px;font-size:14px;color:var(--graphite-2);border-bottom:2px solid var(--gold);white-space:nowrap;}
.gstars a.leave:hover{color:var(--lake);}
.cta .review-ask{margin:26px auto 0;font-size:15.5px;color:rgba(244,245,243,.75);}
.cta .review-ask a{color:var(--gold);text-decoration:none;border-bottom:2px solid var(--gold);}
.cta .review-ask a:hover{color:#fff;}

.cta{background:var(--graphite);color:var(--stone);text-align:center;padding:clamp(50px,7vw,96px) 0;}
.cta h2{color:#fff;}
.cta p{color:rgba(244,245,243,.76);max-width:46ch;margin:18px auto 32px;}
.cta .book{font-size:18px;padding:17px 34px;box-shadow:5px 5px 0 var(--gold);border-color:var(--stone);}
.cta .book:hover{box-shadow:2px 2px 0 var(--gold);}

footer{background:var(--graphite);color:rgba(244,245,243,.5);font-size:13.5px;line-height:1.65;text-align:center;padding:0 0 48px;}
footer .emerg{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--gold);margin:0 0 24px;padding-bottom:24px;border-bottom:2px solid rgba(244,245,243,.14);}
footer .social{display:flex;justify-content:center;flex-wrap:wrap;gap:26px;margin:0 0 24px;font-size:15px;font-weight:600;}
footer .social a{color:rgba(244,245,243,.85);text-decoration:none;border-bottom:2px solid var(--gold);}
footer .social a:hover{color:#fff;}
footer .legal{max-width:74ch;margin:0 auto;}
footer .legal strong{color:rgba(244,245,243,.8);font-weight:700;}

@media(max-width:920px){
  .hero-meta,.doc-grid,.visit-grid,.form-grid{grid-template-columns:1fr;}
  .heroimg{margin-top:22px;aspect-ratio:1/1;}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;}.book:hover{transform:none;}}

/* MacuMist aside (home) */
.mm-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,56px);align-items:center;border:2px solid var(--graphite);background:#fff;padding:clamp(24px,4vw,48px);}
.mm-img img{width:100%;max-width:380px;margin:0 auto;border:2px solid var(--graphite);}
.mm-note{font-size:13.5px;color:var(--graphite-2);margin:18px 0 0;}
.svc p a{font-weight:600;}
@media(max-width:920px){.mm-card{grid-template-columns:1fr;}}
