.cookie-banner{position:fixed;bottom:24px;left:24px;right:24px;z-index:40;max-width:1040px;margin:auto;padding:24px;background:var(--paper);color:var(--black);border:1px solid var(--line);box-shadow:0 12px 60px #0003;display:flex;align-items:center;gap:28px}.cookie-banner[hidden]{display:none}.cookie-banner h2{font-size:22px;margin-bottom:8px;letter-spacing:-.02em}.cookie-banner p{font-size:14px;max-width:580px}.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0;max-width:330px}.cookie-actions button{font-size:14px;padding:12px 16px}.cookie-dialog{background:var(--paper);color:var(--black);width:min(580px,calc(100% - 32px));max-height:85dvh;overflow:auto;padding:32px;border:1px solid var(--line)}.cookie-dialog::backdrop{background:#0009}.cookie-dialog h2{font-size:32px;margin:0 0 16px}.cookie-dialog p{font-size:14px;margin-bottom:20px}.consent-option{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line);align-items:flex-start}.consent-option input{width:20px;height:20px;flex-shrink:0;accent-color:var(--orange);margin-top:4px}.consent-option strong{display:block;font-size:16px}.consent-option small{display:block;font-size:14px;color:var(--muted);margin-top:4px}.cookie-dialog .cookie-actions{margin-top:20px;max-width:none}.cookie-settings{background:transparent;color:inherit;padding:0;text-align:left;font-size:14px;text-decoration:underline;text-underline-offset:4px}.newsletter-box{padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:30px 0;display:grid;grid-template-columns:1fr 1.4fr;gap:40px}.newsletter-box h2{font-size:26px;letter-spacing:-.025em;margin-bottom:10px}.newsletter-box p{font-size:14px;max-width:420px;color:inherit}.newsletter-box form{display:grid;gap:12px}.newsletter-fields{display:flex;gap:12px}.newsletter-box input[type=email]{min-width:0;flex:1;border:1px solid #666;padding:14px;background:transparent;color:inherit;border-radius:0}.newsletter-fields .primary{padding:14px 18px}.marketing-check{display:flex!important;align-items:flex-start;gap:12px;font-size:14px!important;line-height:1.5!important;font-weight:400!important}.marketing-check input{width:18px!important;height:18px;flex:0 0 18px;accent-color:var(--orange);margin-top:3px}.bot-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.captcha-area{margin:16px 0}.captcha-area p{font-size:14px;margin-top:12px}.captcha-area button{font-size:14px;padding:12px 16px}.captcha-widget{margin-top:12px;max-width:100%;overflow:auto}.submit-status{font-size:14px;line-height:1.5;margin:12px 0}.submit-status a{text-decoration:underline}button:disabled{opacity:.6;cursor:wait}.resource-page{padding:70px 5% 100px}.resource-page h1{font-size:clamp(48px,6vw,80px);margin:24px 0}.resource-intro{max-width:640px;color:var(--muted)}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}.resource-card{border:1px solid var(--line);padding:28px;display:flex;flex-direction:column;gap:18px}.resource-card h2{font-size:28px;line-height:1.2;letter-spacing:-.025em}.resource-card p{font-size:16px;color:var(--muted)}.resource-card button{margin-top:auto;align-self:flex-start}.resource-empty{padding:32px 0;color:var(--muted)}#resource-dialog{background:var(--paper);color:var(--black);padding:40px;max-width:560px;width:calc(100% - 32px);max-height:90dvh;overflow:auto}#resource-dialog h2{font-size:34px;margin:18px 0}#resource-form{display:grid;gap:16px}#resource-form label:not(.marketing-check){display:grid;gap:8px}#resource-form input:not([type=checkbox]){padding:12px;border:1px solid var(--line);background:var(--paper);color:var(--black);width:100%}#resource-close{float:right;background:transparent;color:inherit;padding:8px}html[data-theme=dark] .cookie-banner,html[data-theme=dark] .cookie-dialog,html[data-theme=dark] #resource-dialog{background:#171717;color:#fff}html[data-theme=dark] .cookie-dialog small{color:#bbb}html[data-theme=dark] #resource-form input:not([type=checkbox]){background:#222;color:#fff}.footer-bottom{flex-wrap:wrap;gap:20px}
@media(max-width:800px){.cookie-banner{bottom:12px;left:12px;right:12px;display:block;padding:20px}.cookie-actions{max-width:none;margin-top:16px}.newsletter-box{grid-template-columns:1fr;gap:20px}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.cookie-actions button{flex:1}.newsletter-fields{flex-direction:column}.resource-grid{grid-template-columns:1fr}#resource-dialog{padding:24px}.cookie-dialog{padding:24px}.cookie-banner p{font-size:14px}}

/* Follow the site's card, typography and control tokens. */
.cookie-banner{left:5%;right:auto;bottom:24px;width:min(620px,calc(100% - 40px));max-width:none;display:block;padding:24px 28px;border:1px solid var(--line);border-top:3px solid var(--orange);border-radius:var(--panel-radius);background:var(--surface);color:var(--black);box-shadow:0 8px 32px #00000018}
.cookie-copy>.eyebrow{color:var(--accent-readable);font-size:12px;letter-spacing:.1em}
.cookie-banner h2{font-size:28px;line-height:1.15;font-weight:500;letter-spacing:-.035em;margin:10px 0}
.cookie-banner p{max-width:none;color:var(--text-secondary);line-height:1.5;margin:0;font-size:14px}
.cookie-banner p a{color:var(--black);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.cookie-banner .cookie-actions{max-width:none;gap:12px;align-items:center;margin-top:20px}
.cookie-banner .cookie-actions button{min-height:44px;border-radius:var(--control-radius);font-size:14px;line-height:1.4;flex:0 0 auto;padding:11px 18px}
.cookie-banner .cookie-actions .secondary{border-color:var(--line);color:var(--black);background:transparent}
.cookie-banner .cookie-actions .text-button{padding:11px 8px;color:var(--text-secondary);margin-left:auto}
html[data-theme=dark] .cookie-banner,html[data-theme=dark] .cookie-dialog{background:var(--surface);color:var(--black)}
.cookie-dialog{width:min(640px,calc(100% - 32px));padding:28px;border-radius:var(--panel-radius);background:var(--surface)}
.cookie-dialog h2{font-size:30px;font-weight:500;letter-spacing:-.035em;margin:0 0 12px}
.cookie-dialog>p{margin-bottom:14px;color:var(--text-secondary)}
.cookie-dialog .consent-option{padding:14px 0}
.cookie-dialog .cookie-actions button{min-height:44px}

/* Fit each step rather than growing a narrow column down the screen. */
#contact-dialog{width:min(840px,calc(100vw - 48px));max-width:840px;max-height:calc(100dvh - 40px);padding:28px 32px;margin:auto;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:var(--panel-radius)}
html[data-theme=dark] #contact-dialog{background:var(--surface)}
#contact-dialog>h2{font-size:34px;line-height:1.15;letter-spacing:-.035em;margin:8px 0 10px;padding-right:30px}
#contact-dialog>#contact-intro{font-size:15px;line-height:1.5;margin:0;max-width:680px}
#contact-dialog .form-progress{margin:18px 0 20px;gap:12px}
#contact-dialog .form-progress li{padding:8px 10px;line-height:1.35}
#contact-form{margin:0;gap:12px}
#contact-form fieldset{gap:14px}
#contact-form legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#contact-form label{gap:6px}
#contact-form label>.field-label{margin-bottom:0;font-size:14px}
#contact-form textarea[name=requirement]{min-height:100px;height:100px;max-height:180px;padding:10px 12px}
#contact-form .form-row{gap:18px}
#contact-form #timing-label{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
#contact-form #timing-label>.field-help{grid-column:1 / -1}
#contact-form .marketing-check{gap:10px;line-height:1.4!important;font-weight:400}
/* Checkbox dimensions must override the shared 44px text-input rule. */
#contact-form input[type=checkbox]{min-height:18px;height:18px;padding:0;width:18px;border-radius:3px}
#contact-form .form-navigation{margin:2px 0 0;padding-top:14px;border-top:1px solid var(--line);gap:12px;position:sticky;bottom:-28px;background:var(--surface);padding-bottom:4px;z-index:2}
#contact-form .select-popup{position:absolute;left:0;right:0;top:100%;z-index:8;max-height:250px;overflow:auto;margin-top:6px}
#contact-form .select-options{max-height:190px}
#contact-form .select-trigger>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#contact-form .custom-select{margin:0}
#enquiry-review{grid-template-columns:110px minmax(0,1fr);gap:7px 18px;font-size:14px;line-height:1.45}
#enquiry-review dd{margin:0;min-width:0}
#enquiry-review dd:nth-of-type(3){max-height:96px;overflow-y:auto;overscroll-behavior:contain;padding-right:8px}
#contact-form .form-note{font-size:14px!important;line-height:1.45;margin:0}
#contact-form .captcha-area{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:start}
#contact-form .captcha-area>[data-verify]{justify-self:start;grid-column:1}
#contact-form .captcha-widget:empty{display:none}
#contact-form .captcha-widget{margin:0;grid-column:1}
#contact-form .captcha-area>.field-help{grid-column:2;grid-row:1 / span 2}
#contact-form .captcha-status:empty,#contact-form #copy-status:empty{display:none}
#contact-form .captcha-status{font-size:14px;margin:0;grid-column:1 / -1}
#contact-form #enquiry-ready h3{margin:12px 0}
#contact-form #enquiry-ready p{margin:0 0 12px}
/* The document form uses the same compact, two-column rhythm. */
#resource-dialog{width:min(720px,calc(100% - 40px));max-width:720px;max-height:calc(100dvh - 40px);padding:28px 32px;border:1px solid var(--line);background:var(--surface)}
html[data-theme=dark] #resource-dialog{background:var(--surface)}
#resource-dialog h2{font-size:30px;line-height:1.2;margin:10px 0 18px}
#resource-form{grid-template-columns:1fr 1fr;gap:14px 18px;margin:0}
#resource-form label:not(.marketing-check){gap:6px;font-size:14px}
#resource-form label:nth-child(3),#resource-form .marketing-check,#resource-form>.field-help,#resource-form .captcha-area,#resource-form .submit-status{grid-column:1 / -1}
#resource-form input:not([type=checkbox]){min-height:44px;height:44px;padding:9px 12px;border-radius:var(--control-radius)}
#resource-form .captcha-area{margin:0}
#resource-form .captcha-area p{margin:8px 0 0;line-height:1.4}
#resource-form>.submit-status:empty{display:none}
#resource-form>.primary{grid-column:1 / -1;justify-self:start}

@media(max-width:700px){
 .cookie-banner{left:16px;bottom:16px;width:calc(100% - 32px);padding:20px}
 .cookie-banner h2{font-size:25px;margin:8px 0}
 .cookie-banner .cookie-actions{gap:10px;margin-top:16px}
 .cookie-banner .cookie-actions button{padding:10px 14px}
 .cookie-banner .cookie-actions .text-button{margin-left:0}
 #contact-dialog{width:100%;max-width:none;height:auto;max-height:100dvh;inset:0;margin:auto;border:0;border-radius:0;padding:calc(env(safe-area-inset-top) + 56px) 22px calc(env(safe-area-inset-bottom) + 20px)}
 #contact-dialog>h2{font-size:28px;margin:6px 0 8px;padding-right:0}
 #contact-dialog>#contact-intro{font-size:14px;line-height:1.4}
 #contact-dialog .form-progress{gap:6px;margin:14px 0 16px}
 #contact-dialog .form-progress li{font-size:14px;padding:7px 5px}
 #contact-form fieldset{gap:12px}
 #contact-form .form-row{grid-template-columns:1fr;gap:12px}
 #contact-form #timing-label{grid-template-columns:1fr 1fr;gap:10px 12px}
 #contact-form textarea[name=requirement]{height:92px;min-height:92px}
 #contact-form .form-navigation{bottom:calc(-20px - env(safe-area-inset-bottom));padding:12px 0 calc(env(safe-area-inset-bottom) + 4px)}
 #contact-form .captcha-area{grid-template-columns:1fr;gap:8px}
 #contact-form .captcha-area>.field-help{grid-column:1;grid-row:auto}
 #enquiry-review{grid-template-columns:88px minmax(0,1fr);gap:7px 12px}
 #enquiry-review dd{margin:0}
 #resource-dialog{width:100%;max-width:none;max-height:100dvh;border-radius:0;padding:calc(env(safe-area-inset-top) + 24px) 22px calc(env(safe-area-inset-bottom) + 20px)}
 #resource-dialog h2{font-size:28px}
 #resource-form{gap:12px}
 .cookie-dialog{padding:24px;max-height:calc(100dvh - 24px)}
}
@media(max-width:380px){
 .cookie-banner .cookie-actions{display:grid;grid-template-columns:1fr 1fr}
 .cookie-banner .cookie-actions .text-button{grid-column:1 / -1;justify-self:start;padding:4px 0;min-height:32px}
 #resource-form{grid-template-columns:1fr}
 #resource-form>label{grid-column:1}
}
@media(min-width:701px) and (max-height:760px){
 #contact-dialog,#resource-dialog{padding:22px 28px;max-height:calc(100dvh - 24px)}
 #contact-dialog>h2{font-size:30px;margin:6px 0}
 #contact-dialog .form-progress{margin:12px 0 14px}
 #contact-form fieldset{gap:12px}
 #contact-form .form-navigation{bottom:-22px;padding-top:10px}
}

/* Keep footer subscription and privacy links in the same visual rhythm. */
.newsletter-box input[type=email]{border-radius:var(--control-radius);min-height:44px}
.newsletter-box .captcha-area{margin:0;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:8px 16px}
.newsletter-box .captcha-area>[data-verify]{grid-column:1;justify-self:start;min-height:44px}
.newsletter-box .captcha-widget:empty,.newsletter-box .captcha-status:empty,.newsletter-box .submit-status:empty{display:none}
.newsletter-box .captcha-widget{margin:0;grid-column:1}
.newsletter-box .captcha-area>.field-help{grid-column:2;grid-row:1 / span 2;margin:0;font-size:14px;line-height:1.5}
.newsletter-box .captcha-status{grid-column:1 / -1;margin:0}
.footer-bottom{display:grid;grid-template-columns:1fr auto auto;gap:20px 32px;align-items:center}
.footer-bottom>a,.footer-bottom>.cookie-settings{justify-self:start;font-size:14px;line-height:1.5}
@media(max-width:700px){.newsletter-box .captcha-area{grid-template-columns:1fr}.newsletter-box .captcha-area>.field-help{grid-column:1;grid-row:auto}.footer-bottom{grid-template-columns:1fr 1fr}.footer-bottom>p{grid-column:1 / -1}}
@media(max-width:380px){.footer-bottom{grid-template-columns:1fr}}

/* One divider before the footer signoff; a dedicated newsletter on insight pages. */
.site-footer .newsletter-box{border-bottom:0;margin-bottom:0;padding-bottom:0}
.newsletter-placement{padding:0 5% 40px}
.newsletter-feature{margin:0;padding:32px;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:var(--panel-radius);background:var(--soft-surface);color:var(--black);grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:28px 40px}
.newsletter-feature .eyebrow{display:block;color:var(--accent-readable);font-size:12px;letter-spacing:.1em;margin-bottom:12px}
.newsletter-feature h2{font-size:32px;line-height:1.15;font-weight:500;margin-bottom:14px}
.newsletter-feature p{color:var(--text-secondary);font-size:16px;line-height:1.5}
.newsletter-feature form{margin:0}
.newsletter-feature a{text-decoration:underline;text-underline-offset:3px}
.newsletter-feature .newsletter-fields{gap:10px}
.newsletter-feature .captcha-area>.field-help{font-size:14px}
.article-page>.newsletter-feature{margin-top:40px}
@media(min-width:1600px){.newsletter-placement{padding-left:max(5%,calc((100vw - 1450px)/2));padding-right:max(5%,calc((100vw - 1450px)/2))}}
@media(max-width:900px){.newsletter-feature{grid-template-columns:1fr;gap:24px;padding:28px}.newsletter-feature p{max-width:650px}}
@media(max-width:540px){.newsletter-placement{padding-bottom:24px}.newsletter-feature{padding:22px}.newsletter-feature h2{font-size:28px}.article-page>.newsletter-feature{margin-top:28px}}

/* Verification now belongs to the submission flow, without a separate button. */
.captcha-area,#contact-form .captcha-area,.newsletter-box .captcha-area{display:block;margin:0}
.captcha-area .field-help,#contact-form .captcha-area>.field-help,.newsletter-box .captcha-area>.field-help{margin:0;font-size:14px;line-height:1.5}
.captcha-area .captcha-widget{margin:0;overflow:visible}
.grecaptcha-badge{visibility:hidden}
.captcha-floating{position:fixed;inset:0;z-index:41}
body.captcha-verifying::after{content:"";position:fixed;inset:0;background:#0009;z-index:40}

.captcha-area{position:relative}
.captcha-area .captcha-widget{position:absolute;left:0;top:0;width:0;height:0}

/* Google attribution stays in its badge; form copy lives in the privacy page. */
.grecaptcha-badge{visibility:visible!important}
.captcha-area .captcha-widget{overflow:visible}
