/*
Theme Name: Acupuncture Braintree
Theme URI: https://www.acupuncturebraintree.co.uk/
Author: Brentwood Web Design
Author URI: https://www.brentwoodwebdesign.co.uk/
Description: A calm, Gutenberg-first theme for Acupuncture Braintree and Traditional Chinese Medicine services.
Version: 1.5.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: acupuncture-braintree
*/

:root{--ab-ink:#19332c;--ab-sage:#6f8f7e;--ab-pale:#edf2ec;--ab-cream:#f8f4eb;--ab-gold:#d89a5b;--ab-line:#d8e0d9;--ab-white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fcfbf7;color:var(--ab-ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit}.site-shell{width:100%;max-width:none;margin:0}.site-header{display:flex;align-items:center;justify-content:space-between;padding:22px clamp(22px,5vw,76px);background:#f8f4eb;position:relative;z-index:20}.custom-logo-link img{max-height:58px;width:auto}.ab-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.ab-mark{width:42px;height:42px;border:1px solid;border-radius:50%;display:grid;place-items:center;font:20px Georgia}.ab-brand strong,.ab-brand small{display:block}.ab-brand strong{font:20px Georgia;font-weight:500}.ab-brand small{text-transform:uppercase;letter-spacing:.24em;font-size:8px;margin-top:5px}.primary-menu{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}.primary-menu a{text-decoration:none;font-size:14px;font-weight:700}.primary-menu>li:last-child>a{border:1px solid;padding:11px 17px;border-radius:99px}.menu-toggle{display:none;background:transparent;border:1px solid;border-radius:99px;padding:9px 14px}.site-main{min-height:55vh}.entry-header,.ab-page-hero{padding:90px clamp(24px,7vw,110px);background:linear-gradient(120deg,var(--ab-cream),#dfeae3)}.entry-title,.ab-display{font:500 clamp(3rem,7vw,6.8rem)/1.03 Georgia,'Times New Roman',serif;letter-spacing:-.055em;margin:0;max-width:980px}.entry-content>*:not(.alignfull):not(.alignwide){max-width:820px;margin-left:auto;margin-right:auto}.entry-content>.alignwide{max-width:1260px;margin-left:auto;margin-right:auto}.entry-content>.alignfull{max-width:none}.entry-content>p,.entry-content>ul,.entry-content>ol{font-size:1.06rem}.entry-content{overflow:hidden}.ab-section{padding:100px clamp(24px,7vw,110px)}.ab-section h2{font:500 clamp(2.4rem,5vw,4.7rem)/1.08 Georgia;letter-spacing:-.045em}.ab-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700;color:#587466}.ab-button .wp-block-button__link,.wp-block-button.ab-button .wp-block-button__link{border-radius:99px;padding:15px 23px;background:var(--ab-ink);color:white;font-weight:700}.ab-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--ab-ink);border-color:var(--ab-ink)}.ab-hero{min-height:690px;padding:100px clamp(24px,7vw,110px);background:linear-gradient(110deg,#f5f0e4 0 60%,#dce8df 60%);display:flex;align-items:center}.ab-hero .wp-block-columns{width:100%}.ab-hero h1{font:500 clamp(3.4rem,7.2vw,6.8rem)/1.03 Georgia;letter-spacing:-.055em;margin:.15em 0 .25em}.ab-hero p{font-size:1.18rem;color:#456057}.ab-art{min-height:430px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#f4dfc2 0 43%,#eef4ef 44% 60%,transparent 61%);display:grid;place-items:center}.ab-hours{background:white!important;padding:25px!important;max-width:260px;box-shadow:0 20px 50px #31524420}.ab-cards{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ab-card{background:white;padding:34px;min-height:260px;box-shadow:0 15px 40px #264a3a0c}.ab-card h3{font:500 1.55rem Georgia}.ab-card p{color:#5b6e66}.ab-pale{background:var(--ab-pale)}.ab-cream{background:var(--ab-cream)}.ab-dark{background:var(--ab-ink);color:white}.ab-dark p{color:#d6e1db}.ab-two-col{gap:8vw}.ab-stat{border-top:1px solid currentColor;padding-top:20px}.ab-stat strong{display:block;font:1.8rem Georgia;color:var(--ab-gold)}.ab-prices{list-style:none;padding:0}.ab-prices li{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--ab-line);padding:16px 0}.ab-prices strong{white-space:nowrap}.ab-quote{background:white;padding:34px}.ab-quote p{font:1.12rem Georgia}.ab-contact-card{background:white;padding:40px}.ab-notice{border-left:4px solid var(--ab-gold);background:#fff7ed;padding:18px 22px;font-size:.9rem}.wp-block-query .wp-block-post{background:white;padding:28px}.site-footer{background:#112a24;color:white;padding:58px clamp(24px,7vw,110px)}.footer-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:40px}.site-footer a{color:white}.site-footer p{color:#b7c6bf}.footer-menu{list-style:none;padding:0;margin:0}.footer-meta{border-top:1px solid #ffffff22;margin-top:35px;padding-top:20px;font-size:.8rem;color:#96aaa1}.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px)}
/* Override the core first-child reset inside page content so the first block
   keeps the same vertical rhythm as other flow children. The stronger theme
   selector and important flag also win when global styles are printed later. */
body.acupuncture-braintree-theme .entry-content :where(.is-layout-flow)>:first-child{
  margin-block-start:var(--wp--style--block-gap,1.5rem)!important;
}

/* Modern service dropdown. */
.primary-menu>li{position:relative}
.primary-menu>li>a{display:flex;align-items:center;min-height:44px}
.primary-menu>li:last-child>a{border:1px solid;padding:11px 17px;border-radius:99px}
.primary-menu .menu-item-has-children>a::after{content:"";width:7px;height:7px;margin-left:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}
.primary-menu .sub-menu{position:absolute;top:calc(100% + 12px);left:50%;z-index:30;min-width:260px;margin:0;padding:10px;list-style:none;background:#fff;border:1px solid rgba(25,51,44,.1);border-radius:16px;box-shadow:0 22px 55px rgba(25,51,44,.16);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.primary-menu .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.primary-menu .sub-menu li+li{border-top:1px solid rgba(25,51,44,.07)}
.primary-menu .sub-menu a{display:block;padding:11px 13px;border-radius:9px;font-weight:600;white-space:nowrap;transition:background .15s ease,color .15s ease}
.primary-menu .sub-menu a:hover,.primary-menu .sub-menu a:focus{background:var(--ab-pale);color:var(--ab-ink);outline:none}
.primary-menu .menu-item-has-children:hover>.sub-menu,.primary-menu .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.primary-menu .menu-item-has-children:hover>a::after,.primary-menu .menu-item-has-children:focus-within>a::after{transform:translateY(2px) rotate(225deg)}
.submenu-toggle{display:none}

/* Homepage imagery */
.ab-hero-media{position:relative;min-height:500px}
.ab-hero-photo{height:500px;margin:0;overflow:hidden;border-radius:260px 260px 28px 28px;box-shadow:0 28px 70px rgba(25,51,44,.14)}
.ab-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% center}
.ab-hero-media .ab-hours{position:absolute;right:-18px;bottom:28px;z-index:2}
.ab-about-photo{margin:0 0 32px;overflow:hidden;border-radius:180px 180px 16px 16px;background:var(--ab-pale)}
.ab-about-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.ab-membership{display:flex;align-items:center;gap:18px;margin-top:28px;padding-top:22px;border-top:1px solid var(--ab-line)}
.ab-membership img{width:72px;height:auto}.ab-membership p{margin:0;font-size:.82rem;color:#586d64}
.ab-treatment-image-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.ab-treatment-image-grid figure{margin:0;overflow:hidden;border-radius:14px;background:#fff}
.ab-treatment-image-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .35s ease}
.ab-treatment-image-grid figure:hover img{transform:scale(1.025)}
.ab-treatment-image-grid figcaption{padding:12px 15px;margin:0;background:#fff;color:#4f675d;font-size:.78rem}
.ab-clinic-photo{margin:0 0 28px;overflow:hidden;border-radius:14px}
.ab-clinic-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}

/* Internal service patterns */
.ab-service-intro{background:#fffdf9}.ab-service-hero{gap:clamp(40px,6vw,90px)}.ab-service-hero h2{margin:.18em 0 .3em}.ab-service-lead{font-size:1.12rem;color:#456057;max-width:700px}.ab-service-photo{margin:0;overflow:hidden;border-radius:220px 220px 20px 20px;box-shadow:0 28px 65px rgba(25,51,44,.13)}.ab-service-photo img{display:block;width:100%;aspect-ratio:4/4.7;object-fit:cover}.ab-service-panel{height:100%;padding:clamp(28px,4vw,46px);background:#fff;border-radius:16px;box-shadow:0 18px 46px rgba(25,51,44,.08)}.ab-service-panel h3{font:500 1.7rem Georgia;margin-top:0}.ab-service-panel li+li{margin-top:9px}.ab-faq-grid{align-items:stretch;margin-top:44px}.ab-faq-grid>.wp-block-column{display:flex}.ab-faq-card{width:100%;padding:28px;background:var(--ab-cream);border-radius:14px}.ab-faq-card h3{font:500 1.35rem Georgia;margin-top:0}.ab-service-cta h2{margin-top:0}.ab-service-cta .wp-block-button__link{background:#fff!important;color:var(--ab-ink)!important}.ab-service-links a{text-decoration:none}.ab-service-links a:hover{text-decoration:underline}
.ab-testimonial-intro{max-width:760px;margin-left:auto;margin-right:auto}.ab-quote-grid{margin-top:34px}.ab-quote-grid .ab-quote{height:100%;margin:0}.ab-featured-quote{margin-top:24px;border-left:4px solid var(--ab-gold)}.ab-contact-details{margin-top:28px;padding-top:8px;border-top:1px solid var(--ab-line)}.ab-contact-details h3{margin-bottom:4px;font-size:1.15rem}.ab-contact-details p{margin-top:0}

/* Balanced practitioner/about section */
.ab-about-section{background:#fffdf9}
.ab-about-layout{gap:clamp(48px,7vw,110px);align-items:center}
.ab-about-section .ab-about-photo{margin:0;overflow:hidden;border-radius:240px 240px 22px 22px;box-shadow:0 28px 65px rgba(25,51,44,.12)}
.ab-about-section .ab-about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% center}
.ab-about-copy{max-width:720px}
.ab-about-section .ab-about-copy h2{max-width:680px;margin:.18em 0 .42em;font-size:clamp(2.8rem,4.3vw,4.8rem)}
.ab-about-intro{font-size:1.12rem;color:#405b51}
.ab-about-copy>p:not(.ab-eyebrow){max-width:680px}
.ab-about-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:34px;border-top:1px solid var(--ab-line);border-bottom:1px solid var(--ab-line)}
.ab-about-stats>div{padding:22px 18px 22px 0}
.ab-about-stats>div+div{padding-left:18px;border-left:1px solid var(--ab-line)}
.ab-about-stats strong,.ab-about-stats span{display:block}
.ab-about-stats strong{font:500 1.25rem Georgia;color:var(--ab-ink);margin-bottom:5px}
.ab-about-stats span{font-size:.72rem;line-height:1.45;color:#65786f}
.ab-about-stats h3,.ab-about-stats p{display:block;margin:0}
.ab-about-stats h3{font:500 1.25rem Georgia;color:var(--ab-ink);margin-bottom:5px}
.ab-about-stats p{font-size:.72rem;line-height:1.45;color:#65786f}
.ab-about-section .ab-membership{display:grid!important;grid-template-columns:74px 1fr;align-items:center;gap:20px;margin-top:26px;padding:18px 22px;border:0;border-radius:12px;background:var(--ab-cream)}
.ab-about-section .ab-membership img{width:64px}.ab-about-section .ab-membership p{font-size:.78rem;line-height:1.5}.ab-about-section .ab-membership strong{font-size:.84rem;color:var(--ab-ink)}

/* Native contact form */
.ab-form-response:empty{display:none}.ab-native-form.is-submitting{opacity:.72}.ab-form-submit:disabled{cursor:wait;opacity:.75;transform:none}
.ab-native-form-wrap{margin-top:24px}.ab-native-form p{margin:0 0 18px}.ab-native-form label{display:block;font-size:.78rem;font-weight:700;color:var(--ab-ink)}.ab-native-form input[type="text"],.ab-native-form input[type="email"],.ab-native-form input[type="tel"],.ab-native-form textarea{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--ab-line);border-radius:8px;background:#fff;color:var(--ab-ink);font:inherit;transition:border-color .18s,box-shadow .18s}.ab-native-form textarea{resize:vertical}.ab-native-form input:focus,.ab-native-form textarea:focus{outline:0;border-color:var(--ab-sage);box-shadow:0 0 0 3px rgba(111,143,126,.18)}.ab-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ab-form-consent label{display:flex;gap:10px;align-items:flex-start;font-weight:400;line-height:1.5}.ab-form-consent input{margin-top:4px}.ab-form-submit{appearance:none;border:1px solid var(--ab-ink);border-radius:99px;padding:14px 22px;background:var(--ab-ink);color:#fff;font:700 .9rem Arial,sans-serif;cursor:pointer;transition:transform .18s,background .18s}.ab-form-submit:hover{background:#284a40;transform:translateY(-1px)}.ab-form-help{font-size:.75rem;color:#667970}.ab-form-notice{margin-bottom:20px;padding:14px 16px;border-radius:8px;font-size:.86rem}.ab-form-notice.is-success{background:#e8f3eb;color:#234c35}.ab-form-notice.is-error{background:#fff0ed;color:#762a20}.ab-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Viewport entry motion: progressive enhancement only. */
.ab-motion-ready .ab-reveal{opacity:0;transform:translateY(26px);transition:opacity .65s cubic-bezier(.22,1,.36,1) var(--ab-reveal-delay,0ms),transform .65s cubic-bezier(.22,1,.36,1) var(--ab-reveal-delay,0ms);will-change:opacity,transform}.ab-motion-ready .ab-reveal.is-visible{opacity:1;transform:none}.ab-motion-ready .ab-reveal.wp-block-image{transform:translateY(22px) scale(.985)}.ab-motion-ready .ab-reveal.wp-block-image.is-visible{transform:none}@media(prefers-reduced-motion:reduce){.ab-reveal{opacity:1!important;transform:none!important;transition:none!important}}

@media(max-width:900px){.menu-toggle{display:block}.primary-navigation{display:none;position:absolute;top:84px;left:20px;right:20px;background:white;padding:18px;box-shadow:0 20px 45px #17332d22;border-radius:16px}.primary-navigation.is-open{display:block}.primary-menu{display:block}.primary-menu>li{padding:2px 0}.primary-menu>li>a{padding:10px 44px 10px 10px}.primary-menu>li:last-child>a{margin-top:8px;display:inline-flex;padding:11px 17px}.primary-menu .menu-item-has-children>a::after{display:none}.submenu-toggle{display:grid;place-items:center;position:absolute;right:2px;top:4px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--ab-ink);font-size:0;cursor:pointer}.submenu-toggle::before{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}.submenu-toggle[aria-expanded="true"]::before{transform:translateY(2px) rotate(225deg)}.primary-menu .sub-menu{position:static;display:none;min-width:0;margin:0 0 5px 12px;padding:5px 0 5px 12px;border:0;border-left:1px solid var(--ab-line);border-radius:0;box-shadow:none;opacity:1;visibility:visible;transform:none;transition:none}.primary-menu .sub-menu.is-open{display:block}.primary-menu .sub-menu li+li{border:0}.primary-menu .sub-menu a{padding:9px 12px;white-space:normal}.primary-menu .menu-item-has-children:hover>.sub-menu,.primary-menu .menu-item-has-children:focus-within>.sub-menu{transform:none}.ab-hero{background:linear-gradient(160deg,#f5f0e4 0 76%,#dce8df 76%)}.ab-cards{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ab-section,.ab-page-hero{padding:72px 22px}.ab-hero{padding:80px 22px}.ab-cards,.footer-grid{grid-template-columns:1fr}.ab-art{min-height:300px}.wp-block-columns{gap:32px}.site-footer{padding:48px 22px}}
@media(max-width:900px){.ab-hero-media,.ab-hero-photo{min-height:0;height:420px}.ab-hero-media .ab-hours{right:12px}.ab-treatment-image-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.ab-about-layout{gap:48px}.ab-about-section .ab-about-photo img{aspect-ratio:4/4.6}.ab-about-stats{grid-template-columns:1fr}.ab-about-stats>div{padding:15px 0}.ab-about-stats>div+div{padding-left:0;border-left:0;border-top:1px solid var(--ab-line)}}
@media(max-width:600px){.ab-hero-media,.ab-hero-photo{height:340px}.ab-hero-media .ab-hours{right:8px;bottom:12px;max-width:220px}.ab-treatment-image-grid{grid-template-columns:1fr}}
@media(max-width:600px){.ab-form-row{grid-template-columns:1fr;gap:0}.ab-contact-card{padding:28px 22px}}
@media(max-width:781px){.ab-service-photo{max-width:520px}.ab-service-cta .wp-block-buttons{justify-content:flex-start!important}.ab-faq-grid>.wp-block-column{display:block}}
