:root{
    --green:#1F4D3D; --green-deep:#163729; --green-soft:#2A6450;
    --ink:#282828; --gold:#B8941F; --gold-bright:#D4AE3A;
    --cream:#F6F1E6; --cream-2:#EFE7D6; --paper:#FBF8F1;
    --line:rgba(40,40,40,.14); --line-light:rgba(246,241,230,.18);
    --navy:#1C2E4A; --navy-deep:#14223A; --maxw:1180px; --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Hanken Grotesk",system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:500;line-height:1.1;letter-spacing:-.01em}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
  .eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:12px}
  .eyebrow::before{content:"";width:34px;height:1px;background:var(--gold);display:inline-block}
  .eyebrow.center{justify-content:center}
  .eyebrow.center::before{display:none}

  .btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:.98rem;padding:15px 28px;border-radius:2px;transition:all .25s var(--ease);cursor:pointer;border:1px solid transparent;letter-spacing:.01em}
  .btn-gold{background:var(--gold);color:var(--ink)}
  .btn-gold:hover{background:var(--gold-bright);transform:translateY(-2px);box-shadow:0 12px 30px -10px rgba(184,148,31,.6)}
  .btn-outline{border-color:var(--line-light);color:var(--cream)}
  .btn-outline:hover{border-color:var(--gold);color:var(--gold-bright)}
  .btn-ink{background:var(--green);color:var(--cream)}
  .btn-ink:hover{background:var(--green-deep);transform:translateY(-2px)}
  .btn .arrow{transition:transform .25s var(--ease)}
  .btn:hover .arrow{transform:translateX(4px)}

  /* nav */
  header{position:sticky;top:0;z-index:50;background:rgba(31,77,61,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-light)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:80px;gap:20px}
  .brand{display:flex;align-items:center;gap:13px;color:var(--cream)}
  .brand img{height:44px;width:auto}
  .brand .bt{display:flex;flex-direction:column;line-height:1}
  .brand .b1{font-family:"Fraunces",serif;font-size:1.12rem;font-weight:600;letter-spacing:.02em}
  .brand .b2{font-size:.58rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:5px}
  .nav-links{display:flex;align-items:center;gap:30px}
  .nav-links a.navlink{color:var(--cream);font-weight:500;font-size:.93rem;position:relative;opacity:.92;transition:opacity .2s}
  .nav-links a.navlink::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:width .28s var(--ease)}
  .nav-links a.navlink:hover{opacity:1}
  .nav-links a.navlink:hover::after{width:100%}
  .nav-book{background:var(--gold);color:var(--ink);font-weight:700;font-size:.82rem;letter-spacing:.04em;padding:11px 18px;border-radius:2px;transition:.25s}
  .nav-book:hover{background:var(--gold-bright);transform:translateY(-1px)}
  .menu-btn{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
  .menu-btn span{width:24px;height:2px;background:var(--cream);display:block;transition:.3s}

  /* hero */
  .hero{position:relative;background:var(--green);color:var(--cream);overflow:hidden}
  /* optional hero background photo: set --hero-photo on the section; green overlay keeps text legible */
  .hero.hero-photo{background-image:var(--hero-photo);background-size:cover;background-position:center;background-repeat:no-repeat}
  .hero.hero-photo::before{opacity:1;mix-blend-mode:normal;background:linear-gradient(180deg,rgba(20,46,37,.72),rgba(17,38,30,.86))}
  .hero::before{content:"";position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
  .hero::after{content:"";position:absolute;top:-30%;right:-10%;width:60%;height:120%;pointer-events:none;background:radial-gradient(circle,rgba(184,148,31,.18),transparent 62%)}
  .hero-inner{position:relative;padding:90px 0 100px;max-width:900px}
  .hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);margin:24px 0 0}
  .hero h1 em{font-style:italic;color:var(--gold-bright);font-weight:400}
  .hero .kicker{font-family:"Fraunces",serif;font-style:italic;font-size:clamp(1.2rem,2.2vw,1.7rem);color:rgba(246,241,230,.9);margin-top:18px}
  .hero .lede{font-size:clamp(1.04rem,1.6vw,1.22rem);max-width:620px;margin:22px 0 36px;color:rgba(246,241,230,.84)}
  .hero-cta{display:flex;flex-wrap:wrap;gap:16px}

  /* tpi strip */
  .tpi{background:var(--green-deep);color:var(--cream);padding:34px 0;border-top:1px solid var(--line-light)}
  .tpi-inner{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap}
  .tpi-label{font-size:.76rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-bright);max-width:200px;line-height:1.5}
  .tpi-badges{display:flex;gap:40px;flex-wrap:wrap;align-items:center;justify-content:center}
  .tpi-badge{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
  .tpi-badge img{height:74px;width:auto}
  .tpi-badge span{font-size:.72rem;letter-spacing:.06em;color:rgba(246,241,230,.78);font-weight:600}

  /* certifications strip — official badges on a light ground */
  .creds-strip{background:#fff;padding:40px 0;border-top:1px solid var(--line)}
  .creds-strip .wrap{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
  .creds-cap{font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--green-deep)}
  .creds-row{display:flex;gap:42px;flex-wrap:wrap;align-items:center;justify-content:center}
  .creds-row img{height:64px;width:auto}
  .creds-note{font-size:.82rem;color:#5a5a5a;max-width:580px;line-height:1.6;margin:0}

  section{padding:clamp(68px,8.5vw,112px) 0}
  .sec-head{max-width:700px;margin-bottom:50px}
  .sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
  .sec-head h2{font-size:clamp(2rem,4vw,3rem);margin:18px 0 0}
  .sec-head p{margin-top:18px;font-size:1.08rem;color:rgba(40,40,40,.72)}

  /* approach */
  .philo{background:var(--paper)}
  .philo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}
  .philo-item{background:var(--paper);padding:38px 36px;transition:background .3s}
  .philo-item:hover{background:var(--cream-2)}
  .philo-item .num{font-family:"Fraunces",serif;font-size:1.25rem;color:var(--gold);font-weight:600}
  .philo-item h3{font-size:1.28rem;margin:12px 0 10px;color:var(--green)}
  .philo-item p{color:rgba(40,40,40,.74);font-size:1rem}

  /* services */
  .services{background:var(--cream)}
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .svc-card{background:var(--paper);border:1px solid var(--line);padding:34px 30px;border-radius:3px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;position:relative;overflow:hidden;display:flex;flex-direction:column}
  .svc-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
  .svc-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(31,77,61,.45);border-color:transparent}
  .svc-card:hover::before{transform:scaleX(1)}
  .svc-card h3{font-size:1.3rem;color:var(--green);margin-bottom:6px}
  .svc-card .kick{font-family:"Fraunces",serif;font-style:italic;color:var(--gold);font-size:1.02rem;margin-bottom:18px}
  .svc-card ul{list-style:none;margin-bottom:22px}
  .svc-card li{display:flex;gap:11px;padding:7px 0;font-size:.97rem;color:rgba(40,40,40,.8)}
  .svc-card li::before{content:"";width:7px;height:7px;background:var(--gold);border-radius:50%;flex-shrink:0;margin-top:8px}
  .svc-card .more{margin-top:auto;font-weight:600;color:var(--green);font-size:.95rem;display:inline-flex;gap:8px;align-items:center;transition:gap .25s}
  .svc-card .more:hover{gap:13px;color:var(--gold)}

  /* golf */
  .golf{background:var(--green-deep);color:var(--cream);position:relative;overflow:hidden}
  .golf::after{content:"";position:absolute;bottom:-40%;left:-8%;width:50%;height:140%;background:radial-gradient(circle,rgba(184,148,31,.15),transparent 60%);pointer-events:none}
  .golf-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;position:relative}
  .golf h2{font-size:clamp(2rem,4vw,3rem);margin:20px 0 22px}
  .golf h2 em{font-style:italic;color:var(--gold-bright);font-weight:400}
  .golf p{color:rgba(246,241,230,.84);font-size:1.05rem;margin-bottom:18px}
  .golf .panel{background:rgba(246,241,230,.05);border:1px solid var(--line-light);border-radius:4px;padding:36px}
  .golf .panel h3{font-size:.82rem;letter-spacing:.06em;color:var(--gold-bright);margin-bottom:20px;font-family:"Hanken Grotesk",sans-serif;font-weight:700;text-transform:uppercase}
  .checklist{list-style:none}
  .checklist li{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--line-light);font-size:1rem}
  .checklist li:last-child{border-bottom:0}
  .checklist .ck{color:var(--gold-bright);flex-shrink:0;margin-top:3px;font-weight:700}

  /* conditions */
  .cond{background:var(--paper)}
  .cond-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px}
  .cond-col{background:var(--cream);border:1px solid var(--line);border-radius:3px;padding:30px 26px}
  .cond-col h3{font-size:1.12rem;color:var(--green);padding-bottom:14px;margin-bottom:14px;border-bottom:2px solid var(--gold)}
  .cond-col ul{list-style:none}
  .cond-col li{font-size:.95rem;color:rgba(40,40,40,.78);padding:6px 0}

  /* about */
  .about{background:var(--cream)}
  .about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
  .about-card{background:var(--green);color:var(--cream);border-radius:4px;padding:48px 42px}
  .about-card .mono{font-family:"Fraunces",serif;font-style:italic;font-size:1.6rem;line-height:1.32}
  .about-card .mono span{color:var(--gold-bright)}
  .about-card .sig{margin-top:28px;border-top:1px solid var(--line-light);padding-top:20px}
  .about-card .sig b{display:block;font-family:"Fraunces",serif;font-size:1.15rem}
  .about-card .sig span{font-size:.84rem;color:rgba(246,241,230,.7)}
  .about-body h2{font-size:clamp(1.9rem,3.5vw,2.7rem);color:var(--green);margin:18px 0 22px}
  .about-body p{font-size:1.05rem;color:rgba(40,40,40,.78);margin-bottom:16px}
  .about-body .creds-line{font-size:.86rem;letter-spacing:.04em;color:var(--gold);font-weight:600;margin:6px 0 22px}

  /* cta band */
  .cta-band{background:var(--gold);color:var(--ink);text-align:center}
  .cta-band h2{font-size:clamp(2rem,4.5vw,3.1rem);color:var(--green-deep)}
  .cta-band p{font-size:1.14rem;margin:16px auto 32px;max-width:560px;color:rgba(40,40,40,.82)}

  /* contact */
  .contact{background:var(--green);color:var(--cream)}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
  .contact h2{font-size:clamp(2rem,4vw,2.8rem);margin:18px 0 24px}
  .contact .lede{color:rgba(246,241,230,.84);font-size:1.05rem;margin-bottom:30px;max-width:440px}
  .info-row{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line-light);align-items:flex-start}
  .info-row:last-child{border-bottom:1px solid var(--line-light)}
  .info-row .ic{color:var(--gold-bright);flex-shrink:0;margin-top:2px;font-size:1.1rem}
  .info-row .lbl{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(246,241,230,.6);margin-bottom:3px}
  .info-row .val{font-size:1.06rem;font-weight:500}
  .info-row .val a:hover{color:var(--gold-bright)}
  .contact-cta{background:rgba(246,241,230,.05);border:1px solid var(--line-light);border-radius:4px;padding:40px}
  .contact-cta h3{font-family:"Fraunces",serif;font-size:1.5rem;margin-bottom:12px}
  .contact-cta p{color:rgba(246,241,230,.78);margin-bottom:24px}
  .cashnote{margin-top:20px;font-size:.92rem;color:rgba(246,241,230,.66)}
  .cashnote b{color:var(--gold-bright);font-weight:600}

  /* footer */
  footer{background:var(--navy-deep);color:rgba(246,241,230,.7);padding:56px 0 32px}
  .foot-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px;padding-bottom:32px;border-bottom:1px solid var(--line-light)}
  .foot-brand img{height:60px;width:auto;margin-bottom:16px}
  .foot-brand p{font-size:.92rem;max-width:240px}
  .foot-col h4{color:var(--cream);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;font-family:"Hanken Grotesk",sans-serif;font-weight:700}
  .foot-col a,.foot-col p{display:block;font-size:.93rem;padding:5px 0;transition:color .2s}
  .foot-col a:hover{color:var(--gold-bright)}
  .socials{display:flex;gap:14px;margin-top:14px}
  .socials a{width:38px;height:38px;border:1px solid var(--line-light);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--cream);font-size:.8rem;font-weight:700;transition:.25s}
  .socials a:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
  .foot-bottom{padding-top:24px;font-size:.82rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

  .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .reveal.in{opacity:1;transform:none}
  .reveal-load{opacity:0;transform:translateY(22px);animation:rise .9s var(--ease) forwards}
  @keyframes rise{to{opacity:1;transform:none}}
  .d1{animation-delay:.05s}.d2{animation-delay:.18s}.d3{animation-delay:.31s}.d4{animation-delay:.44s}.d5{animation-delay:.57s}

  @media (max-width:980px){
    .nav-links{display:none}
    .menu-btn{display:flex}
    .nav-links.open{display:flex;position:absolute;top:80px;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--green-deep);padding:24px 28px;gap:18px;border-bottom:1px solid var(--line-light)}
    .philo-grid{grid-template-columns:1fr}
    .svc-grid{grid-template-columns:1fr}
    .cond-grid{grid-template-columns:repeat(2,1fr)}
    .golf-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
    .foot-cols{grid-template-columns:1fr 1fr}
    .tpi-inner{gap:28px}
  }
  @media (max-width:560px){
    .wrap{padding:0 20px}
    .cond-grid{grid-template-columns:1fr}
    .foot-cols{grid-template-columns:1fr}
    .hero-cta{flex-direction:column;align-items:stretch}
    .hero-cta .btn{justify-content:center}
    .tpi-badge img{height:62px}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ============ Golf Evaluation page ============ */
.cred-line{margin-top:26px;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,241,230,.75);font-weight:600}
.cred-line b{color:var(--gold-bright)}
.followup{margin-top:14px;font-size:.92rem;color:rgba(246,241,230,.68)}

.feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.feat{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:28px 26px}
.feat h3{font-size:1.12rem;color:var(--green);margin-bottom:8px;display:flex;gap:11px;align-items:baseline}
.feat h3::before{content:"";width:9px;height:9px;background:var(--gold);border-radius:50%;flex-shrink:0;transform:translateY(-2px)}
.feat p{font-size:.97rem;color:rgba(40,40,40,.74)}
.note-line{margin-top:30px;font-family:"Fraunces",serif;font-style:italic;color:var(--green);font-size:1.12rem}

/* ===== Treatment gallery ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:6px}
.gallery-grid figure{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.gallery-grid img{display:block;width:100%;height:260px;object-fit:cover;background:var(--green-deep)}
.gallery-grid figcaption{padding:15px 17px;font-size:1rem;color:var(--green);font-weight:600;line-height:1.3}
.gallery-grid figcaption span{display:block;font-weight:400;font-size:.88rem;color:rgba(40,40,40,.66);margin-top:4px}
@media(max-width:820px){.gallery-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.gallery-grid{grid-template-columns:1fr}.gallery-grid img{height:230px}}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.step{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:32px 28px}
.step .sn{font-family:"Fraunces",serif;font-size:2.4rem;color:var(--gold);line-height:1;font-weight:600}
.step h3{font-size:1.16rem;color:var(--green);margin:12px 0 8px}
.step p{font-size:.95rem;color:rgba(40,40,40,.74)}
.step .time{display:block;margin-top:14px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700}

.statement{background:var(--navy);color:var(--cream);text-align:center}
.statement .wrap{max-width:780px}
.statement p{font-family:"Fraunces",serif;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.3;font-style:italic}
.statement p span{color:var(--gold-bright)}
.statement small{display:block;margin-top:20px;font-family:"Hanken Grotesk",sans-serif;font-style:normal;font-size:1.02rem;color:rgba(246,241,230,.82);line-height:1.6}

.docphoto img{border-radius:4px;width:100%;object-fit:cover;aspect-ratio:4/5;border:1px solid var(--line)}

.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.quote{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:3px;padding:32px 30px}
.quote p{font-size:1.02rem;color:rgba(40,40,40,.82);font-style:italic;margin-bottom:16px}
.quote .who{font-weight:700;color:var(--green);font-size:.9rem;font-style:normal;letter-spacing:.02em}

.guide-band{background:var(--cream-2);text-align:center}
.guide-band .wrap{max-width:640px}
.guide-band p{font-size:1.06rem;color:rgba(40,40,40,.76);margin:14px 0 24px}

.lead-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lead-form .full{grid-column:1/-1}
.lead-form label{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(246,241,230,.72);margin-bottom:6px;font-weight:600}
.lead-form input,.lead-form textarea{width:100%;background:rgba(246,241,230,.06);border:1px solid var(--line-light);border-radius:3px;padding:13px 14px;color:var(--cream);font-family:inherit;font-size:1rem}
.lead-form input::placeholder,.lead-form textarea::placeholder{color:rgba(246,241,230,.4)}
.lead-form input:focus,.lead-form textarea:focus{outline:none;border-color:var(--gold)}
.lead-form textarea{min-height:120px;resize:vertical}

@media (max-width:760px){
  .feat-grid,.steps,.quotes,.lead-form{grid-template-columns:1fr}
}

/* ---- Services hub: modality library ---- */
.mod-group{font-size:1.5rem;color:var(--green);margin:48px 0 6px;padding-top:14px;border-top:1px solid var(--line)}
.mod-group:first-of-type{margin-top:8px;border-top:0;padding-top:0}
.mod-lead{max-width:680px;color:rgba(40,40,40,.72);font-size:1.02rem;margin-bottom:26px}
.feat[id]{scroll-margin-top:104px}
.inline-link{color:var(--green);font-weight:600;border-bottom:1px solid var(--gold);transition:color .2s}
.inline-link:hover{color:var(--gold)}

/* ---- Mid-page CTA + intro band (service pages) ---- */
.midcta{text-align:center;padding-top:8px}
.intro-band{background:var(--paper)}
.intro-narrow{max-width:680px}
.intro-narrow h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--green);margin:18px 0 20px}
.intro-narrow p{font-size:1.08rem;color:rgba(40,40,40,.78);margin-bottom:16px}

/* ---- Thin related-services strip ---- */
.strip{background:var(--green);color:var(--cream)}
.strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.strip p{font-size:1.06rem;max-width:640px;color:rgba(246,241,230,.9)}
.strip p b{color:var(--gold-bright);font-weight:600}
.strip .btn{flex-shrink:0}
@media (max-width:680px){.strip .wrap{flex-direction:column;align-items:flex-start}.strip .btn{width:100%;justify-content:center}}

/* ---- Big final statement CTA ---- */
.cta-band .big-statement{display:block}
.cta-band .sub{font-family:"Hanken Grotesk",sans-serif;font-size:1.18rem;font-style:normal}

/* ============ Recommended products ============ */
.disclosure{max-width:760px;margin:0 auto;font-size:.9rem;color:rgba(40,40,40,.6);border:1px solid var(--line);border-radius:4px;padding:14px 18px;background:var(--paper)}
.prod-group{font-size:1.5rem;color:var(--green);margin:46px 0 6px;padding-top:14px;border-top:1px solid var(--line)}
.prod-group:first-of-type{margin-top:8px;border-top:0;padding-top:0}
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:22px}
.prod-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.prod-card:hover{transform:translateY(-5px);box-shadow:0 22px 46px -28px rgba(31,77,61,.45)}
.prod-card .pimg{aspect-ratio:1/1;width:100%;object-fit:cover;background:#fff;border-bottom:1px solid var(--line)}
.prod-card .pc-in{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.prod-card h3{font-size:1.12rem;color:var(--green);margin-bottom:10px;line-height:1.25}
.prod-card .pmeta{font-size:.92rem;color:rgba(40,40,40,.78);margin-bottom:10px}
.prod-card .pmeta b{color:var(--ink)}
.prod-card ul{list-style:none;margin:0 0 12px;padding:0}
.prod-card li{position:relative;padding-left:18px;font-size:.9rem;color:rgba(40,40,40,.74);margin-bottom:5px}
.prod-card li::before{content:"";position:absolute;left:3px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.prod-card .btn{margin-top:auto;width:100%;justify-content:center;padding:11px 18px;font-size:.92rem}
@media (max-width:880px){.prod-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.prod-grid{grid-template-columns:1fr}}

/* ============ 404 ============ */
.notfound{background:var(--green);color:var(--cream);min-height:62vh;display:flex;align-items:center}
.notfound .wrap{max-width:640px;text-align:center}
.notfound .code{font-family:"Fraunces",serif;font-size:clamp(4rem,12vw,7rem);color:var(--gold-bright);line-height:1;font-weight:600}
.notfound h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:10px 0 16px}
.notfound p{color:rgba(246,241,230,.85);font-size:1.08rem;margin-bottom:28px}
.notfound .links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* ============ Blog index ============ */
.blog-head{background:var(--green);color:var(--cream)}
.blog-head .hero-inner{padding:74px 0 64px}
.blog-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.blog-filters button{font-family:inherit;font-size:.86rem;font-weight:600;letter-spacing:.04em;padding:9px 18px;border-radius:2px;border:1px solid var(--line);background:transparent;color:var(--green);cursor:pointer;transition:.2s}
.blog-filters button:hover{border-color:var(--gold);color:var(--gold)}
.blog-filters button.active{background:var(--green);color:var(--cream);border-color:var(--green)}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.post-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.post-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(31,77,61,.45)}
.post-card .thumb{aspect-ratio:4/3;width:100%;object-fit:cover;background:var(--cream-2);border-bottom:1px solid var(--line)}
.post-card .pc-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.post-card .cat{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.post-card h3{font-size:1.18rem;color:var(--green);margin:10px 0 10px;line-height:1.25}
.post-card p{font-size:.95rem;color:rgba(40,40,40,.74);margin-bottom:16px;flex:1}
.post-card .meta{font-size:.8rem;color:rgba(40,40,40,.55);display:flex;gap:10px;align-items:center}
.post-card .more{margin-top:14px;font-weight:600;color:var(--green);font-size:.92rem}
.post-card:hover .more{color:var(--gold)}

/* Draft preview banner (private, never indexed) */
.draft-banner{max-width:720px;margin:18px auto 0;background:var(--gold);color:var(--ink);border-radius:4px;padding:12px 18px;font-size:.92rem;line-height:1.5}
.draft-banner strong{font-weight:700}

/* ============ Blog post (article) ============ */
.post-hero{background:var(--green);color:var(--cream)}
.post-hero .wrap{max-width:820px;padding-top:66px;padding-bottom:54px}
.post-hero .cat{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright)}
.post-hero h1{font-size:clamp(2rem,4.4vw,3.1rem);margin:16px 0 18px;line-height:1.12}
.post-hero .byline{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:.9rem;color:rgba(246,241,230,.82)}
.post-hero .byline b{color:var(--cream);font-weight:600}
.post-hero .byline .dot{opacity:.5}
.article{background:var(--cream)}
.article .wrap{max-width:720px}
.post-body{font-size:1.1rem;line-height:1.75;color:#33322f}
.post-body>p{margin:0 0 22px}
.post-body h2{font-size:clamp(1.6rem,3vw,2.1rem);color:var(--green);margin:42px 0 14px;line-height:1.2}
.post-body h3{font-size:1.3rem;color:var(--green);margin:30px 0 10px}
.post-body strong{font-weight:700;color:var(--ink)}
.post-body a{color:var(--green);font-weight:600;border-bottom:1px solid var(--gold);transition:color .2s}
.post-body a:hover{color:var(--gold)}
.post-body em{font-style:italic}
.post-body ul,.post-body ol{margin:0 0 22px;padding-left:4px;list-style:none}
.post-body ol{counter-reset:li}
.post-body ul li,.post-body ol li{position:relative;padding-left:30px;margin-bottom:12px}
.post-body ul li::before{content:"";position:absolute;left:6px;top:11px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.post-body ol li{counter-increment:li}
.post-body ol li::before{content:counter(li);position:absolute;left:0;top:1px;font-family:"Fraunces",serif;font-weight:600;color:var(--gold);font-size:1rem}
.post-body figure{margin:30px 0}
.post-body figure img{width:100%;border-radius:4px;border:1px solid var(--line)}
.post-body figcaption{font-size:.85rem;color:rgba(40,40,40,.6);margin-top:8px;text-align:center}
.video-embed{position:relative;padding-bottom:56.25%;height:0;margin:30px 0;border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.post-body table{width:100%;border-collapse:collapse;margin:26px 0;font-size:.96rem}
.post-body th,.post-body td{text-align:left;padding:12px 14px;border:1px solid var(--line);vertical-align:top}
.post-body thead th{background:var(--green);color:var(--cream);font-family:"Hanken Grotesk",sans-serif;font-weight:600;letter-spacing:.02em}
.post-body tbody tr:nth-child(even){background:var(--paper)}
.post-cta{margin:40px 0 8px;padding:32px 30px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:4px}
.post-cta p{font-size:1.05rem;margin-bottom:18px;color:rgba(40,40,40,.82)}
.author-box{display:flex;gap:20px;align-items:flex-start;margin-top:50px;padding-top:30px;border-top:1px solid var(--line)}
.author-box img{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--line)}
.author-box .ab-name{font-family:"Fraunces",serif;font-size:1.15rem;color:var(--green)}
.author-box .ab-role{font-size:.82rem;letter-spacing:.04em;color:var(--gold);font-weight:600;margin:2px 0 8px}
.author-box p{font-size:.95rem;color:rgba(40,40,40,.74);line-height:1.6}
.related{background:var(--paper)}
.related .rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.related a.rel-card{background:var(--cream);border:1px solid var(--line);border-radius:4px;padding:24px;transition:.3s}
.related a.rel-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -26px rgba(31,77,61,.4)}
.related .cat{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.related h3{font-size:1.05rem;color:var(--green);margin-top:8px;line-height:1.3}
@media (max-width:880px){.post-grid,.related .rel-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.post-grid,.related .rel-grid{grid-template-columns:1fr}}

/* ---- Contact page ---- */
.lead-form select{width:100%;background:rgba(246,241,230,.06);border:1px solid var(--line-light);border-radius:3px;padding:13px 14px;color:var(--cream);font-family:inherit;font-size:1rem;-webkit-appearance:none;appearance:none;cursor:pointer}
.lead-form select:focus{outline:none;border-color:var(--gold)}
.lead-form select option{color:var(--ink)}
.book-card{background:rgba(246,241,230,.05);border:1px solid var(--line-light);border-radius:4px;padding:36px;margin-bottom:24px;text-align:center}
.book-card h3{font-family:"Fraunces",serif;font-size:1.5rem;margin-bottom:10px}
.book-card p{color:rgba(246,241,230,.78);margin-bottom:22px}
.map{padding-top:0}
.map iframe{width:100%;height:420px;border:0;display:block;filter:saturate(.9)}
.qa{max-width:780px;margin:0 auto}
.qa details{border-bottom:1px solid var(--line);padding:6px 0}
.qa summary{cursor:pointer;list-style:none;padding:18px 4px;font-family:"Fraunces",serif;font-size:1.15rem;color:var(--green);display:flex;justify-content:space-between;align-items:center;gap:16px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";color:var(--gold);font-size:1.5rem;font-family:"Hanken Grotesk",sans-serif;line-height:1;transition:transform .25s var(--ease)}
.qa details[open] summary::after{content:"\2212"}
.qa details p{padding:0 4px 20px;color:rgba(40,40,40,.78);font-size:1.02rem;max-width:680px}

/* ---- Footer newsletter ---- */
.foot-news{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid var(--line-light)}
.foot-news h4{color:var(--cream);font-family:"Fraunces",serif;font-size:1.3rem;font-weight:500;margin-bottom:6px}
.foot-news p{font-size:.92rem;max-width:380px}
.news-form{display:flex;gap:10px;flex-wrap:wrap}
.news-form input{background:rgba(246,241,230,.06);border:1px solid var(--line-light);border-radius:3px;padding:13px 15px;color:var(--cream);font-family:inherit;font-size:.98rem;min-width:240px}
.news-form input::placeholder{color:rgba(246,241,230,.45)}
.news-form input:focus{outline:none;border-color:var(--gold)}
.news-form .btn{padding:13px 22px}
@media (max-width:600px){.news-form,.news-form input{width:100%}}

/* Form submission feedback (Formspree progressive enhancement) — forms sit on dark sections (green / navy), so text is light */
.form-success{background:rgba(246,241,230,.06);border:1px solid rgba(184,148,31,.55);color:#fff;padding:18px 22px;border-radius:4px;font-weight:600;line-height:1.5}
.form-error{margin-top:12px;color:#ffb4ab;font-size:.95rem;font-weight:600}
/* center the success message vertically within the golf-page inquiry card */
.contact-cta:has(.form-success){display:flex;align-items:center;justify-content:center;text-align:center}
/* blog CTA: secondary "call or email" line under the Book button */
.cta-contact{margin:16px 0 0;font-size:.92rem;color:rgba(40,40,40,.7)}
.cta-contact a{color:var(--green);font-weight:600;text-decoration:underline}

/* Services dropdown in the nav */
.nav-dd{position:relative;display:inline-flex;align-items:center}
.nav-dd > .navlink{display:inline-flex;align-items:center;gap:5px}
.dd-caret{font-size:.62em;opacity:.65;transition:transform .2s var(--ease)}
.nav-dd:hover .dd-caret,.nav-dd:focus-within .dd-caret{transform:rotate(180deg);opacity:1}
.dd-menu{position:absolute;top:100%;left:0;margin-top:14px;min-width:240px;display:none;flex-direction:column;background:rgba(31,77,61,.98);border:1px solid var(--line-light);border-radius:4px;padding:8px 0;box-shadow:0 14px 34px rgba(0,0,0,.28);z-index:60}
.nav-dd:hover .dd-menu,.nav-dd:focus-within .dd-menu{display:flex}
.dd-menu a{color:var(--cream);font-size:.9rem;font-weight:500;padding:10px 20px;opacity:.9;white-space:nowrap;transition:.18s}
.dd-menu a:hover{opacity:1;background:rgba(246,241,230,.06);color:var(--gold-bright)}
.nav-dd::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px}
@media (max-width:980px){
  .nav-dd{display:block;width:100%}
  .nav-dd > .navlink{width:100%}
  .nav-dd::after{display:none}
  .dd-menu{position:static;display:flex;margin:8px 0 0;padding:4px 0 0 16px;min-width:0;background:transparent;border:none;box-shadow:none;border-left:1px solid var(--line-light)}
  .dd-menu a{padding:7px 0;opacity:.85}
}

/* product card: muted note when there's no buy link */
.pc-note{font-size:.86rem;color:rgba(40,40,40,.6);margin-top:8px;line-height:1.45}

/* small helper text under a form field (e.g. "no medical details") */
.form-hint{font-size:.82rem;color:rgba(246,241,230,.6);margin-top:6px;line-height:1.45}

/* footer bottom-bar links (e.g. Privacy Policy) */
.foot-bottom a{color:inherit;text-decoration:underline;opacity:.85;transition:.2s}
.foot-bottom a:hover{opacity:1;color:var(--gold-bright)}
