/*
Theme Name: Zoe Zhou Clinic
Theme URI: https://example.com/zoe-zhou-clinic
Author: Custom theme
Description: A calm, responsive acupuncture clinic theme with Elementor support.
Version: 2.1.24
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zoe-zhou-clinic
Tags: one-column, custom-logo, custom-menu, featured-images, full-width-template
*/

:root{--cream:#eef4ec;--paper:#f8fbf5;--green:#304238;--ink:#26352d;--muted:#5f6b61;--soft:#78837a;--line:#d6e1d4;--accent:#b5652d;--serif:"Fraunces",Georgia,serif;--sans:"Work Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}body.admin-bar .site-header{top:32px}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:min(100% - 128px,1312px);margin-inline:auto}.serif,h1,h2,h3{font-family:var(--serif);color:var(--green)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(246,242,234,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-branding{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:.3px;white-space:nowrap}.custom-logo{display:block;max-height:52px;width:auto}.primary-nav{display:flex;align-items:center;gap:26px;font-size:14px}.primary-nav ul{list-style:none;display:flex;align-items:center;gap:26px;margin:0;padding:0}.primary-nav a:hover,.primary-nav a:focus{color:var(--accent)}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:13px 26px;font:500 15px/1.2 var(--sans);letter-spacing:.2px;transition:transform .2s,background .2s}.nav-cta,.btn-primary{background:var(--accent);color:var(--paper)!important}.nav-cta{padding:10px 20px}.btn:hover{transform:translateY(-1px)}.btn-outline{border:1px solid var(--ink)}.menu-toggle{display:none;border:0;background:none;padding:8px;font:600 14px var(--sans);color:var(--ink)}
.hero{padding:86px 0 65px}.hero-inner{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.hero h1{font-size:clamp(38px,4vw,54px);line-height:1.13;font-weight:500;max-width:820px;margin:0}.hero-subtitle{font-size:16px;color:var(--muted)}.hero-note{font-size:14.5px;color:var(--muted)}.hero-actions{display:flex;gap:16px;margin-top:18px}.fine-print{font-size:12px;color:var(--soft);max-width:600px;margin-top:14px}
.hero-actions .btn-outline{gap:10px}
.section{padding:76px 0}.section-paper{background:var(--paper)}.section-dark{background:var(--green);color:#d9ded9}.section-title{font-size:32px;line-height:1.2;font-weight:500;margin:0 0 34px}.section-dark .section-title{color:var(--paper)}.lead{font-size:16.5px}.help-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.card{display:flex;flex-direction:column;gap:10px;height:100%;padding:26px 22px;border:1px solid #ede7d9;border-radius:6px;background:var(--paper);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(31,51,46,.08)}.card-title{font-size:15px;font-weight:600;color:var(--green);line-height:1.45}.card-body{font-size:13.5px;line-height:1.6;color:#4a4a44}.card-arrow{margin-top:auto;font-size:13px;color:var(--accent)}.treatment-intro{margin:-23px 0 30px;color:#4a4a44}.treatment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.treatment-card{padding:18px}.approach-copy{max-width:700px;margin:auto}.approach-copy p{font-size:16.5px;line-height:1.75;margin:0 0 18px}
.fees{text-align:left;background-image:none}.fees .section-title{margin-bottom:26px}.fees .section-title::after{content:"";display:block;width:46px;height:3px;margin-top:16px;background:#9a6512}.fee-list{max-width:820px;margin:0;text-align:left}.fee-row{display:grid;grid-template-columns:240px minmax(0,1fr);gap:0;padding:24px 0;border-bottom:1px solid var(--line)}.fee-row:last-child{border:0}.fee-price{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-right:34px;font-family:var(--serif);color:var(--green);white-space:nowrap}.fee-net{font-size:27px;line-height:1.15}.fee-total{margin-top:5px;color:#9a6512;font-size:18px;line-height:1.2}.fee-service{display:flex;flex-direction:column;justify-content:center;min-height:70px;padding-left:46px;border-left:1px solid var(--line)}.fee-service-name{font-family:var(--serif);color:var(--green);font-size:22px;line-height:1.25}.fee-service-meta{margin-top:5px;color:var(--muted);font-size:15px;line-height:1.45}.fee-detail{max-width:820px;font-size:12.5px;color:var(--soft);margin:28px 0 0}.fees-vat{font-size:13px;color:var(--soft)}
.about-inner{display:flex;align-items:center;gap:56px}.portrait{width:220px;height:220px;flex:0 0 220px;border-radius:50%;object-fit:cover;background:repeating-linear-gradient(135deg,#e4ddce,#e4ddce 14px,#ede7d9 14px,#ede7d9 28px)}.about-name{font-size:27px;font-family:var(--serif);font-weight:600;color:var(--green)}.about-meta{color:var(--muted)}.location-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px}.map-frame{min-height:280px;border:0;border-radius:6px;width:100%;background:#e4ddce}.location-copy h2{margin-bottom:16px}.hours{display:flex;justify-content:space-between;gap:24px;max-width:360px}.hours span:last-child{color:var(--soft)}
.contact-inner{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px}.contact-form{max-width:460px}.form-field{margin-bottom:15px}.form-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}.form-field input,.form-field textarea{width:100%;padding:12px;border:1px solid #d8cdb2;border-radius:4px;background:var(--paper);font:inherit}.form-field input:focus,.form-field textarea:focus{outline:2px solid rgba(181,101,45,.35);border-color:var(--accent)}.contact-details{padding-top:48px;color:#4a4a44}.contact-details p{margin:0 0 8px}.form-message{padding:11px 14px;margin-bottom:16px;border-radius:4px;background:#e4efe8}.form-message.error{background:#f6e3dd}.honeypot{position:absolute;left:-9999px}
.site-footer{padding:42px 0;background:var(--green);color:#c9cfc9;font-size:13.5px}.footer-inner{display:flex;justify-content:space-between;gap:24px}.footer-brand{font:17px var(--serif);color:var(--paper);margin-bottom:5px}.footer-muted{color:#8a9188}.content-area{min-height:60vh;padding:64px 0}.entry-title{font-size:40px;margin-top:0}.entry-content{max-width:820px}.entry-content a{text-decoration:underline;color:var(--accent)}.elementor-page .content-area{padding:0}.elementor-page .entry-content{max-width:none}.page-template-elementor-full-width .content-area{padding:0}.page-template-elementor-full-width .entry-content{max-width:none}
@media(max-width:1050px){.help-grid{grid-template-columns:repeat(3,1fr)}.primary-nav{gap:16px}.primary-nav ul{gap:16px}.container{width:min(100% - 64px,1312px)}}
@media(max-width:782px){body.admin-bar .site-header{top:46px}.header-inner{min-height:68px;flex-wrap:wrap}.menu-toggle{display:block}.primary-nav{display:none;width:100%;padding:8px 0 20px}.primary-nav.is-open{display:flex}.primary-nav ul{width:100%;flex-direction:column;align-items:flex-start;gap:13px}.nav-cta{margin-bottom:16px}.hero{padding:58px 0}.help-grid,.treatment-grid{grid-template-columns:repeat(2,1fr)}.location-inner,.contact-inner{grid-template-columns:1fr}.contact-details{padding-top:0}.section{padding:58px 0}.about-inner{align-items:flex-start}.footer-inner{flex-direction:column}}
@media(max-width:560px){.container{width:min(100% - 48px,1312px)}.hero h1{font-size:36px}.hero-actions{width:100%;flex-direction:column}.hero-actions .btn{width:100%}.help-grid,.treatment-grid{grid-template-columns:1fr}.section-title{font-size:28px}.about-inner{flex-direction:column;gap:28px}.portrait{width:170px;height:170px;flex-basis:170px}.fee-row{align-items:flex-start}.location-inner{gap:30px}.hours{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.card{transition:none}}

/* Clinic refresh: soft green canvas and improved small-screen readability. */
:root{--cream:#eef4ec;--paper:#f8fbf5;--green:#304238;--ink:#26352d;--muted:#5f6b61;--soft:#78837a;--line:#d6e1d4}
.site-header{background:rgba(238,244,236,.96)}
.nav-cta,.btn{min-height:48px;font-size:16px}
.card-body{font-size:15px;line-height:1.65;color:#435047}.card-arrow{font-size:15px;font-weight:500}
.fee-detail,.fees-vat{font-size:14px;line-height:1.55}
.form-message{background:#dcebdc}.credential-links a{text-decoration:underline;text-underline-offset:3px}
.knowledge-links{margin-top:42px;padding:24px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.knowledge-links h2{font-size:24px;margin-top:0}.placeholder-note{color:var(--soft);font-style:italic}
@media(max-width:560px){body{font-size:17px}.hero-subtitle,.hero-note{font-size:16px}.card-title{font-size:17px}.card-body{font-size:16px}.hours{font-size:16px}.fine-print{font-size:14px}.site-footer{font-size:15px}}

/* Zoe's Space 2.0 */
.eyebrow{display:block;margin-bottom:9px;color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.eyebrow-light{color:#d8b178}.section-heading{max-width:720px;margin-bottom:34px}.section-heading .section-title{margin-bottom:12px}.section-heading p{margin:0;color:var(--muted)}
.help-grid-v2{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.service-card{display:flex;min-width:0;min-height:600px;flex-direction:column;padding:0 22px 24px;border-radius:14px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.service-card:hover,.service-card:focus-visible{transform:translateY(-4px);box-shadow:0 15px 35px rgba(31,51,46,.1)}.service-card-1{background:#f8e9e7;color:#8b3040}.service-card-2{background:#e9f0e6;color:#315640}.service-card-3{background:#f8ecdf;color:#a34d38}.service-card-4{background:#fbf1d9;color:#80601c}.service-card-5{background:#ecebf6;color:#343265}.service-motif{display:block;width:calc(100% + 44px);max-width:none;height:auto;aspect-ratio:289/405;margin:0 -22px 18px;object-fit:contain;object-position:center top}.service-card h3{margin:0 0 18px;color:currentColor;font-size:clamp(21px,1.75vw,29px);font-weight:500;line-height:1.17}.service-points{display:grid;gap:8px;margin:0 0 24px;padding:0;list-style:none;font-family:var(--serif);font-size:15px;line-height:1.35}.service-points li{margin:0}.service-button{margin-top:auto;display:flex;min-height:54px;align-items:center;justify-content:space-between;padding:0 20px;border-radius:999px;background:currentColor;font-family:var(--sans);font-weight:500}.service-button>span,.service-button{color:#fff}.service-card-1 .service-button{background:#b95c68}.service-card-2 .service-button{background:#607f66}.service-card-3 .service-button{background:#c7664e}.service-card-4 .service-button{background:#b68b27}.service-card-5 .service-button{background:#55528e}
.treatment-grid-v2{grid-template-columns:repeat(3,1fr);margin-bottom:26px}.treatment-link{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-weight:600}.treatment-link:hover{border-color:var(--accent);color:var(--accent)}.text-link{display:inline-flex;gap:8px;color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.treatment-link:nth-child(1){background:#fbefef;border-color:#ecdada}.treatment-link:nth-child(2){background:#edf5ed;border-color:#d8e7d8}.treatment-link:nth-child(3){background:#fbf0eb;border-color:#eadbd3}.treatment-link:nth-child(4){background:#fff8e7;border-color:#eee3c5}.treatment-link:nth-child(5){background:#f3f0fa;border-color:#dfd9ec}.treatment-link:nth-child(6){background:#eef5f3;border-color:#d8e5e1}
.expect-section{background:#dfeadd}.expect-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.expect-inner .section-title{margin-bottom:10px}.expect-inner p{margin:0}.professional-section{background:#e6eee3}.professional-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px}.professional-inner .section-title{margin-bottom:0}.professional-inner p:first-child{margin-top:0}.about-copy{max-width:720px}.about-copy p{font-size:16px;line-height:1.75}.booking-panel{align-self:start;padding:32px;border-radius:12px;background:var(--green);color:#e6eee9}.booking-panel h3{margin-top:0;color:#fff;font-size:25px}.booking-panel .btn{width:100%;margin:10px 0 22px}.booking-panel p{font-size:14px}
.detail-page{max-width:1040px}.detail-nav{display:flex;justify-content:space-between;gap:24px;margin-bottom:36px;font-weight:600;color:var(--accent)}.detail-nav .admin-edit-link{padding:5px 13px;border:1px solid currentColor;border-radius:999px}.detail-page .entry-title{max-width:850px;font-size:clamp(38px,5vw,58px);line-height:1.08}.detail-page .entry-content{max-width:none}.service-detail{display:grid;gap:18px}.detail-section{padding:clamp(24px,4vw,42px);border-radius:12px;background:var(--paper);border:1px solid var(--line)}.detail-section:nth-child(even){background:#edf4ea}.detail-section h2{margin:0 0 18px;font-size:28px}.detail-section p{max-width:780px;font-size:16px;line-height:1.75}.detail-section p:last-child{margin-bottom:0}.detail-intro{background:#dfeadd}.detail-cta{margin-top:44px;padding:36px;border-radius:12px;background:var(--green);color:white;text-align:center}.detail-cta h2{margin-top:0;color:white}
@media(max-width:1050px) and (min-width:621px){.help-grid-v2{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.service-card{grid-column:span 2;min-height:590px}.service-card:nth-child(4){grid-column:2/span 2}.service-card:nth-child(5){grid-column:4/span 2}}
@media(max-width:900px){.professional-inner{grid-template-columns:1fr;gap:18px}}
@media(max-width:620px){.help-grid-v2,.treatment-grid-v2{grid-template-columns:1fr}.service-card{grid-column:auto;min-height:0;padding-bottom:24px}.service-motif{height:auto;aspect-ratio:289/405}.service-card h3{font-size:29px}.service-points{font-size:17px}.expect-inner{align-items:flex-start;flex-direction:column}.expect-inner .btn{width:100%}.detail-nav{align-items:flex-start;flex-direction:column}.detail-section{padding:24px 20px}.detail-section h2{font-size:25px}.professional-inner{gap:12px}}

/* Official membership marks supplied by the practice. */
.portrait-badge{position:relative;width:250px;aspect-ratio:1;flex:0 0 250px;overflow:hidden;border-radius:50%;background:#e4ebe1}.portrait-badge .portrait{display:block;width:100%;height:100%;max-width:none;border-radius:50%;object-fit:cover}.professional-logos{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:28px}.professional-logos a,.professional-logos span{display:flex;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.58)}.professional-logos img{display:block;width:auto;height:auto;max-height:82px}.professional-logos a:first-child img,.professional-logos span:first-child img{width:min(100%,280px)}.professional-logos a:last-child img,.professional-logos span:last-child img{width:min(100%,190px)}
@media(max-width:560px){.portrait-badge{width:220px;flex-basis:220px}.professional-logos{align-items:stretch;flex-direction:column}.professional-logos a,.professional-logos span{justify-content:center}}

/* Client content update 2.1: professional details and appointment request. */
.professional-copy{line-height:1.7}.contact-inner.appointment-request{display:block;max-width:900px}.appointment-request>div{width:100%}.appointment-form{max-width:none;margin-top:32px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin-bottom:24px}.form-grid .form-field{margin:0}.form-field-wide{grid-column:1/-1}.field-help{display:block;margin:-2px 0 7px;color:var(--soft);font-size:13px;line-height:1.4}.form-field select{width:100%;min-height:50px;padding:12px;border:1px solid #d8cdb2;border-radius:4px;background:var(--paper);color:var(--ink);font:inherit}.form-field select:focus{outline:2px solid rgba(181,101,45,.35);border-color:var(--accent)}
.form-grid,.form-field{min-width:0}.form-field input[type="date"],.form-field input[type="time"]{display:block;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}
@media(max-width:620px){.form-grid{width:100%;grid-template-columns:minmax(0,1fr)}.form-field-wide{grid-column:auto}.form-field input,.form-field select,.form-field textarea{min-width:0;max-width:100%}}

/* Illustrated service cards and mobile swipe carousel. */
.help-grid-v2{align-items:stretch}.service-card{position:relative;isolation:isolate;aspect-ratio:1/2;min-height:0;padding:0;background:none;box-shadow:0 8px 24px rgba(31,51,46,.06)}.service-card-bg{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover}.service-card-content,.service-card>span.service-card-content{display:flex;height:100%;margin:0;padding:62% 22px 24px;align-items:stretch;justify-content:flex-start;flex-direction:column;border:0}.service-card h3{margin:0 0 20px;font-size:clamp(20px,1.65vw,27px);line-height:1.08}.service-points{gap:10px;margin-bottom:22px;font-family:var(--sans);font-size:14px;line-height:1.28}.service-points li{position:relative;padding-left:18px}.service-points li::before{position:absolute;left:0;content:"•";font-size:20px;line-height:15px}.service-button{display:flex;min-height:52px;margin-top:auto;padding:0;align-items:center;justify-content:flex-start;gap:13px;border:0;border-radius:0;background:none!important;font-size:14px}.service-button,.service-button>span{color:currentColor!important}.service-arrow{display:inline-flex;width:48px;height:48px;flex:0 0 48px;align-items:center;justify-content:center;border-radius:50%;background:currentColor;color:#fff!important;font-size:25px;font-weight:400}.service-card-1 .service-arrow{background:#b74b64}.service-card-2 .service-arrow{background:#2e7656}.service-card-3 .service-arrow{background:#cf4b2e}.service-card-4 .service-arrow{background:#b9820d}.service-card-5 .service-arrow{background:#5446a4}.service-carousel-dots{display:none}
@media(max-width:1050px) and (min-width:621px){.service-card{min-height:0}}
@media(max-width:620px){.help-grid-v2{display:flex;grid-template-columns:none;gap:16px;margin-inline:-18px;padding:4px 9vw 18px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scroll-padding-inline:9vw;scrollbar-width:none}.help-grid-v2::-webkit-scrollbar{display:none}.service-card{flex:0 0 min(82vw,370px);grid-column:auto;aspect-ratio:1/2;scroll-snap-align:center;scroll-snap-stop:always}.service-card-content,.service-card>span.service-card-content{padding:62% 25px 26px}.service-card h3{font-size:clamp(27px,8vw,32px)}.service-points{font-size:16px}.service-button{font-size:16px}.service-carousel-dots{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:15px}.service-carousel-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:#d5d5cf;cursor:pointer}.service-carousel-dots button[aria-current="true"]{width:12px;height:12px;background:var(--accent)}.service-carousel-dots button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}}
.service-card-bg{z-index:0;opacity:.38}.service-card-content{position:relative;z-index:1}

/* Client supplied service palette. */
.service-card-1{background-color:#fdf3f5}.service-card-2{background-color:#f2f7f2}.service-card-3{background-color:#fcf1ed}.service-card-4{background-color:#fff9e8}.service-card-5{background-color:#f4f1fb}
@media(max-width:620px){.service-carousel-dots button:nth-child(1)[aria-current="true"]{background:#b74b64}.service-carousel-dots button:nth-child(2)[aria-current="true"]{background:#2e7656}.service-carousel-dots button:nth-child(3)[aria-current="true"]{background:#cf4b2e}.service-carousel-dots button:nth-child(4)[aria-current="true"]{background:#b9820d}.service-carousel-dots button:nth-child(5)[aria-current="true"]{background:#5446a4}}

/* Two-line clinic identity and mobile pop-over navigation. */
.site-branding{line-height:1.05}.brand-tagline{display:block;margin-top:5px;font:600 10px/1 var(--sans);letter-spacing:.17em;color:var(--soft)}
@media(max-width:782px){.header-inner{position:relative;min-height:76px;flex-wrap:nowrap}.site-branding{font-size:22px}.menu-toggle{display:inline-flex;width:44px;height:44px;padding:10px;align-items:center;justify-content:center;border-radius:50%;cursor:pointer}.menu-icon{display:grid;width:23px;gap:5px}.menu-icon>span{display:block;height:2px;border-radius:2px;background:currentColor}.primary-nav{position:absolute;top:calc(100% - 4px);right:0;z-index:60;display:none;width:min(320px,calc(100vw - 36px));padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 18px 45px rgba(31,51,46,.18)}.primary-nav.is-open{display:flex;align-items:stretch;flex-direction:column}.primary-nav ul{width:100%;align-items:stretch;gap:0}.primary-nav li+li{border-top:1px solid var(--line)}.primary-nav li a{display:block;padding:11px 2px}.primary-nav .nav-cta{width:100%;margin:15px 0 0;text-align:center}}

/* Shorter mobile cards with visible previous and next slides. */
@media(max-width:620px){.help-grid-v2{gap:14px;padding-inline:13vw;scroll-padding-inline:13vw}.service-card{height:68svh;min-height:470px;max-height:600px;flex-basis:min(74vw,340px);aspect-ratio:auto}.service-card-content,.service-card>span.service-card-content{padding:clamp(145px,24svh,205px) 22px 20px}.service-card h3{margin-bottom:16px;font-size:clamp(23px,7vw,28px)}.service-points{gap:8px;margin-bottom:16px;font-size:15px}.service-button{min-height:46px;font-size:15px}.service-arrow{width:44px;height:44px;flex-basis:44px}.service-carousel-dots{margin-top:10px}}
@media(max-width:620px){.service-card{min-height:420px}}

/* Full-height mobile off-canvas menu. */
.menu-backdrop{display:none}
@media(max-width:782px){body.menu-open{overflow:hidden}.menu-toggle{position:relative;z-index:82}.menu-icon>span{transition:transform .25s ease,opacity .2s ease}.menu-toggle.is-active .menu-icon>span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.is-active .menu-icon>span:nth-child(2){opacity:0}.menu-toggle.is-active .menu-icon>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.primary-nav{position:fixed;z-index:80;top:0;bottom:0;left:0;right:auto;display:flex;width:70vw;max-width:380px;height:100dvh;padding:96px 26px 30px;border:0;border-radius:0;background:var(--paper);box-shadow:12px 0 35px rgba(20,32,26,.18);transform:translateX(-105%);visibility:hidden;opacity:0;overflow-y:auto;transition:transform .3s ease,opacity .2s ease,visibility 0s linear .3s}.primary-nav.is-open{display:flex;align-items:stretch;flex-direction:column;transform:translateX(0);visibility:visible;opacity:1;transition:transform .3s ease,opacity .2s ease}.menu-backdrop{position:fixed;z-index:70;inset:0;display:block;background:rgba(20,28,24,.56);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility 0s linear .25s}body.menu-open .menu-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s ease}.primary-nav ul{flex-direction:column}.primary-nav li a{font-size:16px}.primary-nav .nav-cta{margin-top:22px}}
@media(prefers-reduced-motion:reduce){.primary-nav,.menu-backdrop,.menu-icon>span{transition:none!important}}

.mobile-menu-brand{display:none}
@media(max-width:782px){.primary-nav{padding-top:30px}.mobile-menu-brand{display:block;margin:0 0 30px;padding:0 0 24px;border-bottom:1px solid var(--line);font-family:var(--serif);line-height:1.05}.mobile-menu-brand strong{display:block;color:var(--green);font-size:25px;font-weight:600}.mobile-menu-brand span{display:block;margin-top:7px;color:var(--soft);font:600 10px/1 var(--sans);letter-spacing:.17em}.menu-backdrop{background:rgba(12,18,15,.76);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}

/* Equal leading and trailing space keeps the first and last slides centred. */
@media(max-width:620px){.help-grid-v2{--mobile-card-width:min(74vw,340px);padding-inline:0;scroll-padding-inline:0}.help-grid-v2::before,.help-grid-v2::after{content:"";display:block;flex:0 0 max(0px,calc((100vw - var(--mobile-card-width))/2 - 14px))}.service-card{flex-basis:var(--mobile-card-width)}}

/* Keep the close control above the overlay and shade the header with the page. */
@media(max-width:782px){body.menu-open .site-header{z-index:90;background:transparent;border-color:transparent;backdrop-filter:none}body.menu-open .menu-toggle{position:fixed;z-index:100;top:16px;right:18px;color:#fff;background:rgba(8,13,10,.72);box-shadow:0 4px 18px rgba(0,0,0,.2)}body.admin-bar.menu-open .menu-toggle{top:62px}body.menu-open .menu-backdrop{z-index:70;inset:0;width:100vw;height:100dvh}body.menu-open .primary-nav{z-index:80}}

.site-branding>a{display:block}.mobile-menu-brand strong{font-size:27px}
.fees-intro{max-width:820px;margin:0 0 30px;color:var(--muted);text-align:left;line-height:1.6}

/* Mobile scale refinement: lighter typography and a less crowded viewport. */
@media(max-width:620px){
body{font-size:16px}
.section{padding:46px 0}
.section-heading{margin-bottom:24px}
.section-heading .eyebrow{margin-bottom:6px;font-size:10px;letter-spacing:.12em}
.section-heading .section-title,.section-title{font-size:25px;line-height:1.18}
.help-grid-v2{--mobile-card-width:min(68vw,310px);gap:12px}
.help-grid-v2::before,.help-grid-v2::after{flex-basis:max(0px,calc((100vw - var(--mobile-card-width))/2 - 12px))}
.service-card{height:60svh;min-height:400px;max-height:525px;flex-basis:var(--mobile-card-width)}
.service-card-content,.service-card>span.service-card-content{padding:clamp(130px,21svh,180px) 18px 17px}
.service-card h3{margin-bottom:13px;font-size:clamp(20px,6.2vw,24px);line-height:1.08}
.service-points{gap:6px;margin-bottom:12px;font-size:14px;line-height:1.25}
.service-points li{padding-left:15px}
.service-points li::before{font-size:17px}
.service-button{min-height:40px;gap:10px;font-size:14px}
.service-arrow{width:38px;height:38px;flex-basis:38px;font-size:21px}
.service-carousel-dots{gap:8px;margin-top:7px}
.service-carousel-dots button{width:8px;height:8px}
.service-carousel-dots button[aria-current="true"]{width:10px;height:10px}
.content-area{padding:42px 0}
.detail-nav{margin-bottom:24px;font-size:14px}
.detail-page .entry-title{font-size:30px;line-height:1.1;margin-bottom:26px}
.service-detail{gap:14px}
.detail-section{padding:20px 18px}
.detail-section h2{margin-bottom:13px;font-size:22px;line-height:1.2}
.detail-section p{font-size:15px;line-height:1.62}
.detail-cta{margin-top:30px;padding:26px 20px}
}

/* Mobile hero refinement: smaller type with calmer spacing. */
@media(max-width:560px){
.hero{padding:62px 0 78px}
.hero-inner{gap:17px}
.hero h1{max-width:330px;margin-bottom:7px;font-size:30px;line-height:1.12}
.hero-name,.hero-treatment{display:block}
.hero-treatment{margin-top:5px;font-size:clamp(18px,5.5vw,22px);line-height:1.2;white-space:nowrap}
.hero-subtitle{max-width:340px;font-size:14.5px;line-height:1.65}
.hero-note{margin-top:4px;font-size:14px;line-height:1.55}
.hero-actions{gap:12px;margin-top:19px}
.hero-actions .btn{min-height:46px;font-size:15px}
.fine-print{max-width:340px;margin-top:18px;font-size:13px;line-height:1.65}
.fees-intro{margin-top:0;font-size:14px}
.fee-row{grid-template-columns:112px minmax(0,1fr);padding:20px 0}
.fee-price{padding-right:14px;white-space:normal}
.fee-net{font-size:20px}
.fee-total{font-size:15px}
.fee-service{min-height:62px;padding-left:17px}
.fee-service-name{font-size:17px}
.fee-service-meta{font-size:14px}
.fee-detail{margin-top:24px;font-size:13px;line-height:1.65}
}

/* Softer illustrated cards with a smaller mobile footprint. */
@media(max-width:620px){
.help-grid-v2{--mobile-card-width:min(64vw,290px);gap:12px}
.service-card{height:55svh;min-height:380px;max-height:480px}
.service-card-content,.service-card>span.service-card-content{padding:clamp(115px,18svh,155px) 16px 16px}
.service-card h3{margin-bottom:11px;font-size:clamp(19px,5.8vw,22px)}
.service-points{gap:5px;margin-bottom:10px;font-size:13px;line-height:1.22}
.service-button{min-height:38px;font-size:13px}
.service-arrow{width:36px;height:36px;flex-basis:36px;font-size:19px}
}
