/* Design N Build — unified public design system, November 2026.
   Scoped to the preserved public-site renderer; no Elementor admin/editor leakage. */
:root {
  --navy:#102b3c; --navy-2:#183e52; --ink:#102a3b; --body:#425667;
  --muted:#5b6d79; --gold:#f1bd4b; --gold-deep:#835600;
  --line:#dbe5e9; --paper:#fff; --soft:#f5f8f9;
  --radius:14px; --wrap:1280px; --header:80px;
  --shadow:0 16px 40px rgba(16,43,60,.09);
  --dnb-ring:#b27806;
}
html {scroll-padding-top:110px}
body.public-site {
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--body);background:var(--paper);font-size:16px;line-height:1.72;
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
}
body.public-site :is(h1,h2,h3,h4,h5,h6) {font-family:inherit;letter-spacing:-.028em;font-weight:700;overflow-wrap:break-word}
body.public-site :is(h2,h3,h4,h5,h6) {color:var(--ink)}
body.public-site h2 {font-size:clamp(1.9rem,2.8vw,2.75rem);line-height:1.2}
body.public-site h3 {font-size:clamp(1.125rem,1.45vw,1.35rem);line-height:1.35}
body.public-site .wrap {width:100%;max-width:calc(var(--wrap) + 96px);padding-inline:clamp(20px,4vw,48px);margin-inline:auto;min-width:0}
body.public-site .section {padding-block:clamp(58px,6.2vw,88px)}
body.public-site .section-soft,body.public-site .coverage-section,body.public-site .process-section {background:var(--soft)}
body.public-site .section-lead {font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.8;color:var(--body);max-width:70ch}
body.public-site .kicker {font-size:12px;letter-spacing:.11em;line-height:1.5;font-weight:750;color:var(--gold-deep)}
body.public-site .section-top {gap:22px;margin-bottom:32px}
body.public-site :is(.icon,.brand-mark svg){flex-shrink:0}
body.public-site :is(a,button,summary,input,textarea,select):focus-visible {outline:3px solid var(--dnb-ring);outline-offset:3px}
body.public-site a {text-underline-offset:3px}
body.public-site :is(.decision-content,.detail-body,.editorial-column,.editorial-topic-body,.privacy-content) :is(p,li) {font-size:clamp(15px,1.1vw,17px);line-height:1.8}
body.public-site :is(.decision-content,.editorial-column,.privacy-content) p {max-width:80ch}
body.public-site :is(.decision-content,.editorial-column,.privacy-content) a:not(.btn):hover {text-decoration:underline}
body.public-site img {height:auto;max-width:100%}

/* Header, brand, desktop navigation and discoverability */
body.public-site .dnb-top {font-size:12px;background:#0b2030;color:#e2e9ee}
body.public-site .dnb-top>.wrap {min-height:36px}
body.public-site .dnb-header {background:var(--navy);box-shadow:0 8px 28px #102b3c14;border-bottom:1px solid #ffffff1b}
body.public-site .dnb-nav-row {min-height:80px;gap:clamp(14px,2vw,26px)}
body.public-site .dnb-brand {gap:12px;color:#fff;min-width:0}
body.public-site .dnb-brand .brand-mark {width:40px;color:var(--gold)}
body.public-site .dnb-brand strong {font-size:clamp(17px,1.55vw,21px);font-weight:800;letter-spacing:-.035em;line-height:1.1}
body.public-site .dnb-brand strong span {color:var(--gold)}
body.public-site .dnb-brand small {font-size:9px;letter-spacing:.11em;line-height:1.4;color:#d8e2e9}
body.public-site .dnb-nav {gap:clamp(12px,1.4vw,22px)}
body.public-site .dnb-nav>a,body.public-site .nav-disclosure>summary {font-size:14px;font-weight:650;letter-spacing:0;min-height:52px;gap:7px}
body.public-site .dnb-nav>a[aria-current=page],body.public-site .nav-disclosure>summary.is-current {color:var(--gold)}
body.public-site .dnb-nav>a[aria-current=page]::after,body.public-site .nav-disclosure>summary.is-current::after {bottom:8px;height:2px}
body.public-site .nav-contact {gap:12px}
body.public-site .nav-phone strong {font-size:14px}
body.public-site .nav-contact .btn {white-space:nowrap}
body.public-site .mega-menu,body.public-site .coverage-menu {border-radius:0 0 16px 16px;box-shadow:0 24px 55px #071b2b24;border-top:3px solid var(--gold);color:var(--ink)}
body.public-site .mega-menu {padding:28px}
body.public-site .mega-heading strong {font-size:24px}
body.public-site .mega-group>p {font-size:12px;font-weight:750}
body.public-site .mega-group>a {border-radius:9px;font-size:14px;line-height:1.45;min-height:47px;padding:9px 12px;transition:background .17s}
body.public-site .mega-group>a:hover,body.public-site .mega-group>a:focus-visible {background:#f0f6f8}
body.public-site .mega-group>a .icon {width:18px;height:18px}
body.public-site .mega-bottom a {font-size:13px}

/* Buttons and meaningful touch targets */
body.public-site .btn {border-radius:10px;min-height:50px;padding:12px 22px;font-size:14px;font-weight:750;letter-spacing:0;line-height:1.4;transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s}
body.public-site .btn-primary {background:var(--gold);border-color:var(--gold);color:#102b3c}
body.public-site .btn-primary:hover {background:#ffd46f;border-color:#ffd46f;color:#102b3c;box-shadow:0 8px 22px #0000001e;transform:translateY(-1px)}
body.public-site .btn-outline {background:white;color:var(--navy);border-color:#bdcdd7}
body.public-site .btn-outline:hover {background:var(--soft);border-color:var(--navy)}
body.public-site .btn-outline-light {border-color:#c4d2db;background:#ffffff10;color:#fff}
body.public-site .btn-outline-light:hover {background:#ffffff23;border-color:#fff}
body.public-site .btn-small {min-height:44px;padding:10px 16px}
body.public-site .inline-link {font-size:14px;font-weight:750;min-height:36px}
body.public-site .tile-cta {font-size:13px;font-weight:750;color:var(--gold-deep)}
body.public-site :is(.btn,.inline-link,.tile-cta) .icon {width:18px;height:18px}

/* Premium but legible hero; preserved image disclosures and metadata */
body.public-site .reference-hero {background:var(--navy);color:#f2f6f8}
body.public-site .reference-hero:before {background:linear-gradient(90deg,#102b3cf7 0%,#102b3ce8 30%,#102b3c9e 62%,#102b3c42 100%)}
body.public-site .reference-hero .hero-shell {padding-block:clamp(56px,6vw,88px);min-height:0}
body.public-site .reference-hero .hero-copy {max-width:740px;min-width:0}
body.public-site .reference-hero h1 {font-size:clamp(39px,4.4vw,66px);font-weight:780;line-height:1.08;letter-spacing:-.043em;color:#fff;max-width:20ch}
body.public-site .reference-hero h1 span {color:var(--gold)}
body.public-site .reference-hero .hero-lead {font-size:clamp(16px,1.3vw,18px);line-height:1.7;color:#eef3f7;max-width:52ch;margin-top:22px}
body.public-site .reference-hero .action-row {margin-top:27px;gap:12px}
body.public-site .hero-enquiry-link {font-size:13px;min-height:40px}
body.public-site .hero-image-disclosure,body.public-site .reference-hero figcaption {font-size:11px;line-height:1.5}
body.public-site .home-hero .hero-shell {display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);gap:clamp(26px,4vw,60px);align-items:center;min-height:570px}
body.public-site .home-hero .hero-copy {max-width:650px}
body.public-site .hero-enquiry-panel {background:white;border-radius:20px;padding:clamp(23px,2.4vw,34px);max-width:470px;width:100%;box-shadow:0 24px 60px #00000028;border:1px solid #eef1f2}
body.public-site .hero-enquiry-panel:before {border-radius:20px 20px 0 0}
body.public-site .hero-enquiry-panel h2 {font-size:clamp(25px,2.2vw,30px);line-height:1.23;margin:8px 0 13px;color:var(--ink)}
body.public-site .hero-enquiry-panel .composer-intro {font-size:14px;line-height:1.7}
body.public-site .project-composer .composer-grid {gap:11px}
body.public-site .project-composer .composer-grid label,body.public-site .project-composer textarea {border-radius:10px;border:1px solid #bbccd4;min-width:0}
body.public-site .project-composer .composer-grid label {min-height:52px}
body.public-site .project-composer input,body.public-site .project-composer select {font-size:16px}
body.public-site .project-composer .composer-note {font-size:12px;line-height:1.65;color:var(--muted)}
body.public-site .project-composer .btn {width:100%}

/* Content grids and structured service cards */
body.public-site :is(.service-tiles,.coverage-cards,.service-link-grid,.option-grid,.area-groups) {gap:clamp(16px,1.75vw,24px)}
body.public-site :is(.service-tile,.champs-service-card,.option-card,.coverage-card,.area-group,.stage-card,.enquiry-panel,.champs-about-panel) {border-radius:14px}
body.public-site :is(.service-tile,.champs-service-card,.option-card,.coverage-card,.area-group,.enquiry-panel) {box-shadow:0 7px 24px rgba(16,43,60,.045);border:1px solid var(--line);background:#fff;min-width:0}
body.public-site :is(.service-tile,.champs-service-card,.option-card,.coverage-card) {transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
body.public-site :is(.service-tile,.champs-service-card,.option-card,.coverage-card):hover {transform:translateY(-3px);box-shadow:var(--shadow);border-color:#bfd1dc}
body.public-site .service-tile-image {aspect-ratio:1.57;background:#dfe8ed;overflow:hidden}
body.public-site .service-tile-image img {width:100%;height:100%;object-fit:cover}
body.public-site .service-tile-copy {padding:27px 20px 23px}
body.public-site .service-tile h3 {font-size:clamp(17px,1.3vw,20px);line-height:1.28}
body.public-site .service-tile-copy>p {font-size:14px;line-height:1.68;margin-top:10px;color:var(--body)}
body.public-site .service-tile .tile-cta {margin-top:auto;padding-top:18px}
body.public-site .service-tile-icon {height:42px;width:42px;left:17px;bottom:-21px;border:1px solid var(--line);border-radius:11px;box-shadow:0 5px 16px #102b3c16}
body.public-site .service-tile-icon .icon {width:24px;height:24px}
body.public-site .service-link-grid>a {font-size:14px;line-height:1.5;min-height:64px;padding:14px 18px;border-radius:11px;background:#fff;transition:border-color .18s,background .18s}
body.public-site .service-link-grid>a:hover {background:#fffaf0;border-color:#d6ad51}
body.public-site .coverage-card {padding:clamp(22px,2vw,30px)}
body.public-site .coverage-card h3 {font-size:clamp(20px,1.65vw,24px)}
body.public-site .coverage-card p {font-size:15px;line-height:1.75}
body.public-site .option-card {padding:clamp(22px,2.1vw,32px)}
body.public-site .option-card p {font-size:15px;line-height:1.75}
body.public-site .process-steps h3 {font-size:16px}
body.public-site .process-steps p {font-size:14px;line-height:1.65}
body.public-site .process-top {box-shadow:0 0 0 1px var(--line),0 8px 20px #102b3c12}
body.public-site .confidence-points p {font-size:13px;line-height:1.6}
body.public-site .confidence-points h3 {font-size:20px;color:#fff}
body.public-site .champs-banner h2,body.public-site .section-dark h2,body.public-site .reference-start-band h2,body.public-site .dnb-footer h2 {color:#fff}
body.public-site .stage-card p {font-size:13px;line-height:1.65}
body.public-site .strip-grid strong {font-size:12px}
body.public-site .strip-grid small {font-size:11px;line-height:1.5}

/* Content pages: sticky index, accordions, locality cards, forms */
body.public-site .page-quick-nav {background:#fff;box-shadow:0 5px 18px #102b3c08;border-bottom:1px solid var(--line)}
body.public-site .page-quick-nav>.wrap {gap:24px;max-width:calc(var(--wrap) + 96px)}
body.public-site .page-quick-nav a {font-size:13px;font-weight:650}
body.public-site .detail-layout {gap:clamp(26px,4vw,58px)}
body.public-site .detail-aside nav>a {font-size:13px;min-height:46px}
body.public-site .aside-contact {border-radius:0 12px 12px 0}
body.public-site .editorial-topic {border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:14px}
body.public-site .editorial-topic>summary {min-height:64px;padding:22px 25px}
body.public-site .editorial-topic>summary h2 {font-size:clamp(20px,2vw,26px);line-height:1.28}
body.public-site .editorial-topic-body {padding:12px 26px 26px}
body.public-site .editorial-topic h3 {font-size:20px}
body.public-site .faq-list details {border-radius:11px;border:1px solid var(--line);background:#fff}
body.public-site .faq-list summary {min-height:58px;font-size:15px;line-height:1.5}
body.public-site .area-group {padding:21px}
body.public-site .area-group h3 {font-size:19px}
body.public-site .area-group>a {font-size:14px;min-height:46px}
body.public-site .coverage-label {border-radius:0 12px 12px 0}
body.public-site .search-input {border-radius:10px;min-height:52px}
body.public-site .enquiry-panel {padding:clamp(22px,3vw,36px)}
body.public-site .contact-methods strong {font-size:16px}
body.public-site .contact-methods small {font-size:13px}
body.public-site .enquiry-inline {font-size:14px}

/* Footer and conversion dock */
body.public-site .dnb-footer {background:#0c2433;color:#d7e2e9}
body.public-site .footer-main {gap:clamp(22px,2.5vw,36px);padding-block:clamp(44px,5vw,72px)}
body.public-site .footer-main h2 {font-size:16px;margin-bottom:17px;color:#fff}
body.public-site .footer-main a:not(.dnb-brand) {font-size:13px;line-height:1.6;min-height:30px}
body.public-site .footer-main p {font-size:13px;line-height:1.75;color:#c5d3dc}
body.public-site .footer-base {font-size:12px;line-height:1.6;padding-block:21px}
body.public-site .footer-main .dnb-brand strong {font-size:18px}
body.public-site .mobile-actions>a {font-weight:750}

/* Tablet: protect key conversion content and accessible off-canvas navigation */
@media(max-width:1199px) {
  body.public-site .dnb-nav-row {gap:16px}
  body.public-site .nav-contact .nav-phone {display:none}
  body.public-site .home-hero .hero-shell {grid-template-columns:minmax(0,1fr) minmax(300px,.88fr);gap:28px}
}
@media(max-width:1100px) {
  body.public-site .dnb-nav-row {min-height:74px}
  body.public-site .menu-toggle {display:flex;min-height:46px;border-radius:10px;font-size:14px;padding:10px 14px}
  body.public-site .menu-toggle .icon {width:22px;height:22px}
  body.public-site .dnb-nav {position:fixed;inset:0 0 0 auto;width:min(430px,94vw);height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:#fff;color:var(--ink);padding:20px 22px calc(28px + env(safe-area-inset-bottom));box-shadow:-18px 0 55px #0a223343}
  body.public-site .dnb-nav:not(.is-open) {display:none}
  body.public-site .dnb-nav.is-open {display:block}
  body.public-site .mobile-menu-heading {display:flex;font-size:17px;font-weight:750;margin-bottom:15px;padding-bottom:17px}
  body.public-site .mobile-menu-heading button {height:46px;width:46px;border-radius:12px}
  body.public-site .dnb-nav>a,body.public-site .nav-disclosure>summary {font-size:16px;min-height:52px;color:var(--ink);border-bottom:1px solid var(--line);white-space:normal}
  body.public-site .dnb-nav>a[aria-current=page] {color:#735000;background:#fff7e5}
  body.public-site .nav-disclosure>summary {justify-content:space-between}
  body.public-site .mega-menu,body.public-site .coverage-menu {position:static;width:100%;padding:16px 12px;box-shadow:none;border:0;border-radius:12px;background:var(--soft);margin-top:9px}
  body.public-site .mega-heading {margin:0 6px 12px}
  body.public-site .mega-heading strong {font-size:20px}
  body.public-site .mega-grid {grid-template-columns:1fr;gap:16px}
  body.public-site .mega-group>a {font-size:14px;min-height:46px}
  body.public-site .dnb-nav .nav-contact {display:block}
  body.public-site .nav-phone strong {color:var(--ink)}
  body.public-site .nav-contact .btn {width:100%}
  body.public-site .menu-scrim {background:#091e2dc4}
  body.public-site .page-quick-nav>.wrap {overflow-x:auto;scrollbar-width:thin;gap:20px}
  body.public-site .page-quick-nav a {white-space:nowrap}
}
@media(max-width:899px) {
  body.public-site .home-hero .hero-shell {display:block;padding-block:46px 62px;min-height:0}
  body.public-site .home-hero .hero-copy {max-width:690px}
  body.public-site .hero-enquiry-panel {max-width:660px;margin-top:32px}
  body.public-site :is(.service-tiles,.service-directory .service-tiles) {grid-template-columns:repeat(2,minmax(0,1fr))}
  body.public-site .coverage-cards {grid-template-columns:repeat(2,minmax(0,1fr))}
  body.public-site .area-groups {grid-template-columns:repeat(2,minmax(0,1fr))}
  body.public-site .footer-main {grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
  body.public-site .footer-main>div:not(:first-child) {padding-left:0;border-left:0}
  body.public-site .detail-aside {position:static}
}
@media(max-width:760px) {
  body.public-site .dnb-top {display:none}
  body.public-site .wrap {padding-inline:20px}
  body.public-site .section {padding-block:52px}
  body.public-site .reference-hero .hero-shell {padding-block:44px 62px}
  body.public-site .reference-hero h1 {font-size:clamp(36px,8vw,49px);line-height:1.13}
  body.public-site .reference-hero .hero-lead {font-size:16px;line-height:1.72}
  body.public-site .reference-hero-media {left:0;opacity:.64}
  body.public-site .reference-hero:before {background:linear-gradient(90deg,#102b3cf2,#102b3cca)}
  body.public-site .home-hero .hero-shell {display:block;padding-block:40px 58px}
  body.public-site .hero-enquiry-panel {margin-top:28px;padding:24px 20px;border-radius:16px}
  body.public-site .hero-enquiry-panel:before {border-radius:16px 16px 0 0}
  body.public-site .hero-enquiry-panel .composer-grid {grid-template-columns:1fr}
  body.public-site .service-tiles,body.public-site .service-directory .service-tiles {grid-template-columns:1fr;gap:16px}
  body.public-site .service-tile {display:flex;flex-direction:column}
  body.public-site .service-tile-image {aspect-ratio:1.8}
  body.public-site .service-tile-copy {padding:26px 20px 21px}
  body.public-site .service-tile h3 {font-size:19px}
  body.public-site .service-link-grid,body.public-site .coverage-cards,body.public-site .area-groups,body.public-site .option-grid {grid-template-columns:1fr}
  body.public-site .coverage-card:last-child {grid-column:auto}
  body.public-site .process-steps {grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}
  body.public-site .detail-layout,body.public-site .faq-layout {display:block}
  body.public-site .detail-aside {position:static;margin-bottom:24px}
  body.public-site .detail-aside nav {max-height:210px}
  body.public-site .editorial-topic>summary {padding:19px 18px}
  body.public-site .editorial-topic-body {padding:6px 18px 22px}
  body.public-site .page-quick-nav {position:static}
  body.public-site .footer-main {grid-template-columns:1fr 1fr}
  body.public-site .footer-main>div:first-child {grid-column:1/-1}
  body.public-site .footer-main h2 {font-size:15px}
  body.public-site .mobile-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:0}
  body.public-site .mobile-actions>a {min-width:0;min-height:62px;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;font-size:11px;line-height:1.25;white-space:nowrap}
  body.public-site .mobile-actions>a .icon {width:20px;height:20px}
  body.public-site .mobile-actions .mobile-email {background:#fff;color:var(--navy)}
  body.public-site .back-to-top {bottom:83px}
  body.public-site {padding-bottom:calc(64px + env(safe-area-inset-bottom))}
}
@media(max-width:479px) {
  body.public-site .dnb-brand strong {font-size:17px}
  body.public-site .dnb-brand small {font-size:7px;letter-spacing:.07em}
  body.public-site .dnb-brand .brand-mark {width:31px}
  body.public-site .reference-hero h1 {font-size:clamp(34px,9.3vw,42px)}
  body.public-site .hero-enquiry-panel h2 {font-size:25px}
  body.public-site .section-top {display:block}
  body.public-site .section-top .inline-link {margin-top:14px}
  body.public-site .strip-grid {grid-template-columns:1fr 1fr}
  body.public-site .process-steps {grid-template-columns:1fr}
  body.public-site .footer-main {grid-template-columns:1fr}
  body.public-site .footer-main>div:first-child {grid-column:auto}
  body.public-site .footer-base {display:block}
  body.public-site .footer-base span+span {display:block;margin-top:7px}
  body.public-site .dnb-nav {width:min(420px,100vw)}
}
@media(prefers-reduced-motion:reduce) {
  body.public-site *,body.public-site *::before,body.public-site *::after {
    scroll-behavior:auto;animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;
  }
}
