/* Lumenforge — local Bootstrap extension */
:root {
  --lf-forest: #24352b;
  --lf-forest-deep: #183c35;
  --lf-paper: #f3ebdd;
  --lf-cream: #fff9ef;
  --lf-green-light: #e6efe7;
  --lf-burnt: #8f3b24;
  --lf-burnt-dark: #702d1c;
  --lf-line: #b9aa96;
  --lf-muted: #405047;
  --lf-amber: #c77819;
  --lf-white: #fffdf8;
  --lf-radius: .35rem;
  --lf-hero-radius: .75rem;
  --lf-content-width: 90rem;
  --lf-body-font: Arial, Helvetica, sans-serif;
  --lf-display-font: Georgia, "Times New Roman", serif;
  --lf-focus: #a85f00;
  --lf-shadow: 0 .35rem 1rem rgba(36,53,43,.12);
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--lf-forest);
  background: var(--lf-cream);
  font-family: var(--lf-body-font);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.brand, .footer-brand {
  color: var(--lf-forest);
  font-family: var(--lf-display-font);
  font-weight: 700;
  line-height: 1.15;
}
h1 { font-size: clamp(2.35rem, 6vw, 5rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.9rem, 4vw, 3.35rem); letter-spacing: -.025em; }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); }
p { max-width: 72ch; }
a { color: var(--lf-burnt-dark); text-decoration-thickness: .1em; text-underline-offset: .16em; }
a:hover { color: #4f2115; }

:focus-visible {
  outline: .2rem solid var(--lf-focus);
  outline-offset: .2rem;
  box-shadow: 0 0 0 .35rem rgba(199,120,25,.25);
}
.skip-link {
  position: absolute;
  z-index: 2000;
  top: .5rem;
  left: .5rem;
  padding: .65rem .9rem;
  color: var(--lf-white);
  background: var(--lf-forest-deep);
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

.content-width { width: min(100% - 2rem, var(--lf-content-width)); }
.site-section { position: relative; }
.bg-paper { background: var(--lf-paper); }
.bg-cream { background: var(--lf-cream); }
.bg-green-light { background: var(--lf-green-light); }
.bg-green-dark { background: var(--lf-forest-deep); }
.text-light, .bg-green-dark { color: var(--lf-white); }
.bg-green-dark h1, .bg-green-dark h2, .bg-green-dark h3,
.bg-green-dark .eyebrow, .bg-green-dark .section-number { color: var(--lf-white); }
.bg-green-dark a { color: #ffe0a8; }
.bg-green-dark a:hover { color: #fff4d7; }

.site-header {
  position: relative;
  z-index: 10;
  background: var(--lf-cream);
  border-color: var(--lf-line) !important;
}
.brand, .footer-brand {
  display: inline-block;
  color: var(--lf-forest);
  font-size: clamp(1.8rem, 4vw, 2.7rem);
  text-decoration: none;
}
.brand-tagline {
  color: var(--lf-muted);
  font-size: .95rem;
  letter-spacing: .02em;
}
.navbar-toggler {
  color: var(--lf-forest);
  border: 1px solid var(--lf-forest);
  border-radius: var(--lf-radius);
  background: var(--lf-white);
}
.navbar-toggler:hover { color: var(--lf-white); background: var(--lf-forest); }
.nav-link {
  color: var(--lf-forest) !important;
  font-weight: 700;
  padding: .7rem .8rem !important;
}
.nav-link:hover, .nav-link:focus { color: var(--lf-burnt-dark) !important; }
.nav-cta {
  color: var(--lf-white) !important;
  background: var(--lf-forest);
  border-radius: var(--lf-radius);
}
.nav-cta:hover, .nav-cta:focus { color: var(--lf-white) !important; background: var(--lf-burnt-dark); }

.hero-section { overflow: hidden; }
.hero-section .container-fluid { max-width: var(--lf-content-width); }
.hero-section h1 { max-width: 16ch; }
.hero-section .lead { color: var(--lf-forest); font-size: clamp(1.12rem, 2vw, 1.35rem); }
.hero-media img { display: block; width: 100%; border-radius: var(--lf-hero-radius); box-shadow: var(--lf-shadow); }
.image-caption {
  margin: .55rem 0 0;
  color: var(--lf-muted);
  font-size: .86rem;
  font-style: italic;
}
.eyebrow {
  margin-bottom: .6rem;
  color: var(--lf-burnt-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}
.section-heading { margin-bottom: 2.25rem; }
.section-heading h2 { margin-bottom: 1rem; }
.section-number {
  display: inline-block;
  margin-bottom: .7rem;
  color: var(--lf-burnt-dark);
  font-family: var(--lf-body-font);
  font-size: .85rem;
  font-weight: 800;
  letter-spacing: .1em;
}
.section-intro { color: var(--lf-muted); font-size: 1.08rem; }
.bg-green-dark .section-intro { color: #f1f4ec; }

.btn {
  border-radius: var(--lf-radius);
  font-weight: 700;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
  color: var(--lf-white);
  background: var(--lf-forest);
  border-color: var(--lf-forest);
}
.btn-primary:hover, .btn-primary:focus { color: var(--lf-white); background: var(--lf-burnt-dark); border-color: var(--lf-burnt-dark); }
.btn-outline-primary {
  color: var(--lf-forest);
  border-color: var(--lf-forest);
}
.btn-outline-primary:hover, .btn-outline-primary:focus { color: var(--lf-white); background: var(--lf-forest); border-color: var(--lf-forest); }
.btn-light { color: var(--lf-forest); background: var(--lf-white); border-color: var(--lf-white); }
.btn-light:hover, .btn-light:focus { color: var(--lf-white); background: var(--lf-burnt-dark); border-color: var(--lf-burnt-dark); }
.text-link { display: inline-block; margin-top: 2rem; font-weight: 800; }

.editorial-image, .author-image { width: 100%; border-radius: var(--lf-radius); box-shadow: var(--lf-shadow); }
.note-list, .feature-stack { display: grid; gap: 1rem; }
.note, .feature-stack article, .prose-note {
  padding: 1.25rem;
  border-left: .25rem solid var(--lf-burnt);
  background: rgba(255,253,248,.72);
}
.note h3, .feature-stack h3, .prose-note h3 { margin-top: 0; }
.note p:last-child, .feature-stack p:last-child, .prose-note p:last-child { margin-bottom: 0; }

.character-card, .post-card, .story-card, .gallery-card, .step-card {
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--lf-line);
  border-radius: var(--lf-radius);
  background: var(--lf-white);
  box-shadow: var(--lf-shadow);
}
.character-card { display: flex; flex-direction: column; }
.card-image { width: 100%; aspect-ratio: 7 / 8; object-fit: cover; }
.card-body, .post-card, .step-card { padding: 1.25rem; }
.card-body h3, .post-card h3, .step-card h3 { margin-bottom: .45rem; }
.card-body p:last-child, .post-card p:last-child, .step-card p:last-child { margin-bottom: 0; }
.role { margin-bottom: .75rem; color: var(--lf-burnt-dark); font-weight: 800; }

.feature-stack article { background: var(--lf-cream); }
.accordion-item { border-color: var(--lf-line); background: var(--lf-white); }
.accordion-button { color: var(--lf-forest); background: var(--lf-white); font-weight: 700; }
.accordion-button:not(.collapsed) { color: var(--lf-white); background: var(--lf-forest); box-shadow: none; }
.accordion-button::after { filter: none; }
.accordion-body { color: var(--lf-forest); }

.story-card, .gallery-card { display: flex; flex-direction: column; margin: 0; }
.story-card img, .gallery-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.story-card figcaption, .gallery-card figcaption { flex: 1; padding: 1.15rem; }
.story-card h3, .gallery-card h3 { margin-bottom: .55rem; }
.story-card p, .gallery-card p { margin-bottom: 0; }
.gallery-meta {
  display: grid;
  gap: .2rem;
  margin-top: 1rem !important;
  padding-top: .75rem;
  border-top: 1px solid var(--lf-line);
  color: var(--lf-muted);
  font-size: .78rem;
  line-height: 1.45;
}
.step-card { border-top: .3rem solid var(--lf-burnt); }
.step-card > span {
  display: block;
  margin-bottom: .75rem;
  color: var(--lf-burnt-dark);
  font-weight: 800;
  letter-spacing: .08em;
}
.mosaic-copy { display: grid; gap: 1rem; }
.mosaic-copy article { padding: 1.2rem; border: 1px solid rgba(255,253,248,.55); background: rgba(255,253,248,.08); }
.mosaic-copy h3 { color: var(--lf-white); }
.mosaic-copy p { margin-bottom: 0; }

.contact-section .section-heading {
  width: min(100%, 48rem);
  max-width: 48rem;
  margin-inline: auto !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.contact-panel {
  max-width: none;
  width: 100%;
  padding: 1.25rem;
  border: 2px solid var(--lf-burnt);
  border-radius: var(--lf-hero-radius);
  background: var(--lf-white);
  box-shadow: var(--lf-shadow);
}
.contact-panel > p { margin-right: auto; margin-left: auto; }
.contact-panel label { display: block; margin-bottom: .35rem; color: var(--lf-forest); font-weight: 700; }
.contact-panel .form-control { color: var(--lf-forest); border-color: #786b5b; border-radius: var(--lf-radius); background: var(--lf-cream); }
.contact-panel .form-control::placeholder { color: #405047; opacity: 1; }
.contact-panel .form-control:focus { border-color: var(--lf-focus); box-shadow: 0 0 0 .25rem rgba(168,95,0,.25); }
.contact-panel .form-check-label { display: inline; font-weight: 400; }
.contact-panel .form-check-label a { margin-left: .25rem; }
.form-status { min-height: 1.5rem; margin-bottom: .75rem; color: var(--lf-forest); font-weight: 700; }
.contact-nap { color: var(--lf-muted); }
.contact-nap a { margin-left: .25rem; margin-right: .25rem; }

.cookie-banner {
  position: fixed;
  z-index: 1050;
  right: 0;
  bottom: 0;
  left: 0;
  padding: .9rem 0;
  color: var(--lf-white);
  background: var(--lf-forest-deep);
  border-top: 2px solid var(--lf-amber);
  box-shadow: 0 -.35rem 1rem rgba(0,0,0,.18);
}
.cookie-banner a { color: #ffe0a8; }
.cookie-banner p { font-size: .92rem; }
.cookie-banner[hidden] { display: none !important; }

.site-footer { color: var(--lf-white); }
.site-footer h2, .site-footer .footer-brand { color: var(--lf-white); }
.site-footer p, .site-footer address { color: #f8f1e6; }
body > address[data-site-contact-details] { display: none !important; }
.site-footer a { color: #ffe0a8; }
.site-footer a:hover { color: var(--lf-white); }
.site-footer > [data-site-copyright="true"] { margin: 0; padding: 1rem; color: var(--lf-white); background: #102b26; text-align: center; }

/* All four permitted header arrangements remain bounded on small screens. */
.site-header--inline .container, .site-header--stacked-brand .container,
.site-header--wrapped-nav .container, .site-header--centered-brand .container { max-width: var(--lf-content-width); }
.site-header--inline .brand { margin-right: 1rem; }
.site-header--inline .navbar { flex: 1; }
.site-header--stacked-brand .brand { display: block; }
.site-header--wrapped-nav .navbar-nav { flex-wrap: wrap; justify-content: center; }
.site-header--centered-brand .brand { display: block; }

/* The accepted homepage uses hero-editorial; the companion modifiers remain available. */
.hero-overlay .hero-media { position: relative; }
.hero-overlay .hero-media::after { position: absolute; inset: 0; content: ""; background: rgba(24,60,53,.38); }
.hero-overlay .hero-section__content, .hero-overlay .hero-copy { position: relative; z-index: 1; padding: 1.5rem; border-radius: var(--lf-hero-radius); background: var(--lf-white); }
.hero-editorial .hero-media { order: 1; }
.hero-editorial .hero-copy { order: 2; }
.hero-image-top .hero-media { order: 1; width: 100%; }
.hero-image-top .hero-copy { order: 2; }

/* Policy pages use one plain, readable article shell. */
.policy-page { min-height: 100vh; background: var(--lf-cream); }
.policy-page__main { padding: 2.5rem 1rem 4rem; }
.policy-document { width: min(100%, 52rem); margin: 0 auto; }
.policy-document__header { padding-bottom: 1.5rem; border-bottom: 1px solid var(--lf-line); }
.policy-document__header h1 { margin-bottom: .75rem; }
.policy-document__content { padding-top: 1.75rem; }
.policy-document__content h2 { margin-top: 2.25rem; font-size: clamp(1.45rem, 3vw, 2rem); }
.policy-document__content h3 { margin-top: 1.5rem; font-size: 1.25rem; }
.policy-document__content p, .policy-document__content li { max-width: 72ch; }
.policy-document__content ul, .policy-document__content ol { padding-left: 1.4rem; }

@media (min-width: 576px) {
  .content-width { width: min(100% - 3rem, var(--lf-content-width)); }
  .contact-panel { padding: 2rem; }
}
@media (min-width: 768px) {
  .content-width { width: min(100% - 4rem, var(--lf-content-width)); }
  .policy-page__main { padding-right: 2rem; padding-left: 2rem; }
  .note, .feature-stack article, .prose-note { padding: 1.5rem; }
}
@media (min-width: 992px) {
  .site-header--inline .container { display: flex; align-items: center; gap: 1.5rem; }
  .site-header--inline .brand-tagline { margin: 0 1rem 0 0; }
  .site-header--inline .navbar { min-width: 0; }
  .site-header--stacked-brand .brand { margin-bottom: .35rem; }
  .site-header--wrapped-nav .navbar-nav { max-width: 70rem; margin-right: auto; margin-left: auto; }
  .hero-editorial .hero-media { margin-top: 2rem; }
  .section-heading { max-width: 70rem; }
}
@media (min-width: 1200px) {
  .site-section > .container, .site-section > .container-fluid { padding-top: 5rem !important; padding-bottom: 5rem !important; }
}
@media (max-width: 991.98px) {
  .navbar-collapse { padding-top: 1rem; }
  .navbar-nav { gap: .15rem !important; }
  .nav-cta { display: inline-block; margin-top: .35rem; }
}
@media (max-width: 575.98px) {
  .content-width { width: min(100% - 1.5rem, var(--lf-content-width)); }
  .cookie-banner .container { align-items: stretch !important; }
  .cookie-banner .btn { flex: 1 1 auto; }
  .contact-panel { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .btn:hover { transform: none; }
}

/* Application-owned visual variation tokens v4. */
:root {
  --site-foreground: #24352B;
  --site-background: #F4EEE4;
  --site-accent: #8F3B24;
  --site-surface: #E8DED0;
  --site-muted: #56635A;
  --site-link: #8F3B24;
  --site-text-muted: #56635A;
}

body,
body * {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

body .site-header {
  width: 100%;
  overflow: visible !important;
}

body .site-header .navbar {
  width: 100%;
  padding-inline: clamp(1rem, 3vw, 4rem);
}

body .site-header .navbar > .container {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex-wrap: wrap;
}

body .site-header .navbar-brand {
  min-width: 0;
  max-width: 38%;
  overflow-wrap: anywhere;
}

body .site-header .navbar-collapse {
  min-width: 0;
}

body .site-header .navbar-nav {
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}

body .site-header .nav-link,
body .site-header .navbar-nav .btn {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
  text-align: center;
}

@media (min-width: 992px) {
  body .site-header--stacked-brand .navbar > .container,
  body .site-header--centered-brand .navbar > .container {
    align-items: center;
  }

  body .site-header--stacked-brand .navbar > .container {
    flex-direction: column;
  }

  body .site-header--stacked-brand .navbar-brand,
  body .site-header--centered-brand .navbar-brand {
    max-width: 100%;
    margin-inline: auto;
  }

  body .site-header--stacked-brand .navbar-collapse,
  body .site-header--centered-brand .navbar-collapse {
    width: 100%;
    flex-grow: 0;
  }

  body .site-header--stacked-brand .navbar-nav,
  body .site-header--centered-brand .navbar-nav {
    justify-content: center;
  }
}

@media (max-width: 991.98px) {
  body .site-header .navbar-collapse.show {
    flex-basis: 100%;
  }

  body .site-header .navbar-nav {
    align-items: stretch;
  }
}

body .btn,
body button[type="submit"] {
  background-color: var(--site-accent) !important;
  border-color: var(--site-accent) !important;
  color: var(--site-background) !important;
}


section.section-layout--hero-split .row {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
  align-items: center;
}

section.section-layout--hero-split .row > [class*="col-"] {
  max-width: none !important;
  width: auto !important;
}

section.section-layout--hero-stacked .row {
  display: block !important;
  max-width: 66rem;
  margin-inline: auto;
}

section.section-layout--hero-editorial .row {
  display: block !important;
  width: 100%;
  max-width: none !important;
  margin-inline: 0;
}

section.section-layout--hero-editorial .row > [class*="col-"] {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0;
}

section.section-layout--hero-editorial .row > [class*="col-"] + [class*="col-"] {
  margin-top: clamp(2rem, 5vw, 4.5rem);
}

section.section-layout--hero-editorial img {
  display: block;
  width: 100%;
  max-height: 42rem;
  object-fit: cover;
}

section.section-layout--hero-overlay .row > [class*="col-"]:first-child {
  padding: clamp(1.5rem, 5vw, 5rem);
  margin: clamp(1rem, 3vw, 3rem);
  max-width: min(52rem, calc(100% - 2rem)) !important;
}

section.section-layout--hero-overlay h1 {
  margin-bottom: clamp(1.25rem, 3vw, 2.5rem);
}

section.section-layout--hero-overlay p {
  margin-bottom: 1.25rem;
}

section.section-layout--hero-image-top > .container,
section.section-layout--hero-image-top > .container-fluid {
  width: min(calc(100% - 2rem), 90rem) !important;
  max-width: 90rem !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

section.section-layout--hero-image-top > .container > .row:first-child,
section.section-layout--hero-image-top > .container-fluid > .row:first-child {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

section.section-layout--hero-image-top > .container > .row:first-child > [class*="col-"],
section.section-layout--hero-image-top > .container-fluid > .row:first-child > [class*="col-"] {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
  padding-inline: 0 !important;
}

section.section-layout--hero-image-top > .container > .row:first-child > [class*="col-"]:has(img),
section.section-layout--hero-image-top > .container-fluid > .row:first-child > [class*="col-"]:has(img) {
  order: -1;
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

section.section-layout--hero-image-top h1,
section.section-layout--hero-image-top .display-1,
section.section-layout--hero-image-top .display-2,
section.section-layout--hero-image-top .display-3 {
  max-width: 64rem !important;
}

section.section-layout--hero-image-top img {
  display: block;
  width: 100%;
  max-height: 42rem;
  object-fit: cover;
}

section.section-layout--hero-overlay {
  position: relative;
  isolation: isolate;
}

section.section-layout--hero-overlay .row {
  position: relative;
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: center;
}

section.section-layout--hero-overlay .row > [class*="col-"] {
  grid-area: 1 / 1;
  max-width: none !important;
  width: auto !important;
}

section.section-layout--hero-overlay .row > [class*="col-"]:first-child {
  position: relative;
  z-index: 2;
  max-width: 42rem !important;
}

section.section-layout--hero-overlay .row > [class*="col-"]:last-child {
  z-index: 1;
}

@media (max-width: 767.98px) {
  section.section-layout--hero-split .row {
    display: block !important;
  }
}

/* Application-owned accessibility and viewport safeguards. */
*, *::before, *::after {
  box-sizing: border-box;
}

html, body {
  max-width: 100%;
  overflow-x: clip;
}

img, svg, video, canvas, iframe {
  max-width: 100%;
}

pre, code, kbd, samp {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

table {
  max-width: 100%;
  display: block;
  overflow-x: auto;
}

.container, .container-fluid {
  min-width: 0;
}

main, section, header, footer {
  min-width: 0;
  max-width: 100%;
}

/* Application-owned fluid homepage container safeguards v1. */
body main > section .container,
body main > section .container-fluid {
  width: min(calc(100% - clamp(2rem, 6vw, 6rem)), 90rem) !important;
  max-width: 90rem !important;
  margin-inline: auto !important;
}

.skip-link:not(:focus) {
  position: fixed !important;
  top: 0;
  left: 50% !important;
  transform: translate(-50%, -160%);
}

.skip-link:focus {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}

@media (max-width: 575.98px) {
  .container > .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
}

/* Editorial header and footer refinement. */
body .site-header {
  border-top: 4px solid var(--lf-burnt) !important;
  background: linear-gradient(180deg, #fffdf8 0%, var(--lf-cream) 100%);
  box-shadow: 0 .45rem 1.25rem rgba(36, 53, 43, .08);
}

body .site-header > .container {
  padding-top: .9rem !important;
  padding-bottom: .9rem !important;
}

body .site-header .brand {
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
  color: var(--lf-forest);
  font-size: clamp(2.1rem, 4vw, 3.15rem);
  letter-spacing: -.055em;
}

body .site-header .brand-tagline {
  max-width: none;
  margin: .25rem auto 1rem !important;
  color: var(--lf-muted);
  font-size: .76rem;
  letter-spacing: .13em;
  text-align: center;
  text-transform: uppercase;
}

body .site-header nav.navbar {
  border-top: 1px solid rgba(185, 170, 150, .75);
  padding-top: .7rem;
}

body .site-header .navbar-nav {
  align-items: center;
  gap: .25rem !important;
  justify-content: center !important;
}

body .site-header .navbar-collapse {
  justify-content: center !important;
}

body .site-header--centered-brand .navbar-collapse {
  width: auto;
  flex: 0 0 auto;
  margin-inline: auto;
}

body .site-header--centered-brand .navbar-nav {
  width: auto;
  margin-inline: auto !important;
  justify-content: center !important;
  align-items: center;
}

body .site-header .nav-link {
  position: relative;
  padding: .55rem .72rem !important;
  color: var(--lf-forest) !important;
  font-size: .8rem;
  letter-spacing: .025em;
  text-decoration: none;
}

body .site-header .nav-link:not(.nav-cta)::after {
  position: absolute;
  right: .72rem;
  bottom: .25rem;
  left: .72rem;
  height: 2px;
  content: "";
  background: var(--lf-burnt);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .18s ease;
}

body .site-header .nav-link:not(.nav-cta):hover::after,
body .site-header .nav-link:not(.nav-cta):focus-visible::after {
  transform: scaleX(1);
}

body .site-header .nav-cta {
  margin-left: .35rem;
  padding: .65rem 1rem !important;
  border: 1px solid var(--lf-forest);
  color: var(--lf-white) !important;
  background: var(--lf-burnt-dark) !important;
  border-color: var(--lf-burnt-dark) !important;
  box-shadow: 0 .2rem .55rem rgba(36, 53, 43, .14);
}

body .site-header .nav-cta:hover,
body .site-header .nav-cta:focus-visible {
  color: var(--lf-white) !important;
  background: var(--lf-forest) !important;
  border-color: var(--lf-forest) !important;
}

body .site-footer {
  border-top: 4px solid var(--lf-burnt);
  background: linear-gradient(135deg, #183c35 0%, #12312c 100%);
}

body .site-footer > .container {
  padding-top: clamp(3rem, 6vw, 5rem) !important;
  padding-bottom: clamp(2.5rem, 5vw, 4rem) !important;
}

body .site-footer .row {
  align-items: flex-start;
  --bs-gutter-y: 2.5rem;
}

body .site-footer .col-lg-5 {
  padding-right: clamp(1rem, 4vw, 4rem);
}

body .site-footer .footer-brand {
  font-size: clamp(2.2rem, 4vw, 3.15rem);
  letter-spacing: -.05em;
}

body .site-footer h2 {
  margin-bottom: .85rem;
  color: #ffe0a8;
  font-size: .76rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

body .site-footer p,
body .site-footer address {
  max-width: 46ch;
  margin-bottom: 0;
  color: #f8f1e6;
  line-height: 1.8;
}

body .site-footer address strong {
  color: var(--lf-white);
}

body .site-footer ul {
  display: grid;
  gap: .45rem;
  margin: 0;
}

body .site-footer li {
  margin: 0;
}

body .site-footer a {
  text-underline-offset: .2em;
}

body .site-footer > [data-site-copyright="true"] {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 1.2rem clamp(1rem, 5vw, 4rem);
  border-top: 1px solid rgba(255, 224, 168, .28);
  color: var(--lf-white);
  background: #102b26;
  text-align: center;
}

@media (max-width: 991.98px) {
  body .site-header nav.navbar {
    border-top: 0;
    padding-top: .2rem;
  }

  body .site-header--centered-brand .navbar-collapse {
    width: 100%;
    flex-basis: 100%;
  }

  body .site-header--centered-brand .navbar-nav {
    width: 100%;
  }

  body .site-header .nav-cta {
    margin-left: 0;
  }
}

/* Full-bleed, text-free portal artwork behind the editorial hero copy. */
.hero-section {
  background-color: var(--lf-forest);
  background-image:
    linear-gradient(90deg, rgba(10, 30, 25, .6) 0%, rgba(10, 30, 25, .2) 48%, rgba(10, 30, 25, .04) 100%),
    url("../images/hero-chrono-portal.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  isolation: isolate;
  min-height: clamp(37rem, 62vw, 52rem);
}

.hero-section .container-fluid {
  position: relative;
  z-index: 1;
}

.hero-section .hero-media {
  display: none !important;
}

.hero-section .row > .order-2 {
  background: rgba(255, 253, 248, .94);
  border-radius: var(--lf-hero-radius);
  box-shadow: var(--lf-shadow);
  margin-block: clamp(2rem, 8vw, 7rem);
  max-width: 43rem !important;
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

@media (max-width: 575.98px) {
  .hero-section .row > .order-2 {
    margin-block: 1.25rem;
    padding: 1.5rem;
  }
}

/* Application-owned focused contact layout v1. */
section.section-layout--contact-focused > .container > .row,
section.section-layout--contact-focused > .container-fluid > .row {
  display: block !important;
  width: min(100%, 44rem) !important;
  margin-inline: auto !important;
}

section.section-layout--contact-focused > .container > .row > [class*="col-"],
section.section-layout--contact-focused > .container-fluid > .row > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

section.section-layout--contact-focused :where(h2, h3, .lead) {
  text-align: center;
}

section.section-layout--contact-focused form[data-qa-contact-form] {
  width: min(100%, 40rem);
  margin: 1.75rem auto 0;
  padding: clamp(1.25rem, 4vw, 2.5rem);
  border: 1px solid var(--site-accent, currentColor);
  border-radius: 0.5rem;
}

section.section-layout--contact-focused form[data-qa-contact-form] :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
  width: 100%;
}

section.section-layout--contact-focused form[data-qa-contact-form] .form-check {
  align-items: flex-start;
  display: flex;
  gap: .5rem;
}

section.section-layout--contact-focused form[data-qa-contact-form] .form-check-input {
  accent-color: var(--lf-burnt-dark);
  appearance: auto;
  -webkit-appearance: checkbox;
  border-radius: .2rem;
  cursor: pointer;
  flex: 0 0 auto;
  height: 1.15rem;
  margin: .2rem .2rem 0 0;
  pointer-events: auto;
  padding: 0;
  width: 1.15rem;
}

section.section-layout--contact-focused form[data-qa-contact-form] .form-check-input:focus-visible {
  outline: 3px solid var(--lf-focus);
  outline-offset: 2px;
}

section.section-layout--contact-focused form[data-qa-contact-form] .form-check-label {
  cursor: pointer;
  display: block;
  margin-bottom: 0;
}

section.section-layout--contact-focused form[data-qa-contact-form] label {
  display: block;
  margin-bottom: 0.45rem;
}

section.section-layout--contact-focused form[data-qa-contact-form] > .row,
section.section-layout--contact-focused form[data-qa-contact-form] .form-row {
  display: block !important;
}

section.section-layout--contact-focused form[data-qa-contact-form] > .row > [class*="col-"],
section.section-layout--contact-focused form[data-qa-contact-form] .form-row > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

section.section-layout--contact-focused form[data-qa-contact-form] :where(button[type="submit"], input[type="submit"]) {
  width: 100%;
  min-height: 3.25rem;
  margin-top: 0.75rem;
}

@media (max-width: 575.98px) {
  section.section-layout--contact-focused form[data-qa-contact-form] {
    padding: 1.25rem;
  }
}

@media (max-width: 575.98px) {
  .container > .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
}
