/* IDX Texas — main stylesheet
   Design: clean modern brand + continuity with current idxde.com
   Fonts (1.8.422): Oswald (headings + buttons) + Montserrat (body/UI)
   Accent: navy #0f143a (hover #17245a) on paper #f5f6fa; approved red accents stay literal #8f1c2c (1.8.447)
*/

:root {
  --red: #0f143a; /* 1.8.447 — default accent is navy; literal #8f1c2c kept only for approved red accents */
  --ink: #0f143a;
  --ink-soft: #272c67;
  --muted: #5a5f7a;
  --paper: #f5f6fa;
  --paper-2: #e8eaf3;
  --white: #ffffff;
  --line: #d8dbe8;
  --brass: #0f143a; /* 1.8.447 — legacy token now tracks navy accent */
  --brass-dark: #17245a; /* hover / deeper navy */
  --accent: #0f143a;
  --accent-dark: #17245a;
  --navy: #0f143a;
  --navy-mid: #272c67;
  --navy-blue: #17245a; /* added 1.8.415 per Tone */
  --mist: #e2e0e8; /* added 1.8.415 per Tone: light lavender-gray */
  --accent-soft: #e8eaf3; /* soft navy wash (was soft red) */
  --success: #2f6b4f;
  --danger: #8f1c2c; /* keep semantic error red */
  --radius: 10px;
  --radius-sm: 6px;
  --shadow: 0 12px 40px rgba(15, 20, 58, 0.08);
  --shadow-lg: 0 24px 60px rgba(15, 20, 58, 0.14);
  /* 1.8.422 — Oswald (headings + buttons) + Montserrat (body, labels). Inter retired. */
  --font-head: "Oswald", "Arial Narrow", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: var(--font-body); /* labels, eyebrows, prices, numbers */
  --font-sans: var(--font-body);
  --container: 1180px;
  --header-h: 96px;
  --announce-h: 42px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s var(--ease); }
a:hover { color: var(--brass-dark); }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0;
  color: var(--ink);
  margin: 0 0 0.6em;
}
h1 { font-size: clamp(2.4rem, 5vw, 3.75rem); }
h2 { font-size: clamp(1.9rem, 3.5vw, 2.75rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
p { margin: 0 0 1.1em; }
ul, ol { padding-left: 1.2em; }
.container { width: min(100% - 2.5rem, var(--container)); margin-inline: auto; }
.container--narrow { width: min(100% - 2.5rem, 780px); }

/* Accessibility */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: #f3c91a; color: #0f143a; padding: .75rem 1rem; font-weight: 600; /* 1.8.422: no red buttons */
}
.skip-link:focus { left: 1rem; top: 1rem; }
.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px;
}

/* Announcement */
.site-announce {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  color: var(--paper);
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.55rem 0;
  min-height: var(--announce-h);
}
.site-announce::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
  pointer-events: none;
  z-index: 0;
}
.site-announce__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  position: relative;
  z-index: 1;
  min-height: calc(var(--announce-h) - 0.4rem);
}
.site-announce__text {
  margin: 0;
  text-align: center;
  flex: 1 1 auto;
  padding-inline: 4rem; /* room for larger social icons on the right */
  font-weight: 700;
}
.site-announce__text { color: #ffffff; }
.site-announce__texas { color: #ffffff; }
.site-announce__idaho { color: #f3c91a; }
.site-announce strong { color: #f3c91a; font-weight: 600; }
.site-announce a { color: var(--paper); }
.site-announce__social {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}
.site-announce__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  color: #fff;
  text-decoration: none;
  border-radius: 999px;
  transition: color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}
.site-announce__social-link svg {
  width: 30px;
  height: 30px;
}
.site-announce__social-link:hover,
.site-announce__social-link:focus-visible {
  color: #0f143a; /* 1.8.422: was red tint */
  background: #f3c91a;
  transform: translateY(-1px);
}
.site-announce__social-link svg { display: block; width: 30px; height: 30px; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 1200; /* above mega (1050) so hover/click reach nav */
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--line);
  transition: background .25s var(--ease), box-shadow .25s var(--ease);
}
.site-header.is-scrolled {
  /* Theme navy on scroll — logo/text invert for contrast; content stays 100% opaque */
  background: rgba(15, 20, 58, 0.85); /* 15% transparent — content stays 100% */
  backdrop-filter: blur(6px);
  border-bottom-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
}
.site-header.is-scrolled::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
  pointer-events: none;
  z-index: 0;
}
.site-header.is-scrolled .header-phone,
.site-header.is-scrolled .header-account,
.site-header.is-scrolled .lang-switch a,
.site-header.is-scrolled .lang-switch span {
  color: #fff;
}
.site-header.is-scrolled .lang-switch a:hover,
.site-header.is-scrolled .lang-switch a:focus-visible,
.site-header.is-scrolled .lang-switch [aria-current="true"] {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}
.site-header.is-scrolled .lang-switch [aria-current="true"] {
  color: #fff;
}
.site-header.is-scrolled .header-phone:hover {
  color: #fde8ea;
}
.site-header.is-scrolled .header-account:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.1);
}
.site-header.is-scrolled .header-cart {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
  background: transparent;
}
.site-header.is-scrolled .header-cart:hover {
  color: var(--navy);
  background: #fff;
  border-color: #fff;
}
/* Scrolled header: bigger phone, bag, login */
.site-header.is-scrolled .header-phone {
  font-size: 0.95rem;
}
.site-header.is-scrolled .header-account {
  font-size: 0.9rem;
  padding: 0.4rem 0.7rem;
}
.site-header.is-scrolled .header-cart {
  width: 48px;
  height: 48px;
}
.site-header.is-scrolled .header-cart__icon svg {
  width: 24px;
  height: 24px;
}
.site-header.is-scrolled .header-cart__count {
  font-size: 0.72rem;
  min-width: 1.2rem;
  height: 1.2rem;
  line-height: 1.2rem;
}
.site-header.is-scrolled .spark-toggle {
  color: #f3c91a;
  /* glow on button; icon recolored yellow below — pulse/spin animations unchanged */
  filter: drop-shadow(0 0 10px rgba(243, 201, 26, 0.45));
}
.site-header.is-scrolled .spark-toggle__icon {
  /* black → #f3c91a; keeps size transition + svg stroke/spin animations */
  filter: brightness(0) saturate(100%) invert(79%) sepia(64%) saturate(1204%) hue-rotate(359deg) brightness(101%) contrast(96%);
}
.site-header.is-scrolled .spark-toggle::before {
  border-color: rgba(243, 201, 26, 0.85);
  box-shadow:
    0 0 0 0 rgba(243, 201, 26, 0.4),
    0 0 18px rgba(243, 201, 26, 0.4);
  animation-name: idx-spark-ring-light;
}
.site-header.is-scrolled .spark-toggle:hover,
.site-header.is-scrolled .spark-toggle:focus-visible {
  filter: drop-shadow(0 0 12px rgba(243, 201, 26, 0.75));
}
.site-header.is-scrolled .spark-toggle:hover::before,
.site-header.is-scrolled .spark-toggle:focus-visible::before {
  border-color: rgba(243, 201, 26, 0.98);
}
.site-header.is-scrolled .spark-toggle[aria-expanded="true"] {
  color: #f3c91a;
  filter: drop-shadow(0 0 14px rgba(243, 201, 26, 0.85));
}
.site-header.is-scrolled .spark-toggle[aria-expanded="true"]::before {
  border-color: rgba(243, 201, 26, 0.98);
}
@keyframes idx-spark-ring-light {
  0% {
    transform: scale(0.92);
    opacity: 0.95;
    box-shadow:
      0 0 0 0 rgba(243, 201, 26, 0.5),
      0 0 14px rgba(243, 201, 26, 0.45);
  }
  70% {
    transform: scale(1.28);
    opacity: 0;
    box-shadow:
      0 0 0 12px rgba(243, 201, 26, 0),
      0 0 28px rgba(243, 201, 26, 0);
  }
  100% {
    transform: scale(0.92);
    opacity: 0;
  }
}
.site-header__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  min-height: 88px;
  gap: 1rem;
  transition: min-height .25s var(--ease);
}
.site-header.is-scrolled .site-header__inner {
  min-height: 64px;
}
.site-header__inner .site-branding { justify-self: start; }
.site-header__inner .site-nav { justify-self: center; }
.site-header__inner .site-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-self: end;
}
.site-branding {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  text-decoration: none;
  position: relative;
}
.site-branding__logo--default,
.site-branding__logo--default img,
.site-branding__logo--default .custom-logo,
.site-branding img.site-branding__logo--default,
.site-branding svg.site-branding__logo--default {
  height: 56px;
  width: auto;
  max-width: min(240px, 48vw);
  transition: height .25s var(--ease), max-width .25s var(--ease), opacity .2s var(--ease);
}
.site-branding__logo--scroll {
  display: none;
  height: 32px; /* 40px − 20% */
  width: auto;
  max-width: min(160px, 48vw);
  transition: height .25s var(--ease), max-width .25s var(--ease), opacity .2s var(--ease);
}
.site-header.is-scrolled .site-branding__logo--default {
  display: none !important;
}
.site-header.is-scrolled .site-branding__logo--scroll {
  display: block;
}
.site-header.is-scrolled .site-branding__logo--default img,
.site-header.is-scrolled .site-branding__logo--default .custom-logo {
  /* unused when wrapper hidden; keep sizes for non-scrolled */
}
.site-branding__text { font-family: var(--font-display); font-size: 1.35rem; color: var(--ink); }
.spark-toggle__icon {
  transition: width .25s var(--ease), height .25s var(--ease);
}
.site-header.is-scrolled .spark-toggle__icon {
  width: 30px;
  height: 30px;
}
.site-header.is-scrolled .spark-toggle::before {
  inset: -4px;
}
@media (max-width: 640px) {
  .site-announce__text { padding-inline: 0 2.75rem; font-size: 0.7rem; letter-spacing: 0.02em; }
  .site-announce__social { gap: 0.35rem; }
  .site-announce__social-link { width: 30px; height: 30px; }
  .site-announce__social-link svg { width: 30px; height: 30px; }
}
/* Legacy dense top-nav removed — see laser spark mega-menu at file end */

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.9rem 1.45rem; border-radius: 999px; border: 1px solid transparent;
  font-family: var(--font-head); font-weight: 600; font-size: 0.875rem;
  letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none;
  cursor: pointer; transition: transform .2s var(--ease), background .2s, color .2s, border-color .2s;
}
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn--primary { background: #f3c91a; border-color: #f3c91a; color: #0f143a; }
.btn--primary:hover { background: #fff; border-color: #fff; color: #0f143a; }
.btn--dark { background: var(--navy); color: var(--white); }
.btn--dark:hover { background: var(--navy-mid); color: var(--white); }
.btn--ghost { background: transparent; border-color: rgba(255,255,255,0.35); color: var(--white); }
/* 1.8.423 — white fill needs navy text; the footer/section link hover (yellow) was winning on specificity. */
.btn--ghost:hover, .btn--ghost:focus-visible,
.site-footer a.btn--ghost:hover, .site-footer a.btn--ghost:focus-visible { background: var(--white); color: var(--ink); border-color: var(--white); }
.btn--outline { background: transparent; border-color: var(--ink); color: var(--ink); }
.btn--outline:hover { background: var(--ink); color: var(--paper); }

/* Hero */
.hero {
  position: relative; overflow: hidden;
  background: var(--ink); color: var(--paper);
  min-height: clamp(420px, 72vh, 720px);
  display: grid; align-items: center;
}
.hero__bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(143, 28, 44, 0.18), transparent 60%),
    linear-gradient(135deg, #0f143a 0%, #1a1f4a 50%, #0f143a 100%);
  transform: scale(1.05);
  will-change: transform;
}
.hero__content { position: relative; z-index: 1; padding: 5rem 0 4.5rem; max-width: 720px; }
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: 0.6rem;
  color: var(--brass); font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 1.25rem;
}
.hero__eyebrow::before {
  content: ""; width: 28px; height: 1px; background: #f3c91a;
}
.hero h1 { color: var(--white); margin-bottom: 1rem; }
.hero__lead { color: rgba(247,245,242,0.78); font-size: 1.15rem; max-width: 36ch; margin-bottom: 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; }

/* Sections */
.section { padding: clamp(3.5rem, 7vw, 6.5rem) 0; }
.section--paper { background: var(--paper); }
.section--white { background: var(--white); }
.section--ink { background: var(--ink); color: var(--paper); }
.section--ink h2, .section--ink h3 { color: var(--white); }
.section__header { max-width: 640px; margin-bottom: 2.75rem; }
.section__eyebrow {
  color: var(--brass-dark); font-size: 0.78rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 0.75rem;
}
.section--ink .section__eyebrow { color: var(--brass); }
.section__lead { color: var(--muted); font-size: 1.05rem; }
.section--ink .section__lead { color: rgba(247,245,242,0.7); }

/* Service grid */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(1.25rem + 15px);
}
.service-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-bottom: 20px solid #0f143a; /* navy accent bar */
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow:
    0 14px 36px rgba(15, 20, 58, 0.14),
    0 4px 12px rgba(15, 20, 58, 0.08);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  text-decoration: none; color: inherit; display: flex; flex-direction: column;
}
.service-card:hover {
  transform: translateY(-6px);
  box-shadow:
    0 22px 48px rgba(15, 20, 58, 0.22),
    0 8px 18px rgba(15, 20, 58, 0.1);
  color: inherit;
}
.service-card__media {
  width: 100%;
  margin: 0;
  aspect-ratio: 16/11;
  background:
    linear-gradient(145deg, #1a1f4a, #4a4338);
  position: relative;
  overflow: hidden;
}
.service-card__media--alt { background: linear-gradient(145deg, #1f2a24, #3d5246); }
.service-card__media--warm { background: linear-gradient(145deg, #3a2a1c, #6b4a2e); }
.service-card__media--cool { background: linear-gradient(145deg, #1c2433, #3a4d6b); }
.service-card__media--soft { background: linear-gradient(145deg, #3a3030, #6b5555); }
.service-card__media--deep { background: linear-gradient(145deg, #222018, #4a4030); }
.service-card__body { padding: 1.35rem 1.4rem 1.6rem; flex: 1; display: flex; flex-direction: column; }
.service-card h3 { margin-bottom: 0.45rem; font-size: 1.45rem; }
.service-card p { color: var(--muted); font-size: 0.95rem; flex: 1; }
.service-card__link {
  margin-top: 1rem; font-size: 0.8rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--brass-dark);
}

/* Split / concept */
.split {
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 3rem; align-items: center;
}
.split__visual {
  border-radius: var(--radius);
  min-height: 380px;
  background:
    radial-gradient(circle at 30% 30%, rgba(143, 28, 44, 0.25), transparent 50%),
    linear-gradient(160deg, #1a1f4a, #121210);
  box-shadow: var(--shadow-lg);
  position: relative; overflow: hidden;
}
.split__visual::after {
  content: "Sharp photography placeholder";
  position: absolute; inset: auto 1.25rem 1.25rem;
  color: rgba(247,245,242,0.55); font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase;
}

/* Gallery */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.85rem;
}
.gallery-item {
  aspect-ratio: 1;
  border-radius: var(--radius-sm);
  background: linear-gradient(145deg, #2a2a2a, #4a4338);
  overflow: hidden;
  position: relative;
}
.gallery-item:nth-child(3n) { background: linear-gradient(145deg, #243028, #3f5246); }
.gallery-item:nth-child(4n) { background: linear-gradient(145deg, #2a2430, #4a3f55); }
.gallery-item:nth-child(5n) { background: linear-gradient(145deg, #302820, #5a4a35); }
.gallery-item span {
  position: absolute; inset: auto 0.75rem 0.75rem;
  color: rgba(255,255,255,0.65); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase;
}

/* Pricing tables */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
table.pricing {
  width: 100%; border-collapse: collapse; font-size: 0.95rem;
}
table.pricing th, table.pricing td {
  padding: 1rem 1.15rem; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top;
}
table.pricing th {
  background: var(--ink); color: var(--paper);
  font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700;
}
table.pricing tr:last-child td { border-bottom: 0; }
table.pricing td:first-child { font-weight: 600; }
.price-tag { color: var(--brass-dark); font-weight: 700; white-space: nowrap; }

/* Cards / FAQ */
.faq-list { display: grid; gap: 0.75rem; }
.faq-item {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 0;
}
.faq-item summary {
  cursor: pointer; list-style: none; padding: 1.1rem 1.25rem;
  font-weight: 600; font-size: 1rem;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+"; float: right; color: var(--brass-dark); font-weight: 400; font-size: 1.25rem;
}
.faq-item[open] summary::after { content: "–"; }
.faq-item .faq-body { padding: 0 1.25rem 1.25rem; color: var(--muted); }

/* Contact */
.contact-grid {
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 2.5rem;
}
.contact-card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.5rem; margin-bottom: 1rem;
}
.contact-card h3 { margin-bottom: 0.5rem; }
.contact-card p, .contact-card li { color: var(--muted); margin-bottom: 0.35rem; }
.contact-form label { display: block; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 0.35rem; }
.contact-form input, .contact-form textarea, .contact-form select {
  width: 100%; padding: 0.85rem 1rem; margin-bottom: 1rem;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  font: inherit; background: var(--white); color: var(--ink);
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus {
  outline: 2px solid var(--brass); outline-offset: 1px;
}

/* Page hero (inner) */
.page-hero {
  background: var(--ink); color: var(--paper); padding: 4rem 0 3.25rem;
  position: relative; overflow: hidden;
}
.page-hero::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 80% at 90% 20%, rgba(143, 28, 44, 0.15), transparent 55%);
}
.page-hero .container { position: relative; }
.page-hero h1 { color: var(--white); }
.page-hero p { color: rgba(247,245,242,0.72); max-width: 50ch; }

/* CTA band */
.cta-band {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1.5rem; padding: 2.5rem; border-radius: var(--radius);
  background: linear-gradient(135deg, #0f143a, #1e2450);
  color: var(--paper); box-shadow: var(--shadow-lg);
}
.cta-band h2 { color: var(--white); margin: 0 0 0.4rem; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.cta-band p { margin: 0; color: rgba(247,245,242,0.7); }

/* Footer */
/* ========== Footer — laser engraving shop floor ========== */
.site-footer {
  position: relative;
  overflow: hidden;
  background-color: #0a0d24;
  background-image:
    radial-gradient(ellipse 80% 70% at 0% 0%, #272c67 0%, transparent 58%),
    radial-gradient(ellipse 75% 65% at 100% 0%, #1a1f4a 0%, transparent 55%),
    radial-gradient(ellipse 80% 70% at 100% 100%, #0f143a 0%, transparent 58%),
    radial-gradient(ellipse 70% 60% at 0% 100%, #12183a 0%, transparent 55%);
  color: rgba(247, 245, 242, 0.78);
  padding: 0 0 2rem;
  font-size: 0.95rem;
}
.footer-laser {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.footer-laser__hatch {
  display: none; /* replaced by faint diamond ::before */
}
/* Faint diamond lattice for depth — navy colors unchanged */
.footer-laser::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
  pointer-events: none;
}
/* Smooth red laser — rides the copyright divider */
.footer-laser-line {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  height: 3px;
  overflow: visible;
  pointer-events: none;
  z-index: 2;
}
.footer-laser__rail {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(143, 28, 44, 0.18) 18%,
    rgba(143, 28, 44, 0.35) 50%,
    rgba(143, 28, 44, 0.18) 82%,
    transparent 100%
  );
}
.footer-laser__mover {
  position: absolute;
  top: 0;
  left: 0;
  width: min(220px, 28vw);
  height: 3px;
  transform-origin: right center; /* flip around the tip so the tail swings */
  animation: footer-laser-sweep 8.4s ease-in-out infinite;
  will-change: transform;
}
.footer-laser__beam {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(143, 28, 44, 0.2) 12%,
    rgba(143, 28, 44, 0.55) 42%,
    #8f1c2c 72%,
    #ff6b6b 88%,
    #fff 100%
  );
  box-shadow:
    0 0 10px rgba(143, 28, 44, 0.85),
    0 0 22px rgba(143, 28, 44, 0.5),
    0 0 40px rgba(143, 28, 44, 0.28);
}
.footer-laser__spark {
  position: absolute;
  top: -5px;
  right: -6px;
  left: auto;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #ffb4b4 35%, #8f1c2c 70%, transparent 75%);
  box-shadow:
    0 0 6px #fff,
    0 0 14px #8f1c2c,
    0 0 26px rgba(143, 28, 44, 0.85);
  animation: footer-laser-flicker 0.4s ease-in-out infinite alternate;
}
/* Tip leads: L→R with tip on right; flip at end so tip leads R→L */
@keyframes footer-laser-sweep {
  0% {
    transform: translateX(0) scaleX(1);
  }
  45% {
    transform: translateX(calc(100vw - min(220px, 28vw))) scaleX(1);
  }
  50% {
    transform: translateX(calc(100vw - min(220px, 28vw))) scaleX(-1);
  }
  95% {
    transform: translateX(0) scaleX(-1);
  }
  100% {
    transform: translateX(0) scaleX(1);
  }
}
@keyframes footer-laser-flicker {
  0% { opacity: 0.8; filter: brightness(0.95); }
  100% { opacity: 1; filter: brightness(1.2); }
}
.footer-shell {
  position: relative;
  z-index: 1;
  padding-top: 3.25rem;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.footer-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem 2rem;
  margin-bottom: 2.25rem;
  padding: 1.5rem 1.5rem 1.65rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 14px 36px rgba(0, 0, 0, 0.2);
  position: relative;
}
.footer-cta::before {
  content: "";
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #f3c91a, transparent);
  opacity: 0.75;
}
.footer-cta__eyebrow {
  margin: 0 0 0.45rem;
  color: #f3c91a;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.footer-cta__title {
  margin: 0 0 0.55rem;
  color: #fff;
  font-size: clamp(1.45rem, 2.6vw, 1.95rem);
  font-family: var(--font-head);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-transform: none;
}
.footer-cta__lead {
  margin: 0 0 0.75rem;
  max-width: 48ch;
  color: rgba(247, 245, 242, 0.72);
  font-size: 0.98rem;
  line-height: 1.55;
}
.footer-cta__contact {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
}
.footer-cta__contact a {
  color: #fff;
  text-decoration: none;
}
.footer-cta__contact a:hover,
.footer-cta__contact a:focus-visible {
  color: #f3c91a;
}
.footer-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  flex-shrink: 0;
}
.site-footer .footer-cta__btn.btn--primary {
  background: #f3c91a;
  border-color: #f3c91a;
  color: #0f143a;
}
.site-footer .footer-cta__btn.btn--primary:hover,
.site-footer .footer-cta__btn.btn--primary:focus-visible {
  background: #fff;
  border-color: #fff;
  color: #0f143a;
}
@media (max-width: 720px) {
  .footer-cta {
    padding: 1.25rem 1.15rem 1.35rem;
  }
  .footer-cta__actions {
    width: 100%;
  }
  .footer-cta__actions .btn {
    flex: 1 1 auto;
    text-align: center;
    justify-content: center;
  }
}

.footer-mark {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.footer-mark__crosshair {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.footer-mark__crosshair::before,
.footer-mark__crosshair::after {
  content: "";
  position: absolute;
  background: #f3c91a;
  opacity: 0.85;
}
.footer-mark__crosshair::before {
  left: 50%;
  top: 0;
  width: 1px;
  height: 100%;
  transform: translateX(-50%);
}
.footer-mark__crosshair::after {
  top: 50%;
  left: 0;
  height: 1px;
  width: 100%;
  transform: translateY(-50%);
}
.footer-mark__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #f3c91a;
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.75rem;
  margin-bottom: 2.5rem;
  align-items: stretch;
}
.footer-grid > .footer-affiliate {
  height: 100%;
  min-height: 100%;
}
.footer-affiliate__card {
  height: 100%;
  box-sizing: border-box;
}
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.site-footer h3,
.site-footer h4 {
  color: var(--white);
  font-size: 0.82rem;
  margin: 0;
  font-family: var(--font-head);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.site-footer a {
  color: rgba(247, 245, 242, 0.82);
  text-decoration: none;
  transition: color 0.2s var(--ease);
}
.site-footer a:hover,
.site-footer a:focus-visible {
  color: #f3c91a;
}
.site-footer ul {
  list-style: none;
  padding: 0;
  margin: 0.85rem 0 0;
}
.site-footer li {
  margin-bottom: 0.4rem;
  font-size: 0.92rem;
  line-height: 1.45;
}
.footer-brand img,
.footer-brand > img {
  height: 44px;
  width: auto;
  max-width: 200px;
  margin-bottom: 1rem;
}
.footer-brand__tag {
  margin: 0 0 0.85rem;
  max-width: 34ch;
  color: rgba(247, 245, 242, 0.7);
  font-size: 0.92rem;
  line-height: 1.55;
}
.footer-brand__pulse {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1.1rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid rgba(243, 201, 26, 0.35);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #f3c91a;
  background: rgba(243, 201, 26, 0.06);
}
.footer-brand__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #8f1c2c;
  box-shadow: 0 0 8px rgba(143, 28, 44, 0.9);
  animation: footer-pulse 1.8s ease-in-out infinite;
}
@keyframes footer-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.75); }
}
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 1rem;
}
.footer-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(15, 20, 58, 0.45);
  color: #f5f6fa !important;
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease), color 0.2s var(--ease), transform 0.2s var(--ease);
}
.footer-social__link:hover,
.footer-social__link:focus-visible {
  border-color: #f3c91a;
  background: rgba(243, 201, 26, 0.12);
  color: #f3c91a !important;
  transform: translateY(-2px);
}
.footer-social__icon {
  display: block;
}
.site-footer .lang-switch {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  font-weight: 700;
}
.footer-plate {
  position: relative;
  height: 100%;
  box-sizing: border-box;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 12px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 12px 28px rgba(0, 0, 0, 0.22);
}
.footer-plate::before {
  content: "";
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #f3c91a, transparent);
  opacity: 0.7;
}
.footer-plate__top {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.15rem;
}
.footer-plate__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 1.55rem;
  padding: 0 0.4rem;
  border-radius: 4px;
  background: #f3c91a;
  color: #0f143a;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
.footer-plate__hours {
  color: rgba(247, 245, 242, 0.55);
  font-size: 0.84rem;
}
.footer-plate--explore .footer-explore__list {
  margin-top: 0.85rem;
}
.footer-explore__list a {
  position: relative;
  display: inline-block;
  padding-left: 0.85rem;
}
.footer-explore__list a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 1px;
  background: #f3c91a;
  transition: width 0.25s var(--ease);
}
.footer-explore__list a:hover::before,
.footer-explore__list a:focus-visible::before {
  width: 12px;
}
.footer-affiliate {
  margin: 0;
  min-width: 0;
}
.footer-affiliate__card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 12px 28px rgba(0, 0, 0, 0.22);
  text-decoration: none !important;
  color: inherit;
  transition: border-color 0.2s var(--ease), transform 0.2s var(--ease);
  height: 100%;
}
.footer-affiliate__card:hover,
.footer-affiliate__card:focus-visible {
  border-color: rgba(243, 201, 26, 0.55);
  transform: translateY(-1px);
}
.footer-affiliate__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 10px;
  background: #0a0d24;
}
.footer-affiliate__body {
  min-width: 0;
}
.footer-affiliate__eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f3c91a;
}
.footer-affiliate__title {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1.25;
}
.footer-affiliate__text {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  line-height: 1.4;
  color: rgba(247, 245, 242, 0.72);
}
.footer-affiliate__code {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.6rem;
  border-radius: 8px;
  border: 1px dashed rgba(243, 201, 26, 0.65);
  background: rgba(243, 201, 26, 0.1);
  color: #f3c91a;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.footer-meta {
  position: relative;
  border-top: none; /* red laser line is the divider */
  padding-top: 1.35rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: calc(0.82rem + 2pt);
  color: rgba(247, 245, 242, 0.5);
}
.footer-meta__left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.footer-meta__rule {
  width: 28px;
  height: 2px;
  background: #f3c91a;
  border-radius: 2px;
  flex-shrink: 0;
}
.footer-meta__motto {
  font-style: italic;
  letter-spacing: 0.02em;
  color: rgba(247, 245, 242, 0.5);
}
@media (prefers-reduced-motion: reduce) {
  .footer-laser__mover,
  .footer-laser__spark,
  .footer-brand__dot {
    animation: none !important;
  }
  .footer-laser__mover {
    left: 42%;
    opacity: 0.85;
    transform: none;
  }
  .footer-laser__spark {
    filter: none;
  }
}

/* WooCommerce light polish */
.woocommerce .button, .woocommerce a.button, .woocommerce button.button {
  background: var(--ink) !important; color: var(--paper) !important;
  border-radius: 999px !important; font-weight: 600 !important;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.woocommerce .button:hover, .woocommerce a.button:hover {
  background: #f3c91a !important; color: #0f143a !important; /* 1.8.422: navy button, yellow hover (was red) */
}
.woocommerce span.onsale { background: var(--brass) !important; color: var(--ink) !important; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; background: var(--white);
}
.woocommerce div.product .product_title { font-family: var(--font-head); }

/* Bookable product stubs */
.booking-cards {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem;
}
.booking-card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.75rem; display: flex; flex-direction: column; gap: 0.75rem;
  box-shadow: var(--shadow);
}
.booking-card .price { font-size: 1.5rem; font-family: var(--font-display); color: var(--ink); }
.booking-card .meta { font-size: 0.85rem; color: var(--muted); }
.booking-card .policies { font-size: 0.82rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 0.85rem; margin-top: auto; }

/* Scroll reveal */
.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }

/* Content pages */
.entry-content { max-width: 72ch; }
.entry-content > *:first-child { margin-top: 0; }
.prose h2 { margin-top: 2rem; }
.prose ul li { margin-bottom: 0.4rem; }
.notice {
  background: var(--accent-soft); border-left: 3px solid var(--brass);
  padding: 1rem 1.15rem; border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin: 1.5rem 0; color: var(--ink-soft); font-size: 0.95rem;
}

/* Responsive */
@media (max-width: 980px) {
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
  .split, .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .booking-cards { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  /* mega-menu handles mobile */
  .services-grid, .gallery-grid { grid-template-columns: 1fr 1fr; }
  .hero__content { padding: 3.5rem 0 3rem; }
}
@media (max-width: 520px) {
  .services-grid, .gallery-grid { grid-template-columns: 1fr; }
  .container { width: min(100% - 1.5rem, var(--container)); }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn:hover, .service-card:hover { transform: none; }
}

/* === Accessibility focus & a11y additions === */
:focus { outline: none; }
:focus-visible {
  outline: 3px solid var(--brass);
  outline-offset: 3px;
}
.site-nav a:focus-visible,
.btn:focus-visible,
.nav-toggle:focus-visible,
summary:focus-visible,
.contact-form input:focus-visible,
.contact-form textarea:focus-visible,
.contact-form select:focus-visible {
  outline: 3px solid var(--brass);
  outline-offset: 2px;
}
.site-announce a:focus-visible { outline-color: var(--brass); }
img[alt=""] { outline: 2px dashed var(--danger); } /* authoring aid in staging */
.nav-toggle[aria-expanded="true"] { background: var(--paper-2); }

/* Ensure contrast on brass buttons */
.btn--primary { color: #0f143a; }
.site-announce { color: #f7f5f2; }

.service-card__media { overflow: hidden; }
.service-card__media img,
.service-card__img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  aspect-ratio: 16/11;
}
.gallery-item img {
  width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1;
}
.split__visual img {
  width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius);
  min-height: 360px; box-shadow: var(--shadow-lg);
}


/* === Laser spark mega-menu === */
.site-header__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.header-phone {
  display: none;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: var(--ink-soft);
}
.header-phone:hover { color: var(--brass-dark); }
@media (min-width: 720px) {
  .header-phone { display: inline-block; }
}

/* === Text top nav + per-category mega === */
.site-nav {
  display: none;
}
.site-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0 0.75rem;
  flex-wrap: nowrap;
}
.site-nav__item {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  position: relative;
}
.site-nav__sep {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 12px; /* wider hit bridge between category words */
  height: calc(0.92rem * 1.2);
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  font-size: 0;
  line-height: 0;
  color: transparent;
  user-select: none;
  pointer-events: auto; /* keep mega open while crossing dots */
}
.site-nav__sep::before {
  content: "";
  display: block;
  width: 3px;
  height: 3px;
  border-radius: 1px;
  background: #8f1c2c;
  flex-shrink: 0;
  box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  animation: site-nav-sep-glow 2.2s ease-in-out infinite;
}
@keyframes site-nav-sep-glow {
  0%, 100% {
    box-shadow: 0 0 2px 0.5px rgba(143, 28, 44, 0.35);
    opacity: 0.85;
  }
  50% {
    box-shadow: 0 0 5px 1.5px rgba(143, 28, 44, 0.9);
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-nav__sep::before {
    animation: none;
    opacity: 1;
    box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  }
}

/* Gap bridge: shell docks at trigger.bottom; padding-top is the hit area */

.site-nav__trigger {
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
  padding: 0;
  margin: 0;
  border-radius: 0;
  line-height: 1.2;
}
.site-nav__trigger:hover,
.site-nav__trigger:focus-visible,
.site-nav__trigger.is-active,
.site-nav__trigger[aria-expanded="true"] {
  outline: none;
}
.site-nav__roll {
  display: block;
  overflow: hidden;
  height: 1.2em;
  line-height: 1.2;
}
.site-nav__roll-track {
  display: block;
  transition: transform .38s var(--ease);
  will-change: transform;
}
.site-nav__roll-line {
  display: block;
  height: 1.2em;
  line-height: 1.2;
  color: inherit;
}
.site-nav__roll-line--alt {
  color: var(--red, #8f1c2c);
}
.site-nav__trigger:hover .site-nav__roll-track,
.site-nav__trigger:focus-visible .site-nav__roll-track,
.site-nav__trigger.is-active .site-nav__roll-track,
.site-nav__trigger[aria-expanded="true"] .site-nav__roll-track {
  transform: translateY(-1.2em);
}
.site-nav__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-nav__trigger:focus-visible {
  box-shadow: 0 0 0 2px rgba(243, 201, 26, 0.65);
}
.site-header.is-scrolled .site-nav__trigger {
  color: #fff;
}
.site-header.is-scrolled .site-nav__roll-line--alt {
  color: #f3c91a;
}
.site-header.is-scrolled .site-nav__sep::before {
  background: #8f1c2c;
  /* keep glow animation from base rule */
}

@media (min-width: 761px) {
  .site-nav { display: block; }
  .spark-toggle { display: none !important; }
  .site-header__inner {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
}
@media (max-width: 760px) {
  .site-nav { display: none !important; }
  .spark-toggle { display: inline-flex !important; }
  .site-header__inner {
    grid-template-columns: 1fr auto;
  }
}

.spark-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  padding: 0.35rem;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
  position: relative;
  z-index: 1100;
  isolation: isolate;
  transition: filter .25s var(--ease);
  box-shadow: none;
  overflow: visible;
}
.spark-toggle::before {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(143, 28, 44, 0.55);
  box-shadow:
    0 0 0 0 rgba(143, 28, 44, 0.35),
    0 0 18px rgba(143, 28, 44, 0.35);
  pointer-events: none;
  z-index: -1;
  animation: idx-spark-ring 2.4s var(--ease) infinite;
}
.spark-toggle:hover,
.spark-toggle:focus-visible {
  background: transparent;
  border: 0;
  box-shadow: none;
  filter: drop-shadow(0 0 10px rgba(143, 28, 44, 0.65));
}
.spark-toggle:hover::before,
.spark-toggle:focus-visible::before {
  border-color: rgba(143, 28, 44, 0.9);
  animation-duration: 1.4s;
}
.spark-toggle[aria-expanded="true"] {
  background: transparent;
  border: 0;
  color: var(--accent);
  box-shadow: none;
  filter: drop-shadow(0 0 14px rgba(143, 28, 44, 0.75));
}
.spark-toggle[aria-expanded="true"]::before {
  border-color: rgba(143, 28, 44, 0.95);
  animation-duration: 1.2s;
}
.spark-toggle__icon {
  display: flex;
  width: 40px;
  height: 40px;
  transform-origin: center center;
  will-change: transform;
}
.spark-toggle__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.spark-toggle[aria-expanded="true"] .spark-toggle__icon svg [stroke] { stroke: var(--accent); }
.spark-toggle__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Panel */
.mega-menu {
  position: fixed;
  inset: 0;
  z-index: 1050;
  pointer-events: none; /* never block the header/nav */
}
.mega-menu.is-open {
  pointer-events: none;
}
.mega-menu.is-open .mega-menu__backdrop,
.mega-menu.is-open .mega-menu__shell {
  pointer-events: auto;
}

.mega-menu[hidden] { display: none !important; }
.mega-menu:not([hidden]) { display: block; }

.mega-menu__backdrop {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(var(--announce-h, 0px) + var(--header-h, 72px));
  bottom: 0;
  background: rgba(18, 18, 18, 0.55);
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.mega-menu.is-open .mega-menu__backdrop { opacity: 1; }

.mega-menu__shell {
  position: absolute;
  left: 0;
  right: auto;
  top: calc(var(--announce-h) + var(--header-h) + 15px);
  transform: translateY(-8px);
  width: 1100px;
  max-width: min(1100px, calc(100vw - 1.5rem));
  max-height: calc(100vh - var(--announce-h) - var(--header-h) - 1rem);
  overflow: visible;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  transition: opacity .28s var(--ease), transform .28s var(--ease);
  padding: 20px 40px 20px;
  box-sizing: border-box;
}
.mega-menu__panel {
  max-height: calc(100vh - var(--announce-h) - var(--header-h) - 5rem);
  overflow: auto;
}
@media (max-width: 760px) {
  .mega-menu__shell {
    left: 0 !important;
    right: 0 !important;
    width: 100%;
    max-width: none;
    max-height: calc(100vh - var(--announce-h) - var(--header-h));
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-top: 0;
  }
}
.mega-menu.is-open .mega-menu__shell {
  opacity: 1;
  transform: translateY(0);
}
.mega-menu[data-active-panel="idx"] .mega-menu__shell,
.mega-menu[data-active-panel="shop"] .mega-menu__shell {
  width: 1180px;
  max-width: min(1180px, calc(100vw - 1.5rem));
}
.mega-menu__cta--shop-inline {
  margin-top: 1rem;
  padding-top: 0.75rem;
}
.mega-menu[data-active-panel="custom"] .mega-menu__shell,
.mega-menu[data-active-panel="engraving"] .mega-menu__shell {
  width: 1100px;
  max-width: min(1100px, calc(100vw - 1.5rem));
}
.mega-menu[data-active-panel="laser-services"] .mega-menu__shell {
  width: 920px;
  max-width: min(920px, calc(100vw - 1.5rem));
}
.mega-menu__panel {
  display: none;
  padding: 0;
  background: transparent;
  box-sizing: border-box;
}
@media (max-width: 760px) {
  .mega-menu__panel {
    padding: 0;
  }
}
.mega-menu__panel.is-active,
.mega-menu__panel:not([hidden]) {
  display: block;
}
.mega-menu__panel[hidden] {
  display: none !important;
}
.mega-menu__top--mobile {
  display: flex;
}

.mega-menu__tabs {
  display: none;
  gap: 0.35rem;
  padding: 0.75rem 1.15rem 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.mega-menu__tab {
  appearance: none;
  border: 1px solid var(--line);
  background: var(--paper, #fff);
  color: var(--navy);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.55rem 0.75rem;
  border-radius: 999px;
  white-space: nowrap;
  cursor: pointer;
}
.mega-menu__tab.is-active,
.mega-menu__tab[aria-selected="true"] {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}
@media (max-width: 760px) {
  .mega-menu__tabs {
    display: flex;
  }
}

.mega-menu__family--panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  margin: 0;
}
.mega-menu__family--panel .mega-menu__family-link {
  width: 100%;
  max-width: 280px;
}
.mega-menu__grid--category {
  display: grid;
  gap: 0;
  align-items: stretch;
  width: 100%;
}
.mega-menu__grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}
.mega-menu__grid--cols-2 > .mega-menu__col,
.mega-menu__grid--cols-2 > .mega-menu__col--cta {
  min-width: 0;
  width: auto;
}
.mega-menu__grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
}
.mega-menu__grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
}
.mega-menu__grid--category > .mega-menu__col {
  min-width: 0;
  padding: 0 20px;
  border-right: none;
  box-sizing: border-box;
  position: relative;
  align-self: stretch;
  overflow: hidden;
}
.mega-menu__grid--category > .mega-menu__col:first-child {
  padding-left: 0;
}
.mega-menu__grid--category > .mega-menu__col:last-child {
  padding-right: 0;
}
.mega-menu__grid--category > .mega-menu__col:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 1px;
  background: var(--line);
  pointer-events: none;
}
.mega-menu__grid--category > .mega-menu__col--cta {
  align-self: stretch;
  padding: 0 0 0 20px;
  overflow: hidden;
}

.mega-menu__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 16px;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--line);
  box-sizing: border-box;
}
.mega-menu__brand {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}
.mega-menu__logo {
  display: flex;
  flex-shrink: 0;
  text-decoration: none;
}
.mega-menu__logo img {
  height: 44px;
  width: auto;
  max-width: 180px;
  display: block;
}
.mega-menu__brand-copy {
  min-width: 0;
}
.mega-menu__brand-title {
  margin: 0;
  font-family: var(--font-head);
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  font-weight: 600;
  color: var(--navy);
  line-height: 1.25;
}
.mega-menu__brand-tag {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy-mid);
}
.mega-menu__close {
  width: 40px; height: 40px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 5;
  pointer-events: auto;
}
.mega-menu__close:hover,
.mega-menu__close:focus-visible {
  border-color: #0f143a; /* 1.8.422: was red outline */
  background: #f3c91a;
}


/* ========== Mega-menu family links (above top divider) ========== */
.mega-menu__family {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  margin-left: auto;
  margin-right: 0.35rem;
  min-width: 0;
}
.mega-menu__family-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.35rem 0.55rem 0.35rem 0.35rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--paper, #fff);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease), transform 0.2s var(--ease);
}
.mega-menu__family-link:hover,
.mega-menu__family-link:focus-visible {
  border-color: var(--red, #8f1c2c);
  background: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}
.mega-menu__family-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 36px;
  display: block;
  background: #fff;
}
.mega-menu__family-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  padding-right: 0.25rem;
}
.mega-menu__family-title {
  font-family: var(--font-head);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy);
}
.mega-menu__family-link:hover .mega-menu__family-title,
.mega-menu__family-link:focus-visible .mega-menu__family-title {
  color: var(--red, #8f1c2c);
}
.mega-menu__family-desc {
  font-size: 0.68rem;
  color: rgba(15, 20, 58, 0.65);
}
@media (max-width: 900px) {
  .mega-menu__family {
    width: 100%;
    justify-content: flex-start;
    order: 3;
    margin: 0.35rem 0 0;
  }
  .mega-menu__top {
    flex-wrap: wrap;
  }
}

.mega-menu__grid {
  display: grid;
  gap: 1.5rem 1.75rem;
}
/* Default 4-col only when not a category mega */
.mega-menu__grid:not(.mega-menu__grid--category):not(.mega-menu__grid--five) {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
/* Category megas: equal columns that fill the shell (padding is on the shell) */
.mega-menu__grid.mega-menu__grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0;
  width: 100%;
}
.mega-menu__grid.mega-menu__grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0;
  width: 100%;
}
.mega-menu__grid.mega-menu__grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0;
  width: 100%;
}
.mega-menu__grid.mega-menu__grid--cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0;
  width: 100%;
}

.mega-menu__grid--five {
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(200px, 0.95fr);
  gap: 0;
  align-items: stretch;
}
.mega-menu__grid--five > .mega-menu__col {
  min-width: 0;
  padding: 0.35rem 16px;
  border-right: 1px solid var(--line);
  box-sizing: border-box;
}
.mega-menu__grid--five > .mega-menu__col:last-child {
  border-right: none;
}
.mega-menu__heading {
  font-family: var(--font-head);
  font-size: calc(0.95rem - 4px);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 0.95rem;
}
.mega-menu__heading--sub {
  margin-top: 1.25rem;
}
.mega-menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}
.mega-menu__link {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  padding: 0.3rem 0;
  border-radius: 0;
  text-decoration: none;
  color: var(--ink);
  background: transparent;
  transition: color .28s var(--ease);
}
.mega-menu__link:hover,
.mega-menu__link:focus-visible {
  background: transparent;
  color: #0f143a;
}
.mega-menu__link:hover .mega-menu__link-title,
.mega-menu__link:focus-visible .mega-menu__link-title {
  color: var(--red, #8f1c2c);
}
.mega-menu__link:hover .mega-menu__link-desc,
.mega-menu__link:focus-visible .mega-menu__link-desc {
  color: #1e2450;
}
.mega-menu__link.is-active {
  color: var(--red, #8f1c2c);
}
.mega-menu__link.is-active .mega-menu__link-title {
  font-style: italic;
  font-weight: 700;
  color: var(--red, #8f1c2c);
}
.mega-menu__link.is-active .mega-menu__link-desc {
  font-style: italic;
  color: var(--red, #8f1c2c);
}
.mega-menu__link-title-roll {
  display: block;
  overflow: visible;
  height: auto;
  line-height: 1.3;
  max-width: 100%;
}
.mega-menu__link-title-track {
  display: block;
  transition: color .28s var(--ease);
  will-change: auto;
}
.mega-menu__link-title-line {
  display: block;
  height: auto;
  line-height: 1.3;
  color: inherit;
  white-space: normal;
  overflow: visible;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.mega-menu__link-title-line--roll {
  display: none !important;
}
.mega-menu__note {
  margin: 1rem 0 0;
  padding: 0.65rem 0.75rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink-soft);
  max-width: none;
  width: 100%;
  box-sizing: border-box;
}
.mega-menu__contact {
  margin-top: 1.15rem;
  display: grid;
  gap: 0.45rem;
  font-size: calc(0.82rem + 2pt);
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.mega-menu__contact-line {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.mega-menu__contact-label {
  font-weight: 700;
  color: var(--ink);
}
.mega-menu__contact a {
  color: var(--navy);
  text-decoration: none;
}
.mega-menu__contact a:hover,
.mega-menu__contact a:focus-visible {
  color: var(--red, #8f1c2c);
  text-decoration: underline;
}
.mega-menu__social {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}
.mega-menu__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #0f143a;
  border-radius: 6px;
  transition: color .2s var(--ease), transform .2s var(--ease);
}
.mega-menu__social-link:hover,
.mega-menu__social-link:focus-visible {
  transform: translateY(-1px);
  text-decoration: none;
}
.mega-menu__social-link--facebook:hover,
.mega-menu__social-link--facebook:focus-visible {
  color: #1877f2; /* Facebook brand blue */
}
.mega-menu__social-link--instagram:hover,
.mega-menu__social-link--instagram:focus-visible {
  color: #e4405f; /* Instagram brand pink */
}
.mega-menu__social-link img {
  width: 22px;
  height: 22px;
  display: block;
  object-fit: contain;
}
.mega-menu__thumb {
  display: block;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  border-radius: 10px;
  overflow: hidden;
  background: var(--paper-2);
  border: 1px solid var(--line);
}
.mega-menu__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mega-menu__thumb img[src$=".svg"] {
  object-fit: contain;
  padding: 12px;
  background: #fff;
}
.mega-menu__link-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  position: relative;
  z-index: 1;
}
.mega-menu__link-title {
  font-weight: 600;
  font-size: 0.98rem;
  line-height: 1.25;
}
.mega-menu__link-desc {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.3;
}
.mega-menu__more {
  margin: 0.75rem 0 0;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.mega-menu__more a { color: var(--brass-dark); text-decoration: none; }
.mega-menu__more a:hover { color: var(--ink); }


.mega-menu__col--cta {
  min-width: 0;
  height: 100%;
  align-self: stretch;
  background: linear-gradient(145deg, #0f143a, #1e2450);
  border-radius: 10px;
  border: none;
  color: var(--paper);
}
.mega-menu__cta--column {
  margin-top: 0;
  height: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.1rem;
  padding: 20px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  border: none;
  box-sizing: border-box;
}
.mega-menu__cta--column .mega-menu__cta-actions {
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  gap: 0.75rem;
}
.mega-menu__cta--column .btn--mega-book {
  width: 100%;
  max-width: 100%;
  text-align: center;
  box-sizing: border-box;
  padding: 0.65rem 1rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
}

.mega-menu__cta {
  margin-top: 1.5rem;
  background: linear-gradient(145deg, #0f143a, #1e2450);
  color: var(--paper);
  border-radius: var(--radius);
  padding: 1.35rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  width: 100%;
  box-shadow: var(--shadow);
}
.mega-menu__cta-copy {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: min(100%, 280px);
  flex: 1;
}
.mega-menu__cta-eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ffffff;
}
.mega-menu__cta-title {
  margin: 0;
  font-family: var(--font-head);
  font-size: 1.65rem;
  color: var(--white);
  font-weight: 600;
}
.mega-menu__cta-text {
  margin: 0;
  color: rgba(247,245,242,0.78);
  font-size: 0.92rem;
}
.mega-menu__cta-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
}
.btn--mega-book {
  background: #ffffff;
  color: var(--navy);
  border-color: #ffffff;
}
.btn--mega-book:hover,
.btn--mega-book:focus-visible {
  background: #f5f6fa;
  color: var(--navy);
  border-color: #f5f6fa;
}
.mega-menu__cta-secondary {
  color: rgba(247,245,242,0.85);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}
.mega-menu__cta-secondary:hover { color: #ffffff; }

.mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--column {
  margin-top: 0;
  height: 100%;
  min-height: 100%;
  border-radius: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  padding: 20px;
  color: inherit;
  box-sizing: border-box;
}
.mega-menu__cta--column .mega-menu__cta-title {
  font-size: 1.35rem;
  line-height: 1.2;
}
.mega-menu__cta--column .mega-menu__cta-text {
  font-size: 0.85rem;
  line-height: 1.4;
}
.mega-menu__cta--column .mega-menu__cta-copy {
  min-width: 0;
}

body.mega-menu-open {
  overflow: hidden;
}

@media (max-width: 1100px) {
  .mega-menu__grid:not(.mega-menu__grid--category),
  .mega-menu__grid--five {
    grid-template-columns: 1fr 1fr;
  }
  .mega-menu__grid:not(.mega-menu__grid--category) .mega-menu__col--cta {
    grid-column: 1 / -1;
  }
  /* Category megas keep their 2/3/4 fill until mobile stack */
  .mega-menu__grid.mega-menu__grid--cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .mega-menu__grid.mega-menu__grid--cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .mega-menu__grid.mega-menu__grid--cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 900px) {
  /* Keep category column counts until the 760 mobile stack */
  .mega-menu__grid.mega-menu__grid--cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .mega-menu__grid.mega-menu__grid--cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .mega-menu__grid.mega-menu__grid--cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .mega-menu__shell {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-height: 100%;
    transform: translateY(16px) !important;
    padding: 0;
  }
  .mega-menu.is-open .mega-menu__shell {
    transform: translateY(0) !important;
  }
  .mega-menu__shell {
    padding: 20px 40px 20px !important;
  }
  .mega-menu__top--mobile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 16px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--line);
  }
  .mega-menu__panel {
    padding: 0;
  }
  .mega-menu__brand-title { font-size: 1rem; }
  .mega-menu__logo img { height: 36px; }
  .mega-menu__grid--cols-2,
  .mega-menu__grid--cols-3,
  .mega-menu__grid--cols-4 {
    grid-template-columns: 1fr;
  }
  .mega-menu__grid--category > .mega-menu__col {
    border-right: none;
    border-bottom: 1px solid var(--line);
    padding: 1rem 0;
    align-self: stretch;
  }
  .mega-menu__grid--category > .mega-menu__col:not(:last-child)::after {
    display: none;
  }
  .mega-menu__grid--category > .mega-menu__col:last-child {
    border-bottom: none;
  }
  .mega-menu__grid--category > .mega-menu__col--cta {
    grid-column: auto;
  }
}
@media (max-width: 560px) {
  .mega-menu__grid,
  .mega-menu__grid--five { grid-template-columns: 1fr; }
  .mega-menu__col--cta { grid-column: auto; }
  .mega-menu__brand { gap: 0.65rem; }
  .mega-menu__brand-tag { letter-spacing: 0.04em; }
}

@media (prefers-reduced-motion: reduce) {
  .spark-toggle,
  .mega-menu__backdrop,
  .mega-menu__shell,
  .mega-menu__panel {
    transition: none !important;
  }
}

.spark-toggle:focus-visible {
  outline: 3px solid var(--brass);
  outline-offset: 3px;
}

/* === Full-width responsive shell === */
.site-header,
.site-announce,
.site-footer,
.hero,
.page-hero,
.section,
.cta-band-wrap {
  width: 100%;
}
.site-header .container,
.section > .container,
.page-hero > .container,
.hero > .container,
.woocommerce .container {
  width: min(100% - clamp(1.25rem, 4vw, 3rem), var(--container));
  margin-inline: auto;
}
.site-footer .container.footer-shell,
.site-footer .footer-shell {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-left: 80px;
  padding-right: 80px;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .site-footer .container.footer-shell,
  .site-footer .footer-shell {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
.container--wide {
  width: min(100% - clamp(1.25rem, 4vw, 3rem), 1400px);
  margin-inline: auto;
}
.container--full {
  width: min(100% - clamp(1rem, 2.5vw, 1.75rem), 100%);
  max-width: none;
  margin-inline: auto;
}
.hero, .page-hero { width: 100vw; max-width: 100%; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
/* Safer full-bleed without 100vw scrollbar issues */
.hero, .page-hero, .site-announce, .site-header, .site-footer {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  max-width: none;
}
body { overflow-x: clip; }
img, svg, video { max-width: 100%; height: auto; }

/* === Spark ring pulse + hover spin === */
@keyframes idx-spark-ring {
  0% {
    transform: scale(0.92);
    opacity: 0.95;
    box-shadow:
      0 0 0 0 rgba(143, 28, 44, 0.45),
      0 0 14px rgba(143, 28, 44, 0.4);
  }
  70% {
    transform: scale(1.28);
    opacity: 0;
    box-shadow:
      0 0 0 12px rgba(143, 28, 44, 0),
      0 0 28px rgba(143, 28, 44, 0);
  }
  100% {
    transform: scale(0.92);
    opacity: 0;
  }
}
@keyframes idx-spark-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes idx-spark-ray {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
.spark-toggle__icon svg [stroke] {
  animation: idx-spark-ray 2.2s ease-in-out infinite;
}
.spark-toggle:hover .spark-toggle__icon,
.spark-toggle:focus-visible .spark-toggle__icon {
  animation: idx-spark-spin 0.85s linear infinite;
}
.spark-toggle[aria-expanded="true"] .spark-toggle__icon {
  animation: idx-spark-spin 1.1s linear infinite;
}
@media (max-width: 760px) {
  .spark-toggle::before { animation-duration: 3.2s; }
}
@media (prefers-reduced-motion: reduce) {
  .spark-toggle::before,
  .spark-toggle__icon,
  .spark-toggle__icon svg [stroke],
  .spark-toggle:hover .spark-toggle__icon,
  .spark-toggle:focus-visible .spark-toggle__icon,
  .spark-toggle[aria-expanded="true"] .spark-toggle__icon {
    animation: none !important;
  }
}

/* Language switcher */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.lang-switch a, .lang-switch span {
  color: var(--ink-soft);
  text-decoration: none;
  padding: 0.25rem 0.4rem;
  border-radius: 4px;
}
.lang-switch a:hover, .lang-switch a:focus-visible,
.lang-switch [aria-current="true"] {
  color: var(--ink);
  background: var(--paper-2);
}
.lang-switch [aria-current="true"] { color: var(--brass-dark); }
.site-footer .lang-switch a { color: rgba(247,245,242,0.75); }
.site-footer .lang-switch [aria-current="true"] { color: #f3c91a; background: transparent; }

/* Account link in header */

.header-cart {
  position: relative;
  display: inline-flex; /* always visible */

  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
  background: transparent;
  transition: color .2s, border-color .2s, background .2s;
}
.header-cart:hover {
  color: var(--ink);
  border-color: var(--line);
  background: var(--paper);
}
.header-cart__icon {
  display: flex;
  line-height: 0;
}
.header-cart__count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
}

.header-account {
  display: none;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink-soft);
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  border: 1px solid transparent;
}
.header-account:hover { color: var(--ink); border-color: var(--line); background: var(--paper); }
@media (min-width: 900px) {
  .header-account { display: inline-flex; }
}

/* Service card images always cover */
.service-card__media { background: #2a2a2a; }
.service-card__media img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: center;
  aspect-ratio: 16 / 11;
  display: block;
}

/* === WooCommerce My Account === */
.woocommerce-account .woocommerce,
.idx-account {
  max-width: 1100px;
  margin: 0 auto;
}
.woocommerce-MyAccount-navigation ul,
.idx-account__nav {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 1rem;
}
.woocommerce-MyAccount-navigation a,
.idx-account__nav a {
  display: inline-block;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: var(--white);
  border: 1px solid var(--line);
}
.woocommerce-MyAccount-navigation .is-active a,
.idx-account__nav a[aria-current="page"],
.woocommerce-MyAccount-navigation a:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.woocommerce-MyAccount-content,
.idx-account__panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem;
  box-shadow: var(--shadow);
}
.woocommerce form.login,
.woocommerce form.register,
.idx-account-form {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem;
  max-width: 420px;
}
.woocommerce form .form-row input.input-text,
.idx-account-form input[type="text"],
.idx-account-form input[type="email"],
.idx-account-form input[type="password"] {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font: inherit;
  margin-bottom: 0.85rem;
}
.woocommerce-orders-table,
.idx-orders-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}
.woocommerce-orders-table th,
.woocommerce-orders-table td,
.idx-orders-table th,
.idx-orders-table td {
  padding: 0.85rem 0.75rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.woocommerce-orders-table th,
.idx-orders-table th {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.idx-track-box {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.25rem;
  padding: 1.15rem;
  background: var(--paper);
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--brass);
}
.woocommerce-account .button,
.idx-account .btn { margin-top: 0.5rem; }

@media (min-width: 900px) {
  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 2rem;
    align-items: start;
  }
  .woocommerce-MyAccount-navigation ul {
    flex-direction: column;
    border-bottom: 0;
    border-right: 1px solid var(--line);
    padding-right: 1rem;
    padding-bottom: 0;
  }
}

/* Responsive polish — mega category grids handled above */
@media (max-width: 760px) {
  .site-header__inner {
    min-height: 72px;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.5rem;
  }
  .site-header__inner .spark-toggle { justify-self: center; }
  .site-header__actions { gap: 0.45rem; }
  .site-branding__logo--default, .site-branding__logo--default img, .site-branding__logo--default .custom-logo, .site-branding img.site-branding__logo--default { height: 40px; max-width: min(180px, 55vw); }
  .spark-toggle__icon { width: 36px; height: 36px; }
  .site-header.is-scrolled .site-header__inner { min-height: 56px; }
  .site-header.is-scrolled .site-branding__logo--scroll { height: 26px; max-width: min(128px, 50vw); }
  .site-branding__logo--default,
  .site-branding__logo--default img,
  .site-branding__logo--default .custom-logo,
  .site-branding img.site-branding__logo--default { height: 40px; max-width: min(180px, 55vw); }
  .site-header.is-scrolled .spark-toggle__icon { width: 26px; height: 26px; }
  .services-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr 1fr; gap: 0.65rem; }
  .booking-cards { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; gap: 1.5rem; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .hero__actions { flex-direction: column; align-items: stretch; }
  .hero__actions .btn { width: 100%; }
}
@media (max-width: 480px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .header-phone { display: none; }
}


/* === Back to top === */
.back-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1200;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 2px solid var(--navy);
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition:
    opacity .25s var(--ease),
    visibility .25s var(--ease),
    transform .25s var(--ease),
    background .2s var(--ease),
    color .2s var(--ease),
    border-color .2s var(--ease),
    box-shadow .2s var(--ease);
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.back-to-top:hover,
.back-to-top:focus-visible {
  background: #fff;
  color: var(--navy);
  border-color: var(--navy);
  box-shadow: 0 12px 32px rgba(15, 20, 58, 0.22);
}
.back-to-top:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
.back-to-top svg {
  display: block;
}
@media (max-width: 480px) {
  .back-to-top {
    right: 0.85rem;
    bottom: 0.85rem;
    width: 44px;
    height: 44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .back-to-top {
    transition: opacity .01ms, visibility .01ms, background .01ms, color .01ms, border-color .01ms;
    transform: none;
  }
}


/* === Content protect (deterrent only) === */
body.idx-protect,
body.idx-protect *:not(input):not(textarea):not([contenteditable="true"]):not(.allow-select) {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
body.idx-protect input,
body.idx-protect textarea,
body.idx-protect [contenteditable="true"],
body.idx-protect .allow-select,
body.idx-protect .allow-select * {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}
body.idx-protect img,
body.idx-protect picture,
body.idx-protect svg {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: auto;
}


/* === Molded / Challenge Coins page === */
.molded-page .molded-hero {
  position: relative;
  overflow: hidden;
  background: #0f143a;
  padding: 0 0 4.5rem;
  min-height: clamp(460px, 78vh, 760px);
  display: flex;
  align-items: center;
}
.molded-page .molded-hero::before { display: none; }
.molded-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.molded-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.molded-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(15,20,58,0.85);
}
.molded-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 4.5rem 0 4rem;
}
.molded-hero__lead {
  font-size: 1.35rem;
  max-width: 40ch;
  font-weight: 700;
  color: #f3c91a;
  margin-top: 0.35rem;
}
.molded-hero__note {
  color: rgba(247, 245, 242, 0.92);
  font-weight: 700;
  max-width: none;
  margin-top: 0.75rem;
}
.molded-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.molded-page .molded-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.25rem;
  z-index: 4;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: color 0.25s ease;
}
.molded-page .molded-hero__scroll:hover,
.molded-page .molded-hero__scroll:focus-visible {
  color: #8f1c2c;
  outline: none;
}
.molded-page .molded-hero__scroll-icon {
  display: block;
  width: 44px;
  height: 65px;
  animation: home-hero-scroll-bounce 1.8s ease-in-out infinite;
}
.molded-page .molded-hero__scroll-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.molded-page .molded-hero__scroll-dot {
  animation: home-hero-scroll-dot 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .molded-hero__video { display: none; }
  .molded-page .molded-hero__scroll-icon,
  .molded-page .molded-hero__scroll-dot { animation: none; }
}

.molded-overview .section__header {
  margin-bottom: 2.25rem;
}
.molded-info-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.15rem 1.25rem;
  align-items: stretch;
}
.molded-info-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.45rem 1.4rem 1.55rem;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  overflow: hidden;
  transition: transform 0.28s var(--ease), box-shadow 0.28s var(--ease), border-color 0.28s var(--ease);
}
.molded-info-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #f3c91a 0%, #f3c91a 42%, transparent 100%);
}
.molded-info-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(243, 201, 26, 0.55);
}
.molded-info-card:nth-child(1) { grid-column: span 7; min-height: 100%; }
.molded-info-card:nth-child(2) { grid-column: span 5; }
.molded-info-card:nth-child(3) { grid-column: span 5; }
.molded-info-card:nth-child(4) { grid-column: span 7; }
.molded-info-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.15rem;
}
.molded-info-card__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.55rem;
  height: 2.55rem;
  padding: 0 0.55rem;
  border-radius: 999px;
  background: var(--navy);
  color: #f3c91a;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
}
.molded-info-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 999px;
  background: rgba(243, 201, 26, 0.16);
  color: var(--navy);
  flex-shrink: 0;
}
.molded-info-card__icon svg {
  width: 1.55rem;
  height: 1.55rem;
  display: block;
}
.molded-info-card h3 {
  font-family: var(--font-head);
  font-size: clamp(1.12rem, 1.8vw, 1.35rem);
  font-weight: 600;
  color: var(--navy);
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.25;
}
.molded-info-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.62;
}
.molded-info-card--featured {
  background: linear-gradient(155deg, #12184a 0%, #0f143a 55%, #1a2158 100%);
  border-color: transparent;
  color: var(--white);
  box-shadow: 0 18px 42px rgba(15, 20, 58, 0.28);
}
.molded-info-card--featured::before {
  height: 4px;
  background: linear-gradient(90deg, #f3c91a, #8f1c2c 70%, transparent);
}
.molded-info-card--featured:hover {
  border-color: rgba(243, 201, 26, 0.45);
}
.molded-info-card--featured .molded-info-card__num {
  background: #f3c91a;
  color: var(--navy);
}
.molded-info-card--featured .molded-info-card__icon {
  background: rgba(243, 201, 26, 0.18);
  color: #f3c91a;
}
.molded-info-card--featured h3 {
  color: var(--white);
  font-size: clamp(1.25rem, 2.1vw, 1.55rem);
}
.molded-info-card--featured p {
  color: rgba(255, 255, 255, 0.82);
  font-size: 1rem;
}
.molded-info-card--accent {
  background:
    linear-gradient(var(--white), var(--white)) padding-box,
    linear-gradient(135deg, rgba(243, 201, 26, 0.55), rgba(143, 28, 44, 0.28)) border-box;
  border: 1px solid transparent;
}
.molded-info-card--accent .molded-info-card__num {
  background: #8f1c2c;
  color: var(--white);
}
@media (prefers-reduced-motion: reduce) {
  .molded-info-card,
  .molded-info-card:hover { transform: none; transition: none; }
}

.molded-showcase__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.85rem;
}
.molded-showcase__item {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: #12163f;
  aspect-ratio: 1 / 1;
  box-shadow: var(--shadow);
}
.molded-showcase__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.molded-showcase__item:hover img { transform: scale(1.06); }

/* 1.8.220 — molded process card styles live near end of file (.molded-process-section) */

.molded-fee-callout {
  background: linear-gradient(135deg, #0f143a, #1e2450);
  color: var(--paper);
  border-radius: var(--radius);
  padding: 2rem 2.1rem;
  box-shadow: var(--shadow-lg);
  max-width: 820px;
  border-left: 4px solid #f3c91a;
}
.molded-fee-callout__lead {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--white);
  margin: 0 0 1rem;
}
.molded-fee-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.molded-fee-list li {
  padding: 0.65rem 0.85rem;
  background: rgba(255,255,255,0.06);
  border-radius: var(--radius-sm);
  color: rgba(247,245,242,0.82);
  font-size: 0.98rem;
}
.molded-fee-list strong { color: var(--white); margin-right: 0.35rem; }

/* 1.8.194 — Molded catalog: full-width section with 40px side padding (5-col retained) */
.molded-types-section {
  width: 100%;
  max-width: none;
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box;
}
.molded-types-section > .container,
.molded-types-section > .container--full {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.molded-types-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1.25rem;
}
.molded-type-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.molded-type-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}
.molded-type-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #12163f;
  overflow: hidden;
}
.molded-type-card__media img,
.molded-type-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.molded-type-card__img--hover {
  opacity: 0;
  transition: opacity 0.4s ease;
}
.molded-type-card:hover .molded-type-card__img--hover,
.molded-type-card:focus-within .molded-type-card__img--hover {
  opacity: 1;
}
.molded-type-card__body { padding: 1.15rem 1.2rem 1.4rem; flex: 1; }
.molded-type-card h3 { font-size: 1.15rem; margin-bottom: 0.4rem; }
.molded-type-card p { margin: 0; color: var(--muted); font-size: 0.92rem; }


.molded-thumb-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.85rem;
}
.molded-thumb {
  margin: 0;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  text-align: center;
}
.molded-thumb__media {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #12163f;
}
.molded-thumb__media img,
.molded-thumb img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
  display: block;
}
.molded-thumb__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.molded-thumb:hover .molded-thumb__video,
.molded-thumb:focus-within .molded-thumb__video,
.molded-thumb.is-playing .molded-thumb__video {
  opacity: 1;
}
.molded-thumb figcaption {
  padding: 0.55rem 0.4rem 0.7rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
}

/* Plating swatches: 5-col, show whole coin (no crop) */
.molded-thumb-grid--plates { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.molded-thumb-grid--plates .molded-thumb__media { background: #f4f5f8; }
.molded-thumb-grid--plates .molded-thumb img {
  object-fit: contain;
  background: #f4f5f8;
}

.molded-texture-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1.25rem;
}
.molded-texture-benefits li {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0.85rem 1rem;
  color: var(--muted);
  font-size: 0.95rem;
  border-left: 3px solid #8f1c2c;
}
.molded-texture-band {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  margin-bottom: 1.5rem;
}
.molded-texture-band__img,
.molded-texture-band img {
  width: 100%;
  height: auto;
  display: block;
}
.molded-texture-list {
  list-style: none;
  padding: 0;
  margin: 1.25rem 0 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1.25rem;
}
.molded-texture-list li {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0.75rem 0.9rem;
  color: var(--muted);
  font-size: 0.92rem;
}
.molded-texture-list strong {
  color: #f3c91a;
  background: #0f143a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  height: 1.6rem;
  border-radius: 999px;
  margin-right: 0.45rem;
  font-size: 0.78rem;
}
.molded-note {
  color: var(--muted);
  font-size: 0.98rem;
  max-width: 70ch;
}

/* 1.8.185 — extras: undo +60px sizing; full-width section with 40px side padding */
.molded-extras-section {
  width: 100%;
  max-width: none;
  padding-left: 40px !important;
  padding-right: 40px !important;
  box-sizing: border-box;
}
.molded-extras-section > .container,
.molded-extras-section > .container--full {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.molded-extras-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.molded-extra-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.molded-extra-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #12163f;
  overflow: hidden;
}
.molded-extra-card__media img,
.molded-extra-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.molded-extra-card__img--hover {
  opacity: 0;
  transition: opacity 0.4s ease;
}
.molded-extra-card:hover .molded-extra-card__img--hover,
.molded-extra-card:focus-within .molded-extra-card__img--hover {
  opacity: 1;
}
.molded-extra-card__body { padding: 0.9rem 0.95rem 1.1rem; }
.molded-extra-card h3 { font-size: 1rem; margin-bottom: 0.25rem; }
.molded-extra-card__meta {
  margin: 0;
  color: var(--muted);
  font-size: 0.85rem;
}

/* 1.8.186 — Molded packaging / Presentation redesign */
.molded-pack-section {
  background:
    linear-gradient(180deg, #f7f8fc 0%, #ffffff 42%, #ffffff 100%);
}
.molded-pack-section__header {
  text-align: left;
  max-width: none;
}
.molded-pack-section__header .section__lead {
  max-width: 54ch;
}
.molded-pack-section__header #pack-heading.idx-oneline-heading {
  position: relative;
  padding-bottom: 0.55rem;
  margin-bottom: 0.75rem;
}
.molded-pack-section__header #pack-heading.idx-oneline-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3.25rem;
  height: 3px;
  border-radius: 999px;
  background: #f3c91a;
}
.molded-pack-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}
.molded-pack-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  background: var(--white);
  border: 1px solid rgba(15, 20, 58, 0.12);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.28s var(--ease), box-shadow 0.28s var(--ease), border-color 0.28s var(--ease);
}
.molded-pack-card:hover,
.molded-pack-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(15, 20, 58, 0.28);
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.12);
}
.molded-pack-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background:
    radial-gradient(circle at 50% 40%, #ffffff 0%, #eef0f7 70%, #e4e7f2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.15rem;
  border-bottom: 1px solid rgba(15, 20, 58, 0.06);
}
.molded-pack-card__media img,
.molded-pack-card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
.molded-pack-card__body {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0.95rem 0.9rem 1.15rem;
  min-height: 3.6rem;
  background: var(--white);
}
.molded-pack-card__title {
  margin: 0;
  font-family: var(--font-head);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--navy);
  letter-spacing: -0.01em;
}
/* legacy figure class kept harmless if cached */
.molded-pack {
  margin: 0;
}
@media (prefers-reduced-motion: reduce) {
  .molded-pack-card:hover,
  .molded-pack-card:focus-within {
    transform: none;
  }
}

/* 1.8.188 — Molded purpose: cover fill + full-width 40px side padding (4-col polish retained) */
.molded-purpose-section {
  width: 100%;
  max-width: none;
  padding-left: 40px !important;
  padding-right: 40px !important;
  box-sizing: border-box;
}
.molded-purpose-section > .container,
.molded-purpose-section > .container--full {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.molded-purpose-section__header {
  text-align: left;
  max-width: none;
}
.molded-purpose-section__header .section__lead {
  max-width: 58ch;
}
.molded-purpose-section__header #purpose-heading.idx-oneline-heading {
  position: relative;
  padding-bottom: 0.55rem;
  margin-bottom: 0.75rem;
}
.molded-purpose-section__header #purpose-heading.idx-oneline-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3.25rem;
  height: 3px;
  border-radius: 999px;
  background: #f3c91a;
}
.molded-purpose-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.15rem;
  align-items: stretch;
}
.molded-purpose-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  border: 1px solid rgba(15, 20, 58, 0.12);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.28s var(--ease), box-shadow 0.28s var(--ease), border-color 0.28s var(--ease);
}
.molded-purpose-card:hover,
.molded-purpose-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(15, 20, 58, 0.28);
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.12);
}
.molded-purpose-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #12163f;
  display: block;
  padding: 0;
  overflow: hidden;
  border-bottom: 1px solid rgba(15, 20, 58, 0.06);
}
.molded-purpose-card__media img,
.molded-purpose-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.molded-purpose-card__body {
  padding: 1rem 1.05rem 1.2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--white);
}
.molded-purpose-card__title,
.molded-purpose-card h3 {
  font-family: var(--font-head);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--navy);
  margin: 0 0 0.4rem;
}
.molded-purpose-card__price {
  margin: 0 0 0.65rem;
  color: #0f143a;
  font-weight: 700;
  font-size: 1.2rem;
}
.molded-purpose-card__price span {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.2rem;
}
.molded-purpose-card__price small {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}
.molded-purpose-card__blurb,
.molded-purpose-card__body > p:last-child {
  margin: 0;
  margin-top: auto;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.5;
}
@media (max-width: 1100px) {
  .molded-purpose-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .molded-purpose-card:hover,
  .molded-purpose-card:focus-within {
    transform: none;
  }
}

.molded-close--split {
  padding-left: 40px;
  padding-right: 40px;
}
.molded-close__split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  width: 100%;
  max-width: none;
}
.molded-close__media {
  position: relative;
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: #0a0d24;
  min-height: min(62vh, 640px);
  box-shadow: var(--shadow);
}
.molded-close__video {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(62vh, 640px);
  object-fit: cover;
  object-position: center;
}
.molded-close__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.molded-close__header {
  text-align: left;
  max-width: none;
  margin: 0 0 1.25rem;
}
.molded-close__header .section__lead {
  margin-bottom: 0;
}
.molded-close-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
.molded-close-gallery__item {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: #12163f;
}
.molded-close-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.molded-close .cta-band { align-items: flex-start; }
.molded-close__contact {
  margin-top: 1rem !important;
  font-size: 1.05rem;
}
.molded-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.molded-close__contact a:hover { color: var(--brass); }

@media (max-width: 960px) {
  .molded-close__split {
    grid-template-columns: 1fr;
  }
  .molded-close__media,
  .molded-close__video {
    min-height: min(48vh, 420px);
  }
  .molded-close__header {
    text-align: center;
  }
}
@media (max-width: 560px) {
  .molded-close--split {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .molded-close__video { display: none; }
  .molded-close__media {
    background-size: cover;
    background-position: center;
    background-image: var(--molded-close-poster, none);
  }
}

@media (max-width: 1024px) {
  .molded-showcase__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .molded-types-grid,
  .molded-purpose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .molded-thumb-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .molded-extras-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .molded-pack-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .molded-close-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .molded-info-card:nth-child(1),
  .molded-info-card:nth-child(2),
  .molded-info-card:nth-child(3),
  .molded-info-card:nth-child(4) { grid-column: span 6; }
}
@media (max-width: 720px) {
  .molded-info-grid { grid-template-columns: 1fr; }
  .molded-info-card:nth-child(1),
  .molded-info-card:nth-child(2),
  .molded-info-card:nth-child(3),
  .molded-info-card:nth-child(4) { grid-column: auto; }
  .molded-types-grid,
  .molded-purpose-grid,
  .molded-texture-list,
  .molded-texture-benefits { grid-template-columns: 1fr; }
  .molded-thumb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .molded-extras-grid,
  .molded-pack-grid,
  .molded-showcase__grid,
  .molded-close-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .molded-fee-callout { padding: 1.5rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .molded-type-card:hover,
  .molded-purpose-card:hover,
  .molded-showcase__item:hover img { transform: none; }
  .molded-extra-card__img--hover,
  .molded-type-card__img--hover { transition: none; }
  .molded-thumb__video {
    display: none !important;
    transition: none;
  }
}

/* ==========================================================================
   Metal page (fiber laser)
   ========================================================================== */
.metal-page .metal-hero {
  position: relative;
  overflow: hidden;
  background: #0f143a;
  padding: 0 0 4.5rem;
  min-height: clamp(460px, 78vh, 760px);
  display: flex;
  align-items: center;
}
.metal-page .metal-hero::before { display: none; }
.metal-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.metal-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.metal-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.65);
}
.metal-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 4.5rem 0 4rem;
}
.metal-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.metal-hero__lead {
  font-size: 1.25rem;
  max-width: 40ch;
  font-weight: 600;
  color: #f3c91a;
}
.metal-hero__note {
  color: rgba(247, 245, 242, 0.78);
  max-width: 48ch;
  margin-top: 0.75rem;
}
.metal-hero__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  margin: 1.35rem 0 0;
}
.metal-hero__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #fff;
  border-radius: 999px;
  transition: color 0.25s ease, transform 0.25s ease;
}
.metal-hero__social-link svg {
  display: block;
  width: 25px;
  height: 25px;
}
.metal-hero__social-link:hover,
.metal-hero__social-link:focus-visible {
  color: #8f1c2c;
  transform: translateY(-4px);
  outline: none;
}
.metal-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.15rem;
}
.metal-page .metal-hero .hero__eyebrow {
  font-size: calc(0.8rem + 2px);
}
.metal-page .metal-hero .hero__eyebrow::before {
  width: calc(28px + 2px);
  height: calc(1px + 2px);
}
.metal-hero__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
}
.metal-hero__media img,
.metal-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .metal-hero__video { display: none; }
}
.metal-page .metal-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.25rem;
  z-index: 4;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: color 0.25s ease;
}
.metal-page .metal-hero__scroll:hover,
.metal-page .metal-hero__scroll:focus-visible {
  color: #8f1c2c;
  outline: none;
}
.metal-page .metal-hero__scroll-icon {
  display: block;
  width: 44px;
  height: 65px;
  animation: home-hero-scroll-bounce 1.8s ease-in-out infinite;
}
.metal-page .metal-hero__scroll-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.metal-page .metal-hero__scroll-dot {
  animation: home-hero-scroll-dot 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .metal-page .metal-hero__scroll-icon,
  .metal-page .metal-hero__scroll-dot {
    animation: none;
  }
}

.metal-industry-chips,
.metal-gift-chips {
  list-style: none;
  margin: 1.15rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.metal-industry-chips li,
.metal-gift-chips li {
  position: relative;
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.14);
  color: #0f143a;
  font-weight: 700;
  font-size: 0.72rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.5rem 0.9rem 0.5rem 1.05rem;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(15, 20, 58, 0.05);
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease), color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.metal-industry-chips li::before,
.metal-gift-chips li::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 50%;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 999px;
  transform: translateY(-50%);
}
.metal-gift-chips li::before {
  background: #f3c91a;
  box-shadow: 0 0 0 2px rgba(243, 201, 26, 0.25);
}
.metal-industry-chips li::before {
  background: #8f1c2c;
  box-shadow: 0 0 0 0 rgba(143, 28, 44, 0.55);
  animation: metal-chip-dot-pulse 1.6s ease-out infinite;
}
@keyframes metal-chip-dot-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(143, 28, 44, 0.55);
  }
  70% {
    box-shadow: 0 0 0 6px rgba(143, 28, 44, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(143, 28, 44, 0);
  }
}
.metal-industry-chips li {
  padding-left: 1.35rem;
}
.metal-industry-chips li:hover,
.metal-gift-chips li:hover {
  background: #0f143a;
  border-color: #0f143a;
  color: #fff;
  box-shadow: 0 8px 20px rgba(15, 20, 58, 0.18);
}
.metal-industry-chips li:hover::before {
  background: #8f1c2c;
  box-shadow: 0 0 0 0 rgba(143, 28, 44, 0.55);
}
@media (prefers-reduced-motion: reduce) {
  .metal-industry-chips li::before {
    animation: none;
    box-shadow: 0 0 0 2px rgba(143, 28, 44, 0.25);
  }
}
.metal-gift-chips li { background: #fff; }
.metal-split__copy .metal-industry-chips { margin-bottom: 1.25rem; }

.metal-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.15rem;
}
.metal-service-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.metal-service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(15, 20, 58, 0.12);
}
.metal-service-card__link {
  display: flex;
  flex-direction: column;
  flex: 1;
  color: inherit;
  text-decoration: none;
}
.metal-service-card__link:hover,
.metal-service-card__link:focus-visible {
  color: inherit;
}
.metal-service-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0f143a;
}
.metal-service-card__media img,
.metal-service-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.metal-service-card__img--hover {
  opacity: 0;
  transition: opacity 0.4s ease;
}
.metal-service-card:hover .metal-service-card__img--hover,
.metal-service-card:focus-within .metal-service-card__img--hover {
  opacity: 1;
}
.metal-service-card__body { padding: 1rem 1.05rem 1.2rem; flex: 1; }
.metal-service-card h3 { font-size: 1.05rem; margin-bottom: 0.35rem; }
.metal-service-card p { margin: 0; color: var(--muted); font-size: 0.88rem; line-height: 1.45; }

.metal-page #services.metal-services--video {
  position: relative;
  overflow: hidden;
  background: #000;
  color: #fff;
}
.metal-page #services .metal-services__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.metal-page #services .metal-services__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.metal-page #services .metal-services__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.65); /* match home hero */
}
.metal-page #services > .container--full.metal-services__content {
  position: relative;
  z-index: 2;
  padding-left: 80px;
  padding-right: 80px;
  box-sizing: border-box;
}
.metal-page #services > .container--full .section__header {
  display: block;
  width: min(100%, 1100px);
  max-width: 1100px;
  margin-inline: auto;
  margin-bottom: 1.75rem;
}
.metal-page #services > .container--full .section__header .section__eyebrow {
  display: block;
  margin: 0 0 0.75rem;
  font-weight: 700;
  font-size: calc(0.78rem + 2pt);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #f3c91a; /* theme yellow — 1st row */
}
.metal-page #services > .container--full .section__header #services-heading {
  display: block;
  margin: 0 0 0.75rem;
  font-weight: 600;
  font-size: clamp(1.9rem, 3.5vw, 2.75rem);
  letter-spacing: -0.01em;
  color: #fff;
}
.metal-page #services > .container--full .section__header .section__lead {
  display: block;
  margin: 0;
  font-weight: 700;
  color: #fff;
  font-size: 1.05rem;
}
@media (max-width: 720px) {
  .metal-page #services > .container--full.metal-services__content {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .metal-page #services .metal-services__video {
    /* paused via browser/OS preference; poster remains */
  }
}

.metal-soon-badge {
  position: absolute;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  background: rgba(143, 28, 44, 0.92);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  padding: 0.45rem 0.6rem;
  border-radius: 0.4rem;
  line-height: 1.25;
}
.metal-soon-banner {
  display: inline-block;
  margin-top: 1.25rem;
  background: var(--red, #8f1c2c);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.85rem;
  padding: 0.65rem 1.1rem;
  border-radius: 0.45rem;
}
.metal-soon-inline {
  display: inline-block;
  background: rgba(143, 28, 44, 0.1);
  color: #8f1c2c;
  border: 1px solid rgba(143, 28, 44, 0.28);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  margin: 0 0 0.85rem;
}

.metal-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.metal-split--flip { grid-template-columns: 0.95fr 1.05fr; }
.metal-split__media {
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
}
.metal-split__media:empty {
  box-shadow: none;
  border-radius: 0;
  min-height: 0;
  padding: 0;
}
.metal-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.metal-media-slider {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  border-radius: var(--radius);
  border: 1px solid rgba(15, 20, 58, 0.12);
  box-shadow: var(--shadow);
}
.metal-media-slider__viewport {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 0;
  background: var(--ink);
}
/* Unserialized + Classics: one 4-col row */
.metal-page #lowers.section.metal-dual-row {
  padding: 40px 80px !important;
  box-sizing: border-box;
}
.metal-page #lowers .metal-dual-row__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}
.metal-page #lowers.metal-dual-row .metal-split__copy,
.metal-page #lowers.metal-dual-row .metal-split__media {
  padding: 12px;
  box-sizing: border-box;
  min-width: 0;
}
.metal-page #lowers.metal-dual-row .metal-split__media {
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}
.metal-page #lowers.metal-dual-row .metal-media-slider {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  background: var(--ink);
  border-radius: var(--radius);
  border: 1px solid rgba(15, 20, 58, 0.16);
  box-shadow: var(--shadow);
}
.metal-page #lowers.metal-dual-row .metal-media-slider__slide img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center;
}
.metal-page #lowers.metal-dual-row .metal-split__copy--compact {
  max-width: none;
  width: 100%;
  justify-self: stretch;
  padding: 12px !important;
}
.metal-page #lowers.metal-dual-row .metal-split__copy h2 {
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  margin-bottom: 0.65rem;
}
.metal-page #lowers.metal-dual-row .metal-split__copy p {
  font-size: 0.95rem;
  line-height: 1.45;
}

@media (max-width: 1100px) {
  .metal-page #lowers .metal-dual-row__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 720px) {
  .metal-page #lowers.section.metal-dual-row {
    padding: 40px 1.25rem !important;
  }
  .metal-page #lowers .metal-dual-row__grid {
    grid-template-columns: 1fr;
  }
}

.metal-media-slider__track {
  position: relative;
  width: 100%;
  height: 100%;
}
.metal-media-slider__slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.45s ease, visibility 0.45s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.metal-media-slider__slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}

.metal-media-slider__slide img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.metal-media-slider__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 20, 58, 0.78);
  color: #f3c91a;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 0;
  transition: background 0.2s var(--ease), color 0.2s var(--ease);
}
.metal-media-slider__nav:hover,
.metal-media-slider__nav:focus-visible {
  background: var(--ink);
  color: #f3c91a;
  outline: 2px solid #f3c91a;
  outline-offset: 2px;
}
.metal-media-slider__nav--prev { left: 0.65rem; }
.metal-media-slider__nav--next { right: 0.65rem; }
.metal-media-slider__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.7rem;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 0.4rem;
}
.metal-media-slider__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: background 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.metal-media-slider__dot.is-active {
  background: #f3c91a;
  box-shadow: 0 0 0 1px rgba(15, 20, 58, 0.35);
}
@media (prefers-reduced-motion: reduce) {
  .metal-media-slider__slide { transition: none; }
}


.metal-split__copy h2 { margin-bottom: 0.85rem; }
.metal-split__copy p { color: var(--muted); }
.metal-split__copy .btn { margin-top: 0.75rem; }
.metal-split__copy .metal-hero__actions { margin-top: 1rem; }
.metal-split__copy .metal-hero__actions .btn { margin-top: 0; }

.metal-check-list {
  list-style: none;
  margin: 1rem 0;
  padding: 0;
}
.metal-check-list li {
  position: relative;
  padding: 0.35rem 0 0.35rem 1.45rem;
  color: var(--ink);
  font-size: 0.95rem;
}
.metal-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--red, #8f1c2c);
}


/* ========== Metal — Personalization (laser shop) ========== */
.metal-page .metal-personalize {
  position: relative;
  background-color: #0a0d24;
  background-image:
    radial-gradient(ellipse 80% 70% at 0% 0%, #272c67 0%, transparent 58%),
    radial-gradient(ellipse 75% 65% at 100% 0%, #1a1f4a 0%, transparent 55%),
    radial-gradient(ellipse 80% 70% at 100% 100%, #0f143a 0%, transparent 58%),
    radial-gradient(ellipse 70% 60% at 0% 100%, #12183a 0%, transparent 55%);
  color: #f7f5f2;
  overflow: hidden;
  padding-top: calc(clamp(3.75rem, 8vw, 6.75rem) - 20px);
  padding-bottom: clamp(3.75rem, 8vw, 6.75rem);
}
/* Same faint diamond lattice as footer — parallax via --personalize-parallax */
.metal-page .metal-personalize::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  height: auto;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
  transform: translate3d(0, var(--personalize-parallax, 0px), 0);
}
@media (prefers-reduced-motion: reduce) {
  .metal-page .metal-personalize::before {
    top: 0;
    bottom: 0;
    will-change: auto;
    transform: none;
  }
}
.metal-page .metal-personalize__glow {
  position: absolute;
  inset: -20% -10% auto;
  height: 55%;
  background:
    radial-gradient(ellipse 55% 60% at 15% 40%, rgba(243, 201, 26, 0.16), transparent 70%),
    radial-gradient(ellipse 45% 50% at 85% 20%, rgba(143, 28, 44, 0.14), transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.metal-page .metal-personalize > .container,
.metal-page .metal-personalize > .container--full {
  position: relative;
  z-index: 1;
}
.metal-page .metal-personalize > .container--full {
  width: min(100% - 0px, 100%);
  max-width: none;
  margin-inline: auto;
  padding-left: 80px;
  padding-right: 80px;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .metal-page .metal-personalize > .container--full {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
.metal-page .metal-personalize__intro {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: center;
  margin-bottom: clamp(2.25rem, 5vw, 3.5rem);
}
.metal-page .metal-personalize__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  justify-content: center;
  padding-inline: 0;
  margin-left: 100px;
}
@media (max-width: 1024px) {
  .metal-page .metal-personalize__copy {
    margin-left: 0;
  }
  .metal-page .metal-personalize__feature {
    margin-left: 0;
  }
}
.metal-page .metal-personalize__eyebrow {
  color: #f3c91a !important;
  margin-bottom: 0.85rem;
}
.metal-page .metal-personalize__copy h2 {
  color: #fff;
  margin: 0 0 1rem;
  max-width: 18ch;
  line-height: 1.1;
  text-align: left;
}
.metal-page .metal-personalize__lead {
  color: rgba(247, 245, 242, 0.78);
  font-size: 1.08rem;
  line-height: 1.55;
  max-width: min(100%, 58ch);
  margin: 0 0 1.6rem;
  text-align: left;
}
.metal-page .metal-personalize__lead-line {
  display: block;
}
.metal-page .metal-personalize__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: flex-start;
}
.metal-page .metal-personalize__ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.metal-page .metal-personalize__ghost:hover {
  background: #fff;
  color: #0f143a;
  border-color: #fff;
}
.metal-page .metal-personalize__feature {
  margin: 0;
  margin-left: -105px; /* was -60; +45px further left */
  position: relative;
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(243, 201, 26, 0.28);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.04) inset,
    0 24px 50px rgba(0, 0, 0, 0.35);
}
.metal-page .metal-personalize__feature-img,
.metal-page .metal-personalize__feature img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.metal-page .metal-personalize__feature-cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.95rem 1.1rem;
  background: linear-gradient(to top, rgba(15, 20, 58, 0.92), rgba(15, 20, 58, 0.15));
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.metal-page .metal-personalize__spark {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #f3c91a;
  box-shadow: 0 0 12px rgba(243, 201, 26, 0.85);
  flex-shrink: 0;
}
.metal-page .metal-personalize__board {
  margin-bottom: 2rem;
  padding: 1.35rem 1.5rem 1.5rem;
  border: 1px solid rgba(15, 20, 58, 0.1);
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 20, 58, 0.12);
  color: #0f143a;
}
.metal-page .metal-personalize__board-head {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(15, 20, 58, 0.12);
}
.metal-page .metal-personalize__materials-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8f1c2c; /* deep maroon on white — readable accent */
}
.metal-page .metal-personalize__board-title {
  margin: 0;
  color: #0f143a;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  letter-spacing: -0.01em;
}
.metal-page .metal-personalize__board-note {
  margin: 0.15rem 0 0;
  max-width: 62ch;
  color: rgba(15, 20, 58, 0.72);
  font-size: 0.95rem;
  line-height: 1.5;
}
.metal-page .metal-personalize__index {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 1.75rem;
}
.metal-page .metal-personalize__index-col {
  min-width: 0;
}
.metal-page .metal-personalize__index-heading {
  margin: 0 0 0.65rem;
  padding-bottom: 0.45rem;
  border-bottom: 2px solid #f3c91a;
  color: #0f143a;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.metal-page .metal-personalize__index-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.metal-page .metal-personalize__index-list li {
  margin: 0;
  padding: 0.55rem 0 0.55rem 0.95rem;
  position: relative;
  border-bottom: 1px solid rgba(15, 20, 58, 0.1);
  color: rgba(15, 20, 58, 0.88);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.35;
}
.metal-page .metal-personalize__index-list li:last-child {
  border-bottom: 0;
}
.metal-page .metal-personalize__index-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: calc(0.35rem - 1px); /* 1px smaller than prior shop-index dots */
  height: calc(0.35rem - 1px);
  transform: translateY(-50%);
  border-radius: 1px;
  background: #8f1c2c;
  flex-shrink: 0;
  box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  animation: site-nav-sep-glow 2.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .metal-page .metal-personalize__index-list li::before {
    animation: none;
    opacity: 1;
    box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  }
}
@media (max-width: 900px) {
  .metal-page .metal-personalize__index {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .metal-page .metal-personalize__board {
    padding: 1.1rem 1rem 1.2rem;
  }
  .metal-page .metal-personalize__index {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
}

.metal-page .metal-personalize__mosaic {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: minmax(0, auto);
  gap: 0.9rem;
  align-items: stretch;
}
.metal-page .metal-personalize__tile {
  position: relative;
  margin: 0;
  border-radius: 1rem;
  overflow: hidden;
  background: #1a1f4a;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.28);
  min-height: 0;
}
.metal-page .metal-personalize__tile--lg {
  grid-column: span 6;
  grid-row: span 2;
  aspect-ratio: 4 / 3;
  min-height: 280px;
}
.metal-page .metal-personalize__tile--md {
  grid-column: span 3;
  aspect-ratio: 1 / 1;
  min-height: 180px;
}
.metal-page .metal-personalize__tile--wide {
  grid-column: span 6;
  aspect-ratio: 21 / 9;
  min-height: 160px;
}
.metal-page .metal-personalize__tile--sm {
  grid-column: span 3;
  aspect-ratio: 5 / 4;
  min-height: 150px;
}
.metal-page .metal-personalize__tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s ease;
}
.metal-page .metal-personalize__tile figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.15rem 1rem 0.9rem;
  background: linear-gradient(to top, rgba(15, 20, 58, 0.92) 10%, rgba(15, 20, 58, 0.35) 70%, transparent);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.metal-page .metal-personalize__tile figcaption span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.metal-page .metal-personalize__tile figcaption span::before {
  content: "";
  width: 0.9rem;
  height: 2px;
  background: #f3c91a;
  flex-shrink: 0;
}
.metal-page .metal-personalize__tile:hover img,
.metal-page .metal-personalize__tile:focus-within img {
  transform: scale(1.06);
}
.metal-page .metal-personalize__tile:focus-within {
  outline: 2px solid #f3c91a;
  outline-offset: 3px;
}
@media (max-width: 1024px) {
  .metal-page .metal-personalize__intro {
    grid-template-columns: 1fr;
  }
  .metal-page .metal-personalize__feature {
    margin-left: 0;
  }
  .metal-page .metal-personalize__mosaic {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.75rem;
  }
  .metal-page .metal-personalize__tile--lg {
    grid-column: span 6;
    aspect-ratio: 16 / 10;
    min-height: 220px;
  }
  .metal-page .metal-personalize__tile--md {
    grid-column: span 3;
    min-height: 160px;
  }
  .metal-page .metal-personalize__tile--wide {
    grid-column: span 6;
    aspect-ratio: 2.2 / 1;
    min-height: 140px;
  }
  .metal-page .metal-personalize__tile--sm {
    grid-column: span 3;
    min-height: 140px;
  }
}
@media (max-width: 720px) {
  .metal-page .metal-personalize__mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
  .metal-page .metal-personalize__tile--lg,
  .metal-page .metal-personalize__tile--md,
  .metal-page .metal-personalize__tile--wide,
  .metal-page .metal-personalize__tile--sm {
    grid-column: span 1;
    grid-row: auto;
    aspect-ratio: 4 / 3;
    min-height: 140px;
  }
  .metal-page .metal-personalize__tile--lg,
  .metal-page .metal-personalize__tile--wide {
    grid-column: span 2;
    aspect-ratio: 16 / 10;
  }
}
@media (prefers-reduced-motion: reduce) {
  .metal-page .metal-personalize__tile:hover img,
  .metal-page .metal-personalize__tile:focus-within img {
    transform: none;
  }
}

.metal-thumb-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1.75rem;
}
.metal-thumb {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
}
.metal-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.metal-thumb figcaption {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.45rem 0.55rem 0.6rem;
  color: var(--muted);
  text-align: center;
}


.metal-scroll-anchor {
  display: block;
  position: relative;
  top: 0;
  height: 0;
  width: 0;
  overflow: hidden;
  scroll-margin-top: 6rem;
}
.metal-firearms-intro { text-align: center; }
.metal-firearms-intro__lead {
  max-width: 68ch;
  margin: 0.75rem auto 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1.05rem;
}
.metal-firearms-intro__sub {
  max-width: 52ch;
  margin: 1rem auto 0;
  color: rgba(247, 245, 242, 0.7);
  font-size: 0.95rem;
}
.metal-firearms-intro__actions {
  justify-content: center;
  margin-top: 1.35rem;
}
.metal-firearms-intro .btn--ghost {
  border-color: rgba(243, 201, 26, 0.55);
  color: #f3c91a;
}
.metal-firearms-intro .btn--ghost:hover {
  background: rgba(243, 201, 26, 0.12);
  border-color: #f3c91a;
  color: #f3c91a;
}

.metal-atf-note {
  margin-top: 1rem;
  padding: 0.9rem 1rem;
  background: rgba(15, 20, 58, 0.04);
  border-left: 3px solid #f3c91a;
  border-radius: 0 0.5rem 0.5rem 0;
  font-size: 0.9rem;
  color: var(--ink);
}
.metal-atf-note a {
  color: var(--red, #8f1c2c);
  font-weight: 600;
  text-decoration: underline;
}


/* MAGA-Zines — flag background */
.metal-page .metal-magazines {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #0a0d24;
  color: #f7f5f2;
}
/* Flag photo — parallax via --magazines-parallax */
.metal-page .metal-magazines::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/metal/magazines-flag-bg.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  transform: translate3d(0, var(--magazines-parallax, 0px), 0);
}
.metal-page .metal-magazines::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(10, 13, 36, 0.72) 0%, rgba(10, 13, 36, 0.55) 45%, rgba(10, 13, 36, 0.78) 100%),
    radial-gradient(ellipse 70% 60% at 80% 20%, rgba(143, 28, 44, 0.18), transparent 65%);
}
.metal-page .metal-magazines > .container--full {
  position: relative;
  z-index: 2;
  width: min(100% - 0px, 100%);
  max-width: none;
  margin-inline: auto;
  padding-left: 100px;
  padding-right: 100px;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .metal-page .metal-magazines > .container--full {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .metal-page .metal-magazines::after {
    top: 0;
    bottom: 0;
    will-change: auto;
    transform: none;
  }
}
.metal-page .metal-magazines .section__eyebrow {
  color: #f3c91a;
}
.metal-page .metal-magazines .section__header h2,
.metal-page .metal-magazines #mags-heading {
  color: #fff;
}
.metal-page .metal-magazines .section__lead,
.metal-page .metal-magazines .metal-mag-info p {
  color: rgba(247, 245, 242, 0.82);
}
.metal-page .metal-magazines .metal-price-pills li {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.35);
  color: #0f143a;
}
.metal-page .metal-magazines .btn--ghost {
  border-color: rgba(243, 201, 26, 0.55);
  color: #f3c91a;
}
.metal-page .metal-magazines .btn--ghost:hover {
  background: rgba(243, 201, 26, 0.12);
  border-color: #f3c91a;
  color: #f3c91a;
}
.metal-mag-info {
  max-width: 70ch;
  margin-bottom: 1.5rem;
}
.metal-mag-info p { color: var(--muted); }

.metal-price-pills--below {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
  margin: 1.5rem 0 0.5rem;
  padding: 0;
  list-style: none;
}
.metal-price-pills {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 1rem 0 0;
  padding: 0;
}
.metal-price-pills li {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.1);
  border-radius: 999px;
  padding: 0.45rem 0.95rem;
  font-size: 0.9rem;
  font-weight: 600;
}
.metal-price-pills strong { color: var(--red, #8f1c2c); margin-right: 0.25rem; }

.metal-mag-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.85rem;
}
.metal-mag {
  margin: 0;
  background: #fff;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
}
.metal-mag img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.metal-mag figcaption {
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.5rem 0.55rem 0.65rem;
  text-align: center;
  color: var(--ink);
}
.metal-credit {
  margin-top: 1rem;
  color: var(--muted);
}



/* Tumblers: Classics-style 2-col + slider */
.metal-page #tumblers.section.metal-tumblers-split,
.wood-page #tumblers.section.metal-tumblers-split {
  padding: 40px 80px !important;
  box-sizing: border-box;
}
.metal-page #tumblers > .container--full.metal-split,
.wood-page #tumblers > .container--full.metal-split {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
  gap: 1.5rem;
  align-items: center;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
}
.metal-page #tumblers .metal-split__copy,
.metal-page #tumblers .metal-split__media,
.wood-page #tumblers .metal-split__copy,
.wood-page #tumblers .metal-split__media {
  padding: 12px 16px;
  box-sizing: border-box;
  min-width: 0;
}
.metal-page #tumblers .metal-split__media,
.wood-page #tumblers .metal-split__media {
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}
.metal-page #tumblers .metal-media-slider,
.wood-page #tumblers .metal-media-slider {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  background: var(--ink);
  border-radius: var(--radius);
  border: 1px solid rgba(15, 20, 58, 0.16);
  box-shadow: var(--shadow);
}
.metal-page #tumblers .metal-media-slider__slide img,
.wood-page #tumblers .metal-media-slider__slide img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center;
}
@media (max-width: 900px) {
  .metal-page #tumblers > .container--full.metal-split,
  .wood-page #tumblers > .container--full.metal-split {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .metal-page #tumblers.section.metal-tumblers-split,
  .wood-page #tumblers.section.metal-tumblers-split {
    padding: 40px 1.25rem !important;
  }
}
/* Gallery: full-width mosaic redesign */
.metal-page #examples.section {
  position: relative;
  isolation: isolate;
  padding: 56px 80px !important;
  box-sizing: border-box;
  background-color: #0f143a;
  background-image: var(--metal-gallery-bg, none);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
.metal-page #examples.section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(135deg, rgba(15, 20, 58, 0.92) 0%, rgba(15, 20, 58, 0.72) 45%, rgba(180, 30, 40, 0.28) 100%),
    rgba(15, 20, 58, 0.55);
  pointer-events: none;
}
.metal-page #examples > .container--full {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
.metal-page #examples .section__header {
  max-width: 40rem;
  margin: 0 auto 2rem;
  text-align: center;
  padding: 1.25rem 1.5rem 1.4rem;
  border-radius: 1rem;
  background: rgba(15, 20, 58, 0.55);
  border: 1px solid rgba(243, 201, 26, 0.28);
  backdrop-filter: blur(8px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
}
.metal-page #examples .section__header .section__eyebrow {
  color: #f3c91a;
  letter-spacing: 0.14em;
}
.metal-page #examples .section__header h2,
.metal-page #examples .section__header .section__lead {
  color: #fff;
}
.metal-page #examples .section__header .section__lead {
  opacity: 0.88;
  margin-bottom: 0;
}
.metal-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.metal-gallery--mosaic {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.7rem;
  align-items: stretch;
  justify-items: stretch;
}
.metal-gallery__item {
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.65rem;
  overflow: hidden;
  background: rgba(15, 20, 58, 0.85);
  aspect-ratio: 1 / 1;
  cursor: pointer;
  display: block;
  width: 100%;
  position: relative;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s var(--ease);
}
.metal-gallery--mosaic .metal-gallery__item {
  max-width: none;
  height: auto;
  min-height: 0;
}
.metal-gallery--mosaic .metal-gallery__item--square {
  aspect-ratio: 1 / 1;
}
.metal-gallery--mosaic .metal-gallery__item--portrait {
  aspect-ratio: 4 / 5;
}
.metal-gallery__item::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 36%;
  background: linear-gradient(transparent, rgba(15, 20, 58, 0.55));
  pointer-events: none;
  opacity: 0.85;
}
.metal-gallery__item:hover,
.metal-gallery__item:focus-visible {
  transform: translateY(-3px) scale(1.01);
  box-shadow: 0 18px 34px rgba(0, 0, 0, 0.4);
  border-color: #f3c91a;
  outline: none;
  z-index: 2;
}
.metal-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
  pointer-events: none;
}
.metal-gallery__item:hover img { transform: scale(1.06); }

.metal-lightbox[hidden] { display: none !important; }
.metal-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}
.metal-lightbox__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(15, 20, 58, 0.9);
  cursor: pointer;
}
.metal-lightbox__panel {
  position: relative;
  z-index: 1;
  max-width: min(96vw, 1100px);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.metal-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: min(78vh, 900px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.65rem;
  background: #0f143a;
  border: 1px solid rgba(243, 201, 26, 0.35);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}
.metal-lightbox__caption {
  margin: 0;
  color: #fff;
  text-align: center;
  font-size: 0.95rem;
  max-width: 40rem;
}
.metal-lightbox__close {
  position: absolute;
  top: -0.35rem;
  right: -0.35rem;
  z-index: 2;
  width: 2.4rem;
  height: 2.4rem;
  border: 0;
  border-radius: 999px;
  background: #f3c91a;
  color: #0f143a;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
}
.metal-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 20, 58, 0.85);
  color: #f3c91a;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.metal-lightbox__nav--prev { left: -0.35rem; }
.metal-lightbox__nav--next { right: -0.35rem; }
.metal-lightbox__nav:hover,
.metal-lightbox__close:hover {
  outline: 2px solid #f3c91a;
  outline-offset: 2px;
}
@media (max-width: 720px) {
  .metal-page #examples.section {
    padding: 40px 1.25rem !important;
    background-attachment: scroll;
  }
}


/* Pricing: wider lead so copy wraps to ~2 lines */
.metal-page #pricing .section__header {
  max-width: 52rem;
}
.metal-page #pricing .section__header .section__lead {
  max-width: 52rem;
}
.metal-pricing {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}
.metal-price-card {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: 1rem;
  padding: 1.4rem 1.35rem 1.5rem;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
}
.metal-price-card h3 {
  font-size: 1.05rem;
  margin-bottom: 0.75rem;
}

.metal-price-card__note {
  margin: -0.15rem 0 0.75rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.metal-price-card__rate {
  font-family: var(--font-display);
  font-size: 1.65rem;
  color: var(--ink);
  margin: 0 0 0.25rem;
  line-height: 1.15;
}
.metal-price-card__rate strong { color: var(--red, #8f1c2c); }
.metal-price-card__rate span {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted);
}
.metal-price-card__alt {
  font-weight: 600;
  margin: 0 0 0.65rem;
  color: var(--ink);
}
.metal-price-card > p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.metal-close .cta-band { align-items: flex-start; }
.metal-close .cta-band__actions.metal-hero__actions { margin-top: 0; }
.metal-close__contact {
  margin-top: 1rem !important;
  font-size: 1.05rem;
}
.metal-close__contact a {
  color: #f3c91a;
  text-decoration: none;
  font-weight: 700;
}
.metal-close__contact a:hover { color: #fff; }

@media (max-width: 1024px) {
  .metal-hero__grid,
  .metal-split,
  .metal-split--flip { grid-template-columns: 1fr; }
  .metal-hero__media { max-width: 480px; }
  .metal-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metal-pricing { grid-template-columns: 1fr 1fr; }
  .metal-thumb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metal-mag-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .metal-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metal-gallery--mosaic {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  }
}
@media (max-width: 720px) {
  .metal-service-grid,
  .metal-pricing { grid-template-columns: 1fr; }
  .metal-thumb-grid,
  .metal-mag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metal-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metal-gallery--mosaic {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
  .metal-hero__actions { gap: 0.55rem; }
}
@media (prefers-reduced-motion: reduce) {
  .metal-service-card:hover,
  .metal-gallery__item:hover img { transform: none; }
  .metal-service-card__img--hover { transition: none; }
}

/* ==========================================================================
   Wood & Composites page (CO2 laser)
   ========================================================================== */
.wood-page .wood-hero {
  position: relative;
  overflow: hidden;
  background: #0f143a;
  padding: 0 0 4.5rem;
  min-height: clamp(460px, 78vh, 760px);
  display: flex;
  align-items: center;
}
.wood-page .wood-hero::before { display: none; }
.wood-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.wood-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.wood-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.65);
}
.wood-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 4.5rem 0 4rem;
}
.wood-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.wood-hero__lead {
  font-size: 1.25rem;
  max-width: 40ch;
  font-weight: 600;
  color: #f3c91a;
}
.wood-hero__note {
  color: rgba(247, 245, 242, 0.78);
  max-width: 48ch;
  margin-top: 0.75rem;
}
.wood-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.wood-hero__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
}
.wood-hero__media img,
.wood-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .wood-hero__video { display: none; }
}
.wood-page .wood-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.25rem;
  z-index: 4;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: color 0.25s ease;
}
.wood-page .wood-hero__scroll:hover,
.wood-page .wood-hero__scroll:focus-visible {
  color: #8f1c2c;
  outline: none;
}
.wood-page .wood-hero__scroll-icon {
  display: block;
  width: 44px;
  height: 65px;
  animation: home-hero-scroll-bounce 1.8s ease-in-out infinite;
}
.wood-page .wood-hero__scroll-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.wood-page .wood-hero__scroll-dot {
  animation: home-hero-scroll-dot 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .wood-page .wood-hero__scroll-icon,
  .wood-page .wood-hero__scroll-dot {
    animation: none;
  }
}

/* Fade hero into Shop Intro (navy) */
.wood-page .wood-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  height: clamp(96px, 18vw, 180px);
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(15, 20, 58, 0) 0%,
    rgba(15, 20, 58, 0.55) 45%,
    #0f143a 100%
  );
}

/* Shop Intro — navy + diamond texture */
.wood-page .wood-shop-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: -1px; /* seal against hero fade */
  background: #0f143a;
  color: rgba(247, 245, 242, 0.86);
  padding: clamp(3.75rem, 8vw, 6.75rem) 0 !important;
}
.wood-page .wood-shop-intro__lattice {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.wood-page .wood-shop-intro > .container {
  position: relative;
  z-index: 1;
}
.wood-page .wood-shop-intro__eyebrow {
  color: #f3c91a !important;
}
.wood-page .wood-shop-intro__eyebrow::before {
  background: #f3c91a;
}
.wood-page .wood-shop-intro .wood-split__copy h2,
.wood-page .wood-shop-intro #shop-heading {
  color: #fff;
}
.wood-page .wood-shop-intro .wood-split__copy p {
  color: rgba(247, 245, 242, 0.82);
}
.wood-page .wood-shop-intro .wood-split__media {
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(243, 201, 26, 0.28);
  box-shadow: 0 24px 50px rgba(0, 0, 0, 0.35);
}
.wood-page .wood-shop-intro .btn--ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}

/* Wood Personalization — photo bg + 65% overlay + Metal 3-col shop index */
.wood-page .wood-personalize {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  color: #f7f5f2;
  background-color: #0a0d24;
  padding: calc(clamp(3.75rem, 8vw, 6.75rem) - 20px) 80px clamp(3.75rem, 8vw, 6.75rem) 140px !important;
}
/* Photo layer — parallax via --wood-personalize-parallax */
.wood-page .wood-personalize::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  z-index: 0;
  pointer-events: none;
  background-image: var(--wood-personalize-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  transform: translate3d(0, var(--wood-personalize-parallax, 0px), 0);
}
/* 65% navy overlay */
.wood-page .wood-personalize::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(10, 13, 36, 0.65);
}

.wood-page .wood-personalize > .container,
.wood-page .wood-personalize > .container--full {
  position: relative;
  z-index: 2;
}
.wood-page .wood-personalize > .container--full {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .wood-page .wood-personalize {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .wood-page .wood-personalize::after {
    top: 0;
    bottom: 0;
    will-change: auto;
    transform: none;
  }
}
.wood-page .wood-personalize__intro {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: center;
  margin-bottom: clamp(2.25rem, 5vw, 3.5rem);
}
.wood-page .wood-personalize__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-content: center;
}
.wood-page .wood-personalize__eyebrow {
  color: #f3c91a !important;
  margin-bottom: 0.85rem;
  text-align: center;
}
.wood-page .wood-personalize__eyebrow::before {
  background: #f3c91a;
}
.wood-page .wood-personalize__copy h2 {
  color: #fff;
  margin: 0 0 1rem;
  max-width: 18ch;
  line-height: 1.1;
  text-align: center;
}
.wood-page .wood-personalize__lead {
  color: rgba(247, 245, 242, 0.78);
  font-size: 1.08rem;
  line-height: 1.55;
  max-width: min(100%, 58ch);
  margin: 0 0 1.6rem;
  text-align: center;
}
.wood-page .wood-personalize__lead-line {
  display: block;
}
.wood-page .wood-personalize__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}
/* Shop index items stay left-aligned */
.wood-page .wood-personalize__index,
.wood-page .wood-personalize__index-list,
.wood-page .wood-personalize__index-list li,
.wood-page .wood-personalize__board-head {
  text-align: left;
}
.wood-page .wood-personalize__ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.wood-page .wood-personalize__ghost:hover {
  background: #fff;
  color: #0f143a;
  border-color: #fff;
}
.wood-page .wood-personalize__feature {
  margin: 0;
  margin-left: -60px;
  margin-right: 40px;
  position: relative;
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(243, 201, 26, 0.28);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.04) inset,
    0 24px 50px rgba(0, 0, 0, 0.35);
}
@media (max-width: 1024px) {
  .wood-page .wood-personalize__feature {
    margin-left: 0;
  }
}
.wood-page .wood-personalize__feature-img,
.wood-page .wood-personalize__feature img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.wood-page .wood-personalize__feature-cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.95rem 1.1rem;
  background: linear-gradient(to top, rgba(15, 20, 58, 0.92), rgba(15, 20, 58, 0.15));
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.wood-page .wood-personalize__spark {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #f3c91a;
  box-shadow: 0 0 12px rgba(243, 201, 26, 0.85);
  flex-shrink: 0;
}
.wood-page .wood-personalize__board {
  margin-bottom: 0;
  padding: 1.35rem 1.5rem 1.5rem;
  border: 1px solid rgba(15, 20, 58, 0.1);
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 20, 58, 0.12);
  color: #0f143a;
}
.wood-page .wood-personalize__board-head {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(15, 20, 58, 0.12);
}
.wood-page .wood-personalize__materials-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8f1c2c;
}
.wood-page .wood-personalize__board-title {
  margin: 0;
  color: #0f143a;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  letter-spacing: -0.01em;
}
.wood-page .wood-personalize__board-note {
  margin: 0.15rem 0 0;
  max-width: 62ch;
  color: rgba(15, 20, 58, 0.72);
  font-size: 0.95rem;
  line-height: 1.5;
}
.wood-page .wood-personalize__index {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 1.75rem;
}
.wood-page .wood-personalize__index-col {
  min-width: 0;
}
.wood-page .wood-personalize__index-heading {
  margin: 0 0 0.65rem;
  padding-bottom: 0.45rem;
  border-bottom: 2px solid #f3c91a;
  color: #0f143a;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.wood-page .wood-personalize__index-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.wood-page .wood-personalize__index-list li {
  margin: 0;
  padding: 0.55rem 0 0.55rem 0.95rem;
  position: relative;
  border-bottom: 1px solid rgba(15, 20, 58, 0.1);
  color: rgba(15, 20, 58, 0.88);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.35;
}
.wood-page .wood-personalize__index-list li:last-child {
  border-bottom: 0;
}
.wood-page .wood-personalize__index-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: calc(0.35rem - 1px);
  height: calc(0.35rem - 1px);
  transform: translateY(-50%);
  border-radius: 1px;
  background: #8f1c2c;
  flex-shrink: 0;
  box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  animation: site-nav-sep-glow 2.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .wood-page .wood-personalize__index-list li::before {
    animation: none;
    opacity: 1;
    box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  }
}
@media (max-width: 1024px) {
  .wood-page .wood-personalize__intro {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .wood-page .wood-personalize__index {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .wood-page .wood-personalize__board {
    padding: 1.1rem 1rem 1.2rem;
  }
  .wood-page .wood-personalize__index {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
}


/* Wood Recognition — plaque bg + 85% white overlay + parallax */
.wood-page .wood-recognition {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  color: #0f143a;
  background-color: #ffffff;
  padding: clamp(3.75rem, 8vw, 6.75rem) 0 !important;
}
.wood-page .wood-recognition::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  z-index: 0;
  pointer-events: none;
  background-image: var(--wood-recognition-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  transform: translate3d(0, var(--wood-recognition-parallax, 0px), 0);
}
.wood-page .wood-recognition::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.85);
}
/* Same faint diamond lattice as footer */
.wood-page .wood-recognition__lattice {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.wood-page .wood-recognition > .container,
.wood-page .wood-recognition > .container--full {
  position: relative;
  z-index: 2;
  width: 75%;
  max-width: 75%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
@media (max-width: 760px) {
  .wood-page .wood-recognition > .container,
  .wood-page .wood-recognition > .container--full {
    width: min(100% - 1.5rem, 100%);
    max-width: none;
  }
}
.wood-page .wood-recognition__eyebrow {
  color: #8f1c2c !important;
}
.wood-page .wood-recognition__eyebrow::before {
  background: #8f1c2c;
}
.wood-page .wood-recognition .wood-split__copy h2,
.wood-page .wood-recognition #awards-heading {
  color: #0f143a;
}
.wood-page .wood-recognition .wood-split__copy p {
  color: rgba(15, 20, 58, 0.82);
}
.wood-page .wood-recognition .wood-check-list li {
  color: rgba(15, 20, 58, 0.9);
}
.wood-page .wood-recognition .wood-split__media {
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.12);
  box-shadow: 0 24px 50px rgba(15, 20, 58, 0.14);
}
.wood-page .wood-recognition .wood-thumb {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.1);
  box-shadow: 0 12px 28px rgba(15, 20, 58, 0.1);
}
.wood-page .wood-recognition .wood-thumb figcaption {
  background: #f3c91a;
  color: #0a0d24;
  font-weight: 700;
}
.wood-page .wood-recognition .btn--ghost {
  border-color: rgba(15, 20, 58, 0.35);
  color: #0f143a;
}
@media (prefers-reduced-motion: reduce) {
  .wood-page .wood-recognition::after {
    top: 0;
    bottom: 0;
    will-change: auto;
    transform: none;
  }
}

.wood-cap-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
/* What we make — photo bg, full width, 4×3, 80px side padding */
.wood-page #capabilities.section,
.wood-page .wood-capabilities {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  /* Keep vertical section rhythm; lock 80px L/R gutters */
  padding: clamp(3.5rem, 7vw, 6.5rem) 80px !important;
  box-sizing: border-box;
  background-color: #f5f6fa;
}
.wood-page .wood-capabilities::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--wood-capabilities-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.wood-page .wood-capabilities::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.72);
}
.wood-page #capabilities > .container--full {
  position: relative;
  z-index: 2;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
.wood-page #capabilities .wood-cap-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (max-width: 1024px) {
  .wood-page #capabilities .wood-cap-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .wood-page #capabilities.section,
  .wood-page .wood-capabilities {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  .wood-page #capabilities .wood-cap-grid {
    grid-template-columns: 1fr;
  }
}
/* Custom engraved gifts — yellow + footer diamond, full width, 80px sides */
.wood-page #engraved-gifts.section,
.wood-page .wood-engraved-gifts {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: clamp(3.5rem, 7vw, 6.5rem) 80px !important;
  box-sizing: border-box;
  background-color: #f3c91a;
  color: #0f143a;
}
.wood-page .wood-engraved-gifts__lattice {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.wood-page #engraved-gifts > .container--full {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .wood-page #engraved-gifts.section,
  .wood-page .wood-engraved-gifts {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}
.wood-page #engraved-gifts .section__eyebrow {
  color: #0f143a !important;
}
.wood-page #engraved-gifts .section__eyebrow::before {
  background: #0f143a;
}
.wood-page #engraved-gifts .section__header {
  max-width: none;
}
.wood-page #engraved-gifts #engraved-gifts-heading,
.wood-page #engraved-gifts .section__header h2 {
  color: #0f143a;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .wood-page #engraved-gifts #engraved-gifts-heading,
  .wood-page #engraved-gifts .section__header h2 {
    white-space: normal;
  }
}
.wood-page #engraved-gifts .section__lead {
  color: rgba(15, 20, 58, 0.85);
}
/* Specialty cards — 50×50px smaller (width −50; square image height −50) */
.wood-page #engraved-gifts .wood-thumb {
  width: calc(100% - 50px);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
  border-bottom: 15px solid #0f143a;
}
.wood-page #engraved-gifts .wood-thumb img {
  width: 100%;
  aspect-ratio: 1;
}
.wood-page #engraved-gifts .wood-thumb figcaption {
  font-size: calc(0.75rem + 10px);
  padding-top: calc(0.45rem + 10px);
  padding-bottom: calc(0.6rem + 10px);
}

.wood-cap-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.wood-cap-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(15, 20, 58, 0.12);
}
.wood-cap-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0f143a;
}
.wood-cap-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wood-cap-card__body { padding: 1.15rem 1.2rem 1.4rem; flex: 1; }
.wood-cap-card h3 { font-size: 1.15rem; margin-bottom: 0.4rem; }
.wood-cap-card p { margin: 0; color: var(--muted); font-size: 0.92rem; }

/* Capabilities cards — navy textured text area + bold yellow */
.wood-page #capabilities .wood-cap-card__body {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #0f143a;
  color: #f3c91a;
  padding: 1.15rem 1.2rem 1.4rem;
}
.wood-page #capabilities .wood-cap-card__body::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.wood-page #capabilities .wood-cap-card__body h3,
.wood-page #capabilities .wood-cap-card__body p {
  position: relative;
  z-index: 1;
  color: #f3c91a;
  font-weight: 600;
}
.wood-page #capabilities .wood-cap-card__body h3 {
  margin-bottom: 0.4rem;
  font-size: calc(1.15rem - 2px);
}
.wood-page #capabilities .wood-cap-card__body p {
  margin: 0;
  font-size: calc(0.92rem - 2px);
  line-height: 1.4;
  color: #f3c91a;
}
.wood-page #capabilities .wood-cap-card {
  border-color: rgba(15, 20, 58, 0.2);
  background: #0f143a;
  border-bottom: 20px solid #f3c91a;
}

.wood-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.wood-split--flip { grid-template-columns: 0.95fr 1.05fr; }
.wood-split__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12);
}
.wood-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.wood-split__copy h2 { margin-bottom: 0.85rem; }
.wood-split__copy p { color: var(--muted); }
.wood-split__copy .btn { margin-top: 0.75rem; }

.wood-check-list {
  list-style: none;
  margin: 1rem 0;
  padding: 0;
}
.wood-check-list li {
  position: relative;
  padding: 0.35rem 0 0.35rem 1.45rem;
  color: var(--ink);
  font-size: 0.95rem;
}
.wood-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--red, #8f1c2c);
}

.wood-inline-thumbs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1.15rem;
}
.wood-inline-thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.65rem;
}
/* Signage: navy + diamond texture; fixed-size left preview + 6 thumbs */
/* Empty middle track = hard 80px between columns (gap was not visible) */
.wood-page #signs.section,
.wood-page .wood-signs {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: clamp(3.75rem, 8vw, 6.75rem) clamp(1rem, 4vw, 80px) !important;
  box-sizing: border-box;
  background-color: #0f143a;
  color: rgba(247, 245, 242, 0.86);
}
.wood-page .wood-signs__lattice {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.wood-page #signs > .container--full.wood-split {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  box-sizing: border-box;
}
.wood-page #signs .section__eyebrow {
  color: #f3c91a !important;
}
.wood-page #signs .section__eyebrow::before {
  background: #f3c91a;
}
.wood-page #signs #signs-heading,
.wood-page #signs .wood-split__copy h2 {
  color: #fff;
}
.wood-page #signs .wood-split__copy p {
  color: rgba(247, 245, 242, 0.82);
}
.wood-page #signs .btn--ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.wood-page #signs .wood-split.wood-split--flip {
  display: grid !important;
  /* Was 0.95fr left (~523px at 1180); +40px ≈ 1.05fr / 1fr split */
  grid-template-columns: minmax(0, 1.05fr) 80px minmax(0, 1fr) !important;
  gap: 0 !important;
  column-gap: 0 !important;
  align-items: start;
}
.wood-page #signs .wood-signs-stage {
  grid-column: 1;
  /* Keep prior 4:5 height (~653px); width grew 40px without growing height */
  aspect-ratio: auto;
  height: 653px;
  max-height: 653px;
  align-self: start;
}
.wood-page #signs .wood-split__copy {
  grid-column: 3;
}
@media (max-width: 760px) {
  .wood-page #signs .wood-split.wood-split--flip {
    grid-template-columns: 1fr !important;
  }
  .wood-page #signs .wood-signs-stage,
  .wood-page #signs .wood-split__copy {
    grid-column: 1;
  }
  .wood-page #signs .wood-signs-stage {
    height: auto;
    max-height: none;
    aspect-ratio: 4 / 5;
  }
}
.wood-page #signs .wood-signs-stage {
  position: relative;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    #0f143a;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 12px 28px rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.15rem;
  overflow: hidden;
}
.wood-page #signs .wood-signs-stage::before {
  content: "";
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  top: 0;
  z-index: 2;
  height: 2px;
  background: linear-gradient(90deg, transparent, #f3c91a, transparent);
  opacity: 0.7;
  pointer-events: none;
}
.wood-page #signs .wood-signs-stage__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
.wood-page #signs .wood-signs-thumbs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.wood-page #signs .wood-signs-thumbs__btn {
  appearance: none;
  border: 2px solid transparent;
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: 0.75rem;
  cursor: pointer;
  overflow: hidden;
  line-height: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wood-page #signs .wood-signs-thumbs__btn img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.55rem;
}
.wood-page #signs .wood-signs-thumbs__btn:hover,
.wood-page #signs .wood-signs-thumbs__btn:focus-visible {
  border-color: #f3c91a;
  outline: none;
  box-shadow: 0 0 0 2px rgba(243, 201, 26, 0.35);
}
.wood-page #signs .wood-signs-thumbs__btn.is-active {
  border-color: #0a0d24;
  box-shadow: 0 0 0 2px #f3c91a;
}

.wood-thumb-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1.75rem;
}
.wood-thumb-grid--awards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wood-thumb {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
}
.wood-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.wood-thumb figcaption {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.45rem 0.55rem 0.6rem;
  color: var(--muted);
  text-align: center;
}

.wood-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.wood-gallery__item {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 20, 58, 0.08);
}
.wood-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  transition: transform 0.35s ease;
}
.wood-gallery__item:hover img { transform: scale(1.04); }

/* Wood gallery: Metal-style full-width mosaic + lightbox */
.wood-page #gallery.section {
  position: relative;
  isolation: isolate;
  padding: 56px 80px !important;
  box-sizing: border-box;
  background-color: #0f143a;
  background-image: var(--wood-gallery-bg, none);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
.wood-page #gallery.section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(135deg, rgba(15, 20, 58, 0.92) 0%, rgba(15, 20, 58, 0.72) 45%, rgba(180, 30, 40, 0.28) 100%),
    rgba(15, 20, 58, 0.55);
  pointer-events: none;
}
.wood-page #gallery > .container--full {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
.wood-page #gallery .section__header {
  max-width: 40rem;
  margin: 0 auto 2rem;
  text-align: center;
  padding: 1.25rem 1.5rem 1.4rem;
  border-radius: 1rem;
  background: rgba(15, 20, 58, 0.55);
  border: 1px solid rgba(243, 201, 26, 0.28);
  backdrop-filter: blur(8px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
}
.wood-page #gallery .section__header .section__eyebrow {
  color: #f3c91a;
  letter-spacing: 0.14em;
}
.wood-page #gallery .section__header h2,
.wood-page #gallery .section__header .section__lead {
  color: #fff;
}
.wood-page #gallery .section__header .section__lead {
  opacity: 0.88;
  margin-bottom: 0;
}
.wood-page #gallery .metal-gallery--mosaic {
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.55rem;
}
@media (max-width: 1200px) {
  .wood-page #gallery .metal-gallery--mosaic {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .wood-page #gallery .metal-gallery--mosaic {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .wood-page #gallery.section {
    padding: 40px 1.25rem !important;
    background-attachment: scroll;
  }
  .wood-page #gallery .metal-gallery--mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.wood-close .cta-band { align-items: flex-start; }
.wood-close__contact {
  margin-top: 1rem !important;
  font-size: 1.05rem;
}
.wood-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.wood-close__contact a:hover { color: var(--brass); }

@media (max-width: 1024px) {
  .wood-hero__grid,
  .wood-split,
  .wood-split--flip { grid-template-columns: 1fr; }
  .wood-hero__media { max-width: 480px; }
  .wood-cap-grid { grid-template-columns: 1fr 1fr; }
  .wood-thumb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wood-thumb-grid--awards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wood-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .wood-cap-grid { grid-template-columns: 1fr; }
  .wood-thumb-grid,
  .wood-thumb-grid--awards,
  .wood-inline-thumbs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wood-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .wood-cap-card:hover,
  .wood-gallery__item:hover img { transform: none; }
}

/* ==========================================================================
   Drinkware page (fiber laser — mirrors CO2 layout)
   ========================================================================== */
.drinkware-page .drinkware-hero {
  position: relative;
  overflow: hidden;
  background: #0f143a;
  padding: 0 0 4.5rem;
  min-height: clamp(460px, 78vh, 760px);
  display: flex;
  align-items: center;
}
.drinkware-page .drinkware-hero::before { display: none; }
.drinkware-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.drinkware-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.drinkware-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.65);
}
.drinkware-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 4.5rem 0 4rem;
}
.drinkware-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.drinkware-hero__lead {
  font-size: 1.25rem;
  max-width: 40ch;
  font-weight: 600;
  color: #f3c91a;
}
.drinkware-hero__note {
  color: rgba(247, 245, 242, 0.78);
  max-width: 48ch;
  margin-top: 0.75rem;
}
.drinkware-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.drinkware-hero__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
}
.drinkware-hero__media img,
.drinkware-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .drinkware-hero__video { display: none; }
}
.drinkware-page .drinkware-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.25rem;
  z-index: 4;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: color 0.25s ease;
}
.drinkware-page .drinkware-hero__scroll:hover,
.drinkware-page .drinkware-hero__scroll:focus-visible {
  color: #8f1c2c;
  outline: none;
}
.drinkware-page .drinkware-hero__scroll-icon {
  display: block;
  width: 44px;
  height: 65px;
  animation: home-hero-scroll-bounce 1.8s ease-in-out infinite;
}
.drinkware-page .drinkware-hero__scroll-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.drinkware-page .drinkware-hero__scroll-dot {
  animation: home-hero-scroll-dot 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .drinkware-page .drinkware-hero__scroll-icon,
  .drinkware-page .drinkware-hero__scroll-dot {
    animation: none;
  }
}

/* Fade hero into Shop Intro (navy) */
.drinkware-page .drinkware-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  height: clamp(96px, 18vw, 180px);
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(15, 20, 58, 0) 0%,
    rgba(15, 20, 58, 0.55) 45%,
    #0f143a 100%
  );
}

/* Shop Intro — navy + diamond texture */
.drinkware-page .drinkware-shop-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: -1px; /* seal against hero fade */
  background: #0f143a;
  color: rgba(247, 245, 242, 0.86);
  padding: clamp(3.75rem, 8vw, 6.75rem) 0 !important;
}
.drinkware-page .drinkware-shop-intro__lattice {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.drinkware-page .drinkware-shop-intro > .container {
  position: relative;
  z-index: 1;
}
.drinkware-page .drinkware-shop-intro__eyebrow {
  color: #f3c91a !important;
}
.drinkware-page .drinkware-shop-intro__eyebrow::before {
  background: #f3c91a;
}
.drinkware-page .drinkware-shop-intro .drinkware-split__copy h2,
.drinkware-page .drinkware-shop-intro #shop-heading {
  color: #fff;
}
.drinkware-page .drinkware-shop-intro .drinkware-split__copy p {
  color: rgba(247, 245, 242, 0.82);
}
.drinkware-page .drinkware-shop-intro .drinkware-split__media {
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(243, 201, 26, 0.28);
  box-shadow: 0 24px 50px rgba(0, 0, 0, 0.35);
}
.drinkware-page .drinkware-shop-intro .btn--ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}

/* Drinkware How-you-order — photo bg + 65% overlay + Metal 3-col shop index */
.drinkware-page .drinkware-personalize {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  color: #f7f5f2;
  background-color: #0a0d24;
  padding: calc(clamp(3.75rem, 8vw, 6.75rem) - 20px) 80px clamp(3.75rem, 8vw, 6.75rem) 140px !important;
}
/* Photo layer — parallax via --drinkware-personalize-parallax */
.drinkware-page .drinkware-personalize::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  z-index: 0;
  pointer-events: none;
  background-image: var(--drinkware-personalize-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  transform: translate3d(0, var(--drinkware-personalize-parallax, 0px), 0);
}
/* 65% navy overlay */
.drinkware-page .drinkware-personalize::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(10, 13, 36, 0.65);
}

.drinkware-page .drinkware-personalize > .container,
.drinkware-page .drinkware-personalize > .container--full {
  position: relative;
  z-index: 2;
}
.drinkware-page .drinkware-personalize > .container--full {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .drinkware-page .drinkware-personalize {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .drinkware-page .drinkware-personalize::after {
    top: 0;
    bottom: 0;
    will-change: auto;
    transform: none;
  }
}
.drinkware-page .drinkware-personalize__intro {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: center;
  margin-bottom: clamp(2.25rem, 5vw, 3.5rem);
}
.drinkware-page .drinkware-personalize__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-content: center;
}
.drinkware-page .drinkware-personalize__eyebrow {
  color: #f3c91a !important;
  margin-bottom: 0.85rem;
  text-align: center;
}
.drinkware-page .drinkware-personalize__eyebrow::before {
  background: #f3c91a;
}
.drinkware-page .drinkware-personalize__copy h2 {
  color: #fff;
  margin: 0 0 1rem;
  max-width: 18ch;
  line-height: 1.1;
  text-align: center;
}
.drinkware-page .drinkware-personalize__lead {
  color: rgba(247, 245, 242, 0.78);
  font-size: 1.08rem;
  line-height: 1.55;
  max-width: min(100%, 58ch);
  margin: 0 0 1.6rem;
  text-align: center;
}
.drinkware-page .drinkware-personalize__lead-line {
  display: block;
}
.drinkware-page .drinkware-personalize__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}
/* Shop index items stay left-aligned */
.drinkware-page .drinkware-personalize__index,
.drinkware-page .drinkware-personalize__index-list,
.drinkware-page .drinkware-personalize__index-list li,
.drinkware-page .drinkware-personalize__board-head {
  text-align: left;
}
.drinkware-page .drinkware-personalize__ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.drinkware-page .drinkware-personalize__ghost:hover {
  background: #fff;
  color: #0f143a;
  border-color: #fff;
}
.drinkware-page .drinkware-personalize__feature {
  margin: 0;
  margin-left: -60px;
  margin-right: 40px;
  position: relative;
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(243, 201, 26, 0.28);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.04) inset,
    0 24px 50px rgba(0, 0, 0, 0.35);
}
@media (max-width: 1024px) {
  .drinkware-page .drinkware-personalize__feature {
    margin-left: 0;
  }
}
.drinkware-page .drinkware-personalize__feature-img,
.drinkware-page .drinkware-personalize__feature img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.drinkware-page .drinkware-personalize__feature-cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.95rem 1.1rem;
  background: linear-gradient(to top, rgba(15, 20, 58, 0.92), rgba(15, 20, 58, 0.15));
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.drinkware-page .drinkware-personalize__spark {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #f3c91a;
  box-shadow: 0 0 12px rgba(243, 201, 26, 0.85);
  flex-shrink: 0;
}
.drinkware-page .drinkware-personalize__board {
  margin-bottom: 0;
  padding: 1.35rem 1.5rem 1.5rem;
  border: 1px solid rgba(15, 20, 58, 0.1);
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 20, 58, 0.12);
  color: #0f143a;
}
.drinkware-page .drinkware-personalize__board-head {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(15, 20, 58, 0.12);
}
.drinkware-page .drinkware-personalize__materials-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8f1c2c;
}
.drinkware-page .drinkware-personalize__board-title {
  margin: 0;
  color: #0f143a;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  letter-spacing: -0.01em;
}
.drinkware-page .drinkware-personalize__board-note {
  margin: 0.15rem 0 0;
  max-width: 62ch;
  color: rgba(15, 20, 58, 0.72);
  font-size: 0.95rem;
  line-height: 1.5;
}
.drinkware-page .drinkware-personalize__index {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 1.75rem;
}
.drinkware-page .drinkware-personalize__index-col {
  min-width: 0;
}
.drinkware-page .drinkware-personalize__index-heading {
  margin: 0 0 0.65rem;
  padding-bottom: 0.45rem;
  border-bottom: 2px solid #f3c91a;
  color: #0f143a;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.drinkware-page .drinkware-personalize__index-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.drinkware-page .drinkware-personalize__index-list li {
  margin: 0;
  padding: 0.55rem 0 0.55rem 0.95rem;
  position: relative;
  border-bottom: 1px solid rgba(15, 20, 58, 0.1);
  color: rgba(15, 20, 58, 0.88);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.35;
}
.drinkware-page .drinkware-personalize__index-list li:last-child {
  border-bottom: 0;
}
.drinkware-page .drinkware-personalize__index-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: calc(0.35rem - 1px);
  height: calc(0.35rem - 1px);
  transform: translateY(-50%);
  border-radius: 1px;
  background: #8f1c2c;
  flex-shrink: 0;
  box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  animation: site-nav-sep-glow 2.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .drinkware-page .drinkware-personalize__index-list li::before {
    animation: none;
    opacity: 1;
    box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5);
  }
}
@media (max-width: 1024px) {
  .drinkware-page .drinkware-personalize__intro {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 900px) {
  .drinkware-page .drinkware-personalize__index {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .drinkware-page .drinkware-personalize__board {
    padding: 1.1rem 1rem 1.2rem;
  }
  .drinkware-page .drinkware-personalize__index {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
}


/* Drinkware Retail / bulk — plaque bg + 85% white overlay + parallax */
.drinkware-page .drinkware-recognition {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  color: #0f143a;
  background-color: #ffffff;
  padding: clamp(3.75rem, 8vw, 6.75rem) 0 !important;
}
.drinkware-page .drinkware-recognition::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  z-index: 0;
  pointer-events: none;
  background-image: var(--drinkware-recognition-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  will-change: transform;
  transform: translate3d(0, var(--drinkware-recognition-parallax, 0px), 0);
}
.drinkware-page .drinkware-recognition::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.85);
}
/* Same faint diamond lattice as footer */
.drinkware-page .drinkware-recognition__lattice {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.drinkware-page .drinkware-recognition > .container,
.drinkware-page .drinkware-recognition > .container--full {
  position: relative;
  z-index: 2;
  width: 75%;
  max-width: 75%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
@media (max-width: 760px) {
  .drinkware-page .drinkware-recognition > .container,
  .drinkware-page .drinkware-recognition > .container--full {
    width: min(100% - 1.5rem, 100%);
    max-width: none;
  }
}
.drinkware-page .drinkware-recognition__eyebrow {
  color: #8f1c2c !important;
}
.drinkware-page .drinkware-recognition__eyebrow::before {
  background: #8f1c2c;
}
.drinkware-page .drinkware-recognition .drinkware-split__copy h2,
.drinkware-page .drinkware-recognition #awards-heading {
  color: #0f143a;
}
.drinkware-page .drinkware-recognition .drinkware-split__copy p {
  color: rgba(15, 20, 58, 0.82);
}
.drinkware-page .drinkware-recognition .drinkware-check-list li {
  color: rgba(15, 20, 58, 0.9);
}
.drinkware-page .drinkware-recognition .drinkware-split__media {
  border-radius: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.12);
  box-shadow: 0 24px 50px rgba(15, 20, 58, 0.14);
}
.drinkware-page .drinkware-recognition .drinkware-thumb {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.1);
  box-shadow: 0 12px 28px rgba(15, 20, 58, 0.1);
}
.drinkware-page .drinkware-recognition .drinkware-thumb figcaption {
  background: #f3c91a;
  color: #0a0d24;
  font-weight: 700;
}
.drinkware-page .drinkware-recognition .btn--ghost {
  border-color: rgba(15, 20, 58, 0.35);
  color: #0f143a;
}
@media (prefers-reduced-motion: reduce) {
  .drinkware-page .drinkware-recognition::after {
    top: 0;
    bottom: 0;
    will-change: auto;
    transform: none;
  }
}

.drinkware-cap-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
/* Formats — photo bg, full width, 4×3, 80px side padding */
.drinkware-page #capabilities.section,
.drinkware-page .drinkware-capabilities {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  /* Keep vertical section rhythm; lock 80px L/R gutters */
  padding: clamp(3.5rem, 7vw, 6.5rem) 80px !important;
  box-sizing: border-box;
  background-color: #f5f6fa;
}
.drinkware-page .drinkware-capabilities::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--drinkware-capabilities-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.drinkware-page .drinkware-capabilities::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.72);
}
.drinkware-page #capabilities > .container--full {
  position: relative;
  z-index: 2;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
.drinkware-page #capabilities .drinkware-cap-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
@media (max-width: 1024px) {
  .drinkware-page #capabilities .drinkware-cap-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .drinkware-page #capabilities.section,
  .drinkware-page .drinkware-capabilities {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  .drinkware-page #capabilities .drinkware-cap-grid {
    grid-template-columns: 1fr;
  }
}
/* IDX Life specialty designs — yellow + footer diamond, full width, 80px sides */
.drinkware-page #specialty.section,
.drinkware-page .drinkware-specialty {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: clamp(3.5rem, 7vw, 6.5rem) 80px !important;
  box-sizing: border-box;
  background-color: #f3c91a;
  color: #0f143a;
}
.drinkware-page .drinkware-specialty__lattice {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.drinkware-page #specialty > .container--full {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .drinkware-page #specialty.section,
  .drinkware-page .drinkware-specialty {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}
.drinkware-page #specialty .section__eyebrow {
  color: #0f143a !important;
}
.drinkware-page #specialty .section__eyebrow::before {
  background: #0f143a;
}
.drinkware-page #specialty .section__header {
  max-width: none;
}
.drinkware-page #specialty #specialty-heading,
.drinkware-page #specialty .section__header h2 {
  color: #0f143a;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .drinkware-page #specialty #specialty-heading,
  .drinkware-page #specialty .section__header h2 {
    white-space: normal;
  }
}
.drinkware-page #specialty .section__lead {
  color: rgba(15, 20, 58, 0.85);
}
/* Specialty cards — 50×50px smaller (width −50; square image height −50) */
.drinkware-page #specialty .drinkware-thumb {
  width: calc(100% - 50px);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
  border-bottom: 15px solid #0f143a;
}
.drinkware-page #specialty .drinkware-thumb img {
  width: 100%;
  aspect-ratio: 1;
}
.drinkware-page #specialty .drinkware-thumb figcaption {
  font-size: calc(0.75rem + 10px);
  padding-top: calc(0.45rem + 10px);
  padding-bottom: calc(0.6rem + 10px);
}

.drinkware-cap-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.drinkware-cap-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(15, 20, 58, 0.12);
}
.drinkware-cap-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0f143a;
}
.drinkware-cap-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.drinkware-cap-card__body { padding: 1.15rem 1.2rem 1.4rem; flex: 1; }
.drinkware-cap-card h3 { font-size: 1.15rem; margin-bottom: 0.4rem; }
.drinkware-cap-card p { margin: 0; color: var(--muted); font-size: 0.92rem; }

/* Capabilities cards — navy textured text area + bold yellow */
.drinkware-page #capabilities .drinkware-cap-card__body {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #0f143a;
  color: #f3c91a;
  padding: 1.15rem 1.2rem 1.4rem;
}
.drinkware-page #capabilities .drinkware-cap-card__body::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.drinkware-page #capabilities .drinkware-cap-card__body h3,
.drinkware-page #capabilities .drinkware-cap-card__body p {
  position: relative;
  z-index: 1;
  color: #f3c91a;
  font-weight: 600;
}
.drinkware-page #capabilities .drinkware-cap-card__body h3 {
  margin-bottom: 0.4rem;
  font-size: calc(1.15rem - 2px);
}
.drinkware-page #capabilities .drinkware-cap-card__body p {
  margin: 0;
  font-size: calc(0.92rem - 2px);
  line-height: 1.4;
  color: #f3c91a;
}
.drinkware-page #capabilities .drinkware-cap-card {
  border-color: rgba(15, 20, 58, 0.2);
  background: #0f143a;
  border-bottom: 20px solid #f3c91a;
}

.drinkware-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.drinkware-split--flip { grid-template-columns: 0.95fr 1.05fr; }
.drinkware-split__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12);
}
.drinkware-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.drinkware-split__copy h2 { margin-bottom: 0.85rem; }
.drinkware-split__copy p { color: var(--muted); }
.drinkware-split__copy .btn { margin-top: 0.75rem; }

.drinkware-check-list {
  list-style: none;
  margin: 1rem 0;
  padding: 0;
}
.drinkware-check-list li {
  position: relative;
  padding: 0.35rem 0 0.35rem 1.45rem;
  color: var(--ink);
  font-size: 0.95rem;
}
.drinkware-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--red, #8f1c2c);
}

.drinkware-inline-thumbs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1.15rem;
}
.drinkware-inline-thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.65rem;
}
/* Featured tumblers: navy + diamond; fixed-size left preview + 6 thumbs */
/* Empty middle track = hard 80px between columns (gap was not visible) */
.drinkware-page #featured.section,
.drinkware-page .drinkware-featured {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: clamp(3.75rem, 8vw, 6.75rem) clamp(1rem, 4vw, 80px) !important;
  box-sizing: border-box;
  background-color: #0f143a;
  color: rgba(247, 245, 242, 0.86);
}
.drinkware-page .drinkware-featured__lattice {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.drinkware-page #featured > .container--full.drinkware-split {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  box-sizing: border-box;
}
.drinkware-page #featured .section__eyebrow {
  color: #f3c91a !important;
}
.drinkware-page #featured .section__eyebrow::before {
  background: #f3c91a;
}
.drinkware-page #featured #featured-heading,
.drinkware-page #featured .drinkware-split__copy h2 {
  color: #fff;
}
.drinkware-page #featured .drinkware-split__copy p {
  color: rgba(247, 245, 242, 0.82);
}
.drinkware-page #featured .btn--ghost {
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.drinkware-page #featured .drinkware-split.drinkware-split--flip {
  display: grid !important;
  /* Was 0.95fr left (~523px at 1180); +40px ≈ 1.05fr / 1fr split */
  grid-template-columns: minmax(0, 1.05fr) 80px minmax(0, 1fr) !important;
  gap: 0 !important;
  column-gap: 0 !important;
  align-items: start;
}
.drinkware-page #featured .drinkware-featured-stage {
  grid-column: 1;
  /* Keep prior 4:5 height (~653px); width grew 40px without growing height */
  aspect-ratio: auto;
  height: 653px;
  max-height: 653px;
  align-self: start;
}
.drinkware-page #featured .drinkware-split__copy {
  grid-column: 3;
}
@media (max-width: 760px) {
  .drinkware-page #featured .drinkware-split.drinkware-split--flip {
    grid-template-columns: 1fr !important;
  }
  .drinkware-page #featured .drinkware-featured-stage,
  .drinkware-page #featured .drinkware-split__copy {
    grid-column: 1;
  }
  .drinkware-page #featured .drinkware-featured-stage {
    height: auto;
    max-height: none;
    aspect-ratio: 4 / 5;
  }
}
.drinkware-page #featured .drinkware-featured-stage {
  position: relative;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    #0f143a;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 12px 28px rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.15rem;
  overflow: hidden;
}
.drinkware-page #featured .drinkware-featured-stage::before {
  content: "";
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  top: 0;
  z-index: 2;
  height: 2px;
  background: linear-gradient(90deg, transparent, #f3c91a, transparent);
  opacity: 0.7;
  pointer-events: none;
}
.drinkware-page #featured .drinkware-featured-stage__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
.drinkware-page #featured .drinkware-featured-thumbs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.drinkware-page #featured .drinkware-featured-thumbs__btn {
  appearance: none;
  border: 2px solid transparent;
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: 0.75rem;
  cursor: pointer;
  overflow: hidden;
  line-height: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.drinkware-page #featured .drinkware-featured-thumbs__btn img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.55rem;
}
.drinkware-page #featured .drinkware-featured-thumbs__btn:hover,
.drinkware-page #featured .drinkware-featured-thumbs__btn:focus-visible {
  border-color: #f3c91a;
  outline: none;
  box-shadow: 0 0 0 2px rgba(243, 201, 26, 0.35);
}
.drinkware-page #featured .drinkware-featured-thumbs__btn.is-active {
  border-color: #0a0d24;
  box-shadow: 0 0 0 2px #f3c91a;
}

.drinkware-thumb-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1.75rem;
}
.drinkware-thumb-grid--bulk { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.drinkware-thumb {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
}
.drinkware-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.drinkware-thumb figcaption {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.45rem 0.55rem 0.6rem;
  color: var(--muted);
  text-align: center;
}

.drinkware-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.drinkware-gallery__item {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 20, 58, 0.08);
}
.drinkware-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  transition: transform 0.35s ease;
}
.drinkware-gallery__item:hover img { transform: scale(1.04); }

/* Drinkware gallery: Metal-style full-width mosaic + lightbox */
.drinkware-page #gallery.section {
  position: relative;
  isolation: isolate;
  padding: 56px 80px !important;
  box-sizing: border-box;
  background-color: #0f143a;
  background-image: var(--drinkware-gallery-bg, none);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
.drinkware-page #gallery.section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(135deg, rgba(15, 20, 58, 0.92) 0%, rgba(15, 20, 58, 0.72) 45%, rgba(180, 30, 40, 0.28) 100%),
    rgba(15, 20, 58, 0.55);
  pointer-events: none;
}
.drinkware-page #gallery > .container--full {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
.drinkware-page #gallery .section__header {
  max-width: 40rem;
  margin: 0 auto 2rem;
  text-align: center;
  padding: 1.25rem 1.5rem 1.4rem;
  border-radius: 1rem;
  background: rgba(15, 20, 58, 0.55);
  border: 1px solid rgba(243, 201, 26, 0.28);
  backdrop-filter: blur(8px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
}
.drinkware-page #gallery .section__header .section__eyebrow {
  color: #f3c91a;
  letter-spacing: 0.14em;
}
.drinkware-page #gallery .section__header h2,
.drinkware-page #gallery .section__header .section__lead {
  color: #fff;
}
.drinkware-page #gallery .section__header .section__lead {
  opacity: 0.88;
  margin-bottom: 0;
}
.drinkware-page #gallery .metal-gallery--mosaic {
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.55rem;
}
@media (max-width: 1200px) {
  .drinkware-page #gallery .metal-gallery--mosaic {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .drinkware-page #gallery .metal-gallery--mosaic {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .drinkware-page #gallery.section {
    padding: 40px 1.25rem !important;
    background-attachment: scroll;
  }
  .drinkware-page #gallery .metal-gallery--mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.drinkware-close .cta-band { align-items: flex-start; }
.drinkware-close__contact {
  margin-top: 1rem !important;
  font-size: 1.05rem;
}
.drinkware-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.drinkware-close__contact a:hover { color: var(--brass); }

@media (max-width: 1024px) {
  .drinkware-hero__grid,
  .drinkware-split,
  .drinkware-split--flip { grid-template-columns: 1fr; }
  .drinkware-hero__media { max-width: 480px; }
  .drinkware-cap-grid { grid-template-columns: 1fr 1fr; }
  .drinkware-thumb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .drinkware-thumb-grid--bulk { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .drinkware-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .drinkware-cap-grid { grid-template-columns: 1fr; }
  .drinkware-thumb-grid,
  .drinkware-thumb-grid--bulk,
  .drinkware-inline-thumbs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .drinkware-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .drinkware-cap-card:hover,
  .drinkware-gallery__item:hover img { transform: none; }
}



/* ========== Magazines page ========== */
.magazines-page .magazines-hero { padding-bottom: 3.5rem; }
.magazines-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.magazines-hero__lead {
  font-size: 1.15rem;
  max-width: 48ch;
  font-weight: 600;
  color: var(--ink);
}
.magazines-hero__note {
  color: var(--muted);
  max-width: 50ch;
  margin-top: 0.75rem;
}
.magazines-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.magazines-hero__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
  background: #0f143a;
}
.magazines-hero__media img,
.magazines-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.magazines-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
.magazines-product-grid--blanks {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.magazines-product-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.magazines-product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(15, 20, 58, 0.12);
}
.magazines-product-card__media {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #0f143a;
}
.magazines-product-card__media--square {
  aspect-ratio: 1 / 1;
  background: #f4f5f8;
}
.magazines-product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.magazines-product-card__media--square img {
  object-fit: contain;
  padding: 0.75rem;
}
.magazines-product-card__body {
  padding: 1rem 1.1rem 1.25rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.magazines-product-card h3 {
  font-size: 0.98rem;
  margin: 0;
  line-height: 1.35;
  letter-spacing: 0.01em;
}
.magazines-product-card__price {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--red, #8f1c2c);
}

.magazines-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.magazines-split__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12);
  background: #0f143a;
}
.magazines-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.magazines-split__copy h2 { margin-bottom: 0.85rem; }
.magazines-split__copy p { color: var(--muted); }
.magazines-note-list {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.magazines-note-list li {
  position: relative;
  padding-left: 1.15rem;
  color: var(--ink);
  font-weight: 600;
  font-size: 0.95rem;
}
.magazines-note-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--red, #8f1c2c);
}

.magazines-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}
.magazines-gallery__item {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #0f143a;
  aspect-ratio: 1 / 1;
}
.magazines-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.magazines-gallery__item:hover img { transform: scale(1.04); }

.magazines-close .cta-band { align-items: flex-start; }
.magazines-close__contact {
  margin-top: 0.85rem;
  font-size: 1.05rem;
}
.magazines-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.magazines-close__contact a:hover { color: var(--brass); }

@media (max-width: 1100px) {
  .magazines-product-grid--blanks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .magazines-hero__grid,
  .magazines-split { grid-template-columns: 1fr; }
  .magazines-hero__media { max-width: 520px; }
  .magazines-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .magazines-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .magazines-product-grid,
  .magazines-product-grid--blanks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .magazines-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .magazines-product-card:hover,
  .magazines-gallery__item:hover img { transform: none; }
}

/* ========== Grips page ========== */
.grips-page .grips-hero { padding-bottom: 3.5rem; }
.grips-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.grips-hero__lead {
  font-size: 1.15rem;
  max-width: 48ch;
  font-weight: 600;
  color: var(--ink);
}
.grips-hero__note {
  color: var(--muted);
  max-width: 52ch;
  margin-top: 0.75rem;
}
.grips-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.grips-hero__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
  background: #0f143a;
}
.grips-hero__media img,
.grips-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.grips-feature-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
.grips-feature-card {
  background: #fff;
  border-radius: 1rem;
  padding: 1.35rem 1.25rem 1.5rem;
  border: 1px solid rgba(15, 20, 58, 0.08);
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
}
.grips-feature-card h3 {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}
.grips-feature-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.5;
}

.grips-options-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.grips-option-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.grips-option-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(15, 20, 58, 0.12);
}
.grips-option-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0f143a;
}
.grips-option-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.grips-option-card__body {
  padding: 1.15rem 1.25rem 1.4rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.grips-option-card__tag {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red, #8f1c2c);
}
.grips-option-card h3 {
  margin: 0;
  font-size: 1.2rem;
}
.grips-option-card__body p:last-child {
  margin: 0.25rem 0 0;
  color: var(--muted);
}

.grips-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.grips-split__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12);
  background: #0f143a;
}
.grips-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.grips-split__copy h2 { margin-bottom: 0.85rem; }
.grips-split__copy p { color: var(--muted); }
.grips-note-list {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.grips-note-list li {
  position: relative;
  padding-left: 1.15rem;
  color: var(--ink);
  font-weight: 600;
  font-size: 0.95rem;
}
.grips-note-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--red, #8f1c2c);
}

.grips-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}
.grips-gallery__item {
  margin: 0;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #0f143a;
  aspect-ratio: 1 / 1;
}
.grips-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.grips-gallery__item:hover img { transform: scale(1.04); }

.grips-close .cta-band { align-items: flex-start; }
.grips-close__contact {
  margin-top: 0.85rem;
  font-size: 1.05rem;
}
.grips-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.grips-close__contact a:hover { color: var(--brass); }

@media (max-width: 1024px) {
  .grips-hero__grid,
  .grips-split,
  .grips-options-grid { grid-template-columns: 1fr; }
  .grips-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grips-hero__media { max-width: 520px; }
  .grips-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .grips-feature-grid { grid-template-columns: 1fr; }
  .grips-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .grips-option-card:hover,
  .grips-gallery__item:hover img { transform: none; }
}

/* === Home page (scoped) — 1.6.8 video hero === */
.home-page .home-hero,
.laser-blanks .home-hero {
  position: relative;
  min-height: clamp(460px, 78vh, 760px);
  background: #000;
  padding-bottom: 4.5rem; /* room for scroll cue + fade into next section */
  overflow: hidden;
}
.home-page .home-hero::after,
.laser-blanks .home-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  height: clamp(96px, 18vw, 180px);
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(15, 20, 58, 0) 0%,
    rgba(15, 20, 58, 0.55) 45%,
    #0f143a 100%
  );
}
.home-page .home-hero .hero__media,
.laser-blanks .home-hero .hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.home-page .home-hero .hero__video,
.laser-blanks .home-hero .hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.home-page .home-hero .hero__overlay,
.laser-blanks .home-hero .hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.65); /* 65% black — match live idxde.com */
}
.home-page .home-hero .hero__content,
.laser-blanks .home-hero .hero__content {
  position: relative;
  z-index: 2;
  max-width: 920px;
  margin-inline: auto;
  padding: 5.5rem 0 5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.home-page .home-hero__headline,
.laser-blanks .home-hero__headline {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 0.45em;
  margin: 0 auto 1.25rem;
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.01em;
  color: #fff;
  text-align: center;
}
.home-page .home-hero__prefix,
.laser-blanks .home-hero__prefix {
  display: inline-flex;
  align-items: center;
  gap: 0;
  color: #fff;
  white-space: nowrap;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  height: 1em;
}
.home-page .home-hero__letter,
.laser-blanks .home-hero__letter {
  display: inline-block;
  line-height: 1;
}
.home-page .home-hero__rotator,
.laser-blanks .home-hero__rotator {
  position: relative;
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  overflow: hidden;
  height: 1em;
  line-height: 1;
  min-width: 5ch;
}
.home-page .home-hero__word,
.laser-blanks .home-hero__word {
  display: inline-flex;
  align-items: center;
  position: absolute;
  left: 0;
  top: 50%;
  white-space: nowrap;
  color: #f3c91a; /* rolling headliner yellow */
  font-weight: 700;
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, calc(-50% + 0.35em), 0);
  transition: opacity 0.45s ease, transform 0.45s ease;
  pointer-events: none;
}
.home-page .home-hero__word.is-active,
.home-page .home-hero__word.is-in,
.laser-blanks .home-hero__word.is-active,
.laser-blanks .home-hero__word.is-in {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, -50%, 0);
}
.home-page .home-hero__word.is-out,
.laser-blanks .home-hero__word.is-out {
  opacity: 0;
  visibility: visible;
  transform: translate3d(0, calc(-50% - 0.35em), 0);
}
.home-page .home-hero .hero__lead,
.laser-blanks .home-hero .hero__lead {
  max-width: min(52rem, 92vw);
  margin-inline: auto;
  font-size: clamp(1.05rem, 2.1vw, 1.25rem);
  color: rgba(247, 245, 242, 0.88);
  margin-bottom: 1.35rem;
  text-align: center;
  line-height: 1.45;
}
.home-page .home-hero .hero__lead-line,
.laser-blanks .home-hero .hero__lead-line {
  display: block;
}
.home-page .home-hero__social,
.laser-blanks .home-hero__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  margin: 0 0 1.35rem;
}
.home-page .home-hero__social-link,
.laser-blanks .home-hero__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: #fff;
  border-radius: 999px;
  transition: color 0.25s ease, transform 0.25s ease;
}
.home-page .home-hero__social-link svg,
.laser-blanks .home-hero__social-link svg {
  display: block;
  width: 28px;
  height: 28px;
}
.home-page .home-hero__social-link:hover,
.home-page .home-hero__social-link:focus-visible,
.laser-blanks .home-hero__social-link:hover,
.laser-blanks .home-hero__social-link:focus-visible {
  color: #8f1c2c;
  transform: translateY(-4px);
  outline: none;
}
.home-page .home-hero .hero__actions,
.laser-blanks .home-hero .hero__actions {
  margin-top: 0;
  gap: 0.85rem;
  justify-content: center;
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-hero__word,
  .home-page .home-hero__word.is-in,
  .home-page .home-hero__word.is-out {
    transition: none !important;
    transform: none !important;
  }
  .home-page .home-hero .hero__video {
    /* paused via JS; keep poster visible */
  }
}

.home-page .home-hero__scroll,
.laser-blanks .home-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.25rem;
  z-index: 4;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: color 0.25s ease;
}
.home-page .home-hero__scroll:hover,
.home-page .home-hero__scroll:focus-visible,
.laser-blanks .home-hero__scroll:hover,
.laser-blanks .home-hero__scroll:focus-visible {
  color: #8f1c2c;
  outline: none;
}
.home-page .home-hero__scroll-icon,
.laser-blanks .home-hero__scroll-icon {
  display: block;
  width: 44px;
  height: 65px;
  animation: home-hero-scroll-bounce 1.8s ease-in-out infinite;
}
.home-page .home-hero__scroll-icon svg,
.laser-blanks .home-hero__scroll-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.home-page .home-hero__scroll-dot,
.laser-blanks .home-hero__scroll-dot {
  animation: home-hero-scroll-dot 1.8s ease-in-out infinite;
}
@keyframes home-hero-scroll-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(8px); }
}
@keyframes home-hero-scroll-dot {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(5px); opacity: 0.35; }
}
.home-page .home-hero__divider,
.laser-blanks .home-hero__divider {
  display: none;
}
.home-page .home-hero__divider svg,
.laser-blanks .home-hero__divider svg {
  display: block;
  width: 100%;
  height: 100%;
}
.home-page .home-hero__divider polygon,
.laser-blanks .home-hero__divider polygon {
  fill: currentColor;
}
@media (prefers-reduced-motion: reduce) {
  .home-page .home-hero__scroll-icon,
  .home-page .home-hero__scroll-dot {
    animation: none !important;
  }
}

.home-page #services {
  padding-top: 40px;
  padding-bottom: clamp(2.75rem, 5vw, 4rem);
  background-color: #f5f6fa;
  background-image:
    linear-gradient(rgba(245, 246, 250, 0.82), rgba(245, 246, 250, 0.9)),
    url("../images/backgrounds/services-wood.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed; /* static / parallax as page scrolls */
}
@supports (-webkit-touch-callout: none) {
  /* iOS Safari often breaks fixed backgrounds — fall back to scroll */
  .home-page #services {
    background-attachment: scroll;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-page #services {
    background-attachment: scroll;
  }
}
.home-page #services .section__header {
  padding-top: 0;
  max-width: none;
}
.home-page #services .section__eyebrow {
  color: #0f143a; /* navy */
  font-size: calc(0.78rem + 5pt);
  font-weight: 700;
}
.home-page #services #services-heading {
  color: #000;
  font-size: calc(clamp(1.9rem, 3.5vw, 2.75rem) + 3pt);
  font-weight: 600;
}
.home-page #services .section__lead {
  color: #0f143a; /* navy */
  font-size: calc(1.05rem + 2pt);
  white-space: nowrap;
  max-width: none;
}
.home-page .home-services-wrap {
  width: 100%;
  max-width: none;
  padding-inline: 60px;
  box-sizing: border-box;
}
.home-page .home-services {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(1.35rem + 15px);
}
.home-page .service-card {
  border-color: rgba(15, 20, 58, 0.08);
  border-bottom: 20px solid #0f143a; /* navy accent bar */
  box-shadow:
    0 16px 40px rgba(15, 20, 58, 0.18),
    0 4px 14px rgba(15, 20, 58, 0.1);
}
.home-page .service-card:hover {
  box-shadow:
    0 24px 52px rgba(15, 20, 58, 0.26),
    0 8px 20px rgba(15, 20, 58, 0.12);
}
.home-page .service-card--linked {
  cursor: default;
}
.home-page .service-card__media {
  width: 100%;
  margin: 0;
  aspect-ratio: 16 / 10;
  background: #1a1f4a;
  overflow: hidden;
  position: relative;
  border-radius: 0; /* flush to card edges; card clips corners */
}
.home-page .service-card__media img,
.home-page .service-card__img {
  position: absolute;
  inset: 0;
  left: 0;
  right: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1.04); /* bury any residual photo matte / fringe */
  transform-origin: center;
}
.home-page .service-card__img--hover {
  opacity: 0;
  transition: opacity 0.4s var(--ease);
}
.home-page .service-card:hover .service-card__img--hover,
.home-page .service-card:focus-within .service-card__img--hover {
  opacity: 1;
}
.home-page .service-card__body {
  padding: 1.4rem 1.45rem 1.65rem;
}
.home-page .service-card h3 {
  font-size: 1.28rem;
  letter-spacing: -0.01em;
}
.home-page .service-card p {
  font-size: 0.92rem;
  line-height: 1.55;
}
.home-page .service-card:hover .service-card__link {
  color: var(--red, #8f1c2c);
}
.home-page .service-card__rolls {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.25rem 0.55rem;
}
.home-page .service-card__roll {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  text-decoration: none;
  color: var(--ink);
  font-size: calc(0.74rem + 2pt);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.3;
  white-space: nowrap;
  transition: color 0.28s var(--ease);
}
/* Text rollover — overrides mega-menu roll-line hide */
.home-page .service-card__roll .mega-menu__link-title-roll {
  display: block;
  overflow: hidden;
  height: 1.3em;
  line-height: 1.3;
  max-width: none;
}
.home-page .service-card__roll .mega-menu__link-title-track {
  display: block;
  transition: transform 0.35s var(--ease);
  will-change: transform;
}
.home-page .service-card__roll .mega-menu__link-title-line {
  display: block;
  height: 1.3em;
  line-height: 1.3;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
}
.home-page .service-card__roll .mega-menu__link-title-line--roll {
  display: block !important;
  color: var(--red, #8f1c2c);
}
.home-page .service-card__roll-arrow {
  display: inline-block;
  transition: transform 0.35s var(--ease), color 0.28s var(--ease);
}
.home-page .service-card__roll:hover,
.home-page .service-card__roll:focus-visible {
  color: var(--red, #8f1c2c);
}
.home-page .service-card__roll:hover .mega-menu__link-title-track,
.home-page .service-card__roll:focus-visible .mega-menu__link-title-track {
  transform: translateY(-1.3em);
}
.home-page .service-card__roll:hover .service-card__roll-arrow,
.home-page .service-card__roll:focus-visible .service-card__roll-arrow {
  transform: translateX(6px);
  color: var(--red, #8f1c2c);
}
.home-page .service-card__roll:focus-visible {
  outline: 2px solid var(--red, #8f1c2c);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .home-page .service-card__roll .mega-menu__link-title-track,
  .home-page .service-card__roll-arrow {
    transition: none;
  }
  .home-page .service-card__roll:hover .mega-menu__link-title-track,
  .home-page .service-card__roll:focus-visible .mega-menu__link-title-track {
    transform: none;
  }
  .home-page .service-card__roll:hover .service-card__roll-arrow,
  .home-page .service-card__roll:focus-visible .service-card__roll-arrow {
    transform: none;
  }
}

.home-page .home-extras {
  margin-top: 2.5rem;
  padding: 1.5rem 1.6rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow);
}
.home-page .home-extras__label {
  margin: 0 0 1rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-dark);
}
.home-page .home-extras__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}
.home-page .home-extras__card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  height: 100%;
  padding: 1rem 1.1rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--paper);
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s;
}
.home-page .home-extras__card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
  border-color: rgba(143, 28, 44, 0.35);
  color: inherit;
}
.home-page .home-extras__card strong {
  font-family: var(--font-display, var(--font-sans));
  font-size: 1.05rem;
  color: var(--ink);
}
.home-page .home-extras__card span {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}


/* Home — Who we are */
.home-page .home-about {
  width: 100%;
  max-width: none;
  background: #262525;
  color: #f5f6fa;
}
.home-page .home-about .section__eyebrow {
  color: #f3c91a;
}
.home-page .home-about h2,
.home-page .home-about #about-teaser-heading {
  color: #ffffff;
}
.home-page .home-about .section__lead,
.home-page .home-about p {
  color: rgba(245, 246, 250, 0.82);
}
.home-page .home-about .btn--outline {
  border-color: rgba(245, 246, 250, 0.55);
  color: #ffffff;
}
.home-page .home-about .btn--outline:hover {
  border-color: #ffffff;
  background: #ffffff;
  color: #0f143a;
}
.home-page .home-about > .container--full {
  width: 100%;
  max-width: none;
  padding-left: 80px;
  padding-right: 30px;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .home-page .home-about > .container--full {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

.home-page .home-split__visual {
  min-height: auto;
  padding: 0;
  background: transparent;
  box-shadow: none;
  border-radius: var(--radius);
  overflow: hidden;
}
.home-page .home-split__visual::after {
  content: none;
}
.home-page .home-split__img,
.home-page .home-split__visual img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
}
.home-concept__punch {
  margin: 0.35rem 0 1.35rem;
  font-family: var(--font-display, var(--font-sans));
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #f3c91a;
}
.home-page .home-split--flip {
  direction: ltr;
}

/* Home — Portfolio bento mosaic */
.home-page .home-portfolio {
  width: 100%;
  max-width: none;
  background: var(--paper, #f7f5f2);
  padding-top: clamp(3.25rem, 7vw, 5.5rem);
  padding-bottom: clamp(3.25rem, 7vw, 5.5rem);
}
.home-page .home-portfolio__inner {
  width: min(1360px, calc(100% - 2.5rem));
  max-width: 1360px;
  margin-inline: auto;
  padding-inline: 0;
  box-sizing: border-box;
}
.home-page .home-portfolio__header {
  max-width: 40rem;
  margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}
.home-page .home-gallery {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: minmax(9.5rem, 11vw);
  grid-auto-flow: dense;
  gap: 0.75rem;
  width: 100%;
}
.home-page .home-gallery__item {
  position: relative;
  margin: 0;
  background: #0f143a;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.06);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset, 0 12px 32px rgba(15, 20, 58, 0.08);
  grid-column: span 3;
  grid-row: span 2;
  isolation: isolate;
}
.home-page .home-gallery__item.is-hero {
  grid-column: span 6;
  grid-row: span 4;
}
.home-page .home-gallery__item.is-wide {
  grid-column: span 6;
  grid-row: span 2;
}
.home-page .home-gallery__item.is-tall {
  grid-column: span 3;
  grid-row: span 4;
}
.home-page .home-gallery__item.is-tile {
  grid-column: span 3;
  grid-row: span 2;
}
.home-page .home-gallery__media {
  position: absolute;
  inset: 0;
}
.home-page .home-gallery__img,
.home-page .home-gallery__item img,
.home-page .home-gallery__media picture,
.home-page .home-gallery__media img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s var(--ease), filter 0.6s var(--ease);
}
.home-page .home-gallery__cap {
  position: absolute;
  left: 0.65rem;
  right: 0.65rem;
  bottom: 0.65rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.7rem;
  background: rgba(15, 20, 58, 0.55);
  color: #fff;
  backdrop-filter: blur(10px) saturate(1.15);
  -webkit-backdrop-filter: blur(10px) saturate(1.15);
  border: 1px solid rgba(255, 255, 255, 0.12);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.28s var(--ease), transform 0.28s var(--ease);
  pointer-events: none;
}
.home-page .home-gallery__cap-text {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.01em;
}
.home-page .home-gallery__cap-text::before {
  content: "";
  display: block;
  width: 1.35rem;
  height: 2px;
  margin-bottom: 0.4rem;
  background: #f3c91a;
  border-radius: 2px;
}
.home-page .home-gallery__item:hover .home-gallery__img,
.home-page .home-gallery__item:focus-within .home-gallery__img,
.home-page .home-gallery__item:hover img,
.home-page .home-gallery__item:focus-within img {
  transform: scale(1.04);
  filter: brightness(1.03);
}
.home-page .home-gallery__item:hover .home-gallery__cap,
.home-page .home-gallery__item:focus-within .home-gallery__cap {
  opacity: 1;
  transform: translateY(0);
}
.home-page .home-gallery__item:focus-within {
  outline: 2px solid #f3c91a;
  outline-offset: 2px;
}
.home-page .home-gallery__cta {
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
  text-align: center;
}

.home-page .home-close {
  /* Navy 4-point (corner) gradient */
  background-color: #0a0d24;
  background-image:
    radial-gradient(ellipse 80% 70% at 0% 0%, #272c67 0%, transparent 58%),
    radial-gradient(ellipse 75% 65% at 100% 0%, #1a1f4a 0%, transparent 55%),
    radial-gradient(ellipse 80% 70% at 100% 100%, #0f143a 0%, transparent 58%),
    radial-gradient(ellipse 70% 60% at 0% 100%, #12183a 0%, transparent 55%);
}
.home-page .home-close .cta-band {
  align-items: flex-start;
  background: transparent;
  box-shadow: none;
  padding-inline: 0;
}
.home-page .home-close .section__eyebrow {
  color: #f3c91a;
}
.home-page .home-close__contact {
  margin-top: 0.85rem;
  font-size: 1.05rem;
}
.home-page .home-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.home-page .home-close__contact a:hover,
.home-page .home-close__contact a:focus-visible {
  color: #f3c91a;
}
.home-page .home-close .btn--primary {
  background: #f3c91a;
  border-color: #f3c91a;
  color: #0f143a;
}
.home-page .home-close .btn--primary:hover,
.home-page .home-close .btn--primary:focus-visible {
  background: #fff;
  border-color: #fff;
  color: #0f143a;
}

@media (max-width: 1024px) {
  .home-page .home-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-page .service-card__rolls { flex-wrap: wrap; gap: 0.35rem 0.75rem; }
  .home-page .service-card__roll { font-size: calc(0.82rem + 2pt); }
  .home-page .home-extras__list { grid-template-columns: 1fr; }
  .home-page .home-gallery {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-rows: minmax(6.5rem, 14vw);
    gap: 0.65rem;
  }
  .home-page .home-gallery__item.is-tile { grid-column: span 2; grid-row: span 2; }
  .home-page .home-gallery__item.is-hero { grid-column: span 4; grid-row: span 4; }
  .home-page .home-gallery__item.is-wide { grid-column: span 4; grid-row: span 2; }
  .home-page .home-gallery__item.is-tall { grid-column: span 2; grid-row: span 4; }
  .home-page .home-portfolio__inner { width: min(100% - 2rem, 1360px); }
  .home-page .home-split,
  .home-page .split { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .home-page .home-hero .hero__content { padding: 3.75rem 0 3.25rem; }
  .home-page .home-hero__headline {
    flex-wrap: wrap;
    row-gap: 0.15em;
  }
  .home-page .home-services { grid-template-columns: 1fr; }
  .home-page .home-services-wrap { padding-inline: 1rem; }
  .home-page .home-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(9rem, 38vw);
    gap: 0.55rem;
  }
  .home-page .home-gallery__item.is-tile,
  .home-page .home-gallery__item.is-wide,
  .home-page .home-gallery__item.is-tall {
    grid-column: span 1;
    grid-row: span 2;
  }
  .home-page .home-gallery__item.is-hero {
    grid-column: span 2;
    grid-row: span 3;
  }
  .home-page .home-portfolio__inner { width: min(100% - 1.25rem, 1360px); }
  .home-page .home-gallery__cap {
    opacity: 1;
    transform: none;
    left: 0.45rem;
    right: 0.45rem;
    bottom: 0.45rem;
    padding: 0.55rem 0.65rem;
  }
  .home-page .home-gallery__cap-text { font-size: 0.72rem; }
  .home-page .hero__actions { flex-direction: column; align-items: stretch; }
  .home-page .hero__actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .service-card:hover,
  .home-page .home-extras__card:hover,
  .home-page .home-gallery__item:hover img,
  .home-page .home-gallery__item:hover .home-gallery__img {
    transform: none;
  }
  .home-page .service-card__img--hover {
    transition: none;
  }
}

/* ========== Mega-menu CPR (Laser Service col) — 1.6.7 ========== */
.mega-menu__cpr {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--line, rgba(15, 20, 58, 0.12));
  text-decoration: none;
  color: inherit;
  max-width: 12.5rem;
}
.mega-menu__cpr:hover,
.mega-menu__cpr:focus-visible {
  text-decoration: none;
}
.mega-menu__cpr:hover .mega-menu__cpr-title,
.mega-menu__cpr:focus-visible .mega-menu__cpr-title {
  color: var(--red, #8f1c2c);
}
.mega-menu__cpr-logo {
  display: block;
  width: 84px;
  height: auto;
  max-width: 96px;
  object-fit: contain;
}
.mega-menu__cpr-title {
  font-size: calc(0.82rem + 1pt);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--navy, #0f143a);
  line-height: 1.25;
}
.mega-menu__cpr-tagline {
  font-size: calc(0.7rem + 1pt);
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink-soft, #3a3f5c);
}

/* ========== CPR Training page — 1.6.7 ========== */
.cpr-page .cpr-hero { padding-bottom: 3.5rem; }
.cpr-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.cpr-hero__brand {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  margin-bottom: 0.75rem;
}
.cpr-hero__logo {
  width: 96px;
  height: auto;
  flex-shrink: 0;
}
.cpr-hero__brand h1 {
  margin: 0 0 0.35rem;
}
.cpr-hero__tagline {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--red, #8f1c2c);
  max-width: 36ch;
  line-height: 1.35;
}
.cpr-hero__lead {
  font-size: 1.15rem;
  max-width: 48ch;
  font-weight: 600;
  color: var(--ink);
}
.cpr-hero__note {
  color: var(--muted);
  max-width: 54ch;
  margin-top: 0.75rem;
}
.cpr-hero__cta-line {
  margin: 1rem 0 0;
  font-size: 1.1rem;
  color: var(--ink);
}
.cpr-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.cpr-hero__media {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
  background: #0f143a;
}
.cpr-hero__media img,
.cpr-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 4 / 5;
}
.cpr-hero__seal {
  position: absolute;
  right: 0.85rem;
  bottom: 0.85rem;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: rgba(15, 20, 58, 0.85);
  padding: 0.35rem;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}
.cpr-hero__seal img,
.cpr-hero__seal-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  aspect-ratio: auto;
}

.cpr-session {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.cpr-session__copy h2 { margin-bottom: 0.85rem; }
.cpr-session__copy p { color: var(--muted); }
.cpr-session__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12);
  background: #0f143a;
}
.cpr-session__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.cpr-note-list {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.cpr-note-list li {
  position: relative;
  padding-left: 1.15rem;
  color: var(--ink);
  font-weight: 600;
  font-size: 0.95rem;
}
.cpr-note-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--red, #8f1c2c);
}

.cpr-class-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.cpr-class-card {
  background: #fff;
  border-radius: 1rem;
  padding: 1.5rem 1.4rem 1.65rem;
  border: 1px solid rgba(15, 20, 58, 0.08);
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.cpr-class-card__tag {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red, #8f1c2c);
}
.cpr-class-card h3 {
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.3;
}
.cpr-class-card__sub {
  margin: -0.35rem 0 0;
  font-weight: 600;
  color: var(--muted);
  font-size: 0.95rem;
}
.cpr-class-card h4 {
  margin: 0.75rem 0 0.25rem;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  color: var(--navy, #0f143a);
}
.cpr-class-card > p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.5;
}
.cpr-teach-list {
  margin: 0;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.35rem;
  color: var(--ink);
  font-size: 0.92rem;
  line-height: 1.45;
}
.cpr-formats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 0.75rem;
}
.cpr-format {
  background: var(--paper, #f7f5f2);
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: 0.75rem;
  padding: 0.85rem 0.95rem;
}
.cpr-format__name {
  margin: 0 0 0.35rem;
  font-weight: 800;
  font-size: 0.88rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy, #0f143a);
}
.cpr-format p {
  margin: 0.15rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.4;
}

.cpr-close .cta-band { align-items: flex-start; }
.cpr-close__contact {
  margin-top: 0.85rem;
  font-size: 1.05rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.15rem;
}
.cpr-close__contact a {
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
}
.cpr-close__contact a:hover { color: var(--brass); }
.cpr-close__shop-note {
  font-size: 0.85rem;
  opacity: 0.75;
  margin-left: 0.25rem;
}

@media (max-width: 1024px) {
  .cpr-hero__grid,
  .cpr-session,
  .cpr-class-grid { grid-template-columns: 1fr; }
  .cpr-hero__media { max-width: 520px; }
  .cpr-hero__media img,
  .cpr-hero__img { aspect-ratio: 3 / 4; }
}
@media (max-width: 720px) {
  .cpr-formats { grid-template-columns: 1fr; }
  .cpr-hero__logo { width: 80px; }
  .mega-menu__cpr-logo { width: 72px; }
}


/* ------------------------------------------------------------------ */
/* Home — Concept to creation cover-flow                               */
/* ------------------------------------------------------------------ */
.home-concept--coverflow {
  position: relative;
  background: #0f143a;
  color: rgba(247, 245, 242, 0.78);
  padding: 3.25rem 0 3.75rem;
  overflow: hidden;
  margin-top: -1px; /* seal against hero fade */
}
.home-concept--coverflow::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
  pointer-events: none;
  z-index: 0;
}
.home-concept--coverflow .section__eyebrow {
  color: #f3c91a;
}
.home-concept--coverflow h2 {
  color: #fff;
  white-space: nowrap;
  font-size: clamp(1.15rem, 2.6vw, 2.35rem);
}
.home-concept--coverflow .section__lead {
  color: rgba(247, 245, 242, 0.7);
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}
.home-concept__intro {
  text-align: center;
  max-width: min(56rem, 100%);
  margin: 0 auto 2.75rem;
}
.home-concept--coverflow .home-concept__punch {
  color: #f3c91a;
  margin: 0.5rem 0 1.35rem;
}
.home-concept__cta {
  margin: 0;
}
.home-concept__outro {
  position: relative;
  z-index: 6;
  text-align: center;
  max-width: min(56rem, 100%);
  margin: 2rem auto 0;
  padding-bottom: 0.5rem;
}
.home-concept--coverflow .home-concept__intro,
.home-concept--coverflow .home-coverflow {
  position: relative;
  z-index: 6;
}
.home-concept--coverflow .home-concept__outro .home-concept__punch {
  margin: 0 0 1.1rem;
}

.home-concept--coverflow .btn--primary {
  background: #f3c91a;
  border-color: #f3c91a;
  color: #0f143a;
}
.home-concept--coverflow .btn--primary:hover,
.home-concept--coverflow .btn--primary:focus-visible {
  background: #fff;
  border-color: #fff;
  color: #0f143a;
}

.home-coverflow {
  position: relative;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 3.5rem;
}
.home-coverflow__stage {
  position: relative;
  height: clamp(720px, 92vw, 980px);
  perspective: 1800px;
  perspective-origin: 50% 45%;
}
.home-coverflow__track {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
}
.home-coverflow__slide {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(560px, 86vw);
  transform: translate(-50%, -50%);
  transform-style: preserve-3d;
  transition:
    transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
    opacity 0.45s ease,
    filter 0.45s ease;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
}
.home-coverflow__slide.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.home-coverflow__slide.is-active {
  z-index: 100;
  pointer-events: auto;
}
.home-coverflow__card {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #1a1f4a;
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06);
  aspect-ratio: 3 / 4;
  display: flex;
  flex-direction: column;
}
.home-coverflow__media {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  background: #0a0d24;
}
.home-coverflow__img,
.home-coverflow__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.home-coverflow__caption {
  flex: 0 0 auto;
  padding: 0.85rem 1rem 1rem;
  background: linear-gradient(180deg, #161b42 0%, #0f143a 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.home-coverflow__title {
  display: block;
  font-family: var(--font-head);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 0.25rem;
}
.home-coverflow__text {
  display: block;
  font-size: 0.8rem;
  line-height: 1.4;
  color: rgba(247, 245, 242, 0.68);
}

/* Soft floor reflection under active-ish cards */
.home-coverflow__slide::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -14%;
  height: 18%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.45) 0%, transparent 70%);
  opacity: 0.55;
  pointer-events: none;
  z-index: -1;
  filter: blur(2px);
}

.home-coverflow__nav {
  position: absolute;
  top: calc(50% - 1.75rem);
  z-index: 20;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: rgba(15, 20, 58, 0.55);
  color: #fff;
  font-size: 1.75rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  backdrop-filter: blur(6px);
}
.home-coverflow__nav:hover,
.home-coverflow__nav:focus-visible {
  background: #f3c91a; /* 1.8.422: was red */
  border-color: #f3c91a;
  color: #0f143a;
  outline: none;
}
.home-coverflow__nav--prev { left: 0.25rem; }
.home-coverflow__nav--next { right: 0.25rem; }

.home-coverflow__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.55rem;
  margin-top: 1.75rem;
}
.home-coverflow__dot {
  width: 0.55rem;
  height: 0.55rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.28);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, width 0.2s ease;
}
.home-coverflow__dot.is-active {
  background: #fff;
  width: 1.35rem;
}
.home-coverflow__dot:hover,
.home-coverflow__dot:focus-visible {
  background: rgba(255, 255, 255, 0.85);
  outline: none;
}

/* Laser blanks — Start here: 50px smaller slider + wider lead (~2 lines) */
.home-concept--blanks-start .home-concept__intro {
  max-width: min(72rem, 100%);
}
/* "Start here" eyebrow → H2 title scale (~+10pt / heading size) */
.home-concept--blanks-start .section__eyebrow {
  font-size: clamp(1.45rem, 2.8vw, 2.15rem); /* ~H2; was 0.78rem */
  letter-spacing: 0.1em;
  margin-bottom: 0.85rem;
  font-weight: 700;
  color: #f3c91a;
}
/* Diamond lattice + parallax (footer-diamond.png) — blanks Start here only */
.home-concept--blanks-start::before {
  content: "";
  position: absolute;
  inset: auto; /* clear shared coverflow inset */
  left: 0;
  right: 0;
  top: -35%;
  bottom: -35%;
  height: auto;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.14;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
  transform: translate3d(0, var(--blanks-start-parallax, 0px), 0);
}
@media (prefers-reduced-motion: reduce) {
  .home-concept--blanks-start::before {
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    will-change: auto;
    transform: none;
  }
}
.home-concept--blanks-start .section__lead {
  max-width: min(58rem, 100%);
}
.home-concept--blanks-start .home-coverflow {
  margin-top: -15px; /* 1.8.121: stage trimmed below */
}
.home-concept--blanks-start .home-coverflow__stage {
  height: clamp(560px, calc(92vw - 190px), 790px); /* 1.8.121: -140px, trims empty space above/below centered card */
}
.home-concept--blanks-start .home-coverflow__slide {
  width: min(510px, 86vw);
}
.home-concept--blanks-start .home-coverflow__dots {
  margin-top: 0.25rem; /* 1.8.121: dots tight under card */
}
@media (max-width: 760px) {
  .home-concept--blanks-start .home-coverflow__slide,
  .home-concept--blanks-start .home-coverflow__slide.is-active,
  .home-concept--blanks-start .home-coverflow__slide.is-visible,
  .home-concept--blanks-start .home-coverflow__slide:not(.is-active) {
    flex: 0 0 min(78vw, 16.25rem);
    width: min(78vw, 16.25rem) !important;
  }
}

/* Mobile / narrow: demote 3D cover-flow to a horizontal snap card strip */
@media (max-width: 760px) {
  .home-concept--coverflow h2 {
    white-space: normal;
  }
  .home-coverflow {
    padding: 0;
  }
  .home-coverflow.is-stacked .home-coverflow__nav {
    display: none;
  }
  .home-coverflow__stage {
    height: auto;
    perspective: none;
    overflow: visible;
  }
  .home-coverflow__track {
    position: static;
    display: flex;
    flex-direction: row;
    gap: 0.85rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding: 0.25rem 1rem 0.75rem;
    margin: 0 -0.15rem;
    transform: none !important;
    scrollbar-width: none;
  }
  .home-coverflow__track::-webkit-scrollbar {
    display: none;
  }
  .home-coverflow__slide,
  .home-coverflow__slide.is-active,
  .home-coverflow__slide.is-visible,
  .home-coverflow__slide:not(.is-active) {
    position: static !important;
    top: auto !important;
    left: auto !important;
    flex: 0 0 min(78vw, 17.5rem);
    width: min(78vw, 17.5rem) !important;
    max-width: none;
    margin: 0;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    filter: none !important;
    z-index: auto !important;
    scroll-snap-align: center;
  }
  .home-coverflow__slide::after {
    display: none;
  }
  .home-coverflow__card {
    aspect-ratio: 3 / 4;
    flex-direction: column;
    border-radius: 12px;
    height: 100%;
  }
  .home-coverflow__caption {
    padding: 0.7rem 0.85rem 0.85rem;
  }
  .home-coverflow__title {
    font-size: 0.82rem;
  }
  .home-coverflow__text {
    font-size: 0.74rem;
  }
  .home-coverflow__dots {
    margin-top: 0.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-coverflow__slide {
    transition: opacity 0.25s ease;
  }
  .home-coverflow__stage {
    perspective: none;
  }
  .home-coverflow__slide:not(.is-active) {
    opacity: 0 !important;
    visibility: hidden;
    pointer-events: none !important;
  }
  .home-coverflow__slide.is-active {
    transform: translate(-50%, -50%) !important;
    filter: none !important;
  }
}

/* ========== Policies hub ========== */
.page-hero__eyebrow {
  margin: 0 0 0.65rem;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #f3c91a;
}
.page-hero__eyebrow a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(243, 201, 26, 0.35);
}
.page-hero__eyebrow a:hover { border-bottom-color: #f3c91a; }

.policy-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}
.policy-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.6rem 1.5rem 1.45rem;
  background: var(--white);
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s var(--ease);
  position: relative;
  overflow: hidden;
  min-height: 100%;
}
.policy-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), #f3c91a);
}
.policy-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(15, 20, 58, 0.12);
  border-color: rgba(143, 28, 44, 0.25);
}
.policy-card__badge {
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #f3c91a;
  background: var(--navy);
  width: 2.4rem;
  height: 2.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}
.policy-card__title {
  margin: 0;
  font-size: 1.35rem;
  color: var(--navy);
}
.policy-card__blurb {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  flex: 1;
}
.policy-card__link {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--accent);
  letter-spacing: 0.02em;
}
.policy-hub__note {
  margin: 2rem 0 0;
  text-align: center;
  color: var(--muted);
  font-size: 0.95rem;
}
.policy-hub__note a { color: var(--navy); font-weight: 600; }

/* ========== Policy document prose ========== */
.policy-doc {
  max-width: 70ch;
  margin-inline: auto;
}
.policy-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
  gap: 2.5rem 2rem;
  align-items: start;
  max-width: 1100px;
  margin-inline: auto;
}
.policy-layout .policy-doc {
  max-width: none;
  margin-inline: 0;
}
.policy-layout__footer {
  max-width: 1100px !important;
  margin-inline: auto;
}
.policy-sidebar {
  position: sticky;
  top: 6.5rem;
  padding: 1.15rem 1.15rem 1.25rem;
  border-radius: var(--radius);
  background: var(--paper, #f7f5f2);
  border: 1px solid rgba(15, 20, 58, 0.1);
  box-shadow: var(--shadow-sm, 0 8px 24px rgba(15, 20, 58, 0.06));
}
.policy-sidebar__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent, #8f1c2c);
}
.policy-sidebar__title {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  color: var(--navy, #0f143a);
  line-height: 1.25;
}
.policy-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.policy-sidebar__card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0.75rem;
  align-items: center;
  padding: 0.55rem;
  border-radius: calc(var(--radius) - 2px);
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.policy-sidebar__card:hover,
.policy-sidebar__card:focus-visible {
  border-color: #f3c91a;
  box-shadow: 0 6px 18px rgba(15, 20, 58, 0.1);
  transform: translateY(-1px);
  outline: none;
}
.policy-sidebar__media {
  display: block;
  width: 72px;
  height: 56px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--navy, #0f143a);
}
.policy-sidebar__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.policy-sidebar__body {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}
.policy-sidebar__label {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--navy, #0f143a);
  line-height: 1.2;
}
.policy-sidebar__blurb {
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--ink-soft, #4a4f66);
}
@media (max-width: 900px) {
  .policy-layout {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .policy-sidebar {
    position: static;
    order: -1;
  }
  .policy-sidebar__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .policy-sidebar__card {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .policy-sidebar__media {
    width: 100%;
    height: 88px;
    margin-inline: auto;
  }
}
@media (max-width: 640px) {
  .policy-sidebar__list {
    grid-template-columns: 1fr;
  }
  .policy-sidebar__card {
    grid-template-columns: 72px 1fr;
    text-align: left;
  }
  .policy-sidebar__media {
    width: 72px;
    height: 56px;
  }
}
.policy-doc h2 {
  margin-top: 2.25rem;
  margin-bottom: 0.85rem;
  font-size: 1.25rem;
  color: var(--navy);
  padding-bottom: 0.4rem;
  border-bottom: 1px solid rgba(15, 20, 58, 0.1);
}
.policy-doc h2:first-child { margin-top: 0; }
.policy-doc h3 {
  margin-top: 1.6rem;
  font-size: 1.05rem;
  color: var(--navy-mid);
}
.policy-doc p { margin: 0 0 1rem; line-height: 1.7; color: var(--ink-soft); }
.policy-doc ul, .policy-doc ol {
  margin: 0 0 1.25rem;
  padding-left: 1.25rem;
}
.policy-doc li {
  margin-bottom: 0.55rem;
  line-height: 1.65;
  color: var(--ink-soft);
}
.policy-doc li strong:first-child {
  color: var(--navy);
}
.policy-doc a {
  color: var(--accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.policy-doc__footer-nav {
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}
.policy-doc__footer-nav .container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  max-width: 70ch;
  margin-inline: auto;
}


/* ========== 404 ========== */
.error-404 {
  position: relative;
  min-height: min(72vh, 640px);
  display: flex;
  align-items: center;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(143, 28, 44, 0.22), transparent 50%),
    radial-gradient(ellipse at 90% 80%, rgba(243, 201, 26, 0.12), transparent 45%),
    var(--navy);
  color: var(--paper);
  overflow: hidden;
}
.error-404::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 12px,
      rgba(243, 201, 26, 0.03) 12px,
      rgba(243, 201, 26, 0.03) 13px
    );
  pointer-events: none;
}
.error-404__inner {
  position: relative;
  text-align: center;
  padding: 4.5rem 0 4rem;
  max-width: 40rem;
  margin-inline: auto;
}
.error-404__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f3c91a;
}
.error-404__code {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(5.5rem, 18vw, 8.5rem);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 2px rgba(243, 201, 26, 0.85);
  text-shadow: 0 0 40px rgba(143, 28, 44, 0.35);
}
.error-404__title {
  margin: 0.75rem 0 0.85rem;
  color: var(--white);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
}
.error-404__lead {
  margin: 0 auto 1.75rem;
  max-width: 42ch;
  color: rgba(247, 245, 242, 0.72);
  font-size: 1.05rem;
  line-height: 1.6;
}
.error-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-bottom: 1.75rem;
}
.error-404__actions .btn--primary {
  background: #f3c91a;
  border-color: #f3c91a;
  color: #0f143a;
}
.error-404__actions .btn--primary:hover {
  background: #ffe14a;
  border-color: #ffe14a;
  color: #0f143a;
}
.error-404__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.25rem;
  justify-content: center;
}
.error-404__links a {
  color: rgba(247, 245, 242, 0.78);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(243, 201, 26, 0.35);
}
.error-404__links a:hover {
  color: #f3c91a;
  border-bottom-color: #f3c91a;
}

/* ========== About page ========== */
.about-page .about-intro {
  align-items: center;
}
.about-page .about-intro__media img {
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  display: block;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.12);
}
.about-page .about-kicker {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.about-page .about-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.about-mosaic__card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--navy);
  min-height: 220px;
  box-shadow: 0 12px 28px rgba(15, 20, 58, 0.1);
}
.about-mosaic__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 220px;
  transition: transform 0.45s var(--ease);
}
.about-mosaic__card:hover img { transform: scale(1.04); }
.about-mosaic__card figcaption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 1.1rem 1rem 0.95rem;
  background: linear-gradient(transparent, rgba(15, 20, 58, 0.88));
  color: var(--white);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}
.about-values {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}
.about-values__panel {
  background: var(--white);
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: var(--radius);
  padding: 1.75rem 1.6rem;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.05);
}
.about-values__panel h3 {
  margin: 0 0 0.85rem;
  font-size: 1.35rem;
  color: var(--navy);
}
.about-values__panel p { color: var(--ink-soft); margin: 0 0 0.9rem; line-height: 1.65; }
.about-values__panel p:last-child { margin-bottom: 0; }
.about-clients {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  align-items: center;
}
.about-clients__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  padding: 1rem;
  background: var(--white);
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: var(--radius);
}
.about-clients__item img {
  max-width: 100%;
  max-height: 72px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.85;
  transition: filter 0.25s ease, opacity 0.25s ease;
}
.about-clients__item:hover img {
  filter: none;
  opacity: 1;
}
.about-cta {
  text-align: center;
  max-width: 40rem;
  margin-inline: auto;
}
.about-cta h2 { color: var(--white); margin-bottom: 0.75rem; }
.about-cta p { color: rgba(247, 245, 242, 0.75); margin: 0 0 1.5rem; }
.about-cta .btn--primary {
  background: #f3c91a;
  border-color: #f3c91a;
  color: #0f143a;
}
.about-cta .btn--primary:hover {
  background: #ffe14a;
  border-color: #ffe14a;
  color: #0f143a;
}

@media (max-width: 980px) {
  .policy-hub__grid { grid-template-columns: 1fr; }
  .about-page .about-mosaic { grid-template-columns: 1fr 1fr; }
  .about-values { grid-template-columns: 1fr; }
  .about-clients { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .about-page .about-mosaic { grid-template-columns: 1fr; }
  .about-clients { grid-template-columns: 1fr 1fr; }
  .error-404__inner { padding: 3.5rem 0 3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .policy-card:hover,
  .about-mosaic__card:hover img { transform: none; }
}

/* === Modern sticky section dock === */
.side-dock {
  position: fixed;
  top: 50%;
  right: 1rem;
  z-index: 980;
  transform: translate3d(12px, -50%, 0);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.3s var(--ease),
    visibility 0.3s var(--ease),
    transform 0.3s var(--ease);
}
.side-dock.is-visible {
  opacity: 0.9;
  visibility: visible;
  transform: translate3d(0, -50%, 0);
  pointer-events: auto;
}
.side-dock[hidden] {
  display: none !important;
}
.side-dock__list {
  list-style: none;
  margin: 0;
  padding: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  align-items: center;
  border-radius: 999px;
  background: rgba(243, 201, 26, 0.88);
  border: 1px solid rgba(15, 20, 58, 0.12);
  box-shadow:
    0 10px 30px rgba(15, 20, 58, 0.16),
    0 1px 0 rgba(255, 255, 255, 0.45) inset;
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
}
.side-dock__item {
  margin: 0;
  position: relative;
}
.side-dock__item.has-break {
  margin-bottom: 0.35rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(15, 20, 58, 0.08);
}
.side-dock__item.has-break:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.side-dock__link {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  color: var(--navy, #0f143a);
  text-decoration: none;
  background: transparent;
  transition:
    background 0.2s var(--ease),
    color 0.2s var(--ease),
    transform 0.2s var(--ease),
    box-shadow 0.2s var(--ease);
}
.side-dock__icon {
  display: grid;
  place-items: center;
  line-height: 0;
}
.side-dock__icon svg {
  display: block;
}
.side-dock__tip {
  position: absolute;
  right: calc(100% + 0.65rem);
  top: 50%;
  transform: translate(6px, -50%);
  padding: 0.35rem 0.65rem;
  border-radius: 0.45rem;
  background: var(--navy, #0f143a);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  box-shadow: 0 8px 20px rgba(15, 20, 58, 0.22);
  transition:
    opacity 0.18s var(--ease),
    visibility 0.18s var(--ease),
    transform 0.18s var(--ease);
}
.side-dock__tip::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-left-color: var(--navy, #0f143a);
}
.side-dock__link:hover,
.side-dock__link:focus-visible {
  background: #fff;
  color: var(--navy, #0f143a);
  transform: scale(1.06);
  box-shadow: 0 4px 14px rgba(15, 20, 58, 0.14);
  outline: none;
}
.side-dock__link:hover .side-dock__tip,
.side-dock__link:focus-visible .side-dock__tip {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}
.side-dock__item.is-active .side-dock__link {
  background: var(--navy, #0f143a);
  color: #fff;
  box-shadow: 0 4px 14px rgba(15, 20, 58, 0.22);
}
.side-dock__item.is-active .side-dock__link:hover,
.side-dock__item.is-active .side-dock__link:focus-visible {
  background: var(--navy, #0f143a);
  color: #f3c91a;
}
.side-dock__link:focus-visible {
  outline: 2px solid var(--red, #8f1c2c);
  outline-offset: 2px;
}

/* Sub-nav: expands under active/hovered parent */
.side-dock__sub {
  list-style: none;
  margin: 0.15rem 0 0.1rem;
  padding: 0;
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
}
.side-dock__item.is-active > .side-dock__sub,
.side-dock__item.has-children:hover > .side-dock__sub,
.side-dock__item.has-children:focus-within > .side-dock__sub {
  display: flex;
}
.side-dock__sub-item { margin: 0; }
.side-dock__sub-link {
  position: relative;
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  color: var(--navy, #0f143a);
  text-decoration: none;
  background: transparent;
  transition: background 0.2s var(--ease), transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.side-dock__sub-dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: rgba(15, 20, 58, 0.45);
  transition: background 0.2s var(--ease), transform 0.2s var(--ease);
}
.side-dock__sub-link:hover,
.side-dock__sub-link:focus-visible {
  background: #fff;
  outline: none;
  transform: scale(1.08);
}
.side-dock__sub-link:hover .side-dock__sub-dot,
.side-dock__sub-link:focus-visible .side-dock__sub-dot {
  background: var(--navy, #0f143a);
  transform: scale(1.15);
}
.side-dock__sub-item.is-active .side-dock__sub-link {
  background: var(--navy, #0f143a);
}
.side-dock__sub-item.is-active .side-dock__sub-dot {
  background: #f3c91a;
}
.side-dock__sub-link .side-dock__tip {
  /* inherit tip styles; slightly tighter */
  font-size: 0.68rem;
}
.side-dock__sub-link:hover .side-dock__tip,
.side-dock__sub-link:focus-visible .side-dock__tip,
.side-dock__sub-item.is-active .side-dock__sub-link .side-dock__tip {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}
.side-dock__sub-item.is-active .side-dock__sub-link .side-dock__tip {
  /* keep tip only on hover/focus for active too — match parent pattern */
  opacity: 0;
  visibility: hidden;
}
.side-dock__sub-item.is-active .side-dock__sub-link:hover .side-dock__tip,
.side-dock__sub-item.is-active .side-dock__sub-link:focus-visible .side-dock__tip {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
}

@media (max-width: 1100px) {
  .side-dock {
    right: 0.55rem;
  }
  .side-dock__link {
    width: 2.15rem;
    height: 2.15rem;
  }
}
@media (max-width: 760px) {
  .side-dock__tip {
    display: none;
  }
}
@media (max-width: 640px) {
  .side-dock {
    display: none !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .side-dock,
  .side-dock__link,
  .side-dock__tip {
    transition: none;
  }
  .side-dock__link:hover,
  .side-dock__link:focus-visible {
    transform: none;
  }
}

/* Soft page padding so content isn't under the rail on wide screens */
@media (min-width: 1101px) {
  body:not(.mega-menu-open) .site-main,
  body:not(.mega-menu-open) .site-footer {
    /* rail is overlay; no forced padding — labels expand leftward */
  }
}

/* ========== Mobile mega-menu drawer polish (~760px) ========== */
@media (max-width: 760px) {
  .mega-menu__panel {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-height: 100% !important;
    height: 100%;
    padding: max(0.85rem, env(safe-area-inset-top)) 1rem calc(1.5rem + env(safe-area-inset-bottom));
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .mega-menu__top {
    position: sticky;
    top: 0;
    z-index: 5;
    margin: 0 0 16px;
    padding: 0 0 16px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .mega-menu__close {
    width: 44px;
    height: 44px;
    font-size: 1.65rem;
  }
  .mega-menu__grid,
  .mega-menu__grid--five {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }
  .mega-menu__heading {
    margin-top: 0.35rem;
    font-size: calc(0.78rem - 4px);
  }
  .mega-menu__link {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.55rem 0.35rem;
    min-height: 56px;
  }
  .mega-menu__family-link {
    min-height: 48px;
    padding: 0.65rem 0.35rem;
  }
  .mega-menu__col--cta {
    grid-column: auto;
    margin-top: 0.25rem;
  }
  .mega-menu__cta.mega-menu__cta--column {
    padding: 1.15rem 1rem !important;
    border-radius: 12px !important;
    background: var(--navy) !important;
  }
  .mega-menu__cta-actions .btn {
    min-height: 48px;
    width: 100%;
    justify-content: center;
  }
  .mega-menu__cta-secondary {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
}

/* Hero first-paint: solid navy under poster/video */
.home-page .home-hero .hero__media {
  background-color: #0a0d24;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

/* === Breadcrumbs (inside sticky .site-header) === */
.site-header .breadcrumbs {
  position: relative;
  z-index: 1;
  background: rgba(247, 245, 242, 0.88);
  border-top: 1px solid rgba(15, 20, 58, 0.06);
  border-bottom: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.breadcrumbs__inner {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}
.breadcrumbs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0;
  font-size: 0.78rem;
  line-height: 1.35;
  letter-spacing: 0.01em;
}
.breadcrumbs__item {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}
.breadcrumbs__link {
  color: var(--navy, #0f143a);
  text-decoration: none;
  opacity: 0.72;
  border-bottom: 1px solid transparent;
  transition: opacity 0.15s var(--ease), border-color 0.15s var(--ease), color 0.15s var(--ease);
}
.breadcrumbs__link:hover,
.breadcrumbs__link:focus-visible {
  opacity: 1;
  color: var(--red, #8f1c2c);
  border-bottom-color: rgba(143, 28, 44, 0.35);
  outline: none;
}
.breadcrumbs__current {
  color: var(--navy, #0f143a);
  font-weight: 600;
  opacity: 0.95;
}
.breadcrumbs__sep {
  margin: 0 0.45rem;
  color: rgba(15, 20, 58, 0.35);
  font-weight: 400;
  user-select: none;
}
/* Scrolled navy header: light trail */
.site-header.is-scrolled .breadcrumbs {
  background: transparent;
  border-top-color: rgba(255, 255, 255, 0.1);
}
.site-header.is-scrolled .breadcrumbs__link {
  color: rgba(255, 255, 255, 0.78);
  opacity: 1;
}
.site-header.is-scrolled .breadcrumbs__link:hover,
.site-header.is-scrolled .breadcrumbs__link:focus-visible {
  color: #f3c91a;
  border-bottom-color: rgba(243, 201, 26, 0.45);
}
.site-header.is-scrolled .breadcrumbs__current {
  color: #fff;
  opacity: 0.95;
}
.site-header.is-scrolled .breadcrumbs__sep {
  color: rgba(255, 255, 255, 0.35);
}
body.home .breadcrumbs,
body.front-page .breadcrumbs {
  display: none;
}
@media (max-width: 640px) {
  .breadcrumbs__inner {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
  }
  .breadcrumbs__list {
    font-size: 0.72rem;
  }
  .breadcrumbs__sep {
    margin: 0 0.35rem;
  }
}


/* ========== Signage family (wood / UV-LED / large format / film / printing) ========== */
.signage-page .signage-hero { padding-bottom: 3.5rem; }
.signage-hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2.5rem;
  align-items: center;
}
.signage-hero__lead {
  font-size: 1.15rem;
  max-width: 48ch;
  font-weight: 600;
  color: var(--ink);
}
.signage-hero__note,
.signage-hero__tag {
  color: var(--muted);
  max-width: 50ch;
  margin-top: 0.75rem;
}
.signage-hero__tag {
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.85rem;
  color: var(--brass);
}
.signage-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.signage-hero__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.18);
}
.signage-hero__media img,
.signage-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.signage-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.signage-info-card {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: 1rem;
  padding: 1.35rem 1.4rem 1.5rem;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
}
.signage-info-card h3 { font-size: 1.15rem; margin-bottom: 0.55rem; }
.signage-info-card p { margin: 0; color: var(--muted); font-size: 0.95rem; }

.signage-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}
.signage-gallery__item {
  margin: 0;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 20, 58, 0.1);
}
.signage-gallery__item img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.signage-related {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
}
.signage-related a {
  display: inline-flex;
  align-items: center;
  padding: 0.65rem 1.15rem;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
}
.signage-related a:hover { background: #f3c91a; color: var(--ink); }

.signage-chip-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.signage-chip-list li {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  color: var(--ink);
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
}

.signage-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  align-items: center;
}
.signage-split__media {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12);
}
.signage-split__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.signage-split__copy h2 { margin-bottom: 0.85rem; }
.signage-split__copy p { color: var(--muted); }

.signage-thumb-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.signage-thumb {
  margin: 0;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 20, 58, 0.1);
}
.signage-thumb img {
  display: block;
  width: 100%;
  height: 160px;
  object-fit: cover;
}

.signage-process {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}
.signage-process__step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: 1rem;
  padding: 1.25rem 1.35rem;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06);
}
.signage-process__num {
  font-weight: 800;
  font-size: 1.35rem;
  color: #f3c91a;
  line-height: 1;
}
.signage-process__body h3 { font-size: 1.15rem; margin-bottom: 0.4rem; }
.signage-process__body p { margin: 0; color: var(--muted); font-size: 0.95rem; }

.signage-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.signage-card-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.signage-card-grid--rigid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.signage-card {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  border-radius: 1rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 12px 30px rgba(15, 20, 58, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.signage-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.14);
}
.signage-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f0eee9;
}
.signage-card__media--square { aspect-ratio: 1 / 1; }
.signage-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.signage-card__body { padding: 1.15rem 1.2rem 1.4rem; flex: 1; }
.signage-card__body h3 { font-size: 1.15rem; margin-bottom: 0.35rem; }
.signage-card__deck {
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 0.55rem;
}
.signage-card__body p { margin: 0 0 0.75rem; color: var(--muted); font-size: 0.92rem; }
.signage-card__tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.signage-card__tags li {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: rgba(15, 20, 58, 0.06);
  color: var(--ink);
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
}

.signage-stack { display: grid; gap: 2rem; }
.signage-stack__item {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 2rem;
  align-items: center;
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 20, 58, 0.08);
  box-shadow: 0 12px 30px rgba(15, 20, 58, 0.08);
}
.signage-stack__item--flip { grid-template-columns: 1.05fr 0.95fr; }
.signage-stack__item--flip .signage-stack__media { order: 2; }
.signage-stack__media img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: cover;
}
.signage-stack__copy { padding: 1.5rem 1.6rem 1.7rem; }
.signage-stack__copy h3 { margin-bottom: 0.65rem; }
.signage-stack__copy p { color: var(--muted); }
.signage-stack__note {
  margin-top: 0.75rem;
  font-size: 0.92rem;
  color: var(--ink) !important;
  font-weight: 600;
}

.signage-close .cta-band { align-items: flex-start; }
.signage-close__contact {
  margin-top: 0.85rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.signage-close__contact a { color: #f3c91a; font-weight: 700; }

@media (max-width: 980px) {
  .signage-hero__grid,
  .signage-split,
  .signage-info-grid,
  .signage-card-grid,
  .signage-card-grid--rigid,
  .signage-process,
  .signage-gallery,
  .signage-thumb-grid,
  .signage-stack__item,
  .signage-stack__item--flip,
  .signage-card-grid--two {
    grid-template-columns: 1fr 1fr;
  }
  .signage-stack__item--flip .signage-stack__media { order: 0; }
  .signage-hero__media { max-width: 480px; }
}
@media (max-width: 720px) {
  .signage-hero__grid,
  .signage-split,
  .signage-info-grid,
  .signage-card-grid,
  .signage-card-grid--rigid,
  .signage-card-grid--two,
  .signage-process,
  .signage-gallery,
  .signage-thumb-grid,
  .signage-stack__item,
  .signage-stack__item--flip {
    grid-template-columns: 1fr;
  }
  .signage-gallery__item img,
  .signage-thumb img,
  .signage-stack__media img { height: 200px; }
  .signage-card:hover { transform: none; }
}


/* Laser pointer cursor (fine pointer / hover devices only) */
@media (hover: hover) and (pointer: fine) {
  body.laser-cursor-on,
  body.laser-cursor-on * {
    cursor: none !important;
  }
  .laser-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 28px;
    height: 28px;
    margin: -14px 0 0 -14px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 100000;
    opacity: 0;
    transition: opacity .2s ease;
    mix-blend-mode: normal;
  }
  .laser-cursor.is-on { opacity: 1; }
  .laser-cursor__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.92);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.35), 0 0 10px rgba(143, 28, 44, 0.25);
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .laser-cursor__dot {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    border-radius: 50%;
    background: #8f1c2c;
    box-shadow: 0 0 8px 2px rgba(143, 28, 44, 0.85), 0 0 2px #fff;
  }
  .laser-cursor.is-active .laser-cursor__ring {
    transform: scale(1.35);
    border-color: rgba(255, 255, 255, 1);
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.45), 0 0 14px rgba(143, 28, 44, 0.4);
  }
  .laser-cursor.is-down .laser-cursor__ring {
    transform: scale(0.85);
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  .laser-cursor__ring { transition: none; }
}

/* === Graphic Design / Logo Branding page === */
.graphic-page .graphic-hero { padding-bottom: 3.5rem; }
.graphic-hero__grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 2.5rem;
  align-items: center;
}
.graphic-hero__lead { font-size: 1.1rem; max-width: 52ch; }
.graphic-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.graphic-hero__media {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--navy);
  aspect-ratio: 4 / 3;
}
.graphic-hero__media img,
.graphic-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.graphic-intro p {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 68ch;
}
.graphic-intro p + p { margin-top: 1rem; }

.graphic-showcase {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}
.graphic-showcase__item {
  margin: 0;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.graphic-showcase__media {
  aspect-ratio: 4 / 3;
  background: var(--paper-2, #f0ece6);
  overflow: hidden;
}
.graphic-showcase__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s var(--ease, ease);
}
.graphic-showcase__item:hover .graphic-showcase__media img {
  transform: scale(1.04);
}
.graphic-showcase__label {
  margin: 0;
  padding: 0.75rem 1rem 0.9rem;
  font-family: var(--font-display);
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy);
  border-top: 3px solid #f3c91a;
}

.graphic-types {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 1.25rem;
}
.graphic-types li {
  position: relative;
  padding: 0.85rem 1rem 0.85rem 1.35rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-weight: 600;
  color: var(--ink);
}
.graphic-types li::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 1.15rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--red);
}

.graphic-logo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.graphic-logo-grid__item {
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: #111;
  border: 1px solid var(--line);
  aspect-ratio: 1 / 1;
  box-shadow: var(--shadow);
}
.graphic-logo-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.graphic-process {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  counter-reset: none;
}
.graphic-process__step {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 1rem;
  align-items: start;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem 1.35rem;
  box-shadow: var(--shadow);
}
.graphic-process__num {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: #f3c91a;
  line-height: 1;
  background: var(--navy);
  border-radius: 0.5rem;
  text-align: center;
  padding: 0.65rem 0.35rem;
}
.graphic-process__body h3 {
  margin: 0 0 0.35rem;
  font-size: 1.2rem;
}
.graphic-process__body p {
  margin: 0;
  color: var(--muted);
  font-size: 0.98rem;
}

.graphic-pricing {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 1.5rem;
  align-items: start;
}
.graphic-pricing__card,
.graphic-pricing__example {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.6rem 1.5rem 1.7rem;
  box-shadow: var(--shadow);
}
.graphic-pricing__rate {
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--navy);
}
.graphic-pricing__rate .price-tag {
  font-size: 2.4rem;
  color: var(--red);
  font-weight: 700;
}
.graphic-pricing__rate .meta { color: var(--muted); font-size: 1rem; }
.graphic-pricing__facts {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--muted);
}
.graphic-pricing__facts li { margin: 0.35rem 0; }
.graphic-pricing__example h3 {
  margin: 0 0 0.85rem;
  font-size: 1.2rem;
}
.graphic-pricing__note {
  margin: 0.85rem 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.graphic-motion {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.15rem;
}
.graphic-motion__item {
  margin: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.graphic-motion__media {
  aspect-ratio: 9 / 16;
  background: var(--navy);
  overflow: hidden;
}
.graphic-motion__media img,
.graphic-motion__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.graphic-motion__item figcaption {
  padding: 0.75rem 1rem 0.9rem;
  font-size: 0.92rem;
  color: var(--muted);
}

.graphic-close .cta-band { align-items: flex-start; }

@media (max-width: 1200px) {
  .graphic-motion { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .graphic-hero__grid { grid-template-columns: 1fr; }
  .graphic-hero__media { max-width: 480px; }
  .graphic-showcase,
  .graphic-types,
  .graphic-motion { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .graphic-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .graphic-pricing { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .graphic-showcase,
  .graphic-types,
  .graphic-motion,
  .graphic-logo-grid { grid-template-columns: 1fr; }
  .graphic-process__step { grid-template-columns: 3.5rem 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .graphic-showcase__item:hover .graphic-showcase__media img { transform: none; }
}

.laser-affiliate__wrap {
  margin: 0 auto;
  max-width: 520px;
}
.laser-affiliate__card {
  height: auto;
}
@media (min-width: 720px) {
  .laser-affiliate__card.footer-affiliate__card {
    flex-direction: row;
    align-items: stretch;
    gap: 1.15rem;
    max-width: none;
  }
  .laser-affiliate__card .footer-affiliate__img {
    width: 46%;
    max-width: 240px;
    flex-shrink: 0;
    aspect-ratio: 4 / 3;
  }
  .laser-affiliate__wrap {
    max-width: 720px;
  }
}

.footer-affiliate__media {
  display: block;
  text-decoration: none !important;
  color: inherit;
}
.footer-affiliate__title {
  text-decoration: none !important;
  color: #fff;
  transition: color 0.2s var(--ease);
}
.footer-affiliate__title:hover,
.footer-affiliate__title:focus-visible {
  color: #f3c91a;
}
.footer-affiliate__links {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.footer-affiliate__links a {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  color: rgba(247, 245, 242, 0.88);
  text-decoration: none !important;
  border-bottom: 1px solid transparent;
  transition: color 0.2s var(--ease), border-color 0.2s var(--ease);
}
.footer-affiliate__links a:hover,
.footer-affiliate__links a:focus-visible {
  color: #f3c91a;
  border-bottom-color: rgba(243, 201, 26, 0.55);
}

/* OMTech affiliate — product / promo cards */
.omtech-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.85rem;
  align-items: stretch;
}
.omtech-card {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.75rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 10px 24px rgba(0, 0, 0, 0.18);
  text-decoration: none !important;
  color: inherit;
  min-width: 0;
  transition: border-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.omtech-card:hover,
.omtech-card:focus-visible {
  border-color: rgba(243, 201, 26, 0.55);
  transform: translateY(-2px);
}
.omtech-card__media {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  background: #0a0d24;
}
.omtech-card__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.omtech-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
  flex: 1;
}
.omtech-card__eyebrow {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #f3c91a;
}
.omtech-card__title {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
  letter-spacing: 0.01em;
}
.omtech-card__note {
  display: block;
  font-size: 0.72rem;
  line-height: 1.35;
  color: rgba(247, 245, 242, 0.7);
}
.omtech-card__code {
  display: inline-flex;
  align-self: flex-start;
  margin-top: 0.35rem;
  padding: 0.28rem 0.55rem;
  border-radius: 8px;
  border: 1px dashed rgba(243, 201, 26, 0.65);
  background: rgba(243, 201, 26, 0.1);
  color: #f3c91a;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.laser-affiliate {
  padding-block: 2.75rem;
}
.laser-affiliate .section__header .section__lead {
  color: rgba(247, 245, 242, 0.78);
}
.footer-affiliate-band {
  margin: 0 0 2rem;
}
.footer-affiliate-band__label {
  margin: 0 0 0.85rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f3c91a;
}
@media (max-width: 1100px) {
  .omtech-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .omtech-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .omtech-cards { grid-template-columns: 1fr; }
}

.laser-affiliate .section__eyebrow,
.footer-affiliate-band__label,
.omtech-card__eyebrow {
  color: #f3c91a !important;
}
.laser-affiliate__blurb {
  margin: 1.15rem 0 0;
  max-width: none;
  width: 100%;
  color: #fff !important;
  font-size: 1rem;
  line-height: 1.55;
}


/* === Laser Ready Blanks (/laser-blanks/) === */
.laser-blanks__intro-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.25rem;
}
.laser-blanks__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
.laser-blanks__card {
  height: 100%;
}
.laser-blanks__media {
  aspect-ratio: 1 / 1;
  background: #1a1f2e;
}
.laser-blanks__media img,
.laser-blanks__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.laser-blanks-close .cta-band {
  align-items: flex-start;
}
.laser-blanks-close__contact {
  margin: 0.85rem 0 0;
  font-size: 0.95rem;
}
.laser-blanks-close__contact a {
  color: #f3c91a;
  text-decoration: none;
  font-weight: 600;
}
.laser-blanks-close__contact a:hover,
.laser-blanks-close__contact a:focus-visible {
  text-decoration: underline;
}
@media (max-width: 900px) {
  .laser-blanks__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .laser-blanks__grid {
    grid-template-columns: 1fr;
  }
}


/* Laser Ready Blanks hero — wholesale serving bg + home rotator; fade into Start here (no yellow bar) */
.laser-blanks .laser-blanks-hero {
  border-bottom: none;
}
.laser-blanks .laser-blanks-hero .hero__media {
  background-color: #0f143a;
}
/* Soften / extend bottom fade so hero blends into Start here (#0f143a) */
.laser-blanks .laser-blanks-hero.home-hero::after {
  height: clamp(120px, 22vw, 220px);
  background: linear-gradient(
    to bottom,
    rgba(15, 20, 58, 0) 0%,
    rgba(15, 20, 58, 0.45) 40%,
    rgba(15, 20, 58, 0.85) 72%,
    #0f143a 100%
  );
}

/* 1.8.114 — Laser Blanks "What we stock": true full width + 60px side padding (1.8.118) */
section#categories.section > .container.laser-blanks__stock-inner {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
	padding-left: 60px !important;
	padding-right: 60px !important;
	box-sizing: border-box;
}
@media (max-width: 768px) {
	section#categories.section > .container.laser-blanks__stock-inner { padding-left: 20px !important; padding-right: 20px !important; }
}

/* 1.8.116 — Laser Blanks: new metal-sheet.png + Acrylic Sheets category (acrylic-sheets.png) */

/* 1.8.117 — What we stock: 5-card layout */
#categories .laser-blanks__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1200px) { #categories .laser-blanks__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1024px) { #categories .laser-blanks__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px) { #categories .laser-blanks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { #categories .laser-blanks__grid { grid-template-columns: 1fr; } }

/* 1.8.120 — compact scrolled logo (fits nav + breadcrumb) */
.site-header.is-scrolled .site-branding img.site-branding__logo--scroll {
  display: block !important;
  height: 26px !important;
  width: auto !important;
  max-width: min(142px, 40vw) !important;
  object-fit: contain;
}
@media (max-width: 900px) {
  .site-header.is-scrolled .site-branding img.site-branding__logo--scroll {
    height: 22px !important;
    max-width: min(120px, 45vw) !important;
  }
}

/* 1.8.122: Laser blanks hero scroll-mouse cue */
.laser-blanks-hero { position: relative; }
.hero-scroll-mouse { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none; opacity: .9; transition: opacity .2s; }
.hero-scroll-mouse:hover, .hero-scroll-mouse:focus-visible { opacity: 1; }
.hero-scroll-mouse__body { position: relative; width: 26px; height: 42px; border: 2px solid #fff; border-radius: 14px; box-shadow: 0 2px 10px rgba(11,31,58,.35); }
.hero-scroll-mouse__wheel { position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #f3c91a; animation: heroScrollWheel 1.6s ease-in-out infinite; }
.hero-scroll-mouse__chevron { width: 10px; height: 10px; border-right: 2px solid #f3c91a; border-bottom: 2px solid #f3c91a; transform: rotate(45deg); animation: heroScrollChevron 1.6s ease-in-out infinite; }
@keyframes heroScrollWheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
@keyframes heroScrollChevron { 0%,100% { opacity: .4; transform: translateY(0) rotate(45deg); } 50% { opacity: 1; transform: translateY(4px) rotate(45deg); } }
@media (max-width: 640px) { .hero-scroll-mouse { bottom: 16px; } .hero-scroll-mouse__body { width: 22px; height: 36px; } }
@media (prefers-reduced-motion: reduce) { .hero-scroll-mouse__wheel, .hero-scroll-mouse__chevron { animation: none; } }

/* 1.8.127 — Shop mega: 4 even single-stack columns, one-line title + desc */
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; column-gap: 1.25rem; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__list { grid-template-columns: 1fr; row-gap: 0.35rem; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link { grid-template-columns: 40px minmax(0, 1fr); gap: 0.6rem; align-items: center; padding: 0.4rem 0; min-width: 0; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link > * { min-width: 0; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__thumb { width: 40px; height: 40px; border-radius: 8px; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__heading { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-title,
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-title-line,
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-desc { display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; -webkit-line-clamp: unset; line-clamp: unset; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-title, .mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-title-line { font-size: 0.92rem; line-height: 1.25; }
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-desc { font-size: 0.76rem; line-height: 1.3; }
@media (max-width: 1100px) { .mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 900px) { .mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 760px) { .mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) { grid-template-columns: 1fr !important; } }

/* 1.8.128 — fix duplicated Shop item titles: keep roll duplicate hidden */
.mega-menu__grid--cols-5:has(> .mega-menu__col--blanks) .mega-menu__link-title-line--roll,
.mega-menu .mega-menu__link-title-line--roll { display: none !important; }


/* 1.8.133 — DTF Gang Sheet: gallery note + under-SKU accordion */
.dtf-gallery-note {
  margin: 1.25rem 0 0;
  padding: 1.15rem 1.25rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  border-left: 4px solid #f3c91a;
}
.dtf-gallery-note__label {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  color: var(--navy);
}
.dtf-gallery-note__peel {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  color: var(--ink);
  line-height: 1.45;
}
.dtf-gallery-note__subhead {
  margin: 0 0 0.35rem;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  color: var(--navy);
}
.dtf-gallery-note__turnaround {
  margin: 0 0 0.85rem;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--red);
  letter-spacing: 0.02em;
}
.dtf-gallery-note__policy {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--muted);
}
.dtf-gallery-note__link {
  color: var(--navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.dtf-gallery-note__link:hover,
.dtf-gallery-note__link:focus-visible {
  color: var(--red);
}

.dtf-info-block {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.25fr);
  gap: 1.5rem 1.75rem;
  margin: 1.5rem 0 0;
  padding: 1.35rem 1.4rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  clear: both;
  width: calc(100% + 40px);
  max-width: calc(100% + 40px);
  box-sizing: border-box;
}
.dtf-info-block__note {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ink);
}
.dtf-info-block__note p { margin: 0; }
.dtf-info-block__em {
  font-style: italic;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--navy);
}
.dtf-info-block__em-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.dtf-info-block__em-link:hover .dtf-info-block__em,
.dtf-info-block__em-link:focus-visible .dtf-info-block__em {
  color: var(--red);
}

.dtf-info-block__timeline-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.85rem;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 600;
}
.dtf-info-block__timeline-icon {
  display: inline-flex;
  color: var(--navy-mid);
}
.dtf-info-block__timeline-label { letter-spacing: 0.01em; }

.dtf-accordion {
  position: relative;
  padding-left: 1.1rem;
  border-left: 2px solid var(--line);
}
.dtf-accordion__item {
  position: relative;
  margin: 0 0 0.35rem;
  padding: 0 0 0.35rem 0.35rem;
  background: transparent;
  border: 0;
}
.dtf-accordion__item::before {
  content: "";
  position: absolute;
  left: -1.22rem;
  top: 1.05rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--paper);
  border: 2px solid var(--line);
  box-sizing: border-box;
}
.dtf-accordion__item[open]::before {
  background: var(--navy);
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(243, 201, 26, 0.45);
}
.dtf-accordion__summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.15rem 0.65rem 0;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.35;
  color: var(--ink);
}
.dtf-accordion__summary::-webkit-details-marker { display: none; }
.dtf-accordion__summary::after {
  content: "";
  flex: 0 0 auto;
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.35rem;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg);
  transition: transform 0.2s var(--ease);
}
.dtf-accordion__item[open] > .dtf-accordion__summary::after {
  margin-top: 0.55rem;
  transform: rotate(-135deg);
  border-color: var(--navy);
}
.dtf-accordion__body {
  padding: 0 0.15rem 0.85rem 0;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.55;
}
.dtf-accordion__body p { margin: 0 0 0.65rem; }
.dtf-accordion__body ul {
  margin: 0;
  padding-left: 1.15rem;
}
.dtf-accordion__body li { margin-bottom: 0.35rem; }
.dtf-accordion__body li::marker { color: var(--red); }

@media (max-width: 900px) {
  .dtf-info-block {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }
}
/* 1.8.422 — the +40px bleed pushed the page 20px sideways at ~1024px; keep it inside the column below 1280px. */
@media (max-width: 1279px) {
  .dtf-info-block { width: 100%; max-width: 100%; }
}

/* 1.8.135 — DTF under-SKU info/accordion widened +40px */
/* 1.8.134 — DTF Gang Sheet: two-column layout (gallery+note | summary) + selectable gallery */
body.dtf-gang-sheet-product .woocommerce div.product,
body.dtf-gang-sheet-product.woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 2rem;
  row-gap: 1.25rem;
  align-items: start;
}

body.dtf-gang-sheet-product .woocommerce #content div.product .dtf-product-gallery,
body.dtf-gang-sheet-product .woocommerce div.product .dtf-product-gallery,
body.dtf-gang-sheet-product.woocommerce-page div.product .dtf-product-gallery {
  grid-column: 1;
  grid-row: 1;
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  position: relative;
}

body.dtf-gang-sheet-product .woocommerce #content div.product .dtf-gallery-note,
body.dtf-gang-sheet-product .woocommerce div.product .dtf-gallery-note,
body.dtf-gang-sheet-product.woocommerce-page div.product .dtf-gallery-note {
  grid-column: 1;
  grid-row: 2;
  float: none;
  clear: none;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
}

body.dtf-gang-sheet-product .woocommerce #content div.product div.summary,
body.dtf-gang-sheet-product .woocommerce div.product div.summary,
body.dtf-gang-sheet-product.woocommerce-page div.product div.summary {
  grid-column: 2;
  grid-row: 1 / span 2;
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-top: 0;
  align-self: start;
}

/* Full-width blocks after the two-column hero (tabs, related, etc.) */
body.dtf-gang-sheet-product .woocommerce div.product > .woocommerce-tabs,
body.dtf-gang-sheet-product .woocommerce div.product > .related,
body.dtf-gang-sheet-product .woocommerce div.product > .upsells,
body.dtf-gang-sheet-product .woocommerce div.product > section.related,
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-info-block {
  grid-column: 1 / -1;
}

.dtf-product-gallery__stage {
  margin: 0;
  background: #f4f4f4;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
  aspect-ratio: 1 / 1;
}
.dtf-product-gallery__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
}
.dtf-product-gallery__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.75rem;
}
.dtf-product-gallery__thumb {
  appearance: none;
  -webkit-appearance: none;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 0;
  margin: 0;
  background: #fff;
  width: 72px;
  height: 72px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.dtf-product-gallery__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dtf-product-gallery__thumb:hover,
.dtf-product-gallery__thumb:focus-visible {
  border-color: var(--navy, #0b1f3a);
  outline: none;
}
.dtf-product-gallery__thumb.is-active {
  border-color: var(--yellow, #f5c518);
  box-shadow: 0 0 0 1px var(--yellow, #f5c518);
}

@media (max-width: 768px) {
  body.dtf-gang-sheet-product .woocommerce div.product,
  body.dtf-gang-sheet-product.woocommerce div.product {
    grid-template-columns: 1fr;
    row-gap: 1rem;
  }
  body.dtf-gang-sheet-product .woocommerce div.product .dtf-product-gallery,
  body.dtf-gang-sheet-product .woocommerce div.product .dtf-gallery-note,
  body.dtf-gang-sheet-product .woocommerce div.product div.summary {
    grid-column: 1;
    grid-row: auto;
    float: none;
    width: 100%;
  }
  .dtf-product-gallery__stage {
    min-height: 220px;
    aspect-ratio: 4 / 3;
  }
}

/* ==========================================================================
   Shop / WooCommerce video hero (printer-header)
   ========================================================================== */
.shop-page .shop-hero {
  position: relative;
  overflow: hidden;
  background: #0f143a;
  padding: 0 0 3.5rem;
  min-height: clamp(460px, 78vh, 760px);
  display: flex;
  align-items: center;
}
.shop-page .shop-hero::before { display: none; }
.shop-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.shop-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.shop-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(15, 20, 58, 0.82) 0%, rgba(15, 20, 58, 0.55) 48%, rgba(0, 0, 0, 0.35) 100%),
    rgba(0, 0, 0, 0.45);
}
.shop-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 4.5rem 0 3.5rem;
}
.shop-hero__lead {
  font-size: 1.15rem;
  max-width: 42ch;
  font-weight: 500;
  color: rgba(247, 245, 242, 0.86);
  margin-top: 0.65rem;
}
.shop-page .shop-hero .hero__eyebrow {
  font-size: calc(0.8rem + 2px);
}
.shop-page .shop-hero .hero__eyebrow::before {
  width: calc(28px + 2px);
  height: calc(1px + 2px);
  background: #f3c91a;
}
.shop-page .shop-hero h1 {
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
@media (prefers-reduced-motion: reduce) {
  .shop-hero__video { display: none; }
}
@media (max-width: 767px) {
  .shop-page .shop-hero {
    min-height: clamp(320px, 62vh, 520px);
    padding-bottom: 2.5rem;
  }
  .shop-hero__content {
    padding: 3.25rem 0 2.5rem;
  }
}

/* 1.8.137 — DTF NOTE lives inside gallery column, 20px under thumbs; summary no longer spans its row */
body.dtf-gang-sheet-product .woocommerce div.product div.summary,
body.dtf-gang-sheet-product.woocommerce-page div.product div.summary {
  grid-row: 1;
}
body.dtf-gang-sheet-product div.product .dtf-product-gallery .dtf-gallery-note {
  grid-column: auto;
  grid-row: auto;
  margin: 20px 0 0 !important;
  width: 100%;
  float: none;
}

/* 1.8.139 — DTF disclaimer moved under gallery NOTE; under-SKU block = accordion only */
body.dtf-gang-sheet-product div.product .dtf-product-gallery .dtf-gallery-disclaimer {
  margin: 20px 0 0;
  padding: 1.1rem 1.25rem;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.dtf-info-block { grid-template-columns: minmax(0, 1fr); }

/* 1.8.140 — DTF Size variation dropdown: taller box, item text +4pt */
body.dtf-gang-sheet-product div.product form.variations_form table.variations select {
	min-height: 52px;
	padding: 10px 40px 10px 14px;
	font-size: calc(1rem + 4pt);
	line-height: 1.3;
	border: 1px solid #c9ced8;
	border-radius: 8px;
	background-color: #fff;
}
body.dtf-gang-sheet-product div.product form.variations_form table.variations select option {
	font-size: calc(1rem + 4pt);
	padding: 8px 12px;
}
body.dtf-gang-sheet-product div.product form.variations_form table.variations th.label,
body.dtf-gang-sheet-product div.product form.variations_form table.variations td.value {
	vertical-align: middle;
}


/* 1.8.141 — DTF Artwork Recommendations (4-card, above Additional tabs) */
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-considerations,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-considerations,
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-recs,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-recs {
  grid-column: 1 / -1;
  float: none;
  width: 100%;
  clear: both;
  margin: 2.5rem 0 1.5rem;
}
.dtf-artwork-recs {
  padding: 2rem 0 0.5rem;
  border-top: 1px solid var(--line);
}
.dtf-artwork-recs__header {
  margin-bottom: 1.75rem;
  max-width: 52rem;
}
.dtf-artwork-recs__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red, #8f1c2c);
}
.dtf-artwork-recs__eyebrow::before {
  content: "";
  width: 28px;
  height: 2px;
  background: #f3c91a;
}
.dtf-artwork-recs__title {
  margin: 0 0 0.45rem;
  color: var(--navy, #0f143a);
  font-size: clamp(1.65rem, 2.6vw, 2.15rem);
}
.dtf-artwork-recs__lead {
  margin: 0;
  color: var(--muted);
  font-size: 1.02rem;
  max-width: 48ch;
}
.dtf-artwork-recs__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.15rem;
}
.dtf-artwork-recs__card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  min-height: 100%;
}
.dtf-artwork-recs__media {
  aspect-ratio: 4 / 3;
  background: linear-gradient(145deg, #0f143a 0%, #272c67 55%, #1a2148 100%);
  position: relative;
}
.dtf-artwork-recs__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  color: rgba(255, 255, 255, 0.88);
  border-bottom: 3px solid #f3c91a;
}
.dtf-artwork-recs__placeholder-num {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  background: rgba(243, 201, 26, 0.18);
  border: 1px solid #f3c91a;
  color: #f3c91a;
}
.dtf-artwork-recs__placeholder-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
}
.dtf-artwork-recs__body {
  padding: 1.15rem 1.2rem 1.35rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.dtf-artwork-recs__card-title {
  margin: 0;
  font-size: 1.05rem;
  color: var(--navy, #0f143a);
  line-height: 1.3;
}
.dtf-artwork-recs__card-text {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--muted);
}
@media (max-width: 1024px) {
  .dtf-artwork-recs__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .dtf-artwork-recs__grid {
    grid-template-columns: 1fr;
  }
}

/* 1.8.142 — Artwork Considerations (Merch-style exclusive accordion) */
.dtf-artwork-considerations {
  clear: both;
  margin: 2.5rem 0 1.75rem;
  padding: 0;
}
.dtf-artwork-considerations__header {
  margin: 0 0 1.5rem;
  max-width: 42rem;
}
.dtf-artwork-considerations__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-head);
  font-size: clamp(1.65rem, 2.4vw, 2.15rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--ink, #111);
  letter-spacing: -0.02em;
}
.dtf-artwork-considerations__lead {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--muted);
}

.dtf-ac-list.dtf-accordion {
  padding-left: 0;
  border-left: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.dtf-ac-list .dtf-accordion__item,
.dtf-ac-list__item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(15, 20, 58, 0.08);
}
.dtf-ac-list .dtf-accordion__item::before,
.dtf-ac-list__item::before {
  display: none;
}
.dtf-ac-list .dtf-accordion__summary,
.dtf-ac-list__summary {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: 1.15rem 0.15rem;
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.35;
  color: var(--ink, #111);
}
.dtf-ac-list .dtf-accordion__summary::after,
.dtf-ac-list__summary::after {
  display: none; /* custom +/- toggle */
}
.dtf-ac-list__badge {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--navy, #0f143a);
  border: 2px solid #f3c91a;
  box-shadow: inset 0 0 0 1px rgba(143, 28, 44, 0.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.dtf-ac-list__badge-mark {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #f3c91a;
  line-height: 1;
}
.dtf-ac-list__label {
  min-width: 0;
}
.dtf-ac-list__toggle {
  position: relative;
  width: 1.1rem;
  height: 1.1rem;
  flex: 0 0 auto;
  color: var(--muted);
}
.dtf-ac-list__toggle::before,
.dtf-ac-list__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.dtf-ac-list__toggle::before {
  width: 14px;
  height: 2px;
}
.dtf-ac-list__toggle::after {
  width: 2px;
  height: 14px;
}
.dtf-ac-list__item[open] > .dtf-ac-list__summary .dtf-ac-list__toggle {
  color: var(--navy, #0f143a);
}
.dtf-ac-list__item[open] > .dtf-ac-list__summary .dtf-ac-list__toggle::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.dtf-ac-list__item[open] > .dtf-ac-list__summary .dtf-ac-list__toggle::after {
  transform: translate(-50%, -50%) rotate(45deg);
}
.dtf-ac-list .dtf-accordion__body,
.dtf-ac-list__body {
  padding: 0 0 1.25rem 3.85rem; /* align under label (badge + gap) */
  max-width: 46rem;
  color: var(--muted);
  font-size: 0.98rem;
  line-height: 1.6;
}
.dtf-ac-list__body p { margin: 0; }

@media (max-width: 640px) {
  .dtf-ac-list .dtf-accordion__summary,
  .dtf-ac-list__summary {
    gap: 0.75rem;
    padding: 1rem 0;
    font-size: 0.98rem;
  }
  .dtf-ac-list__badge {
    width: 38px;
    height: 38px;
  }
  .dtf-ac-list .dtf-accordion__body,
  .dtf-ac-list__body {
    padding-left: 0.15rem;
  }
}

/* 1.8.143 DTF variation price: +8pt, bold, brand red */
body.dtf-gang-sheet-product .single_variation_wrap .woocommerce-variation-price .price,
body.dtf-gang-sheet-product .single_variation_wrap .woocommerce-variation-price .price .amount,
body.dtf-gang-sheet-product .single_variation_wrap .woocommerce-variation-price .price bdi {
	font-size: calc(1.25rem + 8pt) !important;
	font-weight: 800 !important;
	color: var(--red, #8f1c2c) !important;
}
body.dtf-gang-sheet-product .single_variation_wrap .woocommerce-variation-price .price .amount,
body.dtf-gang-sheet-product .single_variation_wrap .woocommerce-variation-price .price bdi { font-size: inherit !important; }

/* 1.8.144 — Artwork Recommendations card images */
.dtf-artwork-recs__media--has-image { padding: 0; overflow: hidden; }
.dtf-artwork-recs__img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* 1.8.146 — Artwork Recs fee note */
.dtf-artwork-recs__fee { margin: 24px 0 0; text-align: center; color: var(--navy, #0f143a); font-size: 1.05rem; font-weight: 600; line-height: 1.5; }
.dtf-artwork-recs__fee-price { color: var(--red, #8f1c2c); font-weight: 800; }

/* 1.8.147 — Full-fit card images, two-column artwork row, shop hero scroll-mouse */
.dtf-artwork-recs__media {
  aspect-ratio: 5 / 4; /* ~40px taller than prior 4/3 at card widths */
  padding: 0;
  overflow: hidden;
  position: relative;
}
.dtf-artwork-recs__media--has-image {
  padding: 0 !important;
  overflow: hidden;
  background: linear-gradient(145deg, #0f143a 0%, #272c67 55%, #1a2148 100%) !important;
}
.dtf-artwork-recs__media .dtf-artwork-recs__img,
.dtf-artwork-recs__img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* Two-column: Considerations | Recommendations */
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-row,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-row {
  grid-column: 1 / -1;
  float: none;
  width: 100%;
  clear: both;
  margin: 2.5rem 0 1.5rem;
}
.dtf-artwork-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 2rem 2.25rem;
  align-items: start;
}
.dtf-artwork-row .dtf-artwork-considerations,
.dtf-artwork-row .dtf-artwork-recs {
  margin: 0;
  padding: 0;
  border-top: 0;
  clear: none;
  width: 100%;
  float: none;
}
.dtf-artwork-row .dtf-artwork-recs {
  border-left: 1px solid var(--line);
  padding-left: 2rem;
}
.dtf-artwork-row .dtf-artwork-recs__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 1024px) {
  .dtf-artwork-row {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .dtf-artwork-row .dtf-artwork-recs {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid var(--line);
    padding-top: 1.75rem;
  }
}
@media (max-width: 640px) {
  .dtf-artwork-row .dtf-artwork-recs__grid {
    grid-template-columns: 1fr;
  }
}

/* Shop video hero scroll-mouse (reuse laser-blanks .hero-scroll-mouse) */
.shop-page .shop-hero { position: relative; }
.shop-page .shop-hero .hero-scroll-mouse { z-index: 4; }

/* 1.8.148: Artwork row full-bleed */
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-row,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-row,
body.dtf-gang-sheet-product .dtf-artwork-row {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 2.5rem clamp(1rem, 4vw, 3.5rem);
  box-sizing: border-box;
}

/* 1.8.150 — Artwork recs: container follows image aspect; full image, no crop, no max-height crush */
.dtf-artwork-recs__media {
  aspect-ratio: auto;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  overflow: hidden;
  position: relative;
  background: transparent;
}
.dtf-artwork-recs__media:not(.dtf-artwork-recs__media--has-image) {
  aspect-ratio: 16 / 10;
  min-height: 8rem;
  background: linear-gradient(145deg, #0f143a 0%, #272c67 55%, #1a2148 100%);
}
.dtf-artwork-recs__media--has-image {
  display: block !important;
  align-items: unset !important;
  justify-content: unset !important;
  padding: 0 !important;
  overflow: hidden;
  max-height: none !important;
  background: transparent !important;
}
.dtf-artwork-recs__media .dtf-artwork-recs__img,
.dtf-artwork-recs__img {
  display: block !important;
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: unset !important;
  object-position: unset !important;
  margin: 0 !important;
}
.dtf-artwork-row .dtf-artwork-recs__card {
  max-width: none;
  width: 100%;
}
.dtf-artwork-row .dtf-artwork-recs__grid {
  justify-items: stretch;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.dtf-artwork-recs__body {
  padding: 1rem 1.1rem 1.2rem;
}
.dtf-artwork-recs__card-title {
  font-size: 1.02rem;
}
.dtf-artwork-recs__card-text {
  font-size: 0.88rem;
}


/* 1.8.151 — Split artwork sections: Considerations 3x2 expandable grid, then Recommendations 4-card; two-col row removed */
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-considerations,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-considerations,
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-recs,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-recs {
  grid-column: 1 / -1;
  float: none;
  width: 100vw;
  max-width: 100vw;
  clear: both;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: clamp(1rem, 4vw, 3.5rem);
  padding-right: clamp(1rem, 4vw, 3.5rem);
  box-sizing: border-box;
}
body.dtf-gang-sheet-product div.product > .dtf-artwork-considerations {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  padding-top: 0;
  padding-bottom: 1.5rem;
}
body.dtf-gang-sheet-product div.product > .dtf-artwork-recs {
  margin-top: 0;
  margin-bottom: 2rem;
  padding-top: 2.25rem;
  padding-bottom: 0.5rem;
  border-top: 1px solid var(--line);
}

/* 3x2 expandable Considerations grid (IDX badge + title + toggle) */
.dtf-ac-list.dtf-ac-grid.dtf-accordion {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem 1.15rem;
  padding-left: 0;
  border-left: 0;
  align-items: start;
}
.dtf-ac-grid .dtf-ac-list__item {
  margin: 0;
  padding: 0;
  border: 1px solid rgba(15, 20, 58, 0.12);
  border-radius: var(--radius, 10px);
  background: var(--white, #fff);
  box-shadow: var(--shadow, 0 1px 3px rgba(15, 20, 58, 0.06));
  overflow: hidden;
}
.dtf-ac-grid .dtf-ac-list__summary {
  padding: 1rem 1rem;
  gap: 0.8rem;
  font-size: 1rem;
  cursor: pointer;
}
.dtf-ac-grid .dtf-ac-list__body {
  padding: 0 1rem 1.1rem;
  max-width: none;
  font-size: 0.93rem;
}
.dtf-ac-grid .dtf-ac-list__badge { width: 42px; height: 42px; }

/* Recommendations: 4-up, images full width, height auto, no crop */
.dtf-artwork-recs__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.15rem; }

@media (max-width: 1024px) {
  .dtf-ac-list.dtf-ac-grid.dtf-accordion { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dtf-artwork-recs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .dtf-ac-list.dtf-ac-grid.dtf-accordion { grid-template-columns: 1fr; }
  .dtf-artwork-recs__grid { grid-template-columns: 1fr; }
  .dtf-ac-grid .dtf-ac-list__body { padding-left: 1rem; }
}


/* 1.8.152 — Artwork & Pressing Instructions page */
.artwork-press-page .artwork-press-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 2rem 2.5rem;
  align-items: center;
}
.artwork-press-page .artwork-press-hero__lead {
  color: rgba(247, 245, 242, 0.78);
  max-width: 52ch;
  font-size: 1.08rem;
  line-height: 1.55;
}
.artwork-press-page .artwork-press-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.35rem;
}
.artwork-press-page .artwork-press-hero__media {
  border-radius: var(--radius, 12px);
  overflow: hidden;
  box-shadow: var(--shadow-lg, 0 18px 40px rgba(0, 0, 0, 0.28));
  background: rgba(15, 20, 58, 0.35);
}
.artwork-press-page .artwork-press-hero__img {
  display: block;
  width: 100%;
  height: auto;
}
.artwork-press-intro p {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--ink-muted, #3a4060);
}
.artwork-press-intro a {
  color: var(--red, #8f1c2c);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.artwork-press-steps__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}
.artwork-press-steps__card {
  position: relative;
  padding: 1.35rem 1.25rem 1.4rem;
  border: 1px solid rgba(15, 20, 58, 0.12);
  border-radius: var(--radius, 10px);
  background: var(--white, #fff);
  box-shadow: var(--shadow, 0 1px 3px rgba(15, 20, 58, 0.06));
}
.artwork-press-steps__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin-bottom: 0.75rem;
  border-radius: 999px;
  background: var(--navy, #0f143a);
  color: #f3c91a;
  font-weight: 800;
  font-size: 0.92rem;
}
.artwork-press-steps__title {
  margin: 0 0 0.55rem;
  font-family: var(--font-head);
  font-size: 1.15rem;
  color: var(--navy, #0f143a);
}
.artwork-press-steps__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--ink-muted, #3a4060);
}
.artwork-press-steps__note {
  margin: 1.75rem 0 0;
  text-align: center;
  font-size: 1rem;
  color: var(--navy, #0f143a);
}
.artwork-press-steps__note a {
  margin-left: 0.35rem;
  color: var(--red, #8f1c2c);
  font-weight: 700;
}
.artwork-press-reuse__inner > .dtf-artwork-considerations,
.artwork-press-reuse__inner > .dtf-artwork-recs {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
.artwork-press-reuse__inner > .dtf-artwork-considerations {
  margin-bottom: 2rem;
  padding-bottom: 0.5rem;
}
.artwork-press-reuse__inner > .dtf-artwork-recs {
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}
@media (max-width: 1024px) {
  .artwork-press-page .artwork-press-hero__grid {
    grid-template-columns: 1fr;
  }
  .artwork-press-steps__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .artwork-press-steps__grid {
    grid-template-columns: 1fr;
  }
}


/* DTF turnaround announce bar (DTF pages only) — top-most, yellow/navy, one line */
.dtf-announce {
  position: relative;
  z-index: 1001;
  width: 100%;
  background: #f3c91a;
  color: #0b1f3a;
  font-size: clamp(0.56rem, 0.95vw, 0.8rem);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  padding: 0.45rem 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.dtf-announce::-webkit-scrollbar { display: none; }
.dtf-announce__inner {
  display: flex;
  align-items: center;
  justify-content: center;
}
.dtf-announce__text {
  margin: 0;
  white-space: nowrap;
  text-align: center;
  font-weight: 600;
  color: #0b1f3a;
  line-height: 1.3;
}
.dtf-announce__label {
  color: #0b1f3a;
  font-weight: 800;
  margin-right: 0.35em;
}
body.idx-dtf-page {
  --announce-h: 74px;
}
@media (max-width: 720px) {
  .dtf-announce__inner { justify-content: flex-start; }
  .dtf-announce__text { letter-spacing: 0; padding-inline: 0.5rem; }
}

/* 1.8.155 — DTF product: compact link to Artwork & Pressing Instructions page */
.dtf-artwork-guide-link {
  width: 100%;
  margin: 1.5rem 0 2rem;
  clear: both;
}
.dtf-artwork-guide-link__card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.25rem;
  padding: 1.1rem 1.35rem;
  border: 1px solid var(--line, #e2e4ec);
  border-radius: 12px;
  background: var(--white, #fff);
  text-decoration: none;
  color: var(--navy, #0f143a);
  box-shadow: 0 1px 2px rgba(15, 20, 58, 0.04);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.dtf-artwork-guide-link__card:hover,
.dtf-artwork-guide-link__card:focus-visible {
  border-color: var(--navy, #0f143a);
  box-shadow: 0 4px 14px rgba(15, 20, 58, 0.08);
}
.dtf-artwork-guide-link__eyebrow {
  flex: 0 0 auto;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft, #5b6178);
}
.dtf-artwork-guide-link__title {
  flex: 1 1 auto;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--navy, #0f143a);
}
.dtf-artwork-guide-link__cta {
  flex: 0 0 auto;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--red, #8f1c2c);
}
.dtf-artwork-guide-link__cta::after {
  content: " →";
}
body.dtf-gang-sheet-product .woocommerce div.product > .dtf-artwork-guide-link,
body.dtf-gang-sheet-product.woocommerce-page div.product > .dtf-artwork-guide-link {
  grid-column: 1 / -1;
  width: 100%;
}

/* 1.8.156 — DTF category: enlarge product card */
/* 1.8.158 — product left, Pressing Instructions card pinned in right-hand white space */
body.tax-product_cat.term-dtf-gang-sheets ul.products,
body.idx-dtf-page.tax-product_cat.term-dtf-gang-sheets ul.products {
  display: grid !important;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.95fr);
  justify-content: center;
  align-items: start;
  gap: 1.5rem;
  float: none !important;
  width: 100% !important;
  max-width: 1100px;
  margin: 0 auto 2rem !important;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products::before,
body.tax-product_cat.term-dtf-gang-sheets ul.products::after {
  display: none !important;
  content: none !important;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product,
body.idx-dtf-page.tax-product_cat.term-dtf-gang-sheets ul.products li.product {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  padding: 1.25rem !important;
  display: flex;
  flex-direction: column;
  grid-column: auto;
}
/* Real product stays in column 1; pressing card forced into column 2 (red-dot white space). */
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product:not(.dtf-category-pressing-card) {
  grid-column: 1;
  grid-row: 1;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.dtf-category-pressing-card {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product a img,
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product img.attachment-woocommerce_thumbnail,
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product .woocommerce-loop-product__link img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  margin: 0 auto 1rem !important;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.35rem !important;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.product .price {
  font-size: 1.15rem !important;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.dtf-category-pressing-card .dtf-category-pressing-card__meta {
  margin: 0.35rem 0 1rem;
  font-size: 0.95rem;
  color: var(--ink-soft, #5b6178);
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.dtf-category-pressing-card .dtf-category-pressing-card__btn {
  margin-top: auto !important;
  align-self: flex-start;
  background: var(--navy, #0f143a) !important;
  color: #fff !important;
  border: none !important;
}
body.tax-product_cat.term-dtf-gang-sheets ul.products li.dtf-category-pressing-card .dtf-category-pressing-card__btn:hover,
body.tax-product_cat.term-dtf-gang-sheets ul.products li.dtf-category-pressing-card .dtf-category-pressing-card__btn:focus-visible {
  background: #f3c91a !important; /* 1.8.422: navy button, yellow hover */
  color: #0f143a !important;
}
@media (max-width: 780px) {
  body.tax-product_cat.term-dtf-gang-sheets ul.products,
  body.idx-dtf-page.tax-product_cat.term-dtf-gang-sheets ul.products {
    grid-template-columns: minmax(0, 1fr);
  }
  body.tax-product_cat.term-dtf-gang-sheets ul.products li.product:not(.dtf-category-pressing-card),
  body.tax-product_cat.term-dtf-gang-sheets ul.products li.dtf-category-pressing-card {
    grid-column: 1;
    grid-row: auto;
  }
}
/* END 1.8.158 DTF category product left + pressing card right */

/* 1.8.160 — Shop mega: Artwork / Kids / Donations on logo row (IDX family pill style), above divider */
.mega-menu__family--shop-extras {
  display: none;
}
.mega-menu[data-active-panel="shop"] .mega-menu__family--shop-extras {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  margin-left: auto;
  margin-right: 0.35rem;
  min-width: 0;
}
.mega-menu__grid--shop {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
@media (max-width: 1100px) {
  .mega-menu__grid--shop {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 900px) {
  .mega-menu[data-active-panel="shop"] .mega-menu__family--shop-extras {
    width: 100%;
    justify-content: flex-start;
    order: 3;
    margin: 0.35rem 0 0;
  }
  .mega-menu__grid--shop {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .mega-menu__grid--shop {
    grid-template-columns: 1fr !important;
  }
}
/* END 1.8.160 Shop mega logo-row extras */







.molded-hero__note-line { display: block; }
@media (min-width: 768px) { .molded-hero__note-line { white-space: nowrap; } }

/* 1.8.165 Molded overview heading on one line */
.idx-oneline-heading,h2.idx-oneline-heading,#what-heading.idx-oneline-heading,#showcase-heading.idx-oneline-heading,#process-heading.idx-oneline-heading,#close-heading.idx-oneline-heading,#textures-heading.idx-oneline-heading{white-space:nowrap;max-width:none;width:auto;font-size:clamp(1.05rem,3.6vw,2.25rem);overflow:visible;}


/* 1.8.220 — Molded How It Works: compact horizontal step cards (scoped to .molded-process-section) */
.molded-process-section {
  width: 100%;
  max-width: none;
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box;
}
.molded-process-section > .container,
.molded-process-section > .container--full {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.molded-process-section .section__header { margin-bottom: 2.25rem; }
.molded-process-section .molded-process--row {
  --mp-gap: 1.25rem;
  --mp-media-h: 210px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem var(--mp-gap);
  max-width: none;
  margin: 0;
  align-items: stretch;
}
.molded-process-section .molded-process--row::before { content: none; display: none; }
.molded-process-section .molded-process--row .molded-process__step {
  position: relative;
  display: flex;
  grid-template-columns: none;
  gap: 0;
  min-width: 0;
}
/* yellow connector running behind the number badges, card to card */
.molded-process-section .molded-process--row .molded-process__step::after {
  content: "";
  position: absolute;
  top: calc(var(--mp-media-h) - 1.5px);
  left: 2.5rem;
  width: calc(100% + var(--mp-gap));
  height: 3px;
  background: #f3c91a;
  border-radius: 999px;
  z-index: 2;
  pointer-events: none;
}
.molded-process-section .molded-process--row .molded-process__step:nth-child(3n)::after,
.molded-process-section .molded-process--row .molded-process__step:last-child::after { display: none; }
.molded-process-section .molded-process--row .molded-process__card {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(15, 20, 58, 0.07);
  transform: none;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.molded-process-section .molded-process--row .molded-process__card:hover {
  transform: none;
  box-shadow: 0 16px 34px rgba(15, 20, 58, 0.13);
  border-color: rgba(15, 20, 58, 0.16);
}
.molded-process-section .molded-process--row .molded-process__head { position: relative; }
.molded-process-section .molded-process--row .molded-process__media {
  position: relative;
  height: var(--mp-media-h);
  min-height: 0;
  background: #12163f;
  overflow: hidden;
}
.molded-process-section .molded-process--row .molded-process__media img,
.molded-process-section .molded-process--row .molded-process__media picture,
.molded-process-section .molded-process--row .molded-process__media picture img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  transition: transform 0.45s ease;
}
.molded-process-section .molded-process--row .molded-process__card:hover .molded-process__media img { transform: scale(1.04); }
.molded-process-section .molded-process--row .molded-process__media--contain { background: #f4f5f8; }
.molded-process-section .molded-process--row .molded-process__media--contain img,
.molded-process-section .molded-process--row .molded-process__media--contain picture img {
  object-fit: contain;
  padding: 0.75rem;
  box-sizing: border-box;
}
.molded-process-section .molded-process--row .molded-process__num {
  position: absolute;
  left: 1rem;
  top: auto;
  bottom: -1.5rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  min-width: 0;
  height: 3rem;
  padding: 0;
  border-radius: 50%;
  background: #8f1c2c;
  color: var(--white);
  border: 3px solid var(--white);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  box-shadow: 0 6px 16px rgba(15, 20, 58, 0.25);
}
.molded-process-section .molded-process--row .molded-process__body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex: 1 1 auto;
  gap: 0.4rem;
  padding: 2.1rem 1.35rem 1.4rem;
}
.molded-process-section .molded-process--row .molded-process__label {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8f1c2c;
}
.molded-process-section .molded-process--row .molded-process__body h3 {
  margin: 0;
  font-family: var(--font-head);
  font-size: clamp(1.15rem, 1.6vw, 1.35rem);
  font-weight: 600;
  color: var(--navy);
  letter-spacing: -0.015em;
  line-height: 1.2;
}
.molded-process-section .molded-process--row .molded-process__body > p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 0.93rem;
  line-height: 1.6;
}
@media (max-width: 1023px) {
  .molded-process-section .molded-process--row { grid-template-columns: repeat(2, minmax(0, 1fr)); --mp-media-h: 190px; }
  .molded-process-section .molded-process--row .molded-process__step::after { display: none; }
}
@media (max-width: 767px) {
  .molded-process-section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .molded-process-section .molded-process--row { grid-template-columns: 1fr; --mp-media-h: 200px; }
}
@media (prefers-reduced-motion: reduce) {
  .molded-process-section .molded-process--row .molded-process__card,
  .molded-process-section .molded-process--row .molded-process__card:hover .molded-process__media img {
    transform: none;
    transition: none;
  }
}
/* END 1.8.220 molded process cards */

/* 1.8.171 Molded fees: Item column single line */
table.pricing--molded-fees th:first-child,
table.pricing--molded-fees td:first-child { white-space: nowrap; }

/* 1.8.189 — Molded textures: sample image 330→495 (+50%); note max-width 495 */
.molded-textures--split {
  padding: 40px !important;
  max-width: none;
}
.molded-textures__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(495px, 0.95fr);
  gap: clamp(1.25rem, 2.8vw, 2.5rem);
  align-items: start;
  width: 100%;
  max-width: none;
}
.molded-textures__copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
  gap: 1.25rem;
}
.molded-textures__header {
  text-align: left;
  max-width: none;
  margin: 0;
}
.molded-textures__header .section__lead {
  margin-bottom: 0;
  max-width: 58ch;
}
.molded-textures__patterns {
  margin-top: 0;
}
.molded-textures__patterns-label {
  margin: 0 0 0.85rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8f1c2c;
}
.molded-textures__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 0.85rem;
}
.molded-textures__list li {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.7rem 0.85rem;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
}
.molded-textures__list strong {
  color: #f3c91a;
  background: #0f143a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 800;
  flex-shrink: 0;
  line-height: 1;
}
.molded-textures__visual {
  display: flex;
  flex-direction: column;
  align-items: center; /* image 495; note matches */
  gap: 1rem;
  min-width: 0;
  width: 100%;
}
.molded-textures__media {
  margin: 0;
  width: 495px;
  height: 495px;
  max-width: 100%;
  border-radius: 18px;
  overflow: hidden;
  background: #0a0d24;
  box-shadow: 0 18px 42px rgba(15, 20, 58, 0.18);
  flex-shrink: 0;
}
.molded-textures__img,
.molded-textures__media img,
.molded-textures__media picture,
.molded-textures__media picture img {
  width: 495px;
  height: 495px;
  max-width: 100%;
  object-fit: cover;
  display: block;
  min-height: 0;
}
.molded-textures__note {
  margin: 0;
  width: 100%;
  max-width: 495px; /* match enlarged image */
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.6;
  padding: 0.95rem 1.05rem;
  background: rgba(15, 20, 58, 0.035);
  border-radius: 12px;
  border: 1px solid rgba(15, 20, 58, 0.06);
  box-sizing: border-box;
}
@media (max-width: 960px) {
  .molded-textures__layout { grid-template-columns: 1fr; }
  .molded-textures__header { text-align: center; }
  .molded-textures__header .section__lead { margin-left: auto; margin-right: auto; }
  .molded-textures__visual { align-items: center; }
  .molded-textures__note { max-width: 495px; }
}
@media (max-width: 640px) {
  .molded-textures--split {
    padding: 40px 20px !important;
  }
  .molded-textures__list { grid-template-columns: 1fr; }
  .molded-textures__media,
  .molded-textures__img,
  .molded-textures__media img,
  .molded-textures__media picture,
  .molded-textures__media picture img {
    width: min(495px, 100%);
    height: min(495px, 100vw - 40px);
    aspect-ratio: 1 / 1;
  }
  .molded-textures__note { max-width: min(495px, 100%); }
}
/* END 1.8.189 molded textures layout */



/* 1.8.203 — Plating full width, 40px side padding */
.molded-plates-section {
  width: 100%;
  max-width: none;
  padding-top: clamp(3.5rem, 7vw, 6.5rem) !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box;
}
.molded-plates-section > .container--full {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
@media (max-width: 767px) {
  .molded-plates-section { padding-left: 20px !important; padding-right: 20px !important; }
}

/* 1.8.204 — Finishes: navy + diamond texture */
.molded-edges-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #0f143a !important;
  color: rgba(247, 245, 242, 0.86);
}
.molded-edges-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.molded-edges-section .section__header { max-width: none; }
.molded-edges-section .section__eyebrow { color: #f3c91a !important; }
.molded-edges-section .section__eyebrow::before { background: #f3c91a; }
.molded-edges-section #edges-heading {
  color: #fff !important;
  white-space: nowrap;
  font-size: clamp(1.4rem, 3.4vw, 2.6rem);
}
.molded-edges-section .section__lead {
  color: rgba(247, 245, 242, 0.82) !important;
  max-width: 60rem;
}
.molded-edges-section .molded-thumb {
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}

@media (max-width: 768px) {
  .molded-types-section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* Molded: Artwork and Mold Fees on yellow texture */
.molded-fees-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #f3c91a !important;
  color: #0f143a;
}
.molded-fees-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  filter: brightness(0);
  opacity: 0.1;
}
.molded-fees-section .section__eyebrow { color: #8b0f14 !important; }
.molded-fees-section .section__eyebrow::before { background: #8b0f14; }
.molded-fees-section #fees-heading { color: #0f143a !important; }
.molded-fees-section .section__lead,
.molded-fees-section .idx-fees-lead__line { color: #1a1f45 !important; }
.molded-fees-section .table-wrap {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 20, 58, 0.18), 0 2px 6px rgba(15, 20, 58, 0.1);
}

#plates-heading.idx-oneline-heading{white-space:nowrap;font-size:clamp(1rem,3.4vw,2.25rem);}

/* Plating: original-style compact swatch panel (images 540x402) */
.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(5,minmax(0,1fr));gap:36px 16px;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;}
.molded-plates-section .molded-thumb-grid--plates .molded-thumb{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;padding:0;}
.molded-plates-section .molded-thumb-grid--plates .molded-thumb img{width:100%;max-width:110px;height:auto;aspect-ratio:540/402;object-fit:contain;background:transparent;margin:0 auto;}
.molded-plates-section .molded-thumb-grid--plates figcaption{display:block;padding:.5rem 0 0;font-size:15px;font-weight:700;line-height:1.25;color:#0f143a;}
@media (max-width:900px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:600px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px;padding:0;}}
.molded-plates-section .molded-thumb-grid--plates .molded-thumb__media{background:transparent;}
/* Plating: compact centered grid */
.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(5,150px);justify-content:center;column-gap:12px;row-gap:20px;}
.molded-plates-section .molded-thumb-grid--plates figcaption{padding-top:6px;}
@media (max-width:900px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(3,140px);}}
@media (max-width:600px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(2,140px);column-gap:12px;row-gap:20px;}}
/* Plating: coins +40px */
.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(5,180px);}
.molded-plates-section .molded-thumb-grid--plates .molded-thumb img{max-width:150px;}
@media (max-width:900px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(3,170px);}}
@media (max-width:600px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(2,minmax(0,160px));}.molded-plates-section .molded-thumb-grid--plates .molded-thumb img{max-width:100%;}}
/* Plating coins +20px (1.8.229) */
.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(5,200px);}
.molded-plates-section .molded-thumb-grid--plates .molded-thumb img{max-width:170px;}
@media (max-width:900px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(3,190px);}}
@media (max-width:600px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(2,minmax(0,160px));}.molded-plates-section .molded-thumb-grid--plates .molded-thumb img{max-width:100%;}}

/* 1.8.230 Plating: 2-column layout */
@media (min-width:1024px){
.molded-plates-layout{display:grid;grid-template-columns:minmax(280px,.8fr) 1.6fr;gap:48px;align-items:center;}
.molded-plates-layout > .section__header{text-align:left;margin:0;max-width:none;}
.molded-plates-layout #plates-heading.idx-oneline-heading{white-space:normal;font-size:clamp(1.75rem,2.6vw,2.5rem);line-height:1.15;}
.molded-plates-layout .molded-thumb-grid--plates{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));justify-content:stretch;column-gap:12px;row-gap:20px;}
.molded-plates-layout .molded-thumb-grid--plates .molded-thumb img{max-width:150px;}
}
@media (min-width:1400px){.molded-plates-layout .molded-thumb-grid--plates{grid-template-columns:repeat(4,minmax(0,1fr));}.molded-plates-layout .molded-thumb-grid--plates .molded-thumb img{max-width:165px;}}
@media (min-width:901px) and (max-width:1023px){.molded-plates-section .molded-thumb-grid--plates{grid-template-columns:repeat(3,190px);}}

/* 1.8.231 Plating: 5 coins per row in right column (desktop) */
@media (min-width:1024px){
.molded-plates-layout .molded-thumb-grid--plates{grid-template-columns:repeat(5,minmax(0,1fr));justify-content:stretch;column-gap:12px;row-gap:20px;}
.molded-plates-layout .molded-thumb-grid--plates .molded-thumb img{width:100%;max-width:150px;height:auto;margin-left:auto;margin-right:auto;display:block;}
.molded-plates-layout .molded-thumb-grid--plates .molded-thumb figcaption,.molded-plates-layout .molded-thumb-grid--plates .molded-thumb span{font-size:clamp(12px,1vw,15px);white-space:normal;overflow-wrap:break-word;line-height:1.25;}
}

/* 1.8.232 Molded fees: full-width pricing table */
.molded-fees-section{width:100%;max-width:none;padding-left:80px !important;padding-right:80px !important;box-sizing:border-box;}
.molded-fees-section > .container--full{width:100%;max-width:none;margin-inline:0;}
.molded-fees-section .molded-fees__header{max-width:820px;margin:0 auto 2.75rem;text-align:center;}
.molded-fees-section .molded-fees__header .section__eyebrow{justify-content:center;}
.molded-fees-section .molded-fees__header .section__lead{margin-left:auto;margin-right:auto;}
.molded-fees-section .molded-fees-table{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;align-items:stretch;}
.molded-fees-section .molded-fee{display:flex;flex-direction:column;margin:0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 14px 34px rgba(15,20,58,.18),0 2px 6px rgba(15,20,58,.1);transition:transform .2s ease,box-shadow .2s ease;}
.molded-fees-section .molded-fee:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(15,20,58,.24),0 3px 8px rgba(15,20,58,.12);}
.molded-fees-section .molded-fee__name{margin:0;padding:16px 18px;background:#0f143a;color:#fff !important;font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:center;line-height:1.3;}
.molded-fees-section .molded-fee__body{display:flex;flex-direction:column;flex:1;padding:24px 20px 22px;text-align:center;}
.molded-fees-section .molded-fee__price{margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid rgba(15,20,58,.1);color:#c8102e;line-height:1.1;}
.molded-fees-section .molded-fee__amount{display:block;font-size:clamp(2.25rem,3vw,2.75rem);font-weight:800;letter-spacing:-.01em;}
.molded-fees-section .molded-fee__suffix{display:block;margin-top:6px;font-size:14px;font-weight:600;color:#1a1f45;}
.molded-fees-section .molded-fee__details{margin:0 0 20px;flex:1;font-size:15px;line-height:1.55;color:#1a1f45;}
.molded-fees-section .molded-fee__cta{align-self:center;margin-top:auto;padding:.6rem 1.25rem;font-size:14px;}
@media (min-width:900px) and (max-width:1199px){.molded-fees-section .molded-fees-table{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (min-width:600px) and (max-width:899px){.molded-fees-section .molded-fees-table{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:767px){.molded-fees-section{padding-left:20px !important;padding-right:20px !important;}}
@media (max-width:599px){.molded-fees-section .molded-fees-table{grid-template-columns:1fr;gap:16px;}}
@media (prefers-reduced-motion:reduce){.molded-fees-section .molded-fee,.molded-fees-section .molded-fee:hover{transition:none;transform:none;}}

/* 1.8.236 — Molded Presentation/packaging: navy + diamond texture, image-hugging cards */
.molded-pack-section.molded-pack-section--navy {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  background: #0f143a !important;
  color: rgba(255, 255, 255, 0.8);
  padding-left: 80px !important;
  padding-right: 80px !important;
}
.molded-pack-section--navy::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.11;
}
.molded-pack-section--navy > .container--full {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.molded-pack-section--navy .molded-pack-section__header { max-width: none; margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.molded-pack-section--navy .section__eyebrow { color: #f3c91a !important; }
.molded-pack-section--navy .section__eyebrow::before { background: #f3c91a; }
.molded-pack-section--navy .molded-pack-section__header #pack-heading.idx-oneline-heading {
  color: #fff !important;
  white-space: nowrap;
  max-width: none;
  font-size: clamp(1rem, 2.15vw, 2.25rem);
  line-height: 1.2;
}
.molded-pack-section--navy .molded-pack-section__header #pack-heading.idx-oneline-heading::after { background: #f3c91a; }
.molded-pack-section--navy .section__lead {
  color: rgba(255, 255, 255, 0.8) !important;
  max-width: 60ch;
  margin-bottom: 0;
}
.molded-pack-section--navy .molded-pack-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.molded-pack-section--navy .molded-pack-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}
.molded-pack-section--navy .molded-pack-card:hover,
.molded-pack-section--navy .molded-pack-card:focus-within {
  transform: translateY(-3px);
  border-color: rgba(243, 201, 26, 0.55);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);
}
.molded-pack-section--navy .molded-pack-card__media {
  aspect-ratio: auto;
  padding: 0;
  background: #dedede;
  border: 0;
  display: block;
  line-height: 0;
}
.molded-pack-section--navy .molded-pack-card__media img,
.molded-pack-section--navy .molded-pack-card__img {
  width: 100%;
  height: auto;
  aspect-ratio: 580 / 344;
  object-fit: cover;
  display: block;
}
.molded-pack-section--navy .molded-pack-card__body {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 0;
  padding: 0.8rem 0.9rem 0.9rem;
  background: #fff;
  border-top: 3px solid #f3c91a;
}
.molded-pack-section--navy .molded-pack-card__title {
  margin: 0;
  color: #0f143a;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
}
@media (max-width: 1024px) {
  .molded-pack-section--navy .molded-pack-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 767px) {
  .molded-pack-section.molded-pack-section--navy { padding-left: 20px !important; padding-right: 20px !important; }
  .molded-pack-section--navy .molded-pack-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .molded-pack-section--navy .molded-pack-section__header #pack-heading.idx-oneline-heading {
    white-space: normal;
    font-size: clamp(1.35rem, 5.4vw, 1.75rem);
  }
  .molded-pack-section--navy .molded-pack-card__title { font-size: 0.9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .molded-pack-section--navy .molded-pack-card:hover,
  .molded-pack-section--navy .molded-pack-card:focus-within { transform: none; }
}

/* 1.8.238 Molded Finish Strong: eyebrow line, +2pt, one-line headline */
.molded-close .molded-close__eyebrow{display:inline-flex;align-items:center;gap:0.6rem;font-size:calc(0.78rem + 2pt);color:#f3c91a !important;}
.molded-close .molded-close__eyebrow::before{content:"";width:28px;height:1px;background:#f3c91a;flex:0 0 auto;}
.molded-close #close-heading.idx-oneline-heading{white-space:nowrap;font-size:clamp(0.8rem,1.7vw,1.9rem);}
@media (max-width:900px){.molded-close #close-heading.idx-oneline-heading{font-size:clamp(0.7rem,3.4vw,2rem);}}

/* 1.8.239 Molded Catalog: quote form card filling the last grid row */
.molded-types-grid .molded-quote-card{grid-column:span 2;position:relative;isolation:isolate;overflow:hidden;display:flex;background-color:#0f143a;border:1px solid #0f143a;border-radius:var(--radius);box-shadow:var(--shadow);color:#f3c91a;scroll-margin-top:120px;}
.molded-quote-card::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url("../images/backgrounds/footer-diamond.png");background-size:280px auto;background-repeat:repeat;opacity:0.11;}
.molded-quote-form{display:flex;flex-direction:column;gap:0.75rem;width:100%;padding:1.5rem 1.6rem;margin:0;}
.molded-quote-form__title{margin:0 0 0.15rem;color:#f3c91a !important;font-size:1.35rem;line-height:1.2;}
.molded-quote-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;}
.molded-quote-form__field{display:flex;flex-direction:column;gap:0.3rem;}
.molded-quote-form__field--grow{flex:1;}
.molded-quote-form label{color:#f3c91a;font-size:0.82rem;font-weight:600;letter-spacing:0.02em;margin:0;}
.molded-quote-form input[type="text"],.molded-quote-form input[type="tel"],.molded-quote-form textarea{width:100%;margin:0;padding:0.6rem 0.75rem;background:#fff;color:#0f143a;border:1px solid #fff;border-radius:6px;font:inherit;font-size:0.95rem;box-shadow:none;}
.molded-quote-form textarea{flex:1;min-height:90px;resize:vertical;}
.molded-quote-form input:focus,.molded-quote-form textarea:focus{outline:2px solid #f3c91a;outline-offset:2px;}
.molded-quote-form__btn{align-self:flex-start;margin-top:0.25rem;padding:0.75rem 1.6rem;background:#f3c91a;color:#0f143a;border:2px solid #f3c91a;border-radius:999px;font:inherit;font-weight:700;font-size:0.95rem;cursor:pointer;transition:background-color 0.2s ease,color 0.2s ease,border-color 0.2s ease;}
.molded-quote-form__btn:hover,.molded-quote-form__btn:focus-visible{background:#0f143a;color:#f3c91a;border-color:#f3c91a;}
.molded-quote-form__notice{margin:0;padding:0.6rem 0.8rem;border:1px solid #f3c91a;border-radius:6px;color:#f3c91a;font-size:0.9rem;}
.molded-quote-form__notice--error{border-color:#ff8a80;color:#ffb4ab;}
.molded-quote-form__hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}
@media (max-width:1024px){.molded-types-grid .molded-quote-card{grid-column:auto;}}
@media (max-width:720px){.molded-types-grid .molded-quote-card{grid-column:1 / -1;}}
@media (max-width:480px){.molded-quote-form__row{grid-template-columns:1fr;}.molded-quote-form{padding:1.25rem;}.molded-quote-form__btn{align-self:stretch;}}

/* 1.8.242 — Molded Upgrades: cards 25% smaller (grid at 75% width, left-aligned with heading) */
.molded-extras-section .molded-extras-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  width: 75%;
  max-width: 75%;
  margin-left: auto;
  margin-right: auto;
}
.molded-extras-section .molded-extra-card__body { padding: 0.7rem 0.75rem 0.85rem; }
.molded-extras-section .molded-extra-card h3 { font-size: 0.9rem; }
.molded-extras-section .molded-extra-card__meta { font-size: 0.8rem; }
@media (max-width: 1024px) {
  .molded-extras-section .molded-extras-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .molded-extras-section .molded-extras-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: 100%;
  }
}

/* 1.8.245 — Molded Add-ons: header aligned with centered card grid + eyebrow line */
.molded-extras-section .section__header {
  width: 75%;
  max-width: 75%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.molded-extras-section .molded-extras__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; }
.molded-extras-section .molded-extras__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: 0 0 auto; }
@media (max-width: 720px) {
  .molded-extras-section .section__header { width: 100%; max-width: 100%; }
}

/* 1.8.246 — Molded Add-ons eyebrow +2pt */
.molded-extras-section .molded-extras__eyebrow { font-size: calc(0.78rem + 2pt); }

/* 1.8.247 — Molded Surface Detail: coin photo background with parallax + eyebrow lines +2pt */
.molded-textures--split {
  background-color: #f4f4f7;
  background-image:
    linear-gradient(90deg, rgba(244,244,247,0.93) 0%, rgba(244,244,247,0.82) 50%, rgba(244,244,247,0.55) 100%),
    url("../images/molded/textures-bg.jpg");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
  background-attachment: scroll, fixed;
}
@media (max-width: 1024px), (hover: none) {
  .molded-textures--split { background-attachment: scroll, scroll; }
}
.molded-textures__eyebrow,
.molded-textures__patterns-label {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}
.molded-textures__eyebrow { font-size: calc(0.78rem + 2pt); }
.molded-textures__patterns-label { font-size: calc(0.72rem + 2pt); }
.molded-textures__eyebrow::before,
.molded-textures__patterns-label::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
  flex: 0 0 auto;
}

/* 1.8.248 — Molded fees: white eyebrow +5pt, 15pt navy bottom border on cards */
.molded-fees-section .section__eyebrow { color: #fff !important; font-size: calc(0.78rem + 5pt); }
.molded-fees-section .section__eyebrow::before { background: #fff; }
.molded-fees-section .molded-fee { border-bottom: 15pt solid #0f143a; }

/* 1.8.249 — Molded fees: under-100 disclaimer on cards 2-5 */
.molded-fees-section .molded-fee__details { margin-bottom: 10px; }
.molded-fees-section .molded-fee__disclaimer { margin: 0 0 18px; font-size: 13px; line-height: 1.4; color: #4a4f6e; }

/* 1.8.250 — Molded fees: "as low as" line + 7 cards (4 per row, centered wrap) */
.molded-fees-section .molded-fees-table { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
.molded-fees-section .molded-fees-table > .molded-fee { flex: 0 1 calc((100% - 60px) / 4); min-width: 0; }
.molded-fees-section .molded-fee__details { flex: 0 0 auto; }
.molded-fees-section .molded-fee__low { margin: auto 0 10px; font-size: 17px; font-weight: 800; color: #0f143a; line-height: 1.3; }
@media (min-width:900px) and (max-width:1199px){ .molded-fees-section .molded-fees-table > .molded-fee { flex-basis: calc((100% - 40px) / 3); } }
@media (min-width:600px) and (max-width:899px){ .molded-fees-section .molded-fees-table > .molded-fee { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width:599px){ .molded-fees-section .molded-fees-table { gap: 16px; } .molded-fees-section .molded-fees-table > .molded-fee { flex-basis: 100%; } }

/* 1.8.252 — Molded fees: all 7 cards on one row on wide screens, trimmed card size */
@media (min-width:1200px){
  .molded-fees-section .molded-fees-table { gap: 14px; flex-wrap: nowrap; }
  .molded-fees-section .molded-fees-table > .molded-fee { flex: 1 1 0; }
  .molded-fees-section .molded-fee__name { padding: 12px 10px; font-size: 13px; letter-spacing: .04em; }
  .molded-fees-section .molded-fee__body { padding: 18px 12px 16px; }
  .molded-fees-section .molded-fee__price { margin-bottom: 10px; padding-bottom: 10px; }
  .molded-fees-section .molded-fee__amount { font-size: clamp(1.6rem, 2vw, 2.05rem); }
  .molded-fees-section .molded-fee__suffix { font-size: 12px; }
  .molded-fees-section .molded-fee__details { font-size: 13.5px; line-height: 1.45; }
  .molded-fees-section .molded-fee__low { font-size: 15px; }
  .molded-fees-section .molded-fee__disclaimer { font-size: 12px; margin-bottom: 14px; }
  .molded-fees-section .molded-fee__cta { padding: .5rem .9rem; font-size: 13px; }
}

/* 1.8.253 — Molded fees section: top/bottom padding -50% */
.section.molded-fees-section { padding-top: clamp(1.75rem, 3.5vw, 3.25rem); padding-bottom: clamp(1.75rem, 3.5vw, 3.25rem); }

/* 1.8.254 — Molded Finishes eyebrow: line + 2pt */
.molded-finishes__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-size: calc(0.78rem + 2pt); }
.molded-finishes__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: 0 0 auto; }

/* 1.8.255 — Molded Finishes: 3-column layout (intro | edge tiles span 2 cols, 4 per row) */
.molded-edges-section .molded-edges-layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.75rem);
  align-items: start;
}
.molded-edges-section .molded-edges-layout__copy { grid-column: 1; position: sticky; top: 140px; }
.molded-edges-section .molded-edges-layout__copy .section__lead { margin: 0; max-width: none; }
.molded-edges-section .molded-edges-layout .molded-thumb-grid {
  grid-column: 2 / span 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}
@media (max-width: 1024px) {
  .molded-edges-section .molded-edges-layout { grid-template-columns: 1fr; }
  .molded-edges-section .molded-edges-layout__copy { position: static; }
  .molded-edges-section .molded-edges-layout .molded-thumb-grid { grid-column: 1; }
}
@media (max-width: 720px) {
  .molded-edges-section .molded-edges-layout .molded-thumb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 1.8.256 — Molded Finishes: tiles 6 | centered text | 6 tiles */
.molded-edges-section .molded-edges-layout { align-items: center; }
.molded-edges-section .molded-edges-layout__copy { grid-column: 2; grid-row: 1; position: static; text-align: center; }
.molded-edges-section .molded-edges-layout .molded-thumb-grid { grid-column: auto; grid-row: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.molded-edges-section .molded-edges-layout .molded-thumb-grid--col-1 { grid-column: 1; }
.molded-edges-section .molded-edges-layout .molded-thumb-grid--col-2 { grid-column: 3; }
@media (max-width: 1024px) {
  .molded-edges-section .molded-edges-layout { grid-template-columns: 1fr; }
  .molded-edges-section .molded-edges-layout__copy,
  .molded-edges-section .molded-edges-layout .molded-thumb-grid--col-1,
  .molded-edges-section .molded-edges-layout .molded-thumb-grid--col-2 { grid-column: 1; grid-row: auto; }
  .molded-edges-section .molded-edges-layout .molded-thumb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .molded-edges-section .molded-edges-layout .molded-thumb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 1.8.257 — Molded Finishes: center text as 3 stacked plate cards (footer-plate style) */
.molded-edges-section .molded-edges-layout__copy { display: flex; flex-direction: column; gap: 14px; text-align: left; align-self: stretch; justify-content: center; }
.molded-edge-note {
  position: relative;
  box-sizing: border-box;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 12px 28px rgba(0,0,0,0.22);
}
.molded-edge-note::before {
  content: ""; position: absolute; left: 1.2rem; right: 1.2rem; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #f3c91a, transparent); opacity: 0.7;
}
.molded-edge-note__top { display: flex; align-items: center; gap: 0.65rem; margin-bottom: 0.55rem; }
.molded-edge-note__badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2rem; height: 1.55rem; padding: 0 0.4rem; border-radius: 4px;
  background: #f3c91a; color: #0f143a; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.06em;
}
.molded-edge-note h3 { margin: 0; font-size: 0.9rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #fff !important; }
.molded-edge-note p { margin: 0; font-size: 0.95rem; line-height: 1.55; color: rgba(247,245,242,0.85); }

/* 1.8.258 — Molded Finishes: side columns 3 tiles per row */
@media (min-width: 1025px) {
  .molded-edges-section .molded-edges-layout .molded-thumb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
}

/* 1.8.259 — Molded Finishes: full-width section, 80px side padding */
.molded-edges-section > .container--full { max-width: none; width: 100%; padding-left: 80px; padding-right: 80px; box-sizing: border-box; }
@media (max-width: 720px) { .molded-edges-section > .container--full { padding-left: 20px; padding-right: 20px; } }

/* 1.8.260 — Molded Finishes center cards: gold line sweep on hover */
.molded-edge-note { overflow: hidden; transition: transform .25s ease, border-color .25s ease; }
.molded-edge-note::after {
  content: ""; position: absolute; top: 0; left: -40%; width: 40%; height: 2px;
  background: linear-gradient(90deg, transparent, #fff3b0, #f3c91a, transparent);
  opacity: 0; pointer-events: none;
}
.molded-edge-note:hover { transform: translateY(-2px); border-color: rgba(243,201,26,0.35); }
.molded-edge-note:hover::before { opacity: 1; }
.molded-edge-note:hover::after { animation: molded-edge-sweep 1.1s ease-in-out forwards; }
@keyframes molded-edge-sweep {
  0% { left: -40%; opacity: 0; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { left: 100%; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .molded-edge-note:hover::after { animation: none; } }

/* 1.8.261 — Molded Finish Strong: yellow bg + navy diamond texture, inverted (navy) text */
.section.molded-close {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #f3c91a !important;
  color: #0f143a;
}
.section.molded-close::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto; background-repeat: repeat;
  filter: brightness(0); opacity: 0.1;
}
.molded-close .molded-close__eyebrow { color: #0f143a !important; }
.molded-close .molded-close__eyebrow::before { background: #0f143a; }
.molded-close #close-heading { color: #0f143a !important; }
.molded-close .molded-close__lead { color: rgba(15,20,58,0.78) !important; }
.molded-close .cta-band { background: #0f143a; border-color: #0f143a; }
.molded-close .cta-band p { color: rgba(247,245,242,0.85); }
.molded-close .molded-close__contact a { color: #f3c91a; }
.molded-close .molded-close__contact a:hover { color: #fff; }
.molded-close .molded-close-gallery__item { background: #0f143a; box-shadow: 0 10px 24px rgba(15,20,58,0.2); }

/* 1.8.262 — Molded Finish Strong gallery: rollover alternate images */
.molded-close-gallery__item { position: relative; }
.molded-close-gallery__item picture { display: block; width: 100%; height: 100%; }
.molded-close-gallery__item .molded-close-gallery__img--hover,
.molded-close-gallery__item picture:has(.molded-close-gallery__img--hover) {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity .35s ease;
}
.molded-close-gallery__item:hover .molded-close-gallery__img--hover,
.molded-close-gallery__item:hover picture:has(.molded-close-gallery__img--hover) { opacity: 1; }
.molded-close-gallery__item picture:has(.molded-close-gallery__img--hover) .molded-close-gallery__img--hover { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .molded-close-gallery__item .molded-close-gallery__img--hover { transition: none; } }

/* 1.8.270 — Molded How It Works: navy + yellow step circles */
.molded-process-section .molded-process--row .molded-process__num {
  background: #0f143a;
  color: #f3c91a;
  border: 3px solid #f3c91a;
}

/* 1.8.271 — Molded Standard Molded Product cards: yellow, title on top, navy bottom border */
.molded-types-section .molded-type-card { background: #f3c91a; border: 0; border-bottom: 15px solid #0f143a; border-radius: 14px; }
.molded-types-section .molded-type-card__title { order: 0; margin: 0; padding: 14px 16px; color: #0f143a !important; font-size: 1.1rem; font-weight: 600; letter-spacing: .02em; text-align: center; line-height: 1.25; }
.molded-types-section .molded-type-card__body { background: #f3c91a; }
.molded-types-section .molded-type-card p { color: #0f143a; }

/* 1.8.272 — Molded catalog cards: 5px navy left/right borders */
.molded-types-section .molded-type-card { border-left: 5px solid #0f143a; border-right: 5px solid #0f143a; }

/* 1.8.273 — Molded catalog cards: inverted (navy card, yellow text/border), no side borders */
.molded-types-section .molded-type-card { background: #0f143a; border-left: 0; border-right: 0; border-bottom: 15px solid #f3c91a; }
.molded-types-section .molded-type-card__title { color: #f3c91a !important; }
.molded-types-section .molded-type-card__body { background: #0f143a; }
.molded-types-section .molded-type-card p { color: #f3c91a; }

/* 1.8.274 — Molded catalog cards: white description text */
.molded-types-section .molded-type-card p { color: #fff; }

/* 1.8.277 — Wood Signs gallery redesign: bento grid, captions on hover, full width */
.wood-gallery-section > .container--full { padding-left: 80px; padding-right: 80px; }
.wood-gallery__header { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1.5rem 3rem; align-items: end; margin-bottom: 2.25rem; }
.wood-gallery__header h2 { margin: 0; }
.wood-gallery__lead { margin: 0; max-width: 46ch; padding-left: 1.25rem; border-left: 4px solid #f3c91a; }
.wood-gallery__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-size: calc(0.78rem + 2pt); }
.wood-gallery__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: 0 0 auto; }
.wood-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(190px, 17vw, 300px); grid-auto-flow: dense; gap: 14px; }
.wood-gallery__item { position: relative; margin: 0; overflow: hidden; border-radius: 14px; background: #0f143a; box-shadow: 0 10px 26px rgba(15, 20, 58, 0.14); isolation: isolate; }
.wood-gallery__item--feature { grid-column: span 2; grid-row: span 2; }
.wood-gallery__item--wide { grid-column: span 2; }
.wood-gallery__item img, .wood-gallery__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.wood-gallery__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: #f3c91a; transform: scaleX(0); transform-origin: left; transition: transform 0.4s ease; z-index: 2; }
.wood-gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 2.5rem 1.1rem 1rem; background: linear-gradient(to top, rgba(15, 20, 58, 0.92), rgba(15, 20, 58, 0)); color: #fff; font-size: 0.95rem; font-weight: 700; letter-spacing: 0.01em; opacity: 0; transform: translateY(12px); transition: opacity 0.35s ease, transform 0.35s ease; }
.wood-gallery__item:hover img, .wood-gallery__item:focus-within img { transform: scale(1.06); }
.wood-gallery__item:hover .wood-gallery__cap, .wood-gallery__item:focus-within .wood-gallery__cap { opacity: 1; transform: none; }
.wood-gallery__item:hover::after, .wood-gallery__item:focus-within::after { transform: scaleX(1); }
.wood-gallery__item--feature .wood-gallery__cap { font-size: 1.15rem; padding: 3rem 1.4rem 1.3rem; }
@media (hover: none) { .wood-gallery__cap { opacity: 1; transform: none; } }
@media (max-width: 1024px) {
  .wood-gallery-section > .container--full { padding-left: 32px; padding-right: 32px; }
  .wood-gallery__header { grid-template-columns: 1fr; }
  .wood-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 34vw, 280px); }
}
@media (max-width: 560px) {
  .wood-gallery-section > .container--full { padding-left: 20px; padding-right: 20px; }
  .wood-gallery { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .wood-gallery__item--feature, .wood-gallery__item--wide { grid-column: auto; grid-row: auto; }
}
@media (prefers-reduced-motion: reduce) { .wood-gallery__item img, .wood-gallery__cap, .wood-gallery__item::after { transition: none; } }

/* 1.8.280 — Wood Signs gallery: true full width */
.wood-gallery-section > .container--full { max-width: none; width: 100%; box-sizing: border-box; }

/* 1.8.281 — Wood Signs gallery: yellow background with navy diamond texture */
.section.wood-gallery-section { position: relative; isolation: isolate; overflow: hidden; background: #f3c91a !important; color: #0f143a; }
.section.wood-gallery-section::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto; background-repeat: repeat;
  filter: brightness(0); opacity: 0.1;
}
.wood-gallery-section .wood-gallery__eyebrow { color: #0f143a !important; }
.wood-gallery-section #gallery-heading { color: #0f143a !important; }
.wood-gallery-section .wood-gallery__lead { color: #0f143a !important; border-left-color: #0f143a; }
.wood-gallery-section .wood-gallery__item { box-shadow: 0 12px 28px rgba(15, 20, 58, 0.22); }
.wood-gallery-section .wood-gallery__item::after { background: #f3c91a; }

/* 1.8.282 — Wood Signs gallery cards: 5px navy border */
.wood-gallery-section .wood-gallery__item { border: 5px solid #0f143a; box-sizing: border-box; }

/* 1.8.283 — Wood Signs: "Also under Signage" moved into yellow gallery section */
.wood-related { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 1.25rem 2.5rem; align-items: center; margin-top: 2.5rem; padding-top: 2rem; border-top: 2px solid rgba(15, 20, 58, 0.25); }
.wood-related__intro .section__eyebrow { margin-bottom: 0.35rem; }
.wood-related__title { margin: 0; color: #0f143a !important; font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.2; }
.wood-related__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } /* 1.8.392: 3 links (Film / Wrap retired) */
.wood-related__link { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 1.1rem 1.3rem; background: #0f143a; color: #f3c91a !important; border: 3px solid #0f143a; border-radius: 12px; font-weight: 800; font-size: 1rem; letter-spacing: 0.01em; text-decoration: none; box-shadow: 0 10px 22px rgba(15, 20, 58, 0.2); transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease; }
.wood-related__arrow { font-size: 1.2rem; transition: transform 0.25s ease; }
.wood-related__link:hover, .wood-related__link:focus-visible { background: #fff; color: #0f143a !important; transform: translateY(-3px); }
.wood-related__link:hover .wood-related__arrow, .wood-related__link:focus-visible .wood-related__arrow { transform: translateX(4px); }
@media (max-width: 1024px) { .wood-related { grid-template-columns: 1fr; } .wood-related__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .wood-related__list { grid-template-columns: 1fr; } } /* 1.8.392 */
@media (max-width: 480px) { .wood-related__list { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .wood-related__link, .wood-related__arrow { transition: none; } }

/* 1.8.284 — UV/LED Signs: Neon options on navy with CO2-style index table */
.section.neon-options-section { background: #0f143a; color: #fff; }
.neon-options-section > .container--full { max-width: none; width: 100%; padding-left: 80px; padding-right: 80px; box-sizing: border-box; }
.neon-options__header { margin-bottom: 2rem; }
.neon-options__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-size: calc(0.78rem + 2pt); color: #f3c91a !important; }
.neon-options__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: 0 0 auto; }
.neon-options-section #neon-heading { color: #fff !important; margin: 0; }
.neon-board { padding: 1.5rem 1.75rem 1.75rem; background: #fff; border-radius: 14px; border-bottom: 15px solid #f3c91a; box-shadow: 0 24px 50px rgba(0, 0, 0, 0.35); color: #0f143a; }
.neon-board__head { display: grid; gap: 0.35rem; margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(15, 20, 58, 0.12); }
.neon-board__label { margin: 0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #8f1c2c; }
.neon-board__title { margin: 0; color: #0f143a !important; font-size: clamp(1.25rem, 2vw, 1.55rem); letter-spacing: -0.01em; }
.neon-board__note { margin: 0.15rem 0 0; max-width: 62ch; color: rgba(15, 20, 58, 0.72); font-size: 0.95rem; line-height: 1.5; }
.neon-board__index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem 1.75rem; }
.neon-board__col { min-width: 0; }
.neon-board__heading { margin: 0 0 0.65rem; padding-bottom: 0.45rem; border-bottom: 2px solid #f3c91a; color: #0f143a; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.neon-board__list { list-style: none; margin: 0; padding: 0; display: grid; }
.neon-board__list li { position: relative; margin: 0; padding: 0.55rem 0 0.55rem 0.95rem; border-bottom: 1px solid rgba(15, 20, 58, 0.1); color: rgba(15, 20, 58, 0.88); font-size: 0.92rem; font-weight: 600; line-height: 1.35; }
.neon-board__list li:last-child { border-bottom: 0; }
.neon-board__list li::before { content: ""; position: absolute; left: 0; top: 50%; width: calc(0.35rem - 1px); height: calc(0.35rem - 1px); transform: translateY(-50%); border-radius: 1px; background: #8f1c2c; box-shadow: 0 0 3px 1px rgba(143, 28, 44, 0.5); animation: site-nav-sep-glow 2.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .neon-board__list li::before { animation: none; } }
@media (max-width: 900px) { .neon-board__index { grid-template-columns: 1fr 1fr; } }
@media (max-width: 720px) { .neon-options-section > .container--full { padding-left: 20px; padding-right: 20px; } }
@media (max-width: 600px) { .neon-board { padding: 1.1rem 1rem 1.2rem; } .neon-board__index { grid-template-columns: 1fr; gap: 1.35rem; } }

/* 1.8.285 — UV/LED Signs: LED signage options restyled to match Neon options (navy + index board) */
.neon-options-section #led-heading { color: #fff !important; margin: 0; }
.led-options-section + .neon-options-section { border-top: 1px solid rgba(255, 255, 255, 0.08); }
.led-thumb-grid { margin-top: 1.75rem; gap: 1.1rem; }
.led-thumb-grid .signage-thumb { border-radius: 14px; background: #0f143a; border: 1px solid rgba(243, 201, 26, 0.35); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35); transition: border-color 0.3s ease, transform 0.3s ease; }
.led-thumb-grid .signage-thumb img { height: 220px; transition: transform 0.6s ease; }
.led-thumb-grid .signage-thumb:hover { border-color: #f3c91a; transform: translateY(-3px); }
.led-thumb-grid .signage-thumb:hover img { transform: scale(1.06); }
@media (max-width: 900px) { .led-thumb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .led-thumb-grid .signage-thumb img { height: 180px; } }
@media (prefers-reduced-motion: reduce) { .led-thumb-grid .signage-thumb, .led-thumb-grid .signage-thumb img { transition: none; } .led-thumb-grid .signage-thumb:hover, .led-thumb-grid .signage-thumb:hover img { transform: none; } }

/* 1.8.286 — UV-LED Signs: mosaic gallery (yellow + diamond texture, bento grid) */
.section.led-gallery-section { position: relative; isolation: isolate; overflow: hidden; background: #f3c91a !important; color: #0f143a; }
.section.led-gallery-section::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto; background-repeat: repeat;
  filter: brightness(0); opacity: 0.1;
}
.led-gallery-section > .container--full { max-width: none; width: 100%; box-sizing: border-box; padding-left: 80px; padding-right: 80px; }
.led-gallery__header { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1.5rem 3rem; align-items: end; margin-bottom: 2.25rem; }
.led-gallery__header h2 { margin: 0; }
.led-gallery-section .led-gallery__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-size: calc(0.78rem + 2pt); color: #0f143a !important; }
.led-gallery__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: 0 0 auto; }
.led-gallery-section #led-gallery-heading { color: #0f143a !important; }
.led-gallery-section .led-gallery__lead { margin: 0; max-width: 46ch; padding-left: 1.25rem; border-left: 4px solid #0f143a; color: #0f143a !important; }
/* 6 photos: 3 columns x 3 rows, one 2x2 feature, no holes */
.led-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(210px, 21vw, 340px); grid-auto-flow: dense; gap: 14px; }
.led-gallery__item { position: relative; margin: 0; overflow: hidden; border-radius: 14px; background: #0f143a; border: 5px solid #0f143a; box-sizing: border-box; box-shadow: 0 12px 28px rgba(15, 20, 58, 0.22); isolation: isolate; }
.led-gallery__item--feature { grid-column: span 2; grid-row: span 2; }
.led-gallery__item--wide { grid-column: span 2; }
.led-gallery__item img, .led-gallery__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.led-gallery__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: #f3c91a; transform: scaleX(0); transform-origin: left; transition: transform 0.4s ease; z-index: 2; }
.led-gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 2.5rem 1.1rem 1rem; background: linear-gradient(to top, rgba(15, 20, 58, 0.92), rgba(15, 20, 58, 0)); color: #fff; font-size: 0.95rem; font-weight: 700; letter-spacing: 0.01em; opacity: 0; transform: translateY(12px); transition: opacity 0.35s ease, transform 0.35s ease; }
.led-gallery__item:hover img, .led-gallery__item:focus-within img { transform: scale(1.06); }
.led-gallery__item:hover .led-gallery__cap, .led-gallery__item:focus-within .led-gallery__cap { opacity: 1; transform: none; }
.led-gallery__item:hover::after, .led-gallery__item:focus-within::after { transform: scaleX(1); }
.led-gallery__item--feature .led-gallery__cap { font-size: 1.15rem; padding: 3rem 1.4rem 1.3rem; }
@media (hover: none) { .led-gallery__cap { opacity: 1; transform: none; } }
@media (max-width: 1024px) {
  .led-gallery-section > .container--full { padding-left: 32px; padding-right: 32px; }
  .led-gallery__header { grid-template-columns: 1fr; }
  .led-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 34vw, 280px); }
  .led-gallery__item:last-child { grid-column: span 2; }
}
@media (max-width: 560px) {
  .led-gallery-section > .container--full { padding-left: 20px; padding-right: 20px; }
  .led-gallery { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .led-gallery__item--feature, .led-gallery__item--wide, .led-gallery__item:last-child { grid-column: auto; grid-row: auto; }
}
@media (prefers-reduced-motion: reduce) { .led-gallery__item img, .led-gallery__cap, .led-gallery__item::after { transition: none; } }

/* 1.8.287 — UV-LED CTA eyebrow: yellow with line */
.section__eyebrow.led-cta-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: #f3c91a;
	font-size: calc(0.78rem + 2pt);
}
.section__eyebrow.led-cta-eyebrow::before {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	background: currentColor;
	flex: 0 0 auto;
}

/* 1.8.288 — UV-LED gallery: 21 photos, 4-col bento (1 feature 2x2 + 4 wide), hole-free */
.led-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(190px, 17vw, 300px); grid-auto-flow: dense; gap: 14px; }
.led-gallery__img { height: 100% !important; }
@media (max-width: 1024px) {
  .led-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 34vw, 280px); }
  .led-gallery__item:last-child { grid-column: auto; }
}
@media (max-width: 560px) {
  .led-gallery { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .led-gallery__item--feature, .led-gallery__item--wide, .led-gallery__item--tall { grid-column: auto; grid-row: auto; }
}

/* 1.8.290 — UV-LED process: dimension mockup + 2-col steps | slider */
#process .led-process-mockup {
  margin: 0 auto 2.5rem;
  max-width: 576px;
  text-align: center;
}
#process .led-process-mockup__card {
  background: #fff;
  border-radius: 14px;
  padding: 1rem;
  box-shadow: 0 12px 32px rgba(15, 20, 58, 0.10);
  border: 1px solid rgba(15, 20, 58, 0.06);
}
#process .led-process-mockup__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}
#process .led-process-mockup__cap {
  margin-top: 0.75rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted, #5b6080);
}
#process .led-process-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
#process .led-process-grid .signage-process {
  grid-template-columns: 1fr;
}
.led-slider {
  position: sticky;
  top: 120px;
}
.led-slider__viewport {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #0f143a;
  border-radius: 14px;
  border-bottom: 15px solid #f3c91a;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(15, 20, 58, 0.18);
  touch-action: pan-y;
}
.led-slider__track { position: absolute; inset: 0; }
.led-slider__slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s ease, visibility 0s linear .5s;
}
.led-slider__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity .5s ease, visibility 0s;
}
.led-slider__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.led-slider__img--contain { object-fit: contain; }
.led-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid #f3c91a;
  background: #0f143a;
  color: #f3c91a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.led-slider__btn--prev { left: 14px; }
.led-slider__btn--next { right: 14px; }
.led-slider__btn:hover,
.led-slider__btn:focus-visible {
  background: #f3c91a;
  color: #0f143a;
}
.led-slider__btn:focus-visible,
.led-slider__dot:focus-visible {
  outline: 3px solid #f3c91a;
  outline-offset: 3px;
}
.led-slider__dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 1rem;
}
.led-slider__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 0;
  padding: 0;
  background: rgba(15, 20, 58, 0.25);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.led-slider__dot.is-active {
  background: #0f143a;
  box-shadow: 0 0 0 2px #f3c91a;
  transform: scale(1.15);
}
@media (prefers-reduced-motion: reduce) {
  .led-slider__slide,
  .led-slider__slide.is-active { transition: none; }
}
@media (max-width: 900px) {
  #process .led-process-grid { grid-template-columns: 1fr; }
  .led-slider { position: static; max-width: 560px; margin: 0 auto; width: 100%; }
}
@media (max-width: 600px) {
  #process .led-process-mockup__card { padding: 0.6rem; }
  .led-slider__btn { width: 40px; height: 40px; }
}

/* 1.8.291 — UV-LED process steps: footer-plate text box style (navy plate, gold top line, yellow badge) */
#process .signage-process__step {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0.75rem;
  row-gap: 0.7rem;
  box-sizing: border-box;
  padding: 1.25rem 1.35rem 1.35rem;
  border-radius: 12px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    #0f143a;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 12px 28px rgba(15, 20, 58, 0.22);
  transition: opacity .8s var(--ease), transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
#process .signage-process__step::before {
  content: "";
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #f3c91a, transparent);
  opacity: 0.7;
  transition: opacity .25s ease;
}
#process .signage-process__step::after {
  content: "";
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #fff3b0, #f3c91a, transparent);
  opacity: 0;
  pointer-events: none;
}
#process .signage-process__num {
  grid-column: 1;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6rem;
  height: 2rem;
  padding: 0 0.5rem;
  border-radius: 4px;
  background: #f3c91a;
  color: #0f143a;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
}
#process .signage-process__body { display: contents; }
#process .signage-process__body h3 {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  font-family: var(--font-head);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff !important;
}
#process .signage-process__body p {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(247, 245, 242, 0.85);
}
#process .signage-process__body p a { color: #f3c91a; }
#process .signage-process__step.is-visible:hover,
#process .signage-process__step:hover {
  transform: translateY(-3px);
  border-color: rgba(243, 201, 26, 0.4);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 18px 36px rgba(15, 20, 58, 0.3);
}
#process .signage-process__step:hover::before { opacity: 1; }
#process .signage-process__step:hover::after { animation: molded-edge-sweep 1.1s ease-in-out forwards; }
@media (prefers-reduced-motion: reduce) {
  #process .signage-process__step:hover { transform: none; }
  #process .signage-process__step:hover::after { animation: none; }
}

/* 1.8.292 — UV/LED Signs: LED options photo row replaced by 10-photo infinite carousel (6 across) */
.led-carousel { --led-gap: 14px; --led-per: 6; margin-top: 2.5rem; position: relative; }
.led-carousel__viewport { container-type: inline-size; overflow: hidden; padding: 6px 0 10px; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%); }
.led-carousel__track { display: flex; gap: var(--led-gap); width: max-content; margin: 0; padding: 0; list-style: none; animation: led-carousel-scroll 50s linear infinite; will-change: transform; }
.led-carousel:hover .led-carousel__track, .led-carousel:focus-within .led-carousel__track { animation-play-state: paused; }
.led-carousel__tile { flex: 0 0 auto; width: calc((100cqw - (var(--led-per) - 1) * var(--led-gap)) / var(--led-per)); aspect-ratio: 1 / 1; margin: 0; border-radius: 14px; overflow: hidden; background: #0f143a; border: 1px solid rgba(243, 201, 26, 0.35); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35); transition: border-color 0.3s ease, transform 0.3s ease; }
.led-carousel__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.led-carousel__tile:hover { border-color: #f3c91a; transform: translateY(-3px); }
.led-carousel__tile:hover .led-carousel__img { transform: scale(1.06); }
/* track = 2 identical sets; each set = 10 tiles + 10 gaps, so -50% lands exactly on the duplicate */
@keyframes led-carousel-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - var(--led-gap) / 2)); } }
@media (max-width: 1024px) { .led-carousel { --led-per: 4; } .led-carousel__track { animation-duration: 40s; } }
@media (max-width: 720px) { .led-carousel { --led-per: 3; } }
@media (max-width: 480px) { .led-carousel { --led-per: 2; } .led-carousel__track { animation-duration: 32s; } }
@media (prefers-reduced-motion: reduce) {
  .led-carousel__viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; scroll-snap-type: x mandatory; }
  .led-carousel__track { animation: none; }
  .led-carousel__tile { scroll-snap-align: start; transition: none; }
  .led-carousel__tile[aria-hidden="true"] { display: none; }
  .led-carousel__tile:hover, .led-carousel__tile:hover .led-carousel__img { transform: none; }
}

/* 1.8.293 — UV/LED intro: single photo becomes a 4-slide crossfade slider (reuses [data-led-slider] JS) */
.signage-split__media.led-intro-media { overflow: visible; box-shadow: none; border-radius: 0; }
.led-slider.led-slider--intro { position: relative; top: auto; }
.led-slider--intro .led-slider__viewport { aspect-ratio: 3 / 2; background: #fff; border-bottom: 0; border-radius: 1rem; box-shadow: 0 14px 34px rgba(15, 20, 58, 0.12); }
.led-slider--intro .led-slider__slide { transition: opacity .8s ease, visibility 0s linear .8s; }
.led-slider--intro .led-slider__slide.is-active { transition: opacity .8s ease, visibility 0s; }
.signage-split__media.led-intro-media .led-slider__img { width: 100%; height: 100%; object-fit: cover; }
.signage-split__media.led-intro-media .led-slider__img--contain { object-fit: contain; background: #fff; padding: 10px; box-sizing: border-box; }
.led-slider--intro .led-slider__dots { margin-top: 0.85rem; }
.led-slider--intro .led-slider__dot { width: 8px; height: 8px; }
@media (max-width: 900px) { .led-slider.led-slider--intro { max-width: none; } }
@media (prefers-reduced-motion: reduce) { .led-slider--intro .led-slider__slide, .led-slider--intro .led-slider__slide.is-active { transition: none; } }

/* 1.8.295 — Large Format: 3D flip cards (matches idxde.com/signage-film "flip-3d": rotateY, 0.7s cubic-bezier(.4,.2,.2,1), perspective 1000px, content lifted translateZ(60px) scale(.94)) */
.flip-card-grid { align-items: stretch; }
.flip-card {
  position: relative;
  display: grid;
  perspective: 1000px;
  -webkit-perspective: 1000px;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  cursor: pointer;
}
.flip-card__face {
  grid-area: 1 / 1;
  position: relative;
  border-radius: 1rem;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: transform 0.7s cubic-bezier(.4,.2,.2,1), box-shadow 0.3s ease;
  min-width: 0;
}
.flip-card__face--front {
  background: #fff;
  border: 1px solid rgba(15, 20, 58, 0.08);
  box-shadow: 0 12px 30px rgba(15, 20, 58, 0.08);
  transform: rotateY(0deg);
}
.flip-card__face--back {
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(243, 201, 26, 0.14), transparent 55%),
    #0f143a;
  border: 1px solid rgba(243, 201, 26, 0.35);
  box-shadow: 0 18px 40px rgba(15, 20, 58, 0.22);
  color: #fff;
  transform: rotateY(180deg);
  pointer-events: none;
}
.flip-card__content {
  height: 100%;
  display: flex;
  flex-direction: column;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(60px) scale(.94);
  -webkit-transform: translateZ(60px) scale(.94);
}
.flip-card__face--front .signage-card__media { border-radius: 1rem 1rem 0 0; }
.flip-card__face--front .signage-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.flip-card__face--front .signage-card__tags { margin-bottom: 0.9rem; }
.flip-card__toggle {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.85rem;
  border: 1px solid rgba(15, 20, 58, 0.18);
  border-radius: 999px;
  background: transparent;
  color: #0f143a;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.flip-card__toggle:hover,
.flip-card__toggle:focus-visible { background: #0f143a; color: #f3c91a; border-color: #0f143a; }
.flip-card__face--back .flip-card__content {
  padding: 1.6rem 1.5rem 1.5rem;
  justify-content: center;
}
.flip-card__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 0.55rem;
  font-size: calc(0.78rem + 2pt);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #f3c91a;
}
.flip-card__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.flip-card__title {
  margin: 0 0 0.7rem;
  font-family: var(--font-head);
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.2;
  color: #f3c91a;
}
.flip-card__text {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.92rem;
  line-height: 1.55;
}
.flip-card__tags {
  list-style: none;
  margin: 0 0 1.1rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.flip-card__tags li {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #f3c91a;
  border: 1px solid rgba(243, 201, 26, 0.5);
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
}
.flip-card__actions {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}
.flip-card__back-btn {
  background: none;
  border: 0;
  padding: 0.25rem 0;
  color: rgba(255, 255, 255, 0.8);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.flip-card__back-btn:hover,
.flip-card__back-btn:focus-visible { color: #f3c91a; }

/* Flipped state: tap / keyboard (.is-flipped) */
.flip-card.is-flipped .flip-card__face--front { transform: rotateY(-180deg); pointer-events: none; }
.flip-card.is-flipped .flip-card__face--back { transform: rotateY(0deg); pointer-events: auto; }
/* Keyboard focus flips (separate rule so browsers without :has keep the rest) */
.flip-card:has(:focus-visible) .flip-card__face--front { transform: rotateY(-180deg); pointer-events: none; }
.flip-card:has(:focus-visible) .flip-card__face--back { transform: rotateY(0deg); pointer-events: auto; }
/* Hover flips on mouse / trackpad devices, like the reference */
@media (hover: hover) and (pointer: fine) {
  .flip-card:hover .flip-card__face--front { transform: rotateY(-180deg); pointer-events: none; }
  .flip-card:hover .flip-card__face--back { transform: rotateY(0deg); pointer-events: auto; }
  .flip-card { cursor: default; }
  .flip-card__back-btn { display: none; }
}

/* Reduced motion: crossfade instead of a 3D turn */
@media (prefers-reduced-motion: reduce) {
  .flip-card__face,
  .flip-card__content { transform: none !important; -webkit-transform: none !important; transition: opacity 0.3s ease, visibility 0.3s ease; }
  .flip-card__face--back { opacity: 0; visibility: hidden; }
  .flip-card.is-flipped .flip-card__face--front { opacity: 0; visibility: hidden; }
  .flip-card.is-flipped .flip-card__face--back { opacity: 1; visibility: visible; }
  .flip-card:has(:focus-visible) .flip-card__face--front { opacity: 0; visibility: hidden; }
  .flip-card:has(:focus-visible) .flip-card__face--back { opacity: 1; visibility: visible; }
}
@media (prefers-reduced-motion: reduce) and (hover: hover) and (pointer: fine) {
  .flip-card:hover .flip-card__face--front { opacity: 0; visibility: hidden; }
  .flip-card:hover .flip-card__face--back { opacity: 1; visibility: visible; }
}
@media (max-width: 720px) {
  .flip-card__face--back .flip-card__content { padding: 1.4rem 1.25rem 1.3rem; }
  .flip-card__title { font-size: 1.2rem; }
}

/* 1.8.296 — Large Format: flip cards restyled to match idxde.com/signage-film
   (light-blue frame #afcaf4, logo on top, photo panel with dark tint, white bold title,
   underlined italic label, white bold bullets; back face white with soft-yellow photo shadow).
   Motion unchanged from 1.8.295: rotateY, 0.7s cubic-bezier(.4,.2,.2,1), perspective 1000px. */
.lfc-grid { display: grid; gap: 16px; align-items: stretch; }
.lfc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lfc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lfc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lfc { font-family: "Poppins", var(--font-sans); text-align: left; }
.lfc .flip-card__face--front {
  background: #afcaf4;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-height: 350px;
}
.lfc .flip-card__face--back {
  background: #fff;
  border: 0;
  border-radius: 0;
  box-shadow: 0 10px 28px rgba(15, 20, 58, 0.12);
  color: #1d1d1f;
  min-height: 350px;
}
.lfc__front { position: relative; padding: 6px 0 46px; }
.lfc__logo {
  height: 74px;
  padding: 5px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lfc__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(200px, 100%);
  max-height: 64px;
  object-fit: contain;
}
.lfc__band {
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.2;
  color: #0f143a;
  text-align: center;
}
.lfc__photo {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 64px;
  background-color: #2b3139;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.lfc__panel {
  container-type: inline-size;
  background: rgba(0, 0, 0, 0.7);
  padding: 6px 20px 14px;
  color: #fff;
}
.lfc__title {
  margin: 0 0 4px;
  color: #fff;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  line-height: 2.2;
  font-size: 13px;
  font-size: min(16px, calc(100cqi / (var(--len, 20) * 0.6)));
}
.lfc__label {
  margin: 0 0 6px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  font-style: italic;
  text-decoration: underline;
  text-underline-offset: 2px;
  line-height: 20px;
}
.lfc__list {
  margin: 0;
  padding-left: 18px;
  list-style: disc;
  color: #fff;
}
.lfc__list li {
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  margin: 0;
}
.lfc__list li::marker { color: #fff; }
.lfc .lfc__toggle {
  position: absolute;
  right: 10px;
  bottom: 8px;
  width: 30px;
  height: 30px;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: rgba(15, 20, 58, 0.88);
  color: #f3c91a;
  letter-spacing: 0;
}
.lfc .lfc__toggle:hover,
.lfc .lfc__toggle:focus-visible { background: #0f143a; color: #fff; }
.lfc__back { padding: 20px; }
.lfc__back-img { margin-bottom: 10px; }
.lfc__back-img img {
  display: block;
  width: 100%;
  max-width: 300px;
  aspect-ratio: 300 / 167;
  height: auto;
  object-fit: cover;
  margin: 0 auto;
  border: 1px solid #1d1d1f;
  box-shadow: rgba(243, 201, 26, 0.43) 0 3px 11px 0;
}
.lfc__back-title {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 500;
  line-height: 22px;
  color: #1d1d1f;
}
.lfc__back-text p {
  margin: 0 0 6px;
  font-size: 12px;
  line-height: 20px;
  color: #333;
}
.lfc .lfc__back-btn { color: #0f143a; margin-top: auto; align-self: flex-start; }
.lfc .lfc__back-btn:hover,
.lfc .lfc__back-btn:focus-visible { color: #c8102e; }

/* Vehicle magnets — reference sizes: 400px tall, 285×97 logo, blue tint, 24px title, 18px copy */
.lfc-grid--magnets .lfc .flip-card__face--front,
.lfc-grid--magnets .lfc .flip-card__face--back { min-height: 400px; }
.lfc-grid--magnets .lfc__logo { height: 107px; }
.lfc-grid--magnets .lfc__logo img { max-width: min(285px, 100%); max-height: 97px; }
.lfc-grid--magnets .lfc__photo { padding-top: 40px; }
.lfc-grid--magnets .lfc__panel { background: rgba(16, 139, 211, 0.91); padding: 8px 48px 40px; }
.lfc-grid--magnets .lfc__title { line-height: 2; font-size: 18px; font-size: min(24px, calc(100cqi / (var(--len, 20) * 0.6))); }
.lfc-grid--magnets .lfc__label,
.lfc-grid--magnets .lfc__list li { font-size: 18px; line-height: 28px; }
.lfc-grid--magnets .lfc__back-img img { max-width: 451px; aspect-ratio: 451 / 251; }
.lfc-grid--magnets .lfc__back-title { font-size: 24px; line-height: 1.6; }
.lfc-grid--magnets .lfc__back-text p { font-size: 18px; line-height: 1.5; }

@media (max-width: 1100px) {
  .lfc-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .lfc-grid--3,
  .lfc-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .lfc-grid--2,
  .lfc-grid--3,
  .lfc-grid--4 { grid-template-columns: 1fr; }
  .lfc-grid--magnets .lfc__panel { padding: 8px 24px 28px; }
  .lfc-grid--magnets .lfc__label,
  .lfc-grid--magnets .lfc__list li { font-size: 15px; line-height: 24px; }
  .lfc-grid--magnets .lfc__back-text p { font-size: 15px; }
}
/* 1.8.296 — logos: fixed box so lazy images have a size before load (Safari) */
.lfc__logo img { width: 200px; height: 64px; max-width: 100%; max-height: none; object-fit: contain; }
.lfc-grid--magnets .lfc__logo img { width: 285px; height: 97px; max-width: 100%; }

/* 1.8.297 — Large Format: hero rebuilt from idxde.com/signage-film (printer video, rotating "push" headline,
   light-blue "SIGNAGE FILMS", lead paragraph) in theme colors + theme scroll cue; flip cards re-branded navy/yellow. */
.large-format-page { --lf-sky: #9ccaf5; }
.large-format-page .lf-hero {
  position: relative;
  overflow: hidden;
  background: #0f143a;
  min-height: clamp(460px, 72vh, 700px);
  display: flex;
  align-items: center;
  padding: 6rem 0 7.5rem;
  text-align: center;
}
.large-format-page .lf-hero::before { display: none; }
.lf-hero__bg {
  position: absolute;
  inset: -10% 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background-size: cover;
  background-position: center;
  will-change: transform;
}
.lf-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}
.lf-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(15, 20, 58, 0.5) 0%, rgba(15, 20, 58, 0.62) 55%, rgba(15, 20, 58, 0.86) 100%),
    rgba(0, 0, 0, 0.25);
}
.lf-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  will-change: transform, opacity;
}
.large-format-page .lf-hero h1.lf-hero__title,
.large-format-page .lf-hero h1.lf-hero__title.idx-oneline-heading {
  margin: 0 0 1.1rem;
  max-width: none;
  width: 100%;
  white-space: nowrap;
  overflow: visible;
  font-family: var(--font-head);
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.15;
  color: #fff;
  font-size: clamp(1.5rem, 5.2vw, 3.25rem);
  transition: font-size 0.35s ease;
}
.lf-hero__line {
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  padding: 0.05em 0.1em;
  vertical-align: top;
}
.lf-hero__words {
  display: inline-block;
  position: relative;
  text-align: left;
  color: #f3c91a;
}
.lf-hero__word {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  white-space: nowrap;
  opacity: 0;
}
.lf-hero__word.is-visible { position: relative; opacity: 1; animation: lf-push-in 0.6s; }
.lf-hero__word.is-hidden { animation: lf-push-out 0.6s; }
.lf-hero__after { color: var(--lf-sky); margin-left: 0.3em; }
@keyframes lf-push-in {
  0% { opacity: 0; transform: translateX(-100%); }
  60% { opacity: 1; transform: translateX(10%); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes lf-push-out {
  0% { opacity: 1; transform: translateX(0); }
  60% { opacity: 0; transform: translateX(110%); }
  100% { opacity: 0; transform: translateX(100%); }
}
.lf-hero__lead {
  max-width: 60rem;
  margin: 0 auto 1.75rem;
  color: var(--lf-sky);
  font-weight: 500;
  font-size: clamp(1rem, 1.35vw, 1.15rem);
  line-height: 1.6;
}
.lf-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}
.lf-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.25rem;
  z-index: 4;
  transform: translateX(-50%);
  display: inline-flex;
  color: #fff;
  text-decoration: none;
  transition: color 0.25s ease;
}
.lf-hero__scroll:hover,
.lf-hero__scroll:focus-visible { color: #f3c91a; outline: none; }
.lf-hero__scroll-icon {
  display: block;
  width: 44px;
  height: 65px;
  animation: home-hero-scroll-bounce 1.8s ease-in-out infinite;
}
.lf-hero__scroll-icon svg { display: block; width: 100%; height: 100%; }
.lf-hero__scroll-dot { animation: home-hero-scroll-dot 1.8s ease-in-out infinite; }
@media (max-width: 720px) {
  .large-format-page .lf-hero { padding: 4.5rem 0 6.5rem; }
  .lf-hero__actions .btn { padding-inline: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .lf-hero__video { display: none; }
  .lf-hero__word.is-visible,
  .lf-hero__word.is-hidden,
  .lf-hero__scroll-icon,
  .lf-hero__scroll-dot { animation: none; }
  .large-format-page .lf-hero h1.lf-hero__title { transition: none; }
}

/* Flip cards — IDX Texas brand (navy frame, yellow accents, white plate for logos, theme fonts) */
.lfc { font-family: var(--font-sans); }
.lfc .flip-card__face--front {
  background: #0f143a;
  border-top: 4px solid #f3c91a;
}
.lfc .flip-card__face--back {
  background: #fff;
  border-top: 4px solid #f3c91a;
  box-shadow: 0 12px 30px rgba(15, 20, 58, 0.14);
}
.lfc__logo {
  margin: 8px 10px 0;
  background: #fff;
  border-radius: 4px;
  height: 66px;
}
.lfc__logo img { height: 56px; }
.lfc__band {
  font-family: var(--font-display);
  font-weight: 800;
  color: #0f143a;
}
.lfc__photo { padding-top: 56px; margin-top: 10px; background-color: #272c67; }
.lfc__panel { background: rgba(15, 20, 58, 0.84); border-top: 2px solid rgba(243, 201, 26, 0.85); }
.lfc__title {
  font-family: var(--font-head);
  font-weight: 600;
  color: #fff;
  font-size: 13px;
  font-size: min(16px, calc(100cqi / (var(--len, 20) * 0.68)));
}
.lfc__label { color: #f3c91a; }
.lfc__list li { color: #fff; }
.lfc__list li::marker { color: #f3c91a; }
.lfc .lfc__toggle { background: #f3c91a; color: #0f143a; }
.lfc .lfc__toggle:hover,
.lfc .lfc__toggle:focus-visible { background: #fff; color: #0f143a; }
.lfc__back-img img {
  border: 2px solid #f3c91a;
  box-shadow: rgba(243, 201, 26, 0.5) 0 4px 14px 0;
}
.lfc__back-title {
  font-family: var(--font-head);
  font-weight: 600;
  color: #0f143a;
}
.lfc__back-text p { color: #5a5f7a; }
.lfc .lfc__back-btn { color: #0f143a; }
.lfc .lfc__back-btn:hover,
.lfc .lfc__back-btn:focus-visible { color: #8f1c2c; }
/* Magnets: navy panel (was reference light blue), larger type kept */
.lfc-grid--magnets .lfc__logo { height: 107px; }
.lfc-grid--magnets .lfc__logo img { height: 95px; }
.lfc-grid--magnets .lfc__panel { background: rgba(39, 44, 103, 0.9); }
.lfc-grid--magnets .lfc__title { font-size: 18px; font-size: min(24px, calc(100cqi / (var(--len, 20) * 0.68))); }

/* 1.8.298 — Banner/Rigid cards: material wordmark logos (idxde.com/large-format) on the same white plate as Adhesives */
.lfc-grid--3 .lfc__logo img { width: 200px; height: 56px; max-width: 100%; object-fit: contain; }

/* 1.8.299 — Large Format layout: Banner stock types 4 columns; Rigid stocks + Adhesives 5 columns (wide container, 40px side padding);
   one-line title fit with JS wrap fallback; Vehicle magnets on yellow with diamond texture. */
.large-format-page .container.lfc-wide { width: 100%; max-width: none; padding-inline: 40px; box-sizing: border-box; }
.lfc-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.lfc-grid--banners.lfc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* Title fit: never smaller than 11.5px; if it still overflows, JS adds --wrap (balanced 2 lines) */
.lfc-grid--4 .lfc__title,
.lfc-grid--5 .lfc__title { font-size: 13px; font-size: max(11.5px, min(16px, calc(100cqi / (var(--len, 20) * 0.62)))); }
.lfc-grid--5 .lfc__panel { padding: 6px 14px 14px; }
.lfc-grid--5 .lfc__back { padding: 16px; }
.lfc__title.lfc__title--wrap { white-space: normal; text-wrap: balance; line-height: 1.3; padding: 0.35em 0; font-size: 13px; }
@media (max-width: 1280px) { .lfc-grid--5 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1100px) {
  .lfc-grid--5,
  .lfc-grid--banners.lfc-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .large-format-page .container.lfc-wide { padding-inline: 32px; }
}
@media (max-width: 980px) {
  .lfc-grid--5,
  .lfc-grid--banners.lfc-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .lfc-grid--5,
  .lfc-grid--banners.lfc-grid--4 { grid-template-columns: 1fr; }
  .large-format-page .container.lfc-wide { padding-inline: 20px; }
}

/* Vehicle magnets: yellow section + diamond texture (established pattern) */
.large-format-page .lf-magnets-yellow {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #f3c91a;
  width: 100%;
}
.large-format-page .lf-magnets-yellow::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-repeat: repeat;
  background-size: 280px auto;
  filter: brightness(0);
  opacity: 0.1;
  pointer-events: none;
}
.large-format-page .lf-magnets-yellow .section__eyebrow { color: #8f1c2c; }
.large-format-page .lf-magnets-yellow h2 { color: #0f143a; }

/* 1.8.300 — Large Format: (A) "ALL ARE WELCOME" recreated from idxde.com/signage-film — video left (no overlay),
   2×2 photos right, 4-col catalog gallery below; (B) theme mosaic of the same photos. */
.large-format-page .lf-welcome { position: relative; background: #fff; padding: 40px 0; }
.lf-welcome__wrap { box-sizing: border-box; }
.lf-welcome__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
}
.lf-welcome__video-col {
  position: relative;
  overflow: hidden;
  min-height: 584px;
  padding: 0 20px;
  background: #e9e4dc;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lf-welcome__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  z-index: 0;
}
.lf-welcome__copy {
  position: relative;
  z-index: 1;
  width: calc(100% - 128px);
  max-width: 640px;
  padding: 28px 0 0;
  text-align: center;
  isolation: isolate;
}
/* Soft halo behind the copy only (no full overlay) so white text stays legible on the light wall */
.lf-welcome__copy::before {
  content: "";
  position: absolute;
  inset: 4px -48px -24px;
  z-index: -1;
  background: radial-gradient(ellipse at 50% 45%, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.18) 45%, rgba(0, 0, 0, 0) 72%);
  pointer-events: none;
}
.large-format-page .lf-welcome h2.lf-welcome__title,
.large-format-page .lf-welcome h2.lf-welcome__title.idx-oneline-heading {
  margin: 0 0 0.6rem;
  width: 100%;
  max-width: none;
  white-space: nowrap;
  color: #fff;
  font-family: var(--font-head);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.15;
  font-size: clamp(1.6rem, 3.4vw, 3rem);
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.7), 0 1px 3px rgba(0, 0, 0, 0.85);
}
.lf-welcome__text {
  margin: 0;
  color: #fff;
  font-size: 16px;
  line-height: 1.5;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.75), 0 1px 2px rgba(0, 0, 0, 0.9);
}
.lf-welcome__text strong { color: #fff; font-weight: 700; }
.lf-welcome__photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 287px;
  gap: 10px;
  padding-left: 10px;
}
.lf-welcome__catalog {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 202px;
  gap: 10px;
  margin-top: 10px;
}
.lf-welcome__photo {
  margin: 0;
  overflow: hidden;
  background: #e8eaf3;
}
.lf-welcome__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform 0.6s ease;
}
/* Original gallery hover: "zoom out" */
.lf-welcome__photo:hover img { transform: scale(1); }
@media (max-width: 1024px) {
  .lf-welcome__catalog { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .lf-welcome__row { grid-template-columns: 1fr; }
  .lf-welcome__video-col { min-height: 420px; }
  .lf-welcome__photos { padding-left: 0; margin-top: 10px; grid-auto-rows: 220px; }
  .lf-welcome__catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 170px; }
  .lf-welcome__copy { width: calc(100% - 40px); }
}
@media (max-width: 560px) {
  .lf-welcome__photos { grid-auto-rows: 160px; }
  .lf-welcome__catalog { grid-auto-rows: 130px; }
}
@media (prefers-reduced-motion: reduce) {
  .lf-welcome__video { display: none; }
  .lf-welcome__video-col { background: #e9e4dc url("../images/signage/large-format-welcome/welcome-poster.jpg") center / cover no-repeat; }
  .lf-welcome__photo img { transition: none; }
}

/* (B) Mosaic — theme version (UV-LED "Recent work" pattern) on light paper */
.large-format-page .lf-mosaic-section { background: var(--paper, #f5f6fa); }
.lf-mosaic-section__wrap { box-sizing: border-box; }
.lf-mosaic__header {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 1.25rem 3rem;
  align-items: end;
  margin-bottom: 2.25rem;
}
.lf-mosaic__header h2 { margin: 0; color: #0f143a; }
.lf-mosaic__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-size: calc(0.78rem + 2pt); }
.lf-mosaic__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: 0 0 auto; }
.lf-mosaic__lead { margin: 0; max-width: 46ch; padding-left: 1.25rem; border-left: 4px solid #f3c91a; color: #0f143a; font-weight: 500; }
.lf-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: clamp(170px, 15vw, 260px);
  grid-auto-flow: dense;
  gap: 14px;
}
.lf-mosaic__item {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #0f143a;
  border: 5px solid #0f143a;
  box-sizing: border-box;
  box-shadow: 0 12px 28px rgba(15, 20, 58, 0.18);
  isolation: isolate;
  outline: none;
}
.lf-mosaic__item--feature { grid-column: span 2; grid-row: span 2; }
.lf-mosaic__item--wide { grid-column: span 2; }
.lf-mosaic__item img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 9px; transition: transform 0.6s ease; }
.lf-mosaic__item::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 5px;
  background: #f3c91a;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
  z-index: 2;
}
.lf-mosaic__item:hover img,
.lf-mosaic__item:focus-visible img { transform: scale(1.06); }
.lf-mosaic__item:hover::after,
.lf-mosaic__item:focus-visible::after { transform: scaleX(1); }
.lf-mosaic__item:focus-visible { box-shadow: 0 0 0 3px #f3c91a, 0 12px 28px rgba(15, 20, 58, 0.18); }
@media (max-width: 900px) {
  .lf-mosaic__header { grid-template-columns: 1fr; }
  .lf-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 180px; }
}
@media (max-width: 560px) {
  .lf-mosaic { grid-template-columns: 1fr; grid-auto-rows: 200px; }
  .lf-mosaic__item--feature,
  .lf-mosaic__item--wide { grid-column: span 1; }
}
@media (prefers-reduced-motion: reduce) {
  .lf-mosaic__item img, .lf-mosaic__item::after { transition: none; }
}
/* 1.8.300 — anchor jumps land below the sticky header + breadcrumb */
.large-format-page section[id] { scroll-margin-top: 120px; }

/* 1.8.301 — Large Format: hero lead moved into a navy diamond-texture intro section; hero fades into it
   (same bottom-fade pattern as the Laser Ready Blanks hero → Start here). */
.large-format-page .lf-hero { border-bottom: none; }
.large-format-page .lf-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: clamp(120px, 22vw, 220px);
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(15, 20, 58, 0) 0%,
    rgba(15, 20, 58, 0.45) 40%,
    rgba(15, 20, 58, 0.85) 72%,
    #0f143a 100%
  );
}
.large-format-page .lf-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #0f143a;
  color: #fff;
  padding: 3rem 0 4.5rem;
  margin-top: -1px;
  text-align: center;
}
.large-format-page .lf-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("../images/backgrounds/footer-diamond.png");
  background-size: 280px auto;
  background-repeat: repeat;
  opacity: 0.12;
  pointer-events: none;
  /* soften the texture where the hero fade meets it */
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 90px);
  mask-image: linear-gradient(to bottom, transparent 0, #000 90px);
}
.lf-intro__inner { display: flex; flex-direction: column; align-items: center; }
.lf-intro__rule { display: block; width: 64px; height: 3px; background: #f3c91a; border-radius: 2px; margin-bottom: 1.4rem; }
.lf-intro__lead {
  margin: 0 auto;
  max-width: 64ch;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.15rem, 1.7vw, 1.4rem);
  line-height: 1.65;
  font-weight: 500;
}
.lf-intro__accent { color: #f3c91a; font-weight: 700; }
@media (max-width: 720px) {
  .large-format-page .lf-intro { padding: 2.25rem 0 3.25rem; }
}

/* 1.8.302 — Shared lightbox (Large Format "ALL ARE WELCOME" + mosaic); builds on .metal-lightbox styles */
.idx-lightbox-trigger { cursor: zoom-in; }
.idx-lightbox-trigger:focus-visible { outline: 3px solid #f3c91a; outline-offset: 3px; }
.idx-lightbox { z-index: 2000; padding: 0; }
.idx-lightbox .metal-lightbox__backdrop { background: rgba(15, 20, 58, 0.94); cursor: zoom-out; }
.idx-lightbox__panel {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  display: grid;
  place-items: center;
  padding: 3.5rem 4.5rem 2rem;
  box-sizing: border-box;
  pointer-events: none;
}
.idx-lightbox__panel > * { pointer-events: auto; }
.idx-lightbox__figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 0.75rem; max-width: 90vw; }
.idx-lightbox .idx-lightbox__img {
  max-width: 90vw;
  max-height: calc(90vh - 4.5rem);
  width: auto;
  height: auto;
  object-fit: contain;
  opacity: 0;
  transform: scale(0.985);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.idx-lightbox.is-loaded .idx-lightbox__img { opacity: 1; transform: none; }
.idx-lightbox__meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 0.35rem 1rem; color: #fff; max-width: min(90vw, 48rem); text-align: center; }
.idx-lightbox__count { color: #f3c91a; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.08em; white-space: nowrap; }
.idx-lightbox .idx-lightbox__close { position: fixed; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; background: rgba(15, 20, 58, 0.85); color: #fff; border: 1px solid rgba(243, 201, 26, 0.6); transition: background-color 0.2s ease, color 0.2s ease; }
.idx-lightbox .idx-lightbox__nav { position: fixed; width: 3rem; height: 3rem; font-size: 2rem; background: rgba(15, 20, 58, 0.85); color: #fff; border: 1px solid rgba(243, 201, 26, 0.6); transition: background-color 0.2s ease, color 0.2s ease; }
.idx-lightbox .metal-lightbox__nav--prev { left: 1rem; }
.idx-lightbox .metal-lightbox__nav--next { right: 1rem; }
.idx-lightbox .idx-lightbox__close:hover,
.idx-lightbox .idx-lightbox__close:focus-visible,
.idx-lightbox .idx-lightbox__nav:hover,
.idx-lightbox .idx-lightbox__nav:focus-visible { background: #f3c91a; color: #0f143a; outline: 2px solid #f3c91a; outline-offset: 2px; }
.idx-lightbox .idx-lightbox__nav[hidden] { display: none; }
.idx-lightbox { opacity: 0; transition: opacity 0.2s ease; }
.idx-lightbox.is-open { opacity: 1; }
@media (max-width: 720px) {
  .idx-lightbox__panel { padding: 3.75rem 0.75rem 1.5rem; }
  .idx-lightbox .idx-lightbox__nav { top: auto; bottom: 1rem; transform: none; width: 2.75rem; height: 2.75rem; }
  .idx-lightbox .idx-lightbox__img { max-height: calc(90vh - 7rem); }
}
@media (prefers-reduced-motion: reduce) {
  .idx-lightbox, .idx-lightbox .idx-lightbox__img { transition: none; transform: none; }
}

/* 1.8.304 — Large Format mosaic: top padding halved */
.large-format-page .lf-mosaic-section { padding-top: clamp(1.75rem, 3.5vw, 3.25rem); }

/* Large Format card CTA (J-Bond → IDX Sign Builder) */
.lfc__cta { position: relative; z-index: 3; display: inline-flex; align-items: center; gap: .4rem; margin-top: .75rem; padding: .55rem 1.1rem; border-radius: 6px; background: #f3c91a; color: #0f143a; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .85rem; text-decoration: none; border: 2px solid #f3c91a; transition: background .2s, color .2s; }
.lfc__cta:hover, .lfc__cta:focus-visible { background: #fff; color: #0f143a; border-color: #fff; }
.lfc__cta:focus-visible { outline: 3px solid #8f1c2c; outline-offset: 2px; }

/* 1.8.306 — Large Format cards redesign: no flip. 4 per row (2 tablet, 1 small phone); faded product photo,
   centered material logo, one-line description. Whole card links to its sign builder; Adhesives are non-clickable. */
.lfx-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.lfx-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; margin-inline: auto; }
.lfx {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  min-height: 230px; padding: 28px 20px 40px; box-sizing: border-box;
  border-radius: 12px; border: 1px solid #e3e6ef; background: #fff;
  box-shadow: 0 2px 10px rgba(15, 20, 58, 0.08);
  color: #0f143a; text-align: center; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lfx__bg { position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; transition: transform .4s ease; }
.lfx::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, 0.8); transition: background .25s ease; }
.lfx__logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 84px; }
.lfx__logo img { width: 230px; height: 84px; max-width: 88%; object-fit: contain; }
.lfx__desc { font-weight: 800; font-size: 15px; line-height: 1.35; color: #0f143a; text-wrap: balance; max-width: 26ch; }
.lfx__hint {
  position: absolute; left: 50%; bottom: 12px; transform: translate(-50%, 6px); opacity: 0;
  padding: 4px 12px; border-radius: 999px; background: #f3c91a; color: #0f143a;
  font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap;
  transition: opacity .2s ease, transform .2s ease;
}
.lfx--link { cursor: pointer; }
.lfx--link:hover,
.lfx--link:focus-visible { transform: translateY(-4px); border-color: #f3c91a; box-shadow: 0 12px 28px rgba(15, 20, 58, 0.18), 0 0 0 2px #f3c91a; color: #0f143a; text-decoration: none; }
.lfx--link:hover::before,
.lfx--link:focus-visible::before { background: rgba(255, 255, 255, 0.6); }
.lfx--link:hover .lfx__bg,
.lfx--link:focus-visible .lfx__bg { transform: scale(1.04); }
.lfx--link:hover .lfx__hint,
.lfx--link:focus-visible .lfx__hint { opacity: 1; transform: translate(-50%, 0); }
.lfx--link:focus-visible { outline: 3px solid #8f1c2c; outline-offset: 3px; }
.large-format-page .lf-magnets-yellow .lfx { border-color: rgba(15, 20, 58, 0.15); }
.large-format-page .lf-magnets-yellow .lfx--link:hover,
.large-format-page .lf-magnets-yellow .lfx--link:focus-visible { border-color: #0f143a; box-shadow: 0 12px 28px rgba(15, 20, 58, 0.25), 0 0 0 2px #0f143a; }
@media (max-width: 980px) {
  .lfx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 480px) {
  .lfx-grid, .lfx-grid--2 { grid-template-columns: 1fr; }
  .lfx { min-height: 200px; }
}
@media (hover: none) {
  .lfx--link .lfx__hint { opacity: 1; transform: translate(-50%, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .lfx, .lfx__bg, .lfx__hint { transition: none; }
  .lfx--link:hover, .lfx--link:focus-visible, .lfx--link:hover .lfx__bg, .lfx--link:focus-visible .lfx__bg { transform: none; }
}

/* 1.8.308 — Large Format: every page-body section full width with 40px side padding (20px at <=640px).
   Scoped to .large-format-page (only page-large-format.php); backgrounds stay full bleed. */
.large-format-page > section > .container,
.large-format-page > section > .container--full,
.large-format-page > .lf-hero > .container {
  width: 100%;
  max-width: none !important; /* overrides the inline 48rem cap on "No limit" */
  margin-inline: 0;
  padding-inline: 40px;
  box-sizing: border-box;
}
@media (max-width: 640px) {
  .large-format-page > section > .container,
  .large-format-page > section > .container--full,
  .large-format-page > .lf-hero > .container { padding-inline: 20px; }
}
/* Wider full-width cards on large screens: keep 4 per row, give them more height and a larger logo */
@media (min-width: 1600px) {
  .large-format-page .lfx { min-height: 280px; }
  .large-format-page .lfx__logo { height: 104px; }
  .large-format-page .lfx__logo img { width: 290px; height: 104px; }
  .large-format-page .lfx__desc { font-size: 16px; }
}

/* 1.8.309 — Large Format: every page-body section's top and bottom padding reduced by 20px (floored at 0). */
.large-format-page > .lf-hero { padding-top: calc(6rem - 20px); padding-bottom: calc(7.5rem - 20px); }
.large-format-page > .lf-intro { padding-top: calc(3rem - 20px); padding-bottom: calc(4.5rem - 20px); }
.large-format-page > section.section {
  padding-top: max(0px, calc(clamp(3.5rem, 7vw, 6.5rem) - 20px));
  padding-bottom: max(0px, calc(clamp(3.5rem, 7vw, 6.5rem) - 20px));
}
.large-format-page > section.section.lf-mosaic-section { padding-top: max(0px, calc(clamp(1.75rem, 3.5vw, 3.25rem) - 20px)); }
.large-format-page > .lf-welcome { padding-top: 20px; padding-bottom: 20px; }
@media (max-width: 720px) {
  .large-format-page > .lf-hero { padding-top: calc(4.5rem - 20px); padding-bottom: calc(6.5rem - 20px); }
  .large-format-page > .lf-intro { padding-top: calc(2.25rem - 20px); padding-bottom: calc(3.25rem - 20px); }
}

/* 1.8.310 — Large Format cards: hover/focus rollover (product video + info panel; 1.8.311: slides up from the bottom)
   and the More Info modal. Cards without a video keep the photo. Touch: first tap opens the panel. */
.lfx.lfx--rich { min-height: 270px; padding: 0; cursor: default; }
.lfx--rich .lfx__face {
  position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 14px; width: 100%; height: 100%; min-height: inherit; padding: 28px 20px; box-sizing: border-box;
  transition: opacity .25s ease;
}
.lfx__video {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity .35s ease; pointer-events: none;
}
.lfx--rich.is-playing .lfx__video { opacity: 1; }
.lfx--rich.is-playing::before { background: rgba(255, 255, 255, 0.08); }
.lfx--rich:hover,
.lfx--rich:focus-within,
.lfx--rich.is-open { transform: translateY(-4px); border-color: #f3c91a; box-shadow: 0 12px 28px rgba(15, 20, 58, 0.18), 0 0 0 2px #f3c91a; }
.lfx--rich:hover::before,
.lfx--rich:focus-within::before,
.lfx--rich.is-open::before { background: rgba(255, 255, 255, 0.55); }
.lfx--rich.is-playing:hover::before,
.lfx--rich.is-playing:focus-within::before,
.lfx--rich.is-playing.is-open::before { background: rgba(255, 255, 255, 0.08); }
.lfx--rich:hover .lfx__face,
.lfx--rich:focus-within .lfx__face,
.lfx--rich.is-open .lfx__face { opacity: 0; }
.lfx__panel {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 16px 16px 18px; box-sizing: border-box;
  background: rgba(255, 255, 255, 0.92); border-top: 3px solid #f3c91a;
  box-shadow: 0 -8px 18px rgba(15, 20, 58, 0.12);
  color: #0f143a; text-align: center;
  transform: translateY(102%); transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.lfx--rich:hover .lfx__panel,
.lfx--rich:focus-within .lfx__panel,
.lfx--rich.is-open .lfx__panel { transform: translateY(0); }
.lfx__panel-logo { display: flex; align-items: center; justify-content: center; height: 46px; width: 100%; }
.lfx__panel-logo img { width: 180px; height: 46px; max-width: 80%; object-fit: contain; }
.lfx__specs { list-style: none; margin: 0; padding: 0; font-size: 13px; line-height: 1.35; }
.lfx__specs li { margin: 0 0 3px; }
.lfx__specs strong { font-weight: 800; }
.lfx__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 4px; }
.lfx__more,
.lfx__build {
  display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 16px;
  border-radius: 999px; font: inherit; font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
.lfx__more { background: transparent; color: #0f143a; border: 2px solid #0f143a; }
.lfx__more:hover, .lfx__more:focus-visible { background: #0f143a; color: #fff; }
.lfx__build { background: #f3c91a; color: #0f143a; border: 2px solid #f3c91a; }
.lfx__build:hover, .lfx__build:focus-visible { background: #0f143a; color: #fff; border-color: #0f143a; text-decoration: none; }
.lfx__more:focus-visible, .lfx__build:focus-visible { outline: 3px solid #8f1c2c; outline-offset: 2px; }
.large-format-page .lf-magnets-yellow .lfx--rich:hover,
.large-format-page .lf-magnets-yellow .lfx--rich:focus-within,
.large-format-page .lf-magnets-yellow .lfx--rich.is-open { border-color: #0f143a; box-shadow: 0 12px 28px rgba(15, 20, 58, 0.25), 0 0 0 2px #0f143a; }
@media (min-width: 1600px) { .large-format-page .lfx.lfx--rich { min-height: 300px; } }
@media (prefers-reduced-motion: reduce) {
  .lfx__panel, .lfx__video, .lfx--rich .lfx__face { transition: none; }
  .lfx--rich:hover, .lfx--rich:focus-within, .lfx--rich.is-open { transform: none; }
}

/* More Info modal */
html.lfm-lock, html.lfm-lock body { overflow: hidden; }
.lfm[hidden] { display: none; }
.lfm { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.lfm__backdrop { position: absolute; inset: 0; background: rgba(15, 20, 58, 0.72); }
.lfm__dialog {
  position: relative; display: flex; flex-direction: column; width: min(960px, 100%); max-height: calc(100vh - 48px);
  background: #f3c91a; color: #0f143a; border-radius: 10px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4); opacity: 0; transform: translateY(12px); transition: opacity .2s ease, transform .2s ease;
}
.lfm.is-visible .lfm__dialog { opacity: 1; transform: none; }
.lfm__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px 12px 22px; background: #000; color: #fff; flex: 0 0 auto; }
.lfm .lfm__title {
  margin: 0; color: #fff; font-family: var(--font-head); font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  font-size: clamp(13px, 2.1vw, 20px); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lfm__close { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; }
.lfm__close:hover, .lfm__close:focus-visible { background: #f3c91a; color: #000; }
.lfm__close:focus-visible { outline: 3px solid #8f1c2c; outline-offset: 2px; }
.lfm__body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.lfm__hero { height: clamp(140px, 24vw, 230px); background: #0f143a; }
.lfm__hero img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: left center; }
.lfm__main { padding: 22px clamp(18px, 4vw, 40px) 30px; text-align: center; }
.lfm__logo { display: flex; justify-content: center; margin-bottom: 12px; }
.lfm__logo img { width: 260px; height: 80px; max-width: 80%; object-fit: contain; background: #fff; border-radius: 8px; padding: 8px 14px; box-sizing: content-box; }
.lfm__desc { max-width: 62ch; margin: 0 auto 18px; font-size: 16px; line-height: 1.6; color: #0f143a; }
.lfm__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 24px; }
.lfm__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 24px; border-radius: 999px; font-weight: 800; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; }
.lfm__btn--outline { border: 2px solid #0f143a; color: #0f143a; background: transparent; }
.lfm__btn--outline:hover, .lfm__btn--outline:focus-visible { background: #0f143a; color: #f3c91a; }
.lfm__btn--solid { border: 2px solid #0f143a; background: #0f143a; color: #fff; }
.lfm__btn--solid:hover, .lfm__btn--solid:focus-visible { background: #fff; color: #0f143a; }
.lfm__btn:focus-visible { outline: 3px solid #8f1c2c; outline-offset: 2px; }
.lfm__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px 28px; text-align: left; border-top: 2px solid rgba(15, 20, 58, 0.25); padding-top: 20px; }
.lfm .lfm__col h3 { margin: 0 0 8px; color: #0f143a; font-size: 15px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.lfm__col ul { margin: 0; padding-left: 1.1em; }
.lfm__col li { margin: 0 0 4px; font-size: 14.5px; line-height: 1.45; color: #0f143a; }
@media (max-width: 640px) {
  .lfm { padding: 10px; }
  .lfm__dialog { max-height: calc(100vh - 20px); }
}
@media (prefers-reduced-motion: reduce) { .lfm__dialog { transition: none; } }


/* 1.8.314 — Large Format section banner headers */
.large-format-page .lfc-section{padding-top:0}
.lfh{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:2rem;min-height:290px;margin:0 40px 2.5rem;padding:2rem clamp(1.5rem,4vw,3.5rem);border-radius:0 0 22px 22px;overflow:hidden;color:#fff;isolation:isolate;border-bottom:4px solid #f3c91a}
.lfh__bg{position:absolute;inset:0;z-index:-3;background-size:cover;background-position:center;opacity:.18;filter:grayscale(.3) blur(1px);transform:scale(1.05)}
.lfh__tex{position:absolute;inset:0;z-index:-2;background-image:radial-gradient(rgba(255,255,255,.09) 1px,transparent 1.4px);background-size:14px 14px;mask-image:linear-gradient(90deg,#000 0,transparent 75%);-webkit-mask-image:linear-gradient(90deg,#000 0,transparent 75%)}
.lfh::before{content:"";position:absolute;inset:0;z-index:-4}
.lfh::after{content:"";position:absolute;z-index:-1;right:-6%;top:-30%;width:55%;height:160%;border-radius:50%;background:radial-gradient(closest-side,rgba(156,202,245,.45),transparent);pointer-events:none}
.lfh--navy::before{background:linear-gradient(115deg,#0f143a 0%,#1b2560 55%,#2d4a8a 100%)}
.lfh--sky::before{background:linear-gradient(120deg,#0f143a 0%,#24407a 45%,#9ccaf5 130%)}
.lfh--deep::before{background:linear-gradient(115deg,#0f143a 0%,#3a1530 60%,#8f1c2c 120%)}
.lfh--gold::before{background:linear-gradient(115deg,#0f143a 0%,#1b2560 60%,#f3c91a 160%)}
.lfh--gold{border-bottom-color:#0f143a}
.lfh__copy{min-width:0}
.lfh__logo{display:inline-flex;align-items:center;background:#fff;border-radius:999px;padding:.55rem 1.4rem;box-shadow:0 8px 22px rgba(0,0,0,.25);margin-bottom:1rem}
.lfh__logo img{display:block;height:auto;max-height:46px;width:auto;max-width:230px}
.lfh__eyebrow{margin:0 0 .25rem;color:#f3c91a;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
.lfh__title{margin:0;color:#fff;white-space:nowrap;font-size:clamp(1.5rem,3.6vw,2.8rem);line-height:1.05}
.lfh__tag{margin:.6rem 0 1.2rem;color:rgba(255,255,255,.85);max-width:34rem;font-size:1.02rem}
.lfh__build{display:inline-flex;align-items:center;gap:.4rem;background:#f3c91a;color:#0f143a;font-weight:800;border-radius:999px;padding:.7rem 1.5rem;text-decoration:none;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:transform .2s,box-shadow .2s}
.lfh__build:hover,.lfh__build:focus-visible{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.3);color:#0f143a}
.lfh__mount{position:relative;margin:0;justify-self:end;width:100%;max-width:420px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 22px 40px rgba(0,0,0,.45),0 4px 0 rgba(255,255,255,.12);transform:perspective(900px) rotateY(-6deg)}
.lfh__mount video,.lfh__mount img{display:block;width:100%;height:100%;object-fit:cover}
.lfh__standoff{position:absolute;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#b9c0c8 60%,#7b828c);box-shadow:0 1px 3px rgba(0,0,0,.5)}
.lfh__standoff--tl{top:10px;left:10px}.lfh__standoff--tr{top:10px;right:10px}.lfh__standoff--bl{bottom:10px;left:10px}.lfh__standoff--br{bottom:10px;right:10px}
@media (max-width:820px){.lfh{grid-template-columns:1fr;margin:0 16px 2rem;min-height:0;padding:1.6rem 1.25rem;text-align:left}.lfh__mount{justify-self:stretch;max-width:none;transform:none}.lfh__title{font-size:clamp(1.3rem,6.5vw,2rem)}}
@media (prefers-reduced-motion:reduce){.lfh__mount{transform:none}.lfh__build{transition:none}}

/* 1.8.315 — banner material types (non-clickable chips) */
.lfh__types{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .45rem;max-width:40rem}
.lfh__types li{margin:0}
.lfh__types span{display:inline-block;padding:.3rem .75rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-size:.8rem;font-weight:600;line-height:1.2;white-space:nowrap}
.lfh--gold .lfh__types span{border-color:rgba(243,201,26,.55)}

/* 1.8.316 — closing CTA eyebrow: yellow/white alternating */
.lf-close-eyebrow{white-space:nowrap;text-transform:uppercase}
.lf-close-eyebrow .lf-ce--y{color:#f3c91a}
.lf-close-eyebrow .lf-ce--w{color:#fff}
.lf-close-eyebrow .lf-ce__sep{color:rgba(255,255,255,.5)}
@media (max-width:480px){.lf-close-eyebrow{white-space:normal}}

/* 1.8.317 — intro paragraph moved into the hero, above the scroll icon */
.large-format-page .lf-hero__lead{margin:1.75rem auto 0;max-width:60rem;padding:0 1.25rem;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55);white-space:normal}
.large-format-page > .lf-hero{padding-bottom:calc(65px + 3rem)}
@media (max-width:640px){.large-format-page .lf-hero__lead{font-size:1.02rem;line-height:1.55;margin-top:1.25rem}}

/* 1.8.318 — full-bleed section banners, touching the previous section */
.large-format-page > section.section.lfc-section{padding-top:0;margin-top:0}
.large-format-page .lfc-section > .lfh{margin:0 0 2.5rem;border-radius:0;box-shadow:none;padding-left:40px;padding-right:40px;z-index:1}
.large-format-page .lf-magnets-yellow .lfh .lfh__title{color:#fff}
.large-format-page .lf-magnets-yellow .lfh .lfh__eyebrow{color:#f3c91a}
@media (max-width:820px){.large-format-page .lfc-section > .lfh{margin:0 0 2rem}}
@media (max-width:640px){.large-format-page .lfc-section > .lfh{padding-left:20px;padding-right:20px}}

/* 1.8.319 — No limit block moved into the closing navy CTA */
.large-format-page .lf-nolimit{text-align:center;max-width:56rem;margin:0 auto clamp(2.5rem,5vw,4rem)}
.large-format-page .signage-close .lf-nolimit__title{color:#f3c91a;white-space:nowrap;font-size:clamp(1.35rem,4.2vw,2.75rem)}
.large-format-page .lf-nolimit .section__lead{color:rgba(255,255,255,.8);margin-inline:auto}
.large-format-page .lf-nolimit .btn--primary{margin-top:.5rem}

/* 1.8.322 — footer IDX Cares donation link (Explore card removed) */
.footer-donate{display:inline-flex;align-items:center;gap:.5rem;margin:1rem 0 .25rem;padding:.55rem 1.1rem;border:1.5px solid #f3c91a;border-radius:999px;color:#f3c91a;font-weight:700;font-size:.92rem;text-decoration:none;transition:background .2s,color .2s}
.footer-donate:hover,.footer-donate:focus-visible{background:#f3c91a;color:#0f143a}
.footer-donate__icon{flex:none;color:#8f1c2c}
.footer-donate:hover .footer-donate__icon,.footer-donate:focus-visible .footer-donate__icon{color:#8f1c2c}
@media (prefers-reduced-motion:reduce){.footer-donate{transition:none}}

/* 1.8.327 — IDX Cares footer card (same plate style as TX/ID) */
.footer-plate--cares .footer-plate__badge svg{display:block;margin:auto}
.footer-plate--cares .footer-plate__badge{display:inline-flex;align-items:center;justify-content:center}

/* 1.8.328 footer IDX Cares donate button */
.site-footer .footer-donate-item{margin-top:1rem;list-style:none}
.site-footer a.footer-donate-btn,a.footer-donate-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.4rem;border-radius:999px;background:#f3c91a;color:#0f143a !important;font-weight:700;text-decoration:none !important;letter-spacing:.02em;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 6px 18px rgba(243,201,26,.18)}
a.footer-donate-btn svg{color:#8f1c2c}
a.footer-donate-btn:hover,a.footer-donate-btn:focus-visible{background:#fff;transform:translateY(-1px);box-shadow:0 8px 22px rgba(243,201,26,.3)}
@media (prefers-reduced-motion:reduce){a.footer-donate-btn{transition:none}a.footer-donate-btn:hover{transform:none}}

/* 1.8.332 — Engraving mega: Laser Engraving on logo row (same as Shop extras) */
.mega-menu__family--engraving-extras { display: none; }
.mega-menu[data-active-panel="engraving"] .mega-menu__family--engraving-extras {
  display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap;
  gap: 0.55rem 0.85rem; margin-left: auto; margin-right: 0.35rem; min-width: 0;
}
@media (max-width: 900px) {
  .mega-menu[data-active-panel="engraving"] .mega-menu__family--engraving-extras {
    width: 100%; justify-content: flex-start; order: 3; margin: 0.35rem 0 0;
  }
}

/* 1.8.336 — Engraving mega: center Laser Engraving pill in logo row */
@media (min-width: 901px) {
  .mega-menu[data-active-panel="engraving"] .mega-menu__family--engraving-extras {
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
  }
  .mega-menu[data-active-panel="engraving"] .mega-menu__top .mega-menu__close { margin-left: 0; }
}

/* 1.8.337 — Mega menus: aux links on the left, logo on the right (before close) */
@media (min-width: 901px) {
  .mega-menu__top .mega-menu__family--shop-extras,
  .mega-menu__top .mega-menu__family--engraving-extras { order: 1; }
  .mega-menu__top .mega-menu__brand { order: 2; margin-left: auto; }
  .mega-menu__top .mega-menu__close { order: 3; }
  .mega-menu[data-active-panel="shop"] .mega-menu__family--shop-extras,
  .mega-menu[data-active-panel="engraving"] .mega-menu__family--engraving-extras {
    margin-left: 0;
    margin-right: 1rem;
    justify-content: flex-start;
  }
}

/* 1.8.342 — Laser Blanks: scroll mouse above the hero fade */
.laser-blanks .laser-blanks-hero .hero-scroll-mouse { z-index: 20; opacity: 1; }
/* 1.8.345 — footer bottom-bar links (Services · Order Tracking · Terms and Conditions). */
.footer-meta__left{flex-wrap:wrap;row-gap:.4rem}
.footer-meta__links{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin-left:.35rem}
.footer-meta__links a{position:relative;color:rgba(247,245,242,.62);text-decoration:none;white-space:nowrap;transition:color .2s}
.footer-meta__links a+a::before{content:"";position:absolute;left:-.5rem;top:50%;width:3px;height:3px;margin-top:-1.5px;border-radius:50%;background:rgba(243,201,26,.6)}
.footer-meta__links a:hover,.footer-meta__links a:focus-visible{color:#f3c91a}
@media (max-width:640px){.footer-meta__links{margin-left:0;width:100%}}
/* 1.8.350 — Custom mega: Laser Ready Blanks on logo row (same as Shop / Engraving extras; 1.8.332/337 pattern) */
.mega-menu__family--custom-extras { display: none; }
.mega-menu[data-active-panel="custom"] .mega-menu__family--custom-extras {
  display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap;
  gap: 0.55rem 0.85rem; margin-left: auto; margin-right: 0.35rem; min-width: 0;
}
@media (max-width: 900px) {
  .mega-menu[data-active-panel="custom"] .mega-menu__family--custom-extras {
    width: 100%; justify-content: flex-start; order: 3; margin: 0.35rem 0 0;
  }
}
@media (min-width: 901px) {
  .mega-menu__top .mega-menu__family--custom-extras { order: 1; }
  .mega-menu[data-active-panel="custom"] .mega-menu__family--custom-extras {
    margin-left: 0; margin-right: 1rem; justify-content: flex-start;
  }
  .mega-menu[data-active-panel="custom"] .mega-menu__top .mega-menu__close { margin-left: 0; }
}
/* 1.8.351 — Shop mega: "Shop all" pill (inline bag icon in the round image slot) */
.mega-menu__family-icon--svg { display: inline-flex; align-items: center; justify-content: center; background: #0f143a; color: #f3c91a; }
.mega-menu__family-link--shop-all:hover .mega-menu__family-icon--svg,
.mega-menu__family-link--shop-all:focus-visible .mega-menu__family-icon--svg { background: #8f1c2c; color: #fff; }
.mega-menu__family--shop-extras .mega-menu__family-title,
.mega-menu__family--shop-extras .mega-menu__family-desc { white-space: nowrap; }
@media (min-width: 901px) and (max-width: 1180px) {
  .mega-menu[data-active-panel="shop"] .mega-menu__family--shop-extras { gap: 0.45rem 0.55rem; }
  .mega-menu__family--shop-extras .mega-menu__family-desc { display: none; }
}
/* 1.8.352 — Laser Services mega CTA styled like the Book Laser Training "Book now" card (navy, yellow eyebrow, big white title, yellow pill, yellow bottom border). Scoped to .mega-menu__cta--book. */
.mega-menu .mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--book{justify-content:flex-start;gap:1.1rem;padding:1.6rem 1.4rem !important;border-radius:16px !important;background:#0f143a !important;color:#fff;border-bottom:4px solid #f3c91a !important;box-shadow:0 16px 34px rgba(15,20,58,.18) !important}
.mega-menu .mega-menu__cta--book .mega-menu__cta-copy{min-width:0;gap:.3rem}
.mega-menu .mega-menu__cta--book .mega-menu__cta-eyebrow{color:#f3c91a;font-weight:800;letter-spacing:.14em;font-size:.78rem}
.mega-menu .mega-menu__cta--book .mega-menu__cta-title{color:#fff;white-space:nowrap;font-size:clamp(1.6rem,2.4vw,2.3rem);line-height:1.05;margin:0 0 .35rem}
.mega-menu .mega-menu__cta--book .mega-menu__cta-text{color:rgba(255,255,255,.85);font-size:.92rem;line-height:1.5}
.mega-menu .mega-menu__cta--book .mega-menu__cta-actions{align-items:flex-start;width:auto}
.mega-menu .mega-menu__cta--book .mega-menu__cta-book{display:inline-flex;align-items:center;gap:.4rem;padding:.8rem 1.6rem;border-radius:999px;background:#f3c91a;color:#0f143a;font-weight:800;font-size:1rem;text-decoration:none;transition:transform .2s,background .2s,color .2s}
.mega-menu .mega-menu__cta--book .mega-menu__cta-book:hover,.mega-menu .mega-menu__cta--book .mega-menu__cta-book:focus-visible{color:#0f143a;text-decoration:none;transform:translateY(-2px)}
.mega-menu .mega-menu__cta--book .mega-menu__cta-book:focus-visible{outline:3px solid #9ccaf5;outline-offset:3px}
@media (prefers-reduced-motion:reduce){.mega-menu .mega-menu__cta--book .mega-menu__cta-book{transition:none}.mega-menu .mega-menu__cta--book .mega-menu__cta-book:hover{transform:none}}

/* 1.8.360 — header phone removed site-wide. Tablet header (761–1100px): nav was overlapping the logo/actions
   (reported at ~820px). Keep nav labels on one line and scale logo/nav/actions so all three columns fit. */
.site-nav__roll-line { white-space: nowrap; }
@media (min-width: 761px) and (max-width: 1100px) {
  .site-header .site-header__inner { gap: 0.75rem; }
  .site-header .site-header__actions { gap: 0.5rem; flex-wrap: nowrap; }
  .site-header .site-nav__list { gap: 0 0.35rem; }
  .site-header .site-nav__sep { width: 8px; }
  .site-header .site-nav__trigger { font-size: 0.78rem; letter-spacing: 0.04em; }
  .site-header .site-branding__logo--default,
  .site-header .site-branding__logo--default img,
  .site-header .site-branding__logo--default .custom-logo,
  .site-header .site-branding img.site-branding__logo--default,
  .site-header .site-branding svg.site-branding__logo--default { height: 44px; max-width: 180px; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .site-header .site-nav__trigger { font-size: 0.7rem; letter-spacing: 0.03em; }
  .site-header .site-nav__list { gap: 0 0.2rem; }
  .site-header .site-branding__logo--default,
  .site-header .site-branding__logo--default img,
  .site-header .site-branding__logo--default .custom-logo,
  .site-header .site-branding img.site-branding__logo--default,
  .site-header .site-branding svg.site-branding__logo--default { height: 36px; max-width: 150px; }
  .site-header .lang-switch { gap: 0.15rem; }
}
/* 1.8.360 — mobile header: keep EN|ES + cart on one row (cart was wrapping under the language switch). */
@media (max-width: 760px) {
  .site-header .site-header__actions { flex-wrap: nowrap; gap: 0.35rem; }
  .site-header .lang-switch { gap: 0.1rem; }
  .site-header .lang-switch a, .site-header .lang-switch span { padding-left: 0.3rem; padding-right: 0.3rem; }
  .site-header .header-cart { flex: 0 0 auto; }
}
@media (max-width: 760px) {
  .site-header .site-header__inner { grid-template-columns: auto minmax(0, 1fr) auto; }
}
@media (max-width: 430px) {
  .site-header .site-branding__logo--default,
  .site-header .site-branding__logo--default img,
  .site-header .site-branding__logo--default .custom-logo,
  .site-header .site-branding img.site-branding__logo--default { height: 34px; max-width: min(150px, 40vw); }
}
@media (max-width: 760px) {
  .site-header .site-header__actions .spark-toggle { margin-right: 0.6rem; }
}
/* 1.8.360 — mobile announcement bar: text no longer runs under the social icons. */
@media (max-width: 760px) {
  .site-announce .site-announce__text { padding-inline: 0 108px; text-align: left; }
}
/* 1.8.365 — Laser Services #15 second-student disclaimer. */
.page-template-page-laser-services .laser-disclaimer,.laser-disclaimer{display:flex;align-items:flex-start;gap:.5rem;margin:.9rem 0 0;font-size:.82rem;line-height:1.5;color:#3a4066;max-width:60rem}
.laser-disclaimer svg{flex:0 0 16px;margin-top:.12rem;color:#8f1c2c}

/* 1.8.368 — Policies: 4th hub card + Cancellation & Rescheduling section (#cancellation). */
@media (min-width: 1181px) { .policy-hub__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 981px) and (max-width: 1180px) { .policy-hub__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.policy-section { padding-top: 0; scroll-margin-top: 110px; }
.policy-section__card { position: relative; overflow: hidden; max-width: 860px; margin: 0 auto; padding: clamp(1.5rem, 3vw, 2.4rem); background: var(--white); border: 1px solid rgba(15, 20, 58, 0.08); border-radius: var(--radius); box-shadow: 0 10px 28px rgba(15, 20, 58, 0.06); }
.policy-section__card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--accent), #f3c91a); }
.policy-section__title { margin: 0.8rem 0 1rem; font-size: clamp(1.4rem, 2.6vw, 1.9rem); color: var(--navy); }
.policy-section__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.7rem; }
.policy-section__list li { position: relative; padding-left: 1.4rem; color: #0f143a; line-height: 1.55; }
.policy-section__list li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.5rem; height: 0.5rem; border-radius: 2px; background: #f3c91a; box-shadow: 0 0 0 2px rgba(15, 20, 58, 0.12); }
.policy-section__list a { color: var(--navy); font-weight: 700; text-decoration: underline; text-decoration-color: #f3c91a; text-underline-offset: 3px; }

/* 1.8.379 — I-Bond wordmark (Iris's I-BOND-LOGO.svg) is cropped tight (2.98:1) while the other
   material logos carry built-in padding; scale it so it sits at the same visual weight. */
.lfx__logo img[src*="lf-logo-ibond"], .lfx__panel-logo img[src*="lf-logo-ibond"] { transform: scale(.76); }
.lfm__logo img[src*="lf-logo-ibond"] { width: 200px; height: 62px; padding: 17px 44px; }

/* 1.8.395 — Navy link-card buttons: sliding fill on hover/focus (same scaleX-from-left sweep as the
   card/gallery underline bars). Default sweep is yellow; on yellow sections (Wood Signs "Also under
   Signage") the sweep is white so the card never disappears into the background. Reusable: .idx-linkcard */
.wood-related__link,
.idx-linkcard {
  --lc-fill: #f3c91a;
  position: relative; isolation: isolate; overflow: hidden;
  transition: color 0.3s ease, transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.wood-related__link { --lc-fill: #fff; }
.wood-related__link::before,
.idx-linkcard::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--lc-fill); border-radius: inherit;
  transform: scaleX(0); transform-origin: left center;
  transition: transform 0.38s cubic-bezier(.2, .7, .2, 1);
}
.wood-related__link:hover, .wood-related__link:focus-visible,
.idx-linkcard:hover, .idx-linkcard:focus-visible {
  background: #0f143a; color: #0f143a !important; border-color: #0f143a;
  transform: translateY(-3px); box-shadow: 0 16px 30px rgba(15, 20, 58, 0.28);
}
.wood-related__link:hover::before, .wood-related__link:focus-visible::before,
.idx-linkcard:hover::before, .idx-linkcard:focus-visible::before { transform: scaleX(1); }
.wood-related__link:focus-visible, .idx-linkcard:focus-visible { outline: 3px solid #8f1c2c; outline-offset: 3px; }
.idx-linkcard__arrow { transition: transform 0.25s ease; }
.idx-linkcard:hover .idx-linkcard__arrow, .idx-linkcard:focus-visible .idx-linkcard__arrow { transform: translateX(5px); }
.wood-related__link:hover .wood-related__arrow, .wood-related__link:focus-visible .wood-related__arrow { transform: translateX(5px); }
@media (prefers-reduced-motion: reduce) {
  .wood-related__link, .idx-linkcard, .wood-related__link::before, .idx-linkcard::before,
  .wood-related__arrow, .idx-linkcard__arrow { transition: none !important; }
  .wood-related__link:hover, .wood-related__link:focus-visible, .idx-linkcard:hover, .idx-linkcard:focus-visible,
  .wood-related__link:hover .wood-related__arrow, .wood-related__link:focus-visible .wood-related__arrow,
  .idx-linkcard:hover .idx-linkcard__arrow, .idx-linkcard:focus-visible .idx-linkcard__arrow { transform: none; }
}

/* 1.8.399 — Molded page plating tiles (Iris final art) + Eagle / AR-15 toggle */
.molded-platings { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.molded-platings__toggle {
	align-self: flex-start; display: inline-flex; gap: 4px; padding: 4px;
	background: #fff; border: 1.5px solid rgba(15, 20, 58, .16); border-radius: 999px;
	box-shadow: 0 14px 30px -26px rgba(15, 20, 58, .6);
}
.molded-platings__btn {
	position: relative; overflow: hidden; isolation: isolate; cursor: pointer;
	border: 0; border-radius: 999px; padding: .5rem 1.15rem; background: transparent; color: #0f143a;
	font: 600 .8rem/1.1 var(--font-head); letter-spacing: .06em; text-transform: uppercase;
	transition: color .25s ease;
}
.molded-platings__btn::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: #fff6cf;
	transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.molded-platings__btn:hover::before, .molded-platings__btn:focus-visible::before { transform: scaleX(1); }
.molded-platings__btn:focus-visible { outline: 2px solid #0f143a; outline-offset: 2px; }
.molded-platings__btn.is-active { background: #0f143a; color: #fff; box-shadow: inset 0 -3px 0 #f3c91a; }
.molded-platings__btn.is-active::before { display: none; }
.molded-plates-section .molded-platings__grid .molded-plating img {
	width: 100%; max-width: 190px; height: auto; aspect-ratio: 312 / 236; object-fit: contain; margin: 0 auto; display: block;
}
.molded-plates-section .molded-platings__grid .molded-plating figcaption { text-align: center; }
@media (min-width: 1024px) {
	.molded-plates-layout .molded-platings__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 12px; row-gap: 18px; }
}
@media (max-width: 1023px) {
	.molded-plates-layout .molded-platings__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.molded-platings__toggle { align-self: center; }
}
@media (max-width: 600px) {
	.molded-plates-layout .molded-platings__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .molded-platings__btn::before { transition: none; } }

/* 1.8.401 — Molded plating section: full-width IDX plating chart above the Eagle / AR-15 tiles */
.molded-plates-layout.molded-plates-layout--chart { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
.molded-plates-layout--chart > .section__header { max-width: 820px; }
.molded-plates-layout--chart #plates-heading.idx-oneline-heading { white-space: nowrap; }
@media (max-width: 700px) { .molded-plates-layout--chart #plates-heading.idx-oneline-heading { white-space: normal; } }
.molded-plating-chart { width: 100%; }
.molded-plating-chart__fig {
	margin: 0; overflow: hidden; border-radius: 18px; cursor: zoom-in; background: #0f143a;
	box-shadow: 0 24px 50px -34px rgba(15, 20, 58, .7);
	transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease;
}
.molded-plating-chart__fig img { display: block; width: 100%; height: auto; aspect-ratio: 1728 / 1236; }
.molded-plating-chart__fig:hover,
.molded-plating-chart__fig:focus-visible { transform: translateY(-2px); box-shadow: 0 30px 60px -34px rgba(15, 20, 58, .8); }
.molded-plating-chart__fig:focus-visible { outline: 3px solid #f3c91a; outline-offset: 3px; }
.molded-plates-layout--chart .molded-platings__toggle { align-self: center; }
@media (max-width: 600px) { .molded-plating-chart__fig { border-radius: 12px; } }
@media (prefers-reduced-motion: reduce) { .molded-plating-chart__fig { transition: none; } .molded-plating-chart__fig:hover { transform: none; } }

/* 1.8.402 — two plating charts side by side (pistol 1728x1236 | IDX coins 1858x1728).
   Column ratio = aspect ratios (1.398 : 1.075) so both charts render at the same height. Stacks at 900px. */
.molded-plating-chart--duo { display: grid; grid-template-columns: minmax(0, 1.398fr) minmax(0, 1.075fr); gap: 24px; align-items: start; }
.molded-plating-chart--duo .molded-plating-chart__fig:nth-child(2) img { aspect-ratio: 1858 / 1728; }
@media (max-width: 900px) { .molded-plating-chart--duo { grid-template-columns: minmax(0, 1fr); gap: 18px; } }

/* ==========================================================================
   1.8.403 — Molded page: Plating + Surface detail sections (TEAM IDX graphics).
   Section banner = compact shop-category banner language (.lfh--navy, faded photo right, dot texture,
   yellow base rule, one-line white headline), then a framed full graphic (shared lightbox), then
   (textures) the numbered Pattern library cards.
   ========================================================================== */
.molded-finish { padding-top: 0 !important; padding-left: 0 !important; padding-right: 0 !important; background: #fff; }
.molded-finish--textures { background: #f6f7fb; }
.molded-finish .lfh.molded-band {
	display: block; width: 100%; min-height: 0; margin: 0; padding: 2.4rem 0 2.35rem;
	border-radius: 0; box-shadow: none; text-align: left;
}
.molded-band .lfh__bg { opacity: .16; }
.molded-band__photo {
	position: absolute; inset: 0 0 0 auto; width: 58%; z-index: -2;
	background-size: cover; background-position: center 40%; opacity: .5; filter: saturate(.85);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 70%); mask-image: linear-gradient(90deg, transparent 0, #000 70%);
}
.molded-band__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15, 20, 58, .2), rgba(15, 20, 58, .55)); }
.molded-band__inner { position: relative; }
.molded-band .lfh__eyebrow { margin-bottom: .3rem; font-size: .74rem; }
.molded-band .lfh__eyebrow::before { content: ""; display: inline-block; width: 22px; height: 3px; margin-right: .55rem; vertical-align: middle; border-radius: 2px; background: #8f1c2c; box-shadow: 26px 0 0 #f3c91a; margin-right: 2.2rem; }
.molded-finish h2.molded-band__title {
	margin: 0; color: #fff; white-space: nowrap; line-height: 1.05; letter-spacing: -.01em; max-width: none; font-weight: 600;
	font-size: min(clamp(1.75rem, 4vw, 2.75rem), calc((100vw - 3rem) / (var(--idx-len, 10) * .6)));
}
.molded-finish h2.molded-band__title::after { display: none; }

.molded-finish__body { padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(8px, 2vw, 16px); }
.molded-finish__lead { max-width: 52rem; margin: 0 0 clamp(20px, 3vw, 32px); color: #3b4060; font-size: clamp(1rem, 1.2vw, 1.1rem); line-height: 1.65; }
.molded-finish__frame {
	max-width: 1120px; margin: 0 auto; padding: clamp(8px, 1vw, 12px);
	border-radius: 22px; background: linear-gradient(135deg, #0f143a, #1b2560); box-shadow: 0 30px 60px -38px rgba(15, 20, 58, .8);
}
.molded-finish__fig {
	position: relative; margin: 0; overflow: hidden; border-radius: 14px; cursor: zoom-in; background: #0f143a;
	transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease;
}
.molded-finish__fig img { display: block; width: 100%; height: auto; }
.molded-finish__fig:hover, .molded-finish__fig:focus-visible { transform: translateY(-2px); box-shadow: 0 18px 36px -22px rgba(0, 0, 0, .7); }
.molded-finish__fig:focus-visible { outline: 3px solid #f3c91a; outline-offset: 3px; }
.molded-finish__zoom {
	position: absolute; right: 14px; bottom: 14px; width: 44px; height: 44px; border-radius: 50%;
	background: #f3c91a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f143a' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21M10.5 7.5v6M7.5 10.5h6'/%3E%3C/svg%3E") center / 22px no-repeat;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .35); opacity: .92; transition: transform .25s ease, opacity .25s ease;
}
.molded-finish__fig:hover .molded-finish__zoom, .molded-finish__fig:focus-visible .molded-finish__zoom { transform: scale(1.08); opacity: 1; }

/* Pattern library */
.molded-patterns { margin-top: clamp(36px, 5vw, 64px); }
.molded-patterns__head { max-width: 52rem; margin-bottom: 22px; }
.molded-patterns__label {
	display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 .5rem;
	color: #8f1c2c; font: 800 .8rem/1.2 var(--font-display, "Montserrat", sans-serif); letter-spacing: .14em; text-transform: uppercase;
}
.molded-patterns__label::before { content: ""; width: 22px; height: 3px; border-radius: 2px; background: #f3c91a; }
.molded-patterns__intro { margin: 0; color: #0f143a; font: 700 clamp(1.05rem, 1.5vw, 1.25rem)/1.45 var(--font-display, "Montserrat", sans-serif); }
.molded-patterns__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.molded-pattern {
	position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: auto 1fr; gap: .35rem .85rem; align-content: start;
	margin: 0; padding: 16px 16px 18px; background: #fff; border: 1.5px solid rgba(15, 20, 58, .12); border-radius: 14px;
	box-shadow: 0 16px 32px -28px rgba(15, 20, 58, .7);
	transition: transform .28s cubic-bezier(.2, .7, .2, 1), border-color .28s ease, box-shadow .28s ease;
}
.molded-pattern::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: #fff8d9; box-shadow: inset 0 -4px 0 #f3c91a;
	transform: scaleX(0); transform-origin: left center; transition: transform .38s cubic-bezier(.2, .7, .2, 1);
}
.molded-pattern:hover::before, .molded-pattern:focus-within::before { transform: scaleX(1); }
.molded-pattern:hover { transform: translateY(-2px); border-color: #0f143a; box-shadow: 0 22px 40px -28px rgba(15, 20, 58, .8); }
.molded-pattern__num {
	grid-row: 1 / span 2; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 11px;
	background: #0f143a; color: #f3c91a; font: 800 1.05rem/1 var(--font-display, "Montserrat", sans-serif);
	box-shadow: inset 0 -3px 0 #f3c91a;
}
.molded-pattern__title { margin: .1rem 0 0; color: #0f143a; font: 600 1rem/1.2 var(--font-head); }
.molded-pattern__title::after { display: none; }
.molded-pattern__text { margin: 0; color: #4a4f6a; font-size: .9rem; line-height: 1.5; }
.molded-finish__note {
	max-width: 60rem; margin: 26px 0 0; padding: 14px 18px; border-radius: 12px;
	background: #fff; color: #2b3050; box-shadow: inset 4px 0 0 #f3c91a, 0 0 0 1px rgba(15, 20, 58, .08); line-height: 1.6;
}
@media (max-width: 1100px) { .molded-patterns__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
	.molded-finish .lfh.molded-band { padding: 1.4rem 0; }
	.molded-band__photo { width: 100%; opacity: .32; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 85%); mask-image: linear-gradient(90deg, transparent 0, #000 85%); }
	.molded-finish h2.molded-band__title { font-size: min(clamp(1.3rem, 7vw, 2.1rem), calc((100vw - 2.75rem) / (var(--idx-len, 10) * .6))); }
	.molded-patterns__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.molded-finish__frame { border-radius: 16px; }
	.molded-finish__fig { border-radius: 10px; }
	.molded-finish__zoom { width: 36px; height: 36px; right: 10px; bottom: 10px; background-size: 18px; }
}
@media (max-width: 520px) { .molded-patterns__grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) {
	.molded-pattern, .molded-pattern::before, .molded-finish__fig, .molded-finish__zoom { transition: none; }
	.molded-pattern:hover, .molded-finish__fig:hover { transform: none; }
}

/* ==========================================================================
   1.8.416 — Bright red retired; dark red #8f1c2c is the only red. Dark red is too dark to read on navy, so
   eyebrow text on navy / ink backgrounds switches to the brand yellow (as on the section banners).
   ========================================================================== */
.section--ink .section__eyebrow { color: #f3c91a; }
.page-hero.cpr-hero .hero__eyebrow { color: #f3c91a !important; } /* overrides the template's inline var(--brass) */

/* 1.8.423 */
/* ---- Header top bar (Tone): Idaho note 13px, 2 lines max on phones; social icons 30 → 25px ---- */
.site-announce .site-announce__idaho { font-size: 13px !important; }
.site-announce .site-announce__social-link,
.site-announce .site-announce__social-link svg { width: 25px !important; height: 25px !important; }
@media (max-width: 640px) {
	/* Two lines max: Texas line shares its row with the icons; the Idaho line gets the full width. */
	.site-announce .site-announce__text { padding-inline: 0; line-height: 1.45; letter-spacing: 0; }
	.site-announce .site-announce__sep { display: none; }
	.site-announce .site-announce__texas, .site-announce .site-announce__idaho { display: block; }
	.site-announce .site-announce__texas { padding-right: calc(3 * 25px + 2 * .35rem + 6px); min-height: 25px; display: flex; align-items: center; }
	.site-announce .site-announce__idaho { white-space: nowrap; letter-spacing: 0; }
	.site-announce .site-announce__social { top: 0; transform: none; }
}

/* 1.8.427 — TEAM IDX lockup (eagle + TEAM ★ IDX, 4.08:1). Never distort when a max-width caps it. */
.site-branding img.site-branding__logo, .footer-brand img.footer-brand__logo, .mega-menu__logo img { object-fit: contain; object-position: left center; }

/* ==========================================================================
   1.8.428 — Menu promo cards (mega menu + phone drawer): one clean navy card.
   · The column itself is never a second navy layer: its 20px gutter moves outside
     the card (margin), so no lighter strip on the left and the divider line sits in the gap.
   · One navy surface per card, faint footer diamond texture (white text stays ≥ AA).
   · Yellow accent = straight 4px bar flush with the card's bottom edge (clipped by the radius).
   ========================================================================== */
.mega-menu .mega-menu__grid--category > .mega-menu__col--cta { padding: 0 !important; margin-left: 20px; }
.mega-menu .mega-menu__col--cta:has(> .mega-menu__cta--book) { background: none !important; border-radius: 0; box-shadow: none; overflow: visible; }

/* Navy surfaces that get the texture: plain CTA columns, and the Book-now card itself. */
.mega-menu .mega-menu__col--cta:not(:has(> .mega-menu__cta--book)),
.mega-menu .mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--book {
	position: relative; isolation: isolate; overflow: hidden;
	background: #0f143a linear-gradient(145deg, #0f143a 0%, #1a2150 100%) !important;
}
.mega-menu .mega-menu__col--cta:not(:has(> .mega-menu__cta--book))::before,
.mega-menu .mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--book::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: url("../images/backgrounds/footer-diamond.png") repeat 0 0 / 220px auto; opacity: .1;
}

/* Book now card: single radius, no curved border; straight yellow bar at the bottom. */
.mega-menu .mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--book {
	border: 0 !important; border-radius: 12px !important; padding-bottom: calc(1.6rem + 4px) !important;
	box-shadow: 0 16px 34px rgba(15, 20, 58, .18) !important;
}
.mega-menu .mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--book::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #f3c91a; pointer-events: none;
}
/* Same flush yellow bar on the other promo cards so the set matches. */
.mega-menu .mega-menu__col--cta:not(:has(> .mega-menu__cta--book))::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #f3c91a; pointer-events: none;
}
@media (max-width: 900px) {
	.mega-menu .mega-menu__grid--category > .mega-menu__col--cta { margin-left: 0; grid-column: 1 / -1; } /* full-width promo card in the drawer */
	.mega-menu .mega-menu__col--cta > .mega-menu__cta.mega-menu__cta--book { border-radius: 12px !important; }
	.mega-menu .mega-menu__col--cta:not(:has(> .mega-menu__cta--book)) { border-radius: 12px; }
}
.mega-menu .mega-menu__col--cta:not(:has(> .mega-menu__cta--book)) > .mega-menu__cta.mega-menu__cta--column { background: transparent !important; box-shadow: none !important; }

/* ==========================================================================
   1.8.429 — Phone drawer: link columns stack full width (single column)
   Drawer only (< 761px, matches main.js mqDesktop); desktop mega menu unchanged.
   ========================================================================== */
@media (max-width: 760px) {
	.mega-menu:not(#x) .mega-menu__panel .mega-menu__grid.mega-menu__grid--category {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.mega-menu:not(#x) .mega-menu__panel .mega-menu__grid--category > .mega-menu__col {
		grid-column: 1 / -1 !important;
		min-width: 0;
	}
	.mega-menu:not(#x) .mega-menu__panel .mega-menu__grid--category > .mega-menu__col .mega-menu__list {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* ==========================================================================
   1.8.430 — Menu tagline "IMAGINE. DESIGN. EXECUTE." (brand lockup style)
   Montserrat 500, tracked caps, navy; I / D / X at 800 like the lockup.
   Desktop: sits in the empty left part of the logo row, just before the logo.
   Drawer: absolutely placed in the top row's bottom padding (no layout shift).
   ========================================================================== */
.mega-menu .mega-menu__tagline {
	margin: 0;
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
	font-size: 13px;
	line-height: 1;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: #0f143a;
	white-space: nowrap;
	pointer-events: none;
}
.mega-menu .mega-menu__tagline-key { font-weight: 800; }
@media (min-width: 901px) {
	.mega-menu .mega-menu__top .mega-menu__tagline { order: 2; margin-left: auto; margin-right: 1.5rem; flex: 0 1 auto; min-width: 0; }
	.mega-menu .mega-menu__top .mega-menu__brand { order: 3; margin-left: 0; }
	.mega-menu .mega-menu__top .mega-menu__close { order: 4; }
	/* Shop row already carries three pills: smaller tagline so the row stays one line */
	.mega-menu[data-active-panel="shop"] .mega-menu__top .mega-menu__tagline { font-size: 10px; letter-spacing: 0.16em; margin-right: 1rem; }
}
@media (min-width: 761px) and (max-width: 900px) {
	.mega-menu .mega-menu__top .mega-menu__tagline { display: none; }
}
@media (max-width: 760px) {
	.mega-menu .mega-menu__top { position: sticky; }
	.mega-menu .mega-menu__top .mega-menu__tagline {
		position: absolute; left: 0; right: 0; bottom: 3px;
		font-size: 10px; letter-spacing: 0.26em; text-align: left;
	}
}

/* ==========================================================================
   1.8.431 — Lockup rule above the menu tagline: short dark-red lead (~20%,
   3px) + thin navy line (1px) the rest of the width. Drawn as ::before so the
   logo row height and the links/cards do not move.
   ========================================================================== */
.mega-menu .mega-menu__top .mega-menu__tagline { position: relative; overflow: visible; }
.mega-menu .mega-menu__top .mega-menu__tagline::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0.3em; /* drop the trailing letter-spacing so the rule ends at the last "." */
	top: -9px;
	height: 3px;
	background:
		linear-gradient(#8f1c2c, #8f1c2c) left center / 20% 3px no-repeat,
		linear-gradient(#0f143a, #0f143a) left center / 100% 1px no-repeat;
	pointer-events: none;
}
@media (max-width: 760px) {
	.mega-menu .mega-menu__top .mega-menu__tagline { position: absolute; right: auto; }
	.mega-menu .mega-menu__top .mega-menu__tagline::before { top: -6px; right: 0.26em; }
}

/* 1.8.436 mobile account icon */
.header-account-icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; background: transparent; }
.header-account-icon:hover, .header-account-icon:focus-visible { border-color: #F3C91A; color: var(--ink); }
.header-account-icon.is-logged-in::after { content: ""; position: absolute; right: 3px; bottom: 3px; width: 8px; height: 8px; border-radius: 50%; background: #F3C91A; border: 1px solid #fff; }
@media (min-width: 900px) { .header-account-icon { display: none; } }

/* ==========================================================================
   1.8.433 — Drinkware "How you order": one-line heading + first lead line on
   desktop; "Tumbler Builder coming soon" under the buttons with the menu-tagline
   rule (dark-red lead ~20% + light line), letter-spaced Montserrat caps.
   ========================================================================== */
@media (min-width: 1025px) {
	.drinkware-page .drinkware-personalize__copy h2 { max-width: none; white-space: nowrap; }
}
@media (min-width: 1360px) {
	.drinkware-page .drinkware-personalize__lead { max-width: none; }
	.drinkware-page .drinkware-personalize__lead > .drinkware-personalize__lead-line:first-child { white-space: nowrap; }
	/* photo normally tucks 60px under the copy; keep it clear of the one-line lead */
	.drinkware-page .drinkware-personalize__feature { margin-left: 0; }
}
.drinkware-page .drinkware-personalize__soon {
	margin: 1.6rem 0 0;
	text-align: center;
	line-height: 1;
}
.drinkware-page .drinkware-personalize__soon-text {
	position: relative;
	display: inline-block;
	padding-top: 14px;
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.3em;
	margin-right: -0.3em; /* trailing tracking: keep the text optically centred */
	text-transform: uppercase;
	color: #ffffff;
	white-space: nowrap;
}
.drinkware-page .drinkware-personalize__soon-text::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0.3em; /* rule ends at the last letter */
	top: 0;
	height: 3px;
	background:
		linear-gradient(#8f1c2c, #8f1c2c) left center / 20% 3px no-repeat,
		linear-gradient(rgba(255,255,255,.75), rgba(255,255,255,.75)) left center / 100% 1px no-repeat;
}
@media (max-width: 420px) {
	.drinkware-page .drinkware-personalize__soon-text { font-size: 11px; letter-spacing: 0.22em; margin-right: -0.22em; }
	.drinkware-page .drinkware-personalize__soon-text::before { right: 0.22em; }
}

/* ==========================================================================
   1.8.433 — "All flat colors get a texture": subtle diamond texture (footer /
   menu-card pattern) on solid flat-colour section backgrounds. One shared block.
   Pre-tinted PNGs (opacity baked in) so only background-image is added —
   colours, ::before/::after art and text contrast stay as they were.
     dark/navy  → white lines  8%   (tex-diamond-on-dark.png)
     yellow     → navy lines   8%   (tex-diamond-on-yellow.png)
     mist/light → navy lines 5.5%   (tex-diamond-on-mist.png)
   Not applied: photo/video heroes, gradient/photo sections, IDX Cares, Mold
   Builder, cards, buttons, inputs, chips, iframes. Generic .section--paper /
   .section--ink skip .idx-family pages (their sections are transparent over the
   family page background, not flat fills).
   ========================================================================== */
body:not(.idxc-body):not(.idx-moldb) {
	--idx-tex-dark: url("../images/backgrounds/tex-diamond-on-dark.png");
	--idx-tex-yellow: url("../images/backgrounds/tex-diamond-on-yellow.png");
	--idx-tex-mist: url("../images/backgrounds/tex-diamond-on-mist.png");
}
/* mist / light */
body:not(.idxc-body):not(.idx-moldb):not(.idx-family) main .section--paper:not(#services):not(.metal-magazines):not(.wood-gallery-section),
body:not(.idxc-body):not(.idx-moldb) main .svx-section--paper:not(#make),
body:not(.idxc-body):not(.idx-moldb) main .drinkware-capabilities,
body:not(.idxc-body):not(.idx-moldb) main .wood-capabilities,
body:not(.idxc-body):not(.idx-moldb) main .home-portfolio,
body:not(.idxc-body):not(.idx-moldb) main .lf-mosaic-section,
body:not(.idxc-body):not(.idx-moldb) main .molded-finish--textures {
	background-image: var(--idx-tex-mist) !important;
	background-repeat: repeat !important;
	background-size: 220px auto !important;
}
/* navy / dark */
body:not(.idxc-body):not(.idx-moldb):not(.idx-family) main .section--ink:not(.molded-close--split),
body:not(.idxc-body):not(.idx-moldb) main .metal-magazines,
body:not(.idxc-body):not(.idx-moldb) main .drinkware-shop-intro,
body:not(.idxc-body):not(.idx-moldb) main .drinkware-featured,
body:not(.idxc-body):not(.idx-moldb) main .drinkware-personalize,
body:not(.idxc-body):not(.idx-moldb) main .wood-shop-intro,
body:not(.idxc-body):not(.idx-moldb) main section.wood-signs,
body:not(.idxc-body):not(.idx-moldb) main .wood-personalize,
body:not(.idxc-body):not(.idx-moldb) main .home-concept,
body:not(.idxc-body):not(.idx-moldb) main .molded-edges-section,
body:not(.idxc-body):not(.idx-moldb) main .molded-pack-section--navy,
body:not(.idxc-body):not(.idx-moldb) main .neon-options-section,
body:not(.idxc-body):not(.idx-moldb) main .svx-band {
	background-image: var(--idx-tex-dark) !important;
	background-repeat: repeat !important;
	background-size: 220px auto !important;
}
/* yellow */
body:not(.idxc-body):not(.idx-moldb) main .drinkware-specialty,
body:not(.idxc-body):not(.idx-moldb) main .wood-engraved-gifts,
body:not(.idxc-body):not(.idx-moldb) main .molded-close--split,
body:not(.idxc-body):not(.idx-moldb) main .lf-magnets-yellow,
body:not(.idxc-body):not(.idx-moldb) main .wood-gallery-section,
body:not(.idxc-body):not(.idx-moldb) main .led-gallery-section {
	background-image: var(--idx-tex-yellow) !important;
	background-repeat: repeat !important;
	background-size: 220px auto !important;
}

/* 1.8.433 — Drinkware: Gallery heading + close note on one line at desktop */
@media (min-width: 1025px) {
	.drinkware-page #gallery-heading { max-width: none; white-space: nowrap; }
	.drinkware-page .drinkware-close .cta-band p:not(.section__eyebrow):not(.drinkware-close__contact) { max-width: none; white-space: nowrap; }
}

/* 1.8.437 TEAM IDX menu button (replaces red laser spark) */
.site-header .spark-toggle, .site-header.is-scrolled .spark-toggle { width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: #101438; filter: none; box-shadow: none; }
.site-header .spark-toggle::before, .site-header.is-scrolled .spark-toggle::before { display: none; animation: none; }
.site-header .spark-toggle:hover, .site-header .spark-toggle:focus-visible, .site-header.is-scrolled .spark-toggle:hover, .site-header.is-scrolled .spark-toggle:focus-visible { border: 1px solid #F3C91A; filter: none; color: #101438; }
.site-header .spark-toggle[aria-expanded="true"], .site-header.is-scrolled .spark-toggle[aria-expanded="true"] { border: 2px solid #F3C91A; background: #101438; color: #F3C91A; filter: none; }
.site-header .spark-toggle__icon, .site-header.is-scrolled .spark-toggle__icon { width: 20px; height: 20px; transform: none !important; animation: none !important; }
.site-header .spark-toggle[aria-expanded="true"] .spark-toggle__icon svg [stroke] { stroke: currentColor; }

/* 1.8.438 — phone menu: full category list (accordion), one top bar, full scroll */
.mm-acc__btn { display: none; }
@media (max-width: 760px) {
  body.mega-menu-open .site-header,
  body.mega-menu-open .dtf-announce { visibility: hidden; }
  body.mega-menu-open { overflow: hidden; overscroll-behavior: none; }
  .mega-menu { height: 100vh; height: 100dvh; }
  .mega-menu .mega-menu__shell {
    position: fixed; top: 0 !important; bottom: 0 !important;
    height: 100vh; height: 100dvh; max-height: none !important;
    display: flex; flex-direction: column;
    overflow-y: auto !important; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
    padding: 16px 20px calc(24px + env(safe-area-inset-bottom)) !important;
  }
  .mega-menu .mega-menu__top--mobile { order: 0; flex: 0 0 auto; }
  .mega-menu .mega-menu__tabs { display: none !important; }
  .mega-menu .mega-menu__panel,
  .mega-menu .mega-menu__panel[hidden] { display: block !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; flex: 0 0 auto; }
  .mega-menu .mega-menu__panel.mm-acc__panel, .mega-menu .mega-menu__panel.mm-acc__panel[hidden] { display: none !important; }
  .mega-menu .mega-menu__panel.mm-acc__panel.mm-acc--open, .mega-menu .mega-menu__panel.mm-acc__panel.mm-acc--open[hidden] { display: block !important; padding-bottom: .5rem; }
  .mega-menu .mm-acc__panel .mega-menu__col--cta { display: none; }
  .mega-menu .mm-acc__idx { border-top: 2px solid #101438; margin-top: .5rem; }
  .mm-acc__btn {
    display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between;
    width: 100%; padding: 1rem .25rem; background: transparent; border: 0; border-bottom: 1px solid var(--line);
    font-family: 'Oswald', var(--font-display, sans-serif); font-size: 1.1rem; font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase; color: #101438; cursor: pointer; text-align: left;
  }
  .mm-acc__btn[aria-expanded="true"] { border-bottom-color: #F3C91A; box-shadow: inset 0 -2px 0 #F3C91A; }
  .mm-acc__btn:focus-visible { outline: 2px solid #F3C91A; outline-offset: 2px; }
  .mm-acc__chev { width: 10px; height: 10px; border-right: 2px solid #101438; border-bottom: 2px solid #101438; transform: rotate(45deg); transition: transform .2s; margin-right: .4rem; }
  .mm-acc__btn[aria-expanded="true"] .mm-acc__chev { transform: rotate(-135deg); border-color: #F3C91A; }
}
/* 1.8.438 — EN/ES active: navy + yellow accent (was brass-dark red) */
.lang-switch [aria-current="true"] { color: #101438; box-shadow: inset 0 -2px 0 #F3C91A; }
