/* Shared responsive refinements. Loaded last on every content page. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,video{max-width:100%}
main,section,article,aside,fieldset,.hero-copy,.section-heading>*,.step>div{min-width:0}
button,a,input,select,textarea,summary{touch-action:manipulation}
.mobile-contact-bar{display:none}
nav.breadcrumb{position:static;background:transparent;box-shadow:none;padding:0}
@media(max-width:960px){
 body>header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line);height:72px;padding:0 5%;max-width:none;gap:16px}
 body>header .brand-logo{width:136px!important}
 .menu{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:46px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 13px;font-size:14px}
 #navigation{display:none;position:absolute;top:100%;left:0;right:0;z-index:31;background:#fff;padding:12px 5% 20px;box-shadow:0 12px 22px #12244315;max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;gap:3px}
 #navigation.open{display:flex;flex-direction:column;align-items:stretch}
 #navigation>a{display:flex;align-items:center;min-height:48px;padding:12px 14px;border-radius:8px;font-size:16px}
 #navigation>a:not(.button):hover,#navigation>a[aria-current=page]:not(.button){background:var(--pale)}
 #navigation>.button{margin-top:7px;color:white}
 html{scroll-padding-top:88px}
 .hero{grid-template-columns:1fr;gap:28px}
 .hero-copy{max-width:660px;margin-inline:auto;width:100%}
 .hero-visual{max-width:520px;margin-inline:auto}
 .services,.service-directory{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contact-box:has(.discovery-form){grid-template-columns:1fr}
 .contact-box:has(.discovery-form) .contact-intro{position:static}
 .contact-box .discovery-form{max-width:none}
}
@media(max-width:720px){
 :root{--mobile-gutter:20px}
 body{font-size:16px;line-height:1.65}
 body:has(.mobile-contact-bar){padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
 body>header{height:calc(68px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:max(var(--mobile-gutter),env(safe-area-inset-left,0px));padding-right:max(var(--mobile-gutter),env(safe-area-inset-right,0px))}
 #navigation{padding-inline:var(--mobile-gutter);max-height:calc(100dvh - 68px - env(safe-area-inset-top,0px))}
 html{scroll-padding-top:calc(88px + env(safe-area-inset-top,0px))}
 h1,h2,h3{overflow-wrap:break-word;text-wrap:balance}
 h2{font-size:29px;line-height:1.22;letter-spacing:-.9px}
 .eyebrow{line-height:1.6;letter-spacing:1px}
 .hero{padding:28px var(--mobile-gutter) 30px;gap:24px}
 .hero-clear h1{font-size:clamp(32px,8.8vw,47px);line-height:1.12;letter-spacing:-1.1px;margin:18px 0}
 .hero-clear .hero-copy>p{font-size:16px;line-height:1.65;margin:13px 0}
 .hero-clear .hero-audience{font-size:15px;line-height:1.5}
 .hero-services{margin:18px 0;gap:7px}
 .hero-clear .hero-services li{font-size:11px;padding:5px 8px}
 .hero-clear .hero-actions{margin-top:20px;gap:8px}
 .button{min-height:48px;font-size:15px;text-align:center;max-width:100%;gap:12px;white-space:normal}
 .hero-clear .hero-actions .button{padding:14px 12px}
 .hero-clear .hero-actions .text-link{min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 0}
 .hero-clear .hero-note{margin-top:10px;font-size:12px;gap:4px 14px}
 .photo-wrap{min-height:320px;border-radius:80px 80px 16px 16px}
 .hero-image-overlay{padding:24px 16px 16px}
 .hero-clear .floating-tag{max-width:100%;padding:10px 12px}
 .hero-visual-footer{grid-template-columns:minmax(0,1fr) 88px;gap:12px}
 .circle-note{width:88px;height:88px}
 .circle-note strong{font-size:11px}
 .hero-clear .photo-caption strong{font-size:16px}
 .promise-strip{padding:16px var(--mobile-gutter);gap:6px;font-size:12px}
 .section{padding:42px var(--mobile-gutter)}
 .section-heading{margin-bottom:24px}
 .section-heading p{margin-top:14px}
 .section-heading .eyebrow{margin-bottom:10px}
 .profiles{margin-top:24px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .profiles button{min-height:48px;padding:12px;font-size:14px}
 .profile-result{padding:22px 18px;gap:20px;margin-top:16px}
 .profile-result h3{font-size:23px;line-height:1.3}
 .profile-result .button{font-size:14px}
 .text-link,.quiz-link,.service-page-link{line-height:1.5}
 .profile-advice .text-link,.pricing-note>a,.service-page-link,.import-aside>.text-link,.article-card>.text-link{display:flex;align-items:center;min-height:44px;padding-block:10px}
 .quiz-link{min-height:48px;margin-top:12px;padding:10px 0}
 .services,.service-directory,.article-grid,.audience-grid{grid-template-columns:1fr;gap:16px}
 .service,.full-card,.article-card,.audience-card,.review-card{padding:24px 20px}
 .service{padding-bottom:0}
 .full-card{padding-bottom:24px}
 .service-top{margin-bottom:16px}
 .service summary{min-height:56px;font-size:15px;line-height:1.45;padding-block:14px}
 .service h3{font-size:24px}
 .service>p{min-height:0;margin:14px 0 18px}
 .service-page-link{padding-bottom:18px}
 .brochure-box{padding:22px 20px;gap:18px}
 .approach{gap:28px}
 .approach h2{font-size:32px}
 .approach .eyebrow{margin-bottom:16px}
 .approach-intro>p{margin:18px 0}
 .step{gap:16px;padding-bottom:28px}
 .step h3{font-size:21px}
 .approach-note{font-size:18px;padding:20px 16px;transform:none}
 .experience-stats{padding:24px 12px}
 .experience-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}
 .experience-stat{padding:6px 8px;gap:9px;justify-content:flex-start}
 .experience-stat+.experience-stat{border-top:0;border-left:1px solid #ffffff40}
 .experience-stat-value{font-size:clamp(28px,7.5vw,46px);letter-spacing:-1.2px;line-height:1.15}
 .experience-stat-label{font-size:12px;line-height:1.45}
 .review-grid{grid-template-columns:1fr;gap:16px}
 .review-card blockquote{margin:18px 0;font-size:16px;line-height:1.65}
 .review-stars{letter-spacing:1px}
 .review-note{font-size:13px;line-height:1.65}
 .faq-layout{gap:24px}
 .faqs summary{padding-block:18px;font-size:16px;line-height:1.5;min-height:52px;gap:14px}
 .faqs p{margin:0 0 20px}
 .page-intro{padding:18px var(--mobile-gutter) 30px}
 nav.breadcrumb{display:flex;position:static;gap:8px;margin-bottom:18px;font-size:12px;line-height:1.5}
 .breadcrumb a{display:inline-flex;align-items:center;min-height:36px}
 .breadcrumb span:last-child{min-width:0;overflow-wrap:anywhere}
 .page-intro h1{font-size:clamp(30px,8vw,40px);line-height:1.18;margin:16px 0}
 .page-intro p{font-size:16px;margin:14px 0 0;line-height:1.65}
 .imported-layout,.detail-layout{grid-template-columns:1fr;gap:28px}
 .section.imported-content{padding:36px var(--mobile-gutter)}
 .prose,.imported-content{font-size:16px;line-height:1.75}
 .prose h2,.imported-content h2{font-size:25px;line-height:1.35;margin:30px 0 16px;text-wrap:pretty}
 .prose li,.imported-content li{overflow-wrap:anywhere}
 .prose ul,.prose ol,.imported-content ul,.imported-content ol{padding-left:22px}
 .prose .button{width:100%}
 .article-cover{height:auto;max-height:300px;margin-bottom:22px}
 .import-photo{height:auto;aspect-ratio:4/3;object-fit:cover}
 .detail-aside,.import-aside{padding:22px;position:static}
 .page-cta,.import-cta{width:auto;margin:0 var(--mobile-gutter) 36px;padding:28px 20px}
 .page-cta h2,.import-cta h2{font-size:28px}
 .page-cta .button,.import-cta .button{width:100%}
 .sitemap-list{columns:1;padding-left:20px}
 .sitemap-list a{display:inline-flex;align-items:center;min-height:44px}
 .pricing-wrap{width:calc(100% - 2*var(--mobile-gutter))}
 .pricing-hero{padding-top:18px;padding-bottom:32px}
 .pricing-crumb{margin-bottom:20px}
 .pricing-hero h1{font-size:clamp(31px,8.2vw,42px);line-height:1.18;margin-bottom:18px}
 .pricing-heading{margin-bottom:24px}
 .pricing-grid{gap:18px}
 .price-card{padding:24px 20px}
 .price-card h3{font-size:25px}
 .price-label{font-size:11px;margin-bottom:10px}
 .price-amount{font-size:44px;margin-top:16px}
 .price-unit{font-size:14px;margin-bottom:18px}
 .price-card ul{font-size:15px}
 .price-footnote{font-size:13px}
 .pricing-faq summary{padding:18px 0;font-size:16px;line-height:1.5}
 .pricing-final{padding:26px 20px;margin-bottom:36px}
 .pricing-phone{min-height:44px;font-size:15px}
 .contact-section{padding:36px var(--mobile-gutter)}
 .contact-box:has(.discovery-form){padding:0;background:transparent;gap:0;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
 .contact-box:has(.discovery-form) .contact-intro{background:var(--navy);padding:26px 20px;width:100%}
 .contact-intro h2{font-size:30px;margin-top:16px}
 .contact-intro>p{margin-bottom:20px}
 .contact-intro>a{min-height:44px;display:flex;align-items:center;font-size:15px}
 .contact-intro .contact-phone{font-size:22px;margin-bottom:0}
 .contact-location{margin-top:16px;line-height:1.6;font-size:13px}
 .contact-page .contact-box:has(.discovery-form) .contact-intro{padding:16px 20px}
 .contact-page .contact-intro .eyebrow,.contact-page .contact-intro h2,.contact-page .contact-intro>p{display:none}
 .contact-page .contact-location{margin-top:8px}
 .contact-box .discovery-form{padding:24px 16px;border-radius:0;width:100%;margin:0;max-width:none}
 .questionnaire-top{padding-bottom:18px;margin-bottom:24px}
 .questionnaire-offer{font-size:22px}
 .discovery-form legend{font-size:21px;line-height:1.35}
 .discovery-form label{font-size:15px;line-height:1.55;margin-bottom:18px}
 .questionnaire-columns{grid-template-columns:1fr;gap:0}
 .discovery-form input,.discovery-form select,.discovery-form textarea{font-size:16px;min-height:48px;padding:12px;scroll-margin-top:90px}
 .discovery-form textarea{min-height:116px}
 .channel-options{gap:10px}
 .channel-options label{padding:12px 10px;min-height:50px;font-size:15px}
 .discovery-form .channel-options input{min-height:0}
 .availability-calendar{margin-inline:-8px;padding:10px 4px;border-radius:10px}
 .calendar-toolbar{padding-inline:6px}
 .discovery-form .calendar-toolbar button{height:44px;width:44px}
 .calendar-days,.calendar-weekdays{gap:2px}
 .discovery-form .calendar-days button{min-height:44px;font-size:15px;padding:10px 0;border-radius:6px}
 .time-options{gap:8px}
 .discovery-form .time-options button{min-height:70px;font-size:15px;padding:10px 4px}
 .time-options button span{font-size:13px}
 .selected-slots li{padding:10px;gap:8px;font-size:14px}
 .selected-slots li>span{min-width:0;overflow-wrap:anywhere}
 .discovery-form .selected-slots button{min-width:44px;height:44px;flex-shrink:0}
 .field-hint,.form-note,.contact-alternative{font-size:13px;line-height:1.6}
 .contact-alternative{display:inline-flex;align-items:center;min-height:44px}
 .questionnaire-error,#message-result{scroll-margin-top:90px}
 footer{padding:0 var(--mobile-gutter) 24px}
 .footer-top{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;padding:24px 0}
 .footer-top .brand,.footer-top p{grid-column:1/-1}
 .footer-top p{margin:12px 0 16px;font-size:14px}
 .footer-top>a:not(.brand),.footer-bottom a{display:flex;align-items:center;min-height:44px;font-size:14px}
 .footer-bottom{display:flex;flex-direction:column;gap:14px;font-size:13px}
 .footer-bottom>div{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
 dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px);padding:28px 20px;overscroll-behavior:contain}
 .close-dialog{width:44px;height:44px;right:8px;top:8px}
 dialog .eyebrow{padding-right:30px}
 .guide-options button{min-height:52px;font-size:16px;line-height:1.5;padding:14px}
 .back-button{min-height:44px;font-size:14px;margin-top:16px}
 .mobile-contact-bar{display:flex;position:fixed;z-index:25;bottom:0;left:0;right:0;background:#fff;gap:10px;padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-top:1px solid var(--line);box-shadow:0 -6px 22px #1224430b}
 .mobile-contact-bar a{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:9px;font-size:14px;font-weight:650;padding:10px 14px;text-align:center}
 .mobile-contact-bar .mobile-call{border:1px solid var(--line);background:var(--pale)}
 .mobile-contact-bar .mobile-discovery{flex:1;background:var(--navy);color:#fff}
 body:has(dialog[open]) .mobile-contact-bar,body:has(input:focus,textarea:focus,select:focus) .mobile-contact-bar{display:none}
}
@media(max-width:360px){
 :root{--mobile-gutter:16px}
 .hero-clear h1{font-size:30px}
 .hero-services{display:grid;grid-template-columns:1fr 1fr;gap:6px}
 .hero-services li{text-align:center;font-size:11px}
 .contact-section{padding-inline:10px}
 .contact-box .discovery-form{padding-inline:12px}
 .hero-clear .hero-actions .button{font-size:13px}
 .experience-stat{padding-inline:4px}
 .experience-stat-label{font-size:11px}
}
@media(hover:none){.button:hover{transform:none}}
