.preview-note {
  background: #0c1710;
  color: #fff;
  padding: 0.42rem 1rem;
  text-align: center;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.preview-note span { margin-left: 0.7rem; color: rgba(255,255,255,0.62); }

html,
body { overflow-x: clip; }

.preview-header-logo {
  width: 3.45rem;
  height: 3.45rem;
  flex: 0 0 auto;
  object-fit: contain;
}

.preview-mobile-menu { display: none; }
.sd-nav a[aria-current='page'] { border-bottom: 2px solid var(--signal); color: var(--signal); }
.sd-header__actions .button { white-space: nowrap; }
#cart-button { gap: 0.35rem; }

.storefront-page { min-height: 65svh; }
.storefront-page.is-changing { opacity: 0.42; }

.site-breadcrumb {
  display: flex;
  max-width: var(--page-width, 92rem);
  margin-inline: auto;
  align-items: center;
  padding: 1rem var(--page-margin, 1.5rem);
  border-bottom: 1px solid var(--line);
  gap: 0.55rem;
  color: #5b645e;
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.site-breadcrumb a { color: var(--field); text-decoration: none; }
.site-breadcrumb a:hover { color: var(--safety); }
.site-breadcrumb span + span::before,
.site-breadcrumb a + span::before,
.site-breadcrumb a + a::before { margin-right: 0.55rem; content: '/'; }

.sd-mobile-cart {
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  background: transparent;
  color: #fff;
  padding: 0.8rem 0;
  font-weight: 750;
  text-align: left;
}

.page-masthead {
  background: var(--field-deep);
  color: #fff;
}

.page-masthead__inner {
  display: grid;
  max-width: var(--page-width, 92rem);
  min-height: 22rem;
  align-items: end;
  margin-inline: auto;
  grid-template-columns: minmax(0, 1.1fr) minmax(20rem, 0.9fr);
  padding: clamp(3.5rem, 7vw, 6rem) var(--page-margin, 1.5rem) clamp(2.75rem, 5vw, 4rem);
  gap: clamp(2rem, 6vw, 6rem);
}

.page-masthead h1,
.page-masthead .eyebrow { color: #fff; }
.page-masthead h1 { max-width: 12ch; font-size: clamp(3.35rem, 5.35vw, 5.65rem); overflow-wrap: normal; text-wrap: balance; word-break: normal; }
.page-masthead__intro { align-self: end; }
.page-masthead__intro p { color: rgba(255,255,255,0.72); font-size: 1.08rem; }
.page-masthead__facts { display: flex; flex-wrap: wrap; margin-top: 1.4rem; gap: 0.5rem; }
.page-masthead__facts span { border: 1px solid rgba(255,255,255,0.25); padding: 0.58rem 0.7rem; color: #fff; font-size: 0.66rem; font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; }

.page-tools {
  position: static;
  border-bottom: 1px solid var(--line);
  background: #f2efe5;
}

.page-tools__inner {
  display: flex;
  max-width: var(--page-width, 92rem);
  align-items: center;
  justify-content: space-between;
  margin-inline: auto;
  padding: 0.8rem var(--page-margin, 1.5rem);
  gap: 1rem;
}

.filter-row { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.filter-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  border: 1px solid #9ca29d;
  background: transparent;
  color: var(--field);
  padding: 0.6rem 0.75rem;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}
.filter-button[aria-pressed='true'],
.filter-button[aria-current='page'],
.filter-button:hover { border-color: var(--field); background: var(--field); color: #fff; }

.catalog-search { display: flex; width: min(100%, 30rem); }
.catalog-search input { min-width: 0; border-color: #9ca29d; background: #fff; }
.catalog-search button { border: 0; background: var(--safety); color: #fff; padding: 0 1.1rem; font-size: 0.68rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; }

.catalog-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.3rem; gap: 1rem; }
.catalog-meta p { margin: 0; color: #5a625d; font-size: 0.82rem; }

.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 1rem; }
.catalog-card {
  display: flex;
  min-height: 31rem;
  flex-direction: column;
  border: 1px solid var(--line);
  background: #f8f4e9;
  color: var(--field);
  text-decoration: none;
}
.catalog-card[hidden] { display: none; }
.catalog-card__media { position: relative; aspect-ratio: 1.3; overflow: hidden; background: var(--steel); }
.catalog-card__media img,
.sd-hat-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  transition: transform 180ms ease;
}
.catalog-card:hover .catalog-card__media img { transform: scale(1.025); }
.catalog-card__type {
  display: grid;
  height: 100%;
  min-height: 15rem;
  place-items: center;
  background: var(--field);
  color: #fff;
  padding: 2rem;
  font-family: var(--display);
  font-size: clamp(2.3rem, 4vw, 4rem);
  letter-spacing: 0.03em;
  line-height: 0.92;
  text-align: center;
  text-transform: uppercase;
}
.catalog-card__badge { position: absolute; top: 0.8rem; left: 0.8rem; background: var(--signal); color: var(--field-deep); padding: 0.48rem 0.6rem; font-size: 0.62rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.catalog-card__copy { display: flex; flex: 1; flex-direction: column; padding: 1.15rem; }
.catalog-card__copy > span { color: var(--safety); font-size: 0.65rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.catalog-card__copy h2 { min-height: 1.9em; margin: 0.5rem 0; font-size: clamp(1.65rem, 2.5vw, 2.3rem); }
.catalog-card__copy p { min-height: 4.5em; color: #59625c; font-size: 0.84rem; }
.catalog-card__foot { display: flex; align-items: end; justify-content: space-between; margin-top: auto; border-top: 1px solid var(--line); padding-top: 0.9rem; gap: 1rem; }
.catalog-card__price { color: var(--field); font-family: var(--display); font-size: 1.65rem; line-height: 1; }
.catalog-card__minimum { color: #6a726c; font-size: 0.66rem; font-weight: 800; text-align: right; text-transform: uppercase; }

.program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.program-card { display: flex; min-height: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: #f2efe5; padding: 0; gap: 0; }
.program-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 28%; }
.program-card__copy { padding: 1.15rem 1.25rem 1.35rem; background: #f2efe5; }
.program-card > span,
.program-card__copy span { color: var(--safety); font-size: 0.7rem; font-weight: 900; letter-spacing: 0.1em; }
.program-card h2 { margin: 0.4rem 0 0.5rem; font-size: clamp(1.45rem, 2.2vw, 1.95rem); }
.program-card p { color: #566159; }
.program-card a { font-size: 0.72rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.program-card .sd-icon { color: var(--safety); margin: 0 0.35rem 0 0; }

.brand-directory { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.brand-card { display: grid; min-height: 24rem; grid-template-rows: auto 9rem 1fr auto; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f8f4e9; padding: 1.35rem; gap: 1rem; }
.brand-card[hidden] { display: none; }
.brand-card__category { color: var(--safety); font-size: 0.66rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.brand-card__logo { display: grid; min-height: 9rem; place-items: center; border-block: 1px solid var(--line); background: #fff; padding: 1.25rem; }
.brand-card__logo img { width: 100%; max-width: 12.5rem; max-height: 6.5rem; object-fit: contain; }
.brand-card h2 { margin: 0 0 0.55rem; font-size: clamp(1.6rem, 2.5vw, 2.35rem); overflow-wrap: normal; word-break: normal; }
.brand-card p { margin: 0; color: #59625d; font-size: 0.85rem; }
.brand-card a { align-self: end; justify-self: start; font-size: 0.7rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }

.industry-feature { display: grid; grid-template-columns: minmax(23rem,0.92fr) minmax(0,1.08fr); border-top: 1px solid var(--line); }
.industry-feature__intro { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.5rem,4vw,3.5rem) clamp(1.5rem,4vw,3.5rem) clamp(2.5rem,4vw,3.5rem) 0; }
.industry-feature__intro > span { color: var(--safety); font-size: 0.7rem; font-weight: 900; letter-spacing: 0.1em; }
.industry-feature__intro h2 { max-width: 12ch; margin: 1.25rem 0 0.9rem; font-size: clamp(2.55rem,3.55vw,3.65rem); overflow-wrap: normal; text-wrap: balance; word-break: normal; }
.industry-feature__intro p { max-width: 30rem; color: #59625c; }
.industry-feature__solutions { display: grid; grid-template-columns: repeat(2,1fr); border-left: 1px solid var(--line); }
.industry-feature__solutions div { display: flex; min-height: 8.75rem; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 1.3rem; }
.industry-feature__solutions strong { display: block; color: var(--field); }
.industry-feature__solutions span { color: var(--safety); font-size: 0.66rem; font-weight: 900; letter-spacing: 0.08em; }

.gallery-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; gap: 1rem; }
.gallery-toolbar p { margin: 0; color: #5d655f; font-size: 0.82rem; }
.gallery-card[hidden] { display: none; }

.mockup-stage { display: grid; grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr); border: 1px solid var(--line); background: #f8f4e9; }
.mockup-stage__media { min-height: 37rem; }
.mockup-stage__media img { width: 100%; height: 100%; object-fit: cover; }
.mockup-stage__copy { padding: clamp(2rem,5vw,4rem); }
.mockup-upload { display: grid; margin: 1.3rem 0; border: 1px dashed #7d857f; background: #fff; padding: 1.2rem; gap: 0.4rem; }
.mockup-upload input { border: 0; padding: 0; }
.mockup-checklist { display: grid; margin: 1.2rem 0 1.6rem; padding: 0; }
.mockup-checklist li { border-top: 1px solid var(--line); padding: 0.8rem 0; list-style: none; }
.mockup-checklist strong { display: block; }
.mockup-checklist span { color: #5f6862; font-size: 0.8rem; }

.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 0; color: var(--field); cursor: pointer; font-weight: 850; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { color: var(--safety); content: 'Open'; font-size: 0.64rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.faq-list details[open] summary::after { content: 'Close'; }
.faq-list details p { max-width: 52rem; padding: 0 0 1.3rem; color: #566159; }

.product-preview-shell { padding-block: clamp(2rem,5vw,5rem); }
.product-preview-layout { display: grid; align-items: start; grid-template-columns: minmax(0,1.05fr) minmax(28rem,0.95fr); gap: clamp(2rem,6vw,6rem); }
.product-preview-gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 0.7rem; }
.product-preview-gallery figure { margin: 0; background: var(--steel); }
.product-preview-gallery figure:first-child { grid-column: 1/-1; }
.product-preview-gallery img { width: 100%; height: 100%; aspect-ratio: 1.12; object-fit: cover; }
.product-preview-info { position: sticky; top: 8.3rem; }
.product-preview-info h1 { font-size: clamp(3.4rem,6vw,6.5rem); }
.product-preview-price { color: var(--safety); font-family: var(--display); font-size: 2.5rem; line-height: 1; }
.product-preview-description { color: #566159; }
.configuration-panel { display: grid; margin-top: 1.4rem; border-top: 4px solid var(--field); gap: 0; }
.configuration-step { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.configuration-step__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.7rem; gap: 1rem; }
.configuration-step__head span { color: var(--safety); font-size: 0.66rem; font-weight: 900; letter-spacing: 0.08em; }
.configuration-note { color: #636b65; font-size: 0.74rem; }
.pricing-table { width: 100%; margin-top: 0.8rem; border-collapse: collapse; }
.pricing-table th,
.pricing-table td { border-bottom: 1px solid var(--line); padding: 0.62rem 0.35rem; font-size: 0.76rem; text-align: left; }
.pricing-table th { color: var(--safety); font-size: 0.63rem; letter-spacing: 0.07em; text-transform: uppercase; }
.product-total { display: flex; align-items: end; justify-content: space-between; margin: 1rem 0; gap: 1rem; }
.product-total span { color: #5d655f; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; }
.product-total strong { display: block; color: var(--field); font-family: var(--display); font-size: 2.7rem; line-height: 1; }
.product-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem; }

.project-stepper { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,0.22); border-left: 1px solid rgba(255,255,255,0.22); }
.project-stepper span { border-right: 1px solid rgba(255,255,255,0.22); border-bottom: 1px solid rgba(255,255,255,0.22); padding: 0.9rem; color: rgba(255,255,255,0.72); font-size: 0.67rem; font-weight: 800; text-transform: uppercase; }
.project-stepper span strong { display: block; margin-bottom: 0.25rem; color: var(--signal); }
.preview-form-status { display: none; grid-column: 1/-1; border: 1px solid var(--signal); background: rgba(212,212,212,0.12); color: #fff; padding: 1rem; }
.preview-form-status.is-visible { display: block; }
.sd-file-name { margin: 0.45rem 0 0; color: inherit; font-size: 0.76rem; }

.cart-drawer {
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  display: flex;
  width: min(32rem, 100%);
  height: 100svh;
  flex-direction: column;
  border: 0;
  background: #f8f4e9;
  color: var(--ink);
  padding: 0;
  box-shadow: -2rem 0 5rem rgba(0,0,0,0.28);
}
.cart-drawer:not([open]) { display: none; }
.cart-drawer::backdrop { background: rgba(8,14,10,0.72); }
.cart-drawer__head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 1.2rem; gap: 1rem; }
.cart-drawer__head h2 { margin: 0; font-size: 2.3rem; }
.cart-drawer__close { border: 1px solid var(--line); background: transparent; padding: 0.65rem; font-size: 0.68rem; font-weight: 900; text-transform: uppercase; }
.cart-drawer__body { flex: 1; overflow: auto; padding: 1.2rem; }
.cart-item { display: grid; grid-template-columns: 7rem 1fr; border-bottom: 1px solid var(--line); padding-bottom: 1rem; gap: 1rem; }
.cart-item img { width: 7rem; height: 7rem; object-fit: cover; }
.cart-item h3 { margin-bottom: 0.4rem; font-size: 1.4rem; }
.cart-item p { margin: 0.25rem 0; color: #606862; font-size: 0.76rem; }
.cart-coupon { display: grid; margin: 0 0 1rem; gap: 0.4rem; }
.cart-coupon label { font-size: 0.72rem; font-weight: 850; letter-spacing: 0.06em; text-transform: uppercase; }
.cart-coupon__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem; }
.cart-coupon input { min-height: 3rem; border: 1px solid var(--line); background: #fff; color: var(--field); padding: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; }
.cart-coupon__status { margin: 0; color: #59625c; font-size: 0.8rem; }
.cart-coupon__status[hidden] { display: none; }
.cart-coupon__status[data-tone="ok"] { color: #1f6b3a; }
.cart-coupon__status[data-tone="error"] { color: #8a2818; }
.cart-coupon__status .text-button { margin-left: 0.35rem; }
.cart-drawer__totals { display: grid; margin-bottom: 1rem; gap: 0.4rem; }
.cart-drawer__total-row { display: flex; align-items: baseline; justify-content: space-between; color: #59625c; font-size: 0.86rem; }
.cart-drawer__total-row--discount { color: #1f6b3a; }
.checkout-coupon { margin: 0; border: 1px solid #1f6b3a; background: #edf8f0; color: #14532d; padding: 0.8rem; font-size: 0.82rem; }
.checkout-coupon[hidden] { display: none; }
.cart-drawer__foot { border-top: 1px solid var(--line); padding: 1.2rem; }
.cart-drawer__save-status { margin: 0 0 0.9rem; border: 1px solid #b45309; border-radius: 0.65rem; background: #fff7ed; color: #7c2d12; padding: 0.75rem 0.85rem; font-size: 0.9rem; line-height: 1.45; }
.cart-drawer__total { display: flex; align-items: end; justify-content: space-between; margin-bottom: 1rem; }
.cart-drawer__total strong { font-family: var(--display); font-size: 2.4rem; }

.connected-product-panel { margin-bottom: 1rem; }
.connected-product-panel > .button { width: 100%; }
.connected-product-panel p { margin: 0; color: #59625c; font-size: 0.83rem; line-height: 1.55; }
.connected-field { display: grid; max-width: 13rem; color: var(--field); font-size: 0.7rem; font-weight: 900; gap: 0.45rem; letter-spacing: 0.06em; text-transform: uppercase; }
.connected-field input { background: #fff; border: 1px solid var(--line); font-size: 1rem; min-height: 3rem; padding: 0.7rem; }
.connected-status { border-left: 4px solid var(--signal); background: rgba(212,212,212,.12); padding: 0.85rem 1rem; }

.checkout-dialog { width: min(38rem, calc(100% - 1.5rem)); max-height: calc(100dvh - 1.5rem); border: 0; background: #f8f4e9; color: var(--ink); padding: 0; box-shadow: 0 2rem 7rem rgba(0,0,0,.35); }
.checkout-dialog:not([open]) { display: none; }
.checkout-dialog::backdrop { background: rgba(8,14,10,.76); }
.checkout-form { display: flex; max-height: calc(100dvh - 1.5rem); flex-direction: column; }
.checkout-form__body { display: grid; overflow-y: auto; padding: 1.2rem; gap: 0.9rem; }
.checkout-form label { display: grid; color: var(--field); font-size: .68rem; font-weight: 900; gap: .4rem; letter-spacing: .05em; text-transform: uppercase; }
.checkout-form input { min-height: 3rem; border: 1px solid var(--line); background: #fff; color: var(--field); padding: .7rem; }
.checkout-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.checkout-form__error { margin: 0; border: 1px solid #e27c66; background: #fff0ed; color: #8a2818; padding: .8rem; font-size: .78rem; }
.checkout-form__error[hidden] { display: none; }

body.piup-customizer-open { overflow: hidden; }
.piup-customizer { position: fixed; z-index: 2147483000; inset: 0; width: 100vw; height: 100vh; height: 100dvh; overflow: hidden; background: #fff; }
.piup-customizer[hidden] { display: none; }
.piup-customizer iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100vh; height: 100dvh; border: 0; background: #fff; }
.piup-customizer__close { position: fixed; z-index: 3; top: max(.75rem, env(safe-area-inset-top)); right: max(.75rem, env(safe-area-inset-right)); display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(17,24,19,.2); background: rgba(247,245,238,.96); color: #263029; box-shadow: 0 .35rem 1.4rem rgba(7,12,9,.18); cursor: pointer; font-size: 1.7rem; line-height: 1; }
.piup-customizer__close:hover { border-color: #6f786f; background: #fff; color: #0b120d; }
.piup-customizer__close:focus-visible { outline: 3px solid var(--signal); outline-offset: 2px; }
.piup-customizer__error { position: fixed; z-index: 4; top: max(.75rem, env(safe-area-inset-top)); left: 50%; max-width: min(34rem, calc(100vw - 7rem)); margin: 0; border: 1px solid #ffc9c0; background: #fff0ee; color: #9a301f; padding: .7rem 1rem; box-shadow: 0 .5rem 1.4rem rgba(70,20,12,.16); font-size: .72rem; transform: translateX(-50%); }
.piup-customizer__error[hidden] { display: none; }

.toast {
  position: fixed;
  z-index: 120;
  right: 1rem;
  bottom: 1rem;
  max-width: 28rem;
  border-left: 5px solid var(--signal);
  background: var(--field-deep);
  color: #fff;
  padding: 1rem 1.2rem;
  box-shadow: 0 1rem 3rem rgba(0,0,0,0.28);
  font-size: 0.82rem;
  transform: translateY(160%);
  transition: transform 180ms ease;
}
.toast.is-visible { transform: none; }

.sd-footer__newsletter { display: grid; gap: 0.65rem; }
.sd-footer__newsletter input { border: 0; }
.preview-footer-link { color: var(--signal); }
.sd-footer__powered {
  max-width: var(--page-width, 92rem);
  margin: 0 auto;
  padding: 0 var(--page-margin, 1.5rem) 1.5rem;
  color: rgba(255,255,255,0.62);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}
.sd-footer__powered a { color: #fff; text-decoration: none; }
.sd-footer__powered a:hover { color: var(--signal); }

@media (max-width: 1100px) {
  .preview-mobile-menu { display: block; }
  .sd-header__actions > .button { display: none; }
  .page-masthead__inner { grid-template-columns: 1fr; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sd-shop-category-grid,
  .sd-shop-category-grid--store { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .brand-directory { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 820px) {
  .page-tools__inner,
  .gallery-toolbar { align-items: stretch; flex-direction: column; }
  .catalog-search { width: 100%; }
  .industry-feature,
  .mockup-stage,
  .product-preview-layout { grid-template-columns: 1fr; }
  .industry-feature__intro { padding-right: 0; }
  .industry-feature__solutions { border-top: 1px solid var(--line); }
  .product-preview-info { position: static; }
  .industry-feature__intro { padding-right: 0; }
}

@media (max-width: 650px) {
  .preview-note { padding-inline: 0.7rem; font-size: 0.58rem; }
  .page-masthead__inner { min-height: auto; padding: 2.75rem 1rem; gap: 1.5rem; }
  .preview-note span { display: none; }
  .page-masthead h1 { max-width: 11ch; font-size: clamp(2.9rem, 12vw, 3.8rem); }
  .page-masthead__intro p { font-size: 0.98rem; }
  .page-tools__inner { padding-inline: 1rem; }
  .filter-row { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 0.25rem; scrollbar-width: thin; }
  .filter-button { flex: 0 0 auto; }
  .catalog-grid:not(.catalog-grid--shop),
  .sd-shop-category-grid:not(.sd-shop-category-grid--index) { grid-template-columns: 1fr; }
  .catalog-card { min-height: 28rem; }
  .catalog-card__copy h2,
  .catalog-card__copy p { min-height: 0; }
  .catalog-meta { align-items: flex-start; flex-direction: column; }
  .brand-directory,
  .product-preview-gallery,
  .project-stepper { grid-template-columns: 1fr; }
  .industry-feature__solutions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand-card { min-height: 22rem; }
  .industry-feature__intro h2 { max-width: 11ch; font-size: clamp(2.65rem, 13vw, 3.55rem); }
  .product-preview-gallery figure:first-child { grid-column: auto; }
  .product-actions { grid-template-columns: 1fr; }
  .checkout-form__row { grid-template-columns: 1fr; }
  .piup-customizer__close { top: max(.5rem, env(safe-area-inset-top)); right: max(.5rem, env(safe-area-inset-right)); }
  .piup-customizer__error { top: max(.5rem, env(safe-area-inset-top)); left: .5rem; max-width: calc(100vw - 4rem); transform: none; }
  .site-breadcrumb { padding-inline: 1rem; }
}

/* Full-bleed hero + connected builder rail */
.sd-hero {
  position: relative;
  display: grid;
  min-height: min(92svh, 54rem);
  grid-template-columns: 1fr;
  align-items: end;
  overflow: clip;
  background: var(--field-deep);
}
.sd-hero__media {
  position: absolute;
  inset: 0;
  min-height: 0;
  order: 0;
}
.sd-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  transform: scale(1.04);
  animation: sd-hero-drift 18s ease-in-out infinite alternate;
}
.sd-hero__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8, 14, 10, 0.92) 0%, rgba(8, 14, 10, 0.72) 42%, rgba(8, 14, 10, 0.28) 100%),
    linear-gradient(180deg, rgba(8, 14, 10, 0.2) 0%, rgba(8, 14, 10, 0.55) 100%);
  pointer-events: none;
}
.sd-hero__content {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  max-width: var(--page-width, 92rem);
  margin: 0 auto;
  padding: clamp(5rem, 12vw, 8rem) var(--page-margin, 1.5rem) clamp(3rem, 7vw, 5rem);
  background: transparent;
  order: 0;
}
.sd-hero__content > * {
  max-width: min(44rem, 100%);
}
.sd-hero__content::after { display: none; }
.sd-hero__brand {
  margin: 0 0 0.85rem;
  color: var(--signal);
  font-family: var(--display);
  font-size: clamp(1.55rem, 3.2vw, 2.35rem);
  letter-spacing: 0.08em;
  line-height: 0.95;
  text-transform: uppercase;
  animation: sd-rise 0.8s ease both;
}
.sd-hero__content .eyebrow,
.sd-hero__content h1,
.sd-hero__subtitle,
.sd-hero__content .button-row,
.sd-hero__trust {
  animation: sd-rise 0.9s ease both;
}
.sd-hero__content .eyebrow { animation-delay: 0.08s; }
.sd-hero__content h1 { animation-delay: 0.16s; max-width: min(22ch, 100%); text-wrap: balance; }
.sd-hero__lede { animation: sd-rise 0.9s ease both; animation-delay: 0.2s; }
.sd-hero__subtitle { animation-delay: 0.24s; }
.sd-hero__content .button-row { animation-delay: 0.32s; }
.sd-hero__trust { animation-delay: 0.4s; }

.sd-builder-rail {
  background: #101912;
  color: #f5f2e8;
  border-top: 1px solid rgba(212, 212, 212, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sd-builder-rail__head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, 0.9fr);
  gap: clamp(1.25rem, 4vw, 3rem);
  align-items: end;
  margin-bottom: 1.5rem;
}
.sd-builder-rail__head p:last-child { margin: 0; color: rgba(245, 242, 232, 0.72); }
.sd-builder-rail__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.sd-builder-tile {
  display: grid;
  align-content: start;
  gap: 0.55rem;
  min-height: 9.5rem;
  padding: 1.2rem 1.15rem;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  color: inherit;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.sd-builder-tile .sd-icon { color: var(--signal); }
.sd-builder-tile:last-child { border-right: 0; }
.sd-builder-tile strong {
  font-family: var(--display);
  font-size: 1.35rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sd-builder-tile span { color: rgba(245, 242, 232, 0.68); font-size: 0.92rem; line-height: 1.4; }
.sd-builder-tile:hover {
  background: var(--signal);
  color: var(--field-deep);
  transform: translateY(-2px);
}
.sd-builder-tile:hover span { color: rgba(14, 22, 17, 0.78); }

.catalog-card__cta {
  margin-top: 0.35rem;
  color: var(--safety);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.catalog-card:hover .catalog-card__cta { color: var(--field); }
.catalog-card {
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}
.catalog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(14, 22, 17, 0.12);
}

@keyframes sd-rise {
  from { opacity: 0; transform: translateY(1.1rem); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes sd-hero-drift {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.08) translate3d(-1.2%, -1%, 0); }
}

@media (max-width: 960px) {
  .sd-builder-rail__head,
  .sd-builder-rail__grid { grid-template-columns: 1fr 1fr; }
  .sd-builder-tile:nth-child(2n) { border-right: 0; }
  .sd-builder-tile { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
}
@media (max-width: 720px) {
  .sd-hero {
    display: flex;
    min-height: auto;
    flex-direction: column;
  }
  .sd-hero__content {
    order: 1;
    padding-top: 3.25rem;
    padding-bottom: 2rem;
    background: var(--field-deep);
  }
  .sd-hero__media {
    position: relative;
    order: 2;
    min-height: 18rem;
  }
  .sd-hero__veil {
    position: absolute;
    inset: auto 0 0 0;
    height: 40%;
    order: 2;
    background: linear-gradient(180deg, transparent 0%, rgba(8, 14, 10, 0.75) 100%);
  }
  .sd-builder-rail__head,
  .sd-builder-rail__grid { grid-template-columns: 1fr; }
  .sd-builder-tile { border-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .sd-hero__media img,
  .sd-hero__brand,
  .sd-hero__content .eyebrow,
  .sd-hero__content h1,
  .sd-hero__subtitle,
  .sd-hero__content .button-row,
  .sd-hero__trust,
  .catalog-card,
  .sd-builder-tile {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Lone Star Adhesive partner feature */
.sd-partner {
  background:
    linear-gradient(135deg, rgba(212, 212, 212, 0.14), transparent 48%),
    var(--field);
  color: #f5f2e8;
  border-top: 1px solid rgba(212, 212, 212, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sd-partner__inner {
  display: grid;
  grid-template-columns: minmax(12rem, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
}
.sd-partner__logo {
  display: grid;
  place-items: center;
  min-height: 12rem;
  padding: 1.4rem;
  background: rgba(255, 255, 255, 0.96);
  text-decoration: none;
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}
.sd-partner__logo img {
  width: min(100%, 18rem);
  height: auto;
  object-fit: contain;
}
.sd-partner__logo:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
}
.sd-partner__copy .eyebrow { color: var(--signal); }
.sd-partner__copy h2 {
  max-width: 14ch;
  color: #fff;
  font-family: var(--display);
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  letter-spacing: 0.02em;
  line-height: 0.95;
  text-transform: uppercase;
}
.sd-partner__copy p { max-width: 38rem; color: rgba(245, 242, 232, 0.78); }
.sd-partner__copy .button { margin-top: 0.4rem; }
@media (max-width: 720px) {
  .sd-partner__inner { grid-template-columns: 1fr; }
  .sd-partner__logo { min-height: 9.5rem; }
  .sd-partner__copy h2 { max-width: none; }
}

.sd-proof {
  background: #f2efe5;
  border-bottom: 1px solid var(--line);
}
.sd-proof__inner { padding-block: clamp(2.5rem, 5vw, 4rem); }
.sd-proof__inner h2 {
  max-width: 16ch;
  margin: 0 0 1.5rem;
  font-family: var(--display);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  letter-spacing: 0.02em;
  line-height: 0.98;
  text-transform: uppercase;
}
.sd-proof__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--line);
}
.sd-proof__grid > div {
  display: grid;
  gap: 0.55rem;
  padding: 1.25rem 1.2rem;
  border-right: 1px solid var(--line);
}
.sd-proof__grid > div:last-child { border-right: 0; }
.sd-proof__grid strong {
  font-family: var(--display);
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sd-proof__grid span { color: #5b645e; line-height: 1.45; }

.sd-work-proof { background: #111812; color: #f4efe3; border-top: 1px solid rgba(212,212,212,0.28); }
.sd-work-proof .eyebrow { color: var(--signal); }
.sd-work-proof h2 { max-width: 20ch; color: #fff; }
.sd-work-proof .section-header p { max-width: 42rem; color: rgba(244,239,227,0.78); }
.sd-work-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}
.sd-work-card {
  display: flex;
  min-height: 0;
  flex-direction: column;
  background: #0c120e;
  border: 1px solid rgba(255,255,255,0.1);
}
.sd-work-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 28%;
}
.sd-work-card__label { padding: 0.9rem 1rem 1.05rem; }
.sd-work-card__label strong {
  display: block;
  font-family: var(--display);
  font-size: 1.05rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.sd-work-card__label span { color: rgba(244,239,227,0.7); font-size: 0.82rem; line-height: 1.4; }
.sd-work-proof__cta { display: flex; flex-wrap: wrap; margin-top: 1.5rem; gap: 0.7rem; }

.sd-inhouse { background: #f2efe5; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sd-inhouse__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, 0.9fr);
  gap: clamp(1.25rem, 4vw, 3.5rem);
  align-items: end;
  padding-bottom: 0;
}
.sd-inhouse__intro h2 { max-width: 16ch; margin: 0; }
.sd-inhouse__intro p { margin: 0; color: #4d554f; font-size: 1.05rem; }
.sd-inhouse__shots {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
  padding-top: 1.5rem;
}
.sd-inhouse-shot { margin: 0; background: #111812; color: #fff; }
.sd-inhouse-shot img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 30%;
}
.sd-inhouse-shot figcaption { padding: 0.85rem 0.9rem 1rem; }
.sd-inhouse-shot strong {
  display: block;
  font-family: var(--display);
  font-size: 0.98rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sd-inhouse-shot span { color: rgba(255,255,255,0.72); font-size: 0.78rem; line-height: 1.35; }

.sd-home-faq { background: #ebe6d8; border-top: 1px solid var(--line); }
.sd-home-faq .faq-list { margin-top: 0.5rem; }

.sd-entity {
  background: #101810;
  color: #f4efe3;
  border-top: 1px solid rgba(212, 212, 212, 0.28);
  border-bottom: 1px solid rgba(212, 212, 212, 0.28);
}
.sd-entity__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(16rem, 0.85fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  padding-block: clamp(2rem, 5vw, 3.5rem);
  align-items: start;
}
.sd-entity .eyebrow { color: var(--signal); }
.sd-entity h2 {
  max-width: 16ch;
  margin: 0 0 0.85rem;
  color: #fff;
  font-family: var(--display);
  font-size: clamp(1.9rem, 3.6vw, 3rem);
  letter-spacing: 0.02em;
  line-height: 0.98;
  text-transform: uppercase;
}
.sd-entity p { max-width: 42rem; color: rgba(244, 239, 227, 0.82); }
.sd-entity .button-row { margin-top: 1.1rem; }
.sd-entity__facts {
  display: grid;
  gap: 0.85rem;
  margin: 0;
}
.sd-entity__facts > div {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 0.95rem;
  background: rgba(244, 239, 227, 0.06);
  border: 1px solid rgba(212, 212, 212, 0.18);
}
.sd-entity__facts dt {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--signal);
}
.sd-entity__facts dd { margin: 0; color: #f4efe3; line-height: 1.4; }
.sd-entity__facts a { color: inherit; }
.sd-geo__locations a {
  border: 1px solid rgba(24, 32, 27, 0.28);
  background: #f8f4e9;
  padding: 0.7rem 0.8rem;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit;
  text-decoration: none;
}
@media (max-width: 760px) {
  .sd-entity__inner { grid-template-columns: 1fr; }
  .sd-entity h2 { max-width: none; }
}

.sd-header.is-scrolled {
  box-shadow: 0 10px 28px rgba(8, 14, 10, 0.28);
  border-bottom-color: rgba(212, 212, 212, 0.35);
}

@media (max-width: 900px) {
  .sd-proof__grid { grid-template-columns: 1fr; }
  .sd-proof__grid > div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .sd-proof__grid > div:last-child { border-bottom: 0; }
}

.sd-announce {
  overflow: hidden;
  background: var(--signal);
  color: var(--field-deep);
  border-bottom: 3px solid var(--field-deep);
}
.sd-announce .sd-marquee__item + .sd-marquee__item {
  border-left: 2px solid var(--field-deep);
}
.sd-announce__inner { padding: 0.55rem 0; }
.sd-marquee__track {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 0;
  animation: sd-marquee 42s linear infinite;
}
.sd-marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0 1.6rem;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.sd-marquee__item img {
  width: 2.4rem;
  height: 2.4rem;
  object-fit: contain;
  background: #08110d;
  border-radius: 0.45rem;
  padding: 0.2rem;
}
.sd-brand-ribbon {
  background: #0c1710;
  border-top: 3px solid var(--safety);
  border-bottom: 3px solid var(--signal);
}
.sd-brand-ribbon .sd-marquee__item {
  color: #f4f0e4;
  font-family: var(--display);
  font-size: clamp(1.15rem, 2.4vw, 1.85rem);
  letter-spacing: 0.08em;
}
.sd-brand-ribbon .sd-marquee__item strong { color: var(--signal); }
.sd-brand-ribbon .sd-marquee__track { animation-duration: 36s; }
.sd-shop-card--crew img { object-position: center 28%; }
.sd-visit { background: #0e1611; color: #f4f0e4; }
.sd-visit__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(18rem, 1.05fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.sd-visit h2 { color: #fff; max-width: 14ch; }
.sd-visit p { color: rgba(244,240,228,0.78); }
.sd-visit__facts { list-style: none; margin: 1.4rem 0; padding: 0; }
.sd-visit__facts li { margin: 0 0 1rem; }
.sd-visit__facts strong { display: block; color: var(--signal); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.sd-visit__facts span, .sd-visit__facts a { color: #fff; text-decoration: none; }
.sd-visit__map { position: relative; min-height: 22rem; border-radius: 1rem; overflow: hidden; border: 1px solid rgba(255,255,255,0.12); }
.sd-visit__map iframe { width: 100%; height: 100%; min-height: 22rem; border: 0; }
.sd-visit__map-bar {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  background: #08110d;
  color: #fff;
  padding: 0.75rem 1rem;
  font-size: 0.78rem;
  font-weight: 750;
}
.sd-visit__map-bar a { color: var(--signal); text-transform: uppercase; letter-spacing: 0.08em; text-decoration: none; }
.sd-reviews, .sd-social { background: #f8f4e9; border-top: 1px solid var(--line); }
.sd-reviews__head {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  align-items: end;
  margin-bottom: 1.25rem;
}
.sd-reviews__rating {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.7rem;
  margin: 0.45rem 0 0;
  color: #0e1611;
  font-weight: 750;
}
.sd-reviews__rating strong {
  font-size: 1.7rem;
  letter-spacing: -0.03em;
}
.sd-reviews__rating span { color: #5b645e; font-weight: 650; }
.sd-carousel { display: grid; grid-template-columns: auto 1fr auto; gap: 0.6rem; align-items: center; }
.sd-carousel__scroller {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0.25rem 0 0.75rem;
}
.sd-carousel__scroller > * { flex: 0 0 min(22rem, 84vw); scroll-snap-align: start; }
.sd-carousel__nav {
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--line);
  background: #fff;
  color: #0e1611;
  font-size: 1.4rem;
  cursor: pointer;
}
.sd-review-card, .sd-social-card {
  display: flex;
  flex-direction: column;
  min-height: 16rem;
  background: #fff;
  border: 1px solid var(--line);
  padding: 1.25rem;
  text-decoration: none;
  color: inherit;
}
.sd-review-card__stars { color: #ed5a1f; letter-spacing: 0.08em; }
.sd-review-card p { font-size: 1.05rem; line-height: 1.5; }
.sd-review-card footer {
  margin-top: auto;
  color: #5b645e;
  font-size: 0.82rem;
  display: grid;
  gap: 0.2rem;
}
.sd-social-card img { width: 100%; height: 12rem; object-fit: cover; }
.sd-social-card span { display: grid; gap: 0.3rem; padding-top: 0.85rem; }
.sd-social-card small { color: #ed5a1f; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.sd-social-card em { color: #5b645e; font-style: normal; }
.sd-brand-list a { background: #fff; }
.sd-brand-list img { max-height: 4.1rem; }
.sd-shop-group {
  display: grid;
  gap: 0.7rem;
  margin-top: 1.35rem;
}
.sd-shop-group:first-of-type { margin-top: 0; }
.sd-shop-group__head h3 {
  margin: 0.15rem 0 0.25rem;
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
}
.sd-shop-group__head p {
  margin: 0;
  max-width: 44rem;
  color: #59625c;
  font-size: 0.86rem;
}
.sd-shop-category-grid,
.sd-shop-category-grid--index,
.sd-shop-category-grid--store {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}
.sd-shop-lead {
  align-items: center;
}
.catalog-card--actions {
  display: grid;
  color: inherit;
}
.catalog-card__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
  padding: 0 0.9rem 0.9rem;
}
.catalog-card__split .catalog-card__cta {
  width: 100%;
  min-height: 2.5rem;
  border: 0;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
}
.catalog-card__cta--ghost {
  background: transparent;
  border: 1px solid var(--field);
  color: var(--field);
}

.sd-shop-category-grid .sd-shop-card,
.sd-shop-category-grid .sd-shop-card:nth-child(1),
.sd-shop-category-grid .sd-shop-card:nth-child(2) {
  grid-column: auto;
  min-height: 0;
}
.sd-shop-category-grid .sd-shop-card img {
  aspect-ratio: 16 / 9;
}
.sd-shop-category-grid .sd-shop-card__copy {
  padding: 0.55rem 0.7rem 0.65rem;
}
.sd-shop-category-grid .sd-shop-card__copy h3 {
  margin: 0;
  font-size: clamp(0.82rem, 1.2vw, 0.98rem);
  line-height: 1.2;
  text-transform: uppercase;
}
.sd-shop-category-grid .sd-shop-card__copy > span,
.sd-shop-category-grid .sd-shop-card__copy p,
.sd-shop-category-grid .sd-shop-card__copy em,
.sd-shop-category-grid .sd-shop-card__copy .sd-icon {
  display: none;
}
.sd-hat-catalog-banner {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
  border: 1px solid var(--line);
  background: #f8f4e9;
  padding: 1.4rem 1.5rem;
}
.sd-hat-catalog-banner h2 { margin: 0.35rem 0 0.45rem; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.sd-hat-catalog-banner p { margin: 0; max-width: 42rem; color: #59625c; }
.filter-row--styles { flex-wrap: wrap; }
.sd-hat-card { min-height: 27rem; }
.sd-hat-card .catalog-card__media { aspect-ratio: 1 / 1; background: #f2efe5; }
.sd-hat-card .catalog-card__media img {
  object-fit: contain;
  object-position: center;
  padding: 0.65rem;
  background: #f2efe5;
}
.sd-hat-card .catalog-card__copy h2 {
  display: -webkit-box;
  min-height: 2.45em;
  overflow: hidden;
  font-size: clamp(1.35rem, 2.1vw, 1.85rem);
  line-height: 1.08;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.hat-detail-figure {
  display: grid;
  min-height: min(38rem, 72vw);
  overflow: hidden;
  place-items: center;
  background: #f2efe5;
}
.hat-detail-photo { object-fit: contain; background: #f2efe5; }
.hat-photo-unavailable {
  display: grid;
  width: min(80%, 24rem);
  min-height: 13rem;
  place-items: center;
  border: 1px dashed #8b928d;
  color: #505954;
  padding: 1.5rem;
  text-align: center;
}
.hat-photo-unavailable[hidden] { display: none; }
.hat-photo-status {
  border-left: 3px solid #a54d2d;
  background: #fff4ed;
  color: #682f1d;
  padding: 0.75rem 0.9rem;
}
.hat-photo-status[hidden] { display: none; }
[data-hat-decoration-action]:disabled {
  cursor: not-allowed;
  filter: grayscale(1);
  opacity: 0.52;
}
.sd-hat-swatches {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(5.4rem, 1fr));
  grid-auto-rows: 1fr;
  gap: 0.4rem;
}
.sd-hat-swatch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border: 1px solid #9ca29d;
  background: #fff;
  color: var(--field);
  padding: 0.38rem 0.45rem;
  font-size: 0.62rem;
  font-weight: 800;
}
.sd-hat-swatch--photo {
  flex-direction: column;
  align-items: stretch;
  min-height: 6.75rem;
  padding: 0.3rem;
  text-align: center;
}
.sd-hat-swatch img {
  width: 100%;
  min-height: 0;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: #f2efe5;
}
.sd-hat-swatch[aria-pressed='true'],
.sd-hat-swatch:hover { border-color: var(--field); background: var(--field); color: #fff; }
.sd-hat-swatch[aria-pressed='true'] img,
.sd-hat-swatch:hover img { outline: 1px solid rgba(255,255,255,0.35); }
.sd-hat-swatch span {
  width: 0.85rem;
  height: 0.85rem;
  border: 1px solid rgba(0,0,0,0.18);
  border-radius: 999px;
}
.sd-hat-swatch .sd-hat-swatch__name {
  display: -webkit-box;
  width: auto;
  height: auto;
  min-height: 2.4em;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  line-height: 1.2;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.sd-hat-pager { display: grid; gap: 0.75rem; margin-top: 1.5rem; }
.sd-hat-pager p { margin: 0; color: #5a625d; font-size: 0.82rem; }
@keyframes sd-marquee { to { transform: translateX(-50%); } }
@media (max-width: 900px) {
  .sd-visit__grid, .sd-reviews__head, .sd-carousel { grid-template-columns: 1fr; }
  .sd-carousel__nav { display: none; }
  .sd-hat-catalog-banner { align-items: stretch; flex-direction: column; }
}

.page-tools--stack .page-tools__inner {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 0.85rem;
}
.filter-row--brands {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(max(8.5rem, 28%), 1fr));
  gap: 0.55rem;
}
.filter-button--brand {
  display: flex;
  width: 100%;
  min-height: 4.6rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.65rem 0.5rem;
  background: #fff;
}
.filter-button--brand img {
  width: auto;
  max-width: 4.5rem;
  height: 1.5rem;
  object-fit: contain;
}
.filter-button--the-game img {
  background: #111;
  padding: 0.25rem 0.4rem;
  border-radius: 0.2rem;
}
.sd-icon {
  display: inline-block;
  width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 auto;
  color: var(--safety);
  vertical-align: middle;
}
.sd-industry-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.sd-industry-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--field);
  color: #fff;
}
.sd-industry-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 28%;
}
.sd-industry-card__copy { padding: 1.15rem 1.25rem 1.4rem; }
.sd-industry-card__copy span { color: var(--signal); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.1em; }
.sd-industry-card__copy h2 { margin: 0.4rem 0 0.5rem; color: #fff; font-size: clamp(1.5rem, 2.4vw, 2.1rem); }
.sd-industry-card__copy p { margin: 0; color: rgba(255,255,255,0.7); font-size: 0.86rem; }
.sd-industry-card__copy ul { list-style: none; margin: 1rem 0; padding: 0; }
.sd-industry-card__copy li { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0.4rem 0; color: #fff; }
.sd-industry-card__copy a { color: var(--signal); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.sd-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.sd-service-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--field);
  color: #fff;
}
.sd-service-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 28%;
}
.sd-service-card > div { padding: 1.15rem 1.2rem 1.35rem; }
.sd-service-card span { color: var(--signal); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.1em; }
.sd-service-card h2 { margin: 0.45rem 0 0.5rem; color: #fff; font-size: clamp(1.45rem, 2.2vw, 1.95rem); }
.sd-service-card p { margin: 0 0 1rem; color: rgba(255,255,255,0.7); font-size: 0.84rem; }
.sd-service-card a { color: var(--signal); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; }
.sd-shop-grid,
.sd-shop-grid--tri { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sd-shop-grid--audiences { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sd-shop-card,
.sd-shop-card:nth-child(1),
.sd-shop-card:nth-child(2) { grid-column: auto; min-height: 0; }
.sd-shop-card { display: flex; flex-direction: column; justify-content: flex-start; background: #f2efe5; color: var(--field); }
.sd-shop-card img {
  position: relative;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 28%;
}
.sd-shop-card::after { display: none; content: none; height: 0; background: none; }
.sd-shop-card__copy { position: relative; flex: 1; background: #f2efe5; color: var(--field); }
.sd-shop-card__copy h3 { color: var(--field); }
.sd-shop-card__copy p { color: #566159; }
.sd-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sd-project-card,
.sd-project-card:nth-child(1),
.sd-project-card:nth-child(2) { grid-column: auto; min-height: 0; }
.sd-project-card { display: flex; flex-direction: column; align-items: stretch; background: #f2efe5; }
.sd-project-card img {
  position: relative;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 28%;
}
.sd-project-card__label { position: relative; right: auto; bottom: auto; left: auto; background: #f2efe5; color: var(--field); }
.sd-category-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sd-category-nav a { min-height: 5.8rem; }

.sd-lead-dialog {
  width: min(28rem, calc(100vw - 1.5rem));
  max-height: calc(100svh - 2rem);
  overflow: auto;
  border: 0;
  background: #f8f4e9;
  color: var(--field);
  padding: 0;
  box-shadow: 0 2rem 4rem rgba(8, 12, 10, 0.38);
}
.sd-lead-dialog::backdrop { background: rgba(8, 12, 10, 0.62); }
.sd-lead-dialog__form { display: grid; padding: 1.6rem 1.5rem 1.45rem; gap: 0.45rem; }
.sd-lead-dialog__form h2 { margin: 0 0 0.35rem; font-size: clamp(2rem, 5vw, 2.7rem); }
.sd-lead-dialog__form > p { margin: 0 0 0.65rem; color: #59625c; }
.sd-lead-dialog__form label { margin-top: 0.35rem; font-size: 0.72rem; font-weight: 850; letter-spacing: 0.06em; text-transform: uppercase; }
.sd-lead-dialog__form label span { color: #7a827c; font-weight: 650; text-transform: none; letter-spacing: 0; }
.sd-lead-dialog__close {
  justify-self: end;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--field);
  font-size: 1.4rem;
  line-height: 1;
}
.sd-lead-dialog__consent {
  display: flex;
  align-items: flex-start;
  margin: 0.7rem 0 0.4rem;
  gap: 0.65rem;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.86rem;
  font-weight: 650;
}
.sd-lead-dialog__consent input { width: auto; margin-top: 0.2rem; }
.sd-lead-dialog__note { margin: 0.55rem 0 0; color: #6b736d; font-size: 0.78rem; }
.sd-lead-dialog__success { display: grid; padding: 1.6rem 1.5rem 1.45rem; gap: 0.45rem; }
.sd-lead-dialog__success[hidden] { display: none; }
.sd-lead-dialog__success h2 { margin: 0 0 0.35rem; font-size: clamp(2rem, 5vw, 2.7rem); }
.sd-lead-dialog__success > p { margin: 0 0 0.65rem; color: #59625c; }
.sd-lead-code {
  margin: 0.15rem 0 0.55rem;
  border: 1px solid var(--field);
  background: #fff;
  padding: 0.9rem 1rem;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 800;
  letter-spacing: 0.16em;
  text-align: center;
}

.page-masthead--shop .page-masthead__inner { padding-block: clamp(1.5rem, 4vw, 2.6rem); }
.page-masthead--shop h1 { max-width: 16ch; }
.sd-shop-catnav {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 0.4rem;
  padding-bottom: 0.15rem;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.sd-shop-catnav .filter-button {
  flex: 0 0 auto;
  min-height: 2.75rem;
  text-decoration: none;
}
.sd-shop-catnav .filter-button[aria-current='page'] {
  border-color: var(--field);
  background: var(--field);
  color: #fff;
}
.sd-shop-card em {
  display: inline-block;
  margin-top: 0.55rem;
  color: var(--safety);
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.catalog-grid--shop .catalog-card { min-height: 0; }
.catalog-grid--shop .catalog-card__copy { padding: 0.9rem; }
.catalog-grid--shop .catalog-card__copy h2 { min-height: 0; font-size: clamp(1.15rem, 3.4vw, 1.7rem); }
.catalog-grid--shop .catalog-card__copy p { min-height: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-grid--shop .catalog-card__type { min-height: 8.5rem; font-size: clamp(1.45rem, 4vw, 2.2rem); padding: 1.1rem; }
.catalog-grid--shop .catalog-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.35rem 0.55rem;
  background: var(--field);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.catalog-grid--shop .catalog-card__foot { align-items: center; gap: 0.55rem; }
.catalog-grid--shop .catalog-card__price { font-size: 1.15rem; }

@media (max-width: 1100px) {
  .sd-work-grid,
  .sd-inhouse__shots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sd-inhouse__intro { grid-template-columns: 1fr; }
  .sd-shop-grid,
  .sd-shop-grid--tri,
  .sd-shop-grid--audiences,
  .sd-gallery-grid,
  .sd-industry-cards,
  .sd-service-grid,
  .catalog-grid--shop,
  .program-grid,
  .sd-category-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sd-shop-category-grid,
  .sd-shop-category-grid--index,
  .sd-shop-category-grid--store { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-row--brands { grid-template-columns: repeat(auto-fit, minmax(max(7.5rem, 28%), 1fr)); }
}
@media (max-width: 650px) {
  .page-tools--stack .page-tools__inner { padding-inline: 1rem; }
  .filter-row--brands {
    display: grid;
    overflow: visible;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sd-shop-grid,
  .sd-shop-grid--tri,
  .sd-gallery-grid,
  .sd-industry-cards,
  .sd-service-grid,
  .program-grid,
  .sd-category-nav { grid-template-columns: 1fr; }
  .sd-shop-grid--audiences,
  .sd-shop-category-grid,
  .sd-shop-category-grid--index,
  .sd-shop-category-grid--store,
  .catalog-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
  .sd-shop-category-grid .sd-shop-card { min-height: 0; }
  .sd-shop-category-grid .sd-shop-card p { display: none; }
  .page-masthead--shop .page-masthead__inner { grid-template-columns: 1fr; padding: 1.15rem 1rem 1.05rem; }
  .page-masthead--shop h1 { max-width: 12ch; font-size: clamp(2rem, 9.5vw, 2.45rem); }
  .page-tools__inner { flex-direction: column; gap: 0.65rem; padding-block: 0.65rem; }
  .sd-shop-catnav { width: 100%; }
  .catalog-search { width: 100%; }
  .catalog-search input,
  .catalog-search button { min-height: 2.85rem; }
  .catalog-grid--shop .catalog-card__copy p { -webkit-line-clamp: 2; font-size: 0.74rem; }
  .catalog-grid--shop .catalog-card__minimum { display: none; }
}


/* ==========================================================================
   Southern Dimensions v59 — industrial refinement layer
   Same hunt / fish / oilfield palette. Sharper edges, machined notches,
   controlled glow, consistent alignment. Loaded after every base rule above,
   so it only tightens what already exists.
   ========================================================================== */

:root {
  --sd-steel: #9fb1a6;
  --sd-glow: rgba(237, 90, 31, 0.38);
  --sd-glow-strong: rgba(237, 90, 31, 0.55);
  --sd-notch: 0.6rem;
  --sd-lift: 0 0.85rem 2.1rem rgba(10, 18, 13, 0.16);
  --sd-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --sd-cut: polygon(var(--sd-notch) 0, 100% 0, 100% calc(100% - var(--sd-notch)), calc(100% - var(--sd-notch)) 100%, 0 100%, 0 var(--sd-notch));
  --sd-grid: linear-gradient(rgba(159, 177, 166, 0.05) 1px, transparent 1px),
             linear-gradient(90deg, rgba(159, 177, 166, 0.05) 1px, transparent 1px);
}

/* --- Utility strip ------------------------------------------------------- */
.sd-utility {
  background: linear-gradient(90deg, #0a120d 0%, #12201a 50%, #0a120d 100%);
  border-bottom: 1px solid rgba(237, 90, 31, 0.28);
}
.sd-utility__inner { padding-block: 0.62rem; letter-spacing: 0.13em; }
.sd-utility__inner a { color: var(--signal); transition: color 160ms var(--sd-ease), text-shadow 160ms var(--sd-ease); }
.sd-utility__inner a:hover { color: #fff; text-shadow: 0 0 0.75rem var(--sd-glow-strong); }
.sd-utility__inner > * + * { border-left: 1px solid rgba(159, 177, 166, 0.2); }

/* --- Announcement marquee ------------------------------------------------ */
.sd-announce {
  background: linear-gradient(90deg, #dcdbd4 0%, #f1efe7 50%, #dcdbd4 100%);
  border-bottom: 2px solid var(--safety);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.sd-announce .sd-marquee__item + .sd-marquee__item { border-left: 2px solid rgba(14, 22, 17, 0.32); }
.sd-marquee__item { letter-spacing: 0.15em; }
.sd-announce:hover .sd-marquee__track,
.sd-brand-ribbon:hover .sd-marquee__track { animation-play-state: paused; }

/* --- Revolving brand ribbon ---------------------------------------------- */
.sd-brand-ribbon {
  overflow: hidden;
  background:
    var(--sd-grid),
    radial-gradient(120% 160% at 50% 0%, rgba(237, 90, 31, 0.16), transparent 62%),
    linear-gradient(90deg, #0a120d, #14231b 48%, #0a120d);
  background-size: 4.5rem 4.5rem, 4.5rem 4.5rem, auto, auto;
  border-top: 2px solid var(--safety);
  border-bottom: 2px solid rgba(159, 177, 166, 0.35);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.sd-brand-ribbon .sd-marquee__track { padding-block: 0.9rem; }
.sd-brand-ribbon .sd-marquee__item {
  gap: 1rem;
  padding-inline: 1.9rem;
  text-shadow: 0 0 1.6rem rgba(237, 90, 31, 0.35);
}
.sd-brand-ribbon .sd-marquee__item strong { color: #f4f0e4; }
.sd-brand-ribbon .sd-marquee__item::after {
  width: 0.4rem;
  height: 0.4rem;
  flex: 0 0 auto;
  background: var(--safety);
  box-shadow: 0 0 0.85rem var(--sd-glow-strong);
  content: '';
  transform: rotate(45deg);
}
.sd-brand-ribbon .sd-marquee__item img {
  background: rgba(244, 240, 228, 0.07);
  border: 1px solid rgba(159, 177, 166, 0.3);
  border-radius: 0;
}

/* --- Header -------------------------------------------------------------- */
.sd-header {
  background: linear-gradient(180deg, #0d1712 0%, #0a120d 100%);
  border-bottom: 1px solid rgba(159, 177, 166, 0.18);
  box-shadow: 0 1px 0 rgba(237, 90, 31, 0.22);
  transition: box-shadow 240ms var(--sd-ease), background 240ms var(--sd-ease);
}
.sd-header__inner {
  min-height: 5.15rem;
  gap: clamp(0.8rem, 2.2vw, 2rem);
  transition: min-height 240ms var(--sd-ease), padding 240ms var(--sd-ease);
}
.sd-header.is-scrolled {
  background: rgba(8, 15, 11, 0.94);
  backdrop-filter: saturate(140%) blur(10px);
  box-shadow: 0 1px 0 rgba(237, 90, 31, 0.45), 0 0.9rem 2rem rgba(4, 8, 6, 0.55);
  border-bottom-color: rgba(159, 177, 166, 0.24);
}
.sd-header.is-scrolled .sd-header__inner { min-height: 4.3rem; padding-block: 0.4rem; }
.sd-header.is-scrolled .preview-header-logo { width: 2.85rem; height: 2.85rem; }

.sd-brand { gap: 0.8rem; letter-spacing: 0.13em; }
.sd-brand__text { font-family: var(--display); font-size: 1.02rem; font-weight: 700; letter-spacing: 0.09em; line-height: 0.98; }
.preview-header-logo { transition: width 240ms var(--sd-ease), height 240ms var(--sd-ease), filter 240ms var(--sd-ease); }
.sd-brand:hover .preview-header-logo { filter: drop-shadow(0 0 0.85rem var(--sd-glow-strong)); }

/* Nav links: machined underline sweep instead of a flat colour swap */
.sd-nav { gap: clamp(0.3rem, 0.9vw, 0.9rem); }
.sd-nav > a,
.sd-nav__trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.69rem;
  letter-spacing: 0.1em;
  transition: color 170ms var(--sd-ease);
}
.sd-nav > a::after,
.sd-nav__trigger::after {
  position: absolute;
  right: 0.5rem;
  bottom: 0.26rem;
  left: 0.5rem;
  height: 2px;
  background: var(--safety);
  box-shadow: 0 0 0.7rem var(--sd-glow-strong);
  content: '';
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 220ms var(--sd-ease);
}
.sd-nav > a:hover::after,
.sd-nav__trigger:hover::after,
.sd-nav__group:focus-within .sd-nav__trigger::after,
.sd-nav a[aria-current='page']::after { transform: scaleX(1); }
.sd-nav a:hover { color: #fff; }
.sd-nav a[aria-current='page'] { border-bottom: 0; color: #fff; }
a.sd-nav__quote::after { content: none; }

/* Dropdown panels */
.sd-nav__menu {
  min-width: 16.5rem;
  padding: 0.45rem 0;
  border: 1px solid rgba(159, 177, 166, 0.26);
  border-top: 2px solid var(--safety);
  background: rgba(11, 19, 14, 0.97);
  backdrop-filter: blur(12px) saturate(140%);
  box-shadow: 0 1.6rem 3.2rem rgba(0, 0, 0, 0.55);
  transform: translate(-50%, 0.55rem);
}
.sd-nav__menu a {
  position: relative;
  padding: 0.66rem 1.05rem 0.66rem 1.35rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  transition: background 150ms var(--sd-ease), color 150ms var(--sd-ease), padding-left 150ms var(--sd-ease);
}
.sd-nav__menu a::before {
  position: absolute;
  top: 50%;
  left: 0.6rem;
  width: 3px;
  height: 0;
  background: var(--safety);
  content: '';
  transform: translateY(-50%);
  transition: height 170ms var(--sd-ease);
}
.sd-nav__menu a:hover { background: rgba(237, 90, 31, 0.1); color: #fff; padding-left: 1.55rem; }
.sd-nav__menu a:hover::before { height: 1.05rem; }

/* Header quote CTA */
.sd-nav a.sd-nav__quote {
  margin-left: 0.45rem;
  border: 0;
  background: linear-gradient(135deg, var(--safety), #ff8348);
  color: #fff !important;
  padding: 0.68rem 1.05rem;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  clip-path: var(--sd-cut);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.16) inset;
  filter: drop-shadow(0 0.35rem 0.8rem rgba(237, 90, 31, 0.28));
  transition: filter 200ms var(--sd-ease), transform 200ms var(--sd-ease), background 200ms var(--sd-ease);
}
.sd-nav a.sd-nav__quote:hover,
.sd-nav a.sd-nav__quote[aria-current='page'] {
  background: linear-gradient(135deg, #ff6a2a, #ff9057);
  color: #fff !important;
  transform: translateY(-1px);
  filter: drop-shadow(0 0.55rem 1.2rem var(--sd-glow-strong));
}

/* Cart button + mobile menu trigger */
.sd-header__actions { gap: 0.55rem; }
.sd-header__actions #cart-button {
  min-height: 2.9rem;
  border: 0;
  background: rgba(244, 240, 228, 0.06);
  color: #fff;
  padding: 0.6rem 1rem;
  font-size: 0.67rem;
  letter-spacing: 0.1em;
  clip-path: var(--sd-cut);
  box-shadow: 0 0 0 1px rgba(159, 177, 166, 0.42) inset;
  transition: background 180ms var(--sd-ease), box-shadow 180ms var(--sd-ease), transform 180ms var(--sd-ease);
}
.sd-header__actions #cart-button:hover {
  background: rgba(237, 90, 31, 0.18);
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px var(--safety) inset;
}
#cart-count,
#mobile-cart-count {
  display: inline-grid;
  min-width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  background: var(--safety);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 900;
  line-height: 1;
}
.sd-mobile-nav > summary {
  min-height: 2.9rem;
  border: 0;
  background: rgba(244, 240, 228, 0.06);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(159, 177, 166, 0.42) inset;
  clip-path: var(--sd-cut);
}
.sd-mobile-nav__panel {
  border: 1px solid rgba(159, 177, 166, 0.24);
  border-top: 2px solid var(--safety);
  background: rgba(10, 18, 13, 0.98);
  backdrop-filter: blur(12px);
  box-shadow: 0 1.6rem 3.4rem rgba(0, 0, 0, 0.55);
}
.sd-mobile-nav__label { color: var(--safety); }

/* --- Buttons ------------------------------------------------------------- */
.button,
.shopify-payment-button__button,
button.button {
  position: relative;
  min-height: 3.2rem;
  border: 0;
  background: linear-gradient(135deg, var(--safety), #ff8348);
  padding: 0.95rem 1.5rem;
  letter-spacing: 0.1em;
  clip-path: var(--sd-cut);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14) inset;
  filter: drop-shadow(0 0.35rem 0.85rem rgba(10, 18, 13, 0.16));
  transition: transform 200ms var(--sd-ease), filter 200ms var(--sd-ease), background 200ms var(--sd-ease), box-shadow 200ms var(--sd-ease), color 200ms var(--sd-ease);
}
.button:hover,
.shopify-payment-button__button:hover,
button.button:hover {
  background: linear-gradient(135deg, #ff6a2a, #ff9057);
  transform: translateY(-2px);
  filter: drop-shadow(0 0.65rem 1.35rem var(--sd-glow-strong));
}
.button:active,
button.button:active { transform: translateY(0); filter: none; }
.button:focus-visible,
button.button:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px #fff inset, 0 0 0 5px var(--field-deep) inset;
}
.button--secondary {
  background: rgba(244, 240, 228, 0.06);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(244, 240, 228, 0.6) inset;
}
.button--secondary:hover { background: #f4f0e4; color: var(--field-deep); box-shadow: 0 0 0 1px #fff inset; }
.button--dark {
  background: linear-gradient(135deg, #17251b, #0c1710);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(159, 177, 166, 0.38) inset;
}
.button--dark:hover {
  background: linear-gradient(135deg, #1d3024, #101c14);
  box-shadow: 0 0 0 1px rgba(237, 90, 31, 0.7) inset;
  filter: drop-shadow(0 0.65rem 1.35rem rgba(10, 18, 13, 0.3));
}
.button--signal {
  background: linear-gradient(135deg, #eceae4, #c9c9c4);
  color: var(--field-deep);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.7) inset;
}
.button--signal:hover {
  background: linear-gradient(135deg, #fff, #dedcd6);
  box-shadow: 0 0 0 1px #fff inset;
  filter: drop-shadow(0 0.65rem 1.35rem rgba(10, 18, 13, 0.28));
}
.button--link {
  min-height: auto;
  background: none;
  box-shadow: none;
  filter: none;
  clip-path: none;
  color: var(--field);
}
.button--link:hover { background: none; box-shadow: none; filter: none; transform: none; color: var(--safety); }
.button-row { gap: 0.85rem; align-items: center; }

/* Bare inline actions read as real links instead of stray text */
.catalog-meta a[data-route],
.brand-card a[data-route],
.program-card__copy a[data-route],
.sd-industry-card__copy a[data-route] {
  display: inline-block;
  border-bottom: 2px solid var(--safety);
  padding-bottom: 0.15rem;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 160ms var(--sd-ease), border-color 160ms var(--sd-ease), transform 160ms var(--sd-ease);
}
.catalog-meta a[data-route],
.brand-card a[data-route],
.program-card__copy a[data-route] { color: var(--field); }
.catalog-meta a[data-route]:hover,
.brand-card a[data-route]:hover,
.program-card__copy a[data-route]:hover,
.sd-industry-card__copy a[data-route]:hover { color: var(--safety); border-color: currentColor; transform: translateX(2px); }

/* --- Section rhythm ------------------------------------------------------ */
.eyebrow { letter-spacing: 0.17em; }
.eyebrow::before { width: 1.6rem; box-shadow: 0.3rem 0 0 rgba(237, 90, 31, 0.35); }

/* --- Hero ---------------------------------------------------------------- */
.sd-hero__brand { color: var(--safety); letter-spacing: 0.12em; text-shadow: 0 0 2rem var(--sd-glow-strong); }
.sd-hero__content h1 { text-shadow: 0 0.6rem 2.4rem rgba(0, 0, 0, 0.5); }
.sd-hero__trust {
  display: flex;
  flex-wrap: wrap;
  border-top: 0;
  gap: 0.5rem;
}
.sd-hero__trust span,
.sd-hero__trust span + span {
  border: 1px solid rgba(159, 177, 166, 0.42);
  background: rgba(10, 18, 13, 0.45);
  backdrop-filter: blur(4px);
  padding: 0.5rem 0.85rem;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  clip-path: var(--sd-cut);
}
.sd-hero__trust span:first-child { border-color: rgba(237, 90, 31, 0.65); }

/* --- One hover language across every card -------------------------------- */
.catalog-card,
.sd-shop-card,
.sd-work-card,
.sd-project-card,
.brand-card,
.program-card,
.sd-industry-card,
.sd-social-card,
.sd-inhouse-shot,
.sd-resource-card {
  transition: transform 240ms var(--sd-ease), box-shadow 240ms var(--sd-ease), border-color 240ms var(--sd-ease), background 240ms var(--sd-ease);
}
.catalog-card:hover,
.sd-shop-card:hover,
.sd-work-card:hover,
.sd-project-card:hover,
.brand-card:hover,
.program-card:hover,
.sd-industry-card:hover,
.sd-social-card:hover,
.sd-inhouse-shot:hover,
.sd-resource-card:hover {
  transform: translateY(-4px);
  border-color: rgba(237, 90, 31, 0.55);
  box-shadow: var(--sd-lift);
}
.sd-work-card,
.sd-inhouse-shot { overflow: hidden; border: 1px solid var(--line); }

.catalog-card__media { position: relative; overflow: hidden; }
.catalog-card__media img { transition: transform 420ms var(--sd-ease); }
.catalog-card:hover .catalog-card__media img { transform: scale(1.035); }
.catalog-card__badge { border: 0; background: rgba(10, 18, 13, 0.9); color: #fff; backdrop-filter: blur(6px); }
.catalog-card__cta { color: var(--safety); font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.catalog-card__foot { align-items: center; }
.catalog-card__price { font-family: var(--display); font-size: 1.15rem; letter-spacing: 0.02em; }

.sd-shop-card::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--safety), transparent 70%);
  content: '';
  opacity: 0;
  transition: opacity 240ms var(--sd-ease);
}
.sd-shop-card:hover::before { opacity: 1; }

/* --- Three-step path ------------------------------------------------------ */
.sd-click-step { transition: background 220ms var(--sd-ease), color 220ms var(--sd-ease), box-shadow 220ms var(--sd-ease); }
.sd-click-step:hover { background: linear-gradient(150deg, #17251b, #0a120d); box-shadow: inset 0 3px 0 var(--safety); }
.sd-click-step span:first-child { font-family: var(--display); text-shadow: 0 0 1.2rem var(--sd-glow); }

/* --- Filters, catalog tools, hat-brand tiles ------------------------------ */
.page-tools {
  background: linear-gradient(180deg, #f4f1e7, #eae6da);
  box-shadow: inset 0 -1px 0 rgba(237, 90, 31, 0.2);
}
.filter-row { gap: 0.5rem; align-items: stretch; }
.filter-button {
  border: 0;
  background: #fff;
  padding: 0.62rem 0.95rem;
  letter-spacing: 0.08em;
  clip-path: var(--sd-cut);
  box-shadow: 0 0 0 1px rgba(24, 32, 27, 0.22) inset;
  transition: transform 180ms var(--sd-ease), background 180ms var(--sd-ease), color 180ms var(--sd-ease), box-shadow 180ms var(--sd-ease), filter 180ms var(--sd-ease);
}
.filter-button:hover {
  background: #fff;
  color: var(--field);
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px var(--safety) inset;
  filter: drop-shadow(0 0.35rem 0.8rem rgba(10, 18, 13, 0.14));
}
.filter-button[aria-pressed='true'],
.filter-button[aria-current='page'] {
  background: linear-gradient(135deg, #17251b, #0c1710);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(237, 90, 31, 0.65) inset;
}

/* Brand tiles were ragged and washed out. "All brands" now spans its own row
   so the eight hat brands sit in an even 4x2 grid, and the logos keep their
   real colour instead of reading grey. */
.filter-row--brands { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; }
.filter-button--brand {
  min-height: 5.5rem;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.85rem 0.6rem 0.7rem;
  background: #fff;
}
.filter-row--brands .filter-button--brand:first-child {
  min-height: 3.1rem;
  flex-direction: row;
  grid-column: 1 / -1;
  padding: 0.7rem 1rem;
}
.filter-button--brand img {
  max-width: 6.4rem;
  height: 2rem;
  margin: auto 0;
  opacity: 0.86;
  transition: opacity 200ms var(--sd-ease), transform 200ms var(--sd-ease);
}
.filter-button--brand span {
  display: block;
  width: 100%;
  font-size: 0.63rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
}
.filter-button--brand:hover img,
.filter-button--brand[aria-pressed='true'] img { opacity: 1; transform: scale(1.04); }
.filter-button--brand[aria-pressed='true'] { background: linear-gradient(160deg, #17251b, #0a120d); }
.filter-button--brand[aria-pressed='true'] img { background: #fff; padding: 0.25rem 0.4rem; }
/* The Game's mark is dark-on-transparent, so the old black plate hid it. */
.filter-button--the-game img { background: transparent; padding: 0; border-radius: 0; }
.filter-button--brand[aria-pressed='true'].filter-button--the-game img { background: #fff; padding: 0.25rem 0.4rem; }

.catalog-search input { border: 1px solid rgba(24, 32, 27, 0.22); border-right: 0; background: #fff; }
.catalog-search input:focus { outline: 2px solid var(--safety); outline-offset: -2px; }
.catalog-search button { background: linear-gradient(135deg, var(--safety), #ff8348); transition: filter 180ms var(--sd-ease); }
.catalog-search button:hover { filter: brightness(1.08); }

/* --- Brand partner strip -------------------------------------------------- */
.sd-brand-list a { position: relative; background: #fff; transition: box-shadow 200ms var(--sd-ease); }
.sd-brand-list img { opacity: 0.82; transition: opacity 220ms var(--sd-ease), transform 220ms var(--sd-ease); }
.sd-brand-list a:hover { z-index: 1; box-shadow: inset 0 -3px 0 var(--safety), var(--sd-lift); }
.sd-brand-list a:hover img { opacity: 1; transform: scale(1.05); }

/* --- Reviews and social carousels ---------------------------------------- */
.sd-reviews,
.sd-social {
  background: radial-gradient(80% 120% at 12% 0%, rgba(237, 90, 31, 0.07), transparent 60%), #f6f2e7;
  border-top: 1px solid var(--line);
}
.sd-reviews__head { align-items: end; gap: 1.5rem; margin-bottom: 1.6rem; }
.sd-reviews__rating strong { font-family: var(--display); color: var(--field); }
.sd-carousel { gap: 0.75rem; }
.sd-carousel__scroller { padding-block: 0.5rem; scrollbar-width: none; }
.sd-carousel__scroller::-webkit-scrollbar { display: none; }
.sd-carousel__nav {
  width: 2.9rem;
  height: 2.9rem;
  border: 0;
  background: #fff;
  color: var(--field);
  font-size: 1.25rem;
  line-height: 1;
  clip-path: var(--sd-cut);
  box-shadow: 0 0 0 1px rgba(24, 32, 27, 0.22) inset;
  transition: background 180ms var(--sd-ease), color 180ms var(--sd-ease), transform 180ms var(--sd-ease), box-shadow 180ms var(--sd-ease), filter 180ms var(--sd-ease);
}
.sd-carousel__nav:hover {
  background: linear-gradient(135deg, var(--safety), #ff8348);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: none;
  filter: drop-shadow(0 0.5rem 1.1rem var(--sd-glow));
}
.sd-review-card,
.sd-social-card { position: relative; border: 1px solid var(--line); background: #fff; }
.sd-review-card { display: flex; flex-direction: column; padding: 1.5rem 1.35rem 1.25rem; }
.sd-review-card::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--safety), rgba(237, 90, 31, 0));
  content: '';
}
.sd-review-card__stars { color: #f0a02a; font-size: 1.05rem; letter-spacing: 0.12em; }
.sd-review-card p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0.7rem 0 1rem;
  color: #333c36;
  font-size: 0.92rem;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 7;
}
.sd-review-card footer { display: grid; margin-top: auto; border-top: 1px solid var(--line); padding-top: 0.8rem; gap: 0.15rem; }
.sd-review-card footer strong { font-size: 0.86rem; letter-spacing: 0.02em; }
.sd-review-card footer span { color: #6b736d; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }

/* --- Visit the shop / map ------------------------------------------------ */
.sd-visit {
  background:
    var(--sd-grid),
    radial-gradient(70% 100% at 85% 10%, rgba(237, 90, 31, 0.13), transparent 60%),
    #0b1410;
  background-size: 4.5rem 4.5rem, 4.5rem 4.5rem, auto, auto;
  border-top: 2px solid var(--safety);
}
.sd-visit__grid { padding-block: clamp(2.75rem, 6vw, 4.5rem); align-items: stretch; }
.sd-visit__copy { display: flex; flex-direction: column; justify-content: center; }
.sd-visit__facts li { border-left: 2px solid rgba(237, 90, 31, 0.55); padding-left: 0.95rem; }
.sd-visit__facts a:hover { color: var(--safety); }
.sd-visit__map {
  display: flex;
  min-height: 26rem;
  flex-direction: column;
  border: 1px solid rgba(159, 177, 166, 0.3);
  border-radius: 0;
  box-shadow: 0 1.4rem 3.2rem rgba(0, 0, 0, 0.45);
}
/* The bar is in flow after the iframe; without this the stretched iframe
   pushed it past the container's overflow and it disappeared. */
.sd-visit__map iframe { min-height: 22rem; flex: 1 1 auto; height: auto; filter: grayscale(0.25) contrast(1.05); }
.sd-visit__map-bar { flex: 0 0 auto; }
.sd-visit__map-bar {
  background: rgba(10, 18, 13, 0.92);
  backdrop-filter: blur(8px);
  border-top: 1px solid rgba(237, 90, 31, 0.42);
  font-weight: 800;
}
.sd-visit__map-bar a:hover { color: #fff; }

/* --- Proof / in-house ----------------------------------------------------- */
.sd-inhouse {
  background:
    var(--sd-grid),
    radial-gradient(90% 120% at 8% 0%, rgba(237, 90, 31, 0.1), transparent 58%),
    #0e1611;
  background-size: 4.5rem 4.5rem, 4.5rem 4.5rem, auto, auto;
}
.sd-work-proof__cta { display: flex; flex-wrap: wrap; margin-top: 1.8rem; gap: 0.85rem; }

/* --- Entity / geo chips --------------------------------------------------- */
.sd-geo__locations span {
  border: 1px solid rgba(24, 32, 27, 0.2);
  clip-path: var(--sd-cut);
  transition: border-color 180ms var(--sd-ease), background 180ms var(--sd-ease);
}
.sd-geo__locations span:hover { border-color: var(--safety); background: #fff; }
.sd-entity__facts > div { border-left: 2px solid rgba(237, 90, 31, 0.45); padding-left: 0.9rem; }

/* --- Final CTA: keep the safety-orange band, lose the flatness ------------ */
.sd-final-cta {
  background:
    var(--sd-grid),
    radial-gradient(90% 150% at 15% 0%, rgba(255, 255, 255, 0.16), transparent 58%),
    linear-gradient(135deg, #f0631f 0%, #ed5a1f 45%, #cf4a13 100%);
  background-size: 4.5rem 4.5rem, 4.5rem 4.5rem, auto, auto;
  border-top: 2px solid rgba(10, 18, 13, 0.35);
  border-bottom: 2px solid rgba(10, 18, 13, 0.2);
}

/* --- Footer --------------------------------------------------------------- */
.sd-footer { border-top: 1px solid rgba(159, 177, 166, 0.2); }
.sd-footer__links a { position: relative; transition: color 160ms var(--sd-ease), padding-left 160ms var(--sd-ease); }
.sd-footer__links a:hover { color: var(--safety); padding-left: 0.4rem; }
.sd-footer__newsletter input {
  border: 1px solid rgba(159, 177, 166, 0.35);
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}
.sd-footer__newsletter input::placeholder { color: rgba(244, 240, 228, 0.45); }
.sd-footer__newsletter input:focus { outline: 2px solid var(--safety); outline-offset: -2px; }
.sd-footer__powered a { color: var(--safety); text-decoration: none; }
.sd-footer__powered a:hover { text-decoration: underline; }

/* --- Dialogs -------------------------------------------------------------- */
.cart-drawer,
.checkout-dialog,
.sd-lead-dialog { box-shadow: 0 2rem 5rem rgba(6, 12, 9, 0.5); }
.cart-drawer__head { border-bottom: 2px solid var(--safety); }
.sd-lead-code { color: var(--safety); letter-spacing: 0.18em; }

/* --- Hat swatches --------------------------------------------------------- */
.sd-hat-swatch { transition: transform 170ms var(--sd-ease), box-shadow 170ms var(--sd-ease), border-color 170ms var(--sd-ease); }
.sd-hat-swatch:hover { transform: translateY(-2px); box-shadow: 0 0.5rem 1.2rem rgba(10, 18, 13, 0.18); }
.sd-hat-swatch[aria-pressed='true'] { border-color: var(--safety); box-shadow: 0 0 0 2px var(--safety); }

/* --- Page mastheads and breadcrumbs --------------------------------------- */
.page-masthead {
  background:
    var(--sd-grid),
    radial-gradient(75% 130% at 8% 0%, rgba(237, 90, 31, 0.14), transparent 60%),
    linear-gradient(135deg, #0e1913, #070d0a);
  background-size: 4.5rem 4.5rem, 4.5rem 4.5rem, auto, auto;
  border-bottom: 2px solid var(--safety);
}
.page-masthead__facts span {
  border-color: rgba(159, 177, 166, 0.42);
  background: rgba(10, 18, 13, 0.5);
  clip-path: var(--sd-cut);
}
.page-masthead__facts span:first-child { border-color: rgba(237, 90, 31, 0.65); }
.site-breadcrumb { border-bottom: 1px solid var(--line); letter-spacing: 0.1em; }
.site-breadcrumb a { transition: color 160ms var(--sd-ease); }

/* --- Catalog banners ------------------------------------------------------ */
.sd-hat-catalog-banner {
  border-left: 3px solid var(--safety);
  transition: box-shadow 220ms var(--sd-ease), transform 220ms var(--sd-ease);
}
.sd-hat-catalog-banner:hover { transform: translateY(-2px); box-shadow: var(--sd-lift); }

/* --- Responsive / motion guards ------------------------------------------ */
@media (max-width: 1100px) {
  .filter-row--brands { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .sd-visit__grid { grid-template-columns: 1fr; }
  .sd-visit__map { min-height: 20rem; }
  .sd-visit__map iframe { min-height: 17rem; }
  .sd-reviews__head { align-items: start; }
}
@media (max-width: 700px) {
  /* The three-column utility strip clipped its last item on phones. */
  .sd-utility__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.15rem 0.85rem;
    font-size: 0.58rem;
  }
  .sd-utility__inner > * + * { border-left: 0; }
}
@media (max-width: 650px) {
  .sd-brand-ribbon .sd-marquee__item { font-size: 1.05rem; padding-inline: 1.15rem; }
  .filter-row--brands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-row--brands .filter-button--brand:first-child { min-height: 2.9rem; }
  .filter-button--brand { min-height: 4.9rem; }
  .sd-hero__trust span,
  .sd-hero__trust span + span { border-top: 1px solid rgba(159, 177, 166, 0.42); font-size: 0.6rem; padding: 0.42rem 0.65rem; }
  .sd-carousel__scroller > * { flex-basis: min(19rem, 86vw); }
}
@media (prefers-reduced-motion: reduce) {
  .sd-marquee__track { animation: none; }
  .catalog-card:hover,
  .sd-shop-card:hover,
  .sd-work-card:hover,
  .sd-project-card:hover,
  .brand-card:hover,
  .program-card:hover,
  .sd-industry-card:hover,
  .sd-social-card:hover,
  .sd-inhouse-shot:hover,
  .sd-resource-card:hover,
  .button:hover,
  button.button:hover,
  .sd-carousel__nav:hover { transform: none; }
}

/* ==========================================================================
   Southern Dimensions v60 — readability, type scale, and clickable surfaces
   Every colour below was measured against its real rendered ground; the
   target is WCAG AA (4.5:1 body, 3:1 large display).
   ========================================================================== */

:root {
  /* --safety stays the bright brand orange for rules, icons and borders.
     These two are the readable variants: a fill that carries white text,
     and an ink that carries orange text on light grounds. */
  --safety-fill: #c2440f;        /* white on this = 5.09:1 */
  --safety-fill-hover: #a83709;  /* white on this = 6.53:1 */
  --safety-ink: #a83709;         /* on cream = 5.68:1, on white = 6.53:1 */
}

/* --- Type scale: the display sizes were shouting ------------------------- */
h1 { font-size: clamp(2.4rem, 5.2vw, 4.6rem); }
h2 { font-size: clamp(1.85rem, 3.5vw, 3.15rem); }
h3 { font-size: clamp(1.25rem, 1.9vw, 1.75rem); }

.sd-hero__brand { font-size: clamp(1.05rem, 2vw, 1.55rem); letter-spacing: 0.16em; }
.sd-hero__content h1 { max-width: min(20ch, 100%); font-size: clamp(2.05rem, 4vw, 3.7rem); }
.sd-hero__lede { font-size: clamp(0.88rem, 1.2vw, 1.02rem); }
.sd-hero__subtitle { max-width: 34rem; font-size: clamp(0.95rem, 1.2vw, 1.08rem); }
.page-masthead h1 { max-width: 16ch; font-size: clamp(2.1rem, 3.8vw, 3.4rem); }
.page-masthead__intro p { font-size: 1rem; }
.sd-click-step strong { font-size: clamp(1.3rem, 2vw, 1.95rem); }
.sd-category-nav a { font-size: 1rem; }
.product-info h1 { font-size: clamp(2.1rem, 3.8vw, 3.4rem); }
.sd-builder__price { font-size: 2.1rem; }
.section-header p { font-size: 1rem; }
.sd-visit h2 { max-width: 18ch; }
.sd-inhouse__intro h2 { max-width: 20ch; }

/* --- Orange text on light grounds was 3:1 or worse ----------------------- */
.eyebrow,
.catalog-card__cta,
.sd-card-cta,
.brand-card__category,
.sd-shop-card__copy span,
.sd-click-step span:first-child,
.sd-industry-card__copy span,
.sd-project-card__label span,
.sd-contact-card span,
.sd-resource-card span,
.product-brief span,
.product-tier-table th,
.sd-builder__step-head span,
.sd-social-card small,
.program-card__copy span,
.sd-process__step span,
.sd-why-list li::before,
.product-price { color: var(--safety-ink); }

/* These sit on dark or orange grounds, where the bright value is correct. */
.sd-hero .eyebrow,
.sd-visit .eyebrow,
.sd-final-cta .eyebrow,
.page-masthead .eyebrow,
.sd-inhouse .eyebrow,
.sd-entity .eyebrow,
.sd-programs .eyebrow,
.sd-quote-wrap .eyebrow,
.sd-industries .eyebrow,
.sd-builder-rail .eyebrow,
.sd-page-hero .eyebrow,
.sd-footer .eyebrow,
.cart-drawer .eyebrow,
.checkout-dialog .eyebrow,
.sd-industry-card__copy span { color: var(--signal); }
.sd-hero .eyebrow { color: #ffb489; }
/* The process band is a light grey; it needs the deepest ink of all. */
.sd-process-wrap .sd-process__step span,
.sd-process-wrap .eyebrow { color: #9e3408; }

/* --- Orange fills carrying white text ------------------------------------ */
.button,
.shopify-payment-button__button,
button.button { background: linear-gradient(135deg, var(--safety-fill), #d24d13); }
.button:hover,
.shopify-payment-button__button:hover,
button.button:hover { background: linear-gradient(135deg, var(--safety-fill-hover), #c2440f); }
.sd-nav a.sd-nav__quote { background: linear-gradient(135deg, var(--safety-fill), #d24d13); }
.sd-nav a.sd-nav__quote:hover,
.sd-nav a.sd-nav__quote[aria-current='page'] { background: linear-gradient(135deg, var(--safety-fill-hover), #c2440f); }
.catalog-search button,
.sd-newsletter__form button { background: linear-gradient(135deg, var(--safety-fill), #d24d13); }
.sd-carousel__nav:hover { background: linear-gradient(135deg, var(--safety-fill), #d24d13); }

.sd-final-cta {
  background:
    var(--sd-grid),
    radial-gradient(90% 150% at 15% 0%, rgba(255, 255, 255, 0.12), transparent 58%),
    linear-gradient(135deg, #c94810 0%, #bb420e 45%, #9e3408 100%);
  background-size: 4.5rem 4.5rem, 4.5rem 4.5rem, auto, auto;
}
.sd-final-cta p { color: #fff; }
.sd-final-cta .eyebrow { color: #ffe2d3; }

/* --- Dark sections whose text was still styled for a light ground -------- */
.sd-inhouse__intro h2 { color: #f4f0e4; }
.sd-inhouse__intro p,
.sd-inhouse p { color: #c3c9c2; }
.sd-inhouse .eyebrow { color: #ffb489; }

/* Cream chips inside the dark entity band were inheriting cream text. */
.sd-entity .sd-geo__locations a,
.sd-entity .sd-geo__locations span,
.sd-geo .sd-geo__locations a,
.sd-geo .sd-geo__locations span { color: var(--field); }

/* --- Adjacent bands must not stack the same tone ------------------------- */
.sd-social {
  background: radial-gradient(80% 120% at 88% 0%, rgba(194, 68, 15, 0.06), transparent 60%), #ece7d8;
  border-top: 2px solid rgba(24, 32, 27, 0.14);
}
.sd-entity { background: #182219; }
.sd-inhouse + .shopify-section .sd-entity,
.sd-inhouse ~ .sd-entity { border-top: 2px solid var(--safety); }

/* --- Secondary buttons only read as white on a dark ground --------------- */
.button--secondary {
  background: transparent;
  color: var(--field);
  box-shadow: 0 0 0 2px var(--field) inset;
}
.button--secondary:hover {
  background: var(--field);
  color: #fff;
  box-shadow: 0 0 0 2px var(--field) inset;
}
.sd-hero .button--secondary,
.sd-work-proof .button--secondary,
.sd-review-card--cta .button--secondary,
.sd-visit .button--secondary,
.sd-final-cta .button--secondary,
.page-masthead .button--secondary,
.sd-inhouse .button--secondary,
.sd-entity .button--secondary,
.sd-programs .button--secondary,
.sd-quote-wrap .button--secondary,
.sd-industries .button--secondary,
.sd-builder-rail .button--secondary,
.sd-page-hero .button--secondary,
.sd-footer .button--secondary,
.cart-drawer .button--secondary,
.checkout-dialog .button--secondary {
  color: #fff;
  box-shadow: 0 0 0 2px rgba(244, 240, 228, 0.75) inset;
}
.sd-hero .button--secondary:hover,
.sd-work-proof .button--secondary:hover,
.sd-review-card--cta .button--secondary:hover,
.sd-visit .button--secondary:hover,
.sd-final-cta .button--secondary:hover,
.page-masthead .button--secondary:hover,
.sd-inhouse .button--secondary:hover,
.sd-entity .button--secondary:hover,
.sd-programs .button--secondary:hover,
.sd-quote-wrap .button--secondary:hover,
.sd-industries .button--secondary:hover,
.sd-builder-rail .button--secondary:hover,
.sd-page-hero .button--secondary:hover,
.sd-footer .button--secondary:hover,
.cart-drawer .button--secondary:hover,
.checkout-dialog .button--secondary:hover {
  background: #f4f0e4;
  color: var(--field-deep);
  box-shadow: 0 0 0 2px #fff inset;
}

/* --- Review stars were pale gold on white -------------------------------- */
.sd-review-card__stars { display: block; color: #9c6205; }

/* ==========================================================================
   Clickable surfaces — every card, chip and tile funnels to a product,
   the catalog, or a quote.
   ========================================================================== */

.sd-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.55rem;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.sd-card-cta::after { content: '→'; transition: transform 200ms var(--sd-ease); }
a:hover > .sd-card-cta::after,
a:hover .sd-card-cta::after { transform: translateX(0.25rem); }

/* Proof + production cards are links now */
a.sd-work-card,
a.sd-inhouse-shot { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
a.sd-work-card { background: #fff; color: var(--field); }
a.sd-work-card .sd-work-card__label { display: flex; flex-direction: column; padding: 0.9rem 1.05rem 1.1rem; }
a.sd-work-card .sd-card-cta { color: var(--safety-ink); }
a.sd-inhouse-shot { background: #111812; color: #fff; }
a.sd-inhouse-shot .sd-inhouse-shot__copy { display: flex; flex-direction: column; padding: 0.85rem 0.9rem 1rem; }
a.sd-inhouse-shot strong { display: block; color: #fff; font-size: 0.92rem; }
a.sd-inhouse-shot .sd-inhouse-shot__copy > span:not(.sd-card-cta) { color: rgba(255, 255, 255, 0.78); font-size: 0.78rem; line-height: 1.35; }
a.sd-inhouse-shot .sd-card-cta { color: #ffb489; }
a.sd-work-card img,
a.sd-inhouse-shot img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* Review cards are links, and the rail closes on a quote CTA */
a.sd-review-card { color: inherit; text-decoration: none; }
.sd-review-card__foot {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: 0.8rem;
  gap: 0.15rem;
}
.sd-review-card__foot strong { font-size: 0.86rem; letter-spacing: 0.02em; }
.sd-review-card__foot span { color: #5d655f; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
.sd-review-card--cta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(150deg, #17251b, #0a120d);
  color: #f4f0e4;
  gap: 0.3rem;
}
.sd-review-card--cta::before { background: linear-gradient(90deg, var(--safety), rgba(237, 90, 31, 0)); }
.sd-review-card--cta strong { font-family: var(--display); font-size: 1.5rem; letter-spacing: 0.02em; line-height: 1; text-transform: uppercase; }
.sd-review-card--cta > span:not(.sd-card-cta):not(.sd-review-cta__mark) { color: rgba(244, 240, 228, 0.8); font-size: 0.86rem; line-height: 1.45; }
.sd-review-card--cta .sd-card-cta { color: #ffb489; }
.sd-review-cta__mark { color: var(--safety); }
.sd-review-cta__mark .sd-icon { width: 1.9rem; height: 1.9rem; }

/* Geo chips are links into the service-area pages */
.sd-geo__locations a {
  text-decoration: none;
  transition: border-color 180ms var(--sd-ease), background 180ms var(--sd-ease), transform 180ms var(--sd-ease);
}
.sd-geo__locations a:hover {
  border-color: var(--safety);
  background: #fff;
  transform: translateY(-1px);
}

/* Hero trust chips are links */
.sd-hero__trust a {
  color: #fff;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid rgba(159, 177, 166, 0.42);
  background: rgba(10, 18, 13, 0.45);
  backdrop-filter: blur(4px);
  padding: 0.5rem 0.85rem;
  clip-path: var(--sd-cut);
  transition: border-color 180ms var(--sd-ease), background 180ms var(--sd-ease), transform 180ms var(--sd-ease);
}
.sd-hero__trust a:hover { border-color: var(--safety); background: rgba(194, 68, 15, 0.32); transform: translateY(-1px); }
.sd-hero__trust a:first-child { border-color: rgba(237, 90, 31, 0.65); }

/* Cards that already contain a link get a stretched hit area over the card */
.sd-industry-card,
.program-card,
.sd-resource-card,
.sd-project-card { position: relative; }
.sd-industry-card__copy > a[data-route]::after,
.program-card__copy > a[data-route]::after,
.brand-card > a[data-route]::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: '';
}

/* Footer address opens the map */
.sd-footer__links a[href^="https://maps"],
.sd-footer__links a[href^="tel:"],
.sd-footer__links a[href^="mailto:"] { font-weight: 800; }

/* --- Sticky action bar: shop, call, quote always one tap away ------------ */
.sd-action-bar {
  position: fixed;
  z-index: 70;
  right: 0;
  bottom: 0;
  left: 0;
  display: none;
  border-top: 2px solid var(--safety);
  background: rgba(8, 15, 11, 0.97);
  backdrop-filter: blur(12px) saturate(140%);
  box-shadow: 0 -0.6rem 1.8rem rgba(0, 0, 0, 0.4);
  padding: 0.5rem 0.6rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
  gap: 0.45rem;
}
.sd-action-bar a {
  display: flex;
  min-height: 2.9rem;
  flex: 1;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-decoration: none;
  text-transform: uppercase;
  clip-path: var(--sd-cut);
  box-shadow: 0 0 0 1px rgba(159, 177, 166, 0.42) inset;
}
.sd-action-bar a--primary,
.sd-action-bar .sd-action-bar__quote {
  flex: 1.35;
  background: linear-gradient(135deg, var(--safety-fill), #d24d13);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18) inset;
}
@media (max-width: 860px) {
  .sd-action-bar { display: flex; }
  body { padding-bottom: 4.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .sd-card-cta::after,
  .sd-geo__locations a:hover,
  .sd-hero__trust a:hover { transform: none; }
}

/* --- v60 corrections ------------------------------------------------------
   The base .button background above is re-declared after the v59 modifier
   rules, so --dark and --signal have to restate their own grounds here or
   they inherit the orange fill. */
.button--dark { background: linear-gradient(135deg, #17251b, #0c1710); color: #fff; }
.button--dark:hover { background: linear-gradient(135deg, #1d3024, #101c14); }
.button--signal { background: linear-gradient(135deg, #eceae4, #c9c9c4); color: var(--field-deep); }
.button--signal:hover { background: linear-gradient(135deg, #fff, #dedcd6); }
.button--secondary { background: transparent; }
.button--link { background: none; }

/* Proof cards are light now, so their caption cannot stay light-on-light. */
a.sd-work-card .sd-work-card__label strong { color: var(--field); }
a.sd-work-card .sd-work-card__label > span:not(.sd-card-cta) { color: #4d554f; font-size: 0.82rem; line-height: 1.4; }

/* The quote card in the review rail is dark; its heading inherits ink. */
.sd-review-card--cta strong,
.sd-review-card--cta h3 { color: #f4f0e4; }

/* Catalog card category labels sit on cream. */
.catalog-card__copy > span { color: var(--safety-ink); }

/* --- v60: separation, remaining sizes, newly linked lists ---------------- */

/* The work-proof band is dark and can follow a dark masthead; give it an
   unmistakable break so two near-identical greens never butt together. */
.sd-work-proof { border-top: 2px solid var(--safety); }

/* The about/service page heroes were still running at the base h1 size. */
.sd-page-hero h1 { max-width: 18ch; font-size: clamp(2.1rem, 3.8vw, 3.4rem); }
.sd-page-hero p { font-size: 1.02rem; }
.sd-partner h2 { font-size: clamp(1.7rem, 2.8vw, 2.5rem); }

/* Reasons list: the whole cell is a target, counter stays on top */
.sd-why-list li { display: flex; flex-direction: column; padding: 0; }
.sd-why-list li::before { margin: 0 0 0.55rem; padding: 1.35rem 1.35rem 0; }
.sd-why-list li > a[data-route] {
  display: flex;
  min-height: 0;
  height: auto;
  flex: 1 1 auto;
  align-items: flex-start;
  color: var(--field);
  padding: 0 1.35rem 1.35rem;
  font-weight: 850;
  text-decoration: none;
  transition: background 200ms var(--sd-ease), color 200ms var(--sd-ease);
}
.sd-why-list li:hover { background: linear-gradient(150deg, #17251b, #0a120d); }
.sd-why-list li:hover > a[data-route] { color: #fff; }
.sd-why-list li:hover::before { color: #ffb489; }

/* Process band: each step is a target */
a.sd-process__step {
  color: var(--field-deep);
  text-decoration: none;
  transition: background 200ms var(--sd-ease), color 200ms var(--sd-ease);
}
a.sd-process__step:hover { background: rgba(158, 52, 8, 0.12); }
a.sd-process__step strong { display: block; max-width: 11rem; line-height: 1.2; }

/* --- v60: card baseline alignment ---------------------------------------- */
.sd-work-grid,
.sd-inhouse__shots { align-items: stretch; }
a.sd-work-card .sd-work-card__label,
a.sd-inhouse-shot .sd-inhouse-shot__copy { flex: 1 1 auto; }
/* Captions differ in length; pin every call to action to the same baseline. */
a.sd-work-card .sd-card-cta,
a.sd-inhouse-shot .sd-card-cta { margin-top: auto; padding-top: 0.55rem; }
.sd-reviews__head .button,
.sd-social .sd-reviews__head .button { white-space: nowrap; }

/* ==========================================================================
   Southern Dimensions v61 — catalog pager
   ========================================================================== */

.sd-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.6rem;
  border-top: 2px solid var(--line);
  padding-top: 1.1rem;
  gap: 0.85rem 1.2rem;
}
.sd-pager__status {
  margin: 0;
  color: #4d554f;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.sd-pager__pages {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  order: 3;
  width: 100%;
}
.sd-pager__pages .filter-button { min-width: 2.75rem; min-height: 2.6rem; padding-inline: 0.7rem; }
.sd-pager__step { padding-inline: 0.95rem; }
.sd-pager__pages .filter-button[disabled] {
  cursor: not-allowed;
  opacity: 0.38;
  box-shadow: 0 0 0 1px rgba(24, 32, 27, 0.18) inset;
}
.sd-pager__pages .filter-button[disabled]:hover {
  background: #fff;
  transform: none;
  filter: none;
  box-shadow: 0 0 0 1px rgba(24, 32, 27, 0.18) inset;
}
.sd-pager__gap { padding-inline: 0.2rem; color: #6d756f; font-weight: 900; }
.sd-pager__size {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  color: #4d554f;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.sd-pager__size select {
  min-height: 2.6rem;
  border: 0;
  background: #fff;
  color: var(--field);
  padding: 0.45rem 0.7rem;
  font-size: 0.74rem;
  font-weight: 850;
  box-shadow: 0 0 0 1px rgba(24, 32, 27, 0.22) inset;
  clip-path: var(--sd-cut);
}
.sd-pager__size select:focus-visible { outline: 2px solid var(--safety); outline-offset: 2px; }

/* On the dark hat-catalog ground the pager text has to invert. */
.page-masthead + * .sd-pager__status { color: #4d554f; }

@media (max-width: 650px) {
  .sd-pager { flex-direction: column; align-items: stretch; }
  .sd-pager__pages { order: 2; justify-content: center; }
  .sd-pager__size { justify-content: space-between; }
  .sd-pager__pages .filter-button { flex: 0 0 auto; }
}

/* ==========================================================================
   Southern Dimensions v62 — apparel order picker
   Apparel is priced to the run, so the form collects the run: garment, colour,
   a count per size, and every placement the art lands on.
   ========================================================================== */

.sd-apparel-stage {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}
.sd-apparel-stage__copy h2 { max-width: 14ch; }
.sd-apparel-points { list-style: none; margin: 1.4rem 0; padding: 0; display: grid; gap: 0.9rem; }
.sd-apparel-points li { display: grid; gap: 0.15rem; border-left: 2px solid var(--safety); padding-left: 0.9rem; }
.sd-apparel-points strong { font-size: 0.94rem; }
.sd-apparel-points span { color: var(--ink-soft, #4d554f); font-size: 0.88rem; line-height: 1.45; }

.sd-apparel {
  display: grid;
  gap: 0.85rem;
  border: 1px solid var(--line);
  background: #fff;
  padding: 0;
  overflow: hidden;
}
.sd-apparel > *:not(.sd-apparel__head) { margin-inline: clamp(0.9rem, 2.2vw, 1.4rem); }
.sd-apparel > .sd-apparel__head + * { margin-top: 0.3rem; }
.sd-apparel > *:last-child { margin-bottom: clamp(1rem, 2.4vw, 1.5rem); }

.sd-apparel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: linear-gradient(135deg, #17251b, #0a120d);
  color: #fff;
  padding: 0.95rem clamp(0.9rem, 2.2vw, 1.4rem);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sd-apparel__head span { color: #ffb489; }

.sd-apparel__label {
  margin: 0.35rem 0 0;
  color: var(--ink-faint, #6f7a72);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.sd-apparel__label span { color: var(--ink-faint, #6f7a72); font-weight: 700; text-transform: none; letter-spacing: 0.02em; }

.sd-apparel__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; }
.sd-apparel__field { display: grid; gap: 0.3rem; min-width: 0; }
/* A class selector outranks the UA rule for [hidden], so say it here. */
.sd-apparel [hidden] { display: none !important; }
.sd-apparel__field label {
  color: var(--ink-faint, #6f7a72);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.sd-apparel__field label span { font-weight: 700; letter-spacing: 0.02em; text-transform: none; }
.sd-apparel__field select,
.sd-apparel__field input,
.sd-apparel__field textarea {
  width: 100%;
  min-height: 2.9rem;
  border: 1px solid rgba(24, 32, 27, 0.24);
  background: #fff;
  color: var(--ink);
  padding: 0.6rem 0.75rem;
  font-family: inherit;
  font-size: 0.92rem;
}
.sd-apparel__field textarea { min-height: 5rem; resize: vertical; }
.sd-apparel__field select:focus-visible,
.sd-apparel__field input:focus-visible,
.sd-apparel__field textarea:focus-visible { outline: 2px solid var(--safety); outline-offset: -1px; }

.sd-apparel__colors { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.sd-apparel-color {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid rgba(24, 32, 27, 0.22);
  background: #fff;
  color: var(--field);
  padding: 0.5rem 0.7rem;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 160ms var(--sd-ease), box-shadow 160ms var(--sd-ease), transform 160ms var(--sd-ease);
}
.sd-apparel-color__chip { width: 1.05rem; height: 1.05rem; flex: none; border: 1px solid rgba(24, 32, 27, 0.35); }
.sd-apparel-color__chip--none {
  background: repeating-linear-gradient(45deg, #d8d5cb 0 3px, #fff 3px 6px);
}
.sd-apparel-color:hover { border-color: var(--safety); transform: translateY(-1px); }
.sd-apparel-color[aria-pressed='true'] {
  border-color: transparent;
  box-shadow: 0 0 0 2px var(--safety-ink) inset;
}

.sd-apparel__sizes {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.4rem;
}
.sd-apparel-size { display: grid; gap: 0.25rem; text-align: center; min-width: 0; }
.sd-apparel-size span {
  color: var(--ink-faint, #6f7a72);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.1em;
}
.sd-apparel-size input {
  width: 100%;
  min-height: 2.9rem;
  border: 1px solid rgba(24, 32, 27, 0.24);
  background: #fff;
  color: var(--ink);
  padding: 0.5rem 0.35rem;
  font-family: var(--display);
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.sd-apparel-size input:focus-visible { outline: 2px solid var(--safety); outline-offset: -1px; }

.sd-apparel__total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(24, 32, 27, 0.24);
  background: #f6f2e7;
  padding: 0.75rem 0.95rem;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.sd-apparel__total strong { font-family: var(--display); font-size: 1.45rem; letter-spacing: 0.02em; }
/* Below the minimum the total is the thing to fix, so it says so in colour. */
.sd-apparel__total[data-under='true'] { border-color: var(--safety); background: rgba(194, 68, 15, 0.08); color: var(--safety-ink); }

.sd-apparel__toggles { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.sd-apparel-toggle {
  border: 1px solid rgba(24, 32, 27, 0.22);
  background: #fff;
  color: var(--field);
  padding: 0.55rem 0.85rem;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  clip-path: var(--sd-cut);
  transition: background 160ms var(--sd-ease), color 160ms var(--sd-ease), box-shadow 160ms var(--sd-ease), transform 160ms var(--sd-ease);
}
.sd-apparel-toggle:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px var(--safety) inset; }
.sd-apparel-toggle[aria-pressed='true'] {
  background: linear-gradient(135deg, #17251b, #0c1710);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(237, 90, 31, 0.6) inset;
}

.sd-apparel__upload {
  display: block;
  border: 1px dashed rgba(24, 32, 27, 0.34);
  background: #faf8f2;
  padding: 1.1rem 0.95rem;
  text-align: center;
  cursor: pointer;
}
.sd-apparel__upload input { display: block; width: 100%; border: 0; padding: 0.5rem 0 0; font-size: 0.82rem; }
.sd-apparel__upload span {
  display: block;
  color: var(--ink-faint, #6f7a72);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.sd-apparel__upload:focus-within { border-color: var(--safety); }

.sd-apparel #apparel-submit { width: 100%; }
.sd-apparel .configuration-note { margin: 0; }

@media (max-width: 1000px) {
  .sd-apparel-stage { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .sd-apparel__row { grid-template-columns: 1fr; }
  .sd-apparel__sizes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sd-apparel__head { flex-direction: column; align-items: flex-start; gap: 0.3rem; }
}

/* --- Crew chips inside the consolidated proof section --------------------- */
.sd-crew-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: -0.35rem 0 1.4rem;
}
.sd-crew-chip {
  border: 1px solid rgba(244, 239, 227, 0.32);
  background: rgba(244, 239, 227, 0.06);
  clip-path: var(--sd-cut);
  padding: 0.6rem 0.9rem;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #f4efe3;
  text-decoration: none;
  transition: border-color 180ms var(--sd-ease), background 180ms var(--sd-ease);
}
.sd-crew-chip:hover,
.sd-crew-chip:focus-visible {
  border-color: var(--signal);
  background: rgba(244, 239, 227, 0.14);
}
.sd-reviews__count { margin: 0.5rem 0 0; color: #5b645e; font-weight: 650; }
