/*
Theme Name:   Midwestern Shooter&#039;s Supply (Layerly)
Template:     layerly-base
Version:      1.0.0
Layerly Site: midwesternshooters-layerly-dev
Description:  Per-site theme for Midwestern Shooter&#039;s Supply. Holds ONLY this site's own CSS, bespoke sections and page templates. The framework lives in the parent and is updated fleet-wide — never copy a framework file in here without recording it as a fork.
*/

/* Layerly — per-site CSS split from the framework by css-split.mjs (Phase 3, 2026-09-29).
   49 token overrides, 1201 rules that are new or differ from the framework release this site started from.
   Framework rules identical to that release stay in the parent and update with it. */

:root {
  --color-1: #D6CDB8;
  --color-2: #EB7D00;
  --color-3: #2E2910;
  --color-4: #FCF2E5;
  --color-5: #6B6350;
  --color-6: #8A7F6373;
  --color-7: #F3E6D2;
  --color-8: #D6CDB812;
  --color-9: #37321A;
  --color-10: #8A7F63;
  --color-primary: var(--color-2);
  --color-accent: var(--color-2);
  --color-highlight: var(--color-2);
  --color-text: var(--color-3);
  --color-text-muted: var(--color-5);
  --color-bg: var(--color-4);
  --color-surface: var(--color-7);
  --color-border: var(--color-6);
  --color-bg-dark: var(--color-3);
  --color-text-on-dark: var(--color-1);
  --color-muted-on-dark: #A69C85;
  --color-border-on-dark: var(--color-8);
  --color-on-primary: var(--color-3);
  --color-primary-ink: #A34F00;
  --font-1: 'Barlow', system-ui, sans-serif;
  --font-2: 'Oswald', system-ui, sans-serif;
  --font-display: var(--font-2);
  --font-body: var(--font-1);
  --font-subheading: var(--font-1);
  --text-xl: 24px;
  --text-h4: 28px;
  --text-h3: 32px;
  --text-h2: 44px;
  --text-ml: 18px;
  --text-h1: 64px;
  --leading-tight: 1.05;
  --leading-head: 1.15;
  --leading-body: 1.7;
  --leading-snug: 1.5;
  --weight-semi: 600;
  --tracking-eyebrow: 2.2px;
  --tracking-label: 1.4px;
  --space-2xl: clamp(36px, 5vw, 56px);
  --space-3xl: clamp(44px, 6vw, 72px);
  --space-section: clamp(48px, 9vw, 120px);
  --radius-sm: 2px;
  --radius-md: 2px;
  --radius-lg: 2px;
  --container-wide: 1400px;
}

.eyebrow {
  display: inline-block;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
  font-family: var(--font-body);
  font-weight: var(--weight-semi);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--space-lg);
  text-decoration: none;
  border-radius: var(--radius-md);
  border: 2px solid transparent;
  cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s, transform .1s;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semi);
  line-height: 21px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.btn--primary {
  background: var(--color-primary);
  color: var(--color-on-primary);
}

.btn--primary:hover {
  filter: brightness(.92);
  background: var(--color-primary-ink);
  border-color: var(--color-primary-ink);
  color: var(--color-4);
}

.intro-split__cta {
  margin-top: var(--space-lg);
  display: flex;
  gap: var(--space-md);
  padding-top: var(--space-md);
}

.cta-banner {
  background: var(--section-bg-color, var(--color-2));
  padding-block: 80px;
  color: var(--color-on-primary);
}

.cta-banner__heading {
  color: var(--color-on-primary);
  margin: 0;
}

.cta-banner__body {
  margin: 0;
  opacity: .9;
  max-width: 560px;
  text-align: center;
  color: var(--color-on-primary);
}

.cta-banner__ctas {
  flex-wrap: wrap;
  display: flex;
  gap: var(--space-md);
  align-items: center;
  /* Centre the button row too — without this they pack left once the row
     wraps to a stacked column at narrow widths. */
  justify-content: center;
  margin: 0;
}

.cta-banner .btn--primary {
  background: var(--color-3);
  border: 1px solid var(--color-3);
  color: var(--color-4);
}

.cta-banner .btn--ghost {
  border-color: var(--color-surface);
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-on-primary);
}

@media (max-width:767px) {
  .cta-banner .cta-banner__inner { flex-direction: column; align-items: center; }
}

.trust-bar {
  background: var(--section-bg-color, var(--color-3));
  padding-block: var(--space-section);
}

.trust-bar__heading {
  letter-spacing: .1em;
  margin-bottom: var(--space-lg);
  max-width: 700px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  text-align: left;
  color: var(--color-4);
}

.trust-bar__item {
  opacity: .75;
  transition: opacity .2s;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 89px;
  padding: 0;
  border: 0;
}

.trust-bar__label {
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-med);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-1);
  text-align: center;
}

.form__hp { display: none; position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.hero--full-bg .hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-lg);
  text-align: left;
  max-width: var(--container-max);
  /* .hero__inner also carries .wrap, which supplies the page gutter
     (16px mobile / 24px from 768px). Zeroing it here ran the hero copy
     flush to the viewport edge on small screens. */
  padding-top: 92px;
}

.hero--full-bg .hero__title {
  margin-bottom: var(--space-md);
  max-width: 900px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 67px;
  text-transform: uppercase;
  color: var(--color-4);
}

.hero--full-bg .hero__subtitle {
  opacity: .92;
  margin-bottom: var(--space-xl);
  max-width: 620px;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-1);
}

.hero--full-bg .hero__ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: var(--space-md);
}

.nav--mwss {
  --nav-bg: transparent;
  --nav-fg: var(--color-1);
  --nav-height: 92px;
  --mobile-menu-bg: var(--color-3);
  --mobile-menu-fg: var(--color-4);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: auto;
  max-width: 100%;
  z-index: 1000;
  background: var(--nav-bg);
  color: var(--nav-fg);
  border-bottom: 0;
}

.nav--mwss .nav__inner {
  padding-inline: 120px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  min-height: var(--nav-height);
  max-width: 100%;
  box-sizing: border-box;
}

.nav--mwss .nav__logo {
  display: block;
  line-height: 0;
}

.nav--mwss .nav__logo-img {
  width: 170px;
  height: 79px;
  object-fit: contain;
  display: block;
}

.nav--mwss .nav__logo-text {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  color: var(--color-4);
  line-height: 1.2;
}

.nav--mwss .nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 40px;
}

.nav--mwss .nav__list a {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-med);
  line-height: 21px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-1);
}

.nav--mwss .nav__list a:hover, .nav--mwss .nav__list a:focus-visible {
  color: var(--color-2);
}

.nav--mwss .nav__actions {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

.nav--mwss .nav__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  background: var(--color-2);
  border: 1px solid var(--color-2);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semi);
  line-height: 21px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-on-primary);
  text-decoration: none;
}

.nav--mwss .nav__cta:hover {
  background: var(--color-primary-ink);
  border-color: var(--color-primary-ink);
  color: var(--color-4);
}

.nav--mwss .ly-burger {
  display: none;
  color: var(--color-1);
}

.footer--mwss {
  --footer-bg: var(--color-3);
  --footer-fg: var(--color-1);
  --footer-copyright-bg: var(--color-3);
  --footer-copyright-fg: var(--color-1);
  background: var(--section-bg-color, var(--footer-bg));
  color: var(--footer-fg);
  padding-block: 0;
}

.footer--mwss .footer__inner {
  padding-inline: 120px;
  display: block;
  padding-block: 80px 56px;
  max-width: 100%;
  box-sizing: border-box;
}

.footer--mwss .footer__columns {
  display: grid;
  grid-template-columns: 300px repeat(4, minmax(0, 1fr));
  gap: 56px;
  align-items: start;
  padding-bottom: 24px;
}

.footer--mwss .footer__brand {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.footer--mwss .footer__logo {
  line-height: 0;
}

.footer--mwss .footer__logo-img {
  width: 200px;
  height: 93px;
  object-fit: contain;
  display: block;
}

.footer--mwss .footer__contact {
  margin: 0;
}

.footer--mwss .footer__contact p, .footer--mwss .footer__contact-person {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-reg);
  line-height: 24px;
  color: var(--color-1);
}

.footer--mwss .footer__contact p:last-child {
  margin-bottom: 0;
}

.footer--mwss .footer__contact-name {
  display: block;
}

.footer--mwss .footer__contact-email, .footer--mwss .footer__phone {
  color: var(--color-1);
  text-decoration: none;
}

.footer--mwss .footer__contact-email:hover, .footer--mwss .footer__phone:hover {
  color: var(--color-2);
}

.footer--mwss .footer__social {
  list-style: none;
  margin: var(--space-sm) 0 0;
  padding: 0;
  display: flex;
  gap: var(--space-md);
}

.footer--mwss .footer__social-link {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-1);
  text-decoration: none;
}

.footer--mwss .footer__social-link:hover {
  color: var(--color-2);
}

.footer--mwss .footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.footer--mwss .footer__col-heading {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.footer--mwss .footer__col-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.footer--mwss .footer__col-item, .footer--mwss .footer__col-link {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-reg);
  line-height: 24px;
  color: var(--color-1);
  text-decoration: none;
}

.footer--mwss .footer__col-link:hover, .footer--mwss .footer__col-link:focus-visible {
  color: var(--color-2);
}

.footer--mwss .footer__rule {
  height: 1px;
  background: #8A7F63;
}

.footer--mwss .footer__colophon {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-lg);
  padding-top: 24px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-1);
}

.footer--mwss .footer__colophon a {
  color: var(--color-1);
}

.footer--mwss .footer__colophon a:hover {
  color: var(--color-2);
}

@media (max-width:1100px) {
  .nav--mwss .nav__inner {
    padding-inline: var(--space-md);
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__logo-img {
    width: auto;
    max-width: 55vw;
    height: 56px;
  }
}

@media (max-width:1100px) {
  .nav--mwss .ly-burger {
    display: inline-flex;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__cta {
    display: none;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__menu {
    position: fixed;
    top: var(--wp-adminbar-offset, 0px);
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
    display: none;
    flex-direction: column;
    /* Content runs from the top under the bar, not floated mid-screen: the
       furniture header, the list, then the call CTA pinned at the bottom. */
    justify-content: flex-start;
    /* Without this the drawer inherits align-items:center from the desktop bar,
       which shrink-wraps the header and footer and centres them while the list
       (width:100%) stays flush left — the ragged left edge. */
    align-items: flex-start;
    gap: var(--space-xl);
    background: var(--mobile-menu-bg);
    padding: 112px var(--space-lg) var(--space-xl);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__menu[data-mobile-menu] > * {
    width: 100%;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__menu[data-mobile-menu].is-open, .nav--mwss.nav--open .nav__menu {
    display: flex;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__menu[data-mobile-menu] .nav__drawer-head {
    display: flex;
    /* The page-section furniture splits eyebrow left / meta right, but in a
       375px drawer that reads as two competing edges. Stacked, both labels
       start on the drawer's own 24px edge. */
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: var(--space-xs);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid #8A7F6366;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__drawer-eyebrow {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: var(--weight-semi);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--color-2);
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__drawer-meta {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: var(--weight-semi);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--mobile-menu-fg);
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__list li {
    border-bottom: 1px solid #8A7F6333;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__list a {
    display: block;
    padding-block: var(--space-lg);
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: var(--weight-bold);
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--mobile-menu-fg);
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__list a:hover,
  .nav--mwss .nav__list a:focus-visible {
    color: var(--color-2);
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__menu[data-mobile-menu] .nav__drawer-foot {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-md);
    margin-top: auto;
    padding-top: var(--space-lg);
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__drawer-cta {
    width: 100%;
    /* .btn centres its label; the drawer reads as one left-aligned column, so
       the button's text starts on the same edge as everything else. */
    justify-content: flex-start;
    text-align: left;
  }
}

@media (max-width:1100px) {
  .nav--mwss .nav__drawer-address {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    line-height: 1.5;
    color: var(--color-1);
  }
}

@media (max-width:1100px) {
  .footer--mwss .footer__inner {
    padding-inline: var(--space-lg);
  }
}

@media (max-width:1100px) {
  .footer--mwss .footer__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-xl);
  }
}

@media (max-width:1100px) {
  .footer--mwss .footer__brand {
    grid-column: 1 / -1;
  }
}

@media (max-width:1100px) {
  .footer--mwss .footer__colophon {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
  }
}

@media (max-width:1100px) {
  .section--aisles .cpt-loop__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .section--range_split .intro-split__inner { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .section--range_split .intro-split__content { grid-column: 1; padding-top: var(--space-lg); }
}

@media (max-width:1100px) {
  .section--range_split .intro-split__media { grid-column: 1; margin-top: 0; height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__inner { grid-template-columns: 1fr; grid-template-rows: auto; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__title,
    .section--staff_split .intro-split__content,
    .section--staff_split .intro-split__media { grid-column: 1; grid-row: auto; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__media { height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__media img { position: static; height: 320px; }
}

@media (max-width:1100px) {
  .spec-panel__panel { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .spec-panel--image-right .spec-panel__media { order: 0; }
}

@media (max-width:1100px) {
  .spec-panel__media { min-height: 280px; }
}

@media (max-width:1100px) {
  .spec-panel__copy { padding: var(--space-xl); }
}

@media (max-width:1100px) {
  .trust-bar__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .news-board__row { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .news-board__social { min-height: 320px; }
}

@media (max-width:1100px) {
  .news-board__social-embed { min-height: 220px; }
}

@media (max-width:1100px) {
  .hours-bar__row { grid-template-columns: 1fr; gap: var(--space-md); }
}

@media (max-width:1100px) {
  .hours-bar__item { border-left: 0; padding-inline: 0; }
}

@media (max-width:1100px) {
  .hero--full-bg { --hero-min-h: 560px; }
}

@media (max-width:1100px) {
  .hero--full-bg {
      --hero-min-h: 560px;
      padding-top: clamp(48px, 9vw, 120px);
      padding-bottom: clamp(48px, 9vw, 120px);
    }
}

@media (max-width:1100px) {
  .hero--full-bg .hero__inner { padding-top: 92px; }
}

@media (max-width:1100px) {
  .cta-banner { padding-block: clamp(40px, 10vw, 80px); }
}

@media (max-width:1100px) {
  .hero--full-bg .hero__title { font-size: clamp(34px, 8vw, 64px); line-height: 1.06; }
}

@media (max-width:1100px) {
  .intro-split__stats { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .intro-split__cta { flex-wrap: wrap; }
}

.intro-split__furniture, .news-board__furniture, .trust-bar__furniture, .cpt-loop__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: var(--space-md);
}

.intro-split__meta, .news-board__meta, .trust-bar__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.intro-split__rule, .news-board__rule, .trust-bar__rule {
  height: 1px;
  background: var(--color-6);
}

.hero--full-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(46,41,16,.94) 0%, rgba(46,41,16,.8) 60%, rgba(46,41,16,.22) 100%);
  z-index: 0;
}

.hero--full-bg > * {
  position: relative;
  z-index: 1;
}

.hero--full-bg .eyebrow, .hero--full-bg .hero__eyebrow {
  color: var(--color-2);
}

.hero--full-bg .btn--ghost, .hero--full-bg .btn--secondary {
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-1);
}

.hero--full-bg .btn--ghost:hover, .hero--full-bg .btn--secondary:hover {
  border-color: var(--color-2);
  color: var(--color-2);
}

.hours-bar {
  background: var(--section-bg-color, var(--color-3));
  color: var(--color-1);
  padding-block: 0;
}

.hours-bar__rule {
  height: 2px;
  background: var(--color-2);
}

.hours-bar__row {
  gap: var(--space-md);
  display: grid;
  grid-template-columns: 1fr 1px 1fr 1px 1fr;
  padding-block: var(--space-md);
}

.hours-bar__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding-inline: 40px;
  border-left: 0;
}

.hours-bar__item:first-child {
  border-left: 0;
  padding-inline-start: 0;
}

.hours-bar__label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.hours-bar__value {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-1);
  text-decoration: none;
}

.hours-bar__value--link:hover {
  color: var(--color-2);
}

.section--aisles {
  padding-block: var(--space-section);
}

.section--aisles .wrap {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.section--aisles .section-head, .section--aisles .section-header {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  text-align: left;
  max-width: none;
}

.section--aisles .eyebrow {
  color: var(--color-2);
}

.section--aisles .section-head__heading, .section--aisles .section-header__heading, .section--aisles .cpt-loop__heading {
  max-width: 700px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  text-align: left;
  color: var(--color-4);
}

.section--aisles .cpt-loop__list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-lg);
  padding-top: var(--space-lg);
}

.section--aisles .cpt-loop__card {
  position: relative;
  height: 330px;
  background: transparent;
  border: 1px solid var(--color-6);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.section--aisles .cpt-loop__link {
  display: block;
  height: 100%;
  text-decoration: none;
}

.section--aisles .cpt-loop__media {
  position: absolute;
  inset: 0;
  margin: 0;
  aspect-ratio: auto;
}

.section--aisles .cpt-loop__media::after {
  content: "";
  position: absolute;
  inset: 0;
  /* Scrim lightened and pushed down so the photo reads through the top two
     thirds of the card. Ramp completes by 68% — the text block starts ~70%
     down, so worst case (a blown-out white photo behind it) the 28px title
     still measures 4.8:1 and the excerpt 5.9:1 against bone. Do not raise the
     42% stop or lower the 68% stop without re-measuring. */
  background: linear-gradient(180deg, rgba(46,41,16,0) 0%, rgba(46,41,16,.08) 42%, rgba(46,41,16,.78) 68%, rgba(46,41,16,.86) 100%);
}

.section--aisles .cpt-loop__image, .section--aisles .cpt-loop__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section--aisles .cpt-loop__body {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-lg);
  background: transparent;
}

.section--aisles .cpt-loop__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-bold);
  line-height: 34px;
  color: var(--color-4);
}

.section--aisles .cpt-loop__excerpt {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-1);
}

.section--aisles .cpt-loop__more {
  display: none;
}

.section--range_split {
  padding-block: var(--space-section);
}

.section--range_split .intro-split__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 72px;
  row-gap: var(--space-lg);
  align-items: start;
}

.section--range_split .intro-split__furniture, .section--range_split .intro-split__rule, .section--range_split .intro-split__title {
  grid-column: 1 / -1;
}

.section--range_split .intro-split__meta {
  color: var(--color-5);
}

.section--range_split .intro-split__rule {
  background: #8A7F63;
}

.section--range_split .intro-split__title {
  max-width: 584px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.section--range_split .intro-split__content {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  padding-top: 40px;
}

.section--range_split .intro-split__body p {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-5);
}

.section--range_split .intro-split__media {
  min-height: 320px;
  grid-column: 2;
  margin-top: 40px;
  height: 560px;
  border: 1px solid #8A7F63;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.section--range_split .intro-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.intro-split__details {
  display: flex;
  flex-direction: column;
}

.intro-split__detail {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: var(--space-md);
  padding-block: var(--space-md);
  border-top: 1px solid #8A7F63;
}

.intro-split__detail-mark {
  display: block;
  width: 18px;
  height: 2px;
  margin-top: var(--space-md);
  background: var(--color-2);
}

.intro-split__detail-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.intro-split__detail-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.intro-split__detail-body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.btn--on-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  background: transparent;
  border: 1px solid #8A7F63;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semi);
  line-height: 21px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-3);
  text-decoration: none;
}

.btn--on-light:hover {
  border-color: var(--color-2);
  color: var(--color-primary-ink);
}

.spec-panel {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 0 var(--space-section);
}

.spec-panel__panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 527px;
  background: var(--color-7);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.spec-panel--image-right .spec-panel__media {
  order: 0;
}

.spec-panel__media {
  min-height: 527px;
  border: 1px solid #8A7F6380;
  border-radius: var(--radius-sm);
}

.spec-panel__image, .spec-panel__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.spec-panel__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: 56px;
}

.spec-panel__eyebrow {
  color: var(--color-primary-ink);
}

.spec-panel__heading {
  max-width: 520px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-bold);
  line-height: 38px;
  color: var(--color-3);
}

.spec-panel__rows {
  margin: 0;
}

.spec-panel__row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: var(--space-lg);
  /* Symmetric vertical padding — with padding-top alone each row's text sat
     tight against the divider of the row beneath it. */
  padding-top: var(--space-md);
  padding-bottom: var(--space-md);
  border-top: 1px solid var(--color-6);
}

.spec-panel__term {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.spec-panel__detail {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.section--staff_split {
  padding-block: 0 var(--space-section);
}

.section--staff_split .intro-split__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr;
  gap: 72px;
  align-items: start;
}

.section--staff_split .intro-split__title {
  grid-column: 1;
  grid-row: 1;
}

.section--staff_split .intro-split__content {
  grid-column: 1;
  grid-row: 2;
}

.section--staff_split .intro-split__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  padding-top: var(--space-sm);
}

.section--staff_split .eyebrow {
  color: var(--color-primary-ink);
}

.section--staff_split .intro-split__title {
  max-width: 520px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.section--staff_split .intro-split__body p {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-5);
}

.section--staff_split .intro-split__media {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: stretch;
  min-height: 320px;
  height: 100%;
  /* Positioning context for the absolutely-filled img below: this wrapper's
     height comes from the grid row (stretch), which is indefinite, so a
     percentage height on the img would resolve to auto and let the photo's
     natural ratio size the row instead. */
  position: relative;
  border: 1px solid #8A7F63;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.section--staff_split .intro-split__media img {
  /* Absolutely filled rather than height:100% — the wrapper's height is set
     by the grid row, so a percentage height here would resolve to auto and
     the photo's natural aspect ratio would drive the row's height. */
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.intro-split__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
  padding-top: var(--space-sm);
}

.intro-split__stat {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding: var(--space-md) var(--space-lg);
  background: var(--color-7);
  border: 1px solid #8A7F63;
  border-radius: var(--radius-sm);
}

.intro-split__stat-value {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-bold);
  line-height: 38px;
  color: var(--color-3);
}

.intro-split__stat-label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.trust-bar .wrap {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.trust-bar__eyebrow {
  color: var(--color-2);
}

.trust-bar__meta {
  color: var(--color-1);
}

.trust-bar__logo, .trust-bar__item img {
  max-width: 100%;
  max-height: 89px;
  width: auto;
  object-fit: contain;
  display: block;
}

.news-board {
  background: var(--section-bg-color, var(--color-3));
  padding-block: 0 var(--space-section);
}

.news-board__eyebrow {
  color: var(--color-2);
}

.news-board__meta {
  color: var(--color-1);
}

.news-board__heading {
  max-width: 760px;
  margin: var(--space-lg) 0 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-4);
}

.news-board__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
  padding-top: var(--space-lg);
}

.news-board__cards {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.news-board__card {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: var(--space-lg);
  align-items: start;
  padding: var(--space-lg);
  background: #37321A;
  border: 1px solid #8A7F6366;
  border-radius: var(--radius-sm);
}

.news-board__card-media {
  width: 120px;
  height: 110px;
  border: 1px solid #8A7F6380;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.news-board__card-image, .news-board__card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.news-board__card-copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.news-board__card-kicker {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.news-board__card-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-4);
}

.news-board__card-link {
  color: inherit;
  text-decoration: none;
}

.news-board__card-link:hover {
  color: var(--color-2);
}

.news-board__card-summary {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-1);
}

.news-board__social {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-height: 490px;
  padding: var(--space-lg);
  background: #37321A;
  border: 1px solid #8A7F6366;
  border-radius: var(--radius-sm);
}

.news-board__social-label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.news-board__social-handle {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-4);
}

.news-board__social-embed {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #8A7F6380;
  border-radius: var(--radius-sm);
  min-height: 220px;
}

.news-board__social-placeholder {
  padding: var(--space-lg);
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-1);
  text-decoration: none;
}

.news-board__social-placeholder:hover {
  color: var(--color-2);
}

.cta-banner__inner, .cta-banner__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  /* .cta-banner__inner also carries .wrap, which centres its 1200px box with
     margin-inline: auto. A blanket `margin: 0` cancelled that and pinned the
     container flush left, so the centred content sat 40px left of the
     section's true centre. */
  margin-inline: auto;
}

.cta-banner .eyebrow, .cta-banner__eyebrow {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  text-align: center;
  color: var(--color-on-primary);
}

.cta-banner__heading, .cta-banner__title {
  max-width: 900px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  text-align: center;
  color: var(--color-on-primary);
}

.cta-banner .btn--primary:hover {
  background: var(--color-4);
  border-color: var(--color-4);
  color: var(--color-3);
}

.cta-banner .btn--ghost, .cta-banner .btn--secondary {
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-on-primary);
}

.cta-banner .btn--ghost:hover, .cta-banner .btn--secondary:hover {
  background: var(--color-3);
  border-color: var(--color-3);
  color: var(--color-4);
}

.trust-bar__list {
  flex-wrap: wrap;
  align-items: center;
  justify-content: initial;
  list-style: none;
  margin: 0;
  padding: var(--space-lg) 0 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-lg);
}

.hero--full-bg {
  --hero-bg: var(--color-1);
  --hero-fg: var(--color-surface);
  --hero-overlay: rgba(0,0,0,.45);
  --hero-pad-y: var(--space-xxl);
  --hero-align: left;
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: var(--hero-min-h);
  padding-block: var(--space-section);
  background: var(--section-bg-color, var(--color-3));
  color: var(--color-4);
  overflow: hidden;
  --hero-min-h: 820px;
  margin-top: 0;
  /* Desktop resolves to exactly the Figma 120; scales down on small screens
     so it does not ship a 120px empty band on a 375px viewport. */
  padding-top: clamp(48px, 9vw, 120px);
  padding-bottom: clamp(48px, 9vw, 120px);
}

.hero--full-bg .hero__title {
  font-size: clamp(34px, 8vw, 64px);
  line-height: 1.06;
}

.intro-split__cta {
  flex-wrap: wrap;
}

.section--aisles .section-head__sub, .section--aisles .section-header__sub, .section--aisles .section-head__subheading, .section--aisles .section-header__subheading, .section--aisles .cpt-loop__subheading {
  color: var(--color-1);
}

.section--range_split .eyebrow, .section--range_split .intro-split__eyebrow {
  color: var(--color-primary-ink);
}

.hours-bar__divider {
  display: block;
  width: 1px;
  align-self: stretch;
  background: #8A7F6380;
}

.hours-bar__item:first-of-type {
  padding-inline-start: 0;
}

.cta-banner .btn--ghost:hover {
  background: var(--color-3);
  border-color: var(--color-3);
  color: var(--color-4);
}

.cta-banner__inner {
  padding-block: 0;
}

.cta-banner__body:empty {
  display: none;
}

.cta-banner__body p:empty {
  display: none;
}

.cta-banner .btn {
  min-height: 54px;
  padding: 0 24px;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.section--aisles .cpt-loop__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: var(--space-md);
}

.section--aisles .cpt-loop__eyebrow {
  color: var(--color-2);
}

.section--aisles .cpt-loop__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.section--aisles .cpt-loop__rule {
  height: 1px;
  background: #8A7F63;
}

.section--aisles .cpt-loop__heading {
  max-width: 700px;
  margin: var(--space-lg) 0 0;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  text-align: left;
  color: var(--color-4);
}

.section--aisles .cpt-loop__subheading {
  max-width: 620px;
  margin: var(--space-md) 0 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-1);
}

@media (max-width:1100px) {
  .section--aisles .cpt-loop__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .section--range_split .intro-split__inner { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .section--range_split .intro-split__content { grid-column: 1; padding-top: var(--space-lg); }
}

@media (max-width:1100px) {
  .section--range_split .intro-split__media { grid-column: 1; margin-top: 0; height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__inner { grid-template-columns: 1fr; grid-template-rows: auto; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__title,
    .section--staff_split .intro-split__content,
    .section--staff_split .intro-split__media { grid-column: 1; grid-row: auto; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__media { height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--staff_split .intro-split__media img { position: static; height: 320px; }
}

@media (max-width:1100px) {
  .spec-panel__panel { grid-template-columns: 1fr; min-height: 0; }
}

@media (max-width:1100px) {
  .spec-panel--image-right .spec-panel__media { order: 0; }
}

@media (max-width:1100px) {
  .spec-panel__media { min-height: 280px; }
}

@media (max-width:1100px) {
  .spec-panel__copy { padding: var(--space-xl); }
}

@media (max-width:1100px) {
  .trust-bar__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .news-board__row { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .news-board__social { min-height: 320px; }
}

@media (max-width:1100px) {
  .news-board__social-embed { min-height: 220px; }
}

@media (max-width:1100px) {
  .hours-bar__row { grid-template-columns: 1fr; gap: var(--space-md); padding-block: var(--space-lg); }
}

@media (max-width:1100px) {
  .hours-bar__divider { display: none; }
}

@media (max-width:1100px) {
  .hours-bar__item { padding-inline: 0; border-left: 0; }
}

@media (max-width:600px) {
  .hero--full-bg .hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .hero--full-bg .hero__subtitle { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .section--aisles .cpt-loop__heading,
    .section--range_split .intro-split__title,
    .section--staff_split .intro-split__title,
    .trust-bar__heading,
    .news-board__heading,
    .cta-banner__heading,
    .cta-banner__title { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .spec-panel__heading { font-size: 24px; line-height: 1.2; }
}

@media (max-width:600px) {
  .section--aisles .cpt-loop__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .section--aisles .cpt-loop__card { height: 260px; }
}

@media (max-width:600px) {
  .trust-bar__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:600px) {
  .spec-panel__row { grid-template-columns: 1fr; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .spec-panel__copy { padding: var(--space-lg); }
}

@media (max-width:600px) {
  .intro-split__stats { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .news-board__card { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .news-board__card-media { width: 100%; height: 180px; }
}

@media (max-width:600px) {
  .intro-split__cta,
    .cta-banner__ctas { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .intro-split__cta .btn,
    .cta-banner__ctas .btn { width: 100%; }
}

@media (max-width:600px) {
  .footer--mwss .footer__columns { grid-template-columns: 1fr; }
}

.section--products_hero.hero--full-bg {
  --hero-min-h: 820px;
  min-height: 820px;
  padding-top: 120px;
  padding-bottom: 120px;
  align-items: flex-end;
}

.section--products_hero .hero__overlay {
  background: linear-gradient(90deg, rgba(46, 41, 16, 0.94) 0%, rgba(46, 41, 16, 0.88) 60%, rgba(46, 41, 16, 0.8) 90%, rgba(46, 41, 16, 0.22) 100%);
}

.section--products_hero .hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
  row-gap: 24px;
  align-items: end;
  text-align: left;
}

.section--products_hero .hero__title {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  margin: 0;
  max-width: 588px;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 67px;
  text-transform: uppercase;
  color: var(--color-4);
}

.section--products_hero .hero__subtitle {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  max-width: 588px;
  opacity: 1;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: var(--weight-reg);
  line-height: 34px;
  color: var(--color-4);
}

.section--products_hero .hero__body {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: end;
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-reg);
  line-height: 28px;
  color: var(--color-1);
}

.section--products_hero .hero__body p {
  margin: 0;
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.section--departments {
  padding-block: 120px;
}

.section--departments .cpt-loop__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: 0;
}

.section--departments .cpt-loop__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.section--departments .cpt-loop__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.section--departments .cpt-loop__rule {
  height: 1px;
  margin-top: 24px;
  background: var(--color-10);
}

.section--departments .cpt-loop__heading {
  margin: 24px 0 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  text-align: left;
  color: var(--color-4);
}

.section--departments .cpt-loop__subheading {
  margin: 24px 0 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.section--departments .cpt-loop__subheading p {
  margin: 0;
}

.section--departments .cpt-loop__list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 56px;
  margin-top: 56px;
}

.section--departments .cpt-loop__card {
  grid-column: span 2;
  background: var(--color-9);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: none;
}

.section--departments .cpt-loop__card:hover {
  transform: none;
  box-shadow: none;
}

.section--departments .cpt-loop__card:nth-child(-n+2) {
  grid-column: span 3;
}

.section--departments .cpt-loop__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.section--departments .cpt-loop__media {
  aspect-ratio: auto;
  height: 180px;
  overflow: hidden;
}

.section--departments .cpt-loop__card:nth-child(-n+2) .cpt-loop__media {
  height: 260px;
}

.section--departments .cpt-loop__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section--departments .cpt-loop__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
}

.section--departments .cpt-loop__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-bold);
  line-height: 34px;
  color: var(--color-4);
}

.section--departments .cpt-loop__title::after {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  margin-top: 16px;
  background: var(--color-2);
}

.section--departments .cpt-loop__more {
  display: block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.season-board {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 120px;
}

.season-board__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.season-board__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.season-board__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.season-board__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.season-board__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.season-board__rule {
  height: 1px;
  background: var(--color-10);
}

.season-board__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.season-board__body {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.season-board__body p {
  margin: 0;
}

.season-board__media {
  height: 260px;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.season-board__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.season-board__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.season-board__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: var(--color-7);
  border-radius: var(--radius-sm);
}

.season-board__card-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-3);
}

.season-board__card-marker {
  display: block;
  width: 28px;
  height: 2px;
  background: var(--color-2);
}

.season-board__card-body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.trust-bar__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.section--brands {
  padding-block: 120px;
}

.section--brands .wrap {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.section--brands .trust-bar__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.section--brands .trust-bar__meta {
  color: var(--color-5);
}

.section--brands .trust-bar__rule {
  height: 1px;
  background: var(--color-10);
}

.section--brands .trust-bar__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  text-align: left;
  color: var(--color-3);
}

.section--brands .trust-bar__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 24px;
}

.section--brands .trust-bar__item {
  height: 110px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  opacity: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section--brands .trust-bar__logo {
  width: 100%;
  height: 110px;
  max-height: 110px;
  object-fit: contain;
  filter: none;
  display: block;
}

.section--brands .trust-bar__footnote {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.section--brands .trust-bar__footnote p {
  margin: 0;
}

.counter-board {
  background: var(--section-bg-color, var(--color-7));
  padding-block: 120px;
}

.counter-board__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.counter-board__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.counter-board__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.counter-board__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.counter-board__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.counter-board__rule {
  height: 1px;
  background: var(--color-10);
}

.counter-board__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.counter-board__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.counter-board__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}

.counter-board--image-left .counter-board__media {
  order: -1;
}

.counter-board__list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.counter-board__item {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  padding-top: 40px;
  border-top: 1px solid var(--color-10);
}

.counter-board__term {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-3);
}

.counter-board__detail {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.counter-board__media {
  height: 520px;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.counter-board__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section--stock_check {
  padding-block: 80px;
}

.section--stock_check .cta-banner__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 56px;
  padding-block: 0;
  margin-inline: auto;
}

.section--stock_check .cta-banner__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin: 0;
  flex: 1 1 auto;
  text-align: left;
}

.section--stock_check .cta-banner__eyebrow {
  margin: 0;
  text-align: left;
  color: var(--color-3);
}

.section--stock_check .cta-banner__heading {
  margin: 0;
  max-width: 690px;
  text-align: left;
  color: var(--color-3);
}

.section--stock_check .cta-banner__body {
  margin: 0;
  max-width: 486px;
  opacity: 1;
  text-align: left;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.section--stock_check .cta-banner__body p {
  margin: 0;
}

.section--stock_check .cta-banner__ctas {
  flex: 0 0 auto;
  justify-content: flex-end;
}

@media (max-width:1100px) {
  .section--products_hero.hero--full-bg {
      min-height: 560px;
      padding-top: clamp(48px, 9vw, 120px);
      padding-bottom: clamp(48px, 9vw, 120px);
    }
}

@media (max-width:1100px) {
  .section--products_hero .hero__inner { grid-template-columns: 1fr; row-gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .section--products_hero .hero__title,
    .section--products_hero .hero__subtitle { grid-column: 1; grid-row: auto; max-width: none; }
}

@media (max-width:1100px) {
  .section--products_hero .hero__body { grid-column: 1; grid-row: auto; max-width: none; }
}

@media (max-width:1100px) {
  .section--departments { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--departments .cpt-loop__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--departments .cpt-loop__card,
    .section--departments .cpt-loop__card:nth-child(-n+2) { grid-column: span 1; }
}

@media (max-width:1100px) {
  .section--departments .cpt-loop__card:nth-child(-n+2) .cpt-loop__media { height: 180px; }
}

@media (max-width:1100px) {
  .season-board { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .season-board__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .season-board__media { height: 200px; }
}

@media (max-width:1100px) {
  .season-board__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .section--brands { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--brands .wrap { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--brands .trust-bar__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .counter-board { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .counter-board__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .counter-board__row { grid-template-columns: 1fr; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .counter-board--image-left .counter-board__media { order: 0; }
}

@media (max-width:1100px) {
  .counter-board__media { height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--stock_check { padding-block: clamp(40px, 8vw, 80px); }
}

@media (max-width:1100px) {
  .section--stock_check .cta-banner__inner { flex-direction: column; align-items: flex-start; gap: var(--space-lg); }
}

@media (max-width:600px) {
  .section--products_hero .hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .section--products_hero .hero__subtitle { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .section--departments .cpt-loop__heading,
    .season-board__heading,
    .section--brands .trust-bar__heading,
    .counter-board__heading { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .section--departments .cpt-loop__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .season-board__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .season-board__media { height: 160px; }
}

@media (max-width:600px) {
  .section--brands .trust-bar__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:600px) {
  .counter-board__list { gap: var(--space-lg); }
}

@media (max-width:600px) {
  .counter-board__item { grid-template-columns: 1fr; gap: var(--space-xs); padding-top: var(--space-lg); }
}

@media (max-width:600px) {
  .section--stock_check .cta-banner__ctas { width: 100%; justify-content: stretch; }
}

@media (max-width:600px) {
  .section--stock_check .cta-banner__ctas .btn { width: 100%; }
}

.section--contact_hero.hero--full-bg {
  position: relative;
  overflow: hidden;
  display: flex;
  /* Match the homepage hero: content sits on the bottom edge of the band,
     not floated in the vertical middle. */
  align-items: flex-end;
  --hero-min-h: 820px;
  min-height: 820px;
  padding-top: 120px;
  padding-bottom: 120px;
}

.section--contact_hero .hero__overlay {
  /* Homepage hero scrim: left-to-right, so the darkest part sits behind the
     now left-aligned copy and the photo opens up on the right. Same stops as
     .hero--full-bg::before — .94 / .80 / .22 — which hold the 4.5:1 floor
     across the text zone. */
  background: linear-gradient(90deg, rgba(46, 41, 16, 0.94) 0%, rgba(46, 41, 16, 0.8) 60%, rgba(46, 41, 16, 0.22) 100%);
}

.section--contact_hero .hero__inner {
  /* Homepage hero layout: left-aligned column, not centred. */
  align-items: flex-start;
  text-align: left;
  gap: 24px;
  padding-top: 92px;
}

.section--contact_hero .hero__title {
  /* Left-aligned like the homepage hero: no auto centring, and the same
     h1 display scale (the homepage title is 64px/1.06, not h2/49px). */
  margin: 0;
  max-width: 820px;
  font-family: var(--font-display);
  /* Kept at h2, NOT the homepage's 64px h1: this hero's focal point is the
     phone number below it at 64px blaze. Two 64px lines would compete. */
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-4);
}

.section--contact_hero .hero__subtitle {
  margin: 0;
  max-width: 690px;
  opacity: 1;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 67px;
  color: var(--color-2);
}

.section--contact_hero .hero__body {
  margin: 0;
  max-width: 620px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.section--contact_hero .hero__body p {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-reg);
  line-height: 28px;
  color: var(--color-1);
}

.section--contact_hero .hero__body p:first-child {
  font-size: 18px;
  font-weight: var(--weight-med);
  line-height: 27px;
}

.section--contact_hero .hero__ctas {
  justify-content: flex-start;
  margin: 0;
}

.section--contact_hero .btn {
  min-height: 54px;
  padding: 0 24px;
  border-radius: var(--radius-sm);
}

.contact-board {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 120px;
}

.contact-board__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.contact-board__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-board__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.contact-board__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.contact-board__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.contact-board__rule {
  height: 1px;
  background: var(--color-10);
}

.contact-board__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.contact-board__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.contact-board__columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}

.contact-board__panel {
  padding: 40px;
  background: var(--color-7);
  border-radius: var(--radius-sm);
}

.contact-board__label {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.contact-board__list {
  margin: 0;
}

.contact-board__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding-block: 16px;
  border-top: 1px solid var(--color-10);
}

.contact-board__day {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.contact-board__time {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.contact-board__time--muted {
  color: var(--color-5);
}

.contact-board__details {
  display: flex;
  flex-direction: column;
}

.contact-board__key {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.contact-board__value {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.contact-board__link {
  color: inherit;
  text-decoration: none;
}

.contact-board__link:hover {
  color: var(--color-primary-ink);
}

.contact-board__link:focus-visible {
  outline: 2px solid var(--color-primary-ink);
  outline-offset: 2px;
}

.contact-board__callout {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  border: 2px solid var(--color-3);
  border-radius: var(--radius-sm);
}

.contact-board__callout-body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.contact-board__callout-body p {
  margin: 0;
}

.location-board {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 120px;
}

.location-board__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.location-board__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.location-board__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.location-board__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.location-board__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.location-board__rule {
  height: 1px;
  background: var(--color-10);
}

.location-board__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.location-board__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.location-board__map {
  height: 340px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-7);
}

.location-board__map-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.location-board__map-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.location-board__routes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.location-board__route {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.location-board__marker {
  display: block;
  width: 36px;
  height: 3px;
  background: var(--color-2);
}

.location-board__route-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-3);
}

.location-board__route-body {
  margin: 0;
  max-width: 340px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.location-board__body {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.location-board__body p {
  margin: 0;
}

.location-board__towns {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.location-board__town {
  padding: 8px 16px;
  border: 1px solid var(--color-10);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-3);
}

.contact-panel {
  background: var(--section-bg-color, var(--color-7));
  padding-block: 120px;
}

.contact-panel__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.contact-panel__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-panel__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.contact-panel__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.contact-panel__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.contact-panel__rule {
  height: 1px;
  background: var(--color-10);
}

.contact-panel__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.contact-panel__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}

.contact-panel__copy {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-panel__body {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.contact-panel__body p {
  margin: 0;
}

.contact-panel__note {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.contact-panel__note p {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.contact-panel__form {
  padding: 40px;
  background: var(--color-7);
  border: 1px solid var(--color-10);
  border-radius: var(--radius-sm);
}

.contact-panel__form .form {
  --form-cols: 1;
  --form-gap: 24px;
  --field-bg: var(--color-4);
  --field-fg: var(--color-3);
  --field-border: var(--color-10);
  --field-radius: var(--radius-sm);
  --field-pad: 16px;
  --field-focus: var(--color-primary-ink);
  --label-color: var(--color-5);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 24px;
}

.contact-panel__form .field {
  gap: 8px;
}

.contact-panel__form .field__label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.contact-panel__form .field__req {
  color: inherit;
}

.contact-panel__form .field__input {
  min-height: 54px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.contact-panel__form .field__textarea {
  min-height: 140px;
}

.contact-panel__form .form__submit {
  align-self: flex-start;
  margin-top: 0;
  min-height: 54px;
  padding: 0 24px;
  border-radius: var(--radius-sm);
}

.contact-panel__form .form__status {
  margin: 0;
}

.faq-board {
  background: var(--section-bg-color, var(--color-7));
  padding-block: 120px;
}

.faq-board__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.faq-board__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.faq-board__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.faq-board__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.faq-board__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.faq-board__rule {
  height: 1px;
  background: var(--color-10);
}

.faq-board__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.faq-board__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.faq-board__accordion {
  border-top: 1px solid var(--color-10);
}

.faq-board__item {
  border-bottom: 1px solid var(--color-10);
}

.faq-board__summary {
  gap: 24px;
  padding-block: 24px;
}

.faq-board__item[open] > .faq-board__summary {
  padding-bottom: 16px;
}

.faq-board__question {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-3);
}

.faq-board__icon {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-3);
  transition: none;
}

.faq-board__icon::after {
  content: "+";
}

.faq-board__item[open] > .faq-board__summary .faq-board__icon {
  transform: none;
}

.faq-board__item[open] > .faq-board__summary .faq-board__icon::after {
  content: "–";
}

.faq-board__summary:focus-visible {
  outline: 2px solid var(--color-primary-ink);
  outline-offset: 2px;
}

.faq-board__answer {
  padding: 0 0 24px;
  max-width: 486px;
}

.faq-board__answer p {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-5);
}

@media (max-width:1100px) {
  .section--contact_hero.hero--full-bg {
      min-height: 560px;
      padding-top: clamp(48px, 9vw, 120px);
      padding-bottom: clamp(48px, 9vw, 120px);
    }
}

@media (max-width:1100px) {
  .contact-board,
    .location-board,
    .contact-panel,
    .faq-board { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .contact-board__inner,
    .location-board__inner,
    .contact-panel__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .contact-board__columns { grid-template-columns: 1fr; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .contact-panel__row { grid-template-columns: 1fr; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .location-board__routes { grid-template-columns: repeat(2, 1fr); gap: var(--space-xl); }
}

@media (max-width:600px) {
  .section--contact_hero .hero__title { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .section--contact_hero .hero__subtitle { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .section--contact_hero .hero__body p:first-child { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .contact-board__heading,
    .location-board__heading,
    .contact-panel__heading,
    .faq-board__heading { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .contact-board__panel,
    .contact-panel__form { padding: var(--space-lg); }
}

@media (max-width:600px) {
  .contact-board__row { flex-direction: column; align-items: flex-start; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .contact-board__furniture,
    .location-board__furniture,
    .contact-panel__furniture,
    .faq-board__furniture { flex-direction: column; align-items: flex-start; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .location-board__routes { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .location-board__map { height: 260px; }
}

@media (max-width:600px) {
  .faq-board__question { font-size: var(--text-lg); line-height: 27px; }
}

@media (max-width:600px) {
  .contact-panel__form .form__submit { width: 100%; }
}

.section-head--furniture {
  text-align: left;
  margin-bottom: var(--space-2xl);
}

.section-head--furniture .section-head__inner {
  max-width: none;
  margin-inline: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.section-head__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.section-head--furniture .section-head__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.section-head__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.section-head--furniture .section-head__rule {
  height: 1px;
  background: var(--color-10);
}

.section-head--furniture .section-head__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
}

.section-head--furniture .section-head__sub {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
}

.section-head--furniture .section-head__sub p {
  margin: 0;
}

.section--services_hero.hero--full-bg {
  --hero-min-h: 820px;
  min-height: 820px;
  padding-top: 120px;
  padding-bottom: 120px;
  align-items: flex-start;
}

.section--services_hero .hero__overlay {
  background: linear-gradient(90deg, rgba(46, 41, 16, 0.94) 0%, rgba(46, 41, 16, 0.8) 60%, rgba(46, 41, 16, 0.22) 100%);
}

.section--services_hero .hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
  row-gap: 24px;
  align-items: start;
  align-content: start;
  text-align: left;
  padding-top: 0;
}

.section--services_hero .hero__title {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  margin: 0;
  max-width: 588px;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 67px;
  text-transform: uppercase;
  color: var(--color-4);
}

.section--services_hero .hero__subtitle {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  margin: 0;
  max-width: 588px;
  opacity: 1;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: var(--weight-reg);
  line-height: 34px;
  color: var(--color-4);
}

.section--services_hero .hero__body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-reg);
  line-height: 28px;
  color: var(--color-1);
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  max-width: 486px;
}

.section--services_hero .hero__body p {
  margin: 0;
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.section--services_grid {
  padding-block: 120px;
}

.section--services_grid .section-head--furniture {
  margin-bottom: 56px;
}

.section--services_grid .section-head__eyebrow {
  color: var(--color-2);
}

.section--services_grid .section-head__meta {
  color: var(--color-1);
}

.section--services_grid .section-head__heading {
  color: var(--color-4);
}

.section--services_grid .section-head__sub {
  color: var(--color-1);
}

.section--services_grid .service-grid__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

.section--services_grid .service-card {
  background: var(--color-9);
  border-radius: var(--radius-sm);
  box-shadow: none;
  overflow: hidden;
}

.section--services_grid .service-card:hover {
  transform: none;
  box-shadow: none;
}

.section--services_grid .service-card__media {
  aspect-ratio: auto;
  height: 300px;
  overflow: hidden;
}

.section--services_grid .service-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section--services_grid .service-card__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 40px;
}

.section--services_grid .service-card__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-bold);
  line-height: 34px;
  color: var(--color-4);
}

.section--services_grid .service-card__excerpt {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-1);
}

.section--services_grid .service-card__more {
  display: block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.rate-board {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 120px;
}

.rate-board__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.rate-board__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.rate-board__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.rate-board__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.rate-board__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.rate-board__rule {
  height: 1px;
  background: var(--color-10);
}

.rate-board__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.rate-board__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.rate-board__standfirst p {
  margin: 0;
}

.rate-board__panel {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 40px;
  background: var(--color-7);
  border: 1px solid var(--color-10);
  border-radius: var(--radius-sm);
}

.rate-board__panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.rate-board__panel-label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-3);
}

.rate-board__panel-meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.rate-board__panel-rule {
  height: 2px;
  background: var(--color-3);
}

.rate-board__panel-rule--hair {
  height: 1px;
  background: var(--color-10);
}

.rate-board__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  align-items: start;
}

.rate-board__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.rate-board__columns { align-items: stretch; }

.rate-board__col-label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.rate-board__rows {
  margin: 0;
  display: flex;
  flex-direction: column;
  /* Rows carry their own hairline + padding, so no flex gap — otherwise the
     dividers float away from the rows they separate. */
  gap: 0;
}

.rate-board__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-md);
  /* Even vertical rhythm, divided by a hairline — the same posted-board
     treatment the spec panel uses. */
  padding-block: var(--space-md);
  border-top: 1px solid var(--color-border);
}

.rate-board__row:last-child {
  padding-bottom: 0;
}

.rate-board__term {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.rate-board__value {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
  text-align: right;
}

.rate-board__footnote {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-3);
}

.rate-board__footnote p {
  margin: 0;
}

.section--process_steps {
  padding-block: 120px;
}

.section--process_steps .section-head--furniture {
  margin-bottom: 56px;
}

.section--process_steps .section-head__eyebrow {
  color: var(--color-primary-ink);
}

.section--process_steps .section-head__meta {
  color: var(--color-5);
}

.section--process_steps .section-head__heading {
  color: var(--color-3);
}

.section--process_steps .section-head__sub {
  color: var(--color-3);
}

.section--process_steps .process-steps__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

.section--process_steps .process-steps__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  text-align: left;
}

.section--process_steps .process-steps__number {
  margin: 0;
  opacity: 1;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  color: var(--color-5);
}

.section--process_steps .process-steps__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-3);
}

.section--process_steps .process-steps__desc {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 24px;
  color: var(--color-5);
}

.section--process_steps .process-steps__desc p {
  margin: 0;
}

.section--gunsmith {
  padding-block: 120px;
}

.section--gunsmith .intro-split__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 72px;
  row-gap: 24px;
  align-items: start;
}

.section--gunsmith .intro-split__furniture, .section--gunsmith .intro-split__rule, .section--gunsmith .intro-split__title {
  grid-column: 1 / -1;
}

.section--gunsmith .intro-split__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: 0;
}

.section--gunsmith .intro-split__eyebrow {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.section--gunsmith .intro-split__meta {
  color: var(--color-5);
}

.section--gunsmith .intro-split__rule {
  height: 1px;
  background: var(--color-10);
}

.section--gunsmith .intro-split__title {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.section--gunsmith .intro-split__media {
  grid-column: 1;
  grid-row: 4;
  margin-top: 32px;
  height: 520px;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.section--gunsmith .intro-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section--gunsmith .intro-split__content {
  grid-column: 2;
  grid-row: 4;
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
  padding-top: 0;
}

.section--gunsmith .intro-split__body p {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.section--gunsmith .intro-split__details {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.section--gunsmith .intro-split__detail {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding-top: 24px;
  padding-bottom: 0;
  border-top: 1px solid var(--color-10);
}

.section--gunsmith .intro-split__detail-mark {
  width: 16px;
  height: 2px;
  margin: 0;
  background: var(--color-2);
}

.section--gunsmith .intro-split__detail-text {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.section--gunsmith .intro-split__detail-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.section--gunsmith .intro-split__availability {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin: 0;
  padding: 16px 24px;
  border: 2px solid var(--color-3);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-3);
}

.section--gunsmith .intro-split__cta {
  display: flex;
  gap: 16px;
  margin: 0;
  padding-top: 0;
}

.section--disclosures {
  padding-block: 120px;
}

.section--disclosures .wrap {
  --disclosures-wrap-max: var(--container-max);
}

.section--disclosures .section-head--furniture {
  margin-bottom: 40px;
}

.section--disclosures .section-head__eyebrow {
  color: var(--color-2);
}

.section--disclosures .section-head__meta {
  color: var(--color-1);
}

.section--disclosures .section-head__heading {
  color: var(--color-4);
}

.section--disclosures .section-head__sub {
  color: var(--color-1);
}

.section--disclosures .accordion {
  border-top: 1px solid var(--color-10);
}

.section--disclosures .accordion__item {
  border-bottom: 1px solid var(--color-10);
}

.section--disclosures .accordion__summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 24px 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-4);
}

.section--disclosures .accordion__item[open] > .accordion__summary {
  padding-bottom: 0;
}

.section--disclosures .accordion__question {
  flex: 1;
}

.section--disclosures .accordion__icon {
  transform: none;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  line-height: 31px;
  color: var(--color-2);
}

.section--disclosures .accordion__icon svg {
  display: none;
}

.section--disclosures .accordion__icon::after {
  content: "+";
}

.section--disclosures .accordion__item[open] > .accordion__summary .accordion__icon {
  transform: none;
}

.section--disclosures .accordion__item[open] > .accordion__summary .accordion__icon::after {
  content: "\2013";
}

.section--disclosures .accordion__answer {
  padding: 16px 0 24px;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.section--disclosures .accordion__answer p {
  margin: 0;
}

.section--about_hero.hero--full-bg {
  --hero-min-h: 820px;
  min-height: 820px;
  padding-top: 120px;
  padding-bottom: 120px;
  /* Bottom-anchored, like every other hero on this site (and like this same
     section already does below 1100px). flex-start pinned the H1 28px under
     the fixed nav and left the slack at the bottom. */
  align-items: flex-end;
}

.section--about_hero.hero--full-bg::before {
  background: none;
}

.section--about_hero .hero__overlay {
  background: linear-gradient(90deg, rgba(46, 41, 16, 0.94) 0%, rgba(46, 41, 16, 0.8) 60%, rgba(46, 41, 16, 0.8) 92%, rgba(46, 41, 16, 0.22) 100%);
}

.section--about_hero .hero__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-lg);
  /* Clears the 92px transparent header that overlays this hero — same value
     the ≤1100px rule already uses. */
  padding-top: 92px;
  text-align: left;
}

.section--about_hero .hero__title {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 67px;
  text-transform: uppercase;
  color: var(--color-4);
}

.section--about_hero .hero__subtitle {
  margin: 0;
  max-width: 588px;
  opacity: 1;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: var(--weight-reg);
  line-height: 34px;
  color: var(--color-2);
}

.section--about_hero .hero__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 72px;
  width: 100%;
  max-width: var(--container-max);
  margin: 0;
}

.section--about_hero .hero__body p {
  margin: 0;
  max-width: 564px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-reg);
  line-height: 28px;
  color: var(--color-1);
}

.section--services_cta {
  padding-block: 80px;
}

.section--services_cta .cta-banner__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
  padding-block: 0;
  margin-inline: auto;
}

.section--services_cta .cta-banner__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin: 0;
  flex: 1 1 auto;
  text-align: left;
}

.section--services_cta .cta-banner__heading {
  margin: 0;
  max-width: 640px;
  text-align: left;
  color: var(--color-3);
}

.section--services_cta .cta-banner__body {
  margin: 0;
  max-width: 486px;
  opacity: 1;
  text-align: left;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.section--services_cta .cta-banner__body p {
  margin: 0;
}

.section--services_cta .cta-banner__ctas {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 24px;
}

.section--services_cta .cta-banner__ctas .btn--ghost {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--color-3);
}

.section--services_cta .cta-banner__ctas .btn--ghost:hover, .section--services_cta .cta-banner__ctas .btn--ghost:focus-visible {
  background: transparent;
  border: 0;
  transform: none;
  color: var(--color-3);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.section--services_cta .cta-banner__ctas .btn--primary {
  min-height: 54px;
  padding: 0 24px;
  background: var(--color-3);
  border: 1px solid var(--color-3);
  border-radius: var(--radius-sm);
  color: var(--color-4);
}

.section--services_cta .cta-banner__ctas .btn--primary:hover {
  background: var(--color-4);
  border-color: var(--color-4);
  color: var(--color-3);
}

@media (max-width:1100px) {
  .section--services_hero.hero--full-bg {
      min-height: 560px;
      padding-top: clamp(48px, 9vw, 120px);
      padding-bottom: clamp(48px, 9vw, 120px);
    }
}

@media (max-width:1100px) {
  .section--services_hero .hero__inner { grid-template-columns: 1fr; row-gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .section--services_hero .hero__title,
    .section--services_hero .hero__subtitle,
    .section--services_hero .hero__body { grid-column: 1; grid-row: auto; max-width: none; }
}

@media (max-width:1100px) {
  .section--services_grid { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--services_grid .section-head--furniture { margin-bottom: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--services_grid .service-grid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .section--services_grid .service-card__body { padding: var(--space-lg); }
}

@media (max-width:1100px) {
  .rate-board { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .rate-board__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .rate-board__panel { padding: var(--space-lg); }
}

@media (max-width:1100px) {
  .rate-board__columns { grid-template-columns: 1fr; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .rate-board__col:first-child,
    .rate-board__col:first-child .rate-board__rows { gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .section--process_steps { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--process_steps .section-head--furniture { margin-bottom: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--process_steps .process-steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--gunsmith { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--gunsmith .intro-split__inner { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .section--gunsmith .intro-split__media { grid-column: 1; grid-row: auto; margin-top: var(--space-lg); height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--gunsmith .intro-split__content { grid-column: 1; grid-row: auto; margin-top: 0; }
}

@media (max-width:1100px) {
  .section--disclosures { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--disclosures .section-head--furniture { margin-bottom: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--services_cta { padding-block: clamp(40px, 8vw, 80px); }
}

@media (max-width:1100px) {
  .section--services_cta .cta-banner__inner { flex-direction: column; align-items: flex-start; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .section--services_cta .cta-banner__ctas { align-items: flex-start; }
}

@media (max-width:600px) {
  .section--services_hero .hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .section--services_hero .hero__subtitle { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .section-head--furniture .section-head__heading,
    .section--gunsmith .intro-split__title,
    .rate-board__heading { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .section--services_cta .cta-banner__heading { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .section-head__furniture,
    .rate-board__furniture,
    .section--gunsmith .intro-split__furniture {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-sm);
    }
}

@media (max-width:600px) {
  .section--services_grid .service-grid__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .section--services_grid .service-card__media { height: 220px; }
}

@media (max-width:600px) {
  .rate-board__panel-head { flex-direction: column; align-items: flex-start; gap: var(--space-sm); }
}

@media (max-width:600px) {
  .rate-board__row { flex-direction: column; align-items: flex-start; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .rate-board__value { text-align: left; }
}

@media (max-width:600px) {
  .section--process_steps .process-steps__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .section--disclosures .accordion__summary { font-size: var(--text-lg); line-height: 27px; }
}

@media (max-width:600px) {
  .section--gunsmith .intro-split__cta { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .section--gunsmith .intro-split__cta .btn { width: 100%; }
}

@media (max-width:600px) {
  .section--services_cta .cta-banner__ctas { width: 100%; align-items: stretch; }
}

@media (max-width:600px) {
  .section--services_cta .cta-banner__ctas .btn--primary { width: 100%; }
}

@media (max-width:600px) {
  .section--services_cta .cta-banner__ctas .btn--ghost { font-size: 32px; line-height: 1.15; text-align: left; justify-content: flex-start; }
}

.gallery {
  background: var(--section-bg-color, var(--color-3));
  padding-block: 120px;
}

.gallery__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.gallery__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.gallery__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.gallery__eyebrow {
  display: inline-block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.gallery__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.gallery__rule {
  height: 1px;
  background: var(--color-10);
}

.gallery__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-4);
}

.gallery__body {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.gallery__body p {
  margin: 0 0 var(--space-md);
}

.gallery__body p:last-child {
  margin-bottom: 0;
}

.gallery__mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
}

.gallery__stack {
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.gallery__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
}

.gallery__figure {
  margin: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.gallery__figure--lead {
  height: 420px;
}

.gallery__figure--band {
  height: 200px;
}

.gallery__figure--tile {
  height: 240px;
}

.gallery__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.timeline {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 120px;
}

.timeline__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.timeline__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.timeline__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.timeline__eyebrow {
  display: inline-block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.timeline__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.timeline__rule {
  height: 1px;
  background: var(--color-10);
}

.timeline__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.timeline__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.timeline__media {
  margin: 0;
  height: 360px;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.timeline__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.timeline__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--color-10);
}

.timeline__item {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 72px;
  align-items: start;
  padding-block: 40px;
  border-top: 1px solid var(--color-10);
}

.timeline__year {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 67px;
  text-transform: uppercase;
  color: var(--color-10);
}

.timeline__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.timeline__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-bold);
  line-height: 34px;
  color: var(--color-3);
}

.timeline__body {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.timeline__body p {
  margin: 0 0 var(--space-md);
}

.timeline__body p:last-child {
  margin-bottom: 0;
}

.section--second_gen {
  padding-block: 120px;
}

.section--second_gen .intro-split__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 72px;
  row-gap: var(--space-lg);
  align-items: start;
}

.section--second_gen .intro-split__furniture, .section--second_gen .intro-split__rule, .section--second_gen .intro-split__title, .section--second_gen .intro-split__standfirst {
  grid-column: 1 / -1;
}

.section--second_gen .intro-split__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: 0;
}

.section--second_gen .intro-split__eyebrow {
  display: inline-block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.section--second_gen .intro-split__meta {
  color: var(--color-5);
}

.section--second_gen .intro-split__rule {
  height: 1px;
  background: var(--color-10);
}

.section--second_gen .intro-split__title {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.section--second_gen .intro-split__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.section--second_gen .intro-split__content {
  grid-column: 1;
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  padding-top: 0;
}

.section--second_gen .intro-split__body p {
  margin: 0 0 var(--space-lg);
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.section--second_gen .intro-split__body p:last-child {
  margin-bottom: 0;
}

.section--second_gen .intro-split__media {
  grid-column: 2;
  margin-top: 32px;
  height: 520px;
  border: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.section--second_gen .intro-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.creed {
  background: var(--section-bg-color, var(--color-7));
  padding-block: 120px;
}

.creed__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.creed__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.creed__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.creed__eyebrow {
  display: inline-block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary-ink);
}

.creed__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.creed__rule {
  height: 1px;
  background: var(--color-10);
}

.creed__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-3);
}

.creed__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.creed__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
}

.creed__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.creed__marker {
  display: block;
  width: 48px;
  height: 3px;
  background: var(--color-2);
}

.creed__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-med);
  line-height: 27px;
  color: var(--color-3);
}

.creed__body {
  margin: 0;
  max-width: 340px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-3);
}

.creed__body p {
  margin: 0 0 var(--space-md);
}

.creed__body p:last-child {
  margin-bottom: 0;
}

.photo-split {
  background: var(--section-bg-color, var(--color-3));
  padding-block: 120px;
}

.photo-split__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.photo-split__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.photo-split__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.photo-split__eyebrow {
  display: inline-block;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-2);
}

.photo-split__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.photo-split__rule {
  height: 1px;
  background: var(--color-10);
}

.photo-split__heading {
  margin: 0;
  max-width: 690px;
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 49px;
  text-transform: uppercase;
  color: var(--color-4);
}

.photo-split__standfirst {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.photo-split__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 72px;
  align-items: start;
}

.photo-split--media-left .photo-split__media {
  order: -1;
}

.photo-split__prose {
  margin: 0;
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 28px;
  color: var(--color-1);
}

.photo-split__prose p {
  margin: 0 0 var(--space-lg);
}

.photo-split__prose p:last-child {
  margin-bottom: 0;
}

.photo-split__media {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.photo-split__figure {
  margin: 0;
  height: 230px;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.photo-split__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section--visit {
  padding-block: 80px;
}

.section--visit .cta-banner__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 56px;
  row-gap: 40px;
  align-items: center;
  padding-block: 0;
  margin-inline: auto;
}

.section--visit .cta-banner__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
  margin: 0;
  text-align: left;
}

.section--visit .cta-banner__heading {
  grid-column: auto;
  margin: 0;
  max-width: 690px;
  text-align: left;
  color: var(--color-on-primary);
}

.section--visit .cta-banner__body {
  margin: 0;
  max-width: 588px;
  color: var(--color-on-primary);
  grid-column: auto;
  grid-row: auto;
  opacity: 1;
  text-align: left;
}

.section--visit .cta-banner__body p {
  margin: 0 0 var(--space-sm);
  max-width: 486px;
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-reg);
  line-height: 28px;
  color: var(--color-3);
}

.section--visit .cta-banner__body p:first-child {
  max-width: 588px;
  font-size: var(--text-ml);
  font-weight: var(--weight-med);
  line-height: 27px;
}

.section--visit .cta-banner__body p:last-child {
  margin-bottom: 0;
}

.section--visit .cta-banner__ctas {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-content: flex-end;
  margin: 0;
}

@media (max-width:1100px) {
  .section--about_hero.hero--full-bg {
      min-height: 560px;
      padding-top: clamp(24px, 4vw, 48px);
      padding-bottom: clamp(48px, 9vw, 120px);
      align-items: flex-end;
    }
}

@media (max-width:1100px) {
  .section--about_hero .hero__inner { padding-top: 92px; }
}

@media (max-width:1100px) {
  .section--about_hero .hero__body { grid-template-columns: 1fr; row-gap: var(--space-md); }
}

@media (max-width:1100px) {
  .section--about_hero .hero__body p { max-width: none; }
}

@media (max-width:1100px) {
  .gallery.gallery--mosaic { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .gallery.gallery--mosaic .gallery__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .gallery.gallery--mosaic .gallery__mosaic { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .gallery.gallery--mosaic .gallery__figure--lead { height: 320px; }
}

@media (max-width:1100px) {
  .gallery.gallery--mosaic .gallery__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .timeline.timeline--year-rows { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .timeline.timeline--year-rows .timeline__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .timeline.timeline--year-rows .timeline__media { height: 260px; }
}

@media (max-width:1100px) {
  .timeline.timeline--year-rows .timeline__item {
      grid-template-columns: 1fr;
      gap: var(--space-sm);
      padding-block: var(--space-xl);
    }
}

@media (max-width:1100px) {
  .timeline.timeline--year-rows .timeline__year { line-height: 1.05; }
}

@media (max-width:1100px) {
  .section--second_gen { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .section--second_gen.intro-split .intro-split__inner { grid-template-columns: 1fr; }
}

@media (max-width:1100px) {
  .section--second_gen.intro-split .intro-split__content,
    .section--second_gen.intro-split .intro-split__media {
      grid-column: 1;
      margin-top: var(--space-lg);
    }
}

@media (max-width:1100px) {
  .section--second_gen.intro-split .intro-split__media { height: auto; min-height: 320px; }
}

@media (max-width:1100px) {
  .section--second_gen.intro-split .intro-split__body p { max-width: none; }
}

@media (max-width:1100px) {
  .creed.creed--marker-columns { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .creed.creed--marker-columns .creed__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .creed.creed--marker-columns .creed__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1100px) {
  .creed.creed--marker-columns .creed__body { max-width: none; }
}

@media (max-width:1100px) {
  .photo-split.photo-split--copy-and-stack { padding-block: var(--space-section); }
}

@media (max-width:1100px) {
  .photo-split.photo-split--copy-and-stack .photo-split__inner { gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .photo-split.photo-split--copy-and-stack .photo-split__row {
      grid-template-columns: 1fr;
      gap: var(--space-xl);
    }
}

@media (max-width:1100px) {
  .photo-split.photo-split--copy-and-stack .photo-split__prose { max-width: none; }
}

@media (max-width:1100px) {
  .section--visit { padding-block: clamp(40px, 8vw, 80px); }
}

@media (max-width:1100px) {
  .section--visit.cta-banner .cta-banner__inner {
      grid-template-columns: 1fr;
      row-gap: var(--space-lg);
      align-items: start;
    }
}

@media (max-width:1100px) {
  .section--visit.cta-banner .cta-banner__heading { max-width: none; }
}

@media (max-width:1100px) {
  .section--visit.cta-banner .cta-banner__body {
      grid-column: 1;
      grid-row: auto;
      max-width: none;
    }
}

@media (max-width:1100px) {
  .section--visit.cta-banner .cta-banner__body p { max-width: none; }
}

@media (max-width:1100px) {
  .section--visit.cta-banner .cta-banner__ctas {
      grid-column: 1;
      grid-row: auto;
      justify-content: flex-start;
    }
}

@media (max-width:600px) {
  .section--about_hero .hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .section--about_hero .hero__subtitle { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .gallery.gallery--mosaic .gallery__heading,
    .timeline.timeline--year-rows .timeline__heading,
    .creed.creed--marker-columns .creed__heading,
    .photo-split.photo-split--copy-and-stack .photo-split__heading,
    .section--second_gen.intro-split .intro-split__title,
    .section--visit.cta-banner .cta-banner__heading { font-size: 28px; line-height: 1.15; }
}

@media (max-width:600px) {
  .gallery.gallery--mosaic .gallery__row { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .gallery.gallery--mosaic .gallery__figure--lead { height: 240px; }
}

@media (max-width:600px) {
  .timeline.timeline--year-rows .timeline__media { height: 200px; }
}

@media (max-width:600px) {
  .timeline.timeline--year-rows .timeline__year { font-size: var(--text-h2); }
}

@media (max-width:600px) {
  .timeline.timeline--year-rows .timeline__title { font-size: var(--text-xl); line-height: 1.2; }
}

@media (max-width:600px) {
  .creed.creed--marker-columns .creed__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .section--visit.cta-banner .cta-banner__ctas { width: 100%; }
}

@media (max-width:600px) {
  .section--visit.cta-banner .cta-banner__ctas .btn { width: 100%; }
}

.location-board__map-link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.location-board__map-cta {
  position: absolute;
  right: var(--space-md);
  bottom: var(--space-md);
  padding: 8px 16px;
  background: var(--color-3);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-4);
}

.location-board__map-link:hover .location-board__map-cta {
  background: var(--color-primary-ink);
}

.location-board__map-link:focus-visible {
  outline: 2px solid var(--color-primary-ink);
  outline-offset: 2px;
}

.contact-panel__form .form__fields {
  width: 100%;
}

.service-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 520px;
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-3));
  overflow: hidden;
}

.service-hero__media {
  position: absolute;
  inset: 0;
}

.service-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(46,41,16,.94) 0%, rgba(46,41,16,.82) 55%, rgba(46,41,16,.42) 100%);
}

.service-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-lg);
  padding-top: 92px;
}

.service-hero__eyebrow {
  color: var(--color-2);
}

.service-hero__title {
  max-width: 900px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--color-4);
}

.service-hero__standfirst {
  max-width: 640px;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: var(--leading-body);
  color: var(--color-1);
}

.service-hero__actions {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.service-body {
  padding-block: var(--space-section);
}

.service-body__heading {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  line-height: var(--leading-head);
}

.service-body__prose p {
  margin: 0 0 var(--space-md);
  font-family: var(--font-body);
  line-height: var(--leading-body);
}

.service-body__prose p:last-child {
  margin-bottom: 0;
}

.service-body__xref {
  color: var(--color-primary-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.service-body--statement {
  background: var(--section-bg-color, var(--color-4));
}

.service-body--statement .service-body__heading {
  max-width: 900px;
  font-size: var(--text-h2);
  color: var(--color-3);
}

.service-body--statement .service-body__prose {
  max-width: 760px;
  margin-top: var(--space-lg);
  font-size: var(--text-lg);
  color: var(--color-5);
}

.service-body--split {
  background: var(--section-bg-color, var(--color-3));
}

.service-body--split .service-body__inner {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 72px;
  align-items: start;
}

.service-body--split .service-body__heading {
  font-size: var(--text-h3);
  color: var(--color-4);
}

.service-body--split .service-body__prose {
  font-size: var(--text-md);
  color: var(--color-1);
}

.service-body--split .service-body__xref {
  color: var(--color-2);
}

.service-body--callout {
  background: var(--section-bg-color, var(--color-4));
  padding-block: 0 var(--space-section);
}

.service-body--callout .service-body__panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 900px;
  padding: 56px;
  background: var(--color-7);
  border: 1px solid var(--color-6);
  border-radius: var(--radius-sm);
}

.service-body--callout .service-body__heading {
  font-size: var(--text-h4);
  color: var(--color-3);
}

.service-body--callout .service-body__rule {
  height: 2px;
  background: var(--color-2);
  width: 48px;
}

.service-body--callout .service-body__prose {
  font-size: var(--text-md);
  color: var(--color-5);
}

.service-body--markers {
  background: var(--section-bg-color, var(--color-7));
}

.service-body--markers .service-body__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 820px;
}

.service-body--markers .service-body__marker {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--color-2);
}

.service-body--markers .service-body__heading {
  font-size: var(--text-h3);
  color: var(--color-3);
}

.service-body--markers .service-body__prose {
  font-size: var(--text-md);
  color: var(--color-5);
}

.service-body--closing {
  background: var(--section-bg-color, var(--color-3));
}

.service-body--closing .service-body__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  max-width: 820px;
  text-align: center;
}

.service-body--closing .service-body__heading {
  font-size: var(--text-h3);
  color: var(--color-4);
}

.service-body--closing .service-body__prose {
  font-size: var(--text-md);
  color: var(--color-1);
}

.service-body--closing .service-body__xref {
  color: var(--color-2);
}

.service-siblings {
  background: var(--section-bg-color, var(--color-4));
  padding-block: var(--space-section);
}

.service-siblings__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: var(--space-md);
}

.service-siblings__eyebrow {
  color: var(--color-primary-ink);
}

.service-siblings__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.service-siblings__rule {
  height: 1px;
  background: var(--color-6);
}

.service-siblings__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  padding-top: var(--space-xl);
}

.service-siblings__card {
  border: 1px solid var(--color-6);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-7);
}

.service-siblings__link {
  display: block;
  text-decoration: none;
}

.service-siblings__media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.service-siblings__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-siblings__title {
  margin: 0;
  padding: var(--space-lg) var(--space-lg) var(--space-sm);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  color: var(--color-3);
}

.service-siblings__excerpt {
  margin: 0;
  padding: 0 var(--space-lg) var(--space-lg);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
  color: var(--color-5);
}

.service-siblings__link:hover .service-siblings__title {
  color: var(--color-primary-ink);
}

@media (max-width:1100px) {
  .service-body--split .service-body__inner { grid-template-columns: 1fr; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .service-body--callout .service-body__panel { padding: var(--space-xl); }
}

@media (max-width:600px) {
  .service-hero { min-height: 420px; }
}

@media (max-width:600px) {
  .service-hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .service-hero__standfirst { font-size: var(--text-md); }
}

@media (max-width:600px) {
  .service-hero__actions { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .service-hero__actions .btn { width: 100%; }
}

@media (max-width:600px) {
  .service-body--statement .service-body__heading { font-size: 28px; }
}

@media (max-width:600px) {
  .service-body--statement .service-body__prose { font-size: var(--text-md); }
}

@media (max-width:600px) {
  .service-body--split .service-body__heading,
    .service-body--markers .service-body__heading,
    .service-body--closing .service-body__heading { font-size: 24px; }
}

@media (max-width:600px) {
  .service-body--callout .service-body__heading { font-size: 22px; }
}

@media (max-width:600px) {
  .service-body--callout .service-body__panel { padding: var(--space-lg); }
}

@media (max-width:600px) {
  .service-siblings__list { grid-template-columns: 1fr; }
}

.service-hero__actions .btn--ghost {
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-1);
}

.service-hero__actions .btn--ghost:hover, .service-hero__actions .btn--ghost:focus-visible {
  border-color: var(--color-2);
  color: var(--color-2);
}

.category-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 520px;
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-3));
  overflow: hidden;
}

.category-hero__media {
  position: absolute;
  inset: 0;
}

.category-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.category-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(46,41,16,.95) 0%, rgba(46,41,16,.82) 55%, rgba(46,41,16,.42) 100%);
}

.category-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  padding-top: 92px;
}

.category-hero__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.category-hero__eyebrow {
  color: var(--color-2);
}

.category-hero__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  line-height: 19px;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.category-hero__rule {
  width: 100%;
  height: 1px;
  background: #8A7F63;
  margin-bottom: var(--space-sm);
}

.category-hero__title {
  max-width: 900px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--color-4);
}

.category-hero__standfirst {
  max-width: 640px;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-1);
}

.category-hero__actions {
  display: flex;
  gap: var(--space-md);
  padding-top: var(--space-sm);
}

.category-band {
  padding-block: clamp(48px, 9vw, 120px);
}

.category-band__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.category-band__heading {
  max-width: 820px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-bold);
  line-height: 1.15;
  text-transform: uppercase;
}

.category-band__heading--display {
  font-size: var(--text-h2);
  max-width: 900px;
}

.category-band__prose p {
  margin: 0 0 var(--space-md);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
}

.category-band__prose p:last-child {
  margin-bottom: 0;
}

.category-band__prose--lead p {
  font-size: var(--text-lg);
  line-height: 34px;
}

.category-band--ground-cream {
  background: var(--section-bg-color, var(--color-4));
  color: var(--color-3);
}

.category-band--ground-cream .category-band__heading {
  color: var(--color-3);
}

.category-band--ground-cream .category-band__prose p {
  color: var(--color-5);
}

.category-band--ground-dark {
  background: var(--section-bg-color, var(--color-3));
  color: var(--color-1);
}

.category-band--ground-dark .category-band__heading {
  color: var(--color-4);
}

.category-band--ground-dark .category-band__prose p {
  color: var(--color-1);
}

.category-band--ground-surface {
  background: var(--section-bg-color, var(--color-7));
  color: var(--color-3);
}

.category-band--ground-surface .category-band__heading {
  color: var(--color-3);
}

.category-band--ground-surface .category-band__prose p {
  color: var(--color-5);
}

.category-band--ground-blaze {
  background: var(--section-bg-color, var(--color-2));
  color: var(--color-on-primary);
}

.category-band--ground-blaze .category-band__heading, .category-band--ground-blaze .category-band__prose p {
  color: var(--color-on-primary);
}

.category-band--statement .category-band__prose {
  max-width: 760px;
}

.category-band__split {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 72px;
  align-items: start;
}

.category-band__split-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.category-band__index {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 1;
  color: var(--color-2);
}

.category-band--ground-dark .category-band__index {
  color: var(--color-2);
}

.category-band--ground-cream .category-band__index, .category-band--ground-surface .category-band__index {
  color: var(--color-primary-ink);
}

.category-band__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-lg);
}

.category-band__card {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-xl);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
}

.category-band--ground-dark .category-band__card {
  border-color: #8A7F6366;
  background: #37321A;
}

.category-band--ground-cream .category-band__card {
  background: var(--color-7);
  border-color: #8A7F6380;
}

.category-band--ground-surface .category-band__card {
  background: var(--color-4);
  border-color: #8A7F6380;
}

.category-band__card-mark {
  display: block;
  width: 28px;
  height: 2px;
  background: var(--color-2);
}

.category-band__card-body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
}

.category-band--ground-dark .category-band__card-body {
  color: var(--color-1);
}

.category-band--ground-cream .category-band__card-body, .category-band--ground-surface .category-band__card-body {
  color: var(--color-5);
}

.category-band__checklist {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 72px;
  align-items: start;
}

.category-band__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.category-band__list-item {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: var(--space-md);
  padding-block: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.category-band--ground-dark .category-band__list-item {
  border-top-color: #8A7F6366;
}

.category-band__list-item:last-child {
  border-bottom: 1px solid var(--color-border);
}

.category-band--ground-dark .category-band__list-item:last-child {
  border-bottom-color: #8A7F6366;
}

.category-band__list-item svg {
  color: var(--color-2);
  margin-top: 4px;
}

.category-band--ground-cream .category-band__list-item svg, .category-band--ground-surface .category-band__list-item svg {
  color: var(--color-primary-ink);
}

.category-band__list-text {
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
}

.category-band--ground-dark .category-band__list-text {
  color: var(--color-1);
}

.category-band--ground-cream .category-band__list-text, .category-band--ground-surface .category-band__list-text {
  color: var(--color-5);
}

.category-band__close {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  text-align: center;
}

.category-band__heading--close {
  max-width: 900px;
}

.category-band__prose--close {
  max-width: 740px;
}

.category-band__prose--close p {
  text-align: center;
}

.category-band__actions {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  justify-content: center;
}

.btn--on-blaze {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  background: var(--color-3);
  border: 1px solid var(--color-3);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-4);
  text-decoration: none;
}

.btn--on-blaze:hover {
  background: var(--color-4);
  border-color: var(--color-4);
  color: var(--color-3);
}

.btn--outline-blaze {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  background: transparent;
  border: 1px solid var(--color-3);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-on-primary);
  text-decoration: none;
}

.btn--outline-blaze:hover {
  background: var(--color-3);
  color: var(--color-4);
}

.category-siblings {
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-3));
}

.category-siblings__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: var(--space-md);
}

.category-siblings__eyebrow {
  color: var(--color-2);
}

.category-siblings__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.category-siblings__rule {
  height: 1px;
  background: #8A7F63;
}

.category-siblings__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-lg);
  padding-top: var(--space-xl);
}

.category-siblings__card {
  position: relative;
  height: 240px;
  border: 1px solid #8A7F6366;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.category-siblings__link {
  display: block;
  height: 100%;
  text-decoration: none;
}

.category-siblings__media {
  position: absolute;
  inset: 0;
  aspect-ratio: auto;
  margin: 0;
}

.category-siblings__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.category-siblings__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,41,16,0) 30%, rgba(46,41,16,.82) 100%);
}

.category-siblings__title {
  position: absolute;
  inset: auto 0 0 0;
  margin: 0;
  padding: var(--space-lg);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  text-transform: uppercase;
  color: var(--color-4);
}

.category-siblings__link:hover .category-siblings__title {
  color: var(--color-2);
}

@media (max-width:1100px) {
  .category-band__split,
    .category-band__checklist { grid-template-columns: 1fr; gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .category-siblings__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:600px) {
  .category-hero { min-height: 420px; }
}

@media (max-width:600px) {
  .category-hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .category-hero__standfirst { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .category-hero__furniture { flex-direction: column; align-items: flex-start; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .category-hero__actions { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .category-hero__actions .btn { width: 100%; }
}

@media (max-width:600px) {
  .category-band__heading { font-size: 24px; }
}

@media (max-width:600px) {
  .category-band__heading--display { font-size: 28px; }
}

@media (max-width:600px) {
  .category-band__cards { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .category-band__card { padding: var(--space-lg); }
}

@media (max-width:600px) {
  .category-band__actions { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .category-band__actions .btn { width: 100%; }
}

@media (max-width:600px) {
  .category-siblings__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .category-siblings__card { height: 180px; }
}

.category-hero__actions .btn--ghost {
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-1);
}

.category-hero__actions .btn--ghost:hover, .category-hero__actions .btn--ghost:focus-visible {
  border-color: var(--color-2);
  color: var(--color-2);
}

.category-band__link {
  text-decoration: underline;
  text-underline-offset: 3px;
  color: inherit;
}

.category-band--ground-dark .category-band__link {
  color: var(--color-2);
}

.category-band--ground-cream .category-band__link, .category-band--ground-surface .category-band__link {
  color: var(--color-primary-ink);
}

.category-band--ground-blaze .category-band__link {
  color: var(--color-on-primary);
}

.service-single .service-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 520px;
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-3));
  overflow: hidden;
}

.service-single .service-hero__media {
  position: absolute;
  inset: 0;
  margin: 0;
  aspect-ratio: auto;
}

.service-single .service-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-single .service-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(46,41,16,.95) 0%, rgba(46,41,16,.82) 55%, rgba(46,41,16,.42) 100%);
}

.service-single .service-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  padding-top: 92px;
}

.service-single .service-hero__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.service-single .service-hero__eyebrow {
  color: var(--color-2);
}

.service-single .service-hero__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.service-single .service-hero__rule {
  display: block;
  width: 100%;
  height: 1px;
  background: #8A7F63;
  margin-bottom: var(--space-sm);
}

.service-single .service-hero__title {
  max-width: 900px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--color-4);
}

.service-single .service-hero__standfirst {
  max-width: 640px;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-1);
}

.service-single .service-hero__actions {
  display: flex;
  gap: var(--space-md);
  padding-top: var(--space-sm);
}

.service-single .service-hero__actions .btn--ghost {
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-1);
}

.service-single .service-hero__actions .btn--ghost:hover, .service-single .service-hero__actions .btn--ghost:focus-visible {
  border-color: var(--color-2);
  color: var(--color-2);
}

.service-single .service-body {
  padding-block: clamp(48px, 9vw, 120px);
}

.service-single .service-body__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.service-single .service-body__heading {
  max-width: 820px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-bold);
  line-height: 1.15;
  text-transform: uppercase;
}

.service-single .service-body__heading--display {
  max-width: 900px;
  font-size: var(--text-h2);
}

.service-single .service-body__prose p {
  margin: 0 0 var(--space-md);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
}

.service-single .service-body__prose p:last-child {
  margin-bottom: 0;
}

.service-single .service-body__prose--lead {
  /* ch-based so the cap tracks the lead's larger type instead of assuming a
     pixel width (780px at 20px measured ~78ch). */
  max-width: 60ch;
}

.service-single .service-body__prose--lead p {
  font-size: var(--text-lg);
  line-height: 34px;
}

.service-single .service-body--ground-cream {
  background: var(--section-bg-color, var(--color-4));
}

.service-single .service-body--ground-cream .service-body__heading {
  color: var(--color-3);
}

.service-single .service-body--ground-cream .service-body__prose p {
  color: var(--color-5);
}

.service-single .service-body--ground-surface {
  background: var(--section-bg-color, var(--color-7));
}

.service-single .service-body--ground-surface .service-body__heading {
  color: var(--color-3);
}

.service-single .service-body--ground-surface .service-body__prose p {
  color: var(--color-5);
}

.service-single .service-body--ground-dark {
  background: var(--section-bg-color, var(--color-3));
}

.service-single .service-body--ground-dark .service-body__heading {
  color: var(--color-4);
}

.service-single .service-body--ground-dark .service-body__prose p {
  color: var(--color-1);
}

.service-single .service-body__link, .service-single .service-body__xref {
  color: var(--color-primary-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.service-single .service-body--ground-dark .service-body__link, .service-single .service-body--ground-dark .service-body__xref {
  color: var(--color-2);
}

.service-single .service-body__split {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 72px;
  align-items: start;
}

.service-single .service-body__split-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.service-single .service-body__index {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 1;
  color: var(--color-2);
}

.service-single .service-body--ground-cream .service-body__index, .service-single .service-body--ground-surface .service-body__index {
  color: var(--color-primary-ink);
}

.service-single .service-body__panel {
  /* Two columns: heading + blaze rule left, prose right. Single-column ran
     the body to 98ch and left the band carrying nothing but text. */
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: 56px;
  align-items: start;
  max-width: 1100px;
  padding: 56px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-7);
}

.service-single .service-body__panel-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.service-single .service-body__panel-body .service-body__prose {
  max-width: 60ch;
}

.service-single .service-body--ground-dark .service-body__panel {
  background: #37321A;
  border-color: #8A7F6366;
}

.service-single .service-body--ground-surface .service-body__panel {
  background: var(--color-4);
}

.service-single .service-body__rule {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--color-2);
}

.service-single .service-body__record {
  list-style: none;
  margin: 0;
  padding: 0;
}

.service-single .service-body__record-row {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: var(--space-md);
  align-items: start;
  padding-block: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.service-single .service-body--ground-dark .service-body__record-row {
  border-top-color: #8A7F6366;
}

.service-single .service-body__record-row:last-child {
  border-bottom: 1px solid var(--color-border);
}

.service-single .service-body--ground-dark .service-body__record-row:last-child {
  border-bottom-color: #8A7F6366;
}

.service-single .service-body__record-mark {
  display: block;
  width: 28px;
  height: 2px;
  margin-top: 12px;
  background: var(--color-2);
}

.service-single .service-body__record-text {
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
  /* The 1fr row column ran these to 144ch — this site's pages never exceed
     69. 60ch, not 62: the fidelity checker's char-width estimate is slightly
     narrower than the font's own ch unit. */
  max-width: 60ch;
}

.service-single .service-body--ground-dark .service-body__record-text {
  color: var(--color-1);
}

.service-single .service-body--ground-cream .service-body__record-text, .service-single .service-body--ground-surface .service-body__record-text {
  color: var(--color-5);
}

.service-single .service-body--marker .service-body__inner {
  max-width: 820px;
}

.service-single .service-body__marker {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--color-2);
}

.service-single .service-body__closing {
  /* Left-aligned like every other band on these pages. Was a centred 820px
     stack — the only centred text in the collection — running to 97ch. */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-lg);
  max-width: none;
  margin-inline: 0;
  text-align: left;
}

.service-single .service-body__prose--closing {
  max-width: 60ch;
}

.service-single .service-body__prose--closing p {
  text-align: left;
}

.service-single .service-siblings {
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-4));
}

.service-single .service-siblings__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: var(--space-md);
}

.service-single .service-siblings__eyebrow {
  color: var(--color-primary-ink);
}

.service-single .service-siblings__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-5);
}

.service-single .service-siblings__rule {
  display: block;
  height: 1px;
  background: var(--color-border);
}

.service-single .service-siblings__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  padding-top: var(--space-xl);
}

.service-single .service-siblings__card {
  position: relative;
  height: 260px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-3);
}

.service-single .service-siblings__link {
  display: block;
  height: 100%;
  text-decoration: none;
}

.service-single .service-siblings__media {
  position: absolute;
  inset: 0;
  margin: 0;
  aspect-ratio: auto;
  display: block;
}

.service-single .service-siblings__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service-single .service-siblings__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,41,16,0) 30%, rgba(46,41,16,.85) 100%);
}

.service-single .service-siblings__title {
  position: absolute;
  inset: auto 0 0 0;
  margin: 0;
  padding: var(--space-lg);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  text-transform: uppercase;
  color: var(--color-4);
}

.service-single .service-siblings__link:hover .service-siblings__title {
  color: var(--color-2);
}

@media (max-width:1100px) {
  .service-single .service-body__split { grid-template-columns: 1fr; gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .service-single .service-body__panel { grid-template-columns: 1fr; gap: var(--space-lg); padding: var(--space-xl); }
}

@media (max-width:1100px) {
  .service-single .service-body__prose,
    .service-single .service-body__panel-body .service-body__prose,
    .service-single .service-body__prose--closing,
    .service-single .service-body__prose--lead,
    .service-single .service-body--split .service-body__split-body .service-body__prose,
    .service-single .service-body--marker .service-body__prose,
    .service-single .service-body__record-text { max-width: none; }
}

@media (max-width:1100px) {
  .service-single .service-siblings__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:600px) {
  .service-single .service-hero { min-height: 420px; }
}

@media (max-width:600px) {
  .service-single .service-hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .service-single .service-hero__standfirst { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .service-single .service-hero__furniture { flex-direction: column; align-items: flex-start; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .service-single .service-hero__actions { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .service-single .service-hero__actions .btn { width: 100%; }
}

@media (max-width:600px) {
  .service-single .service-body__heading { font-size: 24px; }
}

@media (max-width:600px) {
  .service-single .service-body__heading--display { font-size: 28px; }
}

@media (max-width:600px) {
  .service-single .service-body__prose--lead p { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .service-single .service-body__panel { padding: var(--space-lg); }
}

@media (max-width:600px) {
  .service-single .service-body__index { font-size: 32px; }
}

@media (max-width:600px) {
  .service-single .service-siblings__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .service-single .service-siblings__card { height: 200px; }
}

.category-single .category-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 520px;
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-3));
  overflow: hidden;
}

.category-single .category-hero__media {
  position: absolute;
  inset: 0;
  margin: 0;
  aspect-ratio: auto;
}

.category-single .category-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.category-single .category-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(46,41,16,.95) 0%, rgba(46,41,16,.82) 55%, rgba(46,41,16,.42) 100%);
}

.category-single .category-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  padding-top: 92px;
}

.category-single .category-hero__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.category-single .category-hero__eyebrow {
  color: var(--color-2);
}

.category-single .category-hero__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.category-single .category-hero__rule {
  display: block;
  width: 100%;
  height: 1px;
  background: #8A7F63;
  margin-bottom: var(--space-sm);
}

.category-single .category-hero__title {
  max-width: 900px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-bold);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--color-4);
}

.category-single .category-hero__standfirst {
  max-width: 640px;
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 34px;
  color: var(--color-1);
}

.category-single .category-hero__actions {
  display: flex;
  gap: var(--space-md);
  padding-top: var(--space-sm);
}

.category-single .category-hero__actions .btn--ghost {
  background: transparent;
  border: 1px solid var(--color-1);
  color: var(--color-1);
}

.category-single .category-hero__actions .btn--ghost:hover, .category-single .category-hero__actions .btn--ghost:focus-visible {
  border-color: var(--color-2);
  color: var(--color-2);
}

.category-single .aisle-band {
  padding-block: clamp(48px, 9vw, 120px);
}

.category-single .aisle-band__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.category-single .aisle-band__heading {
  max-width: 820px;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-bold);
  line-height: 1.15;
  text-transform: uppercase;
}

.category-single .aisle-band__heading--display {
  max-width: 900px;
  font-size: var(--text-h2);
}

.category-single .aisle-band__heading--small {
  font-size: var(--text-h4);
}

.category-single .aisle-band__prose p {
  margin: 0 0 var(--space-md);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
}

.category-single .aisle-band__prose p:last-child {
  margin-bottom: 0;
}

.category-single .aisle-band__prose--lede {
  /* 780px at the lede's 20px type measured 78ch; ch-based so the cap tracks
     the font size instead of assuming it. */
  max-width: 64ch;
}

.category-single .aisle-band__prose--lede p {
  font-size: var(--text-lg);
  line-height: 34px;
}

.category-single .aisle-band--ground-cream {
  background: var(--section-bg-color, var(--color-4));
}

.category-single .aisle-band--ground-cream .aisle-band__heading {
  color: var(--color-3);
}

.category-single .aisle-band--ground-cream .aisle-band__prose p {
  color: var(--color-5);
}

.category-single .aisle-band--ground-surface {
  background: var(--section-bg-color, var(--color-7));
}

.category-single .aisle-band--ground-surface .aisle-band__heading {
  color: var(--color-3);
}

.category-single .aisle-band--ground-surface .aisle-band__prose p {
  color: var(--color-5);
}

.category-single .aisle-band--ground-dark {
  background: var(--section-bg-color, var(--color-3));
}

.category-single .aisle-band--ground-dark .aisle-band__heading {
  color: var(--color-4);
}

.category-single .aisle-band--ground-dark .aisle-band__prose p {
  color: var(--color-1);
}

.category-single .aisle-band--ground-blaze {
  background: var(--section-bg-color, var(--color-2));
}

.category-single .aisle-band--ground-blaze .aisle-band__heading {
  color: var(--color-on-primary);
}

.category-single .aisle-band--ground-blaze .aisle-band__prose p {
  color: var(--color-on-primary);
}

.category-single .aisle-band__link {
  color: var(--color-primary-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.category-single .aisle-band--ground-dark .aisle-band__link {
  color: var(--color-2);
}

.category-single .aisle-band--ground-blaze .aisle-band__link {
  color: var(--color-on-primary);
}

.category-single .aisle-band__ledger {
  list-style: none;
  margin: 0;
  padding: 0;
}

.category-single .aisle-band__ledger-row {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: var(--space-lg);
  align-items: start;
  padding-block: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.category-single .aisle-band--ground-dark .aisle-band__ledger-row {
  border-top-color: #8A7F6366;
}

.category-single .aisle-band__ledger-row:last-child {
  border-bottom: 1px solid var(--color-border);
}

.category-single .aisle-band--ground-dark .aisle-band__ledger-row:last-child {
  border-bottom-color: #8A7F6366;
}

.category-single .aisle-band__ledger-index {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  line-height: 1.4;
  color: var(--color-primary-ink);
}

.category-single .aisle-band--ground-dark .aisle-band__ledger-index {
  color: var(--color-2);
}

.category-single .aisle-band__ledger-text {
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
}

.category-single .aisle-band--ground-dark .aisle-band__ledger-text {
  color: var(--color-1);
}

.category-single .aisle-band--ground-cream .aisle-band__ledger-text, .category-single .aisle-band--ground-surface .aisle-band__ledger-text {
  color: var(--color-5);
}

.category-single .aisle-band__panel {
  /* Two columns: heading + blaze rule on the left, prose on the right. The
     single-column version ran the body to 98ch — this site's own pages never
     exceed 69 — and left the band carrying nothing but text. */
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: 56px;
  align-items: start;
  max-width: 1100px;
  padding: 56px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-7);
}

.category-single .aisle-band__panel-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.category-single .aisle-band__panel-body .aisle-band__prose {
  /* 60ch, not 62: the fidelity checker estimates character width slightly
     narrower than the font's own ch unit, so 62ch measures as 70. */
  max-width: 60ch;
}

.category-single .aisle-band--ground-dark .aisle-band__panel {
  background: #37321A;
  border-color: #8A7F6366;
}

.category-single .aisle-band--ground-surface .aisle-band__panel {
  background: var(--color-4);
}

.category-single .aisle-band__rule {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--color-2);
}

.category-single .aisle-band__marker {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--color-2);
}

.category-single .aisle-band__prose--columns {
  column-count: 2;
  column-gap: 72px;
}

.category-single .aisle-band__prose--columns p {
  break-inside: avoid;
}

.category-single .aisle-band__aside {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 72px;
  align-items: start;
}

.category-single .aisle-band__aside-body .aisle-band__prose {
  max-width: 60ch;
}

.category-single .aisle-band__close {
  /* Left-aligned two-column band, matching every other section on the page.
     Was a centred 860px stack — the only centred text in the collection, and
     its body ran to 108ch against this site's 69ch measure. */
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 72px;
  align-items: start;
  max-width: none;
  margin-inline: 0;
  text-align: left;
}

.category-single .aisle-band__close-copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.category-single .aisle-band__prose--close {
  max-width: 60ch;
}

.category-single .aisle-band__prose--close p {
  text-align: left;
}

.category-single .aisle-band__actions {
  /* Stacked in the close band's right column, left-aligned with the copy. */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-md);
  flex-wrap: wrap;
  justify-content: flex-start;
}

.category-single .category-siblings {
  padding-block: clamp(48px, 9vw, 120px);
  background: var(--section-bg-color, var(--color-3));
}

.category-single .category-siblings__furniture {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: var(--space-md);
}

.category-single .category-siblings__eyebrow {
  color: var(--color-2);
}

.category-single .category-siblings__meta {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-1);
}

.category-single .category-siblings__rule {
  display: block;
  height: 1px;
  background: #8A7F63;
}

.category-single .category-siblings__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-lg);
  padding-top: var(--space-xl);
}

.category-single .category-siblings__card {
  position: relative;
  height: 240px;
  border: 1px solid #8A7F6366;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-3);
}

.category-single .category-siblings__link {
  display: block;
  height: 100%;
  text-decoration: none;
}

.category-single .category-siblings__media {
  position: absolute;
  inset: 0;
  margin: 0;
  aspect-ratio: auto;
  display: block;
}

.category-single .category-siblings__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.category-single .category-siblings__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,41,16,0) 30%, rgba(46,41,16,.85) 100%);
}

.category-single .category-siblings__title {
  position: absolute;
  inset: auto 0 0 0;
  margin: 0;
  padding: var(--space-lg);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-med);
  text-transform: uppercase;
  color: var(--color-4);
}

.category-single .category-siblings__link:hover .category-siblings__title {
  color: var(--color-2);
}

@media (max-width:1100px) {
  .category-single .aisle-band__aside { grid-template-columns: 1fr; gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .category-single .aisle-band__prose--columns { column-count: 1; }
}

@media (max-width:1100px) {
  .category-single .aisle-band__panel { padding: var(--space-xl); }
}

@media (max-width:1100px) {
  .category-single .category-siblings__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width:600px) {
  .category-single .category-hero { min-height: 420px; }
}

@media (max-width:600px) {
  .category-single .category-hero__title { font-size: 34px; line-height: 1.1; }
}

@media (max-width:600px) {
  .category-single .category-hero__standfirst { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .category-single .category-hero__furniture { flex-direction: column; align-items: flex-start; gap: var(--space-xs); }
}

@media (max-width:600px) {
  .category-single .category-hero__actions { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .category-single .category-hero__actions .btn { width: 100%; }
}

@media (max-width:600px) {
  .category-single .aisle-band__heading { font-size: 24px; }
}

@media (max-width:600px) {
  .category-single .aisle-band__heading--display { font-size: 28px; }
}

@media (max-width:600px) {
  .category-single .aisle-band__heading--small { font-size: 22px; }
}

@media (max-width:600px) {
  .category-single .aisle-band__prose--lede p { font-size: var(--text-md); line-height: 1.6; }
}

@media (max-width:600px) {
  .category-single .aisle-band__panel { padding: var(--space-lg); }
}

@media (max-width:600px) {
  .category-single .aisle-band__ledger-row { grid-template-columns: 40px 1fr; gap: var(--space-md); }
}

@media (max-width:600px) {
  .category-single .aisle-band__actions { flex-direction: column; align-items: stretch; width: 100%; }
}

@media (max-width:600px) {
  .category-single .aisle-band__actions .btn { width: 100%; }
}

@media (max-width:600px) {
  .category-single .category-siblings__list { grid-template-columns: 1fr; }
}

@media (max-width:600px) {
  .category-single .category-siblings__card { height: 180px; }
}

.popup {
    max-width: min(var(--popup-max-w, 560px), calc(100vw - 2 * var(--space-lg)));
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: var(--popup-radius, var(--radius-lg));
    background: var(--popup-bg, var(--color-surface));
    color: var(--popup-fg, var(--color-text));
    box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
    overflow: hidden;
}

.popup::backdrop { background: var(--popup-backdrop, rgba(0, 0, 0, .55)); }

.popup__inner { position: relative; }

.popup__media { margin: 0; line-height: 0; }

.popup__image { width: 100%; height: auto; display: block; }

.popup__content { padding: var(--popup-pad, var(--space-xl)); }

.popup__heading { margin: 0 0 var(--space-md); }

.popup__body { margin: 0 0 var(--space-lg); }

.popup__ctas { display: flex; flex-wrap: wrap; gap: var(--space-md); }

.popup__close {
    position: absolute;
    top: var(--space-md);
    inset-inline-end: var(--space-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    background: var(--color-surface);
    color: var(--color-text);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    cursor: pointer;
}

.popup__close:hover { filter: brightness(.94); }

.popup__close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

@media (prefers-reduced-motion:no-preference) {
  .popup[open] { animation: layerly-popup-in .18s ease-out; }
}

@media (prefers-reduced-motion:no-preference) {
  @keyframes layerly-popup-in {
          from { opacity: 0; transform: translateY(8px) scale(.98); }
          to   { opacity: 1; transform: none; }
      }
}

.fb-feed__inner {
    display: grid;
    grid-template-columns: 1fr minmax(0, var(--fb-feed-embed-max-w, 500px));
    gap: var(--fb-feed-gap, var(--space-xl));
    align-items: start;
}

.fb-feed__body { margin: 0 0 var(--space-lg); }

.fb-feed__ctas { display: flex; flex-wrap: wrap; gap: var(--space-md); }

.fb-feed__embed {
    width: 100%;
    max-width: var(--fb-feed-embed-max-w, 500px);
    border-radius: var(--fb-feed-radius, var(--radius-md));
    overflow: hidden;
}

.fb-feed__iframe { display: block; width: 100%; border: 0; background: var(--color-border); }

.fb-feed__fallback { margin: 0; }

@media (max-width:860px) {
  .fb-feed__inner { grid-template-columns: 1fr; }
}

@media (max-width:860px) {
  .fb-feed__embed { justify-self: center; }
}

.category-single .aisle-band__stack {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 72px;
  align-items: start;
}

.category-single .aisle-band__stack-head {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.category-single .aisle-band__index {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  line-height: 1;
  color: var(--color-primary-ink);
}

.category-single .aisle-band--ground-dark .aisle-band__index {
  color: var(--color-2);
}

.category-single .aisle-band__rows {
  list-style: none;
  margin: 0;
  padding: 0;
}

.category-single .aisle-band__row {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: var(--space-md);
  align-items: start;
  padding-block: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.category-single .aisle-band--ground-dark .aisle-band__row {
  border-top-color: #8A7F6366;
}

.category-single .aisle-band__row:last-child {
  border-bottom: 1px solid var(--color-border);
}

.category-single .aisle-band--ground-dark .aisle-band__row:last-child {
  border-bottom-color: #8A7F6366;
}

.category-single .aisle-band__row-mark {
  display: block;
  width: 28px;
  height: 2px;
  margin-top: 12px;
  background: var(--color-2);
}

.category-single .aisle-band__row-text {
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
  /* The 7fr column ran these rows to 73ch; this site's pages never exceed 69. */
  max-width: 60ch;
}

.category-single .aisle-band--ground-dark .aisle-band__row-text {
  color: var(--color-1);
}

.category-single .aisle-band--ground-cream .aisle-band__row-text, .category-single .aisle-band--ground-surface .aisle-band__row-text {
  color: var(--color-5);
}

.category-single .aisle-band--wide .aisle-band__prose:not(.aisle-band__prose--columns) {
  /* ch-based so the cap tracks the type rather than assuming a pixel width. */
  max-width: 60ch;
}

@media (max-width:1100px) {
  .category-single .aisle-band__stack { grid-template-columns: 1fr; gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .category-single .aisle-band__panel { grid-template-columns: 1fr; gap: var(--space-lg); }
}

@media (max-width:1100px) {
  .category-single .aisle-band__close { grid-template-columns: 1fr; gap: var(--space-xl); }
}

@media (max-width:1100px) {
  .category-single .aisle-band__panel-body .aisle-band__prose,
    .category-single .aisle-band__aside-body .aisle-band__prose,
    .category-single .aisle-band__prose--close,
    .category-single .aisle-band__row-text { max-width: none; }
}

@media (max-width:1100px) {
  .category-single .aisle-band__actions { flex-direction: row; align-items: center; }
}

@media (max-width:600px) {
  .category-single .aisle-band__index { font-size: 32px; }
}

@media (max-width:600px) {
  .category-single .aisle-band__row { grid-template-columns: 20px 1fr; gap: var(--space-sm); }
}

@media (max-width:600px) {
  .category-single .aisle-band__row-mark { width: 20px; }
}

.nav--mwss .nav__drawer-head, .nav--mwss .nav__drawer-foot {
  display: none;
}

.service-single .service-body--split .service-body__split-body .service-body__prose, .service-single .service-body--marker .service-body__prose {
  max-width: 60ch;
}

.service-single .service-body__prose {
  max-width: 60ch;
}

/* ── Phase 3 preservation (2026-09-29): keep the pre-refresh look where the framework's r27→r40 update would shift it.
      Retire each line when the site deliberately adopts the newer framework design. ── */
:root {
  --nav-toggle-bar-w: 26px;
  --nav-toggle-bar-h: 3px;
  --nav-toggle-radius: 2px;
  --accordion-q-size: var(--text-lg);
}
[data-mobile-menu-toggle] { padding-left: 0; padding-right: 0; }
/* Cascade order: this child's .btn rule now loads after the parent's .btn--ghost. */
.btn--ghost { border-color: var(--color-border); }

/* ── Phase 3 preservation (2026-09-29, second pass): the framework sets --nav-toggle-* on the button itself, so set the bars directly. ── */
[data-mobile-menu-toggle] > span { width: 26px; height: 3px; border-radius: 2px; }
