/* VFORM — consolidated stylesheet */
/* ============================================================
   CSS VARIABLES (:root)
   ============================================================ */
/* CONFLICT: --color-border-subtle defined differently in index.html and insight-event.html — using index.html value */
/* CONFLICT: --color-text-inverse-dim defined differently in index.html and insight-event.html — using index.html value */
/* CONFLICT: --container-max defined differently in index.html and insight-event.html — using index.html value */
:root {
  --border-radius-lg: 4px;
  --border-radius-md: 2px;
  --color-accent: rgb(170, 138, 50);
  --color-accent-dim: rgb(115, 87, 50);
  --color-accent-light: rgba(201, 168, 76, 0.10);
  --color-action-clear: #8B2222;
  --color-action-clear-hover: #6E1A1A;
  --color-action-clear-muted: rgba(139, 34, 34, 0.12);
  --color-bg-dark: #0C1C2E;
  --color-bg-dark-surface: #132740;
  --color-bg-elevated: #F2EFE8;
  --color-bg-primary: #FAFAF8;
  --color-bg-subtle: #F2EFE8;
  --color-bg-surface: #FFFFFF;
  --color-border-accent: rgba(201, 168, 76, 0.30);
  --color-border-dark: rgba(247, 237, 211, 0.10);
  --color-border-default: rgba(12, 28, 46, 0.12);
  --color-border-subtle: rgba(12, 28, 46, 0.07);
  --color-image-border: #E0DED8;
  --color-image-placeholder: #F5F4F0;
  --color-promap-strip: rgba(122, 155, 190, 0.08);
  --color-text-danger: #9B2C2C;
  --color-text-inverse: rgb(246, 238, 218);
  --color-text-inverse-dim: rgba(247, 237, 211, 0.55);
  --color-text-primary: rgb(6, 26, 49);
  --color-text-secondary: rgb(29, 62, 98);
  --color-text-tertiary: #7A9BBE;
  --container-max: 80rem;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --font-body: 'Syne', -apple-system, sans-serif;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-editorial: Georgia, 'Times New Roman', Times, serif;
  --insights-scroll-offset: 7.5rem;
  --projects-scroll-offset: 7.5rem;
  --site-nav-offset: 4.5rem;
  --space-card-pad: 2rem;
  --space-grid-gap: 2rem;
  --space-section-y: 7rem;
  --trend-down: #9B2C2C;
  --trend-stable: #7A9BBE;
  --trend-up: #1F6B4A;
}

/* ============================================================
   GLOBAL RESET
   ============================================================ */
*,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      border-radius: 0;
    }

html {
      scroll-behavior: smooth;
      overflow-x: hidden;
    }

body {
      font-family: var(--font-body);
      font-size: 1rem;
      font-weight: 400;
      line-height: 1.65;
      color: var(--color-text-primary);
      background: var(--color-bg-primary);
      -webkit-font-smoothing: antialiased;
    }

img {
      max-width: 100%;
      display: block;
      border-radius: 0;
    }

a {
      color: inherit;
      text-decoration: none;
    }

ul {
      list-style: none;
    }

button {
      font: inherit;
      border-radius: 0;
      border: none;
      background: none;
      cursor: pointer;
    }

/* ============================================================
   SHARED COMPONENTS
   ============================================================ */
/* CONFLICT: .nav defined differently in index.html and services.html, projects.html, insights.html, contact.html, insight-event.html — using index.html value */
/* CONFLICT: .container defined differently in insights.html and insight-event.html — using index.html value */
/* CONFLICT: .btn defined differently in index.html and services.html, projects.html, insights.html, contact.html, insight-event.html — using index.html value */
/* CONFLICT: .btn-primary defined differently in index.html and services.html, projects.html, insights.html, contact.html, insight-event.html — using index.html value */
.container {
      width: 100%;
      max-width: var(--container-max);
      margin-left: auto;
      margin-right: auto;
      padding-left: 2rem;
      padding-right: 2rem;
    }

.nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      width: 100%;
      z-index: 100;
      height: 4.5rem;
      display: flex;
      align-items: center;
      border-bottom: 1px solid transparent;
      background: transparent;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      transition: background 1s var(--ease-out), border-color 1s var(--ease-out), backdrop-filter 1s var(--ease-out), transform 0.35s var(--ease-out);
    }

.nav.nav-hidden {
      transform: translateY(-100%);
    }

.nav.scrolled,
    .nav.open {
      background: rgba(250, 250, 248, 0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom-color: var(--color-border-subtle);
    }

.nav-inner {
      display: flex;
      align-items: center;
      width: 100%;
      max-width: var(--container-max);
      margin: 0 auto;
      padding: 0 2rem;
    }

.nav-logo {
      display: inline-flex;
      align-items: center;
      flex-shrink: 0;
      line-height: 0;
    }

.nav-logo img {
      display: block;
      height: 2.5rem;
      width: auto;
      max-width: 9rem;
      object-fit: contain;
    }

.nav-links {
      flex: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 2rem;
    }

.nav-links > li {
      display: flex;
      align-items: center;
    }

.nav-links > li > a {
      display: inline-flex;
      align-items: center;
      line-height: 1;
      font-size: 0.8125rem;
      font-weight: 400;
      color: var(--color-text-secondary);
      padding-bottom: 0.35rem;
      border-bottom: 2px solid transparent;
      transition: color 0.3s ease, border-color 0.3s ease;
    }

.nav-links > li > a:hover,
    .nav-links > li > a.is-active {
      color: var(--color-text-primary);
    }

.nav-links > li > a.is-active {
      border-bottom-color: var(--color-accent);
    }

.nav-item--dropdown {
      position: relative;
    }

.nav-dropdown__trigger {
      gap: 0.35rem;
    }

.nav-dropdown__chevron {
      display: block;
      flex-shrink: 0;
      width: 0.65rem;
      height: 0.65rem;
      opacity: 0.55;
      transition: transform 0.2s ease;
    }

.nav-item--dropdown:hover .nav-dropdown__chevron {
      transform: rotate(180deg);
    }

.nav-item--dropdown::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: 100%;
      height: 0.625rem;
    }

.nav-dropdown {
      position: absolute;
      top: calc(100% + 0.5rem);
      left: 50%;
      transform: translateX(-50%) translateY(-4px);
      min-width: 10.5rem;
      margin: 0;
      padding: 0.375rem 0;
      list-style: none;
      background: rgba(250, 250, 248, 0.98);
      -webkit-backdrop-filter: blur(12px);
      backdrop-filter: blur(12px);
      border: 0.5px solid var(--color-border-subtle);
      box-shadow: 0 12px 32px rgba(6, 26, 49, 0.1);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition:
        opacity 0.2s var(--ease-out),
        visibility 0.2s var(--ease-out),
        transform 0.2s var(--ease-out);
      z-index: 120;
    }

.nav-item--dropdown:hover .nav-dropdown,
    .nav-item--dropdown:focus-within .nav-dropdown {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }

.nav-dropdown a {
      display: block;
      padding: 0.5rem 1.125rem;
      font-size: 0.8125rem;
      color: var(--color-text-secondary);
      transition: color 0.2s ease, background 0.2s ease;
    }

.nav-dropdown a:hover,
    .nav-dropdown a:focus-visible {
      color: var(--color-text-primary);
      background: var(--color-bg-elevated);
    }

.nav-cta-wrap {
      flex-shrink: 0;
    }

.icon-arrow {
      display: inline-block;
      vertical-align: middle;
      margin-left: 0.35rem;
    }

.nav-toggle {
      display: none;
      width: 2.5rem;
      height: 2.5rem;
      align-items: center;
      justify-content: center;
      color: var(--color-accent);
      margin-left: auto;
    }

.nav-toggle span,
    .nav-toggle span::before,
    .nav-toggle span::after {
      display: block;
      width: 1.25rem;
      height: 2px;
      background: currentColor;
      position: relative;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }

.nav-toggle span::before,
    .nav-toggle span::after {
      content: '';
      position: absolute;
      left: 0;
    }

.nav-toggle span::before {
      top: -6px;
    }

.nav-toggle span::after {
      top: 6px;
    }

.nav.open .nav-toggle span {
      background: transparent;
    }

.nav.open .nav-toggle span::before {
      transform: translateY(6px) rotate(45deg);
    }

.nav.open .nav-toggle span::after {
      transform: translateY(-6px) rotate(-45deg);
    }

.btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      font-family: var(--font-body);
      font-size: 0.8125rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 1rem 2rem;
      border: 1px solid transparent;
      transition: all 0.3s ease;
      border-radius: 0;
    }

.btn-primary {
      background: var(--color-text-primary);
      color: var(--color-bg-primary);
      border-color: transparent;
    }

.btn-primary:hover {
      background: var(--color-text-secondary);
      gap: 0.65rem;
    }

.btn-ghost {
      background: transparent;
      color: var(--color-accent);
      border-color: var(--color-border-accent);
    }

.btn-ghost:hover {
      background: var(--color-accent-light);
      gap: 0.65rem;
    }

.btn-ghost-inverse {
      background: transparent;
      color: var(--color-text-inverse);
      border-color: rgba(247, 237, 211, 0.25);
    }

.btn-ghost-inverse:hover {
      border-color: rgba(247, 237, 211, 0.6);
      gap: 0.65rem;
    }

.btn-white {
      background: var(--color-accent);
      color: var(--color-bg-dark);
      border-color: transparent;
    }

.btn-white:hover {
      background: var(--color-accent-dim);
      gap: 0.65rem;
    }

.btn-nav {
      padding: 0.625rem 1.25rem;
    }

.text-link {
      font-family: var(--font-body);
      font-size: 0.8125rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--color-accent);
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      transition: gap 0.3s ease, color 0.3s ease;
    }

.text-link:hover {
      color: var(--color-accent-dim);
      gap: 0.5rem;
    }

.eyebrow {
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: 1.25rem;
    }

.section-title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(2.5rem, 5vw, 4rem);
      line-height: 1;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      margin-bottom: 1.5rem;
    }

.fade-up {
      opacity: 0;
      transform: translateY(24px);
      transition:
        opacity 0.6s var(--ease-out),
        transform 0.6s var(--ease-out),
        box-shadow 0.25s var(--ease-out);
    }

.fade-up.visible {
      opacity: 1;
      transform: translateY(0);
    }

.stagger-children > .fade-up:nth-child(1) {
      transition:
        opacity 0.6s var(--ease-out),
        transform 0.6s var(--ease-out),
        box-shadow 0.25s var(--ease-out);
    }

.stagger-children > .fade-up:nth-child(2) {
      transition:
        opacity 0.6s var(--ease-out) 0.1s,
        transform 0.6s var(--ease-out) 0.1s,
        box-shadow 0.25s var(--ease-out);
    }

.stagger-children > .fade-up:nth-child(3) {
      transition:
        opacity 0.6s var(--ease-out) 0.2s,
        transform 0.6s var(--ease-out) 0.2s,
        box-shadow 0.25s var(--ease-out);
    }

.stagger-children > .fade-up:nth-child(4) {
      transition:
        opacity 0.6s var(--ease-out) 0.3s,
        transform 0.6s var(--ease-out) 0.3s,
        box-shadow 0.25s var(--ease-out);
    }

.stagger-children > .fade-up:nth-child(5) {
      transition:
        opacity 0.6s var(--ease-out) 0.4s,
        transform 0.6s var(--ease-out) 0.4s,
        box-shadow 0.25s var(--ease-out);
    }

.stagger-children > .fade-up:nth-child(6) {
      transition:
        opacity 0.6s var(--ease-out) 0.5s,
        transform 0.6s var(--ease-out) 0.5s,
        box-shadow 0.25s var(--ease-out);
    }

.scroll-anchor {
      display: block;
      position: relative;
      top: -5.5rem;
      height: 0;
      width: 0;
      overflow: hidden;
    }

.footer {
      background: var(--color-bg-dark);
      border-top: 1px solid var(--color-border-dark);
      padding: 2.75rem 0 0;
    }

.footer-grid {
      display: grid;
      grid-template-columns: 1.25fr repeat(5, minmax(0, 1fr));
      gap: 1.5rem 1.25rem;
      padding-bottom: 2rem;
      align-items: start;
    }

.footer-brand {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
    }

.footer-brand .logo {
      font-family: var(--font-body);
      font-size: 1.125rem;
      font-weight: 600;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: 0.75rem;
    }

.footer-brand p {
      font-size: 0.875rem;
      color: var(--color-text-inverse-dim);
      margin-bottom: 0.35rem;
      max-width: 14rem;
      line-height: 1.5;
    }

.footer-meta {
      font-size: 0.75rem;
      color: var(--color-text-inverse-dim);
      margin-bottom: 1rem;
    }

.footer-social {
      display: flex;
      gap: 1rem;
      justify-content: flex-start;
    }

.footer-social a {
      color: var(--color-text-inverse);
      opacity: 0.7;
      transition: opacity 0.3s ease;
    }

.footer-social a:hover {
      opacity: 1;
    }

.footer-col h5 {
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--color-text-inverse);
      margin-bottom: 0.65rem;
    }

.footer-col ul {
      list-style: none;
    }

.footer-col ul li {
      margin-bottom: 0.4rem;
    }

.footer-col a {
      font-size: 0.8125rem;
      font-weight: 400;
      color: var(--color-text-inverse-dim);
      transition: color 0.3s ease;
      text-decoration: none;
      line-height: 1.45;
    }

.footer-col a:hover,
    .footer-col a.is-active {
      color: var(--color-text-inverse);
    }

.footer-bar {
      border-top: 1px solid var(--color-border-dark);
      padding: 1.5rem 2rem;
      text-align: center;
      font-size: 0.75rem;
      color: var(--color-text-inverse-dim);
    }

.mobile-panel {
      display: none;
    }

@media (max-width: 900px) {
      .nav-links,
      .nav-cta-wrap {
        display: none;
      }

      .nav-toggle {
        display: flex;
      }

      .mobile-panel {
        display: block;
        position: fixed;
        inset: 4.5rem 0 0;
        background: var(--color-bg-surface);
        padding: 2rem;
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        transition: transform 0.35s var(--ease-out), opacity 0.35s ease, visibility 0.35s;
        z-index: 99;
        border-top: 1px solid var(--color-border-subtle);
      }

      .nav.open .mobile-panel {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
      }

      .mobile-panel ul {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        margin-bottom: 2rem;
      }

      .mobile-panel a {
        font-size: 1rem;
        color: var(--color-text-secondary);
      }

      .mobile-panel .btn-primary {
        width: 100%;
      }
    }

.btn-carousel-ghost {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-family: var(--font-body);
      font-size: 0.8125rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 0.75rem 1.25rem;
      color: var(--color-text-inverse);
      border: 1px solid var(--color-border-dark);
      background: transparent;
      transition: border-color 0.3s ease, background 0.3s ease, gap 0.3s ease;
    }

.btn-carousel-ghost:hover {
      border-color: rgba(247, 237, 211, 0.6);
      background: rgba(247, 237, 211, 0.08);
      gap: 0.5rem;
    }

@media (max-width: 900px) {
      .nav-links, .nav-cta-wrap { display: none; }
      .nav-toggle { display: flex; }

      .mobile-panel {
        display: block;
        position: fixed;
        inset: 4.5rem 0 0;
        background: var(--color-bg-surface);
        padding: 2rem;
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        transition: transform 0.35s var(--ease-out), opacity 0.35s ease, visibility 0.35s;
        z-index: 99;
        border-top: 1px solid var(--color-border-subtle);
      }

      .nav.open .mobile-panel {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
      }

      .mobile-panel ul {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        margin-bottom: 2rem;
      }

      .mobile-panel a { font-size: 1rem; color: var(--color-text-secondary); }
      .mobile-panel .btn-primary { width: 100%; }

      .service-row__inner,
      .service-row--reverse .service-row__inner {
        flex-direction: column;
        min-height: 0;
      }

      .service-media,
      .service-content {
        flex: 0 0 auto;
        width: 100%;
      }

      .service-media {
        min-height: 16rem;
        aspect-ratio: 4 / 3;
      }

      .service-content,
      .service-row--reverse .service-content {
        padding: 2.5rem 2rem 3rem;
      }

      .service-num-wrap { display: none; }

      .footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .footer-brand {
        grid-column: 1 / -1;
      }
    }

.btn-outline {
      background: transparent;
      color: var(--color-text-primary);
      border: 1px solid var(--color-text-primary);
      padding: 0.875rem 1.75rem;
    }

.btn-outline:hover {
      color: var(--color-accent);
      border-color: var(--color-accent);
    }

@media (max-width: 900px) {
      .nav-links, .nav-cta-wrap { display: none; }
      .nav-toggle { display: flex; }

      .mobile-panel {
        display: block;
        position: fixed;
        inset: 4.5rem 0 0;
        background: var(--color-bg-surface);
        padding: 2rem;
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        transition: transform 0.35s var(--ease-out), opacity 0.35s ease, visibility 0.35s;
        z-index: 99;
        border-top: 1px solid var(--color-border-subtle);
      }

      .nav.open .mobile-panel {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
      }

      .mobile-panel ul {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        margin-bottom: 2rem;
      }

      .mobile-panel a { font-size: 1rem; color: var(--color-text-secondary); }
      .mobile-panel .btn-primary { width: 100%; }

      .footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .footer-brand {
        grid-column: 1 / -1;
      }
    }

@media (max-width: 600px) {
      .container { padding-left: 1.25rem; padding-right: 1.25rem; }
      .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

@media (max-width: 480px) {
      .footer-grid { grid-template-columns: 1fr; }
    }

@media (max-width: 600px) {
      .container { padding-left: 1.25rem; padding-right: 1.25rem; }
      .footer-grid { grid-template-columns: 1fr; }
    }

.fade-up[data-reveal-delay="120"] { transition-delay: 0.12s; }

.fade-up[data-reveal-delay="200"] { transition-delay: 0.2s; }

* { box-sizing: border-box; margin: 0; padding: 0; }

.footer-col a:hover { color: var(--color-text-inverse); }

@media (max-width: 600px) {
      .container { width: min(100% - 2rem, var(--container-max)); }
      .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

/* ============================================================
   PAGE: Index
   ============================================================ */
.section-intro {
      margin-bottom: 3.5rem;
      max-width: 36rem;
    }

.hero {
      position: relative;
      min-height: 100vh;
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: calc(4.5rem + 6rem) 0 5rem;
      background-color: var(--color-bg-primary);
      overflow-x: clip;
      overflow-y: hidden;
    }

.hero-media {
      position: absolute;
      inset: 0;
      z-index: 0;
      overflow: hidden;
    }

.hero-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

.hero-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(
          90deg,
          rgba(250, 250, 248, 0.58) 0%,
          rgba(250, 250, 248, 0.26) 40%,
          rgba(250, 250, 248, 0.05) 56%,
          transparent 68%
        ),
        linear-gradient(
          to bottom,
          transparent 0%,
          transparent 52%,
          rgba(250, 250, 248, 0.4) 80%,
          rgba(250, 250, 248, 0.88) 100%
        );
      pointer-events: none;
    }

.hero::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 6rem;
      z-index: 1;
      background: linear-gradient(to bottom, transparent, var(--color-bg-primary));
      pointer-events: none;
    }

.hero-pattern {
      position: absolute;
      inset: 0;
      z-index: 2;
      opacity: 0.04;
      pointer-events: none;
    }

@media (prefers-reduced-motion: reduce) {
      .hero-video {
        display: none;
      }

      .hero-media {
        background: url('../assets/images/hero/hero-main.avif') center / cover no-repeat;
      }
    }

.hero-pattern svg {
      width: 100%;
      height: 100%;
    }

.hero .hero-inner {
      position: relative;
      z-index: 3;
      margin-left: 0;
      margin-right: auto;
      padding-left: 1.25rem;
    }

.hero-headline {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(2.5rem, 5vw, 5.25rem);
      line-height: 0.95;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      margin-bottom: 1.35rem;
    }

@media (min-width: 900px) {
      .hero-headline {
        font-size: 5.25rem;
      }
    }

.hero-headline span {
      display: block;
    }

.hero-sub {
      font-size: 1.0625rem;
      font-weight: 400;
      line-height: 1.7;
      color: var(--color-text-secondary);
      max-width: 27rem;
      margin-bottom: 2.25rem;
    }

.hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
    }

.hero-actions .btn-ghost {
      background: rgba(250, 250, 248, 0.72);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }

.hero-actions .btn-ghost:hover {
      background: rgba(250, 250, 248, 0.88);
    }

.glance-sticky {
      position: absolute;
      top: 50%;
      right: 0;
      z-index: 4;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      width: 6.875rem;
      gap: 0.4rem;
      padding: 0;
      margin: 0;
      overflow: visible;
      pointer-events: none;
      transform: translateY(-50%);
      opacity: 0;
      transition: opacity 350ms ease-out;
    }

.glance-sticky.panel-visible {
      opacity: 1;
      transform: translateY(-50%);
    }

.glance-tab {
      pointer-events: auto;
      display: flex;
      align-items: center;
      gap: 0.4rem;
      width: calc(100% + 1.25rem);
      box-sizing: border-box;
      padding: 0.45rem 1.5rem 0.45rem 0.75rem;
      margin-right: -1.25rem;
      text-decoration: none;
      cursor: pointer;
      background: rgba(252, 250, 244, 0.85);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      border: 0.5px solid var(--color-border-default);
      border-right: none;
      border-radius: 0;
      box-shadow:
        -3px 2px 10px rgba(6, 26, 49, 0.07),
        -1px 0 0 rgba(201, 168, 76, 0.12);
      transition:
        background 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease;
    }

.glance-tab:hover,
    .glance-tab:focus-visible {
      background: rgba(255, 253, 248, 0.92);
      box-shadow:
        -5px 3px 14px rgba(6, 26, 49, 0.1),
        -1px 0 0 rgba(201, 168, 76, 0.22);
      transform: translateX(-3px);
    }

.glance-tab__icon {
      flex-shrink: 0;
      width: 13px;
      height: 13px;
      color: var(--color-accent);
    }

.glance-tab__icon svg {
      display: block;
      width: 13px;
      height: 13px;
    }

.glance-tab__icon--active {
      color: #1F6B4A;
    }

.glance-tab__label {
      flex: 1;
      min-width: 0;
      font-size: 12.5px;
      font-weight: 500;
      color: var(--color-text-primary);
      line-height: 1.1;
      text-align: center;
      white-space: normal;
    }

.glance-tab__arrow {
      flex-shrink: 0;
      font-size: 11px;
      line-height: 1;
      color: var(--color-text-tertiary);
      transition: transform 200ms ease;
    }

.glance-tab:hover .glance-tab__arrow,
    .glance-tab:focus-visible .glance-tab__arrow {
      transform: translateX(2px);
    }

@media (max-width: 767px) {
      .glance-sticky {
        display: none;
      }
    }

.trust-strip {
      background: var(--color-bg-surface);
      border-top: 1px solid var(--color-border-subtle);
      border-bottom: 1px solid var(--color-border-subtle);
      padding: 2.5rem 0;
    }

.trust-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 0.75rem 1rem;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
    }

.trust-row .pipe {
      color: var(--color-border-default);
      font-weight: 400;
    }

.stats-section {
      background: var(--color-bg-elevated);
      padding: 6rem 0;
    }

.stats-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-grid-gap);
    }

.stat-card {
      border-left: 1px solid var(--color-border-accent);
      padding-left: 2rem;
    }

.stat-num {
      font-family: var(--font-display);
      font-size: 3.5rem;
      font-weight: 400;
      line-height: 1;
      color: var(--color-accent);
      margin-bottom: 0.5rem;
    }

.stat-label {
      font-size: 0.875rem;
      font-weight: 400;
      color: var(--color-text-secondary);
      letter-spacing: 0.04em;
    }

.tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 1.5rem;
      margin-bottom: 2.5rem;
    }

.tab {
      font-family: var(--font-body);
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--color-text-secondary);
      padding: 0 0 0.35rem;
      border-bottom: 2px solid transparent;
      background: none;
      cursor: pointer;
      transition: color 0.3s ease, border-color 0.3s ease;
    }

.tab:hover,
    .tab.active {
      color: var(--color-accent);
    }

.tab.active {
      border-bottom-color: var(--color-accent);
    }

.carousel-slide {
      --slide-focus: 0;
      --slide-scale: 0.75;
      --slide-dim: 0.45;
      --slide-z: 1;
      flex: 0 0 var(--carousel-slot, 26rem);
      width: var(--carousel-slot, 26rem);
      display: flex;
      justify-content: center;
      align-items: center;
      scroll-snap-align: center;
      scroll-snap-stop: always;
      z-index: var(--slide-z);
      opacity: calc(0.52 + var(--slide-focus) * 0.48);
      transition: none;
    }

.carousel-slide.is-filtered {
      display: none;
    }

.carousel-slide-inner {
      position: relative;
      width: var(--carousel-card-w, 23rem);
      height: var(--carousel-card-h, 28rem);
      overflow: hidden;
      border: 1px solid var(--color-border-subtle);
      transform: scale(var(--slide-scale)) translateY(calc((1 - var(--slide-focus)) * 14px));
      transform-origin: center center;
      will-change: transform;
      box-shadow: 0 12px 40px rgba(12, 28, 46, 0.1);
      transition: none;
    }

.carousel-slide-media {
      position: absolute;
      inset: 0;
      background-color: var(--color-bg-elevated);
      background-image: var(--slide-bg, linear-gradient(160deg, var(--color-bg-subtle) 0%, var(--color-bg-elevated) 100%));
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
    }

.carousel-slide-media::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to top,
        rgba(12, 28, 46, 0.92) 0%,
        rgba(12, 28, 46, 0.78) 32%,
        rgba(12, 28, 46, 0.45) 58%,
        transparent 82%
      );
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.35s ease;
    }

.carousel-slide.is-centered:hover .carousel-slide-media::after {
      opacity: 1;
    }

.carousel-slide.is-centered:hover .carousel-slide-dim {
      opacity: 0.62;
      transition: opacity 0.35s ease;
    }

.carousel-slide-dim {
      position: absolute;
      inset: 0;
      background: rgba(12, 28, 46, 0.45);
      pointer-events: none;
      opacity: var(--slide-dim);
      transition: none;
      z-index: 1;
    }

.carousel-slide-hover {
      position: absolute;
      left: 0;
      right: 0;
      bottom: var(--carousel-cta-reserve, 5.5rem);
      z-index: 3;
      padding: 1.25rem 1.5rem 0.5rem;
      transform: translateY(100%);
      opacity: 0;
      transition: transform 0.4s var(--ease-out), opacity 0.4s var(--ease-out);
      pointer-events: none;
    }

.carousel-slide.is-centered:hover .carousel-slide-hover {
      transform: translateY(0);
      opacity: 1;
    }

.carousel-slide-hover h3 {
      font-family: var(--font-display);
      font-size: 1.375rem;
      font-weight: 400;
      line-height: 1.15;
      color: var(--color-text-inverse);
      margin-bottom: 0.35rem;
    }

.carousel-slide-hover p {
      font-size: 0.8125rem;
      font-weight: 400;
      line-height: 1.55;
      color: var(--color-text-inverse);
      margin-bottom: 0.35rem;
    }

.carousel-slide-hover .carousel-slide-meta {
      font-size: 0.75rem;
      font-weight: 400;
      letter-spacing: 0.04em;
      color: var(--color-text-inverse-dim);
    }

.carousel-slide-cta {
      position: absolute;
      left: 50%;
      bottom: 1.75rem;
      transform: translateX(-50%) translateY(0.5rem);
      z-index: 4;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
      white-space: nowrap;
    }

.carousel-slide.is-centered .carousel-slide-cta {
      opacity: 1;
      pointer-events: auto;
    }

.service-card {
      position: relative;
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      padding: 2.5rem 2rem;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }

.service-card:hover {
      box-shadow: 0 8px 24px rgba(12, 28, 46, 0.08);
    }

.service-icon {
      width: 3rem;
      height: 3rem;
      margin-bottom: 1.5rem;
      color: var(--color-accent);
    }

.service-icon svg {
      width: 100%;
      height: 100%;
    }

.service-card h3 {
      font-family: var(--font-display);
      font-size: 1.625rem;
      font-weight: 400;
      line-height: 1.1;
      color: var(--color-text-primary);
      margin-bottom: 1rem;
    }

.service-card p {
      font-size: 1rem;
      font-weight: 400;
      line-height: 1.65;
      color: var(--color-text-primary);
      flex: 1;
      margin-bottom: 1.5rem;
    }

.service-card-bar {
      position: absolute;
      bottom: 0;
      left: 0;
      height: 2px;
      width: 0;
      background: var(--color-accent);
      transition: width 0.3s var(--ease-out);
    }

.service-card:hover .service-card-bar {
      width: 100%;
    }

.process-section {
      background: var(--color-bg-surface);
      padding: var(--space-section-y) 0;
    }

.process-track {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      position: relative;
      margin-top: 2rem;
      padding-top: 0.5rem;
    }

.process-track::before {
      content: '';
      position: absolute;
      top: 2.75rem;
      left: 0;
      right: 0;
      height: 1px;
      background: var(--color-accent);
      opacity: 0.35;
      z-index: 0;
    }

.process-step {
      position: relative;
      padding-right: 1.5rem;
      z-index: 1;
    }

.process-num {
      font-family: var(--font-display);
      font-size: 4.5rem;
      font-weight: 400;
      line-height: 1;
      color: rgba(201, 168, 76, 0.18);
      margin-bottom: 1rem;
    }

.process-step h4 {
      font-family: var(--font-body);
      font-size: 1.125rem;
      font-weight: 500;
      color: var(--color-text-primary);
      margin-bottom: 0.5rem;
    }

.process-step p {
      font-size: 0.9375rem;
      font-weight: 400;
      color: var(--color-text-secondary);
      line-height: 1.65;
    }

.cta-banner {
      background: var(--color-bg-dark);
      padding: var(--space-section-y) 0;
      text-align: center;
    }

.cta-banner h2 {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(2rem, 4vw, 3.5rem);
      line-height: 1.05;
      color: var(--color-text-inverse);
      max-width: 48rem;
      margin: 0 auto 1.25rem;
    }

@media (min-width: 768px) {
      .cta-banner h2 {
        font-size: 3.5rem;
      }
    }

.cta-banner .sub {
      font-size: 1.125rem;
      font-weight: 400;
      line-height: 1.75;
      color: var(--color-text-inverse-dim);
      max-width: 32rem;
      margin: 0 auto 2.5rem;
    }

.cta-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      justify-content: center;
    }

html.main-nav-hidden {
      --site-nav-offset: 0;
    }

@keyframes heroLineIn {
      to { width: 3.75rem; }
    }

@keyframes aboutNavUnderline {
      to { transform: scaleX(1); }
    }

.pillar-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-grid-gap);
      margin-bottom: 2.5rem;
    }

.pillar-card {
      position: relative;
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      padding: 2.5rem 2rem;
      display: flex;
      flex-direction: column;
      transition: box-shadow 0.25s var(--ease-out);
      overflow: hidden;
    }

.pillar-card:hover {
      box-shadow: 0 8px 24px rgba(12, 28, 46, 0.08);
    }

.pillar-card h3 {
      font-family: var(--font-display);
      font-size: 1.625rem;
      font-weight: 400;
      line-height: 1.1;
      color: var(--color-text-primary);
      margin-bottom: 1rem;
    }

.pillar-card p {
      font-size: 1rem;
      font-weight: 400;
      line-height: 1.65;
      color: var(--color-text-secondary);
      flex: 1;
    }

.vision-mission-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.5rem;
    }

.vision-mission-col {
      padding: 0 1.75rem;
    }

.vision-mission-col:first-child {
      padding-left: 0;
    }

.vision-mission-col:last-child {
      border-left: 1px solid var(--color-border-dark);
      padding-right: 0;
    }

.vision-mission-icon {
      width: 2.75rem;
      height: 2.75rem;
      margin-bottom: 0.75rem;
      color: var(--color-accent);
    }

.vision-mission-icon svg {
      display: block;
      width: 100%;
      height: 100%;
    }

.vision-mission-label {
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: 0.625rem;
    }

.vision-mission-text {
      font-family: var(--font-display);
      font-size: clamp(1.0625rem, 1.45vw, 1.25rem);
      font-weight: 400;
      line-height: 1.62;
      letter-spacing: 0.01em;
      color: var(--color-text-inverse);
      max-width: 36rem;
    }

.promap-block {
      display: grid;
      grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
      gap: 3rem;
      align-items: start;
    }

.promap-heading-col .section-title {
      max-width: 20rem;
      margin-bottom: 0;
    }

.promap-panel {
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      border-left: 2px solid var(--color-accent);
      padding: 2.5rem 2rem;
    }

.promap-panel .btn {
      margin-top: 2rem;
    }

.photo-placeholder {
      width: 100%;
      aspect-ratio: 3 / 4;
      object-fit: cover;
      object-position: center top;
      border: 1px solid var(--color-border-subtle);
      background: var(--color-bg-elevated);
    }

.people-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: var(--space-grid-gap);
    }

.people-card {
      position: relative;
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }

.people-card:hover {
      box-shadow: 0 8px 24px rgba(12, 28, 46, 0.08);
    }

.people-card-photo {
      width: 100%;
      aspect-ratio: 1;
      object-fit: cover;
      object-position: center top;
      border-bottom: 1px solid var(--color-border-subtle);
      flex-shrink: 0;
      background: var(--color-bg-elevated);
      transition: transform 0.25s var(--ease-out);
    }

.people-card:hover .people-card-photo {
      transform: scale(1.03);
    }

.people-card-body {
      padding: 1.5rem 1.5rem 1.75rem;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

.people-card h3 {
      font-family: var(--font-display);
      font-size: 1.25rem;
      font-weight: 400;
      line-height: 1.2;
      color: var(--color-text-primary);
      margin-bottom: 0.5rem;
    }

.people-card-credentials {
      font-size: 0.75rem;
      font-weight: 500;
      line-height: 1.5;
      letter-spacing: 0.02em;
      color: var(--color-accent);
      margin-bottom: 0.5rem;
    }

.people-card-title {
      font-size: 0.875rem;
      font-weight: 400;
      line-height: 1.5;
      color: var(--color-text-secondary);
      margin-top: auto;
    }

.people-card:hover .service-card-bar {
      width: 100%;
    }

.service-row[id] {
      scroll-margin-top: var(--services-scroll-offset, 7.5rem);
    }

.service-row {
      border-bottom: 1px solid var(--color-border-subtle);
      opacity: 0;
      transform: translateY(24px);
      animation: rowFadeIn 0.75s var(--ease-out) forwards;
    }

.service-row:nth-child(1) { animation-delay: 0.1s; }

.service-row:nth-child(2) { animation-delay: 0.2s; }

.service-row:nth-child(3) { animation-delay: 0.3s; }

.service-row:nth-child(4) { animation-delay: 0.4s; }

.service-row:nth-child(5) { animation-delay: 0.5s; }

.service-row:nth-child(6) { animation-delay: 0.6s; }

.service-row:nth-child(7) { animation-delay: 0.7s; }

@keyframes rowFadeIn {
      to { opacity: 1; transform: translateY(0); }
    }

.service-row--promap {
      background: var(--color-promap-strip);
    }

.service-row__inner {
      display: flex;
      align-items: stretch;
      min-height: 28rem;
    }

.service-row--reverse .service-row__inner {
      flex-direction: row-reverse;
    }

.service-media {
      flex: 0 0 45%;
      position: relative;
      overflow: hidden;
      min-height: 20rem;
    }

.service-media__line {
      position: absolute;
      top: 0;
      left: 0;
      height: 2px;
      width: 0;
      background: var(--color-accent);
      z-index: 3;
      transition: width 0.6s var(--ease-out);
    }

.service-row.is-visible .service-media__line {
      width: 100%;
    }

.service-media__frame {
      position: absolute;
      inset: 0;
    }

.service-media__inner {
      position: absolute;
      inset: 0;
      overflow: hidden;
      background: var(--color-image-placeholder);
      transition: transform 0.25s var(--ease-out);
    }

.service-media__img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }

.service-row:hover .service-media__inner {
      transform: scale(1.02);
    }

.service-content {
      flex: 0 0 55%;
      padding: 3.5rem 3.5rem 3.5rem 3rem;
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

.service-row--reverse .service-content {
      padding: 3.5rem 3rem 3.5rem 3.5rem;
    }

.service-num-wrap {
      position: absolute;
      top: 1.5rem;
      left: 2rem;
      display: flex;
      align-items: baseline;
      gap: 1rem;
      z-index: 0;
      pointer-events: none;
    }

.service-row--reverse .service-num-wrap {
      left: 2.5rem;
    }

.service-num {
      font-family: var(--font-display);
      font-size: clamp(5rem, 11vw, 9rem);
      font-weight: 400;
      line-height: 0.85;
      color: rgba(12, 28, 46, 0.06);
      animation: serviceNumFloat 6s ease-in-out infinite;
    }

@keyframes serviceNumFloat {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-8px); }
    }

.service-badge {
      font-size: 0.625rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-text-secondary);
      border: 1px solid var(--color-border-default);
      background: rgba(255, 255, 255, 0.6);
      padding: 0.35rem 0.65rem;
    }

.service-title {
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: 1rem;
      position: relative;
      z-index: 1;
    }

.service-tagline {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 500;
      font-size: clamp(1.75rem, 3.5vw, 2.625rem);
      line-height: 1.2;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      margin-bottom: 1.5rem;
      position: relative;
      z-index: 1;
      opacity: 0;
      transform: translateX(-16px);
      transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
    }

.service-row.is-visible .service-tagline {
      opacity: 1;
      transform: translateX(0);
    }

.service-body {
      font-size: 1rem;
      line-height: 1.75;
      color: var(--color-text-secondary);
      margin-bottom: 1.5rem;
      max-width: 36rem;
      position: relative;
      z-index: 1;
    }

.service-body p + p {
      margin-top: 1rem;
    }

.service-outputs {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
      margin-bottom: 1.75rem;
      position: relative;
      z-index: 1;
    }

.service-outputs span {
      opacity: 0;
      transition: opacity 0.4s ease;
    }

.service-row.is-visible .service-outputs span {
      opacity: 1;
    }

.service-row.is-visible .service-outputs span:nth-child(1) { transition-delay: 0s; }

.service-row.is-visible .service-outputs span:nth-child(3) { transition-delay: 0.08s; }

.service-row.is-visible .service-outputs span:nth-child(5) { transition-delay: 0.16s; }

.service-row.is-visible .service-outputs span:nth-child(7) { transition-delay: 0.24s; }

.service-row.is-visible .service-outputs span:nth-child(9) { transition-delay: 0.32s; }

.service-row.is-visible .service-outputs span:nth-child(11) { transition-delay: 0.4s; }

.service-outputs__dot {
      margin: 0 0.5rem;
      opacity: 1 !important;
    }

.service-quote {
      position: relative;
      z-index: 1;
      margin-left: 0.75rem;
      padding: 0.25rem 0 0.25rem 1.5rem;
      border-left: 2px solid var(--color-accent);
      transform: scaleY(0);
      transform-origin: top;
      transition: transform 0.55s var(--ease-out) 0.15s;
    }

.service-row.is-visible .service-quote {
      transform: scaleY(1);
    }

.service-quote p {
      font-family: var(--font-editorial);
      font-style: italic;
      font-weight: 400;
      font-size: 1.1875rem;
      line-height: 1.6;
      color: var(--color-text-primary);
      max-width: 32rem;
    }

@keyframes projectsNavUnderline {
      to { transform: scaleX(1); }
    }

.visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

.hidden { display: none !important; }

@keyframes insightsHeroLineIn {
      to { width: 3.75rem; }
    }

.subnav-sentinel { height: 0; width: 100%; pointer-events: none; }

@keyframes insightsNavUnderline { to { transform: scaleX(1); } }

.price-charts-toolbar {
      display: flex;
      align-items: stretch;
      gap: 0.375rem;
      margin-bottom: 1.5rem;
      flex-wrap: nowrap;
    }

.price-charts-toolbar__search {
      flex: 0 0 11.5rem;
      max-width: 15%;
      min-width: 9rem;
    }

.price-charts-toolbar__filter {
      flex: 0 0 10.5rem;
      max-width: 13%;
      min-width: 8.75rem;
    }

.price-charts-filter {
      display: block;
      height: 100%;
    }

.price-charts-filter[hidden] {
      display: none;
    }

.price-charts-filter select {
      width: 100%;
      height: 100%;
      min-height: 2.5rem;
      font-family: var(--font-body);
      font-size: 0.75rem;
      padding: 0.5rem 0.65rem;
      color: var(--color-text-primary);
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-default);
      box-sizing: border-box;
      transition: border-color 0.2s ease;
    }

.price-charts-filter select:focus {
      outline: none;
      border-color: var(--color-border-accent);
    }

.price-charts-toolbar__filter[hidden] {
      display: none;
    }

.price-charts-toolbar__tabs {
      flex: 1 1 auto;
      min-width: 0;
      display: flex;
      align-items: stretch;
      overflow: hidden;
    }

.price-charts-toolbar__tabs .category-tabs {
      margin-bottom: 0;
      padding-bottom: 0;
      width: 100%;
      align-self: stretch;
      align-items: stretch;
      overflow: hidden;
      gap: 0.25rem;
    }

.price-charts-toolbar .category-tab {
      letter-spacing: 0.02em;
      padding: 0.5rem 0.375rem;
    }

.price-charts-toolbar__actions {
      flex: 0 0 auto;
      display: flex;
      align-items: center;
      padding-left: 0.15rem;
    }

.category-tabs {
      display: flex; flex-wrap: nowrap; gap: 0.35rem;
      overflow: hidden;
    }

.category-tab {
      flex-shrink: 1;
      min-width: 0;
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      padding: 0.5rem 0.5rem;
      color: var(--color-text-secondary);
      background: var(--color-bg-elevated);
      border: 0.5px solid var(--color-border-subtle);
      transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
      white-space: nowrap;
    }

.category-tab:hover { color: var(--color-text-primary); border-color: var(--color-border-default); }

.category-tab.is-active {
      color: var(--color-text-primary); background: var(--color-bg-surface);
      border-color: var(--color-border-default);
      box-shadow: inset 0 -2px 0 var(--color-accent);
    }

.price-charts-search { display: block; position: relative; height: 100%; }

.price-charts-search::before {
      content: "⌕"; position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%);
      font-size: 0.875rem; color: var(--color-text-tertiary); pointer-events: none; line-height: 1;
    }

.price-charts-search input {
      width: 100%; height: 100%; min-height: 2.5rem;
      font-family: var(--font-body); font-size: 0.75rem;
      padding: 0.5rem 2rem 0.5rem 1.85rem; color: var(--color-text-primary);
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-default);
      transition: border-color 0.2s ease;
      box-sizing: border-box;
    }

.price-charts-search input::placeholder { color: var(--color-text-tertiary); }

.price-charts-search input:focus { outline: none; border-color: var(--color-border-accent); }

.price-charts-search input::-webkit-search-cancel-button {
      -webkit-appearance: none;
      appearance: none;
      width: 1.125rem;
      height: 1.125rem;
      margin-right: 0.15rem;
      cursor: pointer;
      background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath stroke='%238B2222' stroke-width='1.75' stroke-linecap='round' d='M2.5 2.5l7 7M9.5 2.5l-7 7'/%3E%3C/svg%3E");
    }

.price-charts-search input::-webkit-search-cancel-button:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath stroke='%236E1A1A' stroke-width='1.75' stroke-linecap='round' d='M2.5 2.5l7 7M9.5 2.5l-7 7'/%3E%3C/svg%3E");
    }

.price-table thead th.col-text { text-align: left; padding-left: 1.25rem; }

.price-table .col-text {
      text-align: left; padding-left: 1.25rem; color: var(--color-text-primary);
    }

.price-row--group-main .price-group-toggle {
      font-size: 0.6875rem; letter-spacing: 0.16em; color: var(--color-text-primary);
    }

.price-row--group-sub td { background: rgba(242, 239, 232, 0.65); }

.price-group-toggle--sub { padding-left: 2.25rem; font-size: 0.625rem; }

.price-group-toggle--static { cursor: default; color: var(--color-text-tertiary); font-style: italic; text-transform: none; letter-spacing: 0.04em; }

.price-row--group-static td { background: var(--color-bg-elevated); }

.price-row--skeleton { opacity: 0.55; pointer-events: none; }

.price-table-toggle-all {
      flex-shrink: 0;
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: var(--color-action-clear);
      padding: 0.35rem 0.25rem;
      min-height: 0;
      background: transparent;
      border: none;
      white-space: nowrap;
      transition: color 0.2s ease, background 0.2s ease;
    }

.price-table-toggle-all:hover {
      color: var(--color-action-clear-hover);
      background: var(--color-action-clear-muted);
    }

.price-table-scroll {
      overflow-x: auto; -webkit-overflow-scrolling: touch;
      border: 0.5px solid var(--color-border-subtle);
      background: var(--color-bg-surface);
    }

.price-table {
      width: 100%; min-width: 48rem; border-collapse: collapse;
      font-size: 0.8125rem;
    }

.price-table thead th {
      font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.1em;
      text-transform: uppercase; color: var(--color-text-tertiary);
      text-align: right; padding: 0.875rem 0.75rem;
      border-bottom: 0.5px solid var(--color-border-default);
      background: var(--color-bg-primary); white-space: nowrap;
    }

.price-table thead th.col-material { text-align: left; padding-left: 1.25rem; min-width: 14rem; }

.price-table thead th.col-unit { text-align: left; }

.price-table tbody td {
      padding: 0.625rem 0.75rem; border-bottom: 0.5px solid var(--color-border-subtle);
      vertical-align: middle;
    }

.price-table tbody tr.price-row--data { background: var(--color-bg-surface); }

.price-table tbody tr.price-row--data:hover:not(.is-row-hidden) { background: var(--color-accent-light); }

.price-table tbody tr.is-row-hidden { display: none; }

.price-table tbody tr.price-row--group td {
      background: var(--color-bg-elevated); padding: 0;
      border-bottom: 0.5px solid var(--color-border-default);
    }

.price-group-toggle {
      display: flex; align-items: center; gap: 0.5rem;
      width: 100%; text-align: left; padding: 0.5rem 1.25rem;
      font-family: var(--font-body); font-size: 0.625rem; font-weight: 500;
      letter-spacing: 0.14em; text-transform: uppercase;
      color: var(--color-text-secondary); cursor: pointer;
      transition: color 0.2s ease, background 0.2s ease;
    }

.price-group-toggle:hover { color: var(--color-text-primary); background: rgba(12, 28, 46, 0.03); }

.price-group-chevron {
      flex-shrink: 0; width: 0.65rem; height: 0.65rem;
      margin-left: auto; transition: transform 0.2s var(--ease-out);
    }

.price-row--group.is-collapsed .price-group-chevron { transform: rotate(-90deg); }

.price-group-count {
      margin-left: 0.75rem; font-size: 0.625rem; font-weight: 400;
      letter-spacing: 0.04em; text-transform: none;
      color: var(--color-text-tertiary);
    }

.price-row--no-results td {
      text-align: center; padding: 2rem 1.25rem;
      font-size: 0.875rem; color: var(--color-text-tertiary);
      background: var(--color-bg-surface);
    }

.price-table .col-material {
      text-align: left; padding-left: 1.25rem; color: var(--color-text-primary);
      font-weight: 400; min-width: 12rem;
    }

.price-table .col-unit { text-align: left; }

.unit-chip {
      display: inline-block; font-size: 0.625rem; font-weight: 500;
      letter-spacing: 0.06em; text-transform: uppercase;
      padding: 0.2rem 0.45rem; background: var(--color-bg-elevated);
      border: 0.5px solid var(--color-border-subtle); color: var(--color-text-secondary);
      white-space: nowrap;
    }

.price-table .col-num {
      text-align: right; font-variant-numeric: tabular-nums;
      color: var(--color-text-primary); white-space: nowrap;
    }

.price-table .col-num--na { color: var(--color-text-tertiary); }

.price-table .col-trend { text-align: right; padding-right: 1.25rem; white-space: nowrap; }

.trend-cell { display: inline-flex; align-items: center; justify-content: flex-end; gap: 0.35rem; }

.trend-arrow { font-weight: 500; font-size: 0.75rem; letter-spacing: 0.02em; }

.trend-arrow--up { color: var(--trend-up); }

.trend-arrow--down { color: var(--trend-down); }

.trend-arrow--stable { color: var(--trend-stable); }

.trend-sparkline { display: block; flex-shrink: 0; }

.price-table-footnote {
      font-size: 0.75rem; color: var(--color-text-tertiary);
      margin-top: 1rem; line-height: 1.55; max-width: 48rem;
    }

.price-row--empty td { height: 2.5rem; background: rgba(12, 28, 46, 0.02); }

.category-placeholder-msg {
      text-align: center; padding: 2.5rem 1rem 1rem;
    }

.category-placeholder-msg__title {
      font-family: var(--font-display); font-size: 1.5rem;
      color: var(--color-text-primary); margin-bottom: 0.5rem;
    }

.category-placeholder-msg__text { font-size: 0.875rem; color: var(--color-text-secondary); }

.category-placeholder-msg a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }

.news-featured {
      display: grid; grid-template-columns: 35% 1fr; gap: 0;
      background: var(--color-bg-surface); border: 0.5px solid var(--color-border-subtle);
      margin-bottom: 2rem; overflow: hidden;
    }

.news-featured__media { display: block; min-height: 280px; overflow: hidden; }

.news-featured__img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; display: block; }

.news-featured__body { padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; }

.news-featured__date {
      font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.1em;
      text-transform: uppercase; color: var(--color-text-tertiary); margin-bottom: 1rem;
    }

.news-featured__title {
      font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2rem);
      line-height: 1.2; margin-bottom: 1rem; color: var(--color-text-primary);
    }

.news-featured__excerpt {
      font-size: 1rem; color: var(--color-text-secondary);
      line-height: 1.65; margin-bottom: 1.5rem;
    }

.news-grid {
      display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem;
    }

.news-card {
      display: flex; flex-direction: column; background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-subtle);
    }

.news-card.fade-up {
      transition:
        opacity 0.6s var(--ease-out),
        transform 0.6s var(--ease-out),
        border-color 0.25s var(--ease-out),
        box-shadow 0.25s var(--ease-out);
    }

.news-card:hover {
      border-color: var(--color-border-default);
      box-shadow: 0 8px 24px rgba(12, 28, 46, 0.08);
    }

.news-card__media-link { display: block; overflow: hidden; height: 200px; }

.news-card__img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: transform 0.25s var(--ease-out);
    }

.news-card:hover .news-card__img { transform: scale(1.03); }

.news-card__body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }

.news-card__date {
      font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.08em;
      text-transform: uppercase; color: var(--color-text-tertiary); margin-bottom: 0.75rem;
    }

.news-card__title {
      font-size: 1rem; font-weight: 500; line-height: 1.35;
      margin-bottom: 0.5rem; color: var(--color-text-primary);
    }

.news-card__title a:hover { color: var(--color-accent); }

.news-card__excerpt {
      font-size: 0.8125rem; color: var(--color-text-secondary); line-height: 1.5;
      margin-bottom: 1rem; flex: 1;
      display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }

.news-img-placeholder {
      background: var(--color-bg-elevated);
      display: block;
      width: 100%;
      height: 100%;
      position: relative;
    }

.news-img-placeholder::after {
      content: "Image";
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.75rem;
      font-family: var(--font-body);
      color: var(--color-text-tertiary);
      letter-spacing: 0.05em;
      text-transform: uppercase;
    }

.news-img-placeholder[src]:not([src=""])::after { display: none; }

@media (max-width: 1024px) {
      .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .price-charts-toolbar__search {
        flex: 0 0 10.5rem;
        max-width: 18%;
      }
      .price-charts-toolbar__filter {
        flex: 0 0 9.5rem;
        max-width: 16%;
      }
      .price-charts-toolbar .category-tab {
        font-size: 0.625rem;
        padding: 0.45rem 0.3rem;
        letter-spacing: 0.015em;
      }
    }

@media (max-width: 767px) {
      .price-charts-toolbar {
        flex-wrap: wrap;
        gap: 0.5rem;
      }
      .price-charts-toolbar__search {
        flex: 1 1 calc(50% - 0.25rem);
        max-width: none;
      }
      .price-charts-toolbar__filter {
        flex: 1 1 calc(50% - 0.25rem);
        max-width: none;
      }
      .price-charts-toolbar__tabs {
        flex: 1 1 100%;
        min-width: 0;
        overflow: visible;
      }
      .price-charts-toolbar__tabs .category-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
      }
      .category-tab {
        flex-shrink: 0;
      }
      .price-charts-toolbar__actions {
        flex: 0 0 auto;
        width: 100%;
        justify-content: flex-end;
        padding-left: 0;
      }
    }

@keyframes contactHeroLineIn {
      to { width: 3.75rem; }
    }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }

.form-field { display: flex; flex-direction: column; }

.form-field label {
      font-size: 0.875rem; font-weight: 500; color: var(--color-text-primary);
      margin-bottom: 0.375rem;
    }

.form-field input,
    .form-field textarea {
      width: 100%; font-family: var(--font-body); font-size: 1rem;
      padding: 0.75rem 1rem; color: var(--color-text-primary);
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-default);
      border-radius: var(--border-radius-md);
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }

.form-field textarea {
      resize: vertical; min-height: 140px; line-height: 1.55;
    }

.form-field input::placeholder,
    .form-field textarea::placeholder { color: var(--color-text-tertiary); }

.form-field input:focus,
    .form-field textarea:focus {
      outline: none; border-color: var(--color-accent);
      box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.12);
    }

.form-field.is-error input,
    .form-field.is-error textarea {
      border-color: var(--color-text-danger);
      box-shadow: 0 0 0 3px rgba(155, 44, 44, 0.08);
    }

.form-field__error {
      font-size: 0.75rem; color: var(--color-text-danger);
      margin-top: 0.25rem; min-height: 1.125rem;
    }

.form-field__error:empty { display: none; }

@media (max-width: 480px) {
      .form-row { grid-template-columns: 1fr; }
    }

.gallery {
      border: 1px solid var(--color-border-subtle);
      background: var(--color-bg-surface);
      margin-bottom: 2rem;
    }

/* ============================================================
   PAGE: About
   ============================================================ */
.about-page-hero {
      position: relative;
      min-height: 52vh;
      min-height: 52dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: calc(4.5rem + 6rem) 0 4rem;
      background-color: var(--color-bg-primary);
      background-image: url('../assets/images/hero/hero-about.jpg');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      overflow: hidden;
    }

.about-page-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background:
        linear-gradient(
          to right,
          rgba(250, 250, 248, 0.92) 0%,
          rgba(250, 250, 248, 0.72) 42%,
          rgba(250, 250, 248, 0.35) 68%,
          rgba(250, 250, 248, 0.12) 100%
        ),
        linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0.55) 0%,
          rgba(250, 250, 248, 0.38) 45%,
          rgba(250, 250, 248, 0.55) 72%,
          rgba(250, 250, 248, 0.94) 100%
        );
      pointer-events: none;
    }

.about-page-hero::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 4rem;
      z-index: 0;
      background: linear-gradient(to bottom, transparent, var(--color-bg-primary));
      pointer-events: none;
    }

.about-page-hero .hero-pattern {
      position: absolute;
      inset: 0;
      z-index: 0;
      opacity: 0.04;
      pointer-events: none;
    }

.about-page-hero .hero-pattern svg {
      width: 100%;
      height: 100%;
    }

.about-page-hero-inner {
      position: relative;
      z-index: 1;
    }

.about-page-hero .eyebrow,
    .about-page-hero .section-title {
      text-shadow:
        0 0 32px rgba(255, 255, 255, 0.95),
        0 0 12px rgba(255, 255, 255, 0.85),
        0 1px 3px rgba(250, 250, 248, 0.75);
    }

.about-page-hero .section-title {
      margin-bottom: 0;
    }

.about-page-hero__line {
      display: block;
      width: 0;
      height: 2px;
      background: var(--color-accent);
      margin-top: 1.75rem;
      animation: heroLineIn 0.8s var(--ease-out) 0.35s forwards;
    }

.about-subnav-wrap {
      position: sticky;
      top: var(--site-nav-offset);
      z-index: 50;
      background: rgba(250, 250, 248, 0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--color-border-subtle);
      transition: top 0.35s var(--ease-out);
    }

.about-subnav {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.75rem;
      padding: 0.875rem 0;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
    }

.about-subnav a {
      display: inline-block;
      position: relative;
      color: var(--color-text-secondary);
      padding-bottom: 0.35rem;
      border-bottom: none;
      transition: color 0.25s ease;
    }

.about-subnav a::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 2px;
      background: var(--color-text-primary);
      transform: scaleX(0);
      transform-origin: left;
    }

.about-subnav a.is-active {
      color: var(--color-accent);
    }

.about-subnav a.is-active::after {
      animation: aboutNavUnderline 0.45s var(--ease-out) forwards;
    }

.about-subnav a:hover,
    .about-subnav a:focus-visible {
      color: var(--color-accent);
    }

.about-subnav a.is-active:hover,
    .about-subnav a.is-active:focus-visible {
      color: var(--color-accent);
    }

.about-subnav__sep {
      margin: 0 0.15rem;
      color: var(--color-border-default);
      user-select: none;
    }

#vision-mission,
    #director,
    #senior-management,
    #our-team {
      scroll-margin-top: var(--about-scroll-offset, 7.5rem);
    }

.about-section {
      padding: var(--space-section-y) 0;
    }

.about-section--surface {
      background: var(--color-bg-surface);
    }

.about-section--elevated {
      background: var(--color-bg-elevated);
    }

.about-section--primary {
      background: var(--color-bg-primary);
    }

.about-prose {
      max-width: 48rem;
    }

.about-prose p {
      font-size: 1.0625rem;
      font-weight: 400;
      line-height: 1.75;
      color: var(--color-text-secondary);
      margin-bottom: 1.5rem;
    }

.about-prose p:last-child {
      margin-bottom: 0;
    }

.about-section#opening {
      padding: 3rem 0 2rem;
    }

.about-opening-lead {
      font-family: var(--font-display);
      font-size: clamp(1.125rem, 2vw, 1.5rem);
      font-weight: 400;
      line-height: 1.5;
      letter-spacing: -0.01em;
      color: var(--color-text-primary);
      max-width: 40rem;
      margin-bottom: 0;
    }

.about-stat-pills {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1rem;
    }

.about-stat-pill {
      padding: 1.125rem 1.25rem;
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      text-align: center;
      color: var(--color-text-secondary);
      line-height: 1.45;
    }

.about-section--surface .about-stat-pill {
      background: var(--color-bg-primary);
    }

.about-section--elevated .pillar-card {
      background: var(--color-bg-primary);
    }

.about-vision-mission {
      background: var(--color-bg-dark);
      padding: 4.5rem 0;
    }

.director-block {
      display: grid;
      grid-template-columns: minmax(0, 16rem) 1fr;
      gap: 3rem;
      align-items: start;
    }

.director-content h3 {
      font-family: var(--font-display);
      font-size: 2rem;
      font-weight: 400;
      line-height: 1.1;
      color: var(--color-text-primary);
      margin-bottom: 0.35rem;
    }

.director-title {
      font-size: 0.9375rem;
      font-weight: 500;
      color: var(--color-text-secondary);
      margin-bottom: 0.75rem;
    }

.director-badge {
      display: inline-block;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--color-accent);
      border: 1px solid var(--color-border-accent);
      background: var(--color-accent-light);
      padding: 0.4rem 0.75rem;
      margin-bottom: 1.25rem;
    }

.director-bio {
      font-size: 1.0625rem;
      font-weight: 400;
      line-height: 1.75;
      color: var(--color-text-secondary);
      max-width: 40rem;
    }

.director-fact-strip {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem 1rem;
      margin-top: 2.5rem;
      padding-top: 2rem;
      border-top: 1px solid var(--color-border-subtle);
      font-size: 0.8125rem;
      font-weight: 500;
      letter-spacing: 0.04em;
      color: var(--color-text-secondary);
    }

.director-fact-strip .pipe {
      color: var(--color-border-default);
      font-weight: 400;
    }

#senior-management .people-grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: var(--space-grid-gap);
    }

#senior-management .people-card {
      flex: 0 1 calc((100% - 2 * var(--space-grid-gap)) / 3);
      max-width: calc((100% - 2 * var(--space-grid-gap)) / 3);
    }

.about-section--surface .people-card {
      background: var(--color-bg-primary);
    }

.about-subgroup-title {
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin: 3.5rem 0 1.75rem;
    }

.about-subgroup-title:first-of-type {
      margin-top: 0;
    }

@media (max-width: 1024px) {
      .people-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      #senior-management .people-card {
        flex: 0 1 calc((100% - var(--space-grid-gap)) / 2);
        max-width: calc((100% - var(--space-grid-gap)) / 2);
      }

      .about-stat-pills {
        grid-template-columns: repeat(2, 1fr);
      }

      .pillar-grid {
        grid-template-columns: 1fr;
      }

      .promap-block {
        grid-template-columns: 1fr;
        gap: 2.5rem;
      }

      .footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .footer-brand {
        grid-column: 1 / -1;
      }
    }

@media (max-width: 900px) {
      .nav-links,
      .nav-cta-wrap {
        display: none;
      }

      .nav-toggle {
        display: flex;
      }

      .mobile-panel {
        display: block;
        position: fixed;
        inset: 4.5rem 0 0;
        background: var(--color-bg-surface);
        padding: 2rem;
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        transition: transform 0.35s var(--ease-out), opacity 0.35s ease, visibility 0.35s;
        z-index: 99;
        border-top: 1px solid var(--color-border-subtle);
      }

      .nav.open .mobile-panel {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
      }

      .mobile-panel ul {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        margin-bottom: 2rem;
      }

      .mobile-panel a {
        font-size: 1rem;
        color: var(--color-text-secondary);
      }

      .mobile-panel .btn-primary {
        width: 100%;
      }

      .director-block {
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      .director-block .photo-placeholder {
        max-width: 16rem;
      }

      .vision-mission-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      .vision-mission-col {
        padding: 0;
      }

      .vision-mission-col:last-child {
        border-left: none;
        border-top: 1px solid var(--color-border-dark);
        padding-top: 2rem;
      }

      .about-vision-mission {
        padding: 3.5rem 0;
      }
    }

@media (max-width: 768px) {
      .stats-grid {
        grid-template-columns: 1fr;
      }

      .stat-card {
        border-left: none;
        border-top: 1px solid var(--color-border-subtle);
        padding-left: 0;
        padding-top: 1.5rem;
      }

      .stat-card:first-child {
        border-top: none;
        padding-top: 0;
      }

      .people-grid {
        grid-template-columns: 1fr;
      }

      #senior-management .people-card {
        flex: 0 1 100%;
        max-width: 20rem;
      }

      .about-stat-pills {
        grid-template-columns: 1fr;
      }

      .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .about-section {
        padding: 4.5rem 0;
      }

      .about-subnav {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        padding: 1rem 0;
      }

      .about-subnav__sep {
        display: none;
      }
    }

/* ============================================================
   PAGE: Services
   ============================================================ */
@media (max-width: 1024px) {
      .services-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .footer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .footer-brand {
        grid-column: 1 / -1;
      }

      .process-track {
        grid-template-columns: repeat(2, 1fr);
        gap: 2.5rem 1.5rem;
      }

      .process-track::before {
        display: none;
      }
    }

.services-section {
      background: var(--color-bg-elevated);
      padding: var(--space-section-y) 0;
    }

.services-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-grid-gap);
    }

.services-hero {
      position: relative;
      min-height: 52vh;
      min-height: 52dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: calc(4.5rem + 6rem) 0 4rem;
      background-color: var(--color-bg-primary);
      background-image: url('../assets/images/hero/hero-services.jpg');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      overflow: hidden;
    }

.services-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background:
        linear-gradient(
          to right,
          rgba(250, 250, 248, 0.92) 0%,
          rgba(250, 250, 248, 0.72) 42%,
          rgba(250, 250, 248, 0.35) 68%,
          rgba(250, 250, 248, 0.12) 100%
        ),
        linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0.55) 0%,
          rgba(250, 250, 248, 0.38) 45%,
          rgba(250, 250, 248, 0.55) 72%,
          rgba(250, 250, 248, 0.94) 100%
        );
      pointer-events: none;
    }

.services-hero::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 4rem;
      z-index: 0;
      background: linear-gradient(to bottom, transparent, var(--color-bg-primary));
      pointer-events: none;
    }

.services-hero .hero-pattern {
      position: absolute;
      inset: 0;
      z-index: 0;
      opacity: 0.04;
      pointer-events: none;
    }

.services-hero .hero-pattern svg {
      width: 100%;
      height: 100%;
    }

.services-hero-inner {
      position: relative;
      z-index: 1;
    }

.services-hero .eyebrow,
    .services-hero__title {
      text-shadow:
        0 0 32px rgba(255, 255, 255, 0.95),
        0 0 12px rgba(255, 255, 255, 0.85),
        0 1px 3px rgba(250, 250, 248, 0.75);
    }

.services-hero__title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(3rem, 7vw, 5rem);
      line-height: 1.02;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      max-width: 42rem;
      margin-bottom: 0;
    }

.services-hero__title em {
      font-style: italic;
      font-weight: 400;
    }

.services-hero__line {
      display: block;
      width: 0;
      height: 2px;
      background: var(--color-accent);
      margin-top: 1.75rem;
      margin-bottom: 2rem;
      animation: heroLineIn 0.8s var(--ease-out) 0.35s forwards;
    }

.services-hero__lead {
      font-size: 1.125rem;
      line-height: 1.75;
      color: var(--color-text-secondary);
      max-width: 37.5rem;
      margin-bottom: 0;
      text-shadow:
        0 0 28px rgba(255, 255, 255, 0.95),
        0 0 10px rgba(255, 255, 255, 0.8),
        0 1px 2px rgba(250, 250, 248, 0.7);
    }

.services-subnav-wrap {
      position: sticky;
      top: var(--site-nav-offset);
      z-index: 50;
      background: rgba(250, 250, 248, 0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--color-border-subtle);
      transition: top 0.35s var(--ease-out);
    }

.services-index {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.75rem;
      padding: 1.125rem 0;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
    }

.services-index a {
      display: inline-block;
      position: relative;
      color: var(--color-text-secondary);
      padding-bottom: 0.35rem;
      border-bottom: none;
      transition: color 0.25s ease;
    }

.services-index a::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 2px;
      background: var(--color-text-primary);
      transform: scaleX(0);
      transform-origin: left;
    }

.services-index a.is-active {
      color: var(--color-accent);
    }

.services-index a.is-active::after {
      animation: servicesNavUnderline 0.45s var(--ease-out) forwards;
    }

@keyframes servicesNavUnderline {
      to { transform: scaleX(1); }
    }

.services-index a:hover,
    .services-index a:focus-visible {
      color: var(--color-accent);
    }

.services-index a.is-active:hover,
    .services-index a.is-active:focus-visible {
      color: var(--color-accent);
    }

.services-index__sep {
      margin: 0 0.15rem;
      color: var(--color-border-default);
      user-select: none;
    }

.services-list {
      border-top: 1px solid var(--color-border-subtle);
    }

.services-cta {
      padding: var(--space-section-y) 0;
      text-align: center;
      transition: background 0.6s var(--ease-out);
    }

.services-cta.is-tinted {
      background: var(--color-bg-elevated);
    }

.services-cta__title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(2rem, 4vw, 3rem);
      line-height: 1.1;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      max-width: 20ch;
      margin: 0 auto 1.25rem;
    }

.services-cta__text {
      font-size: 1.0625rem;
      line-height: 1.75;
      color: var(--color-text-secondary);
      max-width: 32rem;
      margin: 0 auto 2.5rem;
    }

.services-cta__btn {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-family: var(--font-body);
      font-size: 0.8125rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--color-bg-primary);
      padding: 1.125rem 2.5rem;
      border: 1px solid transparent;
      background: var(--color-text-primary);
      box-shadow: 0 4px 24px rgba(12, 28, 46, 0.14);
      transition: background 0.3s ease, box-shadow 0.3s ease, gap 0.3s ease, transform 0.3s ease;
    }

.services-cta__btn:hover {
      background: var(--color-text-secondary);
      box-shadow: 0 6px 28px rgba(12, 28, 46, 0.18);
      gap: 0.85rem;
      transform: translateY(-1px);
    }

.services-cta__btn .arrow {
      display: inline-block;
      transition: transform 0.3s ease;
    }

.services-cta__btn:hover .arrow {
      transform: translateX(4px);
    }

@media (max-width: 600px) {
      .container { padding-left: 1.25rem; padding-right: 1.25rem; }
      .services-index { flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 1rem 0; }
      .services-index__sep { display: none; }
      .services-subnav-wrap { top: var(--site-nav-offset); }
      .footer-grid { grid-template-columns: 1fr; }
    }

@media (prefers-reduced-motion: reduce) {
      .service-row {
        animation: none;
        opacity: 1;
        transform: none;
      }

      .service-num { animation: none; }
      .fade-up {
        opacity: 1;
        transform: none;
        transition: none;
      }
      .services-hero__line { animation: none; width: 3.75rem; }
      .service-tagline,
      .service-quote,
      .service-outputs span,
      .service-media__line {
        opacity: 1;
        transform: none;
        transition: none;
        width: 100%;
      }

      .service-row:hover .service-media__inner {
        transform: none;
      }
    }

/* ============================================================
   PAGE: Projects
   ============================================================ */
@media (max-width: 768px) {
      .stats-grid {
        grid-template-columns: 1fr;
      }

      .stat-card {
        border-left: none;
        border-top: 1px solid var(--color-border-accent);
        padding-left: 0;
        padding-top: 1.5rem;
      }

      .stat-card:first-child {
        border-top: none;
        padding-top: 0;
      }

      .services-grid {
        grid-template-columns: 1fr;
      }

      .projects-carousel-outer {
        gap: 0.5rem;
      }

      .carousel-arrow {
        width: 2.5rem;
        height: 2.5rem;
      }

      .process-track {
        grid-template-columns: 1fr;
      }

      .process-track::before {
        display: none;
      }

      .footer-grid {
        grid-template-columns: 1fr;
      }

      .hero .hero-inner {
        padding-left: 1rem;
      }

      .hero-headline {
        font-size: clamp(2.35rem, 11vw, 3.75rem);
      }
    }

.projects-section {
      padding: var(--space-section-y) 0;
      background: var(--color-bg-primary);
    }

.projects-carousel-outer {
      position: relative;
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin-bottom: 2.5rem;
      width: 100%;
      padding: 0 1.25rem;
      max-width: 100vw;
      box-sizing: border-box;
    }

.carousel-arrow {
      flex-shrink: 0;
      width: 3rem;
      height: 3rem;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--color-border-default);
      background: var(--color-bg-surface);
      color: var(--color-accent);
      transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
      z-index: 2;
    }

.carousel-arrow:hover:not(:disabled) {
      background: var(--color-accent-light);
      border-color: var(--color-border-accent);
    }

.carousel-arrow:disabled {
      opacity: 0.35;
      cursor: not-allowed;
    }

.projects-carousel-viewport {
      flex: 1;
      min-width: 0;
      overflow: hidden;
      padding: 1.5rem 0 2rem;
    }

.projects-carousel-track {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      overflow-x: auto;
      scroll-snap-type: x proximity;
      scroll-behavior: smooth;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 0 max(1.5rem, calc(50% - var(--carousel-slot, 26rem) / 2));
    }

.projects-carousel-track::-webkit-scrollbar {
      display: none;
    }

.projects-footer-link {
      margin-top: 0.5rem;
    }

.projects-hero {
      position: relative;
      min-height: 52vh;
      min-height: 52dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: calc(4.5rem + 6rem) 0 4rem;
      background-color: var(--color-bg-primary);
      background-image: url('../assets/images/hero/hero-projects.jpg');
      background-size: cover;
      background-position: 62% center;
      background-repeat: no-repeat;
      overflow: hidden;
    }

.projects-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background:
        linear-gradient(
          to right,
          rgba(250, 250, 248, 0.92) 0%,
          rgba(250, 250, 248, 0.72) 42%,
          rgba(250, 250, 248, 0.35) 68%,
          rgba(250, 250, 248, 0.12) 100%
        ),
        linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0.55) 0%,
          rgba(250, 250, 248, 0.38) 45%,
          rgba(250, 250, 248, 0.55) 72%,
          rgba(250, 250, 248, 0.94) 100%
        );
      pointer-events: none;
    }

.projects-hero::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 4rem;
      z-index: 0;
      background: linear-gradient(to bottom, transparent, var(--color-bg-primary));
      pointer-events: none;
    }

.projects-hero .hero-pattern {
      position: absolute;
      inset: 0;
      z-index: 0;
      opacity: 0.04;
      pointer-events: none;
    }

.projects-hero .hero-pattern svg {
      width: 100%;
      height: 100%;
    }

.projects-hero-inner {
      position: relative;
      z-index: 1;
    }

.projects-hero .eyebrow,
    .projects-hero__title,
    .projects-hero__lead {
      text-shadow:
        0 0 32px rgba(255, 255, 255, 0.95),
        0 0 12px rgba(255, 255, 255, 0.85),
        0 1px 3px rgba(250, 250, 248, 0.75);
    }

.projects-hero__title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(3rem, 7vw, 5rem);
      line-height: 1.02;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      max-width: 42rem;
      margin-bottom: 0;
    }

.projects-hero__title em {
      font-style: italic;
      font-weight: 400;
    }

.projects-hero__line {
      display: block;
      width: 0;
      height: 2px;
      background: var(--color-accent);
      margin-top: 1.75rem;
      margin-bottom: 2rem;
      animation: heroLineIn 0.8s var(--ease-out) 0.35s forwards;
    }

.projects-hero__lead {
      font-size: 1.125rem;
      line-height: 1.75;
      color: var(--color-text-secondary);
      max-width: 37.5rem;
      margin-bottom: 0;
    }

.projects-sticky-tools {
      position: sticky;
      top: var(--site-nav-offset);
      z-index: 50;
      background: rgba(250, 250, 248, 0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--color-border-subtle);
      transition: top 0.35s var(--ease-out);
    }

.projects-subnav-wrap {
      border-bottom: 1px solid var(--color-border-subtle);
    }

.projects-index {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.625rem;
      padding: 0.875rem 0;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
    }

.projects-index a {
      display: inline-block;
      position: relative;
      color: var(--color-text-secondary);
      padding-bottom: 0.35rem;
      border-bottom: none;
      transition: color 0.25s ease;
    }

.projects-index a::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 2px;
      background: var(--color-text-primary);
      transform: scaleX(0);
      transform-origin: left;
    }

.projects-index a.is-active {
      color: var(--color-accent);
    }

.projects-index a.is-active::after {
      animation: projectsNavUnderline 0.45s var(--ease-out) forwards;
    }

.projects-index a:hover,
    .projects-index a:focus-visible {
      color: var(--color-accent);
    }

.projects-index a.is-active:hover,
    .projects-index a.is-active:focus-visible {
      color: var(--color-accent);
    }

.projects-index__sep {
      margin: 0 0.05rem;
      color: var(--color-border-default);
      user-select: none;
    }

.projects-filter-wrap {
      padding: 0.5rem 0 0.625rem;
    }

.projects-filter-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(9.5rem, 0.72fr);
      align-items: center;
      gap: 0.5rem;
    }

.projects-filter-col {
      min-width: 0;
    }

.projects-filter-col--filters .projects-filter-pills {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: 0.375rem;
    }

.projects-filter-col--actions {
      display: flex;
      align-items: center;
      gap: 0.35rem;
      min-width: 0;
    }

.projects-filter-col--actions .projects-filter-dropdown {
      flex: 1;
      min-width: 0;
    }

.projects-filter-col--actions .projects-filter-pill {
      width: 100%;
      justify-content: space-between;
    }

.projects-filter-clear-btn {
      flex-shrink: 0;
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 600;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: var(--color-action-clear);
      padding: 0.45rem 0.35rem;
      white-space: nowrap;
      transition: color 0.15s ease;
    }

.projects-filter-clear-btn:hover {
      color: var(--color-action-clear-hover);
    }

.projects-filter-clear-btn[hidden] {
      display: none;
    }

.project-type-section--filter-hidden {
      display: none !important;
    }

body.is-projects-filter-mode .project-show-more,
    body.is-projects-filter-mode .project-expanded-actions {
      display: none !important;
    }

body.is-projects-filter-mode .project-card.is-filter-visible {
      display: flex !important;
      opacity: 1 !important;
      transform: none !important;
    }

body.is-projects-filter-mode .project-card.is-filter-hidden-card {
      display: none !important;
    }

body.is-projects-filter-mode .project-type-section:not(.project-type-section--filter-hidden) {
      padding-bottom: 3rem;
    }

body.is-projects-filter-mode .project-grid {
      margin-bottom: 1.5rem;
    }

.projects-filter-search {
      position: relative;
    }

.projects-filter-search::before {
      content: "⌕";
      position: absolute;
      left: 0.65rem;
      top: 50%;
      transform: translateY(-50%);
      font-size: 0.875rem;
      color: var(--color-text-tertiary);
      pointer-events: none;
      line-height: 1;
    }

.projects-filter-search__input {
      width: 100%;
      font-family: var(--font-body);
      font-size: 0.8125rem;
      padding: 0.5rem 0.65rem 0.5rem 1.85rem;
      color: var(--color-text-primary);
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-default);
      border-radius: 4px;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }

.projects-filter-search__input::placeholder {
      color: var(--color-text-tertiary);
    }

.projects-filter-search__input:focus {
      outline: none;
      border-color: var(--color-accent);
      box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.12);
    }

.projects-filter-dropdown {
      position: relative;
      flex: 1 1 0;
      min-width: 0;
    }

.projects-filter-pill {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      width: 100%;
      max-width: 100%;
      min-width: 0;
      overflow: hidden;
      font-family: var(--font-body);
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 0.45rem 0.55rem;
      color: var(--color-text-secondary);
      background: var(--color-bg-elevated);
      border: 0.5px solid var(--color-border-subtle);
      border-radius: 4px;
      transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    }

.projects-filter-pill__label {
      flex: 1;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

.projects-filter-pill__chevron,
    .projects-filter-pill__clear {
      flex-shrink: 0;
    }

.projects-filter-pill:hover {
      color: var(--color-text-primary);
      border-color: var(--color-border-default);
    }

.projects-filter-pill.is-active {
      color: var(--color-accent);
      border-color: var(--color-border-accent);
      background: var(--color-bg-surface);
    }

.projects-filter-pill__chevron {
      font-size: 1.0625rem;
      line-height: 1;
      opacity: 1;
      color: var(--color-text-secondary);
    }

.projects-filter-pill__clear {
      display: none;
      align-items: center;
      justify-content: center;
      width: 1.125rem;
      height: 1.125rem;
      margin-left: 0.1rem;
      font-size: 1.0625rem;
      line-height: 1;
      color: var(--color-action-clear);
      border-radius: 50%;
      transition: background 0.15s ease, color 0.15s ease;
    }

.projects-filter-pill.is-active .projects-filter-pill__clear {
      display: inline-flex;
    }

.projects-filter-pill__clear:hover {
      color: var(--color-action-clear-hover);
      background: var(--color-action-clear-muted);
    }

.projects-filter-panel {
      position: absolute;
      top: calc(100% + 0.35rem);
      left: 0;
      z-index: 200;
      min-width: 200px;
      padding: 0.75rem;
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-default);
      border-radius: 4px;
      box-shadow: 0 8px 28px rgba(6, 26, 49, 0.1);
    }

.projects-filter-panel[hidden] {
      display: none;
    }

.projects-filter-panel--align-end {
      left: auto;
      right: 0;
    }

.projects-filter-panel label {
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
      font-size: 12px;
      font-weight: 400;
      text-transform: none;
      letter-spacing: 0;
      color: var(--color-text-primary);
      padding: 0.35rem 0;
      cursor: pointer;
      line-height: 1.4;
    }

.projects-filter-panel label + label {
      margin-top: 0.125rem;
    }

.projects-filter-panel input {
      margin-top: 0.2rem;
      flex-shrink: 0;
      accent-color: var(--color-accent);
    }

.project-type-section__result-count {
      font-family: var(--font-body);
      font-size: clamp(0.875rem, 2vw, 1rem);
      font-weight: 400;
      color: var(--color-text-tertiary);
    }

.project-filter-empty {
      grid-column: 1 / -1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 4rem 2rem;
      color: var(--color-text-secondary);
    }

.project-filter-empty--section {
      display: block;
      padding: 1rem 0 0.25rem;
      font-family: var(--font-body);
      font-size: 0.875rem;
      font-weight: 400;
      line-height: 1.5;
      color: var(--color-text-tertiary);
      text-align: left;
    }

.project-filter-empty[hidden] {
      display: none;
    }

.project-filter-empty__icon {
      width: 48px;
      height: 48px;
      margin-bottom: 1.25rem;
      color: var(--color-text-tertiary);
    }

.project-filter-empty__title {
      font-family: var(--font-display);
      font-size: 1.375rem;
      font-weight: 400;
      color: var(--color-text-primary);
      margin-bottom: 0.5rem;
    }

.project-filter-empty__body {
      font-size: 0.9375rem;
      max-width: 22rem;
      margin-bottom: 1.5rem;
      line-height: 1.6;
    }

.project-filter-empty .btn-outline {
      font-size: 0.6875rem;
    }

.project-filter-empty__clear {
      color: var(--color-action-clear);
      border-color: var(--color-action-clear);
    }

.project-filter-empty__clear:hover {
      color: var(--color-action-clear-hover);
      border-color: var(--color-action-clear-hover);
      background: var(--color-action-clear-muted);
    }

#projects-filter-global-empty {
      margin-bottom: 3rem;
    }

@media (max-width: 767px) {
      .projects-filter-row {
        grid-template-columns: 1fr;
        gap: 0.5rem;
      }

      .projects-filter-col--filters .projects-filter-pills {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0.15rem;
        scrollbar-width: thin;
      }

      .projects-filter-col--actions {
        flex-wrap: wrap;
      }

      .projects-filter-panel {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        min-width: 0;
        max-height: 70vh;
        overflow-y: auto;
        border-radius: 12px 12px 0 0;
        border-bottom: none;
        box-shadow: 0 -8px 32px rgba(6, 26, 49, 0.12);
        padding: 1rem 1.25rem 1.5rem;
      }

      .projects-filter-dropdown.is-open::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(6, 26, 49, 0.25);
        z-index: 199;
      }
    }

.projects-main {
      padding: 5rem 0 var(--space-section-y);
      background: var(--color-bg-primary);
      overflow-x: clip;
    }

.project-type-section {
      padding-bottom: 5rem;
      scroll-margin-top: var(--projects-scroll-offset);
    }

.project-type-section:last-child {
      padding-bottom: 0;
    }

.project-type-section__head {
      margin-bottom: 2.5rem;
    }

#qs-projects .project-type-section__head {
      position: relative;
      z-index: 30;
    }

.project-type-section__label {
      font-family: var(--font-body);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
      margin-bottom: 0.75rem;
    }

.project-type-section__title-row {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.625rem 1rem;
      margin-bottom: 1.25rem;
    }

.project-type-section__title-row .project-type-section__title {
      margin-bottom: 0;
      flex: 1 1 auto;
      min-width: 0;
    }

.project-type-section__title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(2rem, 4vw, 2.75rem);
      line-height: 1.1;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      margin-bottom: 1.25rem;
    }

.project-type-section__sector-filter {
      flex: 0 0 auto;
      margin-top: 0.15rem;
    }

.projects-filter-dropdown--compact {
      position: relative;
      flex: 0 0 auto;
      width: auto;
      z-index: 1;
    }

.projects-filter-dropdown--compact.is-open {
      z-index: 50;
    }

.projects-filter-dropdown--compact .projects-filter-pill {
      width: auto;
      max-width: 11rem;
      font-size: 0.625rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      padding: 0.3rem 0.45rem;
      gap: 0.25rem;
    }

.projects-filter-dropdown--compact .projects-filter-panel {
      right: 0;
      left: auto;
      z-index: 100;
      min-width: 15.5rem;
      max-width: min(20rem, calc(100vw - 2rem));
    }

#qs-projects .project-grid {
      position: relative;
      z-index: 0;
    }

.project-type-section__rule {
      border: none;
      height: 0.5px;
      background: var(--color-border-default);
      margin: 0;
    }

.project-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 1.25rem;
      align-items: stretch;
      width: 100%;
      margin-bottom: 2.5rem;
    }

.project-card {
      display: flex;
      flex-direction: column;
      min-width: 0;
      height: 100%;
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-subtle);
      opacity: 0;
      transform: translateY(16px);
      transition:
        opacity 0.5s var(--ease-out),
        transform 0.5s var(--ease-out),
        border-color 0.25s var(--ease-out),
        box-shadow 0.25s var(--ease-out);
    }

.project-card.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

.project-card--extra.project-card--collapsed {
      display: none;
    }

.project-card--extra:not(.project-card--collapsed):not(.is-revealed) {
      opacity: 0;
      transform: translateY(16px);
    }

.project-card--extra.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }

.project-card--extra.is-collapsing {
      opacity: 0;
      transform: translateY(12px);
      transition-duration: 0.35s;
    }

.project-card:hover {
      border-color: var(--color-border-default);
      box-shadow: 0 8px 24px rgba(12, 28, 46, 0.08);
    }

.project-card__media {
      position: relative;
      flex-shrink: 0;
      aspect-ratio: 4 / 3;
      width: 100%;
      overflow: hidden;
      border-bottom: 0.5px solid var(--color-border-subtle);
    }

.project-card__media-inner {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      background: var(--color-image-placeholder);
      transition: transform 0.25s var(--ease-out);
    }

.project-card:hover .project-card__media-inner {
      transform: scale(1.03);
    }

.project-card__cam {
      color: var(--color-text-tertiary);
      opacity: 0.55;
    }

.project-card__media-label {
      font-family: var(--font-display);
      font-size: 0.8125rem;
      font-style: italic;
      color: var(--color-text-tertiary);
    }

.project-card__media-image {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

.project-card__body {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 9.5rem;
      padding: 1.125rem 1rem 1rem;
    }

.project-card__name {
      font-family: var(--font-body);
      font-size: 0.9375rem;
      font-weight: 500;
      line-height: 1.35;
      color: var(--color-text-primary);
      margin-bottom: 0.5rem;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      min-height: 2.55em;
    }

.project-card__tag {
      display: inline-block;
      align-self: flex-start;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
      background: var(--color-bg-elevated);
      padding: 0.25rem 0.5rem;
      margin-bottom: 0.75rem;
    }

.project-card__desc {
      font-size: 0.8125rem;
      line-height: 1.5;
      color: var(--color-text-secondary);
      margin-bottom: 0.75rem;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      min-height: 2.4em;
    }

.project-card__location {
      display: block;
      font-size: 0.75rem;
      color: var(--color-text-tertiary);
      margin-top: auto;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

.project-card__location svg {
      flex-shrink: 0;
      opacity: 0.75;
    }

.project-type-section__actions {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

.project-show-more,
    .project-show-less {
      border: none;
      background: transparent;
    }

.project-show-more:hover,
    .project-show-less:hover {
      border: none;
    }

.project-type-section__actions-expanded {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 1rem 1.5rem;
    }

.project-show-more[hidden],
    .project-type-section__actions-expanded[hidden] {
      display: none !important;
    }

.project-type-section.is-expanded .project-show-more {
      display: none !important;
    }

.project-actions-sep {
      color: var(--color-border-default);
      font-size: 0.875rem;
      user-select: none;
    }

.project-view-all {
      font-family: inherit;
      font-size: 0.8125rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--color-text-secondary);
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      padding: 0;
      border: none;
      background: none;
      cursor: pointer;
      text-decoration: none;
      transition: color 0.3s ease;
    }

.project-view-all:hover {
      color: var(--color-accent);
    }

.project-view-all__arrow {
      display: inline-block;
      transition: transform 0.3s ease;
    }

.project-view-all:hover .project-view-all__arrow {
      transform: translateX(4px);
    }

@media (max-width: 1024px) {
      .project-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

@media (max-width: 767px) {
      .project-grid {
        grid-template-columns: minmax(0, 1fr);
      }

      .project-type-section {
        padding-bottom: 4rem;
      }

      .projects-main {
        padding-top: 3.5rem;
      }

      .projects-index {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        padding: 1rem 0;
      }

      .projects-index__sep {
        display: none;
      }
    }

@media (prefers-reduced-motion: reduce) {
      .fade-up {
        opacity: 1;
        transform: none;
        transition: none;
      }

      .projects-hero__line {
        animation: none;
        width: 3.75rem;
      }

      .projects-index a.is-active::after {
        animation: none;
        transform: scaleX(1);
      }

      .project-card,
      .project-card--extra {
        opacity: 1;
        transform: none;
        transition: none;
      }
    }

/* ============================================================
   PAGE: Insights
   ============================================================ */
.insights-hero {
      position: relative;
      min-height: 52vh;
      min-height: 52dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: calc(4.5rem + 6rem) 0 4rem;
      background-color: var(--color-bg-primary);
      background-image: url('../assets/images/hero/hero-insights.jpg');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      overflow: hidden;
    }

.insights-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background:
        linear-gradient(
          to right,
          rgba(250, 250, 248, 0.92) 0%,
          rgba(250, 250, 248, 0.72) 42%,
          rgba(250, 250, 248, 0.35) 68%,
          rgba(250, 250, 248, 0.12) 100%
        ),
        linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0.55) 0%,
          rgba(250, 250, 248, 0.38) 45%,
          rgba(250, 250, 248, 0.55) 72%,
          rgba(250, 250, 248, 0.94) 100%
        );
      pointer-events: none;
    }

.insights-hero::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 4rem;
      z-index: 0;
      background: linear-gradient(to bottom, transparent, var(--color-bg-primary));
      pointer-events: none;
    }

.insights-hero .hero-pattern {
      position: absolute;
      inset: 0;
      z-index: 0;
      opacity: 0.04;
      pointer-events: none;
    }

.insights-hero .hero-pattern svg {
      width: 100%;
      height: 100%;
    }

.insights-hero-inner {
      position: relative;
      z-index: 1;
    }

.insights-hero .eyebrow,
    .insights-hero__title {
      text-shadow:
        0 0 32px rgba(255, 255, 255, 0.95),
        0 0 12px rgba(255, 255, 255, 0.85),
        0 1px 3px rgba(250, 250, 248, 0.75);
    }

.insights-hero__title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(3rem, 7vw, 5rem);
      line-height: 1.02;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      max-width: 42rem;
      margin-bottom: 0;
    }

.insights-hero__line {
      display: block;
      width: 0;
      height: 2px;
      background: var(--color-accent);
      margin-top: 1.75rem;
      margin-bottom: 2rem;
      animation: insightsHeroLineIn 0.8s var(--ease-out) 0.35s forwards;
    }

.insights-hero__lead {
      font-size: 1.125rem;
      line-height: 1.75;
      color: var(--color-text-secondary);
      max-width: 37.5rem;
      margin-bottom: 0.75rem;
      text-shadow:
        0 0 28px rgba(255, 255, 255, 0.95),
        0 0 10px rgba(255, 255, 255, 0.8),
        0 1px 2px rgba(250, 250, 248, 0.7);
    }

.insights-hero__updated {
      font-size: 0.875rem;
      color: var(--color-text-tertiary);
      margin-bottom: 0;
      text-shadow:
        0 0 24px rgba(255, 255, 255, 0.95),
        0 0 8px rgba(255, 255, 255, 0.75),
        0 1px 2px rgba(250, 250, 248, 0.65);
    }

.insights-subnav-wrap {
      position: sticky; top: var(--site-nav-offset); z-index: 50;
      background: rgba(250, 250, 248, 0.92);
      backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--color-border-subtle);
      transition: top 0.35s var(--ease-out), box-shadow 0.25s var(--ease-out);
    }

.insights-subnav-wrap.is-stuck { box-shadow: 0 4px 16px rgba(6, 26, 49, 0.06); }

.insights-index {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.75rem;
      padding: 0.875rem 0;
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-text-tertiary);
    }

.insights-index__sep {
      margin: 0 0.15rem;
      color: var(--color-border-default);
      user-select: none;
    }

.insights-index a {
      display: inline-block; position: relative; color: var(--color-text-secondary);
      padding-bottom: 0.35rem; min-height: 2.75rem; line-height: 2.75rem;
      transition: color 0.25s ease;
    }

.insights-index a::after {
      content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
      background: var(--color-text-primary); transform: scaleX(0); transform-origin: left;
    }

.insights-index a.is-active { color: var(--color-accent); }

.insights-index a.is-active::after { animation: insightsNavUnderline 0.45s var(--ease-out) forwards; }

.insights-index a:hover, .insights-index a:focus-visible { color: var(--color-accent); }

.insights-index a.is-active:hover, .insights-index a.is-active:focus-visible { color: var(--color-accent); }

.insights-main { padding: 4rem 0 var(--space-section-y); }

.insights-section { scroll-margin-top: var(--insights-scroll-offset); padding-bottom: 5rem; }

.insights-section:last-child { padding-bottom: 0; }

.insights-section__title {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.1;
      letter-spacing: -0.02em; margin-bottom: 0.75rem;
    }

.insights-section__sub {
      font-size: 1rem; color: var(--color-text-secondary);
      max-width: 42rem; margin-bottom: 2.5rem; line-height: 1.65;
    }

.insights-divider {
      border: none; height: 0.5px; background: var(--color-border-default);
      margin: 0 0 5rem;
    }

@media (max-width: 767px) {
      .insights-index { flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 1rem 0; }
      .insights-index__sep { display: none; }
      .news-featured { grid-template-columns: 1fr; }
      .news-featured__media { min-height: 200px; }
      .news-featured__img { min-height: 200px; }
      .news-featured__body { padding: 1.5rem; }
      .news-grid { grid-template-columns: 1fr; }
      .insights-main { padding-top: 3rem; }
    }

@media (prefers-reduced-motion: reduce) {
      .fade-up { opacity: 1; transform: none; transition: none; }
      .insights-hero__line { animation: none; width: 3.75rem; }
      .insights-index a.is-active::after { animation: none; transform: scaleX(1); }
      html { scroll-behavior: auto; }
    }

#price-history-heading-link:hover { color: var(--color-text-primary); }

[data-price-history-footer-btn]:hover {
          border-color: var(--color-accent);
          color: var(--color-accent);
        }

@media (max-width: 767px) {
          #price-charts-header-grid { grid-template-columns: 1fr; }
          #price-history-heading-link { grid-column: 1; grid-row: 4; margin-top: 0.75rem; }
          [data-price-history-footer] {
            flex-direction: column;
            align-items: flex-start;
            gap: 0.75rem;
          }
        }

/* ============================================================
   PAGE: Contact
   ============================================================ */
.contact-hero {
      position: relative;
      min-height: 52vh;
      min-height: 52dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: calc(4.5rem + 6rem) 0 4rem;
      background-color: var(--color-bg-primary);
      background-image: url('../assets/images/hero/hero-contact.jpg');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      overflow: hidden;
    }

.contact-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background:
        linear-gradient(
          to right,
          rgba(250, 250, 248, 0.92) 0%,
          rgba(250, 250, 248, 0.72) 42%,
          rgba(250, 250, 248, 0.35) 68%,
          rgba(250, 250, 248, 0.12) 100%
        ),
        linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0.55) 0%,
          rgba(250, 250, 248, 0.38) 45%,
          rgba(250, 250, 248, 0.55) 72%,
          rgba(250, 250, 248, 0.94) 100%
        );
      pointer-events: none;
    }

.contact-hero::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 4rem;
      z-index: 0;
      background: linear-gradient(to bottom, transparent, var(--color-bg-primary));
      pointer-events: none;
    }

.contact-hero .hero-pattern {
      position: absolute;
      inset: 0;
      z-index: 0;
      opacity: 0.04;
      pointer-events: none;
    }

.contact-hero .hero-pattern svg {
      width: 100%;
      height: 100%;
    }

.contact-hero-inner {
      position: relative;
      z-index: 1;
    }

.contact-hero .eyebrow,
    .contact-hero__title {
      text-shadow:
        0 0 32px rgba(255, 255, 255, 0.95),
        0 0 12px rgba(255, 255, 255, 0.85),
        0 1px 3px rgba(250, 250, 248, 0.75);
    }

.contact-hero__title {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(3rem, 7vw, 5rem);
      line-height: 1.02;
      letter-spacing: -0.02em;
      color: var(--color-text-primary);
      max-width: 42rem;
      margin-bottom: 0;
    }

.contact-hero__line {
      display: block;
      width: 0;
      height: 2px;
      background: var(--color-accent);
      margin-top: 1.75rem;
      margin-bottom: 2rem;
      animation: contactHeroLineIn 0.8s var(--ease-out) 0.35s forwards;
    }

.contact-hero__lead {
      font-size: 1.125rem;
      line-height: 1.75;
      color: var(--color-text-secondary);
      max-width: 37.5rem;
      margin-bottom: 0;
      text-shadow:
        0 0 28px rgba(255, 255, 255, 0.95),
        0 0 10px rgba(255, 255, 255, 0.8),
        0 1px 2px rgba(250, 250, 248, 0.7);
    }

.contact-main { padding: 4rem 0 var(--space-section-y); }

.contact-hero .contact-hero-inner.container,
    .contact-main > .container {
      max-width: var(--container-max);
      padding-left: clamp(1rem, 2vw, 1.5rem);
      padding-right: clamp(1rem, 2vw, 1.5rem);
    }

.contact-grid {
      display: grid;
      grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
      gap: clamp(2.75rem, 5.5vw, 4.25rem);
      align-items: start;
      width: 100%;
      margin: 0 auto;
    }

.contact-form-col {
      padding: clamp(1.5rem, 3vw, 2.25rem);
      background: var(--color-bg-surface);
      border: 0.5px solid var(--color-border-accent);
      box-shadow:
        inset 0 2px 0 var(--color-accent),
        0 4px 24px rgba(6, 26, 49, 0.06);
    }

.contact-section__title {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.15;
      letter-spacing: -0.02em; color: var(--color-text-primary); margin-bottom: 0.75rem;
    }

.contact-section__sub {
      font-size: 0.875rem; line-height: 1.55; color: var(--color-text-secondary);
      margin-bottom: 2rem; max-width: 28rem;
    }

.contact-form-wrap { min-height: 20rem; }

.contact-form { display: flex; flex-direction: column; gap: 1.25rem; }

.contact-form__submit { margin-top: 0.5rem; align-self: flex-start; }

.contact-form__submit .btn { width: auto; }

.contact-success {
      display: none; text-align: center; padding: 3rem 1.5rem;
    }

.contact-success.is-visible { display: block; }

.contact-success__icon {
      width: 3rem; height: 3rem; margin: 0 auto 1.5rem;
      display: flex; align-items: center; justify-content: center;
      border: 1.5px solid var(--color-accent); color: var(--color-accent);
      font-size: 1.25rem; font-weight: 500; border-radius: var(--border-radius-md);
    }

.contact-success__title {
      font-family: var(--font-display); font-size: 1.75rem;
      font-weight: 400; color: var(--color-text-primary); margin-bottom: 0.75rem;
    }

.contact-success__text {
      font-size: 1rem; color: var(--color-text-secondary);
      margin-bottom: 1.5rem; max-width: 22rem; margin-left: auto; margin-right: auto;
    }

.contact-form-wrap.is-success .contact-form { display: none; }

.contact-info { padding-top: 0.25rem; }

.contact-info .eyebrow { margin-bottom: 0.75rem; }

.contact-info .contact-section__title { margin-bottom: 0.5rem; }

.contact-info__blocks { display: flex; flex-direction: column; gap: 1rem; }

.contact-info__block {
      display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start;
    }

.contact-info__icon {
      width: 2rem; height: 2rem; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      color: var(--color-accent); border: 0.5px solid var(--color-border-subtle);
      background: var(--color-bg-surface);
    }

.contact-info__icon svg { display: block; }

.contact-info__label {
      font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--color-text-tertiary); margin-bottom: 0.2rem;
    }

.contact-info__value {
      font-size: 0.9375rem; line-height: 1.5; color: var(--color-text-primary);
    }

.contact-info__value a {
      display: inline-flex; align-items: center;
      transition: color 0.2s ease;
    }

.contact-info__value a:hover { color: var(--color-accent); }

.contact-info__map {
      margin-top: 0.25rem;
    }

.contact-info__map .contact-info__label {
      margin-bottom: 0.5rem;
    }

.contact-info__map-frame {
      overflow: hidden;
      width: 100%;
      max-width: 100%;
      border: 0.5px solid var(--color-border-subtle);
      border-radius: var(--border-radius-md);
      background: var(--color-bg-elevated);
    }

.contact-info__map-frame iframe {
      display: block;
      width: 100%;
      height: 11.5rem;
      border: 0;
    }

.contact-info__map-link {
      display: inline-block;
      margin-top: 0.5rem;
      font-size: 0.75rem;
      letter-spacing: 0.04em;
      color: var(--color-text-tertiary);
      transition: color 0.2s ease;
    }

.contact-info__map-link:hover { color: var(--color-accent); }

.contact-info__rule {
      border: none; height: 0.5px; background: var(--color-border-default);
      margin: 1.25rem 0;
    }

.contact-info__hours-lines p {
      font-size: 0.8125rem; line-height: 1.5; color: var(--color-text-secondary);
    }

.contact-info__note {
      font-size: 0.8125rem; font-style: italic; color: var(--color-text-tertiary);
      margin-top: 0.75rem; line-height: 1.5;
    }

@media (max-width: 767px) {
      .contact-grid { grid-template-columns: 1fr; gap: 3.5rem; }
      .contact-info { order: 2; }
      .contact-form-col { order: 1; }
      .contact-info__map-frame iframe { height: 10rem; }
      .contact-form__submit { width: 100%; }
      .contact-form__submit .btn { width: 100%; }
    }

@media (prefers-reduced-motion: reduce) {
      .fade-up { opacity: 1; transform: none; transition: none; }
      .contact-hero__line { animation: none; width: 3.75rem; }
      html { scroll-behavior: auto; }
    }

/* ============================================================
   PAGE: Insight Event
   ============================================================ */
.event-main { padding: calc(4.5rem + 2rem) 0 5rem; }

.back-link {
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      font-size: 0.9rem;
      color: var(--color-text-secondary);
      margin-bottom: 1.5rem;
    }

.back-link:hover { color: var(--color-text-primary); }

.event-date {
      color: var(--color-text-secondary);
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-size: 0.76rem;
      margin-bottom: 0.75rem;
    }

.event-title {
      font-family: var(--font-display);
      font-size: clamp(2rem, 4vw, 3rem);
      line-height: 1.15;
      margin-bottom: 0.9rem;
    }

.event-excerpt {
      color: var(--color-text-secondary);
      max-width: 54rem;
      margin-bottom: 2rem;
    }

.single-image-wrap {
      border: 1px solid var(--color-border-subtle);
      background: var(--color-bg-surface);
      margin-bottom: 2rem;
      overflow: hidden;
      padding: 1rem;
    }

.single-image-wrap img {
      width: auto;
      max-width: 100%;
      max-height: 30rem;
      height: auto;
      display: block;
      margin: 0 auto;
    }

.gallery-stage {
      position: relative;
      background: var(--color-bg-dark);
    }

.gallery-stage img {
      width: 100%;
      max-height: 38rem;
      object-fit: contain;
      margin: 0 auto;
    }

.gallery-controls {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      pointer-events: none;
    }

.gallery-btn {
      pointer-events: auto;
      margin: 0 0.8rem;
      border: 1px solid rgba(246, 238, 218, 0.5);
      background: rgba(12, 28, 46, 0.6);
      color: var(--color-text-inverse);
      width: 2.5rem;
      height: 2.5rem;
      cursor: pointer;
      font-size: 1.1rem;
    }

.gallery-thumbs {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
      gap: 0.7rem;
      padding: 0.9rem;
      border-top: 1px solid var(--color-border-subtle);
      background: #f6f3eb;
    }

.gallery-thumb {
      border: 1px solid var(--color-border-subtle);
      background: #fff;
      padding: 0;
      cursor: pointer;
    }

.gallery-thumb.is-active {
      border-color: var(--color-accent);
      box-shadow: 0 0 0 1px var(--color-accent) inset;
    }

.gallery-thumb img {
      width: 100%;
      height: 70px;
      object-fit: cover;
    }

.event-body {
      background: var(--color-bg-surface);
      border: 1px solid var(--color-border-subtle);
      padding: 1.4rem;
      color: var(--color-text-secondary);
    }

.event-body p + p { margin-top: 1rem; }

.event-description-image {
      margin-top: 1.2rem;
      border: 1px solid var(--color-border-subtle);
      background: #f6f3eb;
      overflow: hidden;
    }

.event-description-image img {
      width: 100%;
      height: auto;
      display: block;
    }

.event-actions {
      margin-top: 1rem;
    }

.event-pdf-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      padding: 0.85rem 1.35rem;
      background: var(--color-accent);
      color: #0c1c2e;
      border: 1px solid var(--color-accent);
      font-size: 0.82rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

.event-pdf-btn:hover {
      filter: brightness(0.95);
    }

.empty-state {
      border: 1px solid var(--color-border-subtle);
      background: var(--color-bg-surface);
      padding: 1.4rem;
      color: var(--color-text-secondary);
    }

@media (max-width: 900px) {
      .nav-links, .nav-cta-wrap { display: none; }
      .nav-toggle { display: flex; }
      .mobile-panel {
        display: block; position: fixed; inset: 4.5rem 0 0;
        background: var(--color-bg-surface); padding: 2rem;
        transform: translateY(-100%); opacity: 0; visibility: hidden;
        transition: transform 0.35s var(--ease-out), opacity 0.35s ease, visibility 0.35s;
        z-index: 99; border-top: 1px solid var(--color-border-subtle);
      }
      .nav.open .mobile-panel { transform: translateY(0); opacity: 1; visibility: visible; }
      .mobile-panel ul { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2rem; list-style: none; }
      .mobile-panel a { font-size: 1rem; color: var(--color-text-secondary); }
      .mobile-panel .btn-primary { width: 100%; }
      .event-main { padding-top: calc(4.5rem + 1rem); }
      .gallery-stage img { max-height: 25rem; }
      .single-image-wrap img { max-height: 20rem; }
      .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      .footer-brand { grid-column: 1 / -1; }
    }
