/* =========================================================
   Greg's Wood Working: shared site styles (v2, dark glam)
   Direction: Designer's K2b look (black spotlit set, official cream/red
   logo). Bands alternate so no two neighbours share a background:
   black hero + trust > cream products > dark wood videos > espresso
   Welcome Home > cream steps > black Recent Work > espresso About >
   cream CTA > black footer.
   Deep red = buttons and small tags only. Gold = thin lines and icons.
   v1 (birch business-card look) is backed up in _v1/.
   ========================================================= */

:root {
  --gw-black: #0b0807;
  --gw-espresso: #1f140d;
  --gw-cream: #f3e6cc;
  --gw-cream-soft: rgba(243, 230, 204, .78);
  --gw-red: #961c1e;          /* brand deep red rgb(150,28,30) */
  --gw-red-hi: #ab2427;
  --gw-gold: #d6b67f;
  --gw-gold-deep: #a9854c;    /* gold that still reads on cream */
  --gw-gold-line: rgba(214, 182, 127, .35);
  --band-cream: #f5ecdb;
  --card-cream: #fffaf2;
  --line-cream: #e4d3b4;
  --navy-700: #1f3354;        /* military items */
  --ink: #2a170c;             /* espresso headings on cream */
  --ink-soft: #5b4130;

  --gw-hz: .58;               /* floor line position inside the hero background image (desktop asset) */
  --gw-bg-ratio: 2880 / 1520; /* hero background aspect */
  --gw-logo-w: clamp(314px, 35.85vw, 526px);   /* +12% (v6) */
  --gw-hero-pt: calc(var(--header-h) + clamp(40px, 4.8vw, 64px));   /* space above the logo (+28px at 1280, v6) */

  --font-display: "Alfa Slab One", "Zilla Slab", Georgia, serif;
  --font-head: "Zilla Slab", Georgia, serif;
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;   /* Meet the Maker banner (matches the WHC site) */
  --font-body: "Source Sans 3", "Segoe UI", Roboto, Arial, sans-serif;
  --radius: 8px;
  --container: 1180px;
  --header-h: 78px;
  --head-gap: 32px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body {
  margin: 0; font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.6;
  color: var(--ink); background: var(--gw-black); -webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--font-head); line-height: 1.15; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 3px; border-radius: 3px; }
.band-cream :focus-visible { outline-color: var(--ink); }
.container { width: min(100% - 2.5rem, var(--container)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -100px; z-index: 100; background: var(--gw-cream); color: var(--gw-black); padding: .6rem 1rem; border-radius: 4px; }
.skip-link:focus { top: 1rem; }

/* ---------- Bands ---------- */
.section { padding: clamp(40px, 5vw, 60px) 0; }   /* tightened per Greg: ~60px desktop, ~40px phone */
.band-cream { background: var(--band-cream); color: var(--ink); }
.band-black { background: var(--gw-black); color: var(--gw-cream); }
.band-espresso { background: var(--gw-espresso); color: var(--gw-cream); }
.wood {
  color: var(--gw-cream); background-color: #2a170c;
  background-image: linear-gradient(180deg, rgba(20,12,7,.45), rgba(20,12,7,.25) 45%, rgba(20,12,7,.5)), url("assets/wood-dark.jpg");
  background-size: cover, 1600px auto; background-position: center;
}
/* gold hairline that fades out at both ends (trust strip, footer, black bands) */
.hairline-top, .gw-footer, .band-black {
  border-top: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, var(--gw-gold-line) 20%, rgba(214,182,127,.55) 50%, var(--gw-gold-line) 80%, transparent) 1;
}

/* ---------- Type helpers ---------- */
.eyebrow {
  font-family: var(--font-head); font-weight: 700; text-transform: uppercase; letter-spacing: .18em;
  font-size: .85rem; color: var(--ink-soft); margin-bottom: .45rem; display: flex; align-items: center; gap: .6rem;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--gw-gold-deep); }
.eyebrow-light, .eyebrow-gold { color: var(--gw-gold); }
.eyebrow-light::before, .eyebrow-gold::before { background: var(--gw-gold); }
.section-title { font-size: clamp(1.9rem, 3.6vw, 2.7rem); font-weight: 600; color: var(--ink); max-width: 24ch; text-wrap: balance; margin-bottom: .35em; }
.section-title.light { color: var(--gw-cream); }
.section-title.one-line { max-width: none; }
.nowrap { white-space: nowrap; }
.section-intro { font-size: 1.15rem; color: var(--ink-soft); max-width: 44rem; }
.section-head { margin-bottom: var(--head-gap); }       /* same heading-block -> content gap in every band */
.section-head > :last-child { margin-bottom: 0; }

/* ---------- Buttons ---------- */
.gw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 52px; padding: 0 30px; border-radius: 3px;
  font-family: var(--font-head); font-weight: 700; font-size: 1.08rem; letter-spacing: .03em; text-decoration: none; cursor: pointer;
  border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.gw-btn-primary { background: var(--gw-red); color: var(--gw-cream); box-shadow: 0 10px 28px rgba(150,28,30,.28), inset 0 1px 0 rgba(255,255,255,.12); }
.gw-btn-primary:hover { background: var(--gw-red-hi); color: #fff; transform: translateY(-1px); }
.gw-btn-ghost { color: var(--gw-cream); border-color: rgba(243,230,204,.55); background: rgba(11,8,7,.25); }
.gw-btn-ghost:hover { border-color: var(--gw-gold); color: var(--gw-gold); }

/* ---------- Header (transparent over the hero, solid black on scroll) ---------- */
.gw-header { position: fixed; inset: 0 0 auto 0; z-index: 50; transition: background .3s, box-shadow .3s; }
.gw-header-inner { height: var(--header-h); display: grid; grid-template-columns: minmax(140px, 1fr) auto minmax(140px, 1fr); align-items: center; padding: 0 clamp(20px, 4vw, 56px); max-width: 1440px; margin: 0 auto; }
.gw-header.is-scrolled, .gw-header.is-solid, .gw-header.menu-open {
  background: rgba(11, 8, 7, .94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 1px 0 var(--gw-gold-line);
}
.gw-header .brand { display: flex; align-items: center; justify-self: start; align-self: stretch; line-height: 0; transition: opacity .3s; }
.gw-header .brand img { width: 136px; height: auto; }   /* small logo: big enough for the ribbon to read */
.gw-header:not(.is-scrolled):not(.is-solid):not(.menu-open) .brand { opacity: 0; pointer-events: none; }  /* hero logo is the mark until you scroll */
.site-nav { grid-column: 2; }          /* links sit centered across the bar; scrolled logo stays left */
/* Inside pages: center the complete logo/navigation row within the content width.
   The home page keeps its centered navigation over the large hero logo. */
@media (min-width: 1001px) {
  .gw-header.is-solid .gw-header-inner {
    width: min(100% - 2.5rem, var(--container)); padding-inline: 0;
    grid-template-columns: 136px minmax(0, 1fr); column-gap: clamp(24px, 3vw, 40px);
  }
  .gw-header.is-solid .site-nav { justify-self: end; }
  .gw-header.is-solid .nav-list { gap: clamp(12px, 1.3vw, 20px); }
}
.nav-list { list-style: none; display: flex; align-items: center; gap: clamp(16px, 2vw, 32px); margin: 0; padding: 0; }
.site-nav a:not(.gw-quote), .dropdown-toggle {
  display: flex; align-items: center; gap: .4rem; padding: .4rem 0; color: var(--gw-cream-soft); text-decoration: none;
  font-family: var(--font-head); font-weight: 600; font-size: 1.02rem; letter-spacing: .02em; line-height: 1.2;
  background: none; border: 0; cursor: pointer; transition: color .2s; white-space: nowrap;
}
.site-nav a:not(.gw-quote):hover, .dropdown-toggle:hover, .site-nav a[aria-current="page"] { color: var(--gw-cream); }
/* current page: cream text with a short gold underline */
.site-nav .nav-list > li > a[aria-current="page"] { position: relative; }
.site-nav .nav-list > li > a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; border-radius: 1px; background: var(--gw-gold); }
.gw-quote {        /* no box: a plain nav link, kept distinct with gold text and a heavier weight */
  display: inline-block; color: var(--gw-gold); padding: .4rem 0;
  font-family: var(--font-head); font-weight: 700; font-size: 1.02rem; line-height: 1.2; letter-spacing: .02em; text-decoration: none; transition: color .2s; white-space: nowrap;
}
.gw-quote:hover { color: var(--gw-cream); }
.site-nav .gw-quote[aria-current="page"] { color: var(--gw-gold); }

.dropdown-toggle svg { transition: transform .15s; }
.has-dropdown { position: relative; }
.dropdown {
  list-style: none; margin: 0; padding: .5rem; position: absolute; top: calc(100% + 14px); left: -1rem; min-width: 270px;
  background: rgba(11, 8, 7, .97); border: 1px solid var(--gw-gold-line); border-radius: 4px; box-shadow: 0 18px 40px rgba(0,0,0,.5);
  opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s, transform .15s, visibility .15s;
}
.has-dropdown.is-open .dropdown, .has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { opacity: 1; visibility: visible; transform: none; }
.has-dropdown.is-open .dropdown-toggle svg { transform: rotate(180deg); }
.has-dropdown::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 16px; }
.dropdown a:not(.gw-quote) { padding: .6rem .8rem; font-size: 1rem; border-radius: 3px; }
.dropdown a:not(.gw-quote):hover { background: rgba(214,182,127,.08); }
.nav-toggle { display: none; }

/* ---------- Hero ----------
   Content-height hero (v5, tighter). The spotlit set is a ::before layer anchored to the logo's floor line
   (logo top = --gw-hero-pt, floor = logo bottom + 3px) and sized from the logo width, like the footer, so the logo
   always stands on the mirror floor whatever the copy length. The set's edges and bottom fade to black. */
.gw-hero {
  --gw-floor: calc(var(--gw-hero-pt) + var(--gw-logo-w) * 451 / 1200 + 3px);
  position: relative; overflow: hidden; isolation: isolate; text-align: center;
  background-color: #030202;                                   /* = the set's bottom edge, so there is no seam */
  padding: var(--gw-hero-pt) 24px clamp(40px, 3.75vw, 50px);
}
.gw-hero::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: var(--gw-floor); pointer-events: none;
  width: max(100%, calc(var(--gw-logo-w) * 3.1)); aspect-ratio: var(--gw-bg-ratio);
  transform: translate(-50%, calc(var(--gw-hz) * -100%));
  background: url("assets/hero/hero-bg-desktop.jpg") center / 100% 100% no-repeat;   /* 2880x1520, matches the preload */
}
.gw-stage { position: relative; width: var(--gw-logo-w); margin: 0 auto; }
.gw-logo { display: block; width: 100%; height: auto; margin-bottom: 3px;     /* stands just on the floor line */
  filter: drop-shadow(0 0 22px rgba(0,0,0,.55)) drop-shadow(0 0 2px rgba(0,0,0,.4)); }
.gw-reflection { position: absolute; top: 100%; left: -4.083%; width: 108.17%; max-width: none; height: auto; margin-top: 2px; pointer-events: none; user-select: none; }
.gw-copy { position: relative; margin-top: clamp(40px, 4.2vw, 58px); }
.gw-copy h1 {
  margin: 0; font-family: var(--font-head); font-weight: 600; color: var(--gw-cream);
  font-size: clamp(1.85rem, 3.1vw, 2.75rem); line-height: 1.12; letter-spacing: .01em; text-wrap: balance; text-shadow: 0 2px 18px rgba(0,0,0,.7);
}
.gw-copy p { margin: .6rem auto 0; max-width: 40rem; color: var(--gw-cream-soft); font-size: clamp(1rem, 1.25vw, 1.15rem); line-height: 1.5; text-wrap: balance; }
.gw-ctas { margin-top: clamp(1.25rem, 2vw, 1.6rem); display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ---------- Trust strip ---------- */
/* lives at the top of the dark-wood video band (v6): no own background, gold hairline under it */
.gw-trust { list-style: none; margin: 0 0 clamp(32px, 3.4vw, 44px); padding: 4px 0 clamp(26px, 2.6vw, 34px); display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; color: var(--gw-cream);
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, var(--gw-gold-line) 15%, rgba(214,182,127,.55) 50%, var(--gw-gold-line) 85%, transparent) 1; }
.gw-trust { gap: clamp(12px, 1.6vw, 22px); align-items: stretch; }
/* each badge: a raised parchment card (option B, picked by Greg) with a thin bronze/gold border.
   Colours live in the --tb-* set; the red/navy alternates were retired (see _v9/ if ever needed). */
.gw-trust {
  --tb-bg: linear-gradient(180deg, #efe2c6, #e6d5b2);        /* warmer/darker than the #f5ecdb products band */
  --tb-border: rgba(169, 133, 76, .5);
  --tb-highlight: rgba(255, 250, 240, .5);
  --tb-shadow: 0 6px 18px rgba(0, 0, 0, .35);
  --tb-icon: #8a5a24;
  --tb-stroke: 1.75px;
  --tb-label: #2b1a10;
}
.gw-trust li {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center;
  padding: clamp(17px, 1.9vw, 24px) 14px clamp(15px, 1.7vw, 20px); border-radius: 6px;   /* -15% (v8) */
  background: var(--tb-bg);
  border: 1px solid var(--tb-border);
  box-shadow: var(--tb-shadow), inset 0 1px 0 var(--tb-highlight);   /* raised + faint top highlight */
}
.gw-trust svg { flex: none; width: 44px; height: 44px; color: var(--tb-icon); }
.gw-trust svg * { stroke-width: var(--tb-stroke); }
.gw-trust svg [stroke-width="1.2"] { stroke-width: 1.4px; }   /* the small epoxy sparkle stays finer */
.gw-trust span { font-family: var(--font-head); font-weight: 700; font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tb-label); opacity: 1; line-height: 1.3; }

/* ---------- Product cards (cream band) ---------- */
.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--cards-gap, 1.6rem); }
#products { --cards-gap: 1.6rem; }   /* same gap between card rows and above the custom card */
.product-card {
  height: 100%; display: flex; flex-direction: column; color: inherit; text-decoration: none;
  background: var(--card-cream); border-radius: var(--radius); overflow: hidden;
  border: 1px solid var(--line-cream); box-shadow: 0 1px 0 rgba(42,23,12,.06);
  transition: transform .2s, box-shadow .2s;
}
.product-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(42,23,12,.16); }
.product-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--gw-espresso); }
.product-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.product-card:hover .product-img img { transform: scale(1.04); }
.product-body { padding: 1.3rem 1.4rem 1.4rem; display: flex; flex-direction: column; flex: 1; border-top: 1px solid var(--gw-gold-deep); }
.product-body h3 { font-size: 1.42rem; font-weight: 600; color: var(--ink); margin-bottom: .4rem; }
.product-body p { color: var(--ink-soft); flex: 1; margin-bottom: 1rem; }
.product-more { font-family: var(--font-head); font-weight: 700; color: var(--ink); }
.product-card:hover .product-more { text-decoration: underline; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 4px; }
/* "Looking for something different?": full-width invitation under the six cards */
.custom-option {
  margin-top: var(--cards-gap, 1.6rem); display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; align-items: center;
  background: var(--card-cream); border: 1px solid var(--line-cream); border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 1px 0 rgba(42,23,12,.06);
}
/* photo panel: full card height, left corners rounded (via the card's overflow), gold rule on its inner edge */
.custom-option-photo { position: relative; align-self: stretch; min-height: 176px; background: var(--gw-espresso); border-right: 1px solid var(--gw-gold-deep); }
.custom-option-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% 38%; }
.custom-option-text { padding: clamp(24px, 2.6vw, 32px) clamp(22px, 3vw, 40px); }
.custom-option-text h3 { font-size: 1.6rem; font-weight: 600; color: var(--ink); margin: 0 0 .35rem; text-wrap: balance; }   /* one step up from the 1.42rem card titles */
.custom-option-text p { margin: 0; color: var(--ink-soft); max-width: 52ch; text-wrap: pretty; }
.custom-option-actions { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .7rem; padding: 24px clamp(22px, 3vw, 40px) 24px 0; }
.custom-phone { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-head); font-weight: 700; font-size: 1.05rem; color: var(--ink); text-decoration: none; }
.custom-phone svg { color: var(--gw-gold-deep); }
.custom-phone:hover { text-decoration: underline; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 4px; }
.product-tag {
  align-self: flex-start; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: #fff; background: var(--navy-700); padding: .2rem .55rem; border-radius: 3px; margin-bottom: .6rem;
}
.product-card-navy .product-body { border-top-color: var(--navy-700); }

/* ---------- Video feature (dark wood, unchanged) ---------- */
.video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
.video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: #000; box-shadow: 0 18px 40px rgba(0,0,0,.45); border: 1px solid rgba(243,230,204,.2); }
.video-frame video { width: 100%; height: 100%; object-fit: cover; }
.video-sound {
  position: absolute; right: .75rem; bottom: .75rem; font: 700 .9rem var(--font-head); letter-spacing: .02em;
  color: var(--gw-black); background: rgba(245,233,210,.92); border: 0; border-radius: 999px; padding: .5rem .9rem; cursor: pointer;
}
.video-sound:hover { background: #fff; }
.video-card figcaption { margin-top: .8rem; }
.video-card figcaption a { font-family: var(--font-head); font-weight: 700; font-size: 1.2rem; color: var(--gw-cream); text-decoration: none; }
.video-card figcaption a:hover { color: #fff; text-decoration: underline; }

/* ---------- Welcome Home Collection (espresso, unchanged) ---------- */
.welcome-home {
  color: var(--gw-cream); padding: clamp(40px, 5vw, 60px) 0;
  background: linear-gradient(90deg, rgba(15,10,6,.93), rgba(15,10,6,.8)), url("assets/wood-dark.jpg") center / 1600px auto;
  border-top: 4px solid var(--gw-gold); border-bottom: 4px solid var(--gw-gold);
}
.wh-inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.wh-photo img { width: 100%; border-radius: var(--radius); box-shadow: 0 20px 50px rgba(0,0,0,.55); border: 1px solid rgba(201,148,76,.4); }
.wh-tagline { font-family: var(--font-head); font-style: italic; font-size: 1.35rem; color: #f1d3a3; margin-bottom: .75rem; }
.wh-copy > p:not(.eyebrow):not(.wh-tagline) { color: #e3d3b6; font-size: 1.08rem; max-width: 36rem; }
.wh-facts { list-style: none; margin: 1.25rem 0 1.75rem; padding: 0; display: grid; gap: .55rem; color: #d8c6a6; }
.wh-facts li { display: grid; grid-template-columns: 6.5rem 1fr; gap: .75rem; padding-bottom: .55rem; border-bottom: 1px solid rgba(201,148,76,.18); }
.wh-facts strong { font-family: var(--font-head); color: var(--gw-gold); font-size: 1.05rem; }
.wh-actions { display: flex; flex-wrap: wrap; gap: .9rem; }

/* ---------- Steps (cream band) ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.step { padding: 1.6rem 1.4rem 1.5rem; background: var(--card-cream); border: 1px solid var(--line-cream); border-radius: var(--radius); }
.step-num {
  display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 50%;
  background: var(--gw-espresso); color: var(--gw-cream); font-family: var(--font-display); font-size: 1.45rem;
  margin-bottom: 1rem; box-shadow: 0 0 0 4px var(--card-cream), 0 0 0 5px var(--gw-gold-deep);
}
.step h3 { font-size: 1.38rem; font-weight: 600; color: var(--ink); }
.step p { color: var(--ink-soft); margin: 0; }

/* ---------- Recent Work (black band) ---------- */
.work-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.work-grid a { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 4px; background: #15100c; box-shadow: 0 0 0 1px rgba(214,182,127,.18); transition: box-shadow .3s; }
.work-grid figure, .work-grid picture { height: 100%; }
.work-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .6s; filter: saturate(.95) brightness(.92); }
.work-grid a:hover img, .work-grid a:focus-visible img { transform: scale(1.06); filter: none; }
.work-grid figcaption { position: absolute; inset: auto 0 0 0; padding: 28px 16px 14px; color: var(--gw-cream); font: 600 1rem var(--font-head); background: linear-gradient(transparent, rgba(11,8,7,.85)); }
.work-grid a:hover, .work-grid a:focus-visible { box-shadow: 0 0 0 1px rgba(214,182,127,.6); }
.work-more { margin-top: 1.5rem; text-align: center; }

/* ---------- About: "Meet the Maker" birch banner (same art as the Welcome Home Collection site) ---------- */
.maker {
  position: relative; color: #2e1d12; background-color: #f7e9d3;
  background-image: url("assets/about/meet-the-maker-desktop.jpg");
  background-image: image-set(url("assets/about/meet-the-maker-desktop.webp") type("image/webp"), url("assets/about/meet-the-maker-desktop.jpg") type("image/jpeg"));
  background-size: cover; background-position: right center; background-repeat: no-repeat;
  min-height: clamp(380px, 33vw, 560px); display: flex; align-items: center; padding: clamp(44px, 5vw, 64px) 0;
}
.maker-inner { position: relative; }
.maker-label { font-family: var(--font-serif); font-weight: 700; text-transform: uppercase; letter-spacing: .16em; font-size: clamp(.95rem, 1.2vw, 1.1rem); color: #7a4a26; margin: 0 0 .6rem; }
.maker h2 { font-family: var(--font-serif); font-weight: 400; font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.12; letter-spacing: -.01em; color: #2e1d12; max-width: 19ch; margin: 0 0 .55rem; text-wrap: balance; }
.maker-sub { font-family: var(--font-serif); font-size: clamp(1.08rem, 1.45vw, 1.3rem); line-height: 1.45; color: #4a3122; max-width: 30rem; margin: 0 0 1.6rem; }
.maker-btn {
  display: inline-flex; align-items: center; gap: 1.6rem; padding: 1rem 1.7rem; border-radius: 2px;
  background: #e2b06a; color: #2a170c; font-family: var(--font-serif); font-weight: 600; font-size: 1.08rem; text-decoration: none;
  box-shadow: 0 6px 18px rgba(122,74,38,.18); transition: background .2s, transform .2s;
}
.maker-btn span { font-size: 1.25rem; line-height: 1; transition: transform .2s; }
.maker-btn:hover { background: #d9a058; transform: translateY(-1px); }
.maker-btn:hover span { transform: translateX(4px); }
.maker :focus-visible { outline-color: #7a4a26; }
/* closing CTA folded into the banner, under a thin divider */
.maker-cta { margin-top: 1.9rem; padding-top: 1.5rem; border-top: 1px solid rgba(122,74,38,.28); max-width: 34rem; }
.maker-cta-line { text-wrap: balance; font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.3; color: #2e1d12; margin: 0 0 1rem; }
.maker-cta-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .9rem 1.6rem; }
.maker-phone { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-head); font-weight: 700; font-size: 1.12rem; color: #2e1d12; text-decoration: none; }
.maker-phone svg { color: #7a4a26; }
.maker-phone:hover { color: #7a4a26; text-decoration: underline; text-underline-offset: 4px; }
/* photo slot for later (see the commented <figure> in index.html): add .has-photo to .maker-inner */
.maker-inner.has-photo { display: grid; grid-template-columns: minmax(240px, 34fr) 66fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.maker-photo { position: relative; margin: 0 12px 12px 0; }
.maker-photo::before { content: ""; position: absolute; inset: 12px -12px -12px 12px; border: 1px solid var(--gw-gold-deep); border-radius: 4px; pointer-events: none; }
.maker-photo img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; box-shadow: 0 18px 40px rgba(46,29,18,.28); }

/* ---------- Footer: Designer's K2b drop-in (footer_snippet.html). Resize ONLY via --gwf-logo-w. ----------
   .gw-footer__set is sized as a multiple of the logo width and anchored to the bottom of .gw-footer__stage
   (the floor line = logo bottom + 3px). Don't pad the stage or change the logo's 3px bottom margin. */
.gw-footer {
  --gwf-logo-w: clamp(300px, 38vw, 560px);
  --gwf-k: 3.571;                              /* set width / logo width   (desktop asset) */
  --gwf-ratio: .35;                            /* set height / set width   (1400 / 4000)   */
  --gwf-hz: .60;                               /* floor line position in the set image     */
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--gw-black); text-align: center;
  padding: clamp(72px, 7vw, 104px) 20px clamp(36px, 3.4vw, 52px);
}
.gw-footer__stage { position: relative; width: var(--gwf-logo-w); margin: 0 auto; }
.gw-footer__set {
  position: absolute; z-index: -1; left: 50%; transform: translateX(-50%); pointer-events: none;
  width: calc(var(--gwf-logo-w) * var(--gwf-k));
  height: calc(var(--gwf-logo-w) * var(--gwf-k) * var(--gwf-ratio));
  bottom: calc(var(--gwf-logo-w) * var(--gwf-k) * var(--gwf-ratio) * (var(--gwf-hz) - 1));
  background: url("assets/footer/footer-set-desktop.jpg") center / 100% 100% no-repeat;
}
.gw-footer__logo { display: block; width: 100%; height: auto; margin: 0 0 3px;
  filter: drop-shadow(0 0 22px rgba(0, 0, 0, .55)) drop-shadow(0 0 2px rgba(0, 0, 0, .4)); }
.gw-footer__logo-link { display: block; border-radius: 4px; }
.gw-footer__reflection { position: absolute; top: 100%; left: -4.083%; width: 108.17%; max-width: none; height: auto; margin-top: 2px;
  pointer-events: none; user-select: none; }
.gw-footer__legal { margin: calc(var(--gwf-logo-w) * .17 + 12px) 0 0; position: relative;
  font-family: var(--font-body); font-size: .85rem; line-height: 1.5; letter-spacing: .03em; color: rgba(243, 230, 204, .55); }
.gw-footer__logo-link:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 6px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .nav-list { gap: 16px; }
  .site-nav a:not(.gw-quote), .dropdown-toggle, .gw-quote { font-size: .95rem; }
}
@media (max-width: 1100px) and (min-width: 1001px) {
  .gw-header-inner { padding: 0 24px; }     /* narrow desktops: a little less side padding keeps air between the logo and "Home" */
}
@media (max-width: 1060px) and (min-width: 1001px) {
  .nav-list { gap: 12px; }
}
@media (max-width: 1020px) {
  .steps { grid-template-columns: repeat(2, 1fr); }
  .products { grid-template-columns: 1fr 1fr; }
  .custom-option { grid-template-columns: 200px minmax(0, 1fr); }
  .custom-option-photo { grid-row: 1 / span 2; }
  .custom-option-text { padding-bottom: 14px; }
  .custom-option-actions { grid-column: 2; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: .8rem 1.4rem; padding: 0 clamp(22px, 3vw, 40px) 26px; }
}
/* Compact navigation keeps every main link available on smaller screens. */
@media (max-width: 1180px) {
  .gw-header-inner { display: flex; }
  .nav-toggle {
    display: inline-grid; place-items: center; margin-left: auto; width: 44px; height: 44px; padding: 0;
    background: none; border: 0; color: var(--gw-cream); cursor: pointer;
  }
  .nav-toggle path { transition: transform .2s, opacity .2s; transform-origin: 12px 12px; }
  .nav-toggle[aria-expanded="true"] .b1 { transform: translateY(5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .b2 { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .b3 { transform: translateY(-5px) rotate(-45deg); }
  .site-nav {
    position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100vh - var(--header-h)); overflow-y: auto;
    background: rgba(11, 8, 7, .98); border-top: 1px solid var(--gw-gold-line); border-bottom: 1px solid var(--gw-gold-line);
    display: none; padding: .5rem clamp(20px, 4vw, 56px) 1.5rem;
  }
  .site-nav.is-open { display: block; }
  .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav a:not(.gw-quote), .dropdown-toggle { width: 100%; padding: .9rem 0; border-bottom: 1px solid rgba(214,182,127,.14); font-size: 1.1rem; color: var(--gw-cream); }
  .dropdown-toggle { justify-content: space-between; }
  .dropdown { position: static; opacity: 1; visibility: visible; transform: none; display: none; min-width: 0; box-shadow: none; border: 0; padding: 0 0 .25rem 1rem; background: none; }
  .has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { display: none; }
  .has-dropdown.is-open .dropdown { display: block; }
  .has-dropdown::after { display: none; }
  .dropdown a:not(.gw-quote) { color: var(--gw-cream-soft); font-size: 1.02rem; }
  .site-nav .nav-list > li > a[aria-current="page"]::after { left: -12px; right: auto; top: 50%; bottom: auto; width: 3px; height: 1.2em; transform: translateY(-50%); }
  .gw-quote { display: block; padding: .9rem 0; font-size: 1.1rem; }

  .gw-trust { padding-bottom: 26px; }
  .gw-trust span { font-size: .86rem; letter-spacing: .08em; }
  .gw-trust svg { width: 44px; height: 44px; }
  .wh-inner { grid-template-columns: 1fr; }
  .video-grid { grid-template-columns: 1fr; }
  .work-grid { grid-template-columns: repeat(2, 1fr); }
  /* tablet: art stays right, a soft birch wash keeps the text readable */
  .maker { background-image: linear-gradient(90deg, rgba(248,236,218,.94) 0, rgba(248,236,218,.85) 45%, rgba(248,236,218,0) 75%), url("assets/about/meet-the-maker-desktop.jpg");
    background-image: linear-gradient(90deg, rgba(248,236,218,.94) 0, rgba(248,236,218,.85) 45%, rgba(248,236,218,0) 75%), image-set(url("assets/about/meet-the-maker-desktop.webp") type("image/webp"), url("assets/about/meet-the-maker-desktop.jpg") type("image/jpeg"));
    background-position: 0 0, 72% center; background-size: auto, cover; }
}
@media (max-width: 640px) {
  :root { --gw-hz: .45; --gw-bg-ratio: 780 / 1280; --gw-logo-w: min(82vw, 340px); --header-h: 64px; --gw-hero-pt: calc(var(--header-h) + 14px); }
  body { font-size: 1rem; }
  .gw-header-inner { padding: 0 16px; }
  .gw-header .brand { display: none; }                 /* the big hero logo is the brand mark on phones */
  .gw-header.is-solid .brand, .gw-header.is-scrolled .brand, .gw-header.menu-open .brand { display: flex; } /* show the logo on solid headers, including the scrolled homepage */
  .gw-header.is-solid .brand img, .gw-header.is-scrolled .brand img, .gw-header.menu-open .brand img { width: 130px; }
  .gw-hero { padding: var(--gw-hero-pt) 22px 40px; }
  .gw-hero::before { width: max(100%, calc(var(--gw-logo-w) * 1.2)); background-image: url("assets/hero/hero-bg-mobile.jpg"); }
  .gw-copy { margin-top: 70px; }   /* clear of the reflection (+14px v6, +16px v8) */
  .gw-copy h1 { font-size: 1.85rem; }
  .gw-copy p { font-size: 1rem; }
  .gw-ctas { flex-direction: column; gap: 12px; margin-top: 1.3rem; }
  .gw-ctas .gw-btn { width: 100%; }
  .gw-trust { grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 12px; padding: 0 0 26px; margin-bottom: 30px; }   /* equal-height 2x2 */
  .gw-trust li { gap: 10px; padding: 15px 10px 14px; }
  .gw-trust svg { width: 40px; height: 40px; }
  .gw-trust span { font-size: .8rem; letter-spacing: .08em; }

  .products, .steps { grid-template-columns: 1fr; }
  #products { --cards-gap: 1.1rem; }
  #products .section-head { margin-bottom: 32px; }
  .custom-option { grid-template-columns: 1fr; text-align: center; }
  .custom-option-photo { grid-row: auto; min-height: 0; height: 160px; border-right: 0; border-bottom: 1px solid var(--gw-gold-deep); }
  .custom-option-text { padding: 22px 20px 0; }
  .custom-option-text h3 { font-size: 1.45rem; }
  .custom-option-text p { margin: 0 auto; text-wrap: balance; }
  .custom-option-actions { grid-column: auto; flex-direction: column; align-items: stretch; gap: .8rem; padding: 20px 20px 22px; }
  .custom-option-actions .gw-btn { width: 100%; }
  .custom-phone { justify-content: center; }
  .product-img { aspect-ratio: 16 / 10; }
  .product-body h3 { font-size: 1.3rem; }
  .video-grid { gap: 1.25rem; }
  .video-sound { font-size: .78rem; padding: .35rem .7rem; right: .5rem; bottom: .5rem; }
  .wh-facts li { grid-template-columns: 1fr; gap: .1rem; }
  .wh-actions .gw-btn { width: 100%; }
  .steps { gap: .9rem; }
  .step { display: grid; grid-template-columns: 44px 1fr; column-gap: 1rem; padding: 1.15rem; }
  .step-num { width: 44px; height: 44px; font-size: 1.25rem; margin: 0; grid-row: 1 / span 2; }
  .step h3 { font-size: 1.22rem; margin-bottom: .25rem; align-self: center; }
  .work-grid { gap: 10px; }
  .work-grid figcaption { font-size: .88rem; padding: 22px 10px 10px; }
  .work-more .gw-btn { width: 100%; }
  /* phone: plain birch behind the text, a ~160px mountain + pine strip under the CTA */
  .maker { display: block; min-height: 0; padding: 40px 0 150px;
    background-image: url("assets/about/meet-the-maker-strip.png"), url("assets/about/birch-plain.jpg");
    background-image: image-set(url("assets/about/meet-the-maker-strip.webp") type("image/webp"), url("assets/about/meet-the-maker-strip.png") type("image/png")),
                      image-set(url("assets/about/birch-plain.webp") type("image/webp"), url("assets/about/birch-plain.jpg") type("image/jpeg"));
    /* Fill the phone width so the strip's right edge never ends inside the banner. */
    background-size: max(100%, 392px) auto, cover; background-position: center bottom, center top; background-repeat: no-repeat; }
  .maker h2 { font-size: 2rem; }
}
@media (max-width: 600px) {
  /* phone: the tan button becomes a text link so red "Start Your Custom Piece" is the only solid button here */
  .maker-btn { background: none; box-shadow: none; padding: .2rem 0; gap: .5rem; color: #8a5a1c; font-weight: 700;
    text-decoration: underline; text-decoration-color: #e2b06a; text-decoration-thickness: 2px; text-underline-offset: 5px; }
  .maker-btn:hover { background: none; color: #6e4614; transform: none; }
  .maker-btn { display: inline; }                       /* inline so the underline runs under the words only */
  .maker-btn span { display: inline-block; margin-left: .45rem; }
}
@media (max-width: 640px) {
  .maker-cta { margin-top: 1.6rem; padding-top: 1.3rem; }
  .maker-cta-actions { flex-direction: column; align-items: stretch; gap: .9rem; }
  .maker-cta-actions .gw-btn { width: 100%; }
  .maker-phone { justify-content: center; }
  .maker-inner.has-photo { grid-template-columns: 1fr; }
  :root { --head-gap: 24px; }
  .gw-footer { --gwf-logo-w: min(78vw, 300px); --gwf-k: 2.667; --gwf-ratio: .65; --gwf-hz: .60; padding: 64px 18px 34px; }
  .gw-footer__set { background-image: url("assets/footer/footer-set-mobile.jpg"); }
  .gw-footer__legal { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gw-btn, .btn, .gw-header, .product-card, .product-img img, .dropdown, .work-grid img { transition: none; }
}

/* =====================================================================================
   Inner pages: short dark hero (contact.php and future pages)
   ===================================================================================== */
.page-hero {
  position: relative; text-align: center; color: var(--gw-cream);
  padding: calc(var(--header-h) + clamp(40px, 5vw, 64px)) 0 clamp(40px, 4.5vw, 56px);
  background-color: var(--gw-black);
  /* same spotlit pine set as the home hero/footer, at low strength: the floor line sits near the hero's bottom edge,
     faint pines behind the headline, a soft warm spotlight centred on it */
  background-image:
    radial-gradient(ellipse 34% 62% at 50% 58%, rgba(168, 108, 58, .20), rgba(168, 108, 58, 0) 72%),
    linear-gradient(180deg, rgba(11, 8, 7, .62), rgba(11, 8, 7, .48) 45%, rgba(11, 8, 7, .62) 78%, var(--gw-black)),
    url("assets/hero/hero-bg-desktop.jpg");
  background-size: 100% 100%, 100% 100%, max(100%, 1600px) auto; background-position: center, center, 50% 33%; background-repeat: no-repeat;
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, var(--gw-gold-line) 20%, rgba(214,182,127,.55) 50%, var(--gw-gold-line) 80%, transparent) 1;
}
.page-hero .eyebrow { justify-content: center; }
.page-hero .eyebrow::after { content: ""; width: 28px; height: 1px; background: var(--gw-gold); }
.page-hero h1 { font-weight: 600; font-size: clamp(2.1rem, 4.2vw, 3.1rem); color: var(--gw-cream); margin: 0 0 .35rem; text-wrap: balance; text-shadow: 0 2px 18px rgba(0,0,0,.6); }
.page-hero-sub { margin: 0 auto; max-width: 40rem; text-wrap: balance; color: var(--gw-cream-soft); font-size: clamp(1.02rem, 1.3vw, 1.15rem); }

/* ---------- Quote page layout ---------- */
.quote-section { padding-top: clamp(36px, 4.5vw, 56px); }
.quote-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(24px, 3vw, 40px); align-items: start; }
.quote-card { background: var(--card-cream); border: 1px solid var(--line-cream); border-radius: var(--radius); box-shadow: 0 1px 0 rgba(42,23,12,.06), 0 10px 30px rgba(42,23,12,.06); padding: clamp(22px, 3vw, 36px); }
.quote-form-title { font-size: clamp(1.5rem, 2.2vw, 1.8rem); font-weight: 600; color: var(--ink); margin: 0 0 .2rem; }
.form-note { margin: 0 0 1.4rem; color: var(--ink-soft); font-size: .95rem; }
.req { color: #9b1c1f; font-weight: 700; }
.opt { font-family: var(--font-body); font-weight: 400; font-size: .9rem; color: var(--ink-soft); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 22px; }
.field { display: flex; flex-direction: column; min-width: 0; }
.field-full { grid-column: 1 / -1; }
.field label { font-family: var(--font-head); font-weight: 600; font-size: 1.05rem; color: var(--ink); margin-bottom: .4rem; }
.field input:not([type="file"]), .field select, .field textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: #fff;
  border: 1px solid #d6c3a0; border-radius: 6px; padding: .72rem .85rem; min-height: 48px;
  transition: border-color .15s, box-shadow .15s;
}
.field textarea { resize: vertical; min-height: 150px; line-height: 1.5; }
.field select { appearance: none; padding-right: 2.4rem; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235b4130' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right .9rem center / 12px 8px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--gw-gold-deep); box-shadow: 0 0 0 3px rgba(169, 133, 76, .28); }
.field input[aria-invalid="true"]:not([type="file"]), .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border: 1.5px solid #9b1c1f; }
.field input[aria-invalid="true"]:not([type="file"]):focus, .field select[aria-invalid="true"]:focus, .field textarea[aria-invalid="true"]:focus { border-color: #9b1c1f; box-shadow: 0 0 0 3px rgba(155, 28, 31, .18); }
.field-hint { margin: .4rem 0 0; font-size: .9rem; color: var(--ink-soft); }
.field-photos .field-hint { margin: 0 0 .6rem; }
.field-error { margin: .4rem 0 0; font-size: .92rem; font-weight: 600; color: #9b1c1f; display: flex; gap: .4rem; align-items: flex-start; }
.field-error::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 18px; height: 18px; margin-top: 2px; border-radius: 50%; background: #9b1c1f; color: #fff; font-size: .75rem; font-weight: 700; }

.form-alert { margin: 0 0 1.4rem; padding: 1rem 1.15rem 1rem 1.1rem; border: 1px solid var(--line-cream); border-left: 4px solid #9b1c1f; border-radius: 4px; background: var(--band-cream); color: var(--ink); }
.form-alert:focus { outline: none; }   /* focused by script so it is announced; no second outline */
.form-alert-title { margin: 0 0 .35rem; font-family: var(--font-head); font-weight: 700; font-size: 1.08rem; color: #7d1416; }
.form-alert ul { margin: 0; padding-left: 1.15rem; }
.form-alert li + li { margin-top: .2rem; }
.form-alert a { color: var(--ink); text-decoration: none; cursor: pointer; }
.form-alert a:hover, .form-alert a:focus-visible { text-decoration: underline; text-decoration-color: #9b1c1f; text-underline-offset: 3px; }
.form-alert li::marker { color: #9b1c1f; }
.form-alert-note { margin: .5rem 0 0; font-size: .92rem; }

/* photo drop zone: plain file input without JS; styled drop area with thumbnails when quote-form.js runs */
.dropzone { position: relative; }
.dropzone-ui { display: none; }
.js .dropzone input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; }
.js .dropzone-ui {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; text-align: center;
  min-height: 132px; padding: 1.2rem; border: 1.5px dashed #c9b28a; border-radius: 8px; background: #fffdf8; color: var(--ink-soft);
  transition: border-color .15s, background .15s;
}
.js .dropzone-ui svg { width: 40px; height: 40px; color: var(--gw-gold-deep); }
.js .dropzone-ui strong { color: var(--ink); font-family: var(--font-head); font-size: 1.05rem; }
.dz-link { color: var(--ink); text-decoration: underline; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 3px; font-weight: 600; }
.js .dropzone:hover .dropzone-ui, .js .dropzone.is-over .dropzone-ui { border-color: var(--gw-gold-deep); background: #fbf3e4; }
.js .dropzone:focus-within .dropzone-ui { border-color: var(--gw-gold-deep); box-shadow: 0 0 0 3px rgba(169, 133, 76, .28); }
.js .dropzone.is-full { display: none; }
.dropzone input[aria-invalid="true"] + .dropzone-ui { border: 1.5px solid #9b1c1f; }
.thumbs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.thumbs:not(:empty) { margin-top: 12px; }
.thumb { position: relative; width: 132px; border: 1px solid var(--line-cream); border-radius: 8px; background: #fff; overflow: hidden; }
.thumb-img { display: grid; place-items: center; width: 100%; aspect-ratio: 1; background: var(--band-cream); color: var(--ink-soft); font-family: var(--font-head); font-weight: 700; letter-spacing: .08em; }
.thumb-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.thumb-name { display: block; padding: .35rem .5rem .1rem; font-size: .8rem; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thumb-size { display: block; padding: 0 .5rem .4rem; font-size: .75rem; color: var(--ink-soft); }
.thumb-remove {
  position: absolute; top: 6px; right: 6px; width: 32px; height: 32px; display: grid; place-items: center; padding: 0;
  border: 0; border-radius: 50%; background: rgba(42, 23, 12, .82); color: #fff; cursor: pointer; font-size: 1.2rem; line-height: 1;
}
.thumb-remove:hover { background: var(--ink); }
.thumb-remove:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 2px; }

.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-submit { margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid var(--line-cream); display: flex; align-items: center; flex-wrap: wrap; gap: .9rem 1.4rem; }
.form-submit .gw-btn[disabled] { opacity: .75; cursor: progress; transform: none; }
.form-submit-note { margin: 0; color: var(--ink-soft); font-size: .98rem; }
.form-submit-note a, .quote-success a:not(.gw-btn) { color: var(--ink); font-weight: 700; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 3px; }

/* success state */
.quote-success { text-align: center; padding: clamp(32px, 5vw, 56px) clamp(22px, 4vw, 48px); }
.quote-success:focus { outline: none; }
.success-mark { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--gw-espresso); color: var(--gw-gold); margin-bottom: 1.1rem; box-shadow: 0 0 0 4px var(--card-cream), 0 0 0 5px var(--gw-gold-deep); }
.success-mark svg { width: 40px; height: 40px; }
.quote-success h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 600; color: var(--ink); margin-bottom: .5rem; text-wrap: balance; }
.quote-success p { margin: 0 auto .4rem; max-width: 36rem; color: var(--ink-soft); font-size: 1.08rem; }
.success-actions { margin-top: 1.6rem; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .9rem 1.6rem; }
.gw-btn-ink { color: var(--ink); border-color: rgba(42, 23, 12, .45); background: transparent; }
.gw-btn-ink:hover { border-color: var(--ink); background: rgba(42, 23, 12, .05); }
.text-link { color: var(--ink); font-family: var(--font-head); font-weight: 700; text-decoration: underline; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 4px; }

/* contact card */
.quote-aside { position: sticky; top: 96px; }   /* clears the fixed 78px header */
.contact-card { background: var(--card-cream); border: 1px solid var(--line-cream); border-radius: var(--radius); padding: clamp(22px, 2.6vw, 30px); box-shadow: 0 1px 0 rgba(42,23,12,.06); }
.contact-card h2 { font-size: 1.5rem; font-weight: 600; color: var(--ink); margin: 0 0 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--gw-gold-deep); }
.contact-list { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: 1rem; }
.contact-list li { display: flex; gap: .85rem; align-items: flex-start; }
.ci { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--gw-espresso); color: var(--gw-gold); }
.cl { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.cv { display: block; font-family: var(--font-head); font-weight: 700; font-size: 1.15rem; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; line-height: 1.3; }
a.cv:hover { text-decoration: underline; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 3px; }
.cv-plain { font-weight: 600; font-size: 1.05rem; }
.cv-alt { display: block; font-size: .92rem; color: var(--ink-soft); margin-top: .1rem; }
.cv-alt a { color: var(--ink); font-weight: 600; text-decoration-color: var(--gw-gold-deep); text-underline-offset: 3px; }
.next-title { font-size: 1.2rem; font-weight: 700; color: var(--ink); margin: 0 0 .9rem; padding-top: 1.2rem; border-top: 1px solid var(--line-cream); }
.next-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.next-steps li { display: flex; gap: .9rem; align-items: flex-start; }
.next-steps .step-num { flex: none; width: 34px; height: 34px; font-size: 1rem; margin: 2px 0 0; box-shadow: 0 0 0 3px var(--card-cream), 0 0 0 4px var(--gw-gold-deep); }
.next-steps strong { display: block; font-family: var(--font-head); font-size: 1.08rem; color: var(--ink); }
.next-steps p { margin: .1rem 0 0; font-size: .95rem; color: var(--ink-soft); line-height: 1.5; }

@media (max-width: 1020px) {
  .quote-layout { grid-template-columns: 1fr; }
  .quote-aside { position: static; }
}
@media (max-width: 640px) {
  .page-hero { background-image: radial-gradient(ellipse 60% 55% at 50% 60%, rgba(168, 108, 58, .20), rgba(168, 108, 58, 0) 72%),
      linear-gradient(180deg, rgba(11, 8, 7, .6), rgba(11, 8, 7, .45) 45%, rgba(11, 8, 7, .62) 78%, var(--gw-black)), url("assets/hero/hero-bg-mobile.jpg");
    background-size: 100% 100%, 100% 100%, 100% auto; background-position: center, center, 50% 8%; }
  .form-grid { grid-template-columns: 1fr; gap: 18px; }
  .form-submit { flex-direction: column; align-items: stretch; text-align: center; }
  .form-submit .gw-btn { width: 100%; }
  .thumb { width: calc(50% - 6px); }
  .success-actions { flex-direction: column; }
  .success-actions .gw-btn { width: 100%; }
}

/* ---------- v12 contact additions ---------- */
.field select:required:invalid { color: var(--ink-soft); }          /* "Choose one..." placeholder reads as a prompt */
.field select option { color: var(--ink); }
.dz-touch { display: none; }
@media (hover: none), (max-width: 640px) {                          /* touch screens / phones: no drag and drop */
  .dz-desktop { display: none; }
  .dz-touch { display: inline; }
}
/* phones: compact Call / Text row right under the hero */
.quick-contact { display: none; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.quick-contact-label { margin: 0; font-family: var(--font-head); font-weight: 700; font-size: 1rem; color: var(--ink); }
.quick-contact-pills { display: flex; gap: 8px; }
.pill { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 16px; border-radius: 999px;
  border: 1px solid rgba(42, 23, 12, .35); background: var(--card-cream); color: var(--ink); font-family: var(--font-head); font-weight: 700; font-size: 1rem; text-decoration: none; }
.pill svg { color: var(--gw-gold-deep); width: 18px; height: 18px; }
.pill:hover, .pill:focus-visible { border-color: var(--ink); }
/* success state: gold eyebrow rule above the headline (as in the hero) */
.success-eyebrow { justify-content: center; color: var(--ink-soft); margin: 0 0 .6rem; }
.success-eyebrow::after { content: ""; width: 28px; height: 1px; background: var(--gw-gold-deep); }
@media (max-width: 640px) {
  .quick-contact { display: flex; }
}
.quick-contact-label span { display: block; font-size: 1.12rem; }
.quick-contact-label { line-height: 1.25; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.quick-contact-label span { letter-spacing: 0; text-transform: none; color: var(--ink); }

/* =====================================================================================
   Product pages (includes/product-page.php)
   ===================================================================================== */
/* nav: "What I Make" shows as the current section on product pages */
.site-nav .has-dropdown.is-current > .dropdown-toggle { color: var(--gw-cream); position: relative; }
.site-nav .has-dropdown.is-current > .dropdown-toggle::after { content: ""; position: absolute; left: 0; right: calc(11px + .4rem); bottom: -2px; height: 2px; border-radius: 1px; background: var(--gw-gold); }
.dropdown a[aria-current="page"] { color: var(--gw-cream); background: rgba(214,182,127,.08); box-shadow: inset 2px 0 0 var(--gw-gold); }
@media (max-width: 1000px) {
  .site-nav .has-dropdown.is-current > .dropdown-toggle::after { left: -12px; right: auto; top: 50%; bottom: auto; width: 3px; height: 1.2em; transform: translateY(-50%); }
  .dropdown a[aria-current="page"] { background: none; box-shadow: none; color: var(--gw-cream); font-weight: 700; }
}

/* centred section heads (eyebrow rule on both sides, as in the page hero) */
.section-head-center { text-align: center; }
.section-head-center .eyebrow { justify-content: center; }
.section-head-center .eyebrow::after { content: ""; width: 28px; height: 1px; background: var(--gw-gold-deep); }
.section-head-center .eyebrow-light::after, .section-head-center .eyebrow-gold::after { background: var(--gw-gold); }
.section-head-center .section-title { margin-inline: auto; }

/* hero: primary CTA + call/text right under the headline */
.hero-cta { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 14px 30px; margin-top: 1.5rem; }
.hero-phone { display: inline-flex; align-items: center; gap: .5rem; color: var(--gw-cream); font-family: var(--font-head); font-weight: 700; font-size: 1.06rem; text-decoration: none; }
.hero-phone svg { color: var(--gw-gold); }
.hero-phone:hover { text-decoration: underline; text-decoration-color: var(--gw-gold); text-underline-offset: 4px; }

/* breadcrumb */
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .1rem .45rem; margin: 0 0 clamp(18px, 2.4vw, 28px); padding: 0; font-size: .92rem; color: var(--ink-soft); }
.crumbs li + li::before { content: "/"; margin-right: .45rem; color: var(--gw-gold-deep); }
.crumbs a { color: var(--ink-soft); text-decoration: underline; text-decoration-color: rgba(169,133,76,.55); text-underline-offset: 3px; }
.crumbs a:hover { color: var(--ink); }
.crumbs [aria-current] { color: var(--ink); font-weight: 600; }

/* slider + text */
.pd-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(28px, 4.2vw, 56px); align-items: start; }
.pd-media { position: sticky; top: 96px; }                 /* clears the fixed header */
.pd-tag { position: static; display: inline-block; margin-bottom: .7rem; }
.pd-title { font-size: clamp(1.75rem, 2.8vw, 2.25rem); font-weight: 600; color: var(--ink); margin: 0 0 .7rem; text-wrap: balance; }
.pd-intro { color: var(--ink-soft); margin: 0 0 .9rem; max-width: 60ch; }
.pd-sub { display: flex; align-items: center; gap: .8rem; font-size: 1.18rem; font-weight: 700; color: var(--ink); margin: 1.5rem 0 .75rem; }
.pd-sub::after { content: ""; flex: 1; height: 1px; background: var(--line-cream); }
.pd-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.pd-list li { display: flex; gap: .65rem; align-items: flex-start; color: var(--ink); line-height: 1.45; }
.pd-list svg { flex: none; color: var(--gw-gold-deep); margin-top: .12rem; }
.pd-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pd-chips li { padding: .32rem .85rem; border: 1px solid var(--line-cream); background: var(--card-cream); border-radius: 999px; font-size: .95rem; color: var(--ink); line-height: 1.4; }
.pd-cta { margin-top: 1.8rem; padding-top: 1.5rem; border-top: 1px solid var(--line-cream); display: flex; flex-wrap: wrap; align-items: center; gap: 16px 26px; }
.pd-contact { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pd-contact-label { margin: 0; font-family: var(--font-head); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); line-height: 1.25; }
.pd-contact-label span { display: block; font-size: 1.12rem; letter-spacing: 0; text-transform: none; color: var(--ink); }

/* ---------- photo slider ---------- */
.ps { position: relative; }
.ps-viewport { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; background: var(--gw-espresso);
  border: 1px solid var(--line-cream); box-shadow: 0 18px 40px rgba(42, 23, 12, .2); }
.ps-track { list-style: none; margin: 0; padding: 0; position: relative; display: flex; height: 100%; overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ps-track::-webkit-scrollbar { display: none; }
.ps-track:focus { outline: none; }
.ps-slide { position: relative; flex: 0 0 100%; height: 100%; overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; }
.ps-open { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.ps-open img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ps-contain .ps-open img { object-fit: contain; }
.ps-fill { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(22px) brightness(.5) saturate(1.1); transform: scale(1.15); }
.ps-open:focus-visible { outline: none; }
.ps-open:focus-visible::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); box-shadow: inset 0 0 0 3px var(--gw-gold), inset 0 0 0 5px rgba(11, 8, 7, .6); }
.ps-arrow { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 46px; height: 46px; margin-top: -23px; padding: 0; border-radius: 50%;
  border: 1px solid rgba(214, 182, 127, .55); background: rgba(11, 8, 7, .62); color: var(--gw-cream); cursor: pointer;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background .2s, color .2s, border-color .2s; }
.ps-prev { left: 12px; }
.ps-next { right: 12px; }
.ps-arrow:hover { background: rgba(11, 8, 7, .85); border-color: var(--gw-gold); color: var(--gw-gold); }
.ps-arrow:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 2px; }
.ps-count, .ps-zoom { position: absolute; bottom: 12px; z-index: 2; pointer-events: none; color: var(--gw-cream); background: rgba(11, 8, 7, .62); border-radius: 999px; }
.ps-count { left: 12px; padding: .2rem .65rem; font-size: .85rem; font-weight: 600; letter-spacing: .04em; }
.ps-zoom { right: 12px; display: grid; place-items: center; width: 34px; height: 34px; }
.ps-dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 2px; margin-top: 10px; }
.ps-dot { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; }
.ps-dot::before { content: ""; width: 10px; height: 10px; border-radius: 999px; background: rgba(42, 23, 12, .25); transition: width .2s, background .2s; }
.ps-dot:hover::before { background: rgba(42, 23, 12, .5); }
.ps-dot[aria-current="true"]::before { width: 24px; background: var(--ink); }
.ps-dot:focus-visible { outline: 2px solid var(--ink); outline-offset: 0; border-radius: 6px; }
.ps-thumbs { position: relative; justify-content: flex-start; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding: 4px; margin-top: 12px; scrollbar-width: thin; scrollbar-color: var(--gw-gold-deep) transparent; }
.ps-thumb { display: block; flex: 0 0 clamp(64px, 18%, 112px); width: auto; height: auto; aspect-ratio: 4 / 3; overflow: hidden; border: 2px solid transparent; border-radius: 5px; background: var(--gw-espresso); opacity: .65; transition: opacity .2s, border-color .2s; }
.ps-thumb::before { content: none; }
.ps-thumb img { width: 100%; height: 100%; object-fit: contain; }
.ps-thumb:hover, .ps-thumb[aria-current="true"] { opacity: 1; border-color: var(--gw-gold-deep); }
.ps:not(.ps-ready) .ps-arrow, .ps:not(.ps-ready) .ps-dots, .ps:not(.ps-ready) .ps-count { display: none; }   /* no JS: a swipeable strip */

/* All project photos, across the full content width below the opening details. */
.pd-gallery .section-title { margin-bottom: 24px; }
.pd-gallery-grid { display: grid; gap: clamp(14px, 2vw, 24px); margin: 0; padding: 0; list-style: none; }
.pd-gallery-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pd-gallery-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pd-gallery-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pd-gallery-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pd-gallery-grid li { min-width: 0; }
.pd-gallery-open { display: block; height: 100%; overflow: hidden; border: 1px solid var(--gw-gold-line); border-radius: var(--radius); background: var(--gw-espresso); color: var(--gw-cream); text-decoration: none; }
.pd-gallery-open:hover { border-color: var(--gw-gold); }
.pd-gallery-photo { display: block; aspect-ratio: 4 / 3; background: var(--gw-black); }
.pd-gallery-photo img { width: 100%; height: 100%; object-fit: contain; }
.pd-gallery-caption { display: block; padding: 12px 14px; font-family: var(--font-head); font-weight: 600; line-height: 1.35; }
@media (max-width: 900px) {
  .pd-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .pd-gallery-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .ps-thumb { transition: none; }
}

/* ---------- lightbox ---------- */
html.lb-open { overflow: hidden; }
.lb { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(11, 8, 7, .985); color: var(--gw-cream); overscroll-behavior: contain; }
.lb::backdrop { background: rgba(11, 8, 7, .9); }
.lb-stage { position: relative; display: grid; place-items: center; width: 100%; height: 100%; padding: 64px 76px 24px; }
.lb-figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 14px; max-width: 100%; max-height: 100%; }
.lb-img { display: block; max-width: min(100%, 1400px); max-height: calc(100vh - 160px); max-height: calc(100dvh - 160px); width: auto; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 20px 60px rgba(0, 0, 0, .6); }
.lb-cap { max-width: 70ch; text-align: center; font-size: .98rem; color: var(--gw-cream-soft); line-height: 1.45; }
.lb-count { font-family: var(--font-head); font-weight: 700; color: var(--gw-cream); margin-right: .4rem; }
.lb-btn { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border-radius: 50%; border: 1px solid rgba(214, 182, 127, .5);
  background: rgba(31, 20, 13, .7); color: var(--gw-cream); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.lb-btn:hover { border-color: var(--gw-gold); color: var(--gw-gold); }
.lb-btn:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 3px; }
.lb-prev { left: 14px; top: 50%; margin-top: -26px; }
.lb-next { right: 14px; top: 50%; margin-top: -26px; }
.lb-close { top: 12px; right: 14px; width: 46px; height: 46px; }
.lb-btn[hidden] { display: none; }

/* ---------- Great for (cream cards on dark wood, same look as the home trust badges) ---------- */
.gf-list { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 22px); }
.gf-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 880px; }
.gf-list li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center;
  padding: clamp(18px, 2vw, 26px) 14px clamp(16px, 1.8vw, 22px); border-radius: 6px;
  background: linear-gradient(180deg, #efe2c6, #e6d5b2); border: 1px solid rgba(169, 133, 76, .5);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 250, 240, .5); }
.gf-list svg { width: 44px; height: 44px; color: #8a5a24; }
.gf-list span { font-family: var(--font-head); font-weight: 700; font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: #2b1a10; line-height: 1.3; }

/* ---------- process: 3 big steps + mid-page CTA ---------- */
.steps-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.steps-3 .step { padding: clamp(24px, 2.4vw, 32px) clamp(20px, 2vw, 28px); box-shadow: 0 1px 0 rgba(42, 23, 12, .06); }
.steps-3 .step-num { width: 58px; height: 58px; font-size: 1.65rem; }
.steps-3 .step h3 { font-size: 1.45rem; margin-bottom: .45rem; }
.mid-cta { margin-top: clamp(28px, 3.5vw, 44px); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px 44px;
  padding: clamp(24px, 3vw, 36px) clamp(22px, 3.6vw, 48px); border-radius: var(--radius); color: var(--gw-cream);
  background: radial-gradient(ellipse 55% 140% at 0% 0%, rgba(168, 108, 58, .28), rgba(168, 108, 58, 0) 70%), var(--gw-espresso);
  border: 1px solid rgba(214, 182, 127, .35); box-shadow: 0 16px 36px rgba(42, 23, 12, .22); }
.mid-cta-title { font-size: clamp(1.45rem, 2.4vw, 1.95rem); font-weight: 600; color: var(--gw-cream); margin: 0 0 .3rem; text-wrap: balance; }
.mid-cta-text p { margin: 0; color: #e3d3b6; font-size: 1.08rem; }
.mid-cta-actions { display: flex; flex-direction: column; align-items: center; gap: .55rem; }
.mid-cta-phone { margin: 0; font-size: .98rem; color: var(--gw-cream-soft); }
.mid-cta-phone a { color: var(--gw-cream); font-weight: 700; text-decoration: underline; text-decoration-color: var(--gw-gold); text-underline-offset: 3px; }

/* ---------- More things I make ---------- */
.mp-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.mp-card { display: flex; flex-direction: column; height: 100%; color: var(--gw-cream); text-decoration: none; background: #15100c;
  border: 1px solid rgba(214, 182, 127, .22); border-radius: var(--radius); overflow: hidden; transition: border-color .2s, transform .2s; }
.mp-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-bottom: 1px solid rgba(214, 182, 127, .35); background: var(--gw-espresso); }
.mp-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.mp-name { display: block; padding: .8rem .95rem .95rem; font-family: var(--font-head); font-weight: 600; font-size: 1.04rem; line-height: 1.3; }
.mp-card:hover { border-color: rgba(214, 182, 127, .6); transform: translateY(-3px); }
.mp-card:hover .mp-img img { transform: scale(1.04); }
.mp-card:hover .mp-name { text-decoration: underline; text-decoration-color: var(--gw-gold); text-underline-offset: 4px; }

@media (max-width: 1020px) {
  .pd-layout { grid-template-columns: 1fr; }
  .pd-media { position: static; max-width: 760px; width: 100%; margin-inline: auto; }
  .pd-text { max-width: 760px; width: 100%; margin-inline: auto; }
  .steps-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mp-grid { display: flex; flex-wrap: wrap; justify-content: center; }      /* 3 + 2, second row centred */
  .mp-grid li { flex: 0 0 calc((100% - 32px) / 3); }
}
@media (max-width: 860px) {
  .gf-list { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; max-width: 560px; }
  .gf-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; }
  .steps-3 { grid-template-columns: 1fr; max-width: 640px; margin-inline: auto; }
  .steps-3 .step { display: grid; grid-template-columns: 58px 1fr; column-gap: 1.2rem; }
  .steps-3 .step-num { margin: 0; grid-row: 1 / span 2; }
  .steps-3 .step h3 { align-self: end; }
  .mid-cta { grid-template-columns: 1fr; text-align: center; }
}
@media (max-width: 640px) {
  .page-hero.product-hero { padding-bottom: 36px; background-size: 100% 100%, 100% 100%, auto 225%; background-position: center, center, 50% 0; }   /* taller than the contact hero (CTA row): scale the pine set so its floor line sits at the bottom edge */
  .hero-cta { flex-direction: column; gap: 12px; margin-top: 1.2rem; }
  .hero-cta .gw-btn { width: 100%; }
  .crumbs ol { font-size: .85rem; }
  .ps-arrow { width: 40px; height: 40px; margin-top: -20px; }
  .ps-prev { left: 8px; } .ps-next { right: 8px; }
  .ps-count { left: 8px; bottom: 8px; } .ps-zoom { right: 8px; bottom: 8px; }
  .pd-title { font-size: 1.7rem; }
  .pd-cta { flex-direction: column; align-items: stretch; gap: 16px; }
  .pd-cta .gw-btn { width: 100%; }
  .pd-contact { justify-content: space-between; }
  .gf-list, .gf-3 { grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 12px; }
  .gf-3 li:last-child { grid-column: 1 / -1; }
  .gf-list li { gap: 10px; padding: 15px 10px 14px; }
  .gf-list svg { width: 40px; height: 40px; }
  .gf-list span { font-size: .8rem; letter-spacing: .08em; }
  .steps-3 .step { grid-template-columns: 44px 1fr; column-gap: 1rem; padding: 1.15rem; }
  .steps-3 .step-num { width: 44px; height: 44px; font-size: 1.25rem; }
  .steps-3 .step h3 { font-size: 1.22rem; }
  .mid-cta-actions { align-items: stretch; }
  .mid-cta-actions .gw-btn { width: 100%; }
  /* cross-links: a swipeable row (third card peeks in) */
  .mp-grid { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 46%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
    margin-inline: -20px; padding: 0 20px 6px; scroll-padding-inline: 20px; scrollbar-width: none; }
  .mp-grid::-webkit-scrollbar { display: none; }
  .mp-grid li { scroll-snap-align: start; }
  .mp-name { font-size: .95rem; padding: .65rem .75rem .75rem; }
  .lb-stage { padding: 60px 8px 16px; }
  .lb-prev, .lb-next { top: auto; bottom: 14px; margin-top: 0; width: 46px; height: 46px; }
  .lb-img { max-height: calc(100vh - 210px); max-height: calc(100dvh - 210px); }
  .lb-figure { padding-bottom: 56px; }
  .lb-cap { font-size: .9rem; padding: 0 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .mp-card, .mp-img img, .ps-arrow, .ps-dot::before { transition: none; }
}

/* =====================================================================
   Welcome Home, Gallery, About (final pass)
   ===================================================================== */
.gf-list small { display: block; margin-top: -6px; font-family: var(--font-serif); font-style: italic; font-size: 1rem; line-height: 1.4; color: #5a3a22; text-wrap: balance; }
.gf-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.gf-5 li { justify-content: flex-start; }

/* gallery */
.gallery { padding-top: clamp(28px, 3vw, 40px); }
.gal-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 clamp(22px, 2.6vw, 32px); }
.gal-filter { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem 1.05rem; border-radius: 999px; cursor: pointer;
  font: 600 .98rem/1.2 var(--font-head); color: var(--ink); background: #fffaf1; border: 1px solid rgba(122, 74, 38, .35); transition: background .2s, color .2s, border-color .2s; }
.gal-filter:hover { border-color: #7a4a26; }
.gal-filter[aria-pressed="true"] { background: var(--gw-espresso); color: var(--gw-cream); border-color: var(--gw-espresso); }
.gal-n { font-size: .8rem; font-weight: 700; min-width: 1.6em; padding: .1rem .4rem; border-radius: 999px; background: rgba(122, 74, 38, .12); text-align: center; }
.gal-filter[aria-pressed="true"] .gal-n { background: rgba(214, 182, 127, .25); }
.gal-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(10px, 1.3vw, 16px); }
.gal-item[hidden] { display: none; }
.gal-open { position: relative; display: block; width: 100%; padding: 0; border: 0; cursor: zoom-in; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius);
  background: #e9dcc4; box-shadow: 0 6px 18px rgba(42, 23, 12, .14); }
.gal-open img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.gal-open:hover img { transform: scale(1.04); }
.gal-cap { position: absolute; left: 8px; bottom: 8px; padding: .22rem .6rem; border-radius: 999px; font: 600 .78rem/1.3 var(--font-head); letter-spacing: .04em;
  color: var(--gw-cream); background: rgba(20, 12, 7, .72); }
.gallery .crumbs { margin-bottom: 18px; }
.gal-links { margin: clamp(24px, 3vw, 36px) 0 0; text-align: center; color: var(--ink-soft); line-height: 1.9; }
.gal-links a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(122, 74, 38, .45); text-underline-offset: 3px; }
.gal-links a:hover { text-decoration-color: currentColor; }
.gal-empty { text-align: center; }

/* closing CTA band */
.cta-band { text-align: center; }
.cta-band-inner { max-width: 760px; }
.cta-band .eyebrow { justify-content: center; }
.cta-band-text { color: #e3d3b6; font-size: 1.1rem; margin: 0 auto 1.5rem; max-width: 36rem; }
.cta-band-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .9rem 1.6rem; }

/* about */
.about-story { min-height: 0; padding: clamp(40px, 5vw, 72px) 0; }
.about-story .maker-text { max-width: 40rem; }
.about-story .crumbs { margin-bottom: 1.2rem; }
.about-copy p { font-family: var(--font-serif); font-size: clamp(1.06rem, 1.3vw, 1.2rem); line-height: 1.6; color: #3e2818; margin: 0 0 1rem; }
.about-copy a { color: #7a4a26; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.mp-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.mp-more { margin: clamp(22px, 3vw, 32px) 0 0; text-align: center; }

@media (max-width: 1020px) {
  .gf-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mp-6 { display: flex; }
}
@media (max-width: 860px) {
  .gf-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 560px; }
  .gf-5 li:last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .gf-list small { font-size: .9rem; margin-top: -4px; }
  .gal-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .gal-filters { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; margin-inline: calc(-1 * var(--gutter, 20px)); padding: 2px var(--gutter, 20px) 6px; scrollbar-width: none; }
  .gal-filters::-webkit-scrollbar { display: none; }
  .gal-filter { flex: 0 0 auto; }
  .gal-cap { font-size: .7rem; left: 6px; bottom: 6px; }
  .about-story { background-position: 72% center; }
  .mp-6 { display: grid; }
}
@media (prefers-reduced-motion: reduce) { .gal-open img, .gal-filter { transition: none; } }
.cta-band .section-title { margin-inline: auto; }
.about-story::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(247, 233, 211, .94) 0%, rgba(247, 233, 211, .88) 42%, rgba(247, 233, 211, 0) 66%); }
.about-story .maker-inner { z-index: 1; }
.about-story .maker-text { max-width: 36rem; }
@media (max-width: 1000px) { .about-story::before { background: rgba(247, 233, 211, .86); } }

/* gallery: 'fit' => 'contain' tiles show the whole photo over a blurred copy */
.gal-contain .gal-open img { position: relative; z-index: 1; object-fit: contain; }
.gal-contain .gal-open .gal-fill { position: absolute; inset: 0; z-index: 0; object-fit: cover; filter: blur(18px) brightness(.55); transform: scale(1.15); }
.gal-contain .gal-open:hover .gal-fill { transform: scale(1.15); }
.gal-cap { z-index: 2; }

/* Useful product information lives below the opening photo section. */
.pd-details-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 72px); align-items: start; }
.pd-details-copy { margin-top: 20px; font-size: 1.05rem; line-height: 1.75; }
.pd-questions h3 { margin: 0 0 18px; font-family: var(--font-head); font-size: 1.4rem; }
.pd-questions details { border-top: 1px solid var(--gw-gold-line); padding: 18px 0; }
.pd-questions details:last-child { border-bottom: 1px solid var(--gw-gold-line); }
.pd-questions summary { cursor: pointer; font-weight: 700; line-height: 1.5; }
.pd-questions summary:focus-visible { outline: 2px solid var(--gw-red); outline-offset: 6px; }
.pd-questions details p { margin: 14px 0 0; line-height: 1.7; }
@media (max-width: 760px) { .pd-details-layout { grid-template-columns: 1fr; } }

/* Welcome Home Collection overview: a storefront within the woodworking site. */
.whc-hero { padding-top: 150px; color: var(--gw-cream); }
.whc-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
.whc-hero h1 { font-family:var(--font-head); font-size:clamp(2.6rem,4.6vw,4.3rem); line-height:1.08; margin:18px 0; }
.whc-lead { font-size:1.3rem; line-height:1.55; margin:20px 0; }
.whc-split p { line-height:1.7; }
.whc-feature-photo { width:100%; height:auto; border-radius:var(--radius); }
.whc-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:28px; }
.whc-text-link { color:var(--gw-cream); text-underline-offset:5px; }
.whc-all-designs { display:block; width:100%; height:auto; margin:30px auto; border-radius:var(--radius); }
.whc-design-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; }
.whc-design-list article { border-top:1px solid var(--gw-gold-line); padding-top:18px; }
.whc-design-list h3,.whc-options h3 { font-family:var(--font-head); font-size:1.3rem; margin:0 0 12px; }
.whc-design-list p { line-height:1.6; margin-bottom:14px; }
.whc-design-list a { color:var(--gw-espresso); font-weight:700; text-underline-offset:4px; }
.whc-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; color:var(--gw-cream); }
.whc-options article { border-top:1px solid var(--gw-gold-line); padding-top:22px; }
.whc-options p { line-height:1.7; }
.whc-number { display:block; color:var(--gw-gold); font-size:1.5rem; margin-bottom:18px; }
.whc-close { text-align:center; color:var(--gw-cream); }
.whc-close p { margin:20px 0; }
.whc-close .eyebrow { justify-content:center; }
.whc-close .section-title { margin-inline:auto; }
.whc-close .whc-actions { justify-content:center; }
@media(max-width:900px) { .whc-design-list { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .whc-split,.whc-options { grid-template-columns:1fr; } .whc-hero { padding-top:120px; } .whc-design-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .whc-actions .gw-btn { width:100%; text-align:center; } }

/* Visual cards connect each collection name to its sign artwork. */
.whc-design-list { gap:18px; margin-top:32px; }
.whc-design-list article { padding:0; border:1px solid var(--gw-gold-line); border-radius:var(--radius); overflow:hidden; background:#fcf6ec; }
.whc-style-photo { aspect-ratio:4 / 3; display:flex; align-items:center; justify-content:center; padding:12px; background:#f9f1e4; }
.whc-style-photo svg { display:block; width:100%; height:100%; }
.whc-style-text { padding:22px 18px; text-align:center; }
.whc-style-text p { margin:0; line-height:1.6; }
.whc-browse { display:flex; justify-content:center; margin-top:32px; }
@media(max-width:540px) { .whc-design-list { grid-template-columns:1fr; max-width:440px; margin-inline:auto; } .whc-browse .gw-btn { width:100%; } }

/* Keep the homepage project introduction compact on larger screens. */
@media (min-width: 1000px) { #products-title { white-space: nowrap; text-wrap: nowrap; } }

/* From the Shop: project articles and homepage previews. */
.shop-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.shop-card { border:1px solid var(--gw-gold-line); border-radius:var(--radius); overflow:hidden; background:#fcf6ec; }
.shop-card>a { display:flex; flex-direction:column; height:100%; color:var(--gw-espresso); text-decoration:none; }
.shop-card>a:hover .shop-read { text-decoration:underline; text-underline-offset:4px; }
.shop-card img { width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--gw-black); }
.shop-card-body { display:flex; flex-direction:column; flex:1; padding:24px; }
.shop-card h3 { font-family:var(--font-head); font-size:1.45rem; line-height:1.3; margin:0 0 14px; }
.shop-card p { line-height:1.65; margin:0 0 22px; }
.shop-read { font-weight:700; margin-top:auto; }
.shop-article-hero h1 { max-width:25ch; margin-inline:auto; }
.shop-article-layout { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(230px,1fr); gap:64px; align-items:start; }
.shop-article-copy { max-width:760px; }
.shop-article-copy p { line-height:1.8; font-size:1.1rem; margin:18px 0; }
.shop-article-copy .shop-article-intro { font-size:1.25rem; }
.shop-article-copy h2 { font-family:var(--font-head); font-size:1.8rem; line-height:1.3; margin:34px 0 12px; }
.shop-article-photo { margin:28px 0; }
.shop-article-photo img { width:100%; max-height:570px; object-fit:contain; background:var(--gw-black); border-radius:var(--radius); }
.shop-article-photo figcaption { font-size:.9rem; line-height:1.5; margin-top:10px; }
.shop-article-aside { position:sticky; top:110px; padding:26px; border:1px solid var(--gw-gold-line); border-radius:var(--radius); background:#fcf6ec; }
.shop-article-aside h2 { font-family:var(--font-head); font-size:1.5rem; }
.shop-article-aside p { line-height:1.6; margin:16px 0; }
.shop-article-aside .gw-btn { width:100%; }
.shop-aside-link { display:block; color:var(--gw-espresso); font-weight:700; margin-top:22px; text-underline-offset:4px; }
.shop-story-video { width:100%; border-radius:var(--radius); background:var(--gw-black); }
.pd-service-video { width:100%; max-width:960px; height:auto; margin-inline:auto; border:1px solid var(--gw-gold-line); border-radius:var(--radius); background:var(--gw-black); }
@media(min-width:1181px) { .nav-list { gap:clamp(10px,1.1vw,18px); } .gw-header.is-solid .nav-list { gap:clamp(10px,1.1vw,18px); } }
@media(max-width:800px) { .shop-card-grid,.shop-article-layout { grid-template-columns:1fr; } .shop-article-aside { position:static; } }

/* Genuine customer recommendations, displayed without dates or invented ratings. */
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.review-card { margin:0; padding:clamp(24px,3vw,38px); border:1px solid var(--gw-gold-line); border-radius:var(--radius); background:#fcf6ec; display:flex; flex-direction:column; }
.review-card blockquote { margin:0 0 28px; }
.review-card blockquote p { margin:0; font-size:1.15rem; line-height:1.75; }
.review-card figcaption { margin-top:auto; padding-top:18px; border-top:1px solid var(--gw-gold-line); }
.review-card figcaption strong { display:block; font-family:var(--font-head); font-size:1.15rem; }
.review-card figcaption span { display:block; margin-top:6px; color:var(--ink-soft); font-size:.9rem; }
@media(max-width:700px) { .review-grid { grid-template-columns:1fr; } }

/* More project photos: one full-width row, with a swipeable strip on phones. */
.pd-photo-strip { padding: 32px 0; }
.pd-photo-strip-head { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:18px; }
.pd-photo-strip-head h2 { margin:0; font-family:var(--font-head); font-size:1.5rem; color:var(--gw-cream); }
.pd-photo-strip-head p { margin:0; color:var(--gw-cream-soft); font-size:.95rem; }
.pd-photo-row { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 30px) / 4); gap:10px; margin:0; padding:0 10px 8px; list-style:none; overflow-x:auto; scroll-snap-type:x mandatory; }
.pd-photo-row li { min-width:0; scroll-snap-align:start; }
.pd-photo-row .gal-open { width:100%; aspect-ratio:4/3; border:1px solid var(--gw-gold-line); border-radius:4px; background:var(--gw-espresso); }
.pd-photo-row .gal-open img { width:100%; height:100%; object-fit:contain; }
.pd-photo-row .gal-open:hover { border-color:var(--gw-gold); }
.pd-photo-row .gal-open:focus-visible { outline:2px solid var(--gw-gold); outline-offset:2px; }
.video-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mp-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.mp-6 { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:1020px) { .mp-grid { display:flex; } }
@media(max-width:760px) { .pd-photo-strip-head { display:block; } .pd-photo-strip-head p { margin-top:8px; } .pd-photo-row { grid-auto-columns:72%; } .video-grid-three { grid-template-columns:1fr; } }
@media(max-width:640px) { .mp-6 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } }

.product-card[href="christmas-ornaments.php"] .product-img img { object-fit:contain; }
@media(min-width:761px) { .pd-photo-row-few { display:flex; justify-content:center; } .pd-photo-row-few li { flex:0 0 calc((100% - 30px) / 4); } }

/* Additional-photo row: edge arrows, touch scrolling, no visible scrollbar. */
.pd-photo-carousel { position:relative; padding:0 48px; }
.pd-photo-carousel .pd-photo-row { padding:0; scrollbar-width:none; -ms-overflow-style:none; }
.pd-photo-carousel .pd-photo-row::-webkit-scrollbar { display:none; }
.pd-photo-arrow { position:absolute; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:36px; height:44px; padding:0; border:1px solid var(--gw-gold-line); border-radius:4px; background:var(--gw-espresso); color:var(--gw-gold); cursor:pointer; }
.pd-photo-prev { left:6px; }
.pd-photo-next { right:6px; }
.pd-photo-arrow:disabled { opacity:.3; cursor:default; }
.pd-photo-arrow[hidden] { display:none; }
.pd-photo-arrow:focus-visible { outline:2px solid var(--gw-gold); outline-offset:2px; }
@media(max-width:760px) { .pd-photo-carousel { padding:0 40px; } .pd-photo-arrow { width:30px; } .pd-photo-prev { left:4px; } .pd-photo-next { right:4px; } }

/* Unified A closer look gallery: two large photos on desktop, one on phones. */
.guarantee-copy { max-width:850px; }
.contact-message-wrap { max-width:800px; }
.contact-quote-link { margin:0 0 24px; text-align:center; line-height:1.6; }
.contact-phone-options { margin-top:32px; text-align:center; }
.contact-phone-options h2 { font-size:1.4rem; margin-bottom:12px; }
.contact-phone-options .quick-contact-pills { justify-content:center; }
.guarantee-copy h2 { margin:2rem 0 .75rem; font-size:clamp(1.4rem,3vw,1.85rem); }
.guarantee-copy p, .guarantee-copy li { line-height:1.75; }
.guarantee-copy ul { padding-left:1.4rem; }
.guarantee-copy li { margin-bottom:.55rem; }
.guarantee-lead { font-size:1.2rem; }
.guarantee-draft { padding:1rem; border:1px solid var(--gw-gold-line); border-radius:4px; }
.guarantee-rights { margin-top:2rem; font-size:.95rem; }
.guarantee-banner { padding:clamp(32px,5vw,60px) 0; color:var(--gw-cream); }
.guarantee-banner-inner { display:grid; grid-template-columns:64px minmax(0,1fr) auto; align-items:center; gap:28px; }
.guarantee-banner-icon { width:64px; height:72px; color:var(--gw-gold); }
.guarantee-banner-copy h2 { font-family:var(--font-head); font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.2; margin:0 0 6px; }
.guarantee-banner-copy .eyebrow { margin:0 0 14px; font-size:.75rem; line-height:1.5; letter-spacing:.12em; }
.guarantee-banner-copy .eyebrow::before { display:none; }
.guarantee-banner-copy > p:last-child { max-width:650px; margin:0; line-height:1.65; color:var(--gw-cream-soft); }
.guarantee-banner .gw-btn { white-space:nowrap; font-size:.9rem; line-height:1.3; padding:11px 20px; min-height:44px; }
@media(max-width:900px) { .guarantee-banner-inner { grid-template-columns:56px minmax(0,1fr); } .guarantee-banner-icon { width:56px; } .guarantee-banner .gw-btn { grid-column:2; justify-self:start; } }
@media(max-width:640px) {
  .guarantee-banner { padding:32px 0; }
  .guarantee-banner-inner { display:flex; flex-direction:column; align-items:center; gap:20px; text-align:center; }
  .guarantee-banner-icon { display:none; }
  .guarantee-banner-copy { display:flex; flex-direction:column; align-items:center; }
  .guarantee-banner-copy .eyebrow { order:2; justify-content:center; margin:4px 0 18px; font-size:.7rem; line-height:1.5; letter-spacing:.1em; }
  .guarantee-banner-copy .eyebrow::before { display:none; }
  .guarantee-banner-copy h2 { order:1; margin:0; font-size:clamp(2rem,8vw,2.5rem); line-height:1.1; }
  .guarantee-banner-copy h2 .guarantee-heading-line { display:block; }
  .guarantee-banner-copy h2 .guarantee-heading-line:last-child { text-transform:uppercase; font-size:clamp(2.35rem,10vw,3rem); line-height:1.1; }
  .guarantee-banner-copy > p:last-child { order:3; max-width:34ch; margin:0; font-size:1rem; line-height:1.65; }
  .guarantee-banner .gw-btn { align-self:center; width:auto; max-width:100%; margin:0; white-space:normal; }
}
.pd-closer-carousel { padding:0; }
.pd-closer-carousel .pd-photo-row { grid-auto-columns:calc((100% - 24px) / 2); gap:24px; }
.pd-closer-carousel .gal-open { display:block; aspect-ratio:auto; height:100%; padding:0; text-align:left; font:inherit; }
.pd-closer-carousel .gal-open img { display:block; }
.pd-closer-carousel .pd-photo-prev { left:-18px; z-index:1; }
.pd-closer-carousel .pd-photo-next { right:-18px; z-index:1; }
.mp-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-flow:row; grid-auto-columns:auto; gap:16px; overflow:visible; margin:0; padding:0; }
.mp-grid li { min-width:0; }
@media(max-width:760px) { .mp-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0; padding:0; overflow:visible; } }
@media(max-width:760px) { .pd-closer-carousel .pd-photo-row { grid-auto-columns:100%; } .pd-closer-carousel .pd-photo-prev { left:-12px; } .pd-closer-carousel .pd-photo-next { right:-12px; } }

/* Dedicated trust area: original cream cards, wood backdrop and gold divider. */
.gw-trust-band { padding:clamp(32px,5vw,40px) 0 0; }
.gw-trust-band .gw-trust { margin-bottom:0; }
.gw-trust-band + .videos { padding-top:clamp(30px,4vw,44px); }
.gw-trust-link { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; width:100%; color:var(--tb-label); text-decoration:none; border-radius:4px; }
.gw-trust-link:hover span { color:var(--tb-icon); }
.gw-trust-link:focus-visible { outline:2px solid var(--tb-icon); outline-offset:6px; }
@media(max-width:640px) { .gw-trust-link { gap:10px; } }
