/* Shared public-page chrome. Loaded last to isolate legacy page-specific styles. */
/* Desktop comparison: intrinsic shared rows grow with content instead of fixed text heights. */
@media(min-width:1100px) {
 @supports(grid-template-rows:subgrid) {
  body.site-shell .pricing-grid { row-gap:18px; }
  body.site-shell .pricing-card { display:grid; grid-template-rows:subgrid; grid-row:span 7; gap:18px; align-content:start; }
  body.site-shell .pricing-card :is(.tier-number,h2,.tier-intro,.quote-label,.tier-inheritance,ul) { margin:0; min-height:0; }
  body.site-shell .pricing-card .tier-inheritance { padding-top:18px; }
  body.site-shell .pricing-card .tier-enquiry { align-self:start; }
  body.site-shell .service-stack { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-top:0; }
  body.site-shell .service-block { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:subgrid; grid-row:span 5; gap:20px; padding:28px; border:1px solid #cbd9df; border-top:4px solid #08746d; border-radius:20px; background:#fff; }
  body.site-shell .service-block:nth-child(2) { border-top-color:#ed7358; }
  body.site-shell .service-block:nth-child(3) { border-top-color:#c2a267; }
  body.site-shell .service-block>div:last-child { display:contents; }
  body.site-shell .service-block :is(h3,p,.service-detail) { margin:0; }
  body.site-shell .service-block .service-detail { align-self:start; }
  body.site-shell .service-block>.service-number { display:flex; flex-direction:row; justify-content:flex-start; align-items:center; gap:12px; }
  body.site-shell .service-block .text-link { align-self:start; justify-self:start; }
 }
 body.site-shell .sub-hero-copy>p { max-width:48ch; }
 body.site-shell .pricing-guidance p { max-width:70ch; }
}
/* Content rhythm and interaction rules are shared too; editorial hero art keeps its own scale. */
body.site-shell { --content-radius:20px; --content-space:clamp(40px,5vw,64px); }
body.site-shell :is(.sub-heading,.about-section-heading) h2,
body.site-shell .sub-cta h2 { font-size:clamp(32px,4vw,52px); line-height:1.12; letter-spacing:-.035em; text-wrap:balance; }
body.site-shell :is(.sub-heading,.about-section-heading)>p { max-width:65ch; line-height:1.65; }
body.site-shell :is(.sub-section,.about-section) { padding-block:var(--content-space); }
body.site-shell :is(.industry-flow article,.pricing-card,.request-panel) { border-radius:var(--content-radius); padding:28px; }
body.site-shell :is(.plain-grid,.industry-flow) h3 { font-size:24px; line-height:1.25; }
body.site-shell main .button { min-height:52px; padding:14px 24px; border-radius:100px; font-size:15px; font-weight:600; line-height:1.4; }
body.site-shell main :is(a,button,summary,input,select,textarea):focus-visible { outline:3px solid #112b3c; outline-offset:4px; }
body.site-shell main .button:focus-visible { outline-color:#08746d; }
body.site-shell main .conversion-finale .button:focus-visible { outline-color:#ffcc9d; }
body.site-shell main .text-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; line-height:1.5; text-underline-offset:5px; }
body.site-shell main :is(.service-block,.plain-grid article,.industry-flow article,.trust-note):hover { transform:none; box-shadow:none; }
body.site-shell .service-detail { margin-block:18px; border:1px solid #cbd9df; border-radius:14px; background:#f3f8f6; }
body.site-shell .service-detail summary { padding:14px 18px; min-height:48px; cursor:pointer; color:#112b3c; font-size:16px; font-weight:600; line-height:1.5; }
body.site-shell .service-detail[open] { background:#fff; }
body.site-shell .service-detail[open] summary { border-bottom:1px solid #cbd9df; }
body.site-shell .service-detail .service-inclusions { margin:0; padding:18px 24px 20px 38px; }
body.site-shell .service-detail li { padding-left:2px; font-size:16px; line-height:1.6; }
body.site-shell .request-panel .cta-reassurance,body.site-shell .request-panel .form-help { font-size:14px; line-height:1.6; }
body.site-shell .request-shortcut { margin-top:16px; }
body.site-shell #start-form-status:not(:empty) { border-left:3px solid #08746d; background:#edf6f2; padding:14px 16px; font-size:15px; line-height:1.6; }
@media(hover:hover) {
 body.site-shell .service-detail summary:hover { background:#e2f2eb; border-radius:13px; }
 body.site-shell main .text-link:hover { text-decoration:underline; }
}
@media(max-width:760px) {
 body.site-shell :is(.industry-flow article,.pricing-card,.request-panel) { padding:24px; }
 body.site-shell .start-steps { gap:8px; }
 body.site-shell .start-step { display:grid; grid-template-columns:28px minmax(0,1fr); gap:4px 12px; min-height:0; padding:14px 16px; }
 body.site-shell .start-step>span { grid-column:1; grid-row:1 / 3; padding-top:3px; }
 body.site-shell .start-step strong { grid-column:2; margin:0; font-size:18px; }
 body.site-shell .start-step small { grid-column:2; margin:0; }
 body.site-shell main .button { white-space:normal; }
 body.site-shell .service-block { gap:12px; }
}
body.site-shell { background:#fff; color:#112b3c; }
body.site-shell .container { max-width:1360px; width:100%; padding-inline:32px; }
body.site-shell.site-shell main,body.site-shell.site-shell main [id] { scroll-margin-top:112px; }
body.site-shell.site-shell .site-header { position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid #dce4e7; backdrop-filter:none; box-shadow:none; }
body.site-shell.site-shell .header-inner,
body.site-shell.site-shell .site-header.is-scrolled .header-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:24px; height:88px; min-height:88px; padding-block:0; transition:none; }
body.site-shell .site-header .brand img { display:block; width:176px; height:auto; }
body.site-shell #main-nav { position:static; display:flex; flex-direction:row; align-items:center; gap:24px; width:auto; padding:0; border:0; background:#fff; box-shadow:none; }
body.site-shell #main-nav>a:not(.nav-contact) { font-size:14px; font-weight:600; line-height:1.4; padding:12px 0; border:0; color:#112b3c; white-space:nowrap; }
body.site-shell #main-nav>a::after { display:none; }
body.site-shell #main-nav>a[aria-current="page"] { text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:2px; }
body.site-shell #main-nav .nav-contact { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:48px; margin:0; padding:12px 22px; background:#08243a; border:1px solid #08243a; color:#fff; border-radius:100px; font-size:14px !important; font-weight:600; line-height:1.4; white-space:nowrap; }
body.site-shell #main-nav .nav-contact span { margin:0; }
body.site-shell .site-header .menu-toggle { display:none; }
body.site-shell #main-nav a:focus-visible,body.site-shell .menu-toggle:focus-visible { outline:3px solid #08746d; outline-offset:4px; }
body.site-shell .reading-controls { display:flex; justify-content:flex-end; padding-block:8px; }
body.site-shell .reading-controls button { font-size:13px; min-height:40px; }
body.site-shell footer { border-top:1px solid #dce4e7; background:#fff; }
body.site-shell .footer-inner { display:grid; grid-template-columns:160px minmax(180px,1fr) minmax(240px,1.5fr) auto; gap:32px; align-items:start; padding-block:40px; }
body.site-shell .footer-brand img { display:block; width:145px; height:auto; }
body.site-shell .footer-inner p,body.site-shell .footer-inner>a:last-child { margin:0; font-size:14px; line-height:1.6; color:#465e69; }
body.site-shell .footer-links { display:flex; flex-wrap:wrap; gap:12px 22px; font-size:14px; line-height:1.6; }
body.site-shell .footer-links a { color:#112b3c; }
body.site-shell .site-preferences { position:static; display:flex; flex-wrap:wrap; width:100%; justify-content:flex-end; gap:12px 24px; margin:0; padding:20px 32px; background:#f6f8f9; border:0; border-top:1px solid #dce4e7; border-radius:0; box-shadow:none; font-size:13px; }
body.site-shell .site-preferences a { padding:0; border:0; }
body.site-shell .site-preferences .preferences-label { margin-right:auto; }
@media(max-width:1000px) {
 body.site-shell.site-shell .site-header:not(:has(#main-nav.nav-enhanced)) { position:relative; }
 body.site-shell.site-shell .header-inner,body.site-shell.site-shell .site-header.is-scrolled .header-inner { position:relative; height:auto; min-height:76px; flex-wrap:wrap; gap:0; padding-block:12px; }
 body.site-shell .site-header .brand img { width:145px; }
 body.site-shell .site-header .menu-toggle:not([hidden]) { display:block; min-width:64px; min-height:44px; padding:9px 13px; border:1px solid #cbd9df; border-radius:100px; background:#fff; color:#112b3c; font:inherit; font-size:13px; }
 body.site-shell #main-nav { position:static; flex:0 0 100%; width:100%; flex-direction:column; align-items:stretch; gap:0; padding:12px 0 0; max-height:calc(100vh - 100px); overflow-y:auto; }
 body.site-shell #main-nav.nav-enhanced { display:none; }
 body.site-shell #main-nav.nav-enhanced.is-open { display:flex; }
 body.site-shell #main-nav>a:not(.nav-contact) { min-height:48px; padding:14px 0; border-top:1px solid #e1e7ea; }
 body.site-shell #main-nav .nav-contact { margin-top:10px; justify-content:space-between; }
 body.site-shell .footer-inner { grid-template-columns:160px 1fr; gap:24px; }
 body.site-shell .footer-links { grid-column:1 / -1; }
}
@media(max-width:760px) {
 body.site-shell .container { padding-inline:24px; }
 body.site-shell .footer-inner { grid-template-columns:minmax(0,1fr); }
 body.site-shell .footer-links { grid-column:auto; }
 body.site-shell .site-preferences { padding:20px 24px; justify-content:flex-start; }
 body.site-shell .site-preferences .preferences-label { flex-basis:100%; }
}
