/* OGC visual system — staged 2026-11-10
   Real-project proof, commercial buyer clarity, WCAG-AA contrast. */
@font-face {
  font-family: "Archivo";
  src: url("/fonts/archivo-600.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

/* Overnight batch · editorial Case Studies index */
.case-editorial-hero{position:relative;min-height:clamp(560px,68vw,760px);display:grid;align-items:end;overflow:hidden;background:var(--ogc-navy)}
.case-editorial-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.case-editorial-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,25,48,.94) 0%,rgba(5,25,48,.78) 48%,rgba(5,25,48,.28) 100%)}
.case-editorial-hero-copy{position:relative;z-index:1;padding-block:clamp(72px,10vw,120px);color:#fff}
.case-editorial-pill{display:inline-flex;width:fit-content;margin-bottom:24px;padding:9px 14px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.case-editorial-hero h1{max-width:940px;margin:0;font-size:clamp(3rem,6.2vw,6rem);line-height:.94;letter-spacing:-.055em;text-transform:uppercase}
.case-editorial-hero h1 span,.case-editorial-hero h1 strong{display:block}.case-editorial-hero h1 strong{color:var(--ogc-accent)}
.case-editorial-hero p{max-width:670px;margin:28px 0 0;color:#e6edf5;font-size:clamp(1.05rem,1.7vw,1.25rem)}
.case-editorial-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.case-editorial-ghost{color:#fff;border:1px solid rgba(255,255,255,.72);background:rgba(11,42,74,.45)}
.case-editorial-stats{background:var(--ogc-navy);color:#fff;border-top:1px solid rgba(255,255,255,.13)}
.case-editorial-stats .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.case-editorial-stats .container>div{min-height:150px;display:grid;align-content:center;gap:8px;padding:24px 28px;border-right:1px solid rgba(255,255,255,.15)}
.case-editorial-stats .container>div:last-child{border-right:0}.case-editorial-stats strong{font-family:Archivo,Inter,sans-serif;font-size:clamp(1.45rem,2.4vw,2.35rem);letter-spacing:-.03em}.case-editorial-stats span{color:#d6e0ec;font-size:.9rem}
.case-editorial-work{padding-block:clamp(72px,9vw,118px)}.case-editorial-section-title{display:flex;align-items:center;gap:14px;margin-bottom:38px;text-transform:uppercase;letter-spacing:.12em;color:var(--ogc-navy)}
.case-editorial-section-title span{color:var(--ogc-accent);font-weight:900}.case-editorial-section-title strong{font-size:.82rem}.case-editorial-section-title i{height:1px;flex:1;background:#b8c6d5}.case-editorial-section-title em{font-size:.78rem;font-style:normal;color:var(--ogc-muted)}
.case-editorial-index .case-study-card-body{padding:26px}.case-study-tag{display:inline-flex;margin-bottom:13px;color:var(--ogc-trust);font-size:.75rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.case-study-link{margin-top:auto;color:var(--ogc-accent);font-weight:850;text-decoration:none}
.case-editorial-feature{padding-block:clamp(72px,9vw,120px);background:var(--ogc-navy);color:#fff}.case-editorial-feature .case-editorial-section-title{color:#fff}.case-editorial-feature .case-editorial-section-title i{background:rgba(255,255,255,.28)}
.case-editorial-feature-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(460px,1.2fr);gap:clamp(42px,6vw,88px);align-items:center}.case-editorial-feature h2{margin:0 0 18px;color:#fff;font-size:clamp(2.6rem,5vw,5rem)}.case-editorial-feature p:not(.eyebrow){max-width:52ch;color:#d6e0ec}
.case-editorial-feature figure{margin:0;overflow:hidden;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.case-editorial-feature img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
@media(max-width:760px){.case-editorial-hero{min-height:650px}.case-editorial-hero h1{font-size:clamp(2.55rem,12.5vw,4.1rem)}.case-editorial-scrim{background:linear-gradient(180deg,rgba(5,25,48,.35),rgba(5,25,48,.94) 62%)}.case-editorial-stats .container{grid-template-columns:1fr 1fr}.case-editorial-stats .container>div{min-height:128px;padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.15)}.case-editorial-feature-grid{grid-template-columns:1fr;gap:30px}.case-editorial-feature-grid figure{order:-1}.case-editorial-section-title em{display:none}}

@font-face {
  font-family: "Archivo";
  src: url("/fonts/archivo-700.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --ogc-canvas: #ffffff;
  --ogc-surface: #f5f7fa;
  --ogc-navy: #0b2a4a;
  --ogc-navy-deep: #071f37;
  --ogc-card: #e3e9f0;
  --ogc-steel: #2e6fb0;
  --ogc-accent: #e8731c;
  --ogc-accent-hover: #d36514;
  --ogc-text: #1a2330;
  --ogc-muted: #54616e;
  --ogc-on-navy: #d6e0ec;
  --ogc-white: #ffffff;
  --ogc-border: #cad4df;
  --ogc-shadow-sm: 0 10px 30px rgba(11, 42, 74, 0.10);
  --ogc-shadow-lg: 0 22px 60px rgba(11, 42, 74, 0.18);
  --ogc-radius-sm: 8px;
  --ogc-radius-md: 16px;
  --ogc-radius-lg: 24px;
  --ogc-space-1: 0.5rem;
  --ogc-space-2: 0.75rem;
  --ogc-space-3: 1rem;
  --ogc-space-4: 1.5rem;
  --ogc-space-5: 2rem;
  --ogc-space-6: 3rem;
  --ogc-space-7: 4.5rem;
  --ogc-space-8: 6rem;

  /* Backward-compatible aliases used by the existing templates. */
  --navy: var(--ogc-navy);
  --navy-light: #163f66;
  --orange: var(--ogc-steel);
  --orange-dark: var(--ogc-navy);
  --white: var(--ogc-white);
  --gray-light: var(--ogc-surface);
  --gray: var(--ogc-muted);
  --text: var(--ogc-text);
  --border: var(--ogc-border);
}

html {
  background: var(--ogc-canvas);
}

body {
  background: var(--ogc-canvas);
  color: var(--ogc-text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(1rem, 0.96rem + 0.18vw, 1.125rem);
  line-height: 1.7;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.nav-logo {
  color: var(--ogc-navy);
  font-family: "Archivo", "Inter", sans-serif;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.nav .nav-logo,
.nav .nav-logo small {
  color: var(--ogc-white);
}

h1 { font-size: clamp(2.75rem, 4.3vw, 3.5rem); line-height: 1.06; }
h2 { font-size: clamp(2rem, 3vw, 2.25rem); line-height: 1.15; }
h3 { font-size: clamp(1.375rem, 1.8vw, 1.5rem); line-height: 1.25; }
h4 { font-size: 1rem; line-height: 1.35; }

p,
li,
dd {
  color: var(--ogc-muted);
}

p,
.prose,
.article-body {
  max-width: 65ch;
}

a {
  color: var(--ogc-steel);
  text-underline-offset: 0.16em;
}

a:hover {
  color: var(--ogc-navy);
}

.container {
  max-width: 1200px;
}

.section {
  padding-block: clamp(4.5rem, 8vw, 6rem);
}

.section-sm {
  padding-block: clamp(3rem, 5vw, 4rem);
}

.section-gray {
  background: var(--ogc-surface);
}

.section-dark,
.nav,
footer {
  background: var(--ogc-navy);
  color: var(--ogc-white);
}

.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark h4,
.section-dark h5,
.section-dark h6,
.nav h1,
.nav h2,
footer h1,
footer h2,
footer h3,
footer h4 {
  color: var(--ogc-white);
}

.section-dark p,
.section-dark li,
.nav p,
footer p,
footer li {
  color: var(--ogc-on-navy);
}

.btn,
button,
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: var(--ogc-radius-sm);
  font-size: clamp(1rem, 0.97rem + 0.12vw, 1.125rem);
  font-weight: 700;
}

.nav-cta {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.nav-inner {
  max-width: 1280px;
}

.nav-links {
  gap: clamp(0.75rem, 1.45vw, 1.5rem);
}

.hero h1 span {
  color: var(--ogc-white);
}

.hero-badge,
.hero-side-eyebrow {
  border-color: rgba(214, 224, 236, 0.38);
  background: rgba(214, 224, 236, 0.12);
  color: var(--ogc-on-navy);
}

.eyebrow {
  color: var(--ogc-steel);
}

.visual-proof-hero {
  min-height: clamp(640px, 74vh, 780px);
  padding-block: clamp(7rem, 13vw, 10rem) clamp(5rem, 9vw, 7rem);
  isolation: isolate;
}

.visual-proof-hero::before {
  z-index: -1;
  inset: 0;
  width: auto;
  background:
    linear-gradient(90deg, rgba(7, 31, 55, 0.94) 0%, rgba(7, 31, 55, 0.82) 46%, rgba(7, 31, 55, 0.36) 76%, rgba(7, 31, 55, 0.16) 100%),
    linear-gradient(0deg, rgba(7, 31, 55, 0.36), rgba(7, 31, 55, 0.06));
}

.visual-proof-hero .hero-img-overlay {
  position: absolute;
  z-index: -2;
  inset: 0;
}

.visual-proof-hero .hero-img-overlay,
.visual-proof-hero .hero-img-overlay img {
  width: 100%;
  height: 100%;
}

.visual-proof-hero .hero-img-overlay img {
  display: block;
  object-fit: cover;
  object-position: 50% 50%;
}

.visual-proof-hero .hero-shell {
  display: block;
}

.visual-proof-hero .hero-main {
  max-width: 760px;
}

.visual-proof-hero h1 {
  max-width: 14ch;
  margin-bottom: var(--ogc-space-4);
  color: var(--ogc-white);
  text-wrap: balance;
}

.visual-proof-hero .hero-sub {
  max-width: 58ch;
  margin-bottom: var(--ogc-space-5);
  color: var(--ogc-on-navy);
  font-size: clamp(1.125rem, 1.4vw, 1.25rem);
  line-height: 1.6;
}

.visual-proof-hero .hero-actions {
  margin-bottom: 0;
}

.proof-strip {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: var(--ogc-navy);
}

.proof-strip-grid > div {
  border-color: rgba(214, 224, 236, 0.2);
}

.proof-strip strong,
.proof-strip strong a {
  color: var(--ogc-white);
}

.proof-strip span,
.proof-strip span a {
  color: var(--ogc-on-navy);
}

.project-experience-strip {
  border-bottom: 1px solid var(--ogc-border);
  background: var(--ogc-surface);
  padding-block: clamp(2.25rem, 4vw, 3.5rem);
}

.project-experience-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.project-experience-strip h2 {
  max-width: 22ch;
  margin-top: 0.4rem;
  font-size: clamp(1.75rem, 2.6vw, 2.25rem);
}

.project-experience-strip p {
  margin: 0;
  font-size: 1.05rem;
}

.template-photo-proof {
  padding: clamp(2rem, 4vw, 3.5rem) 1.25rem;
  border-bottom: 1px solid var(--ogc-border);
  background: var(--ogc-surface);
}

.template-photo-proof-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}

.template-photo-proof figure {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--ogc-border);
  border-radius: var(--ogc-radius-md);
  background: var(--ogc-white);
  box-shadow: var(--ogc-shadow-sm);
}

.template-photo-proof img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.template-photo-proof figcaption {
  display: grid;
  gap: .25rem;
  padding: 1rem 1.15rem 1.2rem;
}

.template-photo-proof figcaption strong {
  color: var(--ogc-navy);
}

.template-photo-proof figcaption span {
  color: var(--ogc-muted);
  font-size: .9rem;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .visual-proof-hero {
    min-height: 680px;
    padding-block: 5.5rem 5.5rem;
  }

  .visual-proof-hero::before {
    background:
      linear-gradient(0deg, rgba(7, 31, 55, 0.93) 0%, rgba(7, 31, 55, 0.74) 62%, rgba(7, 31, 55, 0.30) 100%);
  }

  .visual-proof-hero .hero-img-overlay img {
    object-position: 50% 42%;
  }

  .visual-proof-hero h1 {
    max-width: 15ch;
    font-size: clamp(2.25rem, 9.6vw, 2.65rem);
  }

  .visual-proof-hero .hero-actions {
    display: grid;
    width: 100%;
  }

  .visual-proof-hero .hero-actions .btn {
    width: 100%;
  }

  .project-experience-inner {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .template-photo-proof-grid {
    grid-template-columns: 1fr;
  }
}

.btn-primary,
.nav-cta,
button[type="submit"],
input[type="submit"] {
  border-color: var(--ogc-accent);
  background: var(--ogc-accent);
  color: var(--ogc-navy-deep) !important;
  box-shadow: 0 8px 20px rgba(232, 115, 28, 0.22);
}

.a11y-upgrade .btn-primary,
.a11y-upgrade .nav-cta {
  border-color: var(--ogc-accent);
  background: var(--ogc-accent);
  color: var(--ogc-navy-deep) !important;
}

.btn-primary:hover,
.nav-cta:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  border-color: var(--ogc-accent-hover);
  background: var(--ogc-accent-hover);
  color: var(--ogc-navy-deep) !important;
  box-shadow: 0 12px 30px rgba(232, 115, 28, 0.28);
}

.btn-outline {
  border: 2px solid var(--ogc-white);
  color: var(--ogc-white);
}

.btn-outline:hover {
  background: var(--ogc-white);
  color: var(--ogc-navy) !important;
}

.service-card,
.why-card,
.decision-card,
.project-proof-card,
.review-card,
.contact-form,
.hero-side-card {
  border-color: var(--ogc-border);
  border-radius: var(--ogc-radius-md);
}

.service-card,
.why-card,
.decision-card,
.project-proof-card,
.review-card,
.contact-form {
  box-shadow: var(--ogc-shadow-sm);
}

@media (hover: hover) and (pointer: fine) {
  .service-card,
  .why-card,
  .decision-card,
  .project-proof-card,
  .review-card {
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  }

  .service-card:hover,
  .why-card:hover,
  .decision-card:hover,
  .project-proof-card:hover,
  .review-card:hover {
    transform: translateY(-4px);
    border-color: #aebdcb;
    box-shadow: var(--ogc-shadow-lg);
  }

  .project-proof-card img {
    transition: transform 240ms ease;
  }

  .project-proof-card:hover img {
    transform: scale(1.025);
  }
}

.js-ogc-motion .ogc-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 420ms ease var(--ogc-reveal-delay, 0ms), transform 420ms ease var(--ogc-reveal-delay, 0ms);
}

.js-ogc-motion .ogc-reveal.ogc-reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Rich Google review evidence block — on-page content only, never schema. */
.og-google-reviews {
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  background: var(--ogc-canvas-alt, #f5f7fa);
  color: #1a2330;
}

.og-google-reviews-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  margin-bottom: 2rem;
}

.og-google-reviews-head h2 {
  margin: .35rem 0 .6rem;
  color: #0b2a4a !important;
  -webkit-text-fill-color: #0b2a4a !important;
}

.og-google-reviews-head p {
  max-width: 68ch;
  margin: 0;
  color: #54616e !important;
  line-height: 1.7;
}

.og-google-reviews-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .8rem 1.1rem;
  border-radius: 999px;
  background: #e8731c;
  color: #0b2a4a !important;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 10px 24px rgba(11, 42, 74, .14);
}

.og-google-reviews-link:hover {
  background: #f1893b;
  color: #0b2a4a !important;
  transform: translateY(-2px);
}

.og-google-review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.og-google-review-card {
  display: flex;
  flex-direction: column;
  min-height: 290px;
  padding: 1.45rem;
  border: 1px solid #c9d4df;
  border-radius: 18px;
  background: #fff;
  color: #1a2330;
  box-shadow: 0 12px 30px rgba(11, 42, 74, .09);
}

.og-google-review-meta {
  display: flex;
  gap: .8rem;
  align-items: center;
}

.og-google-review-meta > span:last-child {
  display: grid;
  gap: .15rem;
}

.og-google-review-meta strong {
  color: #0b2a4a !important;
  -webkit-text-fill-color: #0b2a4a !important;
  font-size: 1rem;
}

.og-google-review-meta small,
.og-google-review-source {
  color: #54616e !important;
  font-size: .82rem;
}

.og-google-mark {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border: 2px solid #2e6fb0;
  border-radius: 50%;
  color: #0b2a4a !important;
  font: 800 1.2rem/1 Archivo, Inter, sans-serif;
}

.og-google-stars {
  margin: 1.15rem 0 .75rem;
  color: #e8731c;
  font-size: 1.15rem;
  letter-spacing: .08em;
}

.og-google-review-card blockquote {
  margin: 0;
  color: #1a2330 !important;
  -webkit-text-fill-color: #1a2330 !important;
  font-size: 1rem;
  line-height: 1.7;
}

.og-google-review-source {
  margin: auto 0 0;
  padding-top: 1.1rem;
  font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
  .og-google-review-card {
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
  }
  .og-google-review-card:hover {
    transform: translateY(-4px);
    border-color: #8fa7bd;
    box-shadow: 0 18px 38px rgba(11, 42, 74, .14);
  }
}

@media (max-width: 720px) {
  .og-google-reviews-head {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 1.25rem;
  }
  .og-google-reviews-link {
    width: 100%;
  }
  .og-google-review-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .og-google-review-card {
    min-height: 0;
  }
}

/* Compact, server-rendered internal-link module shared by core SEO templates. */
.og-related-next {
  padding: clamp(3rem, 6vw, 5rem) 0;
  background: #f5f7fa;
  color: #1a2330;
}

.og-related-heading {
  margin-bottom: 1.4rem;
}

.og-related-heading > span {
  display: block;
  margin-bottom: .35rem;
  color: #2f6b4e;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.og-related-heading h2 {
  margin: 0;
  color: #0b2a4a !important;
  -webkit-text-fill-color: #0b2a4a !important;
}

.og-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.og-related-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 154px;
  padding: 1.2rem 3rem 1.2rem 1.2rem;
  border: 1px solid #2a4c6c;
  border-radius: 15px;
  background: #0b2a4a;
  color: #fff !important;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(11, 42, 74, .12);
}

.og-related-card .og-related-kind {
  margin-bottom: .55rem;
  color: #d6e0ec !important;
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.og-related-card strong {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font: 700 clamp(1rem, 1.4vw, 1.15rem)/1.4 Archivo, Inter, sans-serif;
}

.og-related-arrow {
  position: absolute;
  right: 1.2rem;
  bottom: 1rem;
  color: #e8731c !important;
  font-size: 1.45rem;
  font-weight: 900;
}

.og-related-card:hover {
  transform: translateY(-3px);
  border-color: #e8731c;
  box-shadow: 0 16px 34px rgba(11, 42, 74, .18);
}

.og-related-card.og-related-cta {
  border-color: #e8731c;
  background: #e8731c;
  color: #0b2a4a !important;
}

.og-related-card.og-related-cta .og-related-kind,
.og-related-card.og-related-cta strong,
.og-related-card.og-related-cta .og-related-arrow {
  color: #0b2a4a !important;
  -webkit-text-fill-color: #0b2a4a !important;
}

@media (max-width: 900px) {
  .og-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .og-related-grid {
    display: flex;
    gap: .85rem;
    margin-inline: -1rem;
    padding: .2rem 1rem 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
  }
  .og-related-card {
    flex: 0 0 min(82vw, 310px);
    min-height: 148px;
    scroll-snap-align: start;
  }
}

:focus-visible {
  outline: 3px solid var(--ogc-accent);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  body { font-size: 1rem; }
  h1 { font-size: clamp(2.35rem, 11vw, 3rem); }
  h2 { font-size: clamp(1.85rem, 8vw, 2.25rem); }
  .section { padding-block: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Wave 16 premium-density layer — layout, color and image placement only. */
:root {
  --ogc-trust: #2f6b4e;
  --ogc-trust-soft: #e8f1ec;
  --ogc-container-wide: 1280px;
  --ogc-prose: 72ch;
}

/* One disciplined action color. Legacy inline CTA colors are normalized here. */
.btn-primary,
.nav-cta,
.btn-green,
.cta-btn,
button[type="submit"],
input[type="submit"],
a[style*="background:#2e6fb0"],
a[style*="background: #2e6fb0"],
a[style*="background:#2f6b4e"],
a[style*="background: #2f6b4e"],
a[style*="background:#e8731c"],
a[style*="background: #e8731c"] {
  border-color: var(--ogc-accent) !important;
  background: var(--ogc-accent) !important;
  color: var(--ogc-navy-deep) !important;
}

/* Header lockup: a real gutter, compact distribution, no brand/nav collision. */
.nav .nav-inner,
nav .nav-inner {
  display: flex;
  width: min(var(--ogc-container-wide), calc(100% - 32px));
  max-width: var(--ogc-container-wide);
  align-items: center;
  justify-content: flex-start;
  gap: 32px !important;
}

.nav .nav-logo,
nav .nav-logo,
.nav .brand,
nav .brand,
.nav .nav-brand,
nav .nav-brand {
  flex: 0 0 auto;
  min-width: max-content;
  margin-right: 0 !important;
}

.nav .nav-links,
nav .nav-links {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(.5rem, .9vw, 1rem) !important;
}

.nav .nav-links > a,
nav .nav-links > a {
  flex: 0 1 auto;
  font-size: clamp(.68rem, .72vw, .82rem);
}

/* Make the existing verified proof strip read as a true stat/trust band. */
.proof-strip.og-standard-trust {
  padding: clamp(1.25rem, 2.3vw, 2rem) 1rem;
  background: var(--ogc-navy);
}

.proof-strip.og-standard-trust .proof-strip-grid {
  width: min(var(--ogc-container-wide), 100%);
  max-width: var(--ogc-container-wide);
  gap: 0;
}

.proof-strip.og-standard-trust .proof-strip-grid > div {
  position: relative;
  min-height: 92px;
  padding: 1rem clamp(1rem, 2vw, 1.6rem) 1rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.proof-strip.og-standard-trust .proof-strip-grid > div::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 50%;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid #8fc0a6;
  border-radius: 50%;
  transform: translateY(-50%);
  background:
    linear-gradient(135deg, transparent 45%, #8fc0a6 45% 55%, transparent 55%) 5px 7px / 8px 5px no-repeat;
}

.proof-strip.og-standard-trust strong,
.proof-strip.og-standard-trust strong a {
  font-family: "Archivo", "Inter", sans-serif;
  font-size: clamp(1.05rem, 1.6vw, 1.45rem);
  line-height: 1.15;
}

.proof-strip.og-standard-trust span {
  margin-top: .35rem;
  font-size: .76rem;
  line-height: 1.35;
}

/* Shared premium page geometry. */
.ogc-premium main > section > .container,
.ogc-premium main > section > .wrap,
.ogc-premium .section-inner,
.ogc-premium .hero-inner,
.ogc-premium .og-inline-lead-inner,
.ogc-premium .footer .container,
.ogc-premium footer .container {
  width: min(var(--ogc-container-wide), calc(100% - 48px));
  max-width: var(--ogc-container-wide);
  margin-inline: auto;
}

.ogc-premium main > section:nth-of-type(even):not(.hero):not(.hero-service):not(.section-dark):not(.conversion):not(.template-photo-proof) {
  background-color: var(--ogc-surface);
}

.ogc-premium main > section {
  border-color: var(--ogc-border);
}

/* Content/blog template: use the former dead right half as a sticky proof rail. */
@media (min-width: 1000px) {
  .ogc-content-template article.service-content {
    display: grid;
    grid-template-columns: minmax(0, 720px) minmax(340px, 1fr);
    column-gap: clamp(3rem, 5vw, 5.5rem);
    align-items: start;
    width: min(var(--ogc-container-wide), calc(100% - 48px));
    max-width: var(--ogc-container-wide) !important;
    margin-inline: auto;
  }

  .ogc-content-template article.service-content > * {
    grid-column: 1;
    max-width: var(--ogc-prose);
  }

  .ogc-content-template article.service-content > .template-photo-proof {
    grid-column: 2;
    grid-row: 1 / span 16;
    position: sticky;
    top: 112px;
    width: 100%;
    max-width: none;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .ogc-content-template .template-photo-proof .container {
    width: 100%;
    max-width: none;
  }

  .ogc-content-template .template-photo-proof-grid {
    grid-template-columns: 1fr;
  }
}

/* Case-study story bands: existing verified figures are moved into these columns. */
.ogc-case-template main {
  width: min(var(--ogc-container-wide), calc(100% - 48px));
  max-width: var(--ogc-container-wide);
  margin-inline: auto;
}

.ogc-case-template main > section {
  margin-inline: 0 !important;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 3vw, 3rem) !important;
  border-radius: var(--ogc-radius-lg);
}

.ogc-case-template .ogc-story-band {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.ogc-case-template .ogc-story-band > :not(figure) {
  grid-column: 1;
}

.ogc-case-template .ogc-story-band > figure {
  grid-column: 2;
  grid-row: 1 / span 12;
  align-self: stretch;
  margin: 0 !important;
}

.ogc-case-template .ogc-story-band:nth-of-type(even) > :not(figure) { grid-column: 2; }
.ogc-case-template .ogc-story-band:nth-of-type(even) > figure { grid-column: 1; }

.ogc-case-template .ogc-story-band figure img {
  width: 100% !important;
  height: 100% !important;
  min-height: 320px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--ogc-radius-md) !important;
  box-shadow: var(--ogc-shadow-lg);
}

/* Case-studies index: even, image-led proof cards. */
.case-study-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.4vw, 2rem);
}

.case-study-card {
  display: flex;
  min-height: 100%;
  overflow: hidden;
  flex-direction: column;
  padding: 0 !important;
  border: 1px solid var(--ogc-border);
  border-radius: var(--ogc-radius-md);
  background: var(--ogc-white);
  box-shadow: var(--ogc-shadow-sm);
}

.case-study-card figure {
  margin: 0;
  overflow: hidden;
  background: var(--ogc-navy);
}

.case-study-card img,
.case-study-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.case-study-placeholder {
  display: grid;
  place-items: center;
  padding: 2rem;
  background: linear-gradient(135deg, var(--ogc-navy), var(--ogc-navy-deep));
  color: var(--ogc-on-navy);
  font-family: "Archivo", "Inter", sans-serif;
  font-weight: 700;
  text-align: center;
}

.case-study-placeholder::before {
  content: "";
  width: 42%;
  max-width: 120px;
  aspect-ratio: 1;
  border: 2px solid rgba(214, 224, 236, .55);
  border-radius: 20px;
  background:
    linear-gradient(135deg, transparent 47%, rgba(214, 224, 236, .65) 48% 52%, transparent 53%) center 42% / 62% 62% no-repeat,
    linear-gradient(45deg, transparent 47%, rgba(214, 224, 236, .65) 48% 52%, transparent 53%) center 42% / 62% 62% no-repeat,
    linear-gradient(rgba(214, 224, 236, .65), rgba(214, 224, 236, .65)) center 69% / 52% 2px no-repeat;
}

.case-study-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 1.4rem;
}

.case-study-card h2 { margin: 0 0 .65rem; font-size: 1.45rem; }
.case-study-card p { flex: 1; margin: 0 0 1.25rem; }
.case-study-card .btn { width: 100%; }

@media (hover: hover) and (pointer: fine) {
  .case-study-card { transition: transform 180ms ease, box-shadow 180ms ease; }
  .case-study-card:hover { transform: translateY(-5px); box-shadow: var(--ogc-shadow-lg); }
  .case-study-card img { transition: transform 260ms ease; }
  .case-study-card:hover img { transform: scale(1.025); }
}

/* The single green accent is reserved for verified trust/proof utilities. */
.ogc-trust-accent,
.trust-chip span,
.trust-strip-item span,
.proof-strip .ogc-line-icon,
.ogc-standard-trust .ogc-line-icon {
  color: var(--ogc-trust) !important;
  border-color: var(--ogc-trust) !important;
}

.ogc-neutralize-green { color: inherit !important; }
.ogc-neutralize-green-border { border-color: var(--ogc-border) !important; }
.ogc-neutralize-green-bg { background: var(--ogc-surface) !important; }
.ogc-force-primary { background: var(--ogc-accent) !important; color: var(--ogc-navy-deep) !important; }

/* One consistent line-icon language replaces emoji glyphs. */
.ogc-line-icon {
  display: inline-grid;
  width: 1.25em;
  height: 1.25em;
  flex: 0 0 1.25em;
  place-items: center;
  margin-right: .32em;
  color: var(--ogc-steel);
  vertical-align: -.2em;
}

.ogc-line-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Known mobile overflow and overlap repairs on owner/hub templates. */
.ogc-hub-template .energy-grid,
.ogc-hub-template .energy-grid > *,
.ogc-hub-template .energy-bullets,
.ogc-hub-template .energy-bullets li,
.ogc-hub-template .energy-bullets li span,
.ogc-hub-template .energy-cta-card {
  min-width: 0;
}

.ogc-hub-template .energy-bullets li span { white-space: normal !important; }

@media (max-width: 999px) {
  .nav .nav-inner,
  nav .nav-inner {
    width: 100%;
    gap: 12px !important;
  }

  .ogc-content-template article.service-content,
  .ogc-case-template .ogc-story-band,
  .case-study-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .ogc-content-template article.service-content {
    width: min(100% - 36px, 760px);
    margin-inline: auto;
  }

  .ogc-content-template article.service-content > *,
  .ogc-content-template article.service-content > .template-photo-proof,
  .ogc-case-template .ogc-story-band > :not(figure),
  .ogc-case-template .ogc-story-band > figure,
  .ogc-case-template .ogc-story-band:nth-of-type(even) > :not(figure),
  .ogc-case-template .ogc-story-band:nth-of-type(even) > figure {
    grid-column: 1;
    grid-row: auto;
  }

  .ogc-content-template article.service-content > .template-photo-proof { position: static; }
}

@media (max-width: 768px) {
  .ogc-premium main > section > .container,
  .ogc-premium main > section > .wrap,
  .ogc-premium .section-inner,
  .ogc-premium .hero-inner,
  .ogc-premium .og-inline-lead-inner,
  .ogc-premium .footer .container,
  .ogc-premium footer .container,
  .ogc-case-template main {
    width: min(100% - 32px, var(--ogc-container-wide));
  }

  .proof-strip.og-standard-trust .proof-strip-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .proof-strip.og-standard-trust .proof-strip-grid > div {
    min-height: 84px;
    padding: .8rem .75rem .8rem 2.35rem;
  }

  .proof-strip.og-standard-trust .proof-strip-grid > div::before { left: .65rem; }

  .ogc-hub-template .roi-table-wrap { max-width: 100%; overflow-x: auto; }
  .ogc-hub-template .roi-table { display: table; min-width: 620px; width: 620px; }
  .ogc-hub-template .energy-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Keep editorial dark bands authoritative over the shared alternating-section rule. */
body.ogc-premium .case-editorial-hero h1 span { color: #fff; }
body.ogc-premium .case-editorial-hero h1 strong { color: var(--ogc-accent); }
body.ogc-premium main.case-editorial-index > .case-editorial-stats,
body.ogc-premium main.case-editorial-index > .case-editorial-feature { background: var(--ogc-navy); background-color: var(--ogc-navy) !important; color: #fff; }
body.ogc-premium main.case-editorial-index > .case-editorial-feature h2 { color: #fff; }

/* Overnight Tasks 1–2: legacy inline nav/color hardening. */
@media (min-width: 1101px) {
  .nav .nav-logo { flex: 0 0 250px; min-width: 250px; max-width: 250px; }
  .nav .nav-logo small { display: block !important; white-space: nowrap; }
}
.ogc-hub-template .btn-primary-lg {
  background: #e8731c !important;
  border-color: #e8731c !important;
  color: #0b2a4a !important;
}

/* Overnight Task 5: shared editorial case-study headline treatment. */
.ogc-case-template h1 .case-title-main,
.ogc-case-template h1 .case-title-accent { display: block; }
.ogc-case-template h1 .case-title-accent { color: var(--ogc-accent); }
.ogc-case-template main > section:first-child h1 { font-size: clamp(3rem, 5.7vw, 5.8rem); line-height: .96; letter-spacing: -.05em; }
.ogc-case-template main > section:first-child { border-bottom: 1px solid var(--ogc-border); }

/* Fix A: authoritative text colors on dark surfaces. The JS audit helper adds
   .ogc-aa-on-dark only when the computed foreground fails against the element's
   actual nearest dark background. These static rules cover the core templates
   before deferred scripts run, eliminating any flash of dark-on-dark text. */
.hero:not(.hero-service) h1,
.hero:not(.hero-service) h2,
.hero:not(.hero-service) h3,
.answer-card.dark h1,
.answer-card.dark h2,
.answer-card.dark h3,
.conversion h1,
.conversion h2,
.conversion h3,
.cta-section h1,
.cta-section h2,
.cta-section h3,
.cta-panel h1,
.cta-panel h2,
.cta-panel h3,
.dark-card h1,
.dark-card h2,
.dark-card h3 {
  color: var(--ogc-white) !important;
}

html body .ogc-aa-on-dark {
  color: var(--ogc-white) !important;
}

/* Legacy footer rules load after the shared sheet on one hub generation. Keep
   these links readable without waiting for the computed-contrast helper. */
html body footer.footer .footer-col a {
  color: var(--ogc-on-navy) !important;
}

/* Readability re-fix: static, surface-specific rules. These repair the actual
   rendered surfaces rather than relying on a parent heading color or a late
   runtime class. */
.conversion .contact-card h1,
.conversion .contact-card h2,
.conversion .contact-card h3,
.conversion .contact-card h4 {
  color: var(--ogc-navy) !important;
}

.ogc-hub-template .premium-band,
.ogc-hub-template .project-proof-section,
.ogc-hub-template .owner-summary-band {
  background: var(--ogc-navy) !important;
  background-color: var(--ogc-navy) !important;
  color: var(--ogc-white) !important;
}

.ogc-hub-template .premium-band .why-card.dark-card,
.ogc-hub-template .project-proof-card {
  background: rgba(255, 255, 255, .045) !important;
  border-color: rgba(214, 224, 236, .18) !important;
}

.ogc-hub-template .project-proof-section h2,
.ogc-hub-template .project-proof-section h3,
.ogc-hub-template .owner-summary-band h2 {
  color: var(--ogc-white) !important;
}

.ogc-hub-template .project-proof-section p,
.ogc-hub-template .owner-summary-band p {
  color: var(--ogc-on-navy) !important;
}

.reviews-summary-row .review-link {
  color: var(--ogc-navy) !important;
  border-color: var(--ogc-navy) !important;
}

.hero-service .hero-sub {
  color: #475569 !important;
}

.hero-service .btn-outline {
  color: var(--ogc-navy) !important;
  border-color: var(--ogc-navy) !important;
}

.hero-service.hero-service-dark .btn-outline {
  color: var(--ogc-on-navy) !important;
  border-color: #8fbde8 !important;
}

.case-editorial-index .case-study-link,
.case-editorial-index .case-editorial-section-title > span,
.case-editorial-index .case-study-tag {
  color: var(--ogc-steel) !important;
}

.case-editorial-index .case-editorial-feature .case-editorial-section-title > span {
  color: var(--ogc-accent) !important;
}

/* Surgical static dark-card proof: keep headings, eyebrows, and labels readable
   without relying on the deferred contrast helper. */
.ogc-hub-template .section-dark .eyebrow,
.ogc-hub-template .section[style*="background:#0a0a0a"] .eyebrow,
.ogc-hub-template .form-card label,
.case-editorial-index .case-editorial-feature .eyebrow {
  color: var(--ogc-on-navy) !important;
}

.ogc-hub-template footer .footer-col h4 {
  color: var(--ogc-on-navy) !important;
}

/* Conversion wave: one server-rendered hero form and one post-hero action rail. */
body.ogc-premium {
  padding-bottom: 76px;
}

.conversion-home .visual-proof-hero {
  min-height: 760px;
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

.conversion-home .visual-proof-hero .hero-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: center;
}

.conversion-hero-form {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
  padding: clamp(1.15rem, 2vw, 1.75rem) !important;
  border: 1px solid rgba(214, 224, 236, .25) !important;
  border-radius: 18px !important;
  background: rgba(11, 42, 74, .94) !important;
  box-shadow: 0 24px 64px rgba(3, 17, 31, .34);
  color: #fff;
  backdrop-filter: blur(10px);
}

.conversion-hero-form h2,
.conversion-hero-form h3,
.conversion-hero-form label,
.conversion-hero-form .og-inline-lead-kicker,
.conversion-hero-form .form-consent label,
.conversion-hero-form .og-inline-consent,
.conversion-hero-form .og-inline-form-note,
.conversion-hero-form .og-inline-form-note a {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.conversion-hero-form p,
.conversion-hero-form .form-legal {
  color: var(--ogc-on-navy) !important;
}

.conversion-hero-form input:not([type="checkbox"]),
.conversion-hero-form select,
.conversion-hero-form textarea {
  min-height: 46px;
  border-color: rgba(214, 224, 236, .45) !important;
  background: #fff !important;
  color: var(--ogc-text) !important;
}

.conversion-hero-form textarea { min-height: 76px; }
.conversion-hero-form .form-row,
.conversion-hero-form .og-inline-form-grid { gap: .75rem; }
.conversion-hero-form .form-group { margin-bottom: .7rem; }

.conversion-home .conversion-contact-details .contact-grid {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}

.conversion-building-owners .hero-inner {
  grid-template-columns: minmax(0, 1fr) minmax(430px, .95fr) !important;
  max-width: var(--ogc-container-wide) !important;
  align-items: start !important;
}

.conversion-building-owners .conversion-hero-form {
  max-height: 690px;
  overflow: auto;
  scrollbar-color: var(--ogc-steel) rgba(255,255,255,.08);
}

.conversion-building-owners .conversion-form-followup {
  padding-block: 3.5rem;
}

.conversion-property-managers main > section:first-child > div {
  max-width: var(--ogc-container-wide) !important;
}

.conversion-property-managers .conversion-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .9fr);
  gap: clamp(2rem, 4vw, 4rem);
  align-items: start;
  margin-bottom: 2.5rem;
  text-align: left;
}

.conversion-property-managers .conversion-hero-copy p { margin-inline: 0 !important; }
.conversion-property-managers .conversion-hero-form { text-align: left; }
.conversion-property-managers .conversion-hero-form .og-inline-lead-inner {
  display: block;
  width: 100%;
}
.conversion-property-managers .conversion-hero-form .og-inline-lead-copy { margin-bottom: 1rem; }

.ogc-conversion-bar {
  position: fixed;
  z-index: 9998;
  right: 0;
  bottom: 0;
  left: 0;
  min-height: 68px;
  border-top: 1px solid rgba(214, 224, 236, .25);
  background: rgba(11, 42, 74, .98);
  box-shadow: 0 -12px 32px rgba(3, 17, 31, .2);
  color: #fff;
  transform: translateY(105%);
  visibility: hidden;
  transition: transform .22s ease, visibility 0s linear .22s;
}

.ogc-conversion-bar.is-visible {
  transform: translateY(0);
  visibility: visible;
  transition-delay: 0s;
}

.ogc-conversion-bar__inner {
  width: min(var(--ogc-container-wide), calc(100% - 40px));
  min-height: 68px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}

.ogc-conversion-bar__value {
  margin: 0;
  color: var(--ogc-on-navy) !important;
  font-size: .95rem;
  font-weight: 700;
}

.ogc-conversion-bar__actions { display: flex; gap: .75rem; align-items: center; }
.ogc-conversion-bar__cta,
.ogc-conversion-bar__call {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  font-weight: 800;
  text-decoration: none;
}
.ogc-conversion-bar__cta {
  padding: .7rem 1.15rem;
  background: var(--ogc-accent);
  color: var(--ogc-navy) !important;
}
.ogc-conversion-bar__call { display: none; }

@media (max-width: 900px) {
  body.ogc-premium { padding-bottom: 82px; }
  .conversion-home .visual-proof-hero { min-height: 0; padding-block: 2rem 2.5rem; }
  .conversion-home .visual-proof-hero .hero-shell,
  .conversion-building-owners .hero-inner,
  .conversion-property-managers .conversion-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.5rem;
  }
  .conversion-building-owners .hero-inner { width: min(100% - 28px, 680px) !important; }
  .conversion-home .conversion-hero-form,
  .conversion-building-owners .conversion-hero-form,
  .conversion-property-managers .conversion-hero-form { order: -1; }
  .conversion-building-owners .conversion-hero-form { max-height: none; }
  .conversion-property-managers main > section:first-child { padding: 2rem 1rem 2.5rem !important; }
  .conversion-property-managers .conversion-hero-grid { margin-bottom: 1.5rem; }
  .conversion-property-managers .conversion-hero-copy h1 { font-size: clamp(2rem, 10vw, 2.75rem) !important; }
  .conversion-hero-form { padding: 1rem !important; }
  .conversion-hero-form .form-row,
  .conversion-hero-form .og-inline-form-grid { grid-template-columns: 1fr !important; }
  .ogc-conversion-bar { min-height: 76px; }
  .ogc-conversion-bar__inner {
    width: calc(100% - 16px);
    min-height: 76px;
    gap: 8px;
  }
  .ogc-conversion-bar__value { display: none; }
  .ogc-conversion-bar__actions { width: 100%; gap: 8px; }
  .ogc-conversion-bar__call {
    display: inline-flex;
    flex: 0 0 112px;
    padding: .65rem .75rem;
    border: 1px solid rgba(214, 224, 236, .55);
    color: #fff !important;
  }
  .ogc-conversion-bar__cta {
    flex: 1 1 auto;
    padding: .65rem .7rem;
    font-size: .82rem;
    line-height: 1.15;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ogc-conversion-bar { transition: none; }
}

/* Keep the credential row compact before every hero. Legacy page CSS tried to
   restack this strip, which could push an otherwise above-fold form below it. */
body.ogc-premium .proof-strip.og-standard-trust .proof-strip-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Final-wave lock-in: AA text colors on the actual legacy surfaces. These
   selectors are deliberately surface-specific so orange remains the action
   color while small labels on light cards use navy and dark-card metadata
   uses the established light ink. */
body.ogc-premium .hero-service:not(.hero-service-dark) .hero-badge,
body.ogc-premium .hero-service:not(.hero-service-dark) .hero-tag,
body.ogc-premium .hero-service:not(.hero-service-dark) > div > div:first-child > div:first-child {
  color: var(--ogc-navy) !important;
}

body.ogc-premium .section-gray p[style*="color:#64748b"],
body.ogc-premium .section-gray p[style*="color: #64748b"],
body.ogc-premium .section-gray span[style*="color:#64748b"],
body.ogc-premium .section-gray span[style*="color: #64748b"],
body.ogc-premium .ogc-story-band figcaption,
body.ogc-premium .template-photo-proof figcaption {
  color: #475569 !important;
}

body.ogc-premium main > section[style*="padding-top:0"] p[style*="color:#64748b"],
body.ogc-premium main > section[style*="padding-top:0"] p[style*="color: #64748b"],
body.ogc-premium.ogc-case-template figcaption[style*="color:#64748b"],
body.ogc-premium.ogc-case-template figcaption[style*="color: #64748b"],
body.ogc-premium.ogc-hub-template main a > span[style*="color:#64748b"],
body.ogc-premium.ogc-hub-template main a > span[style*="color: #64748b"] {
  color: #475569 !important;
}

body.ogc-premium .section-gray div[style*="color:#e8720c"],
body.ogc-premium .section-gray div[style*="color: #e8720c"],
body.ogc-premium .section-gray div[style*="color:#e8731c"],
body.ogc-premium .section-gray div[style*="color: #e8731c"] {
  color: var(--ogc-navy) !important;
}

/* Legacy content pages used near-identical inline label colors without stable
   classes. Normalize those small labels on light surfaces, then restore the
   light ink explicitly inside dark sections. */
body.ogc-premium main div[style*="color:#e8720c"],
body.ogc-premium main div[style*="color: #e8720c"],
body.ogc-premium main div[style*="color:#e8731c"],
body.ogc-premium main div[style*="color: #e8731c"] {
  color: var(--ogc-navy) !important;
}

body.ogc-premium main p[style*="color:#64748b"],
body.ogc-premium main p[style*="color: #64748b"],
body.ogc-premium main span[style*="color:#64748b"],
body.ogc-premium main span[style*="color: #64748b"],
body.ogc-premium main figcaption[style*="color:#64748b"],
body.ogc-premium main figcaption[style*="color: #64748b"] {
  color: #475569 !important;
}

body.ogc-premium main .section-dark div[style*="color:#e8731c"],
body.ogc-premium main .section-dark div[style*="color: #e8731c"],
body.ogc-premium main section[style*="background:#0f172a"] div[style*="color:#e8731c"],
body.ogc-premium main section[style*="background:#0f172a"] div[style*="color: #e8731c"],
body.ogc-premium main section[style*="background:#0a0a0a"] div[style*="color:#e8731c"],
body.ogc-premium main section[style*="background: #0a0a0a"] div[style*="color: #e8731c"],
body.ogc-premium main section[style*="background:#111"] div[style*="color:#e8731c"],
body.ogc-premium main section[style*="background: #111"] div[style*="color: #e8731c"],
body.ogc-premium main section[style*="background:#0f172a"] :is(p,span,figcaption)[style*="color:#64748b"],
body.ogc-premium main section[style*="background:#0f172a"] :is(p,span,figcaption)[style*="color: #64748b"],
body.ogc-premium main section[style*="background:#0a0a0a"] :is(p,span,figcaption)[style*="color:#64748b"],
body.ogc-premium main section[style*="background: #0a0a0a"] :is(p,span,figcaption)[style*="color: #64748b"],
body.ogc-premium main section[style*="background:#111"] :is(p,span,figcaption)[style*="color:#64748b"],
body.ogc-premium main section[style*="background: #111"] :is(p,span,figcaption)[style*="color: #64748b"] {
  color: var(--ogc-on-navy) !important;
}

body.ogc-premium main div[style*="background:#111"] > div[style*="color:#e8731c"],
body.ogc-premium main div[style*="background: #111"] > div[style*="color: #e8731c"],
body.ogc-premium main div[style*="background:#141414"] > div[style*="color:#e8731c"],
body.ogc-premium main div[style*="background: #141414"] > div[style*="color: #e8731c"] {
  color: var(--ogc-on-navy) !important;
}

body.ogc-premium main div[style*="background:#111"] div[style*="color:#e8731c"],
body.ogc-premium main div[style*="background: #111"] div[style*="color: #e8731c"] {
  color: var(--ogc-on-navy) !important;
}

body.ogc-premium main > section[style*="background:#0f172a"] > div > div:first-child,
body.ogc-premium main > section[style*="background: #0f172a"] > div > div:first-child {
  color: var(--ogc-on-navy) !important;
}

.contact-info > div[style*="background:var(--navy)"] > div:first-child {
  color: var(--ogc-on-navy) !important;
}

.conversion-building-owners .stat-label,
.conversion-building-owners .roi-table th,
.conversion-building-owners .disclaimer,
.conversion-building-owners .energy-grid [style*="color:#64748b"],
.conversion-building-owners .energy-grid [style*="color: #64748b"],
.conversion-building-owners .warranty-badge .mfr-type,
.conversion-building-owners .trust-strip-item {
  color: var(--ogc-on-navy) !important;
}

.conversion-building-owners .rec-badge {
  color: var(--ogc-on-navy) !important;
  border: 1px solid rgba(214, 224, 236, .35);
}

.conversion-building-owners .related-label {
  color: var(--ogc-on-navy) !important;
}

.conversion-property-managers .grid-3-cmp > div:nth-child(2) > div:first-child {
  color: var(--ogc-navy) !important;
}

.conversion-property-managers main > div[style*="background: #111"] > div:first-child,
.conversion-property-managers main > div[style*="background:#111"] > div:first-child {
  color: var(--ogc-on-navy) !important;
}

/* Text links must remain distinguishable without relying on color alone. */
body.ogc-premium p a:not(.btn),
body.ogc-premium li a:not(.btn),
body.ogc-premium footer a:not(.btn),
body.ogc-premium a[href$="/privacy-policy"] {
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px !important;
}

@media (max-width: 768px) {
  body.ogc-premium .proof-strip.og-standard-trust .proof-strip-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* 2026-11-12 · Authoritative case-study media lock. Keep after all legacy template rules. */
.case-editorial-index .case-study-grid {
  grid-auto-rows: 1fr;
}

.case-editorial-index .case-study-card > figure {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.case-editorial-index .case-study-card > figure > img,
.case-editorial-index .case-study-card > figure > .case-study-placeholder {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
}

.ogc-case-template .ogc-story-band > figure {
  grid-row: auto !important;
  align-self: center !important;
  width: 100%;
  height: auto !important;
}

.ogc-case-template .ogc-story-band > figure > img {
  display: block;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  object-position: center center;
}

/* 2026-11-12 · Technical crew / GC proof section. */
.technical-case-actions,
.technical-status {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 1.4rem;
}

.technical-status span {
  background: #f5f7fa;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #0b2a4a;
  font-size: .82rem;
  font-weight: 700;
  padding: 8px 12px;
}

.technical-crew-section {
  background: #0b2a4a !important;
  color: #fff;
  padding: clamp(64px, 8vw, 104px) 24px;
}

.technical-crew-section .technical-crew-inner {
  margin: 0 auto;
  max-width: 1200px;
}

.technical-crew-section .technical-crew-copy {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  margin-bottom: 38px;
}

.technical-crew-section .technical-crew-copy h2,
.technical-crew-section .technical-crew-copy p {
  color: #fff !important;
}

.technical-crew-section .technical-crew-copy h2 {
  font-size: clamp(2rem, 4.4vw, 3.45rem);
  line-height: 1.06;
  margin: 0 0 18px;
}

.technical-crew-section .technical-crew-copy p {
  font-size: 1.04rem;
  line-height: 1.75;
  margin: 0;
  max-width: 760px;
}

.technical-crew-section .technical-crew-cta {
  align-items: flex-start;
  background: #102f52;
  border: 1px solid rgba(214, 224, 236, .24);
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 24px;
}

.technical-crew-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.technical-crew-card {
  background: #fff;
  border: 1px solid rgba(214, 224, 236, .35);
  border-radius: 18px;
  box-shadow: 0 18px 38px rgba(0, 0, 0, .18);
  color: #1a2330;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease;
}

.technical-crew-card:hover,
.technical-crew-card:focus-visible {
  box-shadow: 0 24px 48px rgba(0, 0, 0, .25);
  transform: translateY(-3px);
}

.technical-crew-card img {
  aspect-ratio: 16 / 10;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.technical-crew-card-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px;
}

.technical-crew-card-content span {
  color: #2f6b4e;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.technical-crew-card-content h3 {
  color: #0b2a4a !important;
  font-size: 1.24rem;
  line-height: 1.25;
  margin: 0 0 12px;
}

.technical-crew-card-content p {
  color: #1a2330 !important;
  line-height: 1.65;
  margin: 0 0 18px;
}

.technical-crew-card-content strong {
  color: #c6530d;
  margin-top: auto;
}

.homepage-technical-teaser {
  background: #f5f7fa;
  padding: 56px 24px;
}

.homepage-technical-teaser .homepage-technical-inner {
  align-items: center;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1.4fr) auto;
  margin: 0 auto;
  max-width: 1200px;
}

.homepage-technical-teaser h2 {
  color: #0b2a4a !important;
  margin-bottom: 12px;
}

.homepage-technical-teaser p {
  color: #1a2330 !important;
  line-height: 1.7;
  margin: 0;
  max-width: 830px;
}

@media (max-width: 768px) {
  .technical-crew-section .technical-crew-copy,
  .technical-crew-grid,
  .homepage-technical-teaser .homepage-technical-inner {
    grid-template-columns: 1fr;
  }

  .technical-crew-section {
    padding-left: 18px;
    padding-right: 18px;
  }

  .homepage-technical-teaser .btn,
  .technical-crew-section .btn {
    width: 100%;
  }
}
.case-study-tag-technical {
  background: #0b2a4a !important;
  color: #fff !important;
  border-color: #0b2a4a !important;
}

/* Master-wave contrast locks for legacy editorial surfaces. */
.ogc-portfolio-page .section .intro .label,
.ogc-portfolio-page .section .intro h2 {
  color: #0b2a4a !important;
}

.ogc-portfolio-page .section .intro p {
  color: #475569 !important;
}

.ogc-coatings-page .coating-projects,
.ogc-coatings-page .coating-faq {
  background: #0a0a0a !important;
}

.ogc-coatings-page .coating-projects > p,
.ogc-coatings-page .coating-faq p,
.ogc-coatings-page .coating-projects [style*="color:#666"] {
  color: #d6e0ec !important;
}

.ogc-coatings-page .coating-projects a,
.ogc-coatings-page .coating-faq a {
  color: #fba94c !important;
  text-decoration: underline !important;
}
/* Final polish: one factual credential band across every public template. */
.og-standard-trust > .container {
  display: grid;
  gap: 0;
}
.og-standard-trust .og-trust-certifications,
.og-standard-trust .og-trust-capabilities {
  border-top: 1px solid rgba(214, 224, 236, .18);
  color: #d6e0ec;
  padding: 12px 0;
}
.og-standard-trust .og-trust-certifications {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  justify-content: center;
  text-align: center;
}
.og-standard-trust .og-trust-certifications strong {
  color: #fff;
}
.og-standard-trust .og-trust-capabilities {
  display: grid;
  gap: 8px;
  font-size: .84rem;
  line-height: 1.55;
  text-align: left;
}
.og-standard-trust .og-trust-capabilities strong {
  color: #fff;
}
.og-specified-photo-hero,
.og-specified-photo-hero h1,
.og-specified-photo-hero h2,
.og-specified-photo-hero p,
.og-specified-photo-hero .hero-sub {
  color: #fff !important;
}
.ogc-force-primary,
.btn-primary,
.btn.primary {
  color: #0b2a4a !important;
}
.les-chateaux-case-study .hero .eyebrow {
  color: #d6e0ec !important;
}
.les-chateaux-case-study .crumb a {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
/* Preserve About page dark surfaces after the shared even-section paint. */
body.ogc-premium .about-story,
body.ogc-premium .about-cta {
  background-color: #0a1628 !important;
}
body.ogc-premium .about-services {
  background-color: #0d1f3c !important;
}
body.ogc-premium .about-cta .cta-trust {
  color: #94a3b8 !important;
}
@media (max-width: 700px) {
  .og-standard-trust .og-trust-certifications,
  .og-standard-trust .og-trust-capabilities {
    padding-inline: 16px;
  }
}
