/* ALPHA+v3 redesign candidate — light-only shared presentation layer.
   Content, routes, forms, existing videos, images, metadata, and schema are
   intentionally retained in the source pages. */

:root {
  --bg: #ffffff;
  --bg-deep: #f1f3f4;
  --bg-surface: #ffffff;
  --white: #101820;
  --text-muted: #344550;
  --text-secondary: #52616d;
  --text-faint: #6c7a84;
  --border: #d8e0e3;
  --orange: #f19c49;
  --orange-hover: #d9802d;
  --blue: #00567e;
  --teal: #4797a8;
  --radius: 0;
  --page-max: 1440px;
  --page-pad: clamp(22px, 5vw, 76px);
}

html[data-theme="light"],
html[data-theme="light"] body,
body[data-theme="light"] {
  background: #ffffff !important;
  color: #101820 !important;
}

body {
  font-size: 17px;
  line-height: 1.65;
  background-image: none !important;
}

a,
html[data-theme="light"] a:not(.btn) { color: var(--blue); }
a:hover,
html[data-theme="light"] a:not(.btn):hover { color: #00405e; }

h1, h2, h3, h4, h5, h6,
html[data-theme="light"] h1,
html[data-theme="light"] h2,
html[data-theme="light"] h3,
html[data-theme="light"] h4,
html[data-theme="light"] h5,
html[data-theme="light"] h6 {
  color: #101820;
  letter-spacing: -0.045em;
}

h1 { font-size: clamp(2.6rem, 5.4vw, 5rem); line-height: 0.96; }
h2 { font-size: clamp(2rem, 3.4vw, 3.4rem); line-height: 1; }
h3 { font-size: clamp(1.25rem, 1.7vw, 1.6rem); line-height: 1.15; }

.section-inner,
.container,
.content-page,
.post-header,
.post-body,
.lp-hero-inner {
  width: min(100% - 2 * var(--page-pad), var(--page-max)) !important;
  max-width: var(--page-max) !important;
}

.section { padding: clamp(64px, 8vw, 116px) 0 !important; background: #ffffff !important; }
.section--grey,
.section--surface,
.section--dark { background: #f1f3f4 !important; }

/* Shared shell: a stable white header with useful, compact navigation. */
#site-header {
  position: relative !important;
  inset: auto !important;
  padding: 0 !important;
  background: #ffffff !important;
  border-bottom: 1px solid #d8e0e3 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.nav-wrap {
  display: grid !important;
  grid-template-columns: minmax(170px, 1fr) auto minmax(170px, 1fr) !important;
  align-items: center !important;
  gap: 30px !important;
  width: min(100%, var(--page-max)) !important;
  height: 88px !important;
  min-height: 88px !important;
  margin: 0 auto !important;
  padding: 0 var(--page-pad) !important;
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.nav-logo { width: 182px !important; justify-self: start; }
.nav-logo img { width: 100% !important; max-width: 182px !important; }
.nav-primary { display: flex; align-items: center; justify-self: center; gap: 25px; }
.nav-menu { position: static !important; transform: none !important; display: flex !important; gap: 20px !important; }
.nav-menu > li > a,
.nav-menu > li > button {
  height: auto !important;
  padding: 12px 0 !important;
  color: #101820 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  line-height: 1.2 !important;
}
.nav-menu > li > a:hover,
.nav-menu > li > button:hover,
.nav-menu > li.open > button { color: #00567e !important; }
.nav-dropdown,
.nav-megamenu { background: #ffffff !important; border: 1px solid #d8e0e3 !important; box-shadow: 0 16px 32px rgba(16, 24, 32, 0.12) !important; }
.nav-dropdown a,
.nav-megamenu a { color: #101820 !important; }
.nav-cta { justify-self: end; min-width: 138px; border-radius: 0 !important; }

.btn,
.btn--primary,
.btn--outline,
.btn--dark {
  border-radius: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
  padding: 13px 18px !important;
}
.btn--primary { background: #00567e !important; border-color: #00567e !important; color: #ffffff !important; }
.btn--primary:hover { background: #00405e !important; border-color: #00405e !important; }
.btn--outline { color: #00567e !important; border-color: #00567e !important; }
.btn--outline:hover { background: #00567e !important; color: #ffffff !important; }
.btn--dark { background: #101820 !important; border-color: #101820 !important; color: #ffffff !important; }

/* Video remains a key part of service storytelling. Text sits on a clear,
   high-contrast surface; media remains visible instead of becoming decoration. */
.ph-hero,
.sv-hero {
  position: relative !important;
  min-height: clamp(500px, 56vw, 700px) !important;
  padding: clamp(64px, 8vw, 118px) 0 !important;
  background: #101820 !important;
  overflow: hidden;
}
.ph-hero__video,
.sv-hero__video { object-fit: cover !important; opacity: 0.68 !important; }
.ph-hero__overlay { background: linear-gradient(90deg, rgba(16,24,32,.94) 0%, rgba(16,24,32,.84) 41%, rgba(16,24,32,.18) 100%) !important; }
.ph-hero__inner { position: relative; z-index: 2; }
.ph-hero .ph-hero__copy,
.ph-hero .wd-hero-panel,
.ph-hero .rd-hero-panel,
.svcx-hero-panel {
  max-width: 660px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.ph-hero h1,
.ph-hero .wd-hero-panel h1,
.ph-hero .rd-hero-panel h1,
.svcx-hero-panel h1 { color: #ffffff !important; max-width: 11ch; }
.ph-hero p,
.ph-hero .ph-hero__copy p,
.ph-hero .wd-hero-panel p,
.ph-hero .rd-hero-panel p,
.svcx-hero-panel p { color: #e5f1f4 !important; }
.ph-hero__eyebrow,
.wd-eyebrow,
.rd-eyebrow,
.svcx-eyebrow { color: #f19c49 !important; letter-spacing: .12em !important; }

/* Homepage: the retained hero video becomes a clear visual counterweight to
   editorial copy, followed by concise service, proof, and editorial sections. */
.hp-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr) !important;
  align-items: stretch !important;
  min-height: min(760px, calc(100vh - 88px)) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: #ffffff !important;
  text-align: left !important;
}
.hp-hero::before { content: "" !important; display: block !important; position: absolute !important; inset: 0 auto 0 0 !important; width: 56% !important; background: #ffffff !important; z-index: 1 !important; }
.hp-hero-video { inset: 0 0 0 auto !important; width: 51% !important; height: 100% !important; opacity: 1 !important; z-index: 0 !important; }
.hp-hero-overlay { background: linear-gradient(90deg,#ffffff 0%,rgba(255,255,255,.96) 36%,rgba(255,255,255,.10) 72%,rgba(16,24,32,.12) 100%) !important; z-index: 1 !important; }
.hp-hero-content { align-self: center !important; z-index: 2 !important; width: min(100% - var(--page-pad), 700px) !important; margin: 0 0 0 max(var(--page-pad),calc((100vw - var(--page-max))/2)) !important; padding: clamp(62px,8vw,118px) 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; backdrop-filter: none !important; text-align: left !important; }
.hp-hero-eyebrow { display: flex !important; align-items: center !important; gap: 10px !important; padding: 0 !important; margin: 0 0 22px !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; color: #00567e !important; font-size: 11px !important; }
.hp-hero-eyebrow::before { width: 30px !important; height: 2px !important; border-radius: 0 !important; background: #f19c49 !important; box-shadow: none !important; }
.hp-hero-content h1 { max-width: 10ch !important; margin: 0 0 22px !important; color: #101820 !important; font-size: clamp(3.2rem,5.9vw,6.2rem) !important; font-weight: 700 !important; line-height: .9 !important; letter-spacing: -.068em !important; text-transform: none !important; }
.hp-hero-sub { max-width: 38rem !important; margin: 0 0 17px !important; color: #101820 !important; font-size: clamp(1.13rem,1.5vw,1.4rem) !important; font-weight: 600 !important; line-height: 1.45 !important; }
.hp-hero-desc { max-width: 41rem !important; margin: 0 0 12px !important; color: #44505c !important; font-size: 16px !important; line-height: 1.62 !important; text-align: left !important; }
.hp-hero-desc strong { color: #344550 !important; }
.hp-hero-buttons { justify-content: flex-start !important; gap: 12px !important; margin-top: 28px !important; }
.hp-hero-buttons .btn { min-width: 0 !important; }
.hp-hero-buttons .btn + .btn { background: #ffffff !important; border-color: #00567e !important; color: #00567e !important; }
.hp-scroll-arrow { display: none !important; }

.hp-blurbs { padding: 0 !important; background: #ffffff !important; }
.hp-blurbs-inner { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 0 !important; width: min(100%,var(--page-max)) !important; max-width: var(--page-max) !important; background: #ffffff !important; text-align: left !important; }
.hp-blurb { display: block !important; opacity: 1 !important; transform: none !important; padding: 0 !important; background: #ffffff !important; border: 0 !important; border-right: 1px solid #d8e0e3 !important; border-top: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.hp-blurb:last-child { border-right: 0 !important; }
.hp-blurb-link { display: block !important; min-height: 100% !important; padding: 47px var(--page-pad) 52px !important; color: #101820 !important; transform: none !important; }
.hp-blurb-link:hover,.hp-blurb-link:focus-visible { background: #f1f3f4 !important; transform: none !important; }
.hp-blurb-icon { width: 32px !important; height: 32px !important; margin: 0 0 28px !important; }
.hp-blurb-icon svg { width: 31px !important; height: 31px !important; fill: #4797a8 !important; }
.hp-blurb h3 { margin: 0 0 11px !important; color: #101820 !important; font-size: 22px !important; }
.hp-blurb p { max-width: 34ch !important; color: #52616d !important; font-size: 14px !important; line-height: 1.62 !important; }

.hp-services { padding: clamp(65px,8vw,112px) 0 !important; background: #f1f3f4 !important; }
.hp-services-panel { width: min(100% - 2 * var(--page-pad),var(--page-max)) !important; max-width: var(--page-max) !important; margin: 0 auto !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.hp-services-panel .section-inner { width: min(100%,780px) !important; max-width: 780px !important; margin: 0 !important; }
.hp-section-eyebrow,.hp-latest-posts__eyebrow { margin: 0 0 14px !important; color: #00567e !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: .13em !important; text-transform: uppercase !important; }
.hp-services .section-inner > h2 { max-width: 13ch !important; margin: 0 0 18px !important; color: #101820 !important; }
.hp-services-panel p { color: #44505c !important; font-size: 17px !important; line-height: 1.68 !important; }
.hp-hosting-callout { width: 100% !important; max-width: none !important; margin: 40px 0 0 !important; padding: 24px 0 !important; border: 0 !important; border-top: 1px solid #cbd5d9 !important; border-radius: 0 !important; background: transparent !important; color: #00567e !important; font-size: 16px !important; font-weight: 700 !important; text-align: left !important; }

.hp-logos { padding: clamp(66px,8vw,112px) 0 !important; background: #ffffff !important; text-align: left !important; }
.hp-logos-shell { width: min(100% - 2 * var(--page-pad),var(--page-max)) !important; max-width: var(--page-max) !important; margin: 0 auto !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; }
.hp-logos-shell .section-inner { width: 100% !important; max-width: none !important; }
.hp-logos h2 { max-width: 17ch !important; margin: 0 0 15px !important; }
.hp-logos-intro { max-width: 60ch !important; margin: 0 0 35px !important; color: #52616d !important; text-align: left !important; }
.hp-logo-grid { grid-template-columns: repeat(3,1fr) !important; gap: 1px !important; margin: 0 !important; background: #d8e0e3 !important; }
.hp-logo-card { min-height: 145px !important; padding: 32px 25px !important; background: #ffffff !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.hp-logo-card:hover,.hp-logo-card:focus-within { transform: none !important; box-shadow: inset 0 0 0 1px #00567e !important; }
.hp-logo-card img { max-height: 65px !important; transform: none !important; }

.hp-latest-posts { padding: clamp(65px,8vw,112px) 0 !important; background: #f1f3f4 !important; }
.hp-latest-posts__top { align-items: end !important; margin-bottom: 34px !important; }
.hp-latest-posts h2 { margin: 0 0 12px !important; }
.hp-latest-posts__intro p { max-width:58ch; color:#52616d !important; }
.hp-testimonial-section { padding: clamp(65px,8vw,112px) 0 !important; background: #ffffff !important; text-align: left !important; }
.hp-testimonial-section h2 { max-width: 16ch; margin:0 0 32px !important; }
.hp-testimonial-grid { display:grid !important; grid-template-columns: repeat(2,1fr) !important; gap:1px !important; background:#d8e0e3 !important; }
.hp-testimonial { display:block !important; max-width:none !important; margin:0 !important; padding:36px !important; background:#f1f3f4 !important; background-image:none !important; text-align:left !important; }
.hp-testimonial-name { color:#101820 !important; font-size:20px !important; }.hp-testimonial-role{color:#52616d !important;}.hp-testimonial-stars{color:#f19c49 !important;}.hp-testimonial-quote{max-width:42ch !important;color:#344550 !important;font-size:16px !important;line-height:1.65 !important;text-align:left !important;}
.hp-cta-section { padding:0 !important; background:#101820 !important; }
.hp-cta { display:flex !important; align-items:end !important; justify-content:space-between !important; gap:30px !important; width:min(100% - 2 * var(--page-pad),var(--page-max)) !important; margin:0 auto !important; padding:clamp(62px,8vw,100px) 0 !important; background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; text-align:left !important; }
.hp-cta h3 { max-width:14ch !important; margin:0 !important; color:#ffffff !important; font-size:clamp(2.2rem,4vw,4rem) !important; }

/* Shared article, portfolio, location, service, and form surfaces. */
.bcn,
.breadcrumb,
.breadcrumbs { background: #ffffff !important; border-bottom: 1px solid #d8e0e3 !important; }
.bcn a,
.breadcrumb a,
.breadcrumbs a { color: #00567e !important; }

.svcx-section-shell,
.wd-section-shell,
.rd-section-shell,
.abt-shell,
.lp-local-insights,
.sl-intro-inner,
.ct-card,
.ct-office-card,
.ct-form-card,
.qr-form,
.qr-intro-card,
.qr-hero-panel,
.blg-empty {
  background: #ffffff !important;
  border-top: 3px solid #00567e !important;
  border-left: 0 !important;
  box-shadow: none !important;
}

.svcx-card,
.svcx-plan-card,
.wd-card,
.sl-card,
.sv-support-card,
.sv-decision-card,
.ct-card,
.ct-office-card,
.ct-form-card,
.pt-card,
.blg-feature__card,
.blg-card__body,
.lp-service-card,
.lp-tcard {
  background: #ffffff !important;
  border-color: #d8e0e3 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.svcx-card h3,
.svcx-plan-card h3,
.wd-card h3,
.sl-card h3,
.pt-card h3,
.blg-card__title,
.lp-service-card h3 { color: #101820 !important; }
.svcx-card p,
.svcx-plan-card p,
.wd-card p,
.sl-card p,
.pt-card p,
.blg-card__excerpt,
.lp-service-card p,
.lp-tcard p { color: #52616d !important; }

.faq-item,
.lp-faq-item { background: transparent !important; border-color: #cbd5d9 !important; }
.faq-item summary,
.faq-item summary h3,
.lp-faq-q { color: #101820 !important; }
.faq-body,
.lp-faq-a { color: #52616d !important; }

/* Public forms remain the same forms, with light-stage contrast that stays
   legible on both desktop and touch devices. */
.intake-form,
.ct-form,
.qr-form,
.contact-form { color: #101820 !important; }
.intake-form label,
.intake-form legend,
.ct-form label,
.qr-form label,
.contact-form label { color: #101820 !important; font-weight: 700 !important; }
.intake-form input,
.intake-form select,
.intake-form textarea,
.ct-form input,
.ct-form select,
.ct-form textarea,
.qr-form input,
.qr-form select,
.qr-form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
  background: #ffffff !important;
  color: #101820 !important;
  border: 1px solid #9aa8b0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.intake-form input:focus,
.intake-form select:focus,
.intake-form textarea:focus,
.ct-form input:focus,
.ct-form select:focus,
.ct-form textarea:focus,
.qr-form input:focus,
.qr-form select:focus,
.qr-form textarea:focus,
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus { outline: 3px solid rgba(0,86,126,.28) !important; outline-offset: 2px; border-color: #00567e !important; }
.intake-form ::placeholder,
.ct-form ::placeholder,
.qr-form ::placeholder,
.contact-form ::placeholder { color: #6c7a84 !important; opacity: 1; }

.post-body,
.pst-body,
.pst-main { color: #344550 !important; }
.post-body h2,
.post-body h3,
.pst-body h2,
.pst-body h3 { color: #101820 !important; }
.pst-hero,
.blg-hero,
.pt-hero { background: #f1f3f4 !important; }
.pst-hero h1,
.blg-hero h1,
.pt-hero h1 { color: #101820 !important; }

/* Locations: local pages remain information-rich, but the delivery process is
   presented as five named commitments rather than generic numbered circles. */
.lp-hero { background: #f1f3f4 !important; }
.lp-hero h1,
.lp-hero h2,
.lp-hero p { color: #101820 !important; }
.lp-hero p { color: #44505c !important; }
.lp-services { background: #ffffff !important; }
.lp-services-grid,
.lp-process-steps { gap: 1px !important; background: #d8e0e3 !important; }
.lp-service-card { padding: 30px !important; }
.lp-service-icon { width: 42px !important; height: 42px !important; }
.lp-service-card a.lp-more { color: #00567e !important; }
.lp-service-card a.lp-more:hover { color: #00405e !important; }
.lp-process { padding: clamp(64px, 8vw, 108px) 0 !important; background: #f1f3f4 !important; }
.lp-process h2 { max-width: 17ch !important; }
.lp-process > .section-inner > p { max-width: 66ch !important; color: #52616d !important; }
.lp-process-steps { grid-template-columns: repeat(5, 1fr) !important; margin-top: 38px !important; }
.lp-step { min-height: 100% !important; padding: 30px 22px !important; background: #ffffff !important; text-align: left !important; }
.lp-step::before { content: ""; display: block; width: 32px; height: 3px; margin: 0 0 24px; background: #00567e; }
.lp-step h4 { min-height: 2.5em; margin: 0 0 13px !important; color: #101820 !important; font-size: 17px !important; letter-spacing: -.015em !important; text-transform: none !important; }
.lp-step p { margin: 0 !important; color: #52616d !important; font-size: 14px !important; line-height: 1.62 !important; }
.lp-step-num { display: none !important; }
.lp-testimonials { background: #ffffff !important; }
.lp-testimonials-grid { gap: 1px !important; background: #d8e0e3 !important; }
.lp-tcard { padding: 30px !important; }
.lp-tcard-biz { color: #101820 !important; }
.lp-tcard-role,
.lp-tcard-name { color: #52616d !important; }
.lp-footer { margin: 0 !important; padding: clamp(52px,7vw,86px) 0 0 !important; background: #101820 !important; border-top: 0 !important; }
.lp-footer-inner { width: min(100% - 2 * var(--page-pad), var(--page-max)) !important; max-width: var(--page-max) !important; gap: clamp(28px,5vw,70px) !important; }
.lp-footer-tagline,
.lp-footer-contact,
.lp-footer-col2 p,
.lp-footer-contact-block,
.lp-footer-bottom-inner { color: #b7c4c9 !important; }
.lp-footer a,
.lp-footer-contact a,
.lp-footer-services a,
.lp-footer-contact-block a { color: #a9d6df !important; }
.lp-footer a:hover,
.lp-footer-contact a:hover,
.lp-footer-services a:hover,
.lp-footer-contact-block a:hover { color: #f19c49 !important; }
.lp-footer-col2 h4,
.lp-footer-col3 h4,
.lp-footer-locations-link { color: #f19c49 !important; }
.lp-footer-social a svg { fill: #a9d6df !important; }
.lp-footer-bottom { border-top-color: rgba(255,255,255,.15) !important; }

/* Project detail pages use the work itself as visual proof, with deliberately
   structured case-study reading order and no ornamental card language. */
.ppj-hero { padding: clamp(66px, 8vw, 118px) 0 !important; background: #ffffff !important; }
.ppj-hero__inner { display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr) !important; gap: clamp(42px, 7vw, 104px) !important; align-items: center !important; }
.ppj-hero__eyebrow,
.ppj-heading-block > p { color: #00567e !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: .13em !important; text-transform: uppercase !important; }
.ppj-hero h1 { max-width: 10ch !important; margin-bottom: 22px !important; color: #101820 !important; }
.ppj-hero__summary,
.ppj-richtext { color: #44505c !important; }
.ppj-device { width: 100% !important; padding: 0 !important; background: #f1f3f4 !important; border: 1px solid #d8e0e3 !important; border-radius: 0 !important; box-shadow: none !important; }
.ppj-device img { display: block !important; width: 100% !important; height: auto !important; }
.ppj-device__hint { border-radius: 0 !important; background: #101820 !important; color: #ffffff !important; }
.ppj-meta-strip { background: #101820 !important; }
.ppj-meta-strip__inner { display: grid !important; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)) !important; gap: 1px !important; background: rgba(255,255,255,.16) !important; }
.ppj-meta-item { padding: 24px !important; background: #101820 !important; }
.ppj-meta-item__label { color: #a9d6df !important; }
.ppj-meta-item__value { color: #ffffff !important; }
.ppj-section { padding: clamp(64px, 8vw, 108px) 0 !important; background: #ffffff !important; }
.ppj-section--alt { background: #f1f3f4 !important; }
.ppj-panel { padding: 30px !important; background: #ffffff !important; border: 1px solid #d8e0e3 !important; border-radius: 0 !important; box-shadow: none !important; }
.ppj-panel h2,
.ppj-panel h3,
.ppj-copy-block h2 { color: #101820 !important; }
.ppj-context-grid,
.ppj-paired-grid { gap: 1px !important; }
.ppj-list li,
.ppj-related-links li { border-color: #d8e0e3 !important; color: #44505c !important; }
.ppj-testimonial { max-width: 900px !important; margin: 0 !important; padding: clamp(34px,5vw,62px) !important; border-left: 4px solid #f19c49 !important; background: #f1f3f4 !important; color: #101820 !important; }
.ppj-testimonial__quote { color: #101820 !important; }
.ppj-cta { padding: clamp(44px,6vw,76px) !important; background: #101820 !important; border-radius: 0 !important; }
.ppj-cta h2,
.ppj-cta p { color: #ffffff !important; }

/* Editorial archive: the latest story leads, then the image-led archive is
   structured for scanning without decorative shadows or low-contrast ink. */
.blg-shell { background: #ffffff !important; }
.blg-feature__card { display: grid !important; grid-template-columns: 1.05fr .95fr !important; border: 1px solid #d8e0e3 !important; }
.blg-feature__media,
.blg-feature__body { min-width: 0; }
.blg-feature__body { padding: clamp(30px,5vw,64px) !important; }
.blg-feature__title { color: #101820 !important; }
.blg-feature__excerpt,
.blg-feature__eyebrow { color: #52616d !important; }
.blg-grid { gap: 1px !important; background: #d8e0e3 !important; }
.blg-card { background: #ffffff !important; }
.blg-card__body { min-height: 100% !important; padding: 28px !important; }
.blg-card__link:hover .blg-card__body { background: #f1f3f4 !important; }
.blg-filter { border-radius: 0 !important; }
.blg-filter.is-active { background: #00567e !important; color: #ffffff !important; }
.blg-pagination__link,
.blg-pagination__arrow { border-radius: 0 !important; }

/* Strong, quiet footer: a deliberate endcap rather than a second theme. */
#site-footer { background: #101820 !important; color: #d6e2e5 !important; }
#site-footer h3 { color: #ffffff !important; }
#site-footer a { color: #a9d6df !important; }
#site-footer a:hover { color: #f19c49 !important; }
.footer-bottom { background: #0c131b !important; border-top-color: rgba(255,255,255,.14) !important; }

@media (max-width: 980px) {
  .nav-wrap { grid-template-columns: 1fr auto !important; height: 70px !important; min-height: 70px !important; }
  .nav-logo { width: 152px !important; }
  .nav-primary { display: block; }
  .nav-primary .nav-cta { display: none; }
  .nav-menu { display: none !important; }
  .nav-hamburger { justify-self: end; }
  .nav-hamburger span { background: #101820 !important; }
  body.nav-mobile-open #site-header { position: fixed !important; inset: 0 !important; z-index: 1000 !important; pointer-events: none !important; }
  body.nav-mobile-open .nav-wrap {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    height: 100dvh !important;
    max-height: none !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr auto auto !important;
    grid-template-areas: "logo cta close" "menu menu menu" !important;
    gap: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    pointer-events: auto !important;
  }
  body.nav-mobile-open .nav-logo { grid-area: logo !important; width: auto !important; margin: 0 !important; padding: 18px var(--page-pad) !important; border-bottom: 1px solid #d8e0e3 !important; }
  body.nav-mobile-open .nav-logo img { width: 152px !important; margin: 0 !important; }
  body.nav-mobile-open nav[aria-label="Main navigation"] { grid-area: menu !important; width: 100% !important; min-height: 0 !important; height: 100% !important; overflow: hidden !important; }
  body.nav-mobile-open .nav-menu { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 14px var(--page-pad) 28px !important; gap: 0 !important; overflow-y: auto !important; background: #ffffff !important; }
  body.nav-mobile-open .nav-menu > li { width: 100% !important; border-top: 1px solid #d8e0e3 !important; }
  body.nav-mobile-open .nav-menu > li:first-child { border-top: 0 !important; }
  body.nav-mobile-open .nav-menu > li > a,
  body.nav-mobile-open .nav-menu > li > button { min-height: 56px !important; padding: 0 !important; color: #101820 !important; font-size: 14px !important; font-weight: 800 !important; letter-spacing: .08em !important; }
  body.nav-mobile-open .nav-menu > li.open > button { color: #00567e !important; }
  body.nav-mobile-open .nav-dropdown,
  body.nav-mobile-open .nav-megamenu { background: #f1f3f4 !important; border: 0 !important; border-top: 1px solid #d8e0e3 !important; box-shadow: none !important; }
  body.nav-mobile-open .nav-dropdown a,
  body.nav-mobile-open .nav-megamenu a { padding: 13px 18px !important; color: #344550 !important; font-size: 14px !important; border-top: 1px solid #d8e0e3 !important; }
  body.nav-mobile-open .nav-mega-label { color: #00567e !important; padding: 14px 18px 8px !important; }
  body.nav-mobile-open .nav-cta { grid-area: cta !important; display: inline-flex !important; min-width: 0 !important; margin: 0 14px 0 0 !important; padding: 10px 14px !important; font-size: 12px !important; border-radius: 0 !important; }
  .nav-mobile-open .nav-mobile-close { grid-area: close !important; display: block !important; padding: 0 var(--page-pad) 0 0 !important; color: #101820 !important; }
  .ph-hero { min-height: auto !important; }
  .ph-hero__overlay { background: rgba(16,24,32,.78) !important; }
  .hp-hero { grid-template-columns:1fr !important; min-height:auto !important; }
  .hp-hero::before { width:100% !important; }
  .hp-hero-video { position:absolute !important; width:100% !important; opacity:.36 !important; }
  .hp-hero-overlay { background:rgba(255,255,255,.84) !important; }
  .hp-hero-content { width:calc(100% - 2 * var(--page-pad)) !important; margin:0 var(--page-pad) !important; }
  .hp-blurbs-inner,.hp-logo-grid { grid-template-columns:1fr 1fr !important; }
  .hp-blurb:nth-child(2) { border-right:0 !important; }
  .hp-testimonial-grid { grid-template-columns:1fr !important; }
  .hp-cta { align-items:flex-start !important; flex-direction:column !important; }
  .lp-process-steps { grid-template-columns: repeat(2, 1fr) !important; }
  .ppj-hero__inner { grid-template-columns: 1fr !important; }
  .ppj-hero h1 { max-width: 12ch !important; }
  .blg-feature__card { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
  body { font-size: 16px; }
  .section { padding: 58px 0 !important; }
  .ph-hero { padding: 74px 0 !important; }
  .ph-hero h1 { font-size: clamp(2.5rem, 12vw, 3.4rem) !important; }
  .btn,
  .btn--primary,
  .btn--outline,
  .btn--dark { min-height: 46px; }
  .hp-hero-content { padding:72px 0 !important; }
  .hp-hero-content h1 { font-size:clamp(2.7rem,12vw,3.8rem) !important; }
  .hp-blurbs-inner,.hp-logo-grid { grid-template-columns:1fr !important; }
  .hp-blurb { border-right:0 !important; border-bottom:1px solid #d8e0e3 !important; }
  .hp-blurb-link { padding:34px var(--page-pad) !important; }
  .hp-logo-card { min-height:118px !important; }
  .hp-testimonial { padding:28px !important; }
  .lp-services-grid,
  .lp-process-steps { grid-template-columns: 1fr !important; }
  .lp-step { padding: 27px 24px !important; }
  .lp-step h4 { min-height: 0 !important; }
  .ppj-panel { padding: 25px !important; }
  .ppj-cta { padding: 32px 25px !important; }
  .blg-feature__body,
  .blg-card__body { padding: 25px !important; }
}

/* Final light-stage cascade guard. The legacy stylesheet contains several
   former-theme selectors with higher specificity; these rules deliberately
   neutralize that historic presentation without changing page content. */
html[data-theme="light"] .hp-hero {
  background: #ffffff !important;
  background-image: none !important;
}
html[data-theme="light"] .hp-hero::before { width: 56% !important; background: #ffffff !important; }
html[data-theme="light"] .hp-hero-video { background: #101820 !important; opacity: 1 !important; }
html[data-theme="light"] .hp-hero-overlay { background: linear-gradient(90deg,#ffffff 0%,rgba(255,255,255,.96) 36%,rgba(255,255,255,.10) 72%,rgba(16,24,32,.12) 100%) !important; }
html[data-theme="light"] .hp-hero-content h1 { max-width: 11ch !important; font-size: clamp(3rem,5.1vw,5.4rem) !important; }
html[data-theme="light"] .hp-hero-buttons .btn + .btn { background: #ffffff !important; color: #00567e !important; border-color: #00567e !important; }

html[data-theme="light"] .hp-blurb { background: #ffffff !important; border-color: #d8e0e3 !important; box-shadow: none !important; }
html[data-theme="light"] .hp-services { background: #f1f3f4 !important; }
html[data-theme="light"] .hp-services-panel {
  display: grid !important;
  grid-template-columns: minmax(180px,.7fr) minmax(0,1.3fr) !important;
  gap: clamp(32px,7vw,104px) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .hp-services-panel .section-inner { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; background: transparent !important; }
html[data-theme="light"] .hp-services-panel h2 { max-width: 12ch !important; color: #101820 !important; }
html[data-theme="light"] .hp-services-panel p:not(.hp-section-eyebrow) { color: #44505c !important; }
html[data-theme="light"] .hp-hosting-callout { background: transparent !important; color: #00567e !important; }

/* Keep the supporting hosting note inside the service-copy column. */
html[data-theme="light"] .hp-services-panel .hp-hosting-callout {
  width: auto !important;
  max-width: none !important;
  margin: 28px 0 0 !important;
  padding: 24px 0 0 !important;
  border-top: 1px solid #cbd5d9 !important;
  background: transparent !important;
  color: #00567e !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
}
html[data-theme="light"] .hp-logos-shell { background: transparent !important; border: 0 !important; box-shadow: none !important; }
html[data-theme="light"] .hp-testimonial { background: #f1f3f4 !important; box-shadow: none !important; }
html[data-theme="light"] .hp-cta-section { background: #101820 !important; }
html[data-theme="light"] .hp-cta { background: transparent !important; border: 0 !important; box-shadow: none !important; }
html[data-theme="light"] .hp-cta h3 { color: #ffffff !important; }

html[data-theme="light"] .svcx-section-shell,
html[data-theme="light"] .wd-section-shell,
html[data-theme="light"] .rd-section-shell,
html[data-theme="light"] .abt-shell,
html[data-theme="light"] .ct-card,
html[data-theme="light"] .ct-office-card,
html[data-theme="light"] .ct-form-card,
html[data-theme="light"] .qr-form,
html[data-theme="light"] .qr-intro-card,
html[data-theme="light"] .blg-feature__card,
html[data-theme="light"] .blg-card__link,
html[data-theme="light"] .pt-card,
html[data-theme="light"] .ppj-panel {
  background: #ffffff !important;
  border-color: #d8e0e3 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .blg-card__link:hover,
html[data-theme="light"] .blg-card__link:focus-visible { transform: none !important; box-shadow: inset 0 0 0 1px #00567e !important; }
html[data-theme="light"] #site-footer { background: #101820 !important; color: #d6e2e5 !important; }
html[data-theme="light"] #site-footer h3 { color: #ffffff !important; }
html[data-theme="light"] #site-footer a { color: #a9d6df !important; }
html[data-theme="light"] .footer-bottom { background: #0c131b !important; border-top-color: rgba(255,255,255,.14) !important; }

/* The legacy site reserved vertical room for a fixed navigation island.  The
   redesign uses a normal document-flow header, so that offset must not leave
   an empty band above every interior page. */
html[data-theme="light"] body { padding-top: 0 !important; }

/* Portfolio and editorial archives are deliberately quiet, light-led entry
   points.  They do not need the service-video stage, but their typography must
   remain as legible and intentional as the service pages. */
html[data-theme="light"] .pt-hero,
html[data-theme="light"] .blg-hero {
  min-height: 0 !important;
  padding: clamp(56px, 7vw, 96px) 0 !important;
  background: #f1f3f4 !important;
}
html[data-theme="light"] .pt-hero::before,
html[data-theme="light"] .blg-hero::before { display: none !important; }
html[data-theme="light"] .pt-shell.pt-shell--hero.pt-hero__copy,
html[data-theme="light"] .blg-hero .svcx-hero-panel {
  max-width: 860px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
html[data-theme="light"] .pt-shell.pt-shell--hero.pt-hero__copy::before,
html[data-theme="light"] .blg-hero .svcx-hero-panel::before { display: none !important; }
html[data-theme="light"] .pt-hero h1,
html[data-theme="light"] .blg-hero h1 { color: #101820 !important; }
html[data-theme="light"] .pt-hero h2,
html[data-theme="light"] .pt-hero p,
html[data-theme="light"] .blg-hero .svcx-hero-panel > p:not(.blg-kicker) { color: #44505c !important; }
html[data-theme="light"] .blg-hero .blg-kicker { color: #00567e !important; }
html[data-theme="light"] .blg-hero .blg-filter {
  background: #ffffff !important;
  border-color: #cbd6da !important;
  color: #344550 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .blg-hero .blg-filter.is-active {
  background: #00567e !important;
  border-color: #00567e !important;
  color: #ffffff !important;
}

/* Homepage closing sequence: a softer blue-grey call to action connects the
   light content canvas to the dark footer without an accidental white gap. */
html[data-theme="light"] .hp-cta-section { background: #355663 !important; }
html[data-theme="light"] .hp-cta { background: transparent !important; }
html[data-theme="light"] .hp-cta .btn--primary {
  background: #ffffff !important;
  border-color: #ffffff !important;
  color: #00567e !important;
}
html[data-theme="light"] #site-footer { margin-top: 0 !important; }

/* The footer is part of the home page's reading column, not a full-bleed
   utility rail.  Match its gutter to the rest of the redesign. */
html[data-theme="light"] #site-footer .footer-inner,
html[data-theme="light"] #site-footer .footer-bottom-inner {
  width: min(100% - 2 * var(--page-pad), var(--page-max)) !important;
  max-width: var(--page-max) !important;
}

/* Interior service pages retain their supplied video, but the copy should read
   directly on the stage rather than inside a legacy dark card. */
html[data-theme="light"] .ph-hero,
html[data-theme="light"] .sv-hero {
  display: flex !important;
  align-items: center !important;
  min-height: clamp(500px, 50vw, 660px) !important;
  padding: 0 !important;
  border: 0 !important;
}
html[data-theme="light"] .ph-hero__inner,
html[data-theme="light"] .sv-hero__inner {
  padding: clamp(84px, 9vw, 134px) 0 !important;
}
html[data-theme="light"] .ph-hero .ph-hero__copy,
html[data-theme="light"] .ph-hero .wd-hero-panel,
html[data-theme="light"] .ph-hero .rd-hero-panel,
html[data-theme="light"] .ph-hero .svcx-hero-panel,
html[data-theme="light"] .ph-hero .abt-hero-panel {
  max-width: 720px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
html[data-theme="light"] .ph-hero h1,
html[data-theme="light"] .sv-hero h1 {
  max-width: 14ch !important;
  font-size: clamp(3rem, 5vw, 4.75rem) !important;
  line-height: .96 !important;
}
html[data-theme="light"] .abt-hero h1 {
  max-width: 15ch !important;
  font-size: clamp(2.8rem, 4.8vw, 4.5rem) !important;
}

/* The mobile header must be a single, reliably aligned 72px bar. */
@media (max-width: 980px) {
  html[data-theme="light"] body:not(.nav-mobile-open) #site-header .nav-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    height: 72px !important;
    min-height: 72px !important;
    padding: 0 var(--page-pad) !important;
    gap: 0 !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-logo {
    display: block !important;
    width: 152px !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-logo img {
    width: 152px !important;
    max-width: 152px !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-primary {
    display: none !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-hamburger {
    display: flex !important;
    position: static !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 0 0 auto !important;
    padding: 10px !important;
  }
  html[data-theme="light"] .ph-hero,
  html[data-theme="light"] .sv-hero { min-height: 0 !important; }
  html[data-theme="light"] .ph-hero__inner,
  html[data-theme="light"] .sv-hero__inner { padding: 72px 0 !important; }
}

@media (max-width: 767px) {
  html[data-theme="light"] .ph-hero__inner,
  html[data-theme="light"] .sv-hero__inner { padding: 64px 0 58px !important; }
  html[data-theme="light"] .ph-hero h1,
  html[data-theme="light"] .sv-hero h1 { max-width: none !important; }
  html[data-theme="light"] .abt-hero h1 {
    max-width: none !important;
    font-size: clamp(2.15rem, 9vw, 2.6rem) !important;
  }
}

@media (max-width: 980px) {
  html[data-theme="light"] .hp-hero::before { width: 100% !important; }
  html[data-theme="light"] .hp-hero-video { opacity: .38 !important; }
  html[data-theme="light"] .hp-hero-overlay { background: rgba(255,255,255,.84) !important; }
  html[data-theme="light"] .hp-services-panel { grid-template-columns: 1fr !important; gap: 22px !important; }
  html[data-theme="light"] .pt-hero,
  html[data-theme="light"] .blg-hero { padding: 52px 0 !important; }
}

/* Light stage completion: standard page sections use crisp white and a single
   neutral-grey alternate surface. Legacy cream fields and nested white shells
   made the interior pages look heavier than the redesign intends. */
html[data-theme="light"] .section { background: #ffffff !important; }
html[data-theme="light"] .section--grey,
html[data-theme="light"] .section--surface,
html[data-theme="light"] .section--dark { background: #f1f3f4 !important; }

html[data-theme="light"] .svcx-section-shell,
html[data-theme="light"] .wd-section-shell,
html[data-theme="light"] .rd-section-shell,
html[data-theme="light"] .abt-shell {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html[data-theme="light"] .svcx-card,
html[data-theme="light"] .svcx-plan-card,
html[data-theme="light"] .wd-card,
html[data-theme="light"] .rd-card,
html[data-theme="light"] .abt-compare__card,
html[data-theme="light"] .abt-value-card,
html[data-theme="light"] .ct-card,
html[data-theme="light"] .ct-office-card,
html[data-theme="light"] .ct-form-card,
html[data-theme="light"] .ct-sidebar-hours {
  border-radius: 0 !important;
  box-shadow: none !important;
}

html[data-theme="light"] .abt-hero .abt-hero-panel { max-width: 900px !important; }
html[data-theme="light"] .abt-hero h1 {
  max-width: 19ch !important;
  font-size: clamp(2.7rem, 4.3vw, 4.1rem) !important;
}
html[data-theme="light"] .abt-hero .abt-highlight {
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.22) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .abt-hero .abt-highlight strong { color: #ffffff !important; }
html[data-theme="light"] .abt-hero .abt-highlight span { color: #d6e2e5 !important; }

html[data-theme="light"] .ct-cards-zone { background: #ffffff !important; }
html[data-theme="light"] .ct-trust-strip {
  background: #f1f3f4 !important;
  border-top: 1px solid #d8e0e3 !important;
  border-bottom: 1px solid #d8e0e3 !important;
}
html[data-theme="light"] .ct-contact-band { background: #ffffff !important; }
html[data-theme="light"] .ct-form-section { background: #f1f3f4 !important; }
html[data-theme="light"] .ct-form-card .form-input,
html[data-theme="light"] .ct-form-card .form-textarea,
html[data-theme="light"] .intake-form input,
html[data-theme="light"] .intake-form select,
html[data-theme="light"] .intake-form textarea { background: #ffffff !important; }

html[data-theme="light"] .svcx-cta-panel,
html[data-theme="light"] .sl-cta {
  background: #00567e !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .svcx-cta-panel h2,
html[data-theme="light"] .sl-cta h2 { color: #ffffff !important; }
html[data-theme="light"] .svcx-cta-panel p,
html[data-theme="light"] .sl-cta p { color: #d6e2e5 !important; }
html[data-theme="light"] .svcx-cta-panel .btn,
html[data-theme="light"] .sl-cta .btn {
  background: #ffffff !important;
  border-color: #ffffff !important;
  color: #00567e !important;
}

@media (max-width: 767px) {
  html[data-theme="light"] .abt-hero h1 {
    max-width: none !important;
    font-size: clamp(2.15rem, 9vw, 2.6rem) !important;
  }
}

/* Only video-backed service stories need a dark stage. Utility, legal, intake,
   and About headers are deliberately light editorial introductions. */
html[data-theme="light"] .ph-hero:not(.ph-hero--video) {
  display: block !important;
  min-height: 0 !important;
  padding: 0 !important;
  background: #f1f3f4 !important;
  border: 0 !important;
}
html[data-theme="light"] .ph-hero:not(.ph-hero--video)::before,
html[data-theme="light"] .ph-hero:not(.ph-hero--video)::after { display: none !important; }
html[data-theme="light"] .ph-hero:not(.ph-hero--video) .ph-hero__inner {
  padding: clamp(68px, 8vw, 112px) 0 !important;
}
html[data-theme="light"] .ph-hero:not(.ph-hero--video) h1 {
  max-width: 17ch !important;
  color: #101820 !important;
  font-size: clamp(2.55rem, 4.4vw, 4.1rem) !important;
  line-height: .98 !important;
}
html[data-theme="light"] .ph-hero:not(.ph-hero--video) .ph-hero__copy p,
html[data-theme="light"] .ph-hero:not(.ph-hero--video) .ph-hero__copy li,
html[data-theme="light"] .ph-hero:not(.ph-hero--video) p { color: #44505c !important; }
html[data-theme="light"] .ph-hero:not(.ph-hero--video) .ph-hero__eyebrow { color: #00567e !important; }

html[data-theme="light"] .abt-hero .abt-highlight {
  background: #ffffff !important;
  border-color: #d8e0e3 !important;
}
html[data-theme="light"] .abt-hero .abt-highlight strong { color: #101820 !important; }
html[data-theme="light"] .abt-hero .abt-highlight span { color: #44505c !important; }

@media (max-width: 767px) {
  html[data-theme="light"] .ph-hero:not(.ph-hero--video) .ph-hero__inner {
    padding: 58px 0 !important;
  }
  html[data-theme="light"] .ph-hero:not(.ph-hero--video) h1 {
    max-width: none !important;
    font-size: clamp(2.25rem, 9.5vw, 2.8rem) !important;
  }
}

/* Video-led service introductions retain their supplied media, but the copy
   must remain legible over every frame. These selectors deliberately outrank
   earlier theme-era rules that were restoring dark paragraph ink. */
html[data-theme="light"] .ph-hero.ph-hero--video .ph-hero__overlay,
html[data-theme="light"] .sv-hero.ph-hero--video .sv-hero__overlay {
  background: linear-gradient(90deg, rgba(16,24,32,.96) 0%, rgba(16,24,32,.86) 46%, rgba(16,24,32,.38) 100%) !important;
  opacity: 1 !important;
}
html[data-theme="light"] .ph-hero.ph-hero--video h1,
html[data-theme="light"] .sv-hero.ph-hero--video h1 {
  color: #ffffff !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.32) !important;
}
html[data-theme="light"] .ph-hero.ph-hero--video .ph-hero__copy p,
html[data-theme="light"] .ph-hero.ph-hero--video .svcx-hero-panel p,
html[data-theme="light"] .sv-hero.ph-hero--video .sv-hero__copy p {
  color: #edf4f5 !important;
  text-shadow: 0 1px 12px rgba(0,0,0,.30) !important;
}
html[data-theme="light"] .ph-hero.ph-hero--video .ph-hero__eyebrow,
html[data-theme="light"] .sv-hero.ph-hero--video .ph-hero__eyebrow {
  color: #f19c49 !important;
}

/* The CTA belongs to the page, not the footer. A deliberate white interval
   lets the blue panel finish before the footer's dark surface begins. */
html[data-theme="light"] .cta-block {
  margin-top: 0 !important;
  padding-bottom: clamp(48px, 6vw, 88px) !important;
  background: #ffffff !important;
}

/* ALPHA+v3 is one brand token in visual copy: never permit a gap before the
   superscripted suffix. Metadata, alt text, titles and aria labels remain the
   plain-text canonical form: ALPHA+v3. */
.brand-plusv3,
.brand-sup {
  margin-left: 0 !important;
  letter-spacing: 0 !important;
  text-transform: lowercase !important;
}
.brand-plusv3--heading { font-size: medium; }

/* Mobile navigation is deliberately a single reading column. The legacy
   overlay put a grid area on the nested <nav>, while its parent was the grid
   item; Safari could then place the menu in an arbitrary split layout. */
@media (max-width: 980px) {
  html[data-theme="light"] body.nav-mobile-open .nav-wrap {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: 72px minmax(0, 1fr) !important;
    grid-template-areas: "logo close" "menu menu" !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-logo {
    grid-area: logo !important;
    display: flex !important;
    align-items: center !important;
    align-self: stretch !important;
    height: 72px !important;
    padding: 0 var(--page-pad) !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-primary {
    grid-area: menu !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-primary > nav {
    display: block !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu {
    min-height: 0 !important;
    height: 100% !important;
    padding: 8px var(--page-pad) !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-cta {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    margin: 14px var(--page-pad) 26px !important;
    padding: 12px 16px !important;
    font-size: 13px !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-mobile-close {
    display: flex !important;
    position: fixed !important;
    top: 14px !important;
    right: var(--page-pad) !important;
    z-index: 1002 !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    color: #101820 !important;
  }
}

@media (max-width: 767px) {
  html[data-theme="light"] .hp-testimonial-section {
    padding-bottom: 38px !important;
  }
}

/* Service-video copy is always light. All service variants use one of the
   three copy wrappers below; keeping them together prevents a page-specific
   light-theme rule from making a single hero unreadable. */
html[data-theme="light"] .ph-hero.ph-hero--video :is(.ph-hero__copy, .sv-hero__copy, .svcx-hero-panel) > p:not(.ph-hero__eyebrow),
html[data-theme="light"] .ph-hero.ph-hero--video :is(.ph-hero__copy, .sv-hero__copy, .svcx-hero-panel) > ul,
html[data-theme="light"] .ph-hero.ph-hero--video :is(.ph-hero__copy, .sv-hero__copy, .svcx-hero-panel) > ul li {
  color: #edf4f5 !important;
  text-shadow: 0 1px 12px rgba(0,0,0,.30) !important;
}
html[data-theme="light"] .ph-hero.ph-hero--video :is(.ph-hero__copy, .sv-hero__copy, .svcx-hero-panel) > :is(p, ul) strong {
  color: #ffffff !important;
}
html[data-theme="light"] .ph-hero.ph-hero--video :is(.ph-hero__copy, .sv-hero__copy, .svcx-hero-panel) > p:not(.ph-hero__eyebrow) > a:not(.btn) {
  color: #ffffff !important;
  text-decoration-color: #f19c49 !important;
}

/* Every lower-page CTA finishes before the footer begins. This remains scoped
   to the CTA wrapper so normal section spacing and the home endcap are intact. */
html[data-theme="light"] .cta-block {
  padding: clamp(40px, 5vw, 72px) 0 clamp(56px, 7vw, 104px) !important;
}
html[data-theme="light"] .cta-block .svcx-cta-panel {
  margin: 0 auto !important;
}

/* The homepage uses its established header graphic as a single full-width
   image. It is intentionally not a video poster: that caused a visible swap
   from the graphic to unrelated service footage after page load. */
html[data-theme="light"] .hp-hero {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: clamp(620px, 58vw, 790px) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #101820 url('/images/ALPHAv3-home-page-header.webp') center center / cover no-repeat !important;
  text-align: left !important;
  will-change: background-position;
}
html[data-theme="light"] .hp-hero::before { display: none !important; }
html[data-theme="light"] .hp-hero-overlay {
  background: linear-gradient(90deg, rgba(16,24,32,.93) 0%, rgba(16,24,32,.82) 43%, rgba(16,24,32,.30) 73%, rgba(16,24,32,.16) 100%) !important;
}
html[data-theme="light"] .hp-hero-content {
  width: min(100% - 2 * var(--page-pad), 700px) !important;
  margin: 0 0 0 max(var(--page-pad), calc((100vw - var(--page-max)) / 2)) !important;
  padding: clamp(72px, 9vw, 132px) 0 !important;
}
html[data-theme="light"] .hp-hero .hp-hero-eyebrow {
  background: transparent !important;
  border: 0 !important;
  color: #f19c49 !important;
}
html[data-theme="light"] .hp-hero-content h1,
html[data-theme="light"] .hp-hero-sub,
html[data-theme="light"] .hp-hero-desc,
html[data-theme="light"] .hp-hero-desc strong { color: #ffffff !important; }
html[data-theme="light"] .hp-hero-desc { color: #edf4f5 !important; }
html[data-theme="light"] .hp-hero-buttons .btn + .btn {
  background: transparent !important;
  border-color: rgba(255,255,255,.75) !important;
  color: #ffffff !important;
}

/* A floating glass navigation island lets the opening content show behind the
   shell without sacrificing contrast or keyboard access. It is shared by all
   pages; the full mobile menu retains its purpose-built panel treatment. */
html[data-theme="light"] #site-header {
  position: fixed !important;
  inset: 16px 0 auto !important;
  z-index: 1000 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  pointer-events: none;
}
html[data-theme="light"] #site-header .nav-wrap {
  width: min(92%, 1540px) !important;
  height: 104px !important;
  min-height: 104px !important;
  margin: 0 auto !important;
  padding: 0 30px !important;
  background: rgba(248,251,252,.82) !important;
  border: 1px solid rgba(255,255,255,.82) !important;
  border-radius: 18px !important;
  box-shadow: 0 12px 30px rgba(16,24,32,.16), inset 0 1px 0 rgba(255,255,255,.82) !important;
  backdrop-filter: blur(20px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(135%) !important;
  pointer-events: auto;
}
html[data-theme="light"] #site-header .nav-dropdown,
html[data-theme="light"] #site-header .nav-megamenu {
  background: rgba(255,255,255,.94) !important;
  border-color: rgba(191,204,210,.84) !important;
  box-shadow: 0 16px 34px rgba(16,24,32,.16) !important;
  backdrop-filter: blur(18px) saturate(145%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(145%) !important;
}
/* Page heroes provide their own top breathing room below the overlay. */
html[data-theme="light"] #main-content > .ph-hero:first-child .ph-hero__inner,
html[data-theme="light"] #main-content > .sv-hero:first-child .sv-hero__inner {
  padding-top: clamp(126px, 11vw, 166px) !important;
}
@media (max-width: 980px) {
  html[data-theme="light"] #site-header { inset: 10px 0 auto !important; }
  html[data-theme="light"] body:not(.nav-mobile-open) #site-header .nav-wrap {
    width: min(100% - 2 * var(--page-pad), var(--page-max)) !important;
    height: 64px !important;
    min-height: 64px !important;
    padding: 0 16px !important;
    border-radius: 14px !important;
  }
  html[data-theme="light"] #main-content > .ph-hero:first-child .ph-hero__inner,
  html[data-theme="light"] #main-content > .sv-hero:first-child .sv-hero__inner { padding-top: 112px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="light"] .hp-hero { will-change: auto; }
}

/* Canonical ALPHA control geometry: a modest radius distinguishes interactive
   controls without turning calls to action into pills. */
html[data-theme="light"] {
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 10px;
  --r-pill: 999px;
}
html[data-theme="light"] .btn,
html[data-theme="light"] .btn--primary,
html[data-theme="light"] .btn--outline,
html[data-theme="light"] .btn--dark,
html[data-theme="light"] .nav-cta,
html[data-theme="light"] .ct-card-btn,
html[data-theme="light"] .sv-pricing-card__link,
html[data-theme="light"] .blg-pagination__link,
html[data-theme="light"] .blg-pagination__arrow,
html[data-theme="light"] button[type="submit"],
html[data-theme="light"] input[type="submit"] {
  border-radius: var(--r-sm) !important;
}

/* The homepage presents four enduring service areas. Streamsyncs is the
   current Data Management offer, leaving this navigation layer durable as
   future integration work is added. */
html[data-theme="light"] .hp-blurbs-inner { grid-template-columns: repeat(4, 1fr) !important; }
html[data-theme="light"] .hp-blurb:last-child { border-right: 0 !important; }
html[data-theme="light"] .hp-blurb-icon svg { color: #4797a8 !important; }
@media (max-width: 980px) {
  html[data-theme="light"] .hp-hero { min-height: 0 !important; background-position: 62% center !important; }
  html[data-theme="light"] .hp-hero-overlay { background: linear-gradient(90deg, rgba(16,24,32,.91) 0%, rgba(16,24,32,.75) 68%, rgba(16,24,32,.52) 100%) !important; }
  html[data-theme="light"] .hp-hero-content { margin-inline: var(--page-pad) !important; }
  html[data-theme="light"] .hp-blurbs-inner { grid-template-columns: repeat(2, 1fr) !important; }
  html[data-theme="light"] .hp-blurb:nth-child(2n) { border-right: 0 !important; }
  html[data-theme="light"] .hp-blurb:nth-child(n+3) { border-top: 1px solid #d8e0e3 !important; }
}
@media (max-width: 640px) {
  html[data-theme="light"] .hp-hero { background-position: 60% center !important; }
  html[data-theme="light"] .hp-hero-content { padding: 88px 0 76px !important; }
  html[data-theme="light"] .hp-blurbs-inner { grid-template-columns: 1fr !important; }
  html[data-theme="light"] .hp-blurb { border-top: 0 !important; }
  html[data-theme="light"] .hp-blurb:not(:last-child) { border-bottom: 1px solid #d8e0e3 !important; }
  html[data-theme="light"] .hp-blurb:last-child { border-bottom: 0 !important; }
}

/* Keep the homepage opening line at the same offset beneath the floating
   navigation island as the page-level heroes. Mobile keeps its compact rule. */
@media (min-width: 981px) {
  html[data-theme="light"] .hp-hero-content {
    padding: clamp(126px, 11vw, 166px) 0 clamp(72px, 9vw, 132px) !important;
  }
}

/* Small Streamsyncs labels sit on light content surfaces. They need a full
   text contrast value rather than the quiet, decorative ink token. */
html[data-theme="light"] main .section:not(.ph-hero) .svcx-eyebrow {
  color: #00567e !important;
}
html[data-theme="light"] .ss-apisite-note {
  color: #44505c !important;
}

/* Shared text that is read at normal sizes uses the accessible secondary ink,
   rather than a decorative accent or faint utility tone. */
html[data-theme="light"] .blg-feature__label {
  color: #00567e !important;
}
html[data-theme="light"] .util-main .util-note {
  color: #44505c !important;
}

/* Location heroes pair their image with a light adjacent text surface. */
html[data-theme="light"] .lp-hero-text-col h1 {
  color: #101820 !important;
}
html[data-theme="light"] .lp-hero-lead {
  color: #44505c !important;
}

/* Ochre controls use the canonical dark on-ochre ink. */
html[data-theme="light"] .pst-cta .btn--dark,
html[data-theme="light"] .pst-cta .btn--dark:hover,
html[data-theme="light"] .pst-cta .btn--dark:focus-visible {
  color: #241803 !important;
}

/* Service videos are part of the design, not a nearly black backdrop. The
   left-hand copy area remains dark enough for reliable white-text contrast. */
html[data-theme="light"] .ph-hero.ph-hero--video .ph-hero__video,
html[data-theme="light"] .sv-hero.ph-hero--video .sv-hero__video {
  opacity: .82 !important;
}
html[data-theme="light"] .ph-hero.ph-hero--video .ph-hero__overlay,
html[data-theme="light"] .sv-hero.ph-hero--video .sv-hero__overlay {
  background: linear-gradient(90deg, rgba(16,24,32,.88) 0%, rgba(16,24,32,.72) 46%, rgba(16,24,32,.20) 100%) !important;
}
@media (max-width: 980px) {
  html[data-theme="light"] .ph-hero.ph-hero--video .ph-hero__overlay,
  html[data-theme="light"] .sv-hero.ph-hero--video .sv-hero__overlay {
    background: rgba(16,24,32,.70) !important;
  }
}

/* Archive and project heroes need to clear the floating navigation island.
   The blog already has its own intended clearance, so it is not included. */
@media (min-width: 981px) {
  html[data-theme="light"] .pt-hero,
  html[data-theme="light"] .ppj-hero {
    padding-top: clamp(144px, 12vw, 172px) !important;
  }
}
@media (max-width: 980px) {
  html[data-theme="light"] .pt-hero,
  html[data-theme="light"] .ppj-hero {
    padding-top: 100px !important;
  }
}

/* Make portfolio rows read as a measured grid rather than staggered cards. */
html[data-theme="light"] .pt-grid { align-items: stretch !important; }
html[data-theme="light"] .pt-card { height: 100% !important; }
html[data-theme="light"] .pt-card__cta { color: #241803 !important; }

/* A project call-to-action remains a light neutral panel, never an inherited
   cream gradient or a dark panel with light copy. */
html[data-theme="light"] .ppj-cta {
  background: #f1f3f4 !important;
  border-color: #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .ppj-cta h2 { color: #101820 !important; }
html[data-theme="light"] .ppj-cta p { color: #44505c !important; }

/* Organization marks are individual client relationships, not a spreadsheet
   grid. Keep the cards quiet until an intentional hover or keyboard focus. */
html[data-theme="light"] .hp-logo-grid {
  gap: 14px !important;
  background: transparent !important;
}
html[data-theme="light"] .hp-logo-card {
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: 0 2px 7px rgba(16,24,32,.035) !important;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease !important;
}
html[data-theme="light"] .hp-logo-card:hover,
html[data-theme="light"] .hp-logo-card:focus-within {
  transform: translateY(-4px) !important;
  border-color: #00567e !important;
  box-shadow: 0 12px 26px rgba(16,24,32,.12) !important;
}
html[data-theme="light"] .hp-logo-card img {
  transition: transform .2s ease !important;
}
html[data-theme="light"] .hp-logo-card:hover img,
html[data-theme="light"] .hp-logo-card:focus-within img {
  transform: scale(1.025) !important;
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="light"] .hp-logo-card,
  html[data-theme="light"] .hp-logo-card img { transition: none !important; }
  html[data-theme="light"] .hp-logo-card:hover,
  html[data-theme="light"] .hp-logo-card:focus-within,
  html[data-theme="light"] .hp-logo-card:hover img,
  html[data-theme="light"] .hp-logo-card:focus-within img { transform: none !important; }
}

/* Portfolio cards are links, not miniature landing pages. The project cue is
   deliberately quiet and uses the same compact, 4px-corner treatment as a
   standard action, without obscuring the client work. */
html[data-theme="light"] .pt-card__link {
  border-radius: var(--r-md) !important;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease !important;
}
html[data-theme="light"] .pt-card__cta {
  left: 18px !important;
  bottom: 18px !important;
  min-width: 0 !important;
  padding: 8px 11px !important;
  transform: translateY(8px) !important;
  border: 1px solid #00567e !important;
  border-radius: var(--r-sm) !important;
  background: #00567e !important;
  color: #ffffff !important;
  box-shadow: 0 7px 16px rgba(16,24,32,.20) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .035em !important;
}
html[data-theme="light"] .pt-card__link:hover,
html[data-theme="light"] .pt-card__link:focus-visible {
  transform: translateY(-4px) !important;
  border-color: #00567e !important;
  box-shadow: 0 12px 24px rgba(16,24,32,.12) !important;
}
html[data-theme="light"] .pt-card__link:hover .pt-card__cta,
html[data-theme="light"] .pt-card__link:focus-visible .pt-card__cta {
  transform: translateY(0) !important;
  border-color: #00405e !important;
  background: #00405e !important;
  box-shadow: 0 9px 18px rgba(16,24,32,.24) !important;
}
html[data-theme="light"] .pt-card__link:focus-visible {
  outline: 3px solid rgba(0,86,126,.32) !important;
  outline-offset: 3px !important;
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="light"] .pt-card__link,
  html[data-theme="light"] .pt-card__cta { transition: none !important; }
  html[data-theme="light"] .pt-card__link:hover,
  html[data-theme="light"] .pt-card__link:focus-visible,
  html[data-theme="light"] .pt-card__link:hover .pt-card__cta,
  html[data-theme="light"] .pt-card__link:focus-visible .pt-card__cta { transform: none !important; }
}

/* Project-page facts retain a dark stage so the label/value hierarchy is
   legible. A late generic card rule had turned their surfaces white while
   preserving white values. */
html[data-theme="light"] .ppj-meta-strip {
  padding: 24px 0 !important;
  background: #101820 !important;
}
html[data-theme="light"] .ppj-meta-strip__inner {
  gap: 12px !important;
  background: transparent !important;
}
html[data-theme="light"] .ppj-meta-item {
  padding: 22px !important;
  background: #18212c !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: var(--r-md) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .ppj-meta-item__label { color: #a9d6df !important; }
html[data-theme="light"] .ppj-meta-item__value { color: #ffffff !important; }

/* Case-study sections stay generous enough to read, without the empty bands
   created by the former page-wide section scale. */
html[data-theme="light"] .ppj-section { padding: clamp(52px, 6vw, 82px) 0 !important; }
html[data-theme="light"] .ppj-context-grid,
html[data-theme="light"] .ppj-paired-grid { gap: clamp(20px, 3vw, 34px) !important; }
html[data-theme="light"] .ppj-paired-grid + .ppj-paired-grid { margin-top: clamp(20px, 3vw, 30px) !important; }

/* Form fields share the compact control geometry specified for ALPHA. Keep
   the border and focus treatment unchanged; this only resolves inherited
   square corners on text fields, selects, and textareas. */
html[data-theme="light"] .intake-form input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] .intake-form select,
html[data-theme="light"] .intake-form textarea,
html[data-theme="light"] .ct-form input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] .ct-form select,
html[data-theme="light"] .ct-form textarea,
html[data-theme="light"] .qr-form input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] .qr-form select,
html[data-theme="light"] .qr-form textarea,
html[data-theme="light"] .contact-form input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] .contact-form select,
html[data-theme="light"] .contact-form textarea {
  border-radius: var(--r-sm) !important;
}

/* The guided website quote is a focused work area, not a cream marketing
   panel. White surfaces sit on a light neutral field, with clear inputs and
   controls that keep the six-step workflow readable over a longer session. */
html[data-theme="light"] .qr-page {
  background: #f1f3f4 !important;
}
html[data-theme="light"] .qr-page .qr-form,
html[data-theme="light"] .qr-page .qr-aside .util-card,
html[data-theme="light"] .qr-page .qr-intro-card,
html[data-theme="light"] .qr-hero-panel.intake-hero-panel {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: 0 8px 22px rgba(16, 24, 32, .06) !important;
}
html[data-theme="light"] .qr-page .qr-form {
  border-left: 1px solid #d8e0e3 !important;
}
html[data-theme="light"] .qr-page .intake-form-notes {
  background: #f1f3f4 !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
  color: #44505c !important;
}
html[data-theme="light"] .qr-page .intake-form-notes p,
html[data-theme="light"] .qr-page .qr-field-note,
html[data-theme="light"] .qr-page .qr-form-head p,
html[data-theme="light"] .qr-page .qr-aside .util-card p,
html[data-theme="light"] .qr-page .qr-aside .util-card li {
  color: #44505c !important;
}
html[data-theme="light"] .qr-page .intake-form-notes span,
html[data-theme="light"] .qr-page .form-label span {
  color: #e0852c !important;
}
html[data-theme="light"] .qr-page .form-label,
html[data-theme="light"] .qr-page .qr-form-head h2,
html[data-theme="light"] .qr-page .qr-aside .util-card h3 {
  color: #101820 !important;
}
html[data-theme="light"] .qr-page .intake-section-tag {
  color: #00567e !important;
}
html[data-theme="light"] .qr-page .form-input,
html[data-theme="light"] .qr-page .form-textarea,
html[data-theme="light"] .qr-page select.form-input,
html[data-theme="light"] .qr-page textarea.form-textarea {
  background: #ffffff !important;
  color: #101820 !important;
  border: 1px solid #9aa4ae !important;
  border-radius: var(--r-sm) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .qr-page .form-input::placeholder,
html[data-theme="light"] .qr-page .form-textarea::placeholder {
  color: #6f7b86 !important;
  opacity: 1 !important;
}
html[data-theme="light"] .qr-page .form-input:focus,
html[data-theme="light"] .qr-page .form-textarea:focus {
  border-color: #00567e !important;
  outline: 3px solid rgba(0, 86, 126, .16) !important;
  outline-offset: 0 !important;
}
html[data-theme="light"] .qr-page .wcq-progress__bar {
  background: #e5eaec !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-pill) !important;
}
html[data-theme="light"] .qr-page .wcq-progress__fill {
  background: #00567e !important;
  border-radius: var(--r-pill) !important;
}
html[data-theme="light"] .qr-page .wcq-progress__text {
  color: #44505c !important;
}
html[data-theme="light"] .qr-page .wcq-actions {
  gap: 12px !important;
}
html[data-theme="light"] .qr-page .js-wcq-save {
  background: #ffffff !important;
  color: #00567e !important;
  border: 1px solid #00567e !important;
  border-radius: var(--r-sm) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .qr-page .js-wcq-save:hover,
html[data-theme="light"] .qr-page .js-wcq-save:focus-visible {
  background: #f1f3f4 !important;
  color: #00405e !important;
  border-color: #00405e !important;
}
html[data-theme="light"] .qr-page .js-wcq-save:focus-visible {
  outline: 3px solid rgba(0, 86, 126, .24) !important;
  outline-offset: 2px !important;
}
html[data-theme="light"] .qr-page .js-wcq-save[data-state="saved"],
html[data-theme="light"] .qr-page .js-wcq-save.is-saved {
  background: #edf5f0 !important;
  color: #285d4a !important;
  border-color: #3f8470 !important;
}
@media (max-width: 640px) {
  html[data-theme="light"] .qr-page .wcq-actions {
    gap: 10px !important;
  }
}

/* Managed website choices use the same light-stage language as the form.
   Earlier dark-card rules left white copy on a white card after the redesign. */
html[data-theme="light"] .qr-page .mrfq-choice {
  background: #ffffff !important;
  border: 1px solid #b9c5ca !important;
  border-radius: var(--r-md) !important;
  color: #101820 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .qr-page .mrfq-choice strong,
html[data-theme="light"] .qr-page .mrfq-choice span {
  color: #101820 !important;
}
html[data-theme="light"] .qr-page .mrfq-choice small {
  color: #44505c !important;
}
html[data-theme="light"] .qr-page .mrfq-choice input[type="radio"],
html[data-theme="light"] .qr-page .mrfq-choice input[type="checkbox"] {
  accent-color: #00567e !important;
}
html[data-theme="light"] .qr-page .mrfq-choice:hover {
  background: #f1f3f4 !important;
  border-color: #00567e !important;
  transform: translateY(-2px) !important;
}
html[data-theme="light"] .qr-page .mrfq-choice:has(input:checked) {
  background: #eaf3f6 !important;
  border-color: #00567e !important;
}
html[data-theme="light"] .qr-page .mrfq-choice:has(input:focus-visible) {
  outline: 3px solid rgba(0, 86, 126, .24) !important;
  outline-offset: 2px !important;
}
html[data-theme="light"] .mrfq-modal__panel {
  background: #ffffff !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: 0 18px 44px rgba(16, 24, 32, .18) !important;
}
html[data-theme="light"] .mrfq-modal__panel h2 { color: #101820 !important; }
html[data-theme="light"] .mrfq-modal__panel p { color: #44505c !important; }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="light"] .qr-page .mrfq-choice { transition: none !important; }
  html[data-theme="light"] .qr-page .mrfq-choice:hover { transform: none !important; }
}

/* Contact uses the same form controls, but has its own shell. Remove the
   remaining warm paper colours and retain a calm neutral work surface. */
html[data-theme="light"] .ct-form-section {
  background: #f1f3f4 !important;
}
html[data-theme="light"] .ct-form-card,
html[data-theme="light"] .ct-sidebar-hours {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: 0 8px 22px rgba(16, 24, 32, .06) !important;
}
html[data-theme="light"] .ct-form-card {
  border-left: 1px solid #d8e0e3 !important;
}
html[data-theme="light"] .ct-form-card .intake-form-notes {
  background: #f1f3f4 !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
}
html[data-theme="light"] .ct-form-card .intake-form-notes p,
html[data-theme="light"] .ct-form-card .form-label,
html[data-theme="light"] .ct-form-card .form-checkbox-group label,
html[data-theme="light"] .ct-form-card .form-checkbox-group label span {
  color: #101820 !important;
}
html[data-theme="light"] .ct-form-card .intake-form-notes span,
html[data-theme="light"] .ct-form-card .form-label span {
  color: #e0852c !important;
}
html[data-theme="light"] .ct-form-card .form-input,
html[data-theme="light"] .ct-form-card .form-textarea {
  background: #ffffff !important;
  color: #101820 !important;
  border: 1px solid #9aa4ae !important;
  border-radius: var(--r-sm) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .ct-form-card .form-input:focus,
html[data-theme="light"] .ct-form-card .form-textarea:focus {
  border-color: #00567e !important;
  outline: 3px solid rgba(0, 86, 126, .16) !important;
  outline-offset: 0 !important;
}
html[data-theme="light"] .ct-form-card input[type="checkbox"],
html[data-theme="light"] .ct-form-card input[type="radio"] {
  accent-color: #00567e !important;
}

/* The Contact information band is a utility area, not a warm campaign panel.
   Keep regional coverage, business hours, and the direct-email action aligned
   with the light site system. */
html[data-theme="light"] .ct-serve-panel,
html[data-theme="light"] .ct-office-card {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: 0 8px 22px rgba(16, 24, 32, .06) !important;
}
html[data-theme="light"] .ct-serve-overlay {
  background: #ffffff !important;
}
html[data-theme="light"] .ct-serve-list li {
  color: #44505c !important;
  border-bottom-color: #d8e0e3 !important;
}
html[data-theme="light"] .ct-serve-list svg {
  color: #4797a8 !important;
}
html[data-theme="light"] .ct-sidebar-email {
  background: #00567e !important;
  background-image: none !important;
  border: 1px solid #00567e !important;
  border-radius: var(--r-sm) !important;
  box-shadow: none !important;
  color: #ffffff !important;
}
html[data-theme="light"] .ct-sidebar-email:hover,
html[data-theme="light"] .ct-sidebar-email:focus-visible {
  background: #00405e !important;
  border-color: #00405e !important;
  color: #ffffff !important;
}
html[data-theme="light"] .ct-sidebar-email:focus-visible {
  outline: 3px solid rgba(0, 86, 126, .24) !important;
  outline-offset: 2px !important;
}
html[data-theme="light"] .ct-sidebar-email svg { color: #ffffff !important; }

/* Editorial archive and article surfaces use the same neutral palette as the
   rest of the public site. This replaces remaining warm-paper borders from
   the legacy theme without changing the archive, related-content, or CTA
   structure. */
html[data-theme="light"] .blg-filter,
html[data-theme="light"] .blg-pagination__link,
html[data-theme="light"] .blg-pagination__arrow {
  background: #ffffff !important;
  color: #44505c !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-sm) !important;
}
html[data-theme="light"] .blg-filter:hover,
html[data-theme="light"] .blg-filter:focus-visible,
html[data-theme="light"] .blg-filter.is-active,
html[data-theme="light"] .blg-pagination__link:hover,
html[data-theme="light"] .blg-pagination__link:focus-visible,
html[data-theme="light"] .blg-pagination__link.is-active,
html[data-theme="light"] .blg-pagination__arrow:hover,
html[data-theme="light"] .blg-pagination__arrow:focus-visible {
  background: #00567e !important;
  color: #ffffff !important;
  border-color: #00567e !important;
}
html[data-theme="light"] .pst-feature,
html[data-theme="light"] .pst-sidecard {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .pst-feature img,
html[data-theme="light"] .pst-related-item img {
  border-color: #d8e0e3 !important;
}
html[data-theme="light"] .pst-sidecard__title { color: #101820 !important; }
html[data-theme="light"] .pst-sidecard a,
html[data-theme="light"] .pst-meta__category { color: #00567e !important; }
html[data-theme="light"] .pst-meta,
html[data-theme="light"] .pst-main,
html[data-theme="light"] .pst-main p,
html[data-theme="light"] .pst-main li { color: #44505c !important; }
html[data-theme="light"] .pst-main h2,
html[data-theme="light"] .pst-main h3 { color: #101820 !important; }
html[data-theme="light"] .pst-cta {
  background: #f1f3f4 !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .pst-cta h2 { color: #101820 !important; }
html[data-theme="light"] .pst-cta p { color: #44505c !important; }

/* Portfolio work remains image-led, with a short, readable project cue. The
   link card no longer inherits a cream border or a resting drop shadow. */
html[data-theme="light"] .pt-card__link {
  background: #ffffff !important;
  border-color: #d8e0e3 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .pt-card__text { background: #ffffff !important; }
html[data-theme="light"] .ppj-testimonial {
  background: #f1f3f4 !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .ppj-testimonial,
html[data-theme="light"] .ppj-testimonial p { color: #44505c !important; }
html[data-theme="light"] .ppj-testimonial strong,
html[data-theme="light"] .ppj-testimonial h2,
html[data-theme="light"] .ppj-testimonial h3 { color: #101820 !important; }

/* An eyebrow is a flex row for its rule and label. Wrap the visual ALPHA+v3
   token so that layout spacing appears before the name, never inside it. */
.brand-lockup {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 0 !important;
  white-space: nowrap !important;
}
.brand-lockup .brand-plusv3,
.brand-lockup .brand-sup { display: inline !important; }

/* About uses the same quiet white cards and secondary ink as the public
   service pages, rather than retaining legacy warm borders on comparison and
   values panels. */
html[data-theme="light"] .abt-hero { box-shadow: none !important; }
html[data-theme="light"] .abt-compare__card,
html[data-theme="light"] .abt-value-card {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .abt-compare__card h3,
html[data-theme="light"] .abt-value-card h3 { color: #101820 !important; }
html[data-theme="light"] .abt-compare__card p,
html[data-theme="light"] .abt-compare__card li,
html[data-theme="light"] .abt-value-card p,
html[data-theme="light"] .abt-value-card li { color: #44505c !important; }

/* Streamsyncs carries the richer integration content, but its information
   panels still belong to the light ALPHA system. Remove the inherited warm
   gradients and preserve clear hierarchy for data-flow content. */
html[data-theme="light"] .ss-outcomes > div,
html[data-theme="light"] .ss-platform-grid section,
html[data-theme="light"] .ss-flow-types article,
html[data-theme="light"] .ss-process li,
html[data-theme="light"] .ss-scope-list div {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .ss-outcomes strong,
html[data-theme="light"] .ss-platform-grid h3,
html[data-theme="light"] .ss-flow-types h3,
html[data-theme="light"] .ss-process strong { color: #101820 !important; }
html[data-theme="light"] .ss-outcomes span,
html[data-theme="light"] .ss-platform-grid p,
html[data-theme="light"] .ss-flow-types p,
html[data-theme="light"] .ss-flow-types small,
html[data-theme="light"] .ss-process p,
html[data-theme="light"] .ss-scope-list div,
html[data-theme="light"] .ss-note,
html[data-theme="light"] .ss-apisite-note { color: #44505c !important; }
html[data-theme="light"] .ss-flow-types__icon {
  background: #eaf3f6 !important;
  color: #00567e !important;
}
html[data-theme="light"] .ss-scope-list div::before { color: #00567e !important; }
html[data-theme="light"] .ss-final-cta__panel {
  background: #f1f3f4 !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .ss-final-cta__panel h2 { color: #101820 !important; }
html[data-theme="light"] .ss-final-cta__panel p { color: #44505c !important; }

/* Support is a practical utility page. Its path and reference cards need the
   same uncluttered neutral surfaces as the request forms, without legacy
   cream borders or decorative shadows. */
html[data-theme="light"] .support-path-card,
html[data-theme="light"] .support-fast-response,
html[data-theme="light"] .support-aside .util-card {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .support-path-card h2,
html[data-theme="light"] .support-fast-response h2,
html[data-theme="light"] .support-aside .util-card h3 { color: #101820 !important; }
html[data-theme="light"] .support-path-card p,
html[data-theme="light"] .support-path-card li,
html[data-theme="light"] .support-fast-response p,
html[data-theme="light"] .support-fast-response li,
html[data-theme="light"] .support-aside .util-card p,
html[data-theme="light"] .support-aside .util-card li { color: #44505c !important; }

/* Legal, account and intake utility panels use the same quiet base surface as
   the rest of the light site. These selectors are intentionally shared: the
   legacy stylesheet applied a cream edge and resting shadow to this component
   across every policy and utility route. */
html[data-theme="light"] .util-card,
html[data-theme="light"] .util-link,
html[data-theme="light"] .gs-note-block {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .util-card h3,
html[data-theme="light"] .util-link strong,
html[data-theme="light"] .gs-note-block h2,
html[data-theme="light"] .gs-note-block h3 { color: #101820 !important; }
html[data-theme="light"] .util-card p,
html[data-theme="light"] .util-card li,
html[data-theme="light"] .util-link span,
html[data-theme="light"] .gs-note-block p,
html[data-theme="light"] .gs-note-block li { color: #44505c !important; }
html[data-theme="light"] .util-link:hover {
  background: #f1f3f4 !important;
  border-color: #00567e !important;
  box-shadow: none !important;
}
html[data-theme="light"] .util-link:focus-visible {
  outline: 3px solid rgba(71, 151, 168, .42) !important;
  outline-offset: 3px !important;
  border-color: #00567e !important;
  box-shadow: none !important;
}
/* The support reference cards are deliberately roomier than a short legal
   aside. Preserve their established panel radius after the shared reset. */
html[data-theme="light"] .support-aside .util-card { border-radius: var(--r-lg) !important; }

/* A heading already supplies its own hierarchy. The ALPHA wordmark within a
   heading therefore inherits that weight instead of receiving a second,
   heavier <strong> treatment; body-copy emphasis is unaffected. */
html[data-theme="light"] :is(h1, h2, h3, h4, h5, h6) strong:has(+ sup.brand-plusv3),
html[data-theme="light"] :is(h1, h2, h3, h4, h5, h6) strong:has(+ sup.brand-sup) {
  font-weight: inherit !important;
}

/* Headings are read as units. Balancing keeps long editorial titles from
   leaving a lone final word when the available measure changes by template or
   viewport, without inserting manual line breaks into searchable copy. */
html[data-theme="light"] main :is(h1, h2, h3, h4, h5, h6) {
  text-wrap: balance;
}

/* The desktop navigation reaches its practical limit before the former 980px
   cutoff. Between 981px and 1120px it now uses the same single-column menu
   as phones, rather than compressing two desktop navigation systems together.
   This range specifically covers common tablet landscape widths. */
@media (min-width: 981px) and (max-width: 1120px) {
  html[data-theme="light"] #site-header {
    inset: 10px 0 auto !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) #site-header .nav-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: min(100% - 2 * var(--page-pad), var(--page-max)) !important;
    height: 64px !important;
    min-height: 64px !important;
    padding: 0 16px !important;
    gap: 0 !important;
    border-radius: 14px !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-logo,
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-logo img {
    display: block !important;
    width: 152px !important;
    max-width: 152px !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-primary {
    display: none !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-hamburger {
    display: flex !important;
    position: static !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 0 0 auto !important;
    padding: 10px !important;
  }

  html[data-theme="light"] body.nav-mobile-open #site-header {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1000 !important;
    pointer-events: none !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-wrap {
    position: fixed !important;
    inset: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: 72px minmax(0, 1fr) !important;
    grid-template-areas: "logo close" "menu menu" !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    pointer-events: auto !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-logo {
    grid-area: logo !important;
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 var(--page-pad) !important;
    border-bottom: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-logo img {
    width: 152px !important;
    max-width: 152px !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-primary {
    grid-area: menu !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-height: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-primary > nav {
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 8px var(--page-pad) !important;
    gap: 0 !important;
    overflow-y: auto !important;
    background: #ffffff !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li {
    width: 100% !important;
    border-top: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li:first-child { border-top: 0 !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > a,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > button {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 56px !important;
    padding: 0 !important;
    color: #101820 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-align: left !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open > button { color: #00567e !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-dropdown,
  html[data-theme="light"] body.nav-mobile-open .nav-megamenu {
    position: static !important;
    display: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f1f3f4 !important;
    border: 0 !important;
    border-top: 1px solid #d8e0e3 !important;
    box-shadow: none !important;
    transform: none !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open .nav-dropdown,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open .nav-megamenu { display: block !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-dropdown a,
  html[data-theme="light"] body.nav-mobile-open .nav-megamenu a {
    display: block !important;
    padding: 13px 18px !important;
    color: #344550 !important;
    font-size: 14px !important;
    white-space: normal !important;
    border-top: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-mega-cols { grid-template-columns: 1fr !important; gap: 0 !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-mega-col + .nav-mega-col {
    margin: 0 !important;
    padding: 0 !important;
    border-left: 0 !important;
    border-top: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-mega-label {
    display: block !important;
    padding: 14px 18px 8px !important;
    color: #00567e !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-cta {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    margin: 14px var(--page-pad) 26px !important;
    padding: 12px 16px !important;
    font-size: 13px !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-hamburger { display: none !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-mobile-close {
    display: flex !important;
    position: fixed !important;
    top: 14px !important;
    right: var(--page-pad) !important;
    z-index: 1002 !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    color: #101820 !important;
  }
}

/* Closed tablet and phone navigation is an intentionally compact two-sided
   bar. A grid anchors the mark and menu control to their real edges; the
   former flex layout allowed legacy alignment rules to make the mark look
   centred and oversized. */
@media (max-width: 1120px) {
  html[data-theme="light"] body:not(.nav-mobile-open) #site-header .nav-wrap {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    width: min(100% - 2 * var(--page-pad), var(--page-max)) !important;
    height: 64px !important;
    min-height: 64px !important;
    padding: 0 16px !important;
    gap: 0 !important;
    border-radius: 14px !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-logo {
    grid-column: 1 !important;
    justify-self: start !important;
    display: flex !important;
    align-items: center !important;
    width: 142px !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-logo img {
    display: block !important;
    width: 142px !important;
    max-width: 142px !important;
    height: auto !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-primary {
    display: none !important;
  }
  html[data-theme="light"] body:not(.nav-mobile-open) .nav-hamburger {
    grid-column: 2 !important;
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 10px !important;
  }
}

/* An expanded menu item must win over the legacy desktop flyout default at
   every compact-navigation width. This is intentionally explicit because the
   service menu and the More panel use different legacy selectors. */
@media (max-width: 1120px) {
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open > .nav-dropdown,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open > .nav-megamenu {
    display: block !important;
    position: static !important;
  }
}

/* The homepage identifier is a single label, not a two-line heading. Trim
   its mobile measure slightly so the date remains on the same line without
   modifying the underlying searchable text. */
@media (max-width: 640px) {
  html[data-theme="light"] .hp-hero .hp-hero-eyebrow {
    gap: 7px !important;
    font-size: clamp(7.5px, 2.35vw, 10px) !important;
    letter-spacing: .065em !important;
    white-space: nowrap !important;
  }
  html[data-theme="light"] .hp-hero .hp-hero-eyebrow::before {
    width: 22px !important;
  }
  html[data-theme="light"] .hp-hero .hp-hero-eyebrow > span { white-space: nowrap !important; }
}

/* Desktop rhythm audit: archive pages use editorial hierarchy, not a second
   oversized hero headline or an empty grid column.  These adjustments retain
   each page's existing copy and links while giving the content its real
   measure on wider screens. */
@media (min-width: 981px) {
  html[data-theme="light"] .pt-hero {
    padding: clamp(124px, 10vw, 150px) 0 clamp(64px, 6vw, 84px) !important;
  }
  html[data-theme="light"] .pt-shell.pt-shell--hero.pt-hero__copy {
    max-width: 960px !important;
  }
  html[data-theme="light"] .pt-hero h1 {
    font-size: clamp(3.25rem, 4.5vw, 4.4rem) !important;
  }
  html[data-theme="light"] .pt-hero h2 {
    max-width: 25ch !important;
    font-size: clamp(2rem, 3vw, 3rem) !important;
    line-height: 1.08 !important;
  }
  html[data-theme="light"] .pt-archive-intro__header {
    grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr) !important;
    gap: clamp(36px, 5vw, 72px) !important;
    align-items: end !important;
  }
  html[data-theme="light"] .pt-archive-intro h2 {
    max-width: 23ch !important;
    font-size: clamp(2rem, 3vw, 3rem) !important;
  }

  /* The featured-article link is the actual two-column unit. The previous
     outer grid captured it in one column and stranded the other half blank. */
  html[data-theme="light"] .blg-feature__card {
    display: block !important;
  }
  html[data-theme="light"] .blg-feature__link {
    display: grid !important;
    grid-template-columns: minmax(380px, .92fr) minmax(0, 1.08fr) !important;
    min-height: 500px;
  }
  html[data-theme="light"] .blg-feature__body {
    padding: clamp(38px, 4.5vw, 64px) !important;
  }
  html[data-theme="light"] .blg-feature__title {
    max-width: 22ch;
    font-size: clamp(2rem, 2.55vw, 2.5rem) !important;
    line-height: 1.12 !important;
  }
  html[data-theme="light"] .blg-feature__excerpt {
    max-width: 52ch;
  }
}

/* Content-led feedback needs breathing room, not an oversized pause between
   the preceding articles and the first quotation. */
html[data-theme="light"] .hp-testimonial-section {
  padding: clamp(72px, 6vw, 92px) 0 !important;
}
html[data-theme="light"] .hp-testimonial-section__header {
  max-width: 680px !important;
  margin-bottom: 30px !important;
}
html[data-theme="light"] .hp-testimonial-section h2 {
  max-width: 18ch !important;
}

/* This narrow contact sidebar is supporting information, so its title should
   not visually compete with the form beside it. */
html[data-theme="light"] .ct-sidebar-hours h2 {
  font-size: clamp(2rem, 3vw, 2.35rem) !important;
  line-height: 1.04 !important;
}

/* One compact-navigation layout for phones and tablets. The grid item is
   .nav-primary (not its nested nav); assigning the area to the wrong element
   was the reason the overlay opened without visible navigation links. */
@media (max-width: 1120px) {
  html[data-theme="light"] body.nav-mobile-open #site-header {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1000 !important;
    pointer-events: none !important;
  }
  html[data-theme="light"] body.nav-mobile-open #site-header .nav-wrap {
    position: fixed !important;
    inset: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: 72px minmax(0, 1fr) !important;
    grid-template-areas: "logo close" "menu menu" !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    pointer-events: auto !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-logo {
    grid-area: logo !important;
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 var(--page-pad) !important;
    border-bottom: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-logo img {
    width: 152px !important;
    max-width: 152px !important;
    margin: 0 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-primary {
    grid-area: menu !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-height: 0 !important;
    height: 100% !important;
    overflow: hidden !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-primary > nav {
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 8px var(--page-pad) !important;
    gap: 0 !important;
    overflow-y: auto !important;
    background: #ffffff !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li {
    width: 100% !important;
    border-top: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li:first-child { border-top: 0 !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > a,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > button {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 56px !important;
    padding: 0 !important;
    color: #101820 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-align: left !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open > .nav-dropdown,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li.open > .nav-megamenu {
    display: block !important;
    position: static !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-dropdown,
  html[data-theme="light"] body.nav-mobile-open .nav-megamenu {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f1f3f4 !important;
    border: 0 !important;
    border-top: 1px solid #d8e0e3 !important;
    box-shadow: none !important;
    transform: none !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-dropdown a,
  html[data-theme="light"] body.nav-mobile-open .nav-megamenu a {
    display: block !important;
    padding: 13px 18px !important;
    color: #344550 !important;
    font-size: 14px !important;
    border-top: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-mega-cols { grid-template-columns: 1fr !important; gap: 0 !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-mega-col + .nav-mega-col {
    margin: 0 !important;
    padding: 0 !important;
    border-left: 0 !important;
    border-top: 1px solid #d8e0e3 !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-mega-label {
    display: block !important;
    padding: 14px 18px 8px !important;
    color: #00567e !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-cta {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    margin: 14px var(--page-pad) 26px !important;
    padding: 12px 16px !important;
    font-size: 13px !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-hamburger { display: none !important; }
  html[data-theme="light"] body.nav-mobile-open .nav-mobile-close {
    display: flex !important;
    position: fixed !important;
    top: 14px !important;
    right: var(--page-pad) !important;
    z-index: 1002 !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    color: #101820 !important;
  }
}

/* The client-mark divider is intentional, but it now has actual breathing
   room before the six organizations rather than reading as a stray line. */
html[data-theme="light"] .hp-logo-grid {
  border: 0 !important;
  padding-top: 0 !important;
}
html[data-theme="light"] .hp-latest-posts {
  padding: clamp(70px, 6vw, 88px) 0 !important;
}

/* Location CTAs share a centred content axis; their heading's measure must be
   centred too, otherwise its max-width box sits visually left of the copy. */
html[data-theme="light"] .lp-cta h2 {
  max-width: 19ch !important;
  margin: 0 auto 16px !important;
}
html[data-theme="light"] .lp-cta p {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Desktop navigation uses a fine animated underline. In the expanded compact
   menu it reads as a broken selection rule, so links use normal focus outlines
   there instead. */
@media (max-width: 1120px) {
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > a::after,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > button::after {
    display: none !important;
  }
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > a:focus-visible,
  html[data-theme="light"] body.nav-mobile-open .nav-menu > li > button:focus-visible {
    outline: 3px solid rgba(0, 86, 126, .35) !important;
    outline-offset: -3px !important;
  }
}

/* Shared information grids should read as individual, related items rather
   than a continuous table. The original one-pixel gaps made long rows of
   articles, process steps and client quotations feel cramped on desktop. */
html[data-theme="light"] .blg-grid,
html[data-theme="light"] .lp-services-grid,
html[data-theme="light"] .lp-process-steps,
html[data-theme="light"] .lp-testimonials-grid {
  gap: 14px !important;
  background: transparent !important;
}
html[data-theme="light"] .blg-card,
html[data-theme="light"] .lp-service-card,
html[data-theme="light"] .lp-step,
html[data-theme="light"] .lp-tcard {
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
}
html[data-theme="light"] .blg-card {
  overflow: hidden !important;
}

/* A short card cue remains clear at normal reading distance. These panels
   receive only a restrained surface change on hover; there is no decorative
   lift on content that is not an action. */
html[data-theme="light"] .blg-card__link {
  transition: background-color .2s ease, border-color .2s ease !important;
}
html[data-theme="light"] .blg-card__link:hover .blg-card__body,
html[data-theme="light"] .blg-card__link:focus-visible .blg-card__body {
  background: #f1f3f4 !important;
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="light"] .blg-card__link { transition: none !important; }
}

/* Pricing needs to carry its decision-making hierarchy on the white cards.
   Legacy dark-surface values left the service code and price white on white. */
html[data-theme="light"] .svcx-plan-card {
  background: #ffffff !important;
  border: 1px solid #d8e0e3 !important;
  border-radius: var(--r-md) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .svcx-plan-card h3 {
  color: #101820 !important;
  margin-bottom: 10px !important;
}
html[data-theme="light"] .svcx-plan-sub {
  color: #52616d !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}
html[data-theme="light"] .svcx-plan-price {
  color: #00567e !important;
  line-height: 1.1 !important;
  margin: 10px 0 18px !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid rgba(241, 156, 73, .52) !important;
}
html[data-theme="light"] .svcx-plan-price span {
  color: #52616d !important;
}
html[data-theme="light"] .svcx-plan-card li::before {
  color: #00567e !important;
}
html[data-theme="light"] .svcx-plan-card li.is-included::before {
  background: #e7f2f5 !important;
  color: #00567e !important;
}
html[data-theme="light"] .svcx-plan-card li.is-excluded::before {
  border-color: #9aa8b2 !important;
  color: #6f7d87 !important;
}

/* Shared end-of-page calls to action should read as deliberate next steps,
   not as narrow tiles stranded in a large field of empty space. */
html[data-theme="light"] .cta-block {
  padding: clamp(36px, 4vw, 56px) 0 clamp(44px, 5vw, 68px) !important;
}
html[data-theme="light"] .cta-block .svcx-cta-panel,
html[data-theme="light"] .abt-shell > .svcx-cta-panel {
  width: min(calc(100% - 2 * var(--page-pad)), 820px) !important;
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: clamp(34px, 4vw, 54px) clamp(28px, 5vw, 64px) !important;
  border-radius: var(--r-lg) !important;
  background: #00567e !important;
}
html[data-theme="light"] .cta-block .svcx-cta-panel h2,
html[data-theme="light"] .abt-shell > .svcx-cta-panel h2 {
  max-width: 16ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Native controls retain platform mechanics, but their visible focus and
   selected-option treatment now use the ALPHA blue rather than system blue. */
html[data-theme="light"] .intake-form select,
html[data-theme="light"] .qr-form select {
  accent-color: #00567e !important;
}
html[data-theme="light"] .intake-form select:focus,
html[data-theme="light"] .qr-form select:focus {
  border-color: #00567e !important;
  outline: 3px solid rgba(71, 151, 168, .28) !important;
}
html[data-theme="light"] .intake-form select option:checked,
html[data-theme="light"] .qr-form select option:checked {
  background: #00567e !important;
  color: #ffffff !important;
}

/* ALPHA+v3 is one inline brand lock-up. It should retain the surrounding
   copy's weight; <strong> in older content must not make only ALPHA heavier. */
html[data-theme="light"] .brand-lockup {
  display: inline-block;
  white-space: nowrap;
  font-weight: inherit;
  letter-spacing: inherit;
}
html[data-theme="light"] .brand-lockup sup,
html[data-theme="light"] .brand-plusv3,
html[data-theme="light"] .brand-sup {
  display: inline-block;
  margin-left: .035em;
  vertical-align: super;
  font-size: .58em;
  line-height: 0;
  font-weight: 600;
  letter-spacing: .01em;
}
html[data-theme="light"] strong:has(+ sup.brand-plusv3),
html[data-theme="light"] strong:has(+ sup.brand-sup) {
  font-weight: inherit !important;
}

/* Social links stay within the approved palette: ochre on the main dark
   footer, teal on the location footer, and ALPHA blue on light contact areas. */
html[data-theme="light"] .footer-social a svg {
  fill: #f19c49 !important;
}
html[data-theme="light"] .footer-social a:hover svg,
html[data-theme="light"] .footer-social a:focus-visible svg {
  fill: #4797a8 !important;
}
html[data-theme="light"] .lp-footer-social a svg {
  fill: #4797a8 !important;
}
html[data-theme="light"] .ct-social-row {
  gap: 8px !important;
}
html[data-theme="light"] .ct-social-row a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  color: #00567e !important;
  border-radius: var(--r-sm) !important;
}
html[data-theme="light"] .ct-social-row a:hover,
html[data-theme="light"] .ct-social-row a:focus-visible {
  background: #e7f2f5 !important;
  color: #00567e !important;
}
html[data-theme="light"] .ct-social-row svg {
  width: 18px !important;
  height: 18px !important;
}

/* Editorial introductions establish hierarchy in the page flow. They are not
   cards, so their shared legacy shell must not leave a faint outer frame. */
html[data-theme="light"] .pt-archive-intro,
html[data-theme="light"] .lp-local-insights {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
html[data-theme="light"] .pt-archive-intro {
  margin-bottom: clamp(24px, 3vw, 40px) !important;
}

/* Form confirmation is a light-surface notification. The former dark panel
   inherited light-theme text tokens and made the message hard to read. */
html[data-theme="light"] .site-modal__dialog,
body[data-theme="light"] .site-modal__dialog {
  background: #ffffff !important;
  border-color: rgba(241, 156, 73, .72) !important;
  color: #101820 !important;
  box-shadow: 0 24px 60px rgba(16, 24, 32, .24) !important;
}
html[data-theme="light"] .site-modal__dialog h2,
html[data-theme="light"] .site-modal__dialog p,
body[data-theme="light"] .site-modal__dialog h2,
body[data-theme="light"] .site-modal__dialog p {
  color: #101820 !important;
}
html[data-theme="light"] .site-modal__close,
body[data-theme="light"] .site-modal__close {
  color: #101820 !important;
}

/* The successful quote page needs a simple next action, not a bordered card. */
.svcx-success-action {
  margin: 0 !important;
}
