/* ==========================================================================
   HC design system.
   Translated from the four approved mockups. Values are taken from the
   mockups verbatim; nothing here is an improvement on the design.
   ========================================================================== */

:root{
  --charcoal:#262626;
  --sage:#93A384;
  --sage-dark:#7d8e6f;
  --moss:#4F5B45;
  --moss-dark:#3f4a37;
  --lightsage:#E9F2C9;
  --gray:#bebebe;
  --heading:#262626;
  --body:#5f6560;
  --muted:#9aa09a;
  --cream:#f6f5ef;
  --cream2:#f1efe6;
  --white:#ffffff;
  --line:#e7e6dd;
  --shadow:0 24px 55px -24px rgba(38,38,38,.35);
  --shadow-sm:0 12px 30px -16px rgba(38,38,38,.3);
  --radius:16px;
}

/* --- reset / base ------------------------------------------------------ */
html{scroll-behavior:smooth}
body{font-family:'Jost',system-ui,sans-serif;color:var(--body);background:var(--white);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body h1,body h2,body h3,body h4{font-family:'Jost',sans-serif;color:var(--heading);font-weight:700;line-height:1.12;letter-spacing:-.015em}
body a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
.wrap{width:min(1180px,92%);margin-inline:auto}
.sec-pad{padding:100px 0}
.eyebrow{font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-dark);display:block}

/* skip link */
.hc-skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--moss);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 8px 0}
.hc-skip:focus{left:0}

/* --- buttons ------------------------------------------------------------
   Written at (0,2,1) via a.btn so the Elementor kit's .elementor-kit-N a
   rule (0,1,1) cannot win. Same trap as the Diamond Dental build.        */
a.btn,button.btn{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;font-family:'Jost',sans-serif;font-weight:600;font-size:.98rem;padding:.92rem 1.9rem;border-radius:8px;transition:.25s ease;cursor:pointer;border:none;line-height:1.2}
a.btn.btn-moss,button.btn.btn-moss{background:var(--moss);color:#fff}
a.btn.btn-moss:hover,button.btn.btn-moss:hover{background:var(--moss-dark);color:#fff;transform:translateY(-2px)}
a.btn.btn-sage,button.btn.btn-sage{background:var(--sage);color:#fff}
a.btn.btn-sage:hover,button.btn.btn-sage:hover{background:var(--sage-dark);color:#fff;transform:translateY(-2px)}
a.btn.btn-link svg{width:18px;height:18px;flex:0 0 18px}
a.btn.btn-link{background:transparent;color:var(--heading);padding-left:.4rem;padding-right:.4rem}
a.btn.btn-link:hover{color:var(--moss)}
a.btn.btn-white,button.btn.btn-white{background:#fff;color:var(--moss)}
a.btn.btn-white:hover{color:var(--moss-dark);transform:translateY(-2px)}
a.btn.btn-outline-w{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
a.btn.btn-outline-w:hover{background:rgba(255,255,255,.12);color:#fff}

/* --- top bar ----------------------------------------------------------- */
.topbar{background:var(--charcoal);color:#c9ccc4;font-size:.85rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:40px;gap:1rem}
.topbar a{color:#c9ccc4}
.topbar a:hover{color:var(--lightsage)}
.topbar .l{display:flex;gap:1.6rem;align-items:center}
.topbar .r{display:flex;gap:1.2rem;align-items:center}
.topbar svg{width:14px;height:14px;vertical-align:-2px;margin-right:.35rem;stroke:var(--sage);fill:none;display:inline-block}

/* --- header / nav ------------------------------------------------------ */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;flex:0 0 auto}
.brand-logo{height:66px;width:auto;display:block}
.brand .mark{width:46px;height:46px;flex:0 0 46px;border-radius:12px;background:var(--moss);display:grid;place-items:center}
.brand .mark svg{width:26px;height:26px;stroke:var(--lightsage);fill:none}
.brand .txt strong{display:block;font-weight:700;color:var(--heading);font-size:1.05rem;letter-spacing:-.01em;line-height:1.05}
.brand .txt span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-dark);font-weight:600}

nav.main ul{list-style:none;display:flex;gap:2.2rem;align-items:center;margin:0;padding:0}
nav.main li{position:relative}
nav.main a{font-weight:500;color:var(--heading);font-size:1rem;display:inline-flex;align-items:center}
nav.main > ul > li > a{padding:.4rem 0}
nav.main a:hover{color:var(--moss)}
nav.main .current-menu-item > a,nav.main .current-menu-ancestor > a{color:var(--moss);font-weight:600}

/* caret is its own button so the parent link still navigates */
nav.main .sub-toggle{background:none;border:none;padding:.2rem .25rem;margin-left:.35rem;cursor:pointer;line-height:0}
nav.main button.sub-toggle::after{content:"";display:inline-block;width:6px;height:6px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);vertical-align:2px;transition:.2s}
nav.main li:hover > .sub-toggle::after,nav.main li:focus-within > .sub-toggle::after{border-color:var(--moss);transform:rotate(-135deg)}

nav.main ul ul{position:absolute;top:100%;left:-1rem;display:grid;gap:0;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.6rem;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s ease;z-index:60}
nav.main li:hover > ul,nav.main li:focus-within > ul{opacity:1;visibility:visible;transform:translateY(0)}
nav.main ul ul li a{display:block;padding:.5rem .8rem;border-radius:8px;font-size:.95rem;width:100%}
nav.main ul ul li a:hover{background:var(--cream);color:var(--moss)}
/* two column mega panel for long lists */
nav.main li.mega > ul{display:grid;grid-template-columns:1fr 1fr;min-width:520px;left:-6rem}

.nav-r{display:flex;align-items:center;gap:1.1rem;flex:0 0 auto}
.socials-n{display:flex;gap:.6rem}
.socials-n a{width:34px;height:34px;border-radius:8px;background:var(--cream2);display:grid;place-items:center;transition:.2s}
.socials-n a:hover{background:var(--sage)}
.socials-n a:hover svg{stroke:#fff}
.socials-n svg{width:15px;height:15px;stroke:var(--moss);fill:none}

.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;padding:0;place-items:center}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:20px;height:2px;background:var(--heading);content:"";position:relative;transition:.2s}
.nav-toggle span::before{position:absolute;top:-6px}
.nav-toggle span::after{position:absolute;top:6px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

/* --- hero -------------------------------------------------------------- */
.hero{position:relative;overflow:visible;background:#2c332a}
.hero-slides{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.2s ease,transform 6s ease}
.hero-slide.active{opacity:1;transform:scale(1)}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(31,37,29,.88) 0%,rgba(31,37,29,.66) 45%,rgba(31,37,29,.3) 100%)}
.hero .wrap{position:relative;z-index:2;padding:130px 0 170px}
.hero-copy{max-width:640px}
.hero .eyebrow{color:var(--lightsage)}
.hero h1{font-size:3.9rem;font-weight:800;margin:1.1rem 0 1.3rem;color:#fff}
.hero h1 em{font-style:normal;color:var(--sage)}
.hero p.lead{font-size:1.15rem;max-width:44ch;margin-bottom:2rem;color:rgba(255,255,255,.85)}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.hero a.btn.btn-link{color:#fff}
.hero a.btn.btn-link:hover{color:var(--lightsage)}
.hero-arrows{position:absolute;z-index:3;bottom:34px;right:34px;display:flex;gap:.6rem}
.hero-arrows button.hero-arrow{width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:grid;place-items:center;transition:.2s;backdrop-filter:blur(4px);padding:0}
.hero-arrows button.hero-arrow:hover{background:var(--sage);border-color:var(--sage)}
.hero-arrows svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:2.2}
.hero-dots{position:absolute;z-index:3;bottom:calc(70px + 46px);left:50%;transform:translateX(-50%);display:flex;gap:.6rem}
.hero-dots button.hero-dot{width:11px;height:11px;border-radius:50%;border:none;background:rgba(255,255,255,.45);cursor:pointer;transition:.25s;padding:0}
.hero-dots button.hero-dot.active{background:var(--lightsage);width:30px;border-radius:6px}

/* help card overlapping the hero */
.helpcard{position:absolute;left:50%;transform:translateX(-50%);bottom:-70px;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:1.7rem 1.9rem;width:min(560px,90%);display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center;z-index:5}
.helpcard h2,.helpcard h3{font-size:1.35rem;margin-bottom:.35rem}
.helpcard p{font-size:.92rem;margin:0;color:var(--muted)}
.helpcard .dial{display:flex;align-items:center;gap:.9rem;border-left:1px solid var(--line);padding-left:1.5rem}
.helpcard .dial .ic{width:52px;height:52px;flex:0 0 52px;border-radius:12px;background:var(--moss);display:grid;place-items:center}
.helpcard .dial .ic svg{width:24px;height:24px;stroke:var(--lightsage);fill:none}
.helpcard .dial small{display:block;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.helpcard .dial b{font-family:'Jost';font-size:1.32rem;font-weight:700;color:var(--heading);line-height:1.1}

/* --- pagehead (inner pages) -------------------------------------------- */
.pagehead{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--cream) 0%,var(--cream2) 100%)}
.pagehead .wrap{position:relative;z-index:2;padding:92px 0}
.pagehead h1{font-size:3.4rem;font-weight:800;margin-bottom:.7rem;color:var(--charcoal)}
.pagehead p.lead{max-width:60ch;margin-top:.9rem}
.crumb{font-size:.92rem;color:var(--muted);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.crumb a{color:var(--sage-dark);font-weight:600}
.crumb svg{width:14px;height:14px;stroke:var(--muted);fill:none}

/* --- split (home "why us") --------------------------------------------- */
.split{padding:150px 0 100px}
.split .wrap{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.split-media{position:relative}
.split-media .photo{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);aspect-ratio:5/4.4;background-color:#cfd6c8;background-size:cover;background-position:center;border:8px solid #fff}
.split-media .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.statbar{position:absolute;left:50%;bottom:-40px;transform:translateX(-50%);background:#fff;border-radius:14px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(3,1fr);width:88%}
.statbar .s{padding:1.3rem .8rem;text-align:center;border-right:1px solid var(--line)}
.statbar .s:last-child{border-right:none}
.statbar .s b{display:block;font-family:'Jost';font-size:1.9rem;font-weight:800;color:var(--moss);line-height:1}
.statbar .s span{font-size:.78rem;color:var(--muted);margin-top:.3rem;display:block}
.split-copy h2{font-size:2.6rem;margin:.8rem 0 1.2rem}
.split-copy p{margin-bottom:1.8rem}

/* --- offer grid -------------------------------------------------------- */
.offer{background:var(--cream);padding:120px 0 100px}
.sec-head{text-align:center;max-width:640px;margin:0 auto 3.4rem}
.sec-head h2{font-size:2.6rem;margin:.7rem 0 1rem}
.sec-head .rule{width:60px;height:3px;background:var(--sage);margin:1rem auto 0;border-radius:2px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.25s ease;display:flex;flex-direction:column}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card .ph{position:relative;aspect-ratio:16/11;overflow:hidden;background-size:cover;background-position:center;background-color:#dfe3d8}
.card .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card .body{padding:1.7rem;display:flex;flex-direction:column;flex:1}
.card h3{font-size:1.32rem;margin-bottom:.55rem}
.card p{font-size:.95rem;margin-bottom:1.4rem}
.card a.btn{padding:.7rem 1.5rem;font-size:.92rem;margin-top:auto;align-self:flex-start}

/* icon cards: same block as the .feat component on the about page, used where
   a photograph would add nothing (the medical wellness set) */
.card .body > .ic{width:52px;height:52px;flex:0 0 52px;border-radius:12px;background:var(--moss);display:grid;place-items:center;margin-bottom:1.1rem}
.card .body > .ic svg{width:26px;height:26px;stroke:var(--lightsage);fill:none;stroke-width:1.8}
.card:hover .body > .ic{background:var(--sage-dark)}

/* mini cards */
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.8rem}
.mini-card{background:#fff;border-radius:14px;padding:1.5rem 1.4rem;box-shadow:var(--shadow-sm);display:flex;gap:1rem;align-items:flex-start;transition:.25s ease}
.mini-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.mini-card .ic{flex:0 0 44px;width:44px;height:44px;border-radius:10px;background:var(--lightsage);display:grid;place-items:center}
.mini-card .ic svg{width:20px;height:20px;stroke:var(--moss);fill:none;stroke-width:2}
.mini-card h3,.mini-card h4{font-size:1.03rem;margin-bottom:.3rem;color:var(--heading);font-weight:600}
.mini-card p{font-size:.86rem;color:var(--muted);margin:0}

/* --- sessions / checklist ---------------------------------------------- */
.sessions{background:var(--lightsage);padding:110px 0}
.sessions .wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:4rem;align-items:center}
.sessions h2{font-size:2.6rem;margin:.7rem 0 1.3rem}
.checklist{list-style:none;display:grid;gap:1.1rem;margin-top:1.6rem;padding:0}
.checklist li{display:flex;gap:1rem;align-items:flex-start}
.checklist li .ck{flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:var(--moss);display:grid;place-items:center;margin-top:2px}
.checklist li .ck svg{width:16px;height:16px;stroke:var(--lightsage);stroke-width:2.5;fill:none}
.checklist li b{color:var(--heading);font-weight:600;display:block;font-size:1.08rem}
.checklist li span.d{font-size:.92rem;color:var(--body)}
.sessions-media{position:relative}
.sessions-media .photo{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:5/4;background-color:#cfd6c8;background-size:cover;background-position:center}
.sessions-media .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.quotecard{position:absolute;left:-24px;bottom:-30px;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:1.4rem 1.5rem;max-width:320px}
.quotecard .stars{color:#e0a92e;letter-spacing:2px;margin-bottom:.5rem;font-size:.95rem}
.quotecard p{font-size:.92rem;color:var(--body);font-style:italic;margin-bottom:.7rem}
.quotecard b{font-size:.9rem;color:var(--heading)}

/* --- service page bands ------------------------------------------------ */
.svc{padding:92px 0}
.svc.alt{background:var(--cream)}
.svc .wrap{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.svc.rev .media{order:2}
.svc .media{position:relative}
.svc .media .ph{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:5/4.6;background-size:cover;background-position:center;background-color:#dfe3d8;box-shadow:var(--shadow-sm)}
.svc .media .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc .media .tag{position:absolute;left:-18px;bottom:-18px;background:var(--moss);color:#fff;border-radius:14px;padding:1rem 1.3rem;box-shadow:var(--shadow);display:flex;gap:.7rem;align-items:center;max-width:230px}
.svc .media .tag svg{width:30px;height:30px;stroke:var(--lightsage);fill:none;stroke-width:1.7;flex:0 0 30px}
.svc .media .tag b{font-family:'Jost';font-weight:600;font-size:.98rem;color:#fff;line-height:1.2}
.svc h2{font-size:2.5rem;margin:.7rem 0 1.2rem}
.svc h3{font-size:1.3rem;margin:1.6rem 0 .5rem}
.svc p{margin-bottom:1.1rem}
.svc .cta{margin-top:1.4rem}

/* callout (safety / contraindications) */
.callout{margin-top:1.6rem;background:#fff;border:1px solid var(--line);border-left:4px solid var(--sage);border-radius:12px;padding:1.4rem 1.5rem}
.callout h3,.callout h4{font-size:1.02rem;margin-bottom:.9rem;display:flex;gap:.55rem;align-items:center;color:var(--heading)}
.callout h3 svg,.callout h4 svg{width:20px;height:20px;stroke:var(--sage-dark);fill:none;stroke-width:2;flex:0 0 20px}
.callout ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:0;margin:0}
.callout li{font-size:.94rem;display:flex;gap:.5rem;align-items:center}
.callout li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage);flex:0 0 6px}

/* conditions / chips */
.cond{background:var(--lightsage);padding:92px 0;text-align:center}
.cond .head{max-width:720px;margin:0 auto 2.6rem}
.cond h2{font-size:2.5rem;margin:.7rem 0 1rem}
.chips{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;max-width:820px;margin:0 auto;list-style:none;padding:0}
.chip{background:#fff;border-radius:100px;padding:.75rem 1.6rem;font-weight:600;color:var(--moss);font-size:1rem;box-shadow:var(--shadow-sm);display:flex;gap:.55rem;align-items:center}
.chip svg{width:17px;height:17px;stroke:var(--sage-dark);fill:none;stroke-width:2;flex:0 0 17px}

/* benefits */
.benefits{padding:92px 0}
.benefits .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:center}
.benefits .media .ph{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/4.7;background-size:cover;background-position:center;background-color:#dfe3d8;box-shadow:var(--shadow-sm)}
.benefits .media .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.benefits h2{font-size:2.5rem;margin:.7rem 0 1rem}
.benefits .copy > p.lead{margin-bottom:1.8rem}
.bcards{display:grid;gap:1rem}
.bcard{background:var(--cream);border-radius:14px;padding:1.4rem 1.5rem;display:flex;gap:1.1rem;align-items:flex-start}
.bcard .ic{width:46px;height:46px;flex:0 0 46px;border-radius:12px;background:var(--moss);display:grid;place-items:center}
.bcard .ic svg{width:23px;height:23px;stroke:var(--lightsage);fill:none;stroke-width:1.8}
.bcard h3{font-size:1.14rem;margin-bottom:.25rem}
.bcard p{font-size:.94rem;margin:0}
.bcard .stat{color:var(--sage-dark);font-weight:700}

/* --- about page -------------------------------------------------------- */
.who{padding:100px 0}
.who .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:4rem;align-items:start}
.who-media{position:relative}
.who-media .photo{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5.6;background-color:#cfd6c8;background-size:cover;background-position:35% center;box-shadow:var(--shadow-sm)}
.who-media .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% center}
.who-media .qcard{position:absolute;top:34px;right:-26px;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:1.3rem 1.4rem;max-width:230px}
.who-media .qcard p{font-family:'Jost';font-style:italic;color:var(--heading);font-weight:500;font-size:1rem;line-height:1.35;margin-bottom:.6rem}
.who-media .qcard b{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-dark)}
.who h2{font-size:2.6rem;margin:.7rem 0 1.2rem}
.who p.intro{margin-bottom:1.8rem}
.valrow{border-top:1px solid var(--line);padding-top:1.5rem;margin-top:.4rem}
.val{margin-bottom:1.3rem}
.val h3{font-size:1.18rem;margin-bottom:.3rem;color:var(--heading)}
.val p{font-size:.96rem}
/* Centred values band on the About page. Its own full-width section rather
   than a tail on the who band's copy column, so it reads as deliberate rather
   than as text left over beside the photo. Paragraphs keep a readable measure
   even though the band is centred. */
.vals{padding:76px 0 88px;background:var(--cream);text-align:center}
.vals .wrap{max-width:860px}
.vals .valrow{border-top:none;padding-top:0;margin-top:0}
.vals .val{margin-bottom:2.1rem}
.vals .val:last-child{margin-bottom:0}
.vals .val h3{font-size:1.3rem;margin-bottom:.45rem}
.vals .val p{max-width:64ch;margin-inline:auto}
.vals-cta{margin-top:2.6rem}

/* stats strip */
.stats{background:var(--cream);border-block:1px solid var(--line)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding:52px 0}
.stats .s{text-align:center;border-right:1px solid var(--line)}
.stats .s:last-child{border-right:none}
.stats .s b{display:block;font-family:'Jost';font-size:2.8rem;font-weight:800;color:var(--sage-dark);line-height:1}
.stats .s span{font-size:.9rem;color:var(--muted);margin-top:.4rem;display:block}

/* feature band */
.band{position:relative;color:#fff;background:#2c332a;padding-bottom:90px}
.band-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.band-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(38,44,36,.82),rgba(38,44,36,.72))}
.band .inner{position:relative;z-index:2;text-align:center;max-width:720px;margin:0 auto;padding:100px 0 150px}
.band .eyebrow{color:var(--lightsage)}
.band h2{color:#fff;font-size:2.5rem;margin:.8rem 0 1.1rem}
.band p{color:rgba(255,255,255,.85);margin-bottom:1.8rem}
.feat-cards{position:relative;z-index:3;margin-top:-80px;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.feat{background:#fff;border-radius:var(--radius);padding:1.9rem 1.7rem;box-shadow:var(--shadow-sm)}
.feat .ic{width:52px;height:52px;border-radius:12px;background:var(--moss);display:grid;place-items:center;margin-bottom:1.1rem}
.feat .ic svg{width:26px;height:26px;stroke:var(--lightsage);fill:none;stroke-width:1.8}
.feat h3{font-size:1.2rem;margin-bottom:.5rem;color:var(--heading)}
.feat p{font-size:.94rem;color:var(--body)}

/* team */
.team{padding:110px 0}
.grid-team{display:grid;grid-template-columns:repeat(4,1fr);gap:1.7rem;align-items:start}
.tm{position:relative;transition:.25s ease;--c:var(--moss)}
.tm:nth-child(even){margin-top:52px}
.tm:hover{transform:translateY(-6px)}
.tm .badge{position:absolute;top:-15px;left:50%;transform:translateX(-50%);background:var(--c);color:#fff;font-family:'Jost';font-weight:600;font-size:1.02rem;padding:.5rem 1.5rem;border-radius:10px;white-space:nowrap;z-index:4;box-shadow:var(--shadow-sm)}
.tm .badge::after{content:"";position:absolute;bottom:-6px;left:50%;margin-left:-6px;width:13px;height:13px;background:var(--c);transform:rotate(45deg)}
.tm .frame{border:4px solid var(--c);border-radius:20px;padding:6px;background:#fff}
.tm .frame .ph{position:relative;border-radius:14px;aspect-ratio:1/1.12;background-size:cover;background-position:center 18%;background-color:#dfe3d8;overflow:hidden}
.tm .frame .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.tm .info{background:#fff;border-radius:14px;box-shadow:var(--shadow-sm);margin:-30px 12px 0;position:relative;z-index:3;padding:2.1rem 1.2rem 1.5rem;text-align:center}
.tm .info h3{font-size:1.18rem;margin-bottom:.2rem}
.tm .info .role{font-size:.82rem;color:var(--sage-dark);font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:1rem}
.tm .info p{font-size:.92rem;text-align:left}

/* --- contact page ------------------------------------------------------ */
.contact{padding:90px 0}
.contact .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:4rem;align-items:start}
.info h2{font-size:2.3rem;margin:.7rem 0 1rem}
.info > p.lead{margin-bottom:2rem}
.infocards{display:grid;gap:1rem;margin-bottom:2rem}
.icard{display:flex;gap:1rem;align-items:flex-start;background:var(--cream);border-radius:14px;padding:1.25rem 1.4rem}
.icard .ic{width:46px;height:46px;flex:0 0 46px;border-radius:12px;background:var(--moss);display:grid;place-items:center}
.icard .ic svg{width:22px;height:22px;stroke:var(--lightsage);fill:none;stroke-width:1.8}
.icard h3{font-size:1.02rem;margin-bottom:.15rem}
.icard p{font-size:.96rem;margin:0}
.icard a{color:var(--moss);font-weight:600}
.hc-hours{list-style:none;padding:0;margin:0}
.hc-hours li{display:flex;justify-content:space-between;gap:1rem;font-size:.96rem}
.hc-hours li b{color:var(--heading);font-weight:600}
.hc-hours-note{font-size:.88rem;color:var(--muted);margin-top:.3rem}
.accept{border-top:1px solid var(--line);padding-top:1.5rem}
.accept h3,.accept h4{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem}
.paychips{display:flex;flex-wrap:wrap;gap:.5rem}
.paychips span{font-size:.82rem;background:var(--cream2);border:1px solid var(--line);border-radius:7px;padding:.3rem .75rem;color:var(--body)}

/* form */
.formcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2.4rem}
.formcard h2{font-size:1.7rem;margin-bottom:.4rem}
.formcard .sub{font-size:.96rem;color:var(--muted);margin-bottom:1.8rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{margin-bottom:1.15rem}
.field label{display:block;font-size:.86rem;font-weight:600;color:var(--heading);margin-bottom:.4rem}
.field label .req{color:var(--sage-dark)}
.field input,.field textarea,.field select{width:100%;font-family:'Jost',sans-serif;font-size:1rem;color:var(--heading);background:var(--cream);border:1px solid var(--line);border-radius:9px;padding:.8rem 1rem;transition:.2s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--sage);background:#fff;box-shadow:0 0 0 3px rgba(147,163,132,.18)}
.field textarea{min-height:130px;resize:vertical}
.field .hint{font-size:.76rem;color:var(--muted);margin-top:.3rem}
.formcard button.btn{width:100%;justify-content:center;margin-top:.4rem}
.form-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem;color:var(--body)}
.form-consent input{width:auto;flex:0 0 auto;margin-top:.25rem}
.form-notice{background:var(--lightsage);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1.4rem;color:var(--moss);font-weight:600}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* map + areas */
.mapsec{position:relative}
.mapsec iframe{width:100%;height:440px;border:0;display:block;filter:grayscale(.15)}
.areas{background:var(--lightsage);text-align:center;padding:40px 0}
.areas h3,.areas h4{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-dark);margin-bottom:1rem}
.areachips{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}
.areachips span{background:#fff;border-radius:100px;padding:.5rem 1.3rem;font-weight:600;color:var(--moss);font-size:.95rem;box-shadow:var(--shadow-sm)}

/* --- CTA band ---------------------------------------------------------- */
.ctaband{background:var(--moss);color:#fff}
.ctaband .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:64px 0;flex-wrap:wrap}
.ctaband h2{color:#fff;font-size:2.3rem;max-width:22ch}
.ctaband p{color:rgba(255,255,255,.85);margin-top:.5rem}
.cta-actions{display:flex;gap:.8rem;flex-wrap:wrap}

/* --- reviews ----------------------------------------------------------- */
.reviews{padding:110px 0}
.reviews.on-sage{background:var(--lightsage)}
.grid-rev{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.rev{background:var(--cream);border-radius:var(--radius);padding:2rem 1.8rem;margin:0}
.reviews.on-sage .rev{background:#fff;box-shadow:var(--shadow-sm)}
.rev .stars{color:#e0a92e;letter-spacing:2px;font-size:1.05rem;margin-bottom:1rem}
.rev blockquote{margin:0}
.rev p{font-size:1rem;margin-bottom:1.4rem}
.rev .rev-context{font-size:.92rem;color:var(--muted);border-left:3px solid var(--sage);padding-left:.9rem}
.rev .who2{display:flex;align-items:center;gap:.8rem}
.rev .av{width:44px;height:44px;border-radius:50%;background:var(--sage);color:#fff;display:grid;place-items:center;font-weight:600;flex:0 0 44px}
.rev .who2 b{display:block;color:var(--heading);font-size:.95rem}
.rev .who2 span span,.rev .who2 > span > span{font-size:.82rem;color:var(--muted)}

/* --- prose (long form content pages) ----------------------------------- */
.prose{padding:80px 0}
.prose .wrap{max-width:820px}
.prose h2{font-size:2rem;margin:2.4rem 0 1rem}
.prose h3{font-size:1.35rem;margin:1.8rem 0 .6rem}
.prose p{margin-bottom:1.1rem}
.prose ul,.prose ol{margin:0 0 1.4rem 1.2rem}
.prose li{margin-bottom:.45rem}
.prose a{color:var(--moss);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.disclaimer{font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1rem;margin-top:2rem}
.markers{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.markers li{background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:.4rem .9rem;font-size:.9rem}

/* --- bandified prose ---------------------------------------------------
   Long-form pages are split into alternating bands rather than one column of
   text, matching the rhythm the service mockup uses.                      */
.prose.alt{background:var(--cream)}
.prose > .wrap > h2:first-child{margin-top:0}
.featband{padding:90px 0}
.featband.alt{background:var(--cream)}
.featband .sec-head{max-width:720px}
.featband .sec-head p{margin-top:.6rem}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}
.feat-grid.two{grid-template-columns:repeat(2,1fr)}
.feat-grid .feat h2{font-size:1.2rem;margin-bottom:.5rem;color:var(--heading)}
.feat-grid .feat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.9rem 1.7rem;box-shadow:var(--shadow-sm)}
.featband.alt .feat-grid .feat{background:#fff}
.feat-grid .feat p{margin-bottom:.7rem}
.feat-grid .feat p:last-child{margin-bottom:0}

/* the pull band breaks up a run of plain prose */
.pullband{background:var(--lightsage);padding:84px 0}
.pullband .wrap{max-width:760px}
.pullband h2{font-size:2.1rem;margin-bottom:1.1rem;text-align:center}
.pullband p{font-size:1.06rem;margin-bottom:1.1rem}
.pullband p:last-child{margin-bottom:0}
.pullband a{color:var(--moss-dark);font-weight:600;text-decoration:underline;text-underline-offset:3px}

.inlinecta{background:var(--lightsage)}
.inlinecta .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:40px 0;flex-wrap:wrap}
.inlinecta h2{font-size:1.6rem;color:var(--heading)}
.inlinecta p{margin-top:.35rem;color:var(--body);font-size:.96rem}

/* --- FAQ. <details> so every answer ships in the HTML. ----------------- */
.faq{padding:90px 0;background:var(--cream)}
.faq .wrap{max-width:820px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:.9rem;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:1.2rem 1.5rem;font-weight:600;color:var(--heading);font-size:1.06rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--sage-dark);border-bottom:2px solid var(--sage-dark);transform:rotate(45deg);transition:.2s;flex:0 0 9px}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .answer{padding:0 1.5rem 1.4rem}
.faq .answer p{margin-bottom:.8rem}
.faq .answer p:last-child{margin-bottom:0}
/* FAQ runs in two columns on desktop. The heading spans both columns and the
   items align to the top, so opening one answer never stretches the item beside
   it or leaves a gap in the other column. */
@media (min-width:900px){
  .faq .wrap{max-width:1180px;display:grid;grid-template-columns:1fr 1fr;column-gap:1.1rem;row-gap:.9rem;align-items:start}
  .faq .sec-head{grid-column:1 / -1}
  .faq details{margin-bottom:0}
}

/* --- footer ------------------------------------------------------------ */
footer.site{background:var(--charcoal);color:#b7bbb2;padding-top:72px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2.5rem;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1)}
footer.site h2,footer.site h4{color:#fff;font-size:1.02rem;margin-bottom:1.2rem}
.foot-logo{height:72px;width:auto;display:block;filter:brightness(0) invert(1);margin-bottom:.4rem}
footer.site .brand .mark{background:var(--sage)}
footer.site .brand .txt strong{color:#fff}
footer.site ul{list-style:none;display:grid;gap:.6rem;padding:0;margin:0}
footer.site ul a{font-size:.94rem;color:#b7bbb2}
footer.site ul a:hover{color:var(--lightsage)}
.foot-contact p{font-size:.94rem;margin-bottom:.7rem;display:flex;gap:.6rem;align-items:flex-start}
.foot-contact svg{width:17px;height:17px;stroke:var(--sage);fill:none;flex:0 0 17px;margin-top:3px}
.foot-intro p{font-size:.94rem;margin:1rem 0 1.4rem;color:#93998f}
.socials{display:flex;gap:.7rem}
.socials a{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:.2s}
.socials a:hover{background:var(--sage)}
.socials svg{width:18px;height:18px;stroke:#fff;fill:none}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font-size:.85rem;color:#828a80;flex-wrap:wrap;gap:.6rem}
.foot-bottom a{color:#828a80}
.foot-bottom a:hover{color:var(--lightsage)}

/* ==========================================================================
   Elementor interop.
   The kit's own stylesheet loads after this file, so anything that has to
   beat it is written at matching or higher specificity. See hc-kit.php,
   which configures the kit itself so the editor agrees with the front end.
   ========================================================================== */
.elementor-widget.elementor-widget-heading:not(:last-child){margin-block-end:0}
.elementor-section.elementor-section-boxed > .elementor-container{max-width:100%}
.hc-page .elementor-widget-html > .elementor-widget-container{overflow:visible}

/* ==========================================================================
   Breakpoints. Mockup values, plus the extra tiers the real header needs.
   ========================================================================== */
@media(max-width:1180px){
  nav.main ul{gap:1.4rem}
  nav.main a{font-size:.95rem}
  .brand-logo{height:56px}
}
@media(max-width:1040px){
  .topbar .l span:nth-child(2){display:none}
  .socials-n{display:none}
}
@media(max-width:960px){
  .hero .wrap,.split .wrap,.sessions .wrap,.svc .wrap,.benefits .wrap,.who .wrap,.contact .wrap{grid-template-columns:1fr;gap:2.6rem}
  .hero .wrap{padding:96px 0 110px}
  .hero h1{font-size:2.7rem}
  .split{padding:110px 0 100px}
  .svc.rev .media{order:0}
  .grid-4,.grid-rev,.mini-grid,.grid-3,.feat-cards,.grid-team,.feat-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .stats .wrap{grid-template-columns:1fr 1fr;gap:2rem}
  .stats .s:nth-child(2){border-right:none}
  .tm:nth-child(even){margin-top:0}
  .who-media .photo{aspect-ratio:4/4.4}
  .who-media .qcard{right:0}

  /* collapsed nav */
  .nav-toggle{display:grid}
  nav.main{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);display:none;max-height:calc(100vh - 122px);overflow-y:auto}
  nav.main.open{display:block}
  nav.main > ul{display:block;padding:.8rem 4%}
  nav.main > ul > li{border-bottom:1px solid var(--line)}
  nav.main > ul > li:last-child{border-bottom:none}
  nav.main > ul > li > a{padding:.85rem 0;font-size:1.05rem}
  nav.main li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}
  nav.main ul ul,nav.main li.mega > ul{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;display:none;width:100%;min-width:0;grid-template-columns:1fr;padding:0 0 .7rem .8rem}
  nav.main li.open > ul{display:grid}
  nav.main li:hover > ul,nav.main li:focus-within > ul{display:none}
  nav.main li.open:hover > ul{display:grid}
  nav.main .sub-toggle{padding:.8rem .6rem}
}
/* below 560 the full lockup (logo + CTA pill + toggle) no longer fits 390px */
@media(max-width:560px){
  .nav-cta .cta-long{display:none}
  a.btn.btn-moss.nav-cta{padding:.7rem 1.05rem;font-size:.9rem}
  header.nav .wrap{gap:.5rem}
  .nav-r{gap:.55rem}
  .brand-logo{height:46px}
  .brand .mark{width:38px;height:38px;flex:0 0 38px;border-radius:10px}
  .brand .mark svg{width:21px;height:21px}
  .brand .txt strong{font-size:.95rem}
  .brand .txt span{font-size:.6rem;letter-spacing:.12em}
  .nav-toggle{width:40px;height:40px}
}
@media(max-width:720px){
  .topbar .l{display:none}
  .topbar .wrap{justify-content:center}
  .helpcard{position:static;transform:none;width:min(1180px,92%);margin:0 auto;margin-top:-40px}
  .hero{padding-bottom:40px}
}
@media(max-width:600px){
  .sec-pad,.reviews,.who,.team,.svc,.benefits,.cond,.offer,.sessions,.contact,.faq,.prose{padding:64px 0}
  .split{padding:80px 0 64px}
  .hero .wrap{padding:72px 0 84px}
  .hero h1{font-size:2.2rem}
  .hero-arrows{display:none}
  .pagehead .wrap{padding:64px 0}
  .pagehead h1{font-size:2.2rem}
  .helpcard{grid-template-columns:1fr;text-align:center}
  .helpcard .dial{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:1rem;justify-content:center}
  .grid-4,.grid-rev,.foot-grid,.mini-grid,.grid-3,.feat-cards,.grid-team,.feat-grid,.stats .wrap{grid-template-columns:1fr}
  .featband,.inlinecta,.pullband{padding:56px 0}
  .pullband h2{font-size:1.7rem}
  .inlinecta .wrap{flex-direction:column;align-items:flex-start}
  .sec-head h2,.split-copy h2,.sessions h2,.svc h2,.cond h2,.benefits h2,.who h2,.band h2,.info h2{font-size:2rem}
  .statbar{position:static;transform:none;width:100%;margin-top:1.5rem}
  .ctaband .wrap{flex-direction:column;align-items:flex-start}
  .callout ul{grid-template-columns:1fr}
  .frow{grid-template-columns:1fr}
  .formcard{padding:1.6rem}
  .quotecard{position:static;max-width:none;margin-top:1rem}
  .svc .media .tag{position:static;max-width:none;margin-top:1rem}
  .who-media .qcard{position:static;max-width:none;margin-top:1rem}
  .feat-cards{margin-top:-60px}
  .stats .s{border-right:none;border-bottom:1px solid var(--line);padding-bottom:1.2rem}
  .stats .s:last-child{border-bottom:none}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero-slide{transition:opacity .2s ease}
}

/* HC Medical booking notice (medical service pages) */
.mednotice{background:var(--lightsage)}
.mednotice .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 2rem;padding:28px 0;flex-wrap:wrap}
.mednotice .mn-body{display:flex;gap:1rem;align-items:flex-start;flex:1 1 520px}
.mednotice .mn-icon{flex:0 0 44px;height:44px;border-radius:12px;background:var(--moss);color:#fff;display:flex;align-items:center;justify-content:center}
.mednotice .mn-icon svg{width:22px;height:22px}
.mednotice h2{font-size:1.25rem;color:var(--heading);margin:0 0 .3rem}
.mednotice p{margin:0;color:var(--body);font-size:.96rem;max-width:72ch}
.mednotice p a{color:var(--moss);font-weight:600;text-decoration:underline}

/* Halsey: a single provider card centres rather than sitting in a 4-column grid */
.grid-team.one{grid-template-columns:minmax(0,360px);justify-content:center}
@media(max-width:960px){.grid-team.one{grid-template-columns:minmax(0,360px)}}
body.hc-page [data-hc-slot="clinic-1"]{background-position:center 38%}
.tm .info p.role{text-align:center}

/* Rotating review band. Every review ships in the HTML; JS only changes which
   one is visible, so nothing is interaction-gated. Without JS all cards stack. */
.reviews.rot .rev-rot{position:relative;max-width:720px;margin:0 auto}
.reviews.rot .rev{text-align:center;padding:2.4rem 2rem}
.reviews.rot .rev + .rev{margin-top:1.2rem}
.reviews.rot .rev .rev-context{border-left:none;border-top:3px solid var(--sage);padding:.9rem 0 0;margin-top:.6rem}
.reviews.rot .rev .who2{justify-content:center}
.hc-js .reviews.rot .rev{position:absolute;top:0;left:0;right:0;margin:0;opacity:0;visibility:hidden;transition:opacity .5s ease}
.hc-js .reviews.rot .rev.active{opacity:1;visibility:visible}
.rev-dots{display:flex;gap:.6rem;justify-content:center;margin-top:1.6rem}
.rev-dots button.rev-dot{width:11px;height:11px;border-radius:50%;border:none;background:var(--line);cursor:pointer;transition:.25s;padding:0}
.rev-dots button.rev-dot.active{background:var(--sage);width:30px;border-radius:6px}
.rev-dots button.rev-dot:hover{background:var(--sage-dark)}

/* ---------------------------------------------------------------------------
   Elementor-native bands. Page heads, prose bands, pull bands and the split
   bands are built from real Elementor widgets so the copy, headings, buttons
   and photos are editable in the editor. These rules make Elementor's own
   container and column markup behave exactly like the .wrap markup it replaced.
   --------------------------------------------------------------------------- */
.hc-page .elementor-widget:not(:last-child){margin-block-end:0}
.hc-page .elementor-section > .elementor-container{width:100%}
.hc-page .hc-el > .elementor-container{width:min(1180px,92%);margin-inline:auto;display:block}
.hc-page .hc-el > .elementor-container > .elementor-column{width:100%}
.hc-page .hc-el .elementor-widget-wrap{padding:0}
.hc-page .pagehead.hc-el > .elementor-container{padding:92px 0;position:relative;z-index:2}
.hc-page .prose.hc-el > .elementor-container{width:min(820px,92%)}
.hc-page .pullband.hc-el > .elementor-container{width:min(760px,92%)}
.hc-page .prose.hc-el .elementor-widget:first-child h2{margin-top:0}
.hc-page .hc-el .elementor-widget-text-editor > .elementor-widget-container > *:last-child{margin-bottom:0}

/* two column split band */
.hc-page .hc-el2 > .elementor-container{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.hc-page .hc-el2 > .elementor-container > .elementor-column{width:auto;position:relative}
.hc-page .svc.rev.hc-el2 > .elementor-container > .elementor-column:first-child{order:2}
.hc-page .svc.hc-el .elementor-widget-image img{display:block;width:100%;aspect-ratio:5/4.6;object-fit:cover;border-radius:18px;box-shadow:var(--shadow-sm)}
.hc-page .svc.hc-el .hc-tag{position:absolute;left:-18px;bottom:-18px;background:var(--moss);color:#fff;border-radius:14px;padding:1rem 1.3rem;box-shadow:var(--shadow);display:flex;gap:.7rem;align-items:center;max-width:230px}
.hc-page .svc.hc-el .hc-tag svg{width:30px;height:30px;stroke:var(--lightsage);fill:none;stroke-width:1.7;flex:0 0 30px}
.hc-page .svc.hc-el .hc-tag b{font-family:'Jost';font-weight:600;font-size:.98rem;color:#fff;line-height:1.2}
.hc-page .svc.hc-el .elementor-widget-html{position:static}

/* buttons rendered by the Elementor button widget */
.hc-page .elementor-widget-button .elementor-button{display:inline-flex;align-items:center;gap:.5rem;font-family:'Jost',sans-serif;font-weight:600;font-size:.98rem;padding:.92rem 1.9rem;border-radius:8px;background:var(--moss);color:#fff;transition:.25s ease;border:none;line-height:1.2}
.hc-page .elementor-widget-button .elementor-button:hover{background:var(--moss-dark);color:#fff;transform:translateY(-2px)}
.hc-page .elementor-widget-button.btn-sage .elementor-button{background:var(--sage)}
.hc-page .elementor-widget-button.btn-sage .elementor-button:hover{background:var(--sage-dark)}
.hc-page .elementor-widget-button.btn-white .elementor-button{background:#fff;color:var(--moss)}
.hc-page .hc-el .elementor-widget-button{margin-top:1.4rem}

@media(max-width:960px){
  .hc-page .hc-el2 > .elementor-container{grid-template-columns:1fr;gap:2.6rem}
  .hc-page .svc.rev.hc-el2 > .elementor-container > .elementor-column:first-child{order:0}
  .hc-page .svc.hc-el .hc-tag{position:static;max-width:none;margin-top:1rem}
}
@media(max-width:640px){
  .hc-page .pagehead.hc-el > .elementor-container{padding:64px 0}
}
.hc-page .featband.hc-el > .elementor-container,.hc-page .cond.hc-el > .elementor-container{width:min(1180px,92%)}
.hc-page .featband.hc-el .sec-head,.hc-page .cond.hc-el .head{max-width:none}
.hc-page .featband.hc-el .elementor-widget-heading,.hc-page .cond.hc-el .elementor-widget-heading{max-width:720px}
.hc-page .cond.hc-el > .elementor-container{text-align:center}
.hc-page .cond.hc-el .elementor-widget-heading{margin-inline:auto}
.hc-page .cond.hc-el .elementor-widget-text-editor{max-width:70ch;margin-inline:auto}
.hc-page .featband.hc-el .elementor-widget-html,.hc-page .cond.hc-el .elementor-widget-html{margin-top:2.2rem}
/* .feat-grid.two is (0,2,0) and beat the single column rule in the phone
   breakpoint, so a two-up feature band ran off the side at 375px. */
@media(max-width:640px){.feat-grid.two{grid-template-columns:1fr}}
