/* Shared content pages. Colours and type inherit the consultancy theme. */
.menu-toggle{display:none;flex:0 0 44px;align-items:center;justify-content:center;width:44px;height:44px;padding:11px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text)}
.menu-toggle:hover{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.menu-toggle svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.menu-toggle>span:not(.sr-only){display:block;width:20px;height:2px;background:currentColor;position:relative}
.menu-toggle>span:not(.sr-only)::before,.menu-toggle>span:not(.sr-only)::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor}
.menu-toggle>span:not(.sr-only)::before{top:-6px}.menu-toggle>span:not(.sr-only)::after{top:6px}
#main-nav a[aria-current=page]{color:var(--accent)}

.page-hero{padding-block:50px 72px}
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;min-height:44px;margin-bottom:34px;color:var(--muted);font-size:12px;line-height:1.6}
.breadcrumb a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.breadcrumb a:hover{color:var(--accent);text-decoration-color:currentColor}
.breadcrumb [aria-current=page]{color:var(--text)}
.page-hero h1{max-width:1060px;font-size:clamp(48px,6.5vw,82px);font-weight:500;line-height:1.12;letter-spacing:-3.7px;color:var(--text);overflow-wrap:break-word}
.page-hero h1>span{color:var(--accent)}
.page-intro{max-width:760px;margin-top:28px;color:var(--muted);font-size:18px;line-height:1.85}

.page-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:clamp(48px,8vw,120px);align-items:start;padding-bottom:100px}
.page-article{min-width:0;max-width:790px}
.article-section{padding-block:32px 36px;border-top:1px solid var(--line)}
.article-section:first-child{padding-top:32px}
.article-section h2,.faq-section h2{margin-bottom:20px;font-size:29px;font-weight:550;line-height:1.3;letter-spacing:-.9px;color:var(--text)}
.article-section h3{margin:24px 0 12px;font-size:20px;line-height:1.45;letter-spacing:-.4px}
.article-section p,.article-section li,.faq-section p{font-size:15px;line-height:1.9;color:var(--muted)}
.article-section p+p{margin-top:16px}
.article-section ul{margin:21px 0 0;padding-left:23px}
.article-section li{padding-left:5px;margin-block:9px}
.article-section li::marker{color:var(--accent)}
.article-section a,.faq-section p a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent);overflow-wrap:anywhere}
.article-section a:hover,.faq-section p a:hover{color:var(--accent)}
.page-aside{position:sticky;top:32px;min-width:0;border-top:1px solid var(--line);padding-top:29px}
.page-aside h2,.page-aside h3{font-size:18px;font-weight:600;line-height:1.45;letter-spacing:-.35px;margin-bottom:14px}
.page-aside p{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:20px}
.page-aside .button{width:100%;gap:16px;font-size:12px;padding-inline:18px}
.page-aside .related-links{margin-top:28px}
.related-links{display:flex;flex-direction:column;gap:0;list-style:none;padding:0;margin:0}
.related-links li{list-style:none;margin:0;padding:0}
.related-links a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;padding-block:13px;border-top:1px solid var(--line);font-size:13px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}
.related-links a:hover{color:var(--accent)}
.related-links a>span{color:var(--accent);flex-shrink:0}

.faq-section{padding-top:32px;border-top:1px solid var(--line);margin-top:8px}
.faq-section details{border-bottom:1px solid var(--line)}
.faq-section summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding:18px 0;list-style:none;cursor:pointer;font-size:15px;font-weight:600;line-height:1.65;color:var(--text)}
.faq-section summary::-webkit-details-marker{display:none}
.faq-section summary::marker{content:""}
.faq-section summary::after{content:"+";flex:0 0 24px;text-align:center;font-size:24px;font-weight:450;line-height:1;color:var(--accent)}
.faq-section details[open]>summary::after{content:"−"}
.faq-section summary:hover{color:var(--accent)}
.faq-section details>p{padding:0 40px 23px 0}
.faq-section details>p+p{padding-top:0;margin-top:-9px}

.page-cta{border-block:1px solid var(--line);background:var(--surface);padding-block:62px}
.page-cta>.wrap{display:flex;justify-content:space-between;align-items:center;gap:40px}
.page-cta h2{max-width:740px;font-size:clamp(32px,3.8vw,48px);line-height:1.2;letter-spacing:-1.8px}
.page-cta h2>span{color:var(--accent)}
.page-cta p{max-width:660px;margin-top:17px;font-size:15px;line-height:1.85;color:var(--muted)}
.page-cta .button{flex-shrink:0}

.services-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;padding-bottom:90px}
.service-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding-block:26px 30px;border-top:1px solid var(--line)}
.card-number{display:block;font-size:12px;font-weight:650;line-height:1.6;color:var(--accent);margin-bottom:27px}
.service-card h2{font-size:29px;line-height:1.3;letter-spacing:-.9px;margin-bottom:17px}
.service-card p{font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:24px}
.card-link{display:inline-flex;align-items:center;gap:18px;min-height:44px;margin-top:auto;font-size:13px;font-weight:650;line-height:1.65;color:var(--accent)}
.card-link:hover{text-decoration:underline;text-underline-offset:5px}
.card-link>span{font-size:19px}

.site-footer:has(.footer-grid){display:block;padding-block:48px 25px}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(0,.8fr);gap:48px;width:100%;padding-bottom:27px;border-bottom:1px solid var(--line)}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start}
.footer-brand .wordmark{font-size:26px;flex-direction:column;align-items:flex-start;gap:6px}
.footer-logo-labs{font:650 11px/1.1 var(--heading);letter-spacing:.14em;color:var(--text)}
.footer-copyright{display:block;margin-top:auto;padding-top:24px;font-size:11px;line-height:1.8;color:var(--faint)}
.footer-brand p{max-width:270px;margin-top:18px;font-size:13px;line-height:1.85;color:var(--muted)}
.footer-grid h2,.footer-grid h3{font-size:13px;font-weight:650;letter-spacing:0;line-height:1.6;margin-bottom:9px}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li{margin:0;padding:0}
.footer-grid nav>a{display:block;width:fit-content;max-width:100%;min-height:0;padding:0;font-size:12px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}
.footer-grid nav>a+a{margin-top:12px}
.footer-grid a:not(.wordmark):hover{color:var(--accent)}

.contact-address{margin-top:25px;color:var(--muted);font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.contact-address a{display:inline-block;min-height:44px;color:var(--accent);text-decoration:underline;text-underline-offset:5px;padding-block:8px}
.enquiry-result[hidden],.enquiry-feedback[hidden]{display:none!important}
.enquiry-result:not([hidden]){display:block}
.draft-preview{display:block;margin-top:18px}
.draft-preview textarea{display:block;width:100%;min-height:230px;margin-top:8px;padding:13px;background:var(--bg);color:var(--text);border:1px solid var(--control-line);border-radius:4px;font:450 13px/1.75 var(--body);resize:vertical}
.draft-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-top:18px}
.draft-actions .button{gap:18px;font-size:12px;min-height:48px}
.draft-actions .text-button{min-height:44px;color:var(--accent)}
.enquiry-feedback{font-size:13px;line-height:1.8;color:var(--accent);margin-top:12px;overflow-wrap:anywhere}

@media(max-width:1000px){
 .page-layout{grid-template-columns:minmax(0,1fr) 230px;gap:42px}
 .page-hero{padding-block:36px 58px}
 .page-hero h1{letter-spacing:-2.7px}
 .page-intro{max-width:700px}
 .services-cards{grid-template-columns:minmax(0,1fr);gap:10px;max-width:790px}
 .service-card{padding-block:25px 29px}
 .card-number{margin-bottom:16px}
 .service-card p{max-width:680px;margin-bottom:15px}
 .footer-grid{gap:30px}
}
@media(max-width:820px){
 .site-header:has(#main-nav){height:auto;min-height:88px;flex-wrap:wrap;gap:0 20px;padding-block:18px}
 .site-header:has(#main-nav) .header-actions{margin-left:auto;gap:12px}
 .site-header #main-nav{order:3;flex:0 0 100%;display:flex;flex-wrap:wrap;gap:2px 24px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}
 .site-header #main-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;padding-block:10px}
 html.nav-ready .site-header #main-nav{display:none}
 html.nav-ready .site-header #main-nav.is-open{display:flex}
 html.nav-ready #menu-toggle{display:inline-flex}
 .page-layout{grid-template-columns:minmax(0,1fr);gap:42px;padding-bottom:70px}
 .page-article{max-width:none}
 .page-aside{position:static;max-width:600px;padding-top:26px}
 .page-aside .button{width:fit-content}
 .page-aside .related-links{margin-top:22px}
 .page-cta>.wrap{align-items:flex-start;flex-direction:column;gap:27px}
 .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px}
 .footer-brand{grid-column:1/-1}
 .footer-brand p{max-width:440px}
}
@media(max-width:600px){
 .page-hero{padding-block:24px 43px}
 .breadcrumb{font-size:11px;gap:2px 8px;margin-bottom:23px}
 .page-hero h1{font-size:clamp(40px,9vw,54px);letter-spacing:-2px;line-height:1.16}
 .page-intro{font-size:17px;line-height:1.85;margin-top:23px}
 .article-section{padding-block:27px 31px}
 .article-section h2,.faq-section h2{font-size:26px;letter-spacing:-.7px;margin-bottom:17px}
 .article-section p,.article-section li,.faq-section p{font-size:15px;line-height:1.85}
 .faq-section{padding-top:27px}
 .faq-section summary{font-size:14px;gap:17px}
 .faq-section details>p{padding-right:20px}
 .page-cta{padding-block:44px}
 .page-cta h2{font-size:34px;letter-spacing:-1.3px}
 .services-cards{padding-bottom:60px}
 .service-card h2{font-size:27px}
 .site-footer:has(.footer-grid){padding-top:35px}
 .footer-grid{gap:27px 22px}
 .draft-preview textarea{font-size:16px}
 .draft-actions{align-items:stretch;gap:9px 16px}
}
@media(max-width:380px){
 .site-header:has(#main-nav){gap:0 9px}
 .site-header:has(#main-nav) .header-actions{gap:7px}
 .site-header:has(#main-nav) .wordmark{font-size:21px}
 .site-header:has(#main-nav) .button-small{padding-inline:10px;font-size:10px;gap:7px}
 .site-header:has(#main-nav) .button-small>span{display:none}
 .site-header #main-nav{gap:2px 18px}
 .footer-grid{grid-template-columns:minmax(0,1fr)}
 .footer-brand{grid-column:auto}
}
/* Align shared generated markup and keep descriptive text consistent. */
.page-intro,.article-section p,.article-section li,.faq-section p,.service-card p{color:var(--text)}
.page-aside>strong{display:block;font-size:15px;line-height:1.6;margin-bottom:12px}
.page-aside>a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding-block:14px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7;color:var(--accent)}
.page-aside>a:hover{color:var(--text)}
.footer-grid nav>strong{display:block;font-size:13px;line-height:1.6;margin-bottom:19px}
.service-card:hover{border-color:var(--accent)}.service-card:hover .card-link{text-decoration:underline;text-underline-offset:5px}
.contact-address{display:inline-block;min-height:44px;color:var(--accent);padding-block:8px}.contact-address:hover{text-decoration:underline;text-underline-offset:5px}
.contact-section .start-copy h1{font-size:clamp(38px,4.1vw,58px);letter-spacing:-2px;line-height:1.18}.contact-section .start-copy h1>span{color:var(--accent)}
.enquiry-result label{margin-top:14px}.enquiry-form textarea.draft-preview{min-height:180px;font-size:13px;line-height:1.8;margin-top:0}.enquiry-result h4:focus{outline:none}.enquiry-feedback:empty{display:none}.form-note a{text-decoration:underline;text-underline-offset:3px}.privacy-date{font-size:12px;color:var(--muted);padding-bottom:24px}
.redirect-page{max-width:650px;margin:12vh auto;padding:25px}.redirect-page h1{font-size:42px;letter-spacing:-1px;line-height:1.2}.redirect-page p{margin-top:24px}
@media(max-width:480px){.site-header:has(#main-nav) .button-small{display:none}.site-header:has(#main-nav) .wordmark{font-size:25px}.enquiry-form textarea.draft-preview{font-size:16px}.draft-actions{align-items:stretch;flex-direction:column}.contact-section .start-copy h1{font-size:40px}}

@media(max-width:1180px){.enquiry-form textarea.draft-preview{font-size:16px}}
