/* One mobile reading scale across authored pages, articles and legal documents.
   Keep this contract after the older component sheets; desktop is unchanged. */
@media(max-width:959px){
 :root{--section-space:96px;--layout-gap:40px}
 html[lang] body #main>:is(.section,.approved-section,.article-opening,.article-reading):not(.page-banner){padding-block:96px!important}
 html[lang] body #main :is(.new-hero-grid,.recognition-chapter,.approved-hero-grid,.approved-about-grid,.approved-visual-reading,.split-layout,.service-process-layout,.enquiry-grid){row-gap:40px}
 html[lang] body #main :is(.approved-section-heading,.section-heading){margin-bottom:32px}
 html[lang] body #main .approved-copy>p:not(:last-child),html[lang] body #main .reading-copy>p:not(:last-child){margin-bottom:22px}
}
@media(min-width:768px) and (max-width:959px){
 html[lang] body #main h1{font-size:clamp(36px,4.5vw,42px)!important;line-height:1.22!important}
 html[lang] body #main h2{font-size:clamp(30px,3.7vw,34px)!important;line-height:1.28!important}
 html[lang] body #main h3{font-size:clamp(24px,2.6vw,26px)!important;line-height:1.32!important}
}
@media(max-width:767px){
 :root{--type-h1:clamp(30px,8.2vw,36px);--type-h2:clamp(26px,7.2vw,30px);--type-h3:clamp(21px,5.7vw,24px);--type-body:16px;--section-space:88px;--layout-gutter:24px;--layout-gap:36px}
 /* Explicit sizes prevent service/card overrides from enlarging the same heading. */
 html[lang] body #main h1{font-size:var(--type-h1)!important;line-height:1.22!important;letter-spacing:-.018em}
 html[lang] body #main h2{font-size:var(--type-h2)!important;line-height:1.28!important;letter-spacing:-.015em}
 html[lang] body #main h3{font-size:var(--type-h3)!important;line-height:1.32!important;letter-spacing:-.01em}
 html[lang] body #main .banner-title{font-size:var(--type-h1);line-height:1.22}
 html[lang] body #main>:is(.section,.approved-section,.article-opening,.article-reading):not(.page-banner){padding-block:88px!important}
 html[lang] body #main.flow-home>.elevated-hero{padding-top:64px!important;padding-bottom:88px!important}
 html[lang] body #main.flow-page .page-banner .page-banner-inner{min-height:210px;padding-block:48px;gap:16px}
 html[lang] body #main:is(.flow-page,.blog-article) :is(.approved-copy,.reading-copy,.visual-reading-content,.service-process-copy,.foundation-copy,.recognition-content,.familiar-list,.approach-introduction,.about-copy,.process-timeline,.resource-card,.article-copy,.legal-copy,.enquiry-intro,.contact-method-grid,.package-description) :is(p,li){font-size:16px;line-height:1.65}
 html[lang] body #main :is(.new-hero-copy>p:not(.eyebrow),.approved-card-body>p,.testimonial-quote blockquote,.experience-quote blockquote,.legal-copy p,.article-copy p,.article-copy li){font-size:16px;line-height:1.65}
 html[lang] body #main .reflection-lead p{font-size:24px;line-height:1.4}
 html[lang] body #main .approved-quote{font-size:22px;line-height:1.5;padding:24px}
 html[lang] body #main :is(.eyebrow,.card-index){font-size:11px!important;line-height:1.6!important;letter-spacing:.08em;max-width:100%}
 html[lang] body #main :is(.cta-caption,.field-help,.preview-form-note,.new-portrait-credentials,.new-hero-support p,.story-role,.legal-version){font-size:14px!important;line-height:1.6!important}
 html[lang] body #main .new-portrait-name{font-size:23px!important;line-height:1.3!important}
 html[lang] body #main .new-credentials p{font-size:13px!important;line-height:1.6!important}
 html[lang] body #main :is(.button,.text-link,.package-book){font-size:15px;line-height:1.5;min-height:46px}
 html[lang] body #main :is(input:not([type=checkbox]):not([type=radio]),textarea,select){font-size:16px;line-height:1.5}
 html[lang] body #main .field label{font-size:15px;line-height:1.5}
 html[lang] body #main :is(.approved-cards,.editorial-cards,.credential-cards,.values-cards,.principle-cards,.resource-grid){gap:28px}
 html[lang] body #main :is(.approved-cards,.editorial-cards,.credential-cards,.values-cards,.principle-cards)>article{padding:26px 24px}
 html[lang] body #main .blog-grid{row-gap:32px}
 html[lang] body #main .blog-card-content{padding:24px;gap:18px}
 html[lang] body #main .blog-card-content h2,html[lang] body #main .article-sidebar :is(h2,h3){font-size:22px!important;line-height:1.3!important}
 html[lang] body #main .article-copy h2{margin-top:44px;margin-bottom:20px}
 html[lang] body #main .article-copy h3{margin-top:34px;margin-bottom:18px}
 html[lang] body #main .article-photo{margin-bottom:40px}
 html[lang] body #main .legal-copy h2{margin-top:40px;padding-top:32px;margin-bottom:22px}
 html[lang] body .site-footer.calm-footer .newsletter-section{padding-block:72px}
 html[lang] body .site-footer.calm-footer .newsletter-introduction h2{font-size:28px;line-height:1.28}
 html[lang] body .site-footer.calm-footer .newsletter-introduction p{font-size:16px;line-height:1.65}
 html[lang] body .site-footer.calm-footer .footer-main{row-gap:44px}
 html[lang] body .site-footer.calm-footer .footer-brand>p{font-size:15px;line-height:1.65}
}
@media(max-width:380px){
 :root{--layout-gutter:20px;--section-space:80px}
 html[lang] body #main>:is(.section,.approved-section,.article-opening,.article-reading):not(.page-banner){padding-block:80px!important}
 html[lang] body #main.flow-home>.elevated-hero{padding-bottom:80px!important}
 html[lang] body #main :is(.approved-cards,.editorial-cards,.credential-cards,.values-cards,.principle-cards)>article{padding:24px 22px}
}

/* Contact details, quiet booking captions and shared footer social navigation. */
html[lang] body #main.flow-contact :is(.contact-method-grid,.approved-contact-methods) a:is([href^="mailto:"],[href^="tel:"]){font-weight:700;color:#2d4a3e}
html[lang] body #main.flow-contact :is(.contact-method-grid,.approved-contact-methods) article>.button{margin-top:20px}
html[lang] body #main.flow-contact :is(.contact-method-grid,.approved-contact-methods) article>p:has(>.button){margin-top:20px;margin-bottom:0}
html[lang] body #main.flow-contact :is(.contact-method-grid,.approved-contact-methods) article>p:has(+.button){margin-bottom:0}
html[lang] body #main.flow-contact .cta-caption{display:block;font:400 14px/1.6 Sohne,Arial,sans-serif!important;letter-spacing:0;color:#59645c;margin:14px 0 0!important;max-width:100%}
html[lang] body #main.flow-contact .contact-social-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px 72px}
html[lang] body #main.flow-contact .contact-social-copy{min-width:0;max-width:760px}
html[lang] body #main.flow-contact .contact-social-copy :is(.section-heading,.approved-section-heading){max-width:none;margin-bottom:0}
html[lang] body #main.flow-contact .contact-social-layout>.footer-socials{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:0;min-width:180px}
html[lang] body #main.flow-contact .contact-social-layout>.footer-socials a{display:flex;align-items:center;justify-content:flex-start;gap:14px;width:auto;height:auto;min-height:48px;padding:12px 20px;border:1px solid #a2b19a;border-radius:8px;background:#fffaf06b;font:400 16px/1.5 Sohne,Arial,sans-serif;color:#2d4a3e;text-decoration:none;transition:background .2s,color .2s}
html[lang] body #main.flow-contact .contact-social-layout>.footer-socials a:hover{background:#2d4a3e;color:#fffdf8}
html[lang] body #main.flow-contact .contact-social-layout>.footer-socials svg{flex:0 0 20px}
html[lang] body .site-footer.calm-footer .footer-bottom{grid-template-columns:minmax(0,1fr) auto auto;column-gap:32px}
html[lang] body .site-footer.calm-footer .footer-bottom>.footer-bottom-socials{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;gap:10px;margin:0}
html[lang] body .site-footer.calm-footer .footer-bottom>.language-control{grid-column:3;grid-row:2;justify-self:end}
html[lang] body .site-footer.calm-footer .footer-bottom-socials a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #dce5d760;border-radius:50%;color:#f5f0e5;background:transparent;text-decoration:none;transition:background .2s,color .2s}
html[lang] body .site-footer.calm-footer .footer-bottom-socials a:hover{background:#e6ecdf;color:#2d4a3e}
html[lang] body :is(.contact-social-layout,.footer-bottom-socials) a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:959px){
 html[lang] body #main.flow-contact .contact-social-layout{grid-template-columns:minmax(0,1fr);gap:32px}
 html[lang] body #main.flow-contact .contact-social-layout>.footer-socials{flex-direction:row;flex-wrap:wrap;min-width:0;justify-content:flex-start}
 html[lang] body #main.flow-contact .contact-social-layout>.footer-socials a{padding:10px 14px;gap:10px;font-size:15px}
 html[lang] body .site-footer.calm-footer .footer-bottom{grid-template-columns:minmax(0,1fr) auto;gap:24px 16px}
 html[lang] body .site-footer.calm-footer .footer-bottom>span:first-child{grid-column:1/-1;grid-row:2}
 html[lang] body .site-footer.calm-footer .footer-bottom>.footer-bottom-socials{grid-column:1;grid-row:3;justify-content:flex-start;gap:8px}
 html[lang] body .site-footer.calm-footer .footer-bottom>.language-control{grid-column:2;grid-row:3;justify-self:end}
 html[lang] body .site-footer.calm-footer .footer-bottom-socials a{width:40px;height:40px}
}
/* Keep the final-row controls clear of the fixed chat launcher. */
html[lang] body .site-footer.calm-footer .footer-bottom{padding-bottom:56px}
