/* Phone-specific presentation. Desktop layout and approved copy stay intact. */
.direct-header .primary-nav .mobile-self-check,.direct-header .primary-nav .mobile-self-check-item{display:none}
@media(max-width:767px){
 html{scroll-padding-top:6rem}
 body{font-size:1rem;line-height:1.6}
 .wrap{padding-inline:20px}
 h1,h2,h3{text-wrap:pretty}
 h2,.section h2{font-size:1.85rem;line-height:1.18;letter-spacing:-.035em}
 h3{font-size:1.25rem;line-height:1.25}
 p{margin-bottom:1rem}
 .telehealth-strip,.page-services .telehealth-strip{font-size:.75rem;line-height:1.4;padding:7px 12px}
 .direct-header .primary-nav .mobile-self-check-item{display:block}
 /* One calm row; both booking choices remain in the complete phone menu. */
 .grouped-header.direct-header .header-bar,.grouped-header.direct-header.is-scrolled .header-bar{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;min-height:68px;padding:10px 20px}
 .direct-header .wordmark{flex:1 1 150px;min-width:0;gap:9px}
 .direct-header .centre-symbol{width:38px;height:38px}
 .direct-header .centre-name,.page-services .direct-header .centre-name{font-size:1.45rem}
 .direct-header .centre-name>span{font-size:.5rem;letter-spacing:.28em;margin-top:6px}
 .direct-header .menu-toggle{min-height:44px;padding:8px 12px;font-size:.875rem;margin-left:auto;flex:none}
 .grouped-header.direct-header .header-actions{display:none}
 .grouped-header.direct-header .primary-nav{order:3;width:100%;flex-basis:100%;min-width:0}
 .direct-header .primary-nav>ul{max-height:calc(100dvh - 100px);margin-top:10px;padding-top:8px}
 .direct-header .primary-nav a{font-size:1rem;padding:11px 8px;line-height:1.4;min-height:46px}
 .direct-header .primary-nav .mobile-self-check{display:flex;justify-content:center;background:#fcf3e6;border:1px solid #9a4426;color:#9a4426;border-radius:3px;margin-top:8px}
 .direct-header .primary-nav .mobile-booking{margin-top:8px}
 .section,body[class^="page-"] main>.section{padding-block:32px}
 .page-hero,body.page-services .services-hero{padding-block:32px}
 .page-hero h1,.influences-hero h1,.page-services .page-hero h1{font-size:2rem;line-height:1.14;letter-spacing:-.04em;max-width:none;margin-bottom:18px}
 .page-hero .lede,.page-services .page-hero .lede{font-size:1.0625rem;line-height:1.6}
 .eyebrow{font-size:.7rem;line-height:1.4;letter-spacing:.12em;margin-bottom:14px}
 .btn{font-size:.9375rem;line-height:1.4;padding:13px 16px;min-height:48px;white-space:normal;text-align:center;border-radius:3px}
 .hero-actions,.page-final-action{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:20px}
 .hero-actions>.btn,.page-final-action>.btn{width:100%}
 .hero-actions>a:not(.btn){padding-block:8px}
 .section :is(.page-final-action,.hero-actions){margin-bottom:0}
 /* Remove two competing insets in the opening. Image fills the phone width. */
 .page-home .home-hero .hero-stage{display:flex;flex-direction:column;padding:0}
 .page-home .hero-media-picture{display:block;height:156px;width:100%;flex:none;overflow:hidden}
 .page-home .home-hero .hero-stage-image{width:100%;height:156px;object-fit:cover;object-position:78% 60%}
 .page-home .hero-stage-inner{width:100%;padding:0 20px}
 .page-home .home-hero .hero-copy{padding:24px 0 28px;min-height:0}
 .page-home .home-hero .hero-copy h1.home-visual-headline{font-size:2rem;line-height:1.14;max-width:none;margin-bottom:16px}
 .page-home .hero-subheading{font:1.0625rem/1.55 var(--font-body);margin:0 0 20px}
 .page-home .home-hero .hero-actions{margin:0 0 12px}
 .page-home .self-check-hint{font-size:.8rem;line-height:1.5;margin-bottom:12px}
 .page-home .reassure{font-size:.875rem;line-height:1.5;margin:0}
 .page-home .roots-layout,.page-home .recognition-layout,.page-home .change-layout,.page-home .bio-layout{display:block}
 .page-home .recognition-list{margin-top:24px}
 .page-home .recognition-list li{padding-block:12px;line-height:1.5}
 .page-home .recognition-list strong{font-size:1rem;line-height:1.5}
 .page-home .roots-figure{margin:0 0 24px}
 .page-home .roots-figure img{height:240px;width:100%;object-position:center 12%}
 .page-home .roots-symptoms{gap:6px 10px;padding:12px}
 .page-home .outcome-list{margin-top:24px}
 .page-home .outcome-list li{margin-bottom:18px;gap:14px}
 .page-home .outcome-list h3,.page-home .approach-timeline h3{font-size:1.15rem;line-height:1.3}
 .page-home .approach-timeline{margin-top:24px}
 .page-home .approach-timeline li{padding-bottom:18px}
 .page-home .bio-proof{margin-top:24px;padding-block:20px;gap:12px}
 .page-home .two-paths{gap:16px;margin:24px 0}
 .page-home .two-paths article{padding:20px}
 .page-home .two-paths h3{font-size:1.6rem}
 .page-home .two-paths .path-number{margin-bottom:16px}
 .page-home .two-paths article p{font-size:1rem}
 /* Each audience is a readable row, with its detail directly underneath. */
 .audience-card-grid{grid-template-columns:minmax(0,1fr);gap:12px;padding-bottom:32px}
 .audience-card{border-radius:3px 20px 3px 3px}
 .audience-card summary{display:grid;grid-template-columns:30px minmax(0,1fr);gap:5px 12px;min-height:0;padding:18px 36px 18px 16px}
 .audience-card .support-icon{grid-column:1;grid-row:1/span 3;margin:0;width:28px;height:28px}
 .audience-card summary strong{grid-column:2;font-size:1.2rem;line-height:1.3;max-width:none}
 .audience-card summary>span:not(.support-icon):not(.card-expand){grid-column:2;font-size:.9rem;line-height:1.5}
 .audience-card summary .card-hint{font-size:.8rem!important;margin-top:4px}
 .card-expand{top:16px;right:14px}
 .audience-card details[open] summary{grid-template-columns:30px minmax(0,1fr)}
 .audience-card .audience-copy{padding:20px;font-size:1rem}
 .audience-intro{padding-bottom:24px!important}
 .audience-margin-note{font-size:1.05rem}
 /* Remove large desktop-shaped containers and excessive nested padding. */
 .personal-signature{padding:18px;min-height:0;margin-top:24px;border-radius:3px 24px 3px 3px}
 .personal-signature .signature-name{font-size:1.5rem}
 .story-chapters{margin-top:24px;gap:12px}
 .story-chapters article{margin-top:12px;padding:18px;border-radius:3px 20px 3px 3px}
 .story-chapters h3{font-size:1.25rem;line-height:1.3}
 .story-chapters .story-point{margin-bottom:12px}
 .about-purpose{margin:20px 0;padding-left:18px;font-size:1rem;line-height:1.6}
 .purpose-pillars article{padding:18px;gap:0 12px;margin-bottom:12px}
 .purpose-pillars article:last-child{margin-bottom:0}
 .purpose-pillars h3{font-size:1.3rem}
 .about-approach .dog-portrait{margin-bottom:24px}
 .dog-portrait img{height:156px;max-width:176px}
 .value-detail summary,.comfort-cards .value-detail summary{min-height:60px;font-size:1.1rem;line-height:1.35;padding-block:16px}
 .credentials-layout{gap:20px;margin-top:24px}
 .journey-hero .session-at-a-glance{margin-top:24px;padding:20px;border-radius:3px 24px 3px 3px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
 .session-at-a-glance strong{font-size:2.2rem}
 .session-at-a-glance>div{gap:8px}
 .first-session-steps{margin-top:24px}
 .first-session-steps>li{padding:18px 18px 18px 52px;margin-bottom:12px}
 .first-session-steps>li:before{left:16px;top:18px}
 .first-session-steps h3{font-size:1.2rem}
 .path-note{margin-block:24px;gap:18px}
 .path-note img{height:170px}
 .path-note figcaption{font:1.0625rem/1.55 var(--font-body)}
 .comfort-cards .value-detail>div{padding-left:0}
 .page-process .process-limits .wrap{max-width:calc(100% - 40px);padding:20px}
 .influences-chapter .takeaway-box{font:1rem/1.6 var(--font-body);padding:18px;margin:20px 0 24px}
 .influences-chapter h2{font-size:2rem}
 .chapter-caption{margin-bottom:20px}
 .influence-card h3{font-size:1.3rem}
 .influences-chapter .evidence-note{padding-inline:16px}
 .approach-compass{font-size:1rem;gap:8px 20px}
 .approach-compass a{padding:4px 0}
 .journal-empty{gap:24px}
 .journal-empty h2{font-size:1.85rem}
 .journal-mark{width:96px;height:96px;font-size:3rem}
 .demo-form{padding:20px;box-shadow:none;margin-top:24px}
 .field input,.field textarea,.faq-search input{font-size:1rem;min-height:48px}
 .faq-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .faq-chips a{font-size:.8rem;line-height:1.4;padding:10px;min-height:44px;align-items:center}
 .faq-item summary{padding:18px 28px 18px 0;line-height:1.5}
 .faq-item .faq-body{padding-right:0;font-size:1rem}
 .faq-group{padding-block:28px}
 .privacy-copy h2{font-size:1.65rem;margin-top:28px}
 .page-waiting-room .room-placeholder{padding:24px 20px;text-align:left}
 .room-placeholder h2,.room-placeholder h3{font-size:1.5rem}
 .self-check-section{padding:24px 16px}
 .quiz-shell{padding:20px;border-radius:3px 24px 3px 3px}
 .quiz-intro-layout .quiz-dog{height:120px;max-width:156px;margin:0 auto 20px;object-position:center 35%}
 .quiz-shell [data-quiz-title]{font-size:1.65rem;line-height:1.2}
 .quiz-shell .quiz-intro-layout p{font-size:.9375rem;line-height:1.6}
 .quiz-intro-layout .btn{width:100%}
 .quiz-answer{min-height:52px;font-size:1rem;line-height:1.5;padding:14px}
 .quiz-contexts,.quiz-answers,.quiz-result-grid{grid-template-columns:minmax(0,1fr)}
 .quiz-result-grid>*{min-width:0}
 .quiz-actions{flex-wrap:wrap;gap:12px}
 .quiz-actions .btn{flex:1 1 140px}
 /* Services uses an older base template; make its phone rhythm consistent. */
 .page-services .section{padding-block:32px}
 body.page-services .services-hero .hero-inner{padding-inline:20px}
 .page-services .page-hero .lede{font-family:var(--font-body)}
 .page-services .service-jumps{gap:0 16px;margin-top:16px;font-size:.85rem}
 .page-services .fee-list{gap:16px;margin-top:24px}
 .page-services .session-card{padding:20px;gap:8px 16px}
 .page-services .session-card h3{font-size:1.3rem}
 .page-services .session-card strong{font-size:2rem}
 .page-services .session-card .btn{width:100%;margin-top:12px}
 .page-services .cancellation-note{margin-top:24px;padding-top:20px}
 .page-services .service-disclosure summary{font-size:1.2rem;line-height:1.4;padding-block:18px}
 .service-disclosure-body{padding-bottom:20px}
 .service-questions-list{margin-top:24px}
 .site-footer,.page-services .site-footer{padding:28px 0 20px}
 .compact-footer{gap:24px}
 .footer-brand{margin-bottom:12px}
 .footer-brand img{width:36px;height:36px}
 .footer-brand>span,.page-services .footer-brand>span{font-size:1.5rem}
 .footer-line{font-size:.85rem}
 .compact-footer nav ul{gap:0 16px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .compact-footer nav a,.footer-contact a,.page-services .compact-footer nav a,.page-services .footer-contact a{font-size:.875rem;line-height:1.5;min-height:44px;padding-block:10px}
 .footer-meta{margin-top:20px;padding-top:16px}
 .footer-meta p{font-size:.75rem;line-height:1.6}
}
@media(max-width:359px){
 .direct-header .wordmark{flex-basis:140px}
 .page-home .home-hero .hero-copy h1.home-visual-headline{font-size:1.85rem}
 .page-hero h1{font-size:1.85rem}
}
@media(max-width:767px){
 body.page-services main .services-hero h1{font-size:2rem;line-height:1.14}
 .page-services .site-footer .footer-line{font:.85rem/1.5 var(--font-body);margin:0}
 .audience-card .support-icon{align-self:start}
 .about-final .wrap>a,.influences-final .wrap>a:not(.btn){display:inline-flex;align-items:center;min-height:44px;margin-top:8px}
 .page-waiting-room main .card{padding:24px 20px;text-align:left!important}
 .page-waiting-room main .card h2{font-size:1.4rem!important}
 .page-waiting-room main .card .btn{width:100%}
}

/* October 7: phone navigation and reading layouts, preserving the desktop design. */
.mobile-header-booking{display:none}
@media(max-width:767px){
 html.phone-menu-open{overflow:hidden}
 .grouped-header.direct-header .header-bar,.grouped-header.direct-header.is-scrolled .header-bar{gap:8px;padding-inline:20px;min-height:72px}
 .direct-header .wordmark{flex:1 1 150px;min-width:min-content;width:auto;gap:8px}
 .direct-header .centre-symbol{width:44px;height:44px}
 .direct-header .centre-name,.page-services .direct-header .centre-name{font-size:1.5rem;color:#9a4426;overflow-wrap:normal;white-space:nowrap}
 .direct-header .centre-name>span{font-size:.55rem;letter-spacing:.24em}
 .mobile-header-booking{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 11px;border:1px solid var(--moss);border-radius:3px;background:var(--moss);color:var(--paper);font:600 .875rem/1.3 var(--font-body);text-decoration:none;flex:none}
 .mobile-header-booking:hover{background:var(--moss-deep);color:var(--paper)}
 .direct-header .menu-toggle{padding:8px 10px;margin:0}
 /* An independent scrolling sheet keeps the page and header in place. */
 .grouped-header.direct-header .primary-nav[data-open=true]{position:fixed;inset:var(--phone-menu-top,72px) 0 0;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);padding:8px 20px max(20px,env(safe-area-inset-bottom));box-shadow:0 12px 24px #24443114}
 .grouped-header.direct-header .primary-nav>ul{max-height:none;overflow:visible;margin:0;padding:0;border-top:0}
 .grouped-header.direct-header .primary-nav a{font-size:1.125rem;min-height:48px;padding:12px 8px;line-height:1.35;border-radius:0}
 .direct-header .primary-nav li:not(:has(.mobile-booking,.mobile-self-check)){border-bottom:1px solid var(--line)}
 .grouped-header.direct-header .primary-nav a[aria-current=page]{background:var(--sage);text-decoration:none;border-left:3px solid var(--clay-deep);padding-left:12px}
 .grouped-header.direct-header .primary-nav .mobile-booking,.grouped-header.direct-header .primary-nav .mobile-self-check{border-radius:3px;min-height:48px;font-size:1rem}
 .direct-header .primary-nav .mobile-booking{margin-top:16px}
 .direct-header .primary-nav .mobile-self-check{margin-bottom:0}
 /* Space separates sections; related items share a compact, predictable rhythm. */
 .page-hero,body.page-services .services-hero{padding-block:28px}
 .page-hero h1,.page-services .page-hero h1{margin-bottom:16px;text-wrap:balance}
 .page-hero .page-final-action{margin-top:20px;gap:8px}
 .page-hero .page-final-action .btn-secondary{background:transparent;min-height:44px;padding-block:10px}
 .section :is(.page-final-action,.hero-actions){gap:12px}
 main a:not(.btn):not(.faq-chips a):not(.approach-compass a){text-decoration-thickness:1px}
 .section .wrap>a:not(.btn),.related-links>a,.service-jumps a,.influence-source,.quiz-text-button,.booking-guide a:not(.btn){display:inline-flex;align-items:center;min-height:44px;padding-block:8px}
 .related-links{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}
 .section .ending-link{margin:0}
 .section .wrap>.btn+a:not(.btn){display:flex;width:fit-content;margin-top:12px}
 .quiet-disclosure summary{min-height:48px}
 .page-home .hero-media-picture,.page-home .home-hero .hero-stage-image{height:128px}
 .page-home .home-hero .hero-copy{padding-block:24px}
 .page-home .home-hero .hero-copy h1.home-visual-headline{font-size:clamp(1.85rem,8.5vw,2.5rem);line-height:1.13;letter-spacing:-.035em}
 .page-home .hero-subheading{max-width:34ch;margin-bottom:20px}
 .page-home .self-check-hint{font-size:.875rem;line-height:1.45}
 .page-home .reassure{font-size:.9375rem}
 .page-home .recognition-layout>div+div{margin-top:24px}
 .page-home .recognition-list{margin-top:12px}
 .page-home .recognition-list strong{font-size:1.0625rem}
 .page-home .outcome-list{gap:0;margin-top:20px}
 .page-home .outcome-list li{margin:0;padding:14px 0;gap:12px;border-bottom:1px solid #e3d9c9}
 .page-home .outcome-list li:last-child{padding-bottom:0;border:0}
 .page-home .outcome-list h3{margin-bottom:4px}
 .page-home .approach-timeline li{padding:0 0 20px 48px}
 .page-home .approach-timeline li:last-child{padding-bottom:0}
 .page-home .approach-timeline h3{margin-bottom:4px}
 .page-home .two-paths article{padding:20px;border-radius:4px 20px 4px 4px}
 .page-home .two-paths .path-number{margin-bottom:12px}
 .page-home .two-paths .btn{width:100%}
 .page-home .path-note-text{font-size:.875rem!important;line-height:1.45}
 /* Session sequence reads as one timeline rather than four nested cards. */
 .first-session-steps{display:block;margin-top:20px}
 .first-session-steps>li{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:20px 0 20px 44px;margin:0}
 .first-session-steps>li:last-child{border-bottom:0;padding-bottom:0}
 .first-session-steps>li:before{left:0;top:20px;font-size:1.15rem}
 .first-session-steps .density-detail{margin-top:8px}
 .first-session-steps .quiet-disclosure summary{padding-block:12px}
 .expect-timeline{gap:0}
 .expect-timeline article{padding-block:18px}
 .expect-timeline article>span{top:18px}
 .audience-card summary{padding-right:44px}
 .audience-card summary .card-hint{font-size:.875rem!important}
 .audience-card .audience-copy{padding:20px;line-height:1.65}
 .influences-chapter .takeaway-box{margin-top:16px;padding:16px 18px}
 .influences-chapter .influence-card{padding-block:20px}
 .influence-card .influence-source{margin-bottom:4px}
 .evidence-detail summary{min-height:52px}
 .faq-chips a{font-size:.875rem;padding:10px 12px}
 .faq-item summary{font-size:1.0625rem;padding-block:18px}
 .faq-toggle-all{min-height:44px}
 /* Let the self-check use the phone's reading width, without nested card insets. */
 .page-self-check .self-check-section{padding:24px 20px 32px}
 .page-self-check .quiz-shell{padding:0;border:0;border-radius:0;background:transparent;margin-inline:auto;max-width:32rem}
 .page-self-check .quiz-intro-layout .quiz-dog{height:96px;max-width:128px;margin-bottom:20px}
 .page-self-check .quiz-shell [data-quiz-title]{font-size:1.85rem;line-height:1.2;max-width:none}
 .page-self-check .quiz-shell [data-quiz-title]:focus:not(:focus-visible){outline:none}
 .page-self-check .quiz-progress{margin-bottom:24px}
 .page-self-check .quiz-shell .quiz-intro-layout p{font-size:1rem;line-height:1.6}
 .page-self-check .quiz-answers{gap:10px;margin-top:20px}
 .page-self-check .quiz-answer{background:var(--paper);padding:14px 16px;min-height:52px;justify-content:flex-start;text-align:left}
 .page-self-check .quiz-answer.is-selected{background:var(--moss);color:var(--paper)}
 .page-self-check .quiz-chip{min-height:48px;font-size:1rem;padding:12px 16px;text-align:left}
 .page-self-check .quiz-actions{align-items:center;margin-top:20px;gap:12px}
 .page-self-check .quiz-actions .quiz-text-button{flex:0 1 auto;font-size:1rem}
 .page-self-check .quiz-footer{font-size:.875rem;margin-top:20px;line-height:1.55}
 .page-self-check .quiz-result-grid{gap:16px}
 .page-self-check .quiz-result-grid section{padding:18px}
 .page-self-check .quiz-load-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .field label,.field-error,.form-help,.form-status{line-height:1.5}
 .demo-form .btn{width:100%}
 .footer-meta p{font-size:.8125rem}
 .page-services .footer-brand{display:flex;align-items:center;gap:.75rem}
 .page-services .footer-brand small{font-weight:600;letter-spacing:.3em}
}
@media(max-width:359px){
 .grouped-header.direct-header .header-bar,.grouped-header.direct-header.is-scrolled .header-bar{padding-inline:16px;gap:8px 6px}
 .direct-header .centre-name,.page-services .direct-header .centre-name{font-size:1.3rem}
 .direct-header .centre-symbol{width:40px;height:40px}
 .mobile-header-booking{padding-inline:9px}
 .direct-header .menu-toggle{padding-inline:9px}
}

/* Give secondary reading links a reliable finger target on phones. */
@media(max-width:1200px){
 main p>a:only-child,
 main .section .wrap>a:not(.btn),
 main .section .wrap>div>a:not(.btn),
 main .service-disclosure-body>a:not(.btn){display:inline-flex;align-items:center;min-height:44px;padding-block:8px}
 main p>a:not(:only-child){padding-block:4px}
 .site-footer a{display:inline-flex;align-items:center;min-height:44px;padding-block:8px}
}

/* Tablet navigation uses the same independent sheet as phones. */
@media(min-width:768px) and (max-width:1200px){
 html.phone-menu-open{overflow:hidden}
 .grouped-header.direct-header .primary-nav[data-open=true]{position:fixed;inset:var(--phone-menu-top,150px) 0 0;width:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);padding:8px 24px max(24px,env(safe-area-inset-bottom));box-shadow:0 12px 24px #24443114}
 .grouped-header.direct-header .primary-nav>ul{max-height:none;overflow:visible;margin:0;padding:0;border-top:0}
}
