/* ==========================================================================
   Astor Classic — "Coachwork & Hide"
   The site dresses in the materials of a restored classic interior: deep
   coachwork green for the canvas, cognac hide for every action, brass for
   fittings (hairlines, ratings, focus), headliner ivory for type. The
   signature device is the saddle stitch (.ht-seam, the section-head seam and
   the stitched hide panel of the closing CTA). See DESIGN.md.

   Loads after theme.min.css / carousel.min.css (baseof.html), so equal
   specificity already wins; !important is reserved for the theme's
   collection-grid rule, whose chained :not() selectors outrank any sane
   project selector.
   ========================================================================== */

:root {
  /* Materials */
  --c-canvas: #0e1b16;        /* coachwork green — page base */
  --c-canvas-deep: #0a1511;   /* recessed bands, footer */
  --c-raised: #14261e;        /* panels */
  --c-ivory: #efe7d6;         /* headliner ivory — primary text */
  --c-ivory-2: #cdc4b0;       /* secondary text */
  --c-ivory-3: #a0978a;       /* faint text */
  --c-brass: #c5a25a;         /* fittings: seams, stars, focus, labels */
  --c-brass-soft: rgba(197, 162, 90, 0.45);
  --c-hide: #93522b;          /* cognac hide — action fill */
  --c-hide-hover: #7f4524;   /* hover darkens: ivory text stays > 6:1 */
  --c-hide-panel: #6d391c;    /* the CTA hide panel */
  --c-hide-ink: #3a1c0b;      /* text on ivory buttons inside the panel */
  --c-link: #dba578;          /* cognac, lightened for text on green */
  --c-line: rgba(239, 231, 214, 0.12);
  --c-line-strong: rgba(239, 231, 214, 0.28);

  /* Type */
  --f-display: "Sorts Mill Goudy", "Goudy Old Style", Garamond, Georgia, serif;
  --f-body: "Alegreya Sans", "Gill Sans", "Segoe UI", system-ui, sans-serif;
  --f-label: "Alegreya Sans SC", "Alegreya Sans", "Gill Sans", system-ui, sans-serif;

  --t-label: 0.8125rem;
  --t-small: 0.9375rem;
  --t-body: 1.125rem;
  --t-h3: 1.5rem;
  --t-h2: clamp(2rem, 3.4vw, 2.75rem);
  --t-h1: clamp(2.6rem, 5.4vw, 4.5rem);

  /* Space */
  --gutter: clamp(1.25rem, 5vw, 4.5rem);
  --shell: 76rem;
  --band: clamp(4.5rem, 9vw, 7.5rem);
  --header-h: 5.5rem;

  /* The saddle stitch: one slanted stitch per 12px, used as a CSS mask so
     it takes whatever `color` the element carries. */
  --stitch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='4'%3E%3Cpath d='M2.5 3.2 8 .8' stroke='%23000' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { scroll-padding-top: var(--header-h); -webkit-text-size-adjust: 100%; }
body.w2h-theme, body.block-layout-experiment {
  background: var(--c-canvas);
  color: var(--c-ivory);
  font-family: var(--f-body);
  font-size: var(--t-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
.page { background: var(--c-canvas); color: var(--c-ivory); min-height: 100vh; }

h1, h2, h3, h4 {
  font-family: var(--f-display);
  font-weight: 400;          /* Goudy ships one weight — never fake a bold */
  font-synthesis: none;
  line-height: 1.12;
  letter-spacing: -0.005em;
  color: var(--c-ivory);
  text-wrap: balance;
}
p { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
::selection { background: var(--c-brass); color: var(--c-canvas); }

/* Two-ring focus: a canvas ring separates, a brass ring signals — legible on
   green, on the hide panel and on ivory buttons alike. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-canvas), 0 0 0 4px var(--c-brass);
  border-radius: 1px;
}

/* Shared content column. Header, hero and footer run full-bleed. */
.block-shell {
  width: min(100% - 2 * var(--gutter), var(--shell));
  margin-inline: auto;
}
.block-hero .block-shell,
#b0 .block-shell,
#b6 .block-shell { width: 100%; margin: 0; }

/* Section bands (data-section-bg is CMS data on each block — the tones live
   here, never in front matter). */
[data-section-bg] { background-color: var(--c-canvas); color: var(--c-ivory); }
[data-section-bg="b3-bg"],
[data-section-bg="b5-bg"],
[data-section-bg="b6-bg"] { background-color: var(--c-canvas-deep); }

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

/* --------------------------------------------------------------------------
   The stitch
   -------------------------------------------------------------------------- */
.ht-seam,
.ht-section-head::after,
.ht-doc::before,
.ht-testimonial::before,
#b6::before {
  content: "";
  display: block;
  height: 4px;
  color: var(--c-brass-soft);
  background-color: currentColor;
  -webkit-mask: var(--stitch) repeat-x left center / 12px 4px;
          mask: var(--stitch) repeat-x left center / 12px 4px;
}
/* Ornamental seam: two short runs of stitching either side of a brass
   lozenge. The runs are pseudo-elements; the lozenge is a background SVG. */
.ht-seam--ornament {
  position: relative;
  width: min(15rem, 60%);
  height: 10px;
  margin: 2.5rem auto 0;
  -webkit-mask: none;
          mask: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath d='M5 .8 9.2 5 5 9.2.8 5z' fill='none' stroke='%23c5a25a' stroke-width='1.1'/%3E%3C/svg%3E") center / 10px 10px no-repeat;
}
.ht-seam--ornament::before,
.ht-seam--ornament::after {
  content: "";
  position: absolute;
  top: 3px;
  width: calc(50% - 1.25rem);
  height: 4px;
  background-color: var(--c-brass-soft);
  -webkit-mask: var(--stitch) repeat-x left center / 12px 4px;
          mask: var(--stitch) repeat-x left center / 12px 4px;
}
.ht-seam--ornament::before { left: 0; }
.ht-seam--ornament::after { right: 0; }

/* --------------------------------------------------------------------------
   Labels, links, buttons
   -------------------------------------------------------------------------- */
.ht-eyebrow,
.w2h-carousel__eyebrow,
.ftr__col-title,
.ht-byline,
.ht-ref-card__count,
.ht-service-detail__cart-label {
  font-family: var(--f-label);
  font-weight: 500;
  font-size: var(--t-label);
  letter-spacing: 0.1em;
  /* SC face: capitals stay capitals, the rest set as small caps */
  color: var(--c-brass);
}

.ht-prose a,
.ht-contact-card a {
  color: var(--c-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  text-decoration-color: rgba(219, 165, 120, 0.45);
  transition: text-decoration-color 0.2s var(--ease), color 0.2s var(--ease);
}
.ht-prose a:hover,
.ht-contact-card a:hover { color: var(--c-ivory); text-decoration-color: currentColor; }

.ht-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.85rem 1.75rem;
  border: 1px solid transparent;
  border-radius: 1px;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-decoration: none;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease);
}
/* On hover the button gets its own stitched hem — the signature at 1:1. */
.ht-btn::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed currentColor;
  opacity: 0;
  transition: opacity 0.25s var(--ease);
  pointer-events: none;
}
.ht-btn:hover::after, .ht-btn:focus-visible::after { opacity: 0.45; }
.ht-btn--primary { background: var(--c-hide); color: var(--c-ivory); }
.ht-btn--primary:hover { background: var(--c-hide-hover); }
.ht-btn--secondary,
.ht-btn--ghost { background: transparent; color: var(--c-ivory); border-color: var(--c-line-strong); }
.ht-btn--secondary:hover,
.ht-btn--ghost:hover { border-color: var(--c-ivory); }

.ht-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding-block: 0.75rem;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.06em;
  color: var(--c-ivory);
  text-decoration: none;
}
.ht-link-arrow__icon {
  position: relative;
  width: 2.25rem;
  height: 1px;
  background: var(--c-brass);
  transition: transform 0.3s var(--ease);
}
.ht-link-arrow__icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: -3px;
  width: 7px;
  height: 7px;
  border-top: 1px solid var(--c-brass);
  border-right: 1px solid var(--c-brass);
  transform: rotate(45deg);
  transform-origin: 100% 0;
}
.ht-link-arrow:hover .ht-link-arrow__icon { transform: translateX(6px); }

.ht-back {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 3.5rem;
  padding-block: 0.5rem;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: var(--t-small);
  letter-spacing: 0.06em;
  color: var(--c-ivory-2);
  text-decoration: none;
}
.ht-back::before { content: "←"; font-family: var(--f-body); color: var(--c-brass); transition: transform 0.25s var(--ease); }
.ht-back:hover { color: var(--c-ivory); }
.ht-back:hover::before { transform: translateX(-4px); }

/* Figures: old-style in running text (the faces' default), lining where
   the reader copies or compares digits — phone numbers, IDs, counts. */
.ftr__col-html, .ht-contact-card, .ht-btn, .hdr__call, .lightbox__counter,
.ht-ref-card__count, .add-to-cart { font-variant-numeric: lining-nums tabular-nums; }

/* Prose */
.ht-prose > * + * { margin-top: 1.1em; }
.ht-prose p, .ht-prose li { color: var(--c-ivory-2); line-height: 1.65; }
.ht-prose p, .ht-prose ul, .ht-prose ol { margin-block: 0; }
.ht-prose > p + p { margin-top: 1em; }
.ht-prose strong { color: var(--c-ivory); font-weight: 500; }
.ht-prose ul { list-style: none; padding: 0; }
.ht-prose li { position: relative; padding-left: 1.6rem; }
.ht-prose li + li { margin-top: 0.45rem; }
.ht-prose li::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.66em;
  width: 0.4rem;
  height: 0.4rem;
  border: 1px solid var(--c-brass);
  transform: rotate(45deg);
}
/* A paragraph that is nothing but bold text ("3 ok, amiért…") is a label. */
.ht-prose p:has(> strong:only-child) {
  margin-top: 2rem;
  font-family: var(--f-label);
  font-size: var(--t-label);
  letter-spacing: 0.1em;
}
.ht-prose p:has(> strong:only-child) strong { color: var(--c-brass); font-weight: 500; }
.ht-prose p:has(> strong:only-child) + ul { margin-top: 0.9rem; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
#b0 {
  position: sticky;
  top: 0;
  z-index: 80;
  background: rgba(14, 27, 22, 0.94);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
          backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s var(--ease), background-color 0.3s var(--ease);
}
#b0.is-scrolled { border-bottom-color: var(--c-line); background: rgba(10, 21, 17, 0.96); }
#b0 .hdr__inner {
  min-height: var(--header-h);
  padding-inline: var(--gutter);
  gap: 1rem 2rem;
}
#b0 .hdr__brand { max-width: none; }
#b0 .hdr__logo {
  height: 3.6rem;
  width: auto;
  max-height: none;
}
#b0 .hdr__nav { justify-content: flex-end; }
#b0 .hdr-menu { gap: 0.25rem 1.9rem; }
#b0 .hdr-menu__link {
  position: relative;
  min-height: 2.75rem;
  padding: 0.5rem 0;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: 1.0625rem;
  letter-spacing: 0.06em;
  color: var(--c-ivory-2);
  transition: color 0.2s var(--ease);
}
#b0 .hdr-menu__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.35rem;
  height: 4px;
  background-color: var(--c-brass);
  -webkit-mask: var(--stitch) repeat-x left center / 12px 4px;
          mask: var(--stitch) repeat-x left center / 12px 4px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s var(--ease);
}
#b0 .hdr-menu__link:hover { color: var(--c-ivory); }
#b0 .hdr-menu__link:hover::after,
#b0 .hdr-menu__link[aria-current="page"]::after { transform: scaleX(1); }
#b0 .hdr-menu__link[aria-current="page"] { color: var(--c-ivory); }

#b0 .hdr__call {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  flex: none;
  min-height: 2.75rem;
  padding: 0.5rem 1.1rem;
  border: 1px solid var(--c-brass-soft);
  border-radius: 1px;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.02em;
  font-variant-numeric: lining-nums;
  color: var(--c-ivory);
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.2s var(--ease), background-color 0.2s var(--ease);
}
#b0 .hdr__call:hover { border-color: var(--c-brass); background: rgba(197, 162, 90, 0.08); }
#b0 .hdr__call-icon { color: var(--c-brass); }

#b0 .hdr__toggle {
  order: 3;
  width: 2.75rem;
  height: 2.75rem;
  gap: 7px;
  padding: 0.7rem;
  border: 1px solid var(--c-line-strong);
  border-radius: 1px;
  color: var(--c-ivory);
}
#b0 .hdr__toggle-bar { transition: transform 0.25s var(--ease); }
#b0 .hdr__toggle[aria-expanded="true"] .hdr__toggle-bar:first-child { transform: translateY(4.5px) rotate(45deg); }
#b0 .hdr__toggle[aria-expanded="true"] .hdr__toggle-bar:last-child { transform: translateY(-4.5px) rotate(-45deg); }

@media (min-width: 961px) {
  #b0 .hdr__toggle { display: none; }
}
@media (max-width: 960px) {
  :root { --header-h: 4.5rem; }
  #b0 .hdr__inner { gap: 0.75rem; }
  #b0 .hdr__logo { height: 2.75rem; }
  #b0 .hdr__call { margin-left: auto; }
  #b0 .hdr__toggle { display: inline-flex; margin-left: 0; }
  #b0 .hdr__nav:not(.is-open) { display: none; }
  #b0 .hdr__nav.is-open {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 70;
    padding: 0.75rem var(--gutter) 1.75rem;
    background: var(--c-canvas-deep);
    border-bottom: 1px solid var(--c-line);
    max-height: calc(100vh - var(--header-h));
    overflow: auto;
  }
  #b0 .hdr-menu { flex-direction: column; align-items: stretch; gap: 0; }
  #b0 .hdr-menu__link {
    display: flex;
    width: 100%;
    padding: 0.9rem 0;
    font-size: 1.25rem;
    border-bottom: 1px solid var(--c-line);
  }
  #b0 .hdr-menu__link::after { display: none; }
  #b0 .hdr-menu__link[aria-current="page"] { color: var(--c-brass); }
}
@media (max-width: 560px) {
  #b0 .hdr__call { padding: 0.5rem 0.8rem; }
  #b0 .hdr__call-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  #b0 .hdr__call-icon { width: 1.15em; height: 1.15em; }
}

/* --------------------------------------------------------------------------
   Hero carousel
   -------------------------------------------------------------------------- */
#b1 { background: var(--c-canvas-deep); }
#b1 .w2h-carousel[data-variant="hero"] {
  aspect-ratio: auto;
  height: clamp(26rem, 68vh, 38rem);
  background: var(--c-canvas-deep);
}
#b1 .w2h-carousel__slide { background: var(--c-canvas-deep); }
/* Crossfade instead of a hard cut: hidden slides stay laid out but
   invisible (visibility also takes them out of the accessibility tree). */
#b1 .w2h-carousel[data-variant="hero"] .w2h-carousel__slide[hidden] {
  display: block !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.1s var(--ease), visibility 0s linear 1.1s;
}
#b1 .w2h-carousel[data-variant="hero"] .w2h-carousel__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 1.1s var(--ease), visibility 0s;
}
#b1 .w2h-carousel__media {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform-origin: 60% 50%;
}
#b1 .w2h-carousel__slide.is-active .w2h-carousel__media { animation: ht-drift 14s var(--ease) both; }
@keyframes ht-drift { from { transform: scale(1.06); } to { transform: scale(1); } }

#b1 .w2h-carousel__caption {
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 3rem max(var(--gutter), (100% - var(--shell)) / 2) 5.25rem;
  background:
    linear-gradient(90deg, rgba(8, 17, 13, 0.9) 0%, rgba(8, 17, 13, 0.62) 38%, rgba(8, 17, 13, 0.08) 78%),
    linear-gradient(0deg, rgba(8, 17, 13, 0.75) 0%, rgba(8, 17, 13, 0) 55%);
  text-align: left;
  overflow: hidden;
}
#b1 .w2h-carousel__caption-inner { margin: 0; max-width: 38rem; gap: 0; align-items: flex-start; }
#b1 .w2h-carousel__eyebrow { margin: 0 0 1.25rem; }
#b1 .w2h-carousel__title {
  margin: 0;
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.35rem, 2.15vw, 2.05rem);
  line-height: 1.3;
  color: var(--c-ivory);
  text-wrap: pretty;
}
#b1 .w2h-carousel__summary {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 1.4rem 0 0;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: var(--t-small);
  letter-spacing: 0.08em;
  color: var(--c-ivory-2);
  opacity: 1;
  -webkit-line-clamp: unset;
}
#b1 .w2h-carousel__summary::before { content: ""; width: 2rem; height: 1px; background: var(--c-brass); }

#b1 .w2h-carousel__controls {
  right: max(var(--gutter), (100% - var(--shell)) / 2);
  bottom: 1.75rem;
  gap: 0.5rem;
}
#b1 .w2h-carousel__btn {
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(239, 231, 214, 0.3);
  border-radius: 1px;
  background: rgba(10, 21, 17, 0.35);
  color: var(--c-ivory);
  transition: border-color 0.2s var(--ease), color 0.2s var(--ease);
}
#b1 .w2h-carousel__btn:hover { border-color: var(--c-brass); color: var(--c-brass); }
#b1 .w2h-carousel__btn::before { width: 0.5rem; height: 0.5rem; border-width: 0 1.5px 1.5px 0; }
#b1 .w2h-carousel__btn--playpause { position: relative; }
#b1 .w2h-carousel__btn--playpause::before,
#b1 .w2h-carousel__btn--playpause::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 11px;
  border: 0;
  background: currentColor;
  transform: translate(-4px, -50%);
}
#b1 .w2h-carousel__btn--playpause::after { transform: translate(2px, -50%); }
#b1 .w2h-carousel__btn--playpause.is-paused::before {
  width: 0;
  height: 0;
  background: transparent;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 9px solid currentColor;
  transform: translate(-3px, -50%);
}
#b1 .w2h-carousel__btn--playpause.is-paused::after { display: none; }

#b1 .w2h-carousel__indicators {
  left: max(var(--gutter), (100% - var(--shell)) / 2);
  bottom: 2.9rem;
  gap: 0.45rem;
}
#b1 .w2h-carousel__dot {
  position: relative;
  width: 1.5rem;
  height: 1.75rem;           /* generous hit area around a 2px bar */
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  cursor: pointer;
}
#b1 .w2h-carousel__dot::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: rgba(239, 231, 214, 0.35);
  transition: background-color 0.3s var(--ease);
}
#b1 .w2h-carousel__dot::before { transform-origin: left; transition: background-color 0.3s var(--ease), transform 0.3s var(--ease); }
#b1 .w2h-carousel__dot.is-active::before { background: var(--c-brass); transform: scaleX(1.6); }
#b1 .w2h-carousel__dot.is-active { margin-right: 0.9rem; }
#b1 .w2h-carousel__dot:hover::before { background: var(--c-ivory); }

@media (max-width: 640px) {
  #b1 .w2h-carousel[data-variant="hero"] { height: min(40rem, 88svh); }
  #b1 .w2h-carousel__caption {
    padding: 2rem var(--gutter) 6.5rem;
    background: linear-gradient(0deg, rgba(8, 17, 13, 0.95) 0%, rgba(8, 17, 13, 0.75) 50%, rgba(8, 17, 13, 0.15) 100%);
  }
  #b1 .w2h-carousel__title { font-size: 1.3rem; }
  #b1 .w2h-carousel__indicators { bottom: 1.9rem; }
  #b1 .w2h-carousel__controls { bottom: 1.25rem; }
  #b1 .w2h-carousel__btn--prev, #b1 .w2h-carousel__btn--next { display: none; }
  /* Touch: each 2px bar gets a 44px-tall, 34px-wide hit area. */
  #b1 .w2h-carousel__indicators { gap: 0.1rem; bottom: 1.1rem; }
  #b1 .w2h-carousel__dot { width: 2.125rem; height: 2.75rem; }
  #b1 .w2h-carousel__dot::before { left: 0.3rem; right: 0.3rem; }
  #b1 .w2h-carousel__dot.is-active { margin-right: 0.6rem; }
}

/* --------------------------------------------------------------------------
   Section heads: title left, lede right, stitched seam beneath
   -------------------------------------------------------------------------- */
.ht-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: end;
  gap: 1rem 4rem;
  margin: 0 0 clamp(2.25rem, 4vw, 3.5rem);
  padding: 0;
  text-align: left;
}
.ht-section-head::after { grid-column: 1 / -1; margin-top: 0.75rem; }
.ht-section-head h2 { grid-column: 1; margin: 0; font-size: var(--t-h2); }
.ht-section-head p { grid-column: 2; margin: 0; max-width: 34rem; color: var(--c-ivory-2); line-height: 1.65; }
.ht-section-head:not(:has(p)) h2 { grid-column: 1 / -1; }
@media (max-width: 800px) {
  .ht-section-head { grid-template-columns: 1fr; }
  .ht-section-head h2, .ht-section-head p { grid-column: 1; }
}

/* Collection grids (see header note on !important) */
.block-selected .slot-collection {
  display: grid !important;
  grid-template-columns: var(--cols, repeat(3, minmax(0, 1fr))) !important;
  gap: var(--gap, 2rem) !important;
  width: 100%;
}
.block-selected .collection-footer { margin-top: clamp(2.5rem, 5vw, 3.75rem); text-align: left; }

/* --------------------------------------------------------------------------
   Home intro spread
   -------------------------------------------------------------------------- */
.ht-intro {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 2.5rem clamp(2.5rem, 7vw, 7rem);
  align-items: start;
}
.ht-intro__title {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
  margin: 0;
  font-size: var(--t-h1);
  line-height: 1.02;
}
.ht-intro__title::after {
  content: "";
  display: block;
  width: 7.5rem;
  height: 4px;
  margin-top: 2rem;
  background-color: var(--c-brass);
  -webkit-mask: var(--stitch) repeat-x left center / 12px 4px;
          mask: var(--stitch) repeat-x left center / 12px 4px;
}
.ht-intro__body { padding-top: 0.6rem; }
.ht-intro__body > p { font-size: 1.1875rem; }
.ht-intro__body > p:first-child { color: var(--c-ivory); font-size: 1.375rem; line-height: 1.55; }
@media (max-width: 860px) {
  .ht-intro { grid-template-columns: 1fr; }
  .ht-intro__title { position: static; }
}

/* --------------------------------------------------------------------------
   Reference cards
   -------------------------------------------------------------------------- */
.block-selected--reference { --cols: repeat(3, minmax(0, 1fr)); --gap: 2.75rem 2rem; }
.block-selected--reference.is-home { --cols: repeat(4, minmax(0, 1fr)); --gap: 2rem 1.5rem; }
.block-selected--reference + .block-selected--reference { padding-top: 0; }
@media (max-width: 960px) {
  .block-selected--reference,
  .block-selected--reference.is-home { --cols: repeat(2, minmax(0, 1fr)); --gap: 2rem 1.25rem; }
}
@media (max-width: 480px) {
  .block-selected--reference,
  .block-selected--reference.is-home { --cols: 1fr; }
}
.ht-ref-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  color: inherit;
  text-decoration: none;
}
.ht-ref-card__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--c-line);
  transition: border-color 0.3s var(--ease);
}
.ht-ref-card:hover .ht-ref-card__meta { border-bottom-color: var(--c-brass-soft); }
.ht-ref-card__title { font-family: var(--f-display); font-size: 1.4rem; line-height: 1.3; color: var(--c-ivory); }
.ht-ref-card__count { flex: none; color: var(--c-ivory-3); }
.ht-ref-card:focus-visible { box-shadow: none; }
.ht-ref-card:focus-visible .ht-ref-card__img { outline: 2px solid var(--c-brass); outline-offset: 8px; }

/* --------------------------------------------------------------------------
   Editorial (image + copy)
   -------------------------------------------------------------------------- */
.ht-editorial {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 3rem clamp(3rem, 8vw, 7.5rem);
  align-items: center;
}
.block-editorial.is-reverse .ht-editorial__media { order: 2; }
.ht-editorial__copy h2 { margin: 0 0 1.75rem; font-size: var(--t-h2); }
.ht-editorial__action { margin: 2.5rem 0 0; }
@media (max-width: 860px) {
  .ht-editorial { grid-template-columns: 1fr; }
  .block-editorial.is-reverse .ht-editorial__media { order: 0; }
}

/* --------------------------------------------------------------------------
   Testimonials
   -------------------------------------------------------------------------- */
.block-selected--testimonial { --cols: repeat(3, minmax(0, 1fr)); --gap: 3.5rem 3rem; }
@media (max-width: 1040px) { .block-selected--testimonial { --cols: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .block-selected--testimonial { --cols: 1fr; --gap: 2.75rem; } }
.ht-testimonial { height: 100%; margin: 0; display: flex; flex-direction: column; }
.ht-testimonial::before { margin-bottom: 1.75rem; }
.ht-stars { margin: 0 0 0.9rem; font-size: 0.8rem; letter-spacing: 0.35em; color: var(--c-brass); }
.ht-testimonial__title { margin: 0 0 0.85rem; font-size: var(--t-h3); }
.ht-quote { margin: 0 0 1.5rem; color: var(--c-ivory-2); line-height: 1.7; }
.ht-byline { margin-top: auto; display: flex; flex-wrap: wrap; gap: 0.25rem 0.6rem; color: var(--c-ivory-3); }
.ht-byline strong { color: var(--c-ivory); font-weight: 500; }
.ht-byline span::before { content: "·"; margin-right: 0.6rem; color: var(--c-brass); }

/* --------------------------------------------------------------------------
   Closing CTA — the hide panel. Pleated cognac leather, stitched inside its
   edge. The one place the site spends its boldness.
   -------------------------------------------------------------------------- */
.block-cta { padding-block: var(--band); background: var(--c-canvas); }
.ht-cta {
  position: relative;
  isolation: isolate;
  max-width: 64rem;
  margin: 0 auto;
  padding: clamp(3.5rem, 7vw, 5.5rem) clamp(1.75rem, 6vw, 5rem);
  text-align: center;
  color: var(--c-ivory);
  background-color: var(--c-hide-panel);
  background-image:
    radial-gradient(120% 90% at 50% 0%, rgba(255, 214, 170, 0.14), rgba(0, 0, 0, 0) 60%),
    radial-gradient(140% 120% at 50% 120%, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0) 60%),
    repeating-linear-gradient(90deg,
      rgba(0, 0, 0, 0.22) 0,
      rgba(255, 225, 190, 0.06) 4px,
      rgba(0, 0, 0, 0) 34px,
      rgba(0, 0, 0, 0.1) 62px,
      rgba(0, 0, 0, 0.22) 68px);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
/* Hide grain */
.ht-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.35;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* Stitching inside the panel edge */
.ht-cta::after {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1.5px dashed rgba(239, 231, 214, 0.42);
  pointer-events: none;
}
.ht-cta h2 { margin: 0 auto 1rem; max-width: 36rem; font-size: var(--t-h2); color: var(--c-ivory); }
.ht-cta p { margin: 0 auto 2.25rem; max-width: 34rem; color: rgba(239, 231, 214, 0.86); line-height: 1.65; }
.ht-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.ht-cta .ht-btn--primary { background: var(--c-ivory); color: var(--c-hide-ink); }
.ht-cta .ht-btn--primary:hover { background: #fff8ea; }
.ht-cta .ht-btn--secondary { border-color: rgba(239, 231, 214, 0.55); }
.ht-cta .ht-btn--secondary:hover { border-color: var(--c-ivory); background: rgba(239, 231, 214, 0.06); }

/* --------------------------------------------------------------------------
   Inner pages: title band, documents, contact
   -------------------------------------------------------------------------- */
.block-title { padding: clamp(4rem, 9vw, 7rem) 0 clamp(2.5rem, 5vw, 4rem); }
.ht-page-hero { max-width: 46rem; margin: 0 auto; text-align: center; }
.ht-page-hero .ht-eyebrow { margin: 0 0 1.1rem; }
.ht-page-hero h1 { margin: 0; font-size: var(--t-h1); line-height: 1.04; }
.ht-lede { margin: 1.5rem auto 0; max-width: 38rem; font-size: 1.1875rem; line-height: 1.65; color: var(--c-ivory-2); }
.block-title--404 .ht-cta__actions { margin-top: 2.75rem; }

/* Documents (About, legal): title column + text column, seams between */
.block-paragraph--doc { padding-block: 0; }
.block-paragraph--doc:last-of-type,
.block-paragraph--doc:has(+ .block-footer) { padding-bottom: var(--band); }
.ht-doc {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 1.25rem clamp(2rem, 6vw, 6rem);
  max-width: 68rem;
  margin: 0 auto;
  padding-block: clamp(1.75rem, 3.5vw, 2.5rem);
}
.ht-doc::before { grid-column: 1 / -1; margin-bottom: clamp(1rem, 2.5vw, 1.75rem); }
.block-title + .block-paragraph--doc .ht-doc::before { display: none; }
.ht-doc__title { margin: 0; font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1.15; }
.ht-doc__body { max-width: 40rem; }
.ht-doc__title:only-child { grid-column: 1 / -1; }
@media (max-width: 800px) {
  .ht-doc { grid-template-columns: 1fr; }
}

/* Contact page: "Elérhetőségeink" panel + CMS cards in a side column */
.block-contact-cards { padding-top: 0; }
.ht-contact { max-width: 68rem; margin: 0 auto; }
.ht-contact--split {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 1.25rem;
  align-items: start;
}
.ht-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}
.ht-contact--split .ht-contact-grid { grid-template-columns: 1fr; }

.ht-contact-panel,
.ht-contact-card {
  position: relative;
  padding: clamp(1.75rem, 3.5vw, 2.5rem);
  background: var(--c-raised);
}
.ht-contact-panel::after,
.ht-contact-card::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px dashed var(--c-line-strong);
  pointer-events: none;
}
.ht-contact-panel { padding: clamp(2rem, 4.5vw, 3.25rem); }
.ht-contact-panel__title { margin: 0 0 1.5rem; font-size: var(--t-h2); }

.ht-contact-list { margin: 0; }
.ht-contact-list__row {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 0.25rem 1.5rem;
  align-items: baseline;
  padding-block: 1.1rem;
  border-top: 1px solid var(--c-line);
}
.ht-contact-list dt {
  font-family: var(--f-label);
  font-weight: 500;
  font-size: var(--t-label);
  letter-spacing: 0.1em;
  color: var(--c-brass);
}
.ht-contact-list dd { margin: 0; min-width: 0; }
.ht-contact-list__primary {
  font-family: var(--f-display);
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  line-height: 1.25;
  font-variant-numeric: lining-nums;
  color: var(--c-ivory);
  text-decoration: none;
  overflow-wrap: anywhere;
  display: inline-block;
  padding-block: 0.6rem;   /* ≥44px tap target */
  background: linear-gradient(var(--c-brass), var(--c-brass)) left calc(100% - 0.45rem) / 0 1px no-repeat;
  transition: background-size 0.35s var(--ease);
}
.ht-contact-list__primary:hover { background-size: 100% 1px; }
.ht-contact-list__address { font-style: normal; font-size: 1.1875rem; color: var(--c-ivory); }
.ht-contact-list__route {
  display: inline-block;
  margin-top: 0.2rem;
  padding-block: 0.6rem;
  font-size: var(--t-small);
  color: var(--c-link);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-color: rgba(219, 165, 120, 0.45);
}
.ht-contact-list__route:hover { color: var(--c-ivory); }

/* Booking strip: the appointment note and one-tap messaging */
.ht-contact-booking {
  margin-top: 1.25rem;
  padding: 1.75rem 0 0;
  border-top: 1px solid var(--c-line);
}
.ht-contact-booking__note {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 0.35rem;
  font-family: var(--f-display);
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--c-ivory);
}
.ht-contact-booking__note::before {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath d='M5 .8 9.2 5 5 9.2.8 5z' fill='none' stroke='%23c5a25a' stroke-width='1.1'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ht-contact-booking__lede { margin: 0 0 1.25rem; color: var(--c-ivory-2); }
.ht-contact-channels { display: flex; flex-wrap: wrap; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
.ht-channel {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 3rem;
  padding: 0.6rem 1.25rem 0.6rem 1rem;
  border: 1px solid var(--c-line-strong);
  border-radius: 1px;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.06em;
  color: var(--c-ivory);
  text-decoration: none;
  transition: border-color 0.2s var(--ease), background-color 0.2s var(--ease);
}
.ht-channel svg { width: 1.35rem; height: 1.35rem; color: var(--c-brass); flex: none; }
.ht-channel::after {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px dashed currentColor;
  opacity: 0;
  transition: opacity 0.25s var(--ease);
  pointer-events: none;
}
.ht-channel:hover { border-color: var(--c-brass); background: rgba(197, 162, 90, 0.07); }
.ht-channel:hover::after { opacity: 0.35; }

.ht-contact-card--wide { grid-column: 1 / -1; }
.ht-contact-card h2 { margin: 0 0 1rem; font-size: var(--t-h3); }
.ht-contact-card .ht-prose p { color: var(--c-ivory-2); }

@media (max-width: 900px) {
  .ht-contact--split { grid-template-columns: 1fr; }
  .ht-contact--split .ht-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .ht-contact-grid,
  .ht-contact--split .ht-contact-grid { grid-template-columns: 1fr; }
  .ht-contact-list__row { grid-template-columns: 1fr; }
  .ht-contact-channels { display: grid; grid-template-columns: 1fr; }
  .ht-channel { justify-content: center; }
}

/* --------------------------------------------------------------------------
   Services
   -------------------------------------------------------------------------- */
.block-selected--service { --cols: repeat(2, minmax(0, 1fr)); --gap: 1.5rem; padding-top: 0; }
@media (max-width: 760px) { .block-selected--service { --cols: 1fr; } }
.ht-service-card {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: clamp(2rem, 4vw, 2.75rem);
  background: var(--c-raised);
  transition: background-color 0.3s var(--ease);
}
.ht-service-card::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px dashed var(--c-line-strong);
  pointer-events: none;
  transition: border-color 0.3s var(--ease);
}
.ht-service-card:hover { background: #172b22; }
.ht-service-card:hover::before { border-color: var(--c-brass-soft); }
.ht-service-card__title { margin: 0; font-size: clamp(1.6rem, 2.3vw, 2rem); }
.ht-service-card__link { color: inherit; text-decoration: none; }
.ht-service-card__link::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.ht-service-card__link:focus-visible { box-shadow: none; }
.ht-service-card:has(.ht-service-card__link:focus-visible) { box-shadow: 0 0 0 2px var(--c-canvas), 0 0 0 4px var(--c-brass); }
.ht-service-card p { margin: 0; color: var(--c-ivory-2); line-height: 1.65; max-width: 30rem; }
.ht-service-card__more {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: var(--t-small);
  letter-spacing: 0.06em;
  color: var(--c-brass);
}
.ht-service-card__more::after { content: "→"; font-family: var(--f-body); transition: transform 0.25s var(--ease); }
.ht-service-card:hover .ht-service-card__more::after { transform: translateX(4px); }
.ht-service-card .add-to-cart { position: relative; z-index: 1; margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--c-line); }

/* Service detail */
.ht-service-detail { max-width: 44rem; margin: 0 auto; padding-bottom: var(--band); }
.ht-service-detail__body > p:first-child { font-size: 1.3125rem; line-height: 1.6; color: var(--c-ivory); }
.ht-service-detail__cart {
  margin-top: 3rem;
  padding: 1.75rem 2rem;
  background: var(--c-raised);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 2rem;
}
.ht-service-detail__cart-label { margin: 0; }
.block-service-detail { padding-top: 0; }

/* Cart controls (module markup; beats its inline <style> by specificity) */
.ht-service-card .add-to-cart,
.ht-service-detail__cart .add-to-cart { gap: 0.75rem; }
:is(.ht-service-card, .ht-service-detail__cart) .add-to-cart__qty {
  border: 1px solid var(--c-line-strong);
  border-radius: 1px;
}
:is(.ht-service-card, .ht-service-detail__cart) .add-to-cart__qty-btn {
  width: 2.5rem;
  height: 2.75rem;
  background: transparent;
  color: var(--c-ivory);
  font-size: 1.1rem;
}
:is(.ht-service-card, .ht-service-detail__cart) .add-to-cart__qty-btn:hover { background: rgba(239, 231, 214, 0.08); }
:is(.ht-service-card, .ht-service-detail__cart) .add-to-cart__qty-input {
  width: 2.75rem;
  height: 2.75rem;
  background: transparent;
  color: var(--c-ivory);
  border-color: var(--c-line-strong);
  font-family: var(--f-body);
  font-size: 1rem;
}
:is(.ht-service-card, .ht-service-detail__cart) .add-to-cart__btn {
  height: 2.75rem;
  padding: 0 1.4rem;
  border-radius: 1px;
  background: var(--c-hide);
  color: var(--c-ivory);
  font-family: var(--f-label);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.1em;
  transition: background-color 0.2s var(--ease);
}
:is(.ht-service-card, .ht-service-detail__cart) .add-to-cart__btn:hover { background: var(--c-hide-hover); opacity: 1; }

/* Floating cart + drawer */
.block-cart .block-cart__toggle {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 1px;
  background: var(--c-hide);
  color: var(--c-ivory);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
.block-cart .block-cart__badge { background: var(--c-brass); color: var(--c-canvas-deep); border-radius: 1px; }
.block-cart .block-cart__drawer {
  background: var(--c-raised);
  color: var(--c-ivory);
  border: 1px solid var(--c-line);
  border-radius: 1px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
}
.block-cart .block-cart__drawer[hidden] { display: none; }
.block-cart .block-cart__drawer-header { border-color: var(--c-line); font-family: var(--f-display); font-weight: 400; font-size: 1.25rem; }
.block-cart .block-cart__item { border-color: var(--c-line); }
.block-cart .block-cart__item-price,
.block-cart .block-cart__empty,
.block-cart .block-cart__message--info { color: var(--c-ivory-3); }
.block-cart .block-cart__item-qty-btn { background: transparent; color: var(--c-ivory); border-color: var(--c-line-strong); border-radius: 1px; }
.block-cart .block-cart__drawer-footer { border-color: var(--c-line); }
.block-cart .block-cart__checkout-btn {
  border-radius: 1px;
  background: var(--c-hide);
  color: var(--c-ivory);
  font-family: var(--f-label);
  font-weight: 500;
  letter-spacing: 0.1em;
}
.block-cart .block-cart__checkout-btn:hover { background: var(--c-hide-hover); opacity: 1; }

/* --------------------------------------------------------------------------
   Photo gallery
   -------------------------------------------------------------------------- */
.block-photo-gallery { padding-bottom: var(--band); }
.ht-photo-gallery__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}
.ht-photo-gallery__grid li { margin: 0; }
@media (max-width: 960px) { .ht-photo-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ht-photo-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }

/* --------------------------------------------------------------------------
   Footer + attribution
   -------------------------------------------------------------------------- */
#b6 { position: relative; background: var(--c-canvas-deep); color: var(--c-ivory-2); }
#b6::before { position: absolute; top: 0; left: 0; right: 0; color: rgba(197, 162, 90, 0.3); }
#b6 .ftr__inner {
  max-width: calc(var(--shell) + 2 * var(--gutter));
  padding: clamp(3.5rem, 7vw, 5.5rem) var(--gutter) 2rem;
  gap: 3.5rem;
}
#b6 .ftr__main { grid-template-columns: minmax(14rem, 1.1fr) minmax(0, 2.4fr); gap: 3rem clamp(2rem, 6vw, 6rem); }
#b6 .ftr__logo { height: 3.25rem; width: auto; max-height: none; }
#b6 .ftr__tagline {
  margin: 1.25rem 0 0;
  max-width: 17rem;
  font-family: var(--f-display);
  font-style: italic;
  font-size: 1.125rem;
  line-height: 1.45;
  color: var(--c-ivory-2);
  opacity: 1;
}
#b6 .ftr__social { display: flex; gap: 0.5rem; list-style: none; margin: 1.5rem 0 0; padding: 0; }
#b6 .ftr__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--c-line-strong);
  color: var(--c-ivory-2);
  transition: border-color 0.2s var(--ease), color 0.2s var(--ease);
}
#b6 .ftr__social-link:hover { border-color: var(--c-brass); color: var(--c-brass); }
#b6 .ftr__social-link svg { width: 1.2rem; height: 1.2rem; }
#b6 .ftr__columns { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 2rem; }
#b6 .ftr__col-title { margin: 0 0 1.1rem; font-family: var(--f-label); font-size: var(--t-label); line-height: 1.3; }
#b6 .ftr__menu, #b6 .ftr__legal-menu { list-style: none; margin: 0; padding: 0; }
#b6 .ftr__menu li + li { margin-top: 0.15rem; }
#b6 .ftr__menu a,
#b6 .ftr__col-html a,
#b6 .ftr__legal-menu a {
  display: inline-block;
  padding-block: 0.3rem;
  color: var(--c-ivory-2);
  text-decoration: none;
  transition: color 0.2s var(--ease);
}
#b6 .ftr__menu a:hover,
#b6 .ftr__col-html a:hover,
#b6 .ftr__legal-menu a:hover { color: var(--c-ivory); text-decoration: underline; text-underline-offset: 0.2em; text-decoration-color: var(--c-brass); }
#b6 .ftr__col-html { font-style: normal; }
#b6 .ftr__col-html p { margin: 0 0 0.35rem; font-size: 1rem; line-height: 1.55; color: var(--c-ivory-2); }
#b6 .ftr__legal {
  padding-top: 1.5rem;
  border-top: 1px solid var(--c-line);
  font-size: var(--t-small);
  opacity: 1;
  color: var(--c-ivory-3);
}
#b6 .ftr__legal-menu { display: flex; flex-wrap: wrap; gap: 0.25rem 1.75rem; }
#b6 .ftr__legal-menu a { color: var(--c-ivory-3); }
@media (max-width: 900px) {
  #b6 .ftr__main { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  #b6 .ftr__columns { grid-template-columns: 1fr 1fr; }
  #b6 .ftr__col[data-id="contact-company"] { grid-column: 1 / -1; }
}

.program-attribution {
  background: #07100d;
  border-top: 1px solid var(--c-line);
  padding: 1.25rem 0;
}
.program-attribution .block-shell {
  width: min(100% - 2 * var(--gutter), var(--shell));
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
}
.program-attribution-logos { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; opacity: 0.8; }
.program-attribution-logo { height: 34px; width: auto; }
.program-attribution-text { flex: 1 1 260px; font-size: 0.8125rem; line-height: 1.55; color: var(--c-ivory-3); }
.program-attribution-text p { margin: 0; }

/* --------------------------------------------------------------------------
   Lightbox (shared: photo-gallery block)
   -------------------------------------------------------------------------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(7, 14, 11, 0.95);
}
.lightbox[hidden] { display: none; }
body.lightbox-open { overflow: hidden; }
/* The floating cart sits exactly where the lightbox's "next" control lands
   on phones — step it aside while a photo is open. */
body.lightbox-open .block-cart { display: none; }
.lightbox__figure {
  margin: 0;
  max-width: min(92vw, 72rem);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  overflow-y: auto;
  text-align: center;
}
.lightbox__image { max-width: 100%; max-height: 66vh; object-fit: contain; }
.lightbox__image:not([src]) { display: none; }
.lightbox__empty { padding: 3rem 2rem; color: var(--c-ivory-2); }
.lightbox__counter {
  margin: 0;
  font-family: var(--f-label);
  font-weight: 500;
  font-size: var(--t-label);
  letter-spacing: 0.1em;
  color: var(--c-ivory-3);
}
.lightbox__thumbs { display: flex; gap: 0.5rem; width: 100%; overflow-x: auto; padding-bottom: 0.25rem; scrollbar-width: thin; scrollbar-color: rgba(239, 231, 214, 0.3) transparent; }
.lightbox__thumbs::before, .lightbox__thumbs::after { content: ""; margin: auto; }
.lightbox__thumb {
  flex: 0 0 auto;
  width: 4.5rem;
  height: 3rem;
  padding: 0;
  border: 1px solid transparent;
  overflow: hidden;
  background: none;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s var(--ease), border-color 0.2s var(--ease);
}
.lightbox__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lightbox__thumb:hover { opacity: 1; }
.lightbox__thumb.is-active { opacity: 1; border-color: var(--c-brass); }
.lightbox__close, .lightbox__prev, .lightbox__next {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border: 1px solid rgba(239, 231, 214, 0.25);
  border-radius: 1px;
  background: rgba(7, 14, 11, 0.5);
  color: var(--c-ivory);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.2s var(--ease), color 0.2s var(--ease);
}
.lightbox__close:hover, .lightbox__prev:hover, .lightbox__next:hover { border-color: var(--c-brass); color: var(--c-brass); }
.lightbox__close { top: 1.25rem; right: 1.25rem; }
.lightbox__prev { left: 1.25rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 1.25rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) {
  .lightbox { padding: 1rem; }
  .lightbox__prev, .lightbox__next { top: auto; bottom: 1rem; transform: none; }
  .lightbox__thumb { width: 3.5rem; height: 2.4rem; }
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
  }
}

/* --------------------------------------------------------------------------
   Stitched-on photographs (.ht-patch)
   Photos are treated like leather patches sewn onto the canvas: a row of
   slanted saddle stitches straddles the photo's edge — half on the image,
   half on the green — with a slight lift and a pucker of shadow inside the
   seam. Markup: .ht-patch > .ht-patch__clip > img (the clip keeps hover
   zoom inside the patch while the stitches overhang it).
   The stitch tiles are drawn twice (a dark 1px-offset copy for the needle
   hole shadow, then the thread), in ivory and in brass for hover.
   -------------------------------------------------------------------------- */
:root {
  --patch-h: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='10'%3E%3Cpath d='M6.2 9.2 13.2 2.2' stroke='%23000' stroke-opacity='.6' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M5.5 8.5 12.5 1.5' stroke='%23e9dfc9' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  --patch-v: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='18'%3E%3Cpath d='M2.2 6.2 9.2 13.2' stroke='%23000' stroke-opacity='.6' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M1.5 5.5 8.5 12.5' stroke='%23e9dfc9' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  --patch-h-brass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='10'%3E%3Cpath d='M6.2 9.2 13.2 2.2' stroke='%23000' stroke-opacity='.6' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M5.5 8.5 12.5 1.5' stroke='%23d6b46a' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  --patch-v-brass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='18'%3E%3Cpath d='M2.2 6.2 9.2 13.2' stroke='%23000' stroke-opacity='.6' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M1.5 5.5 8.5 12.5' stroke='%23d6b46a' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  --patch-inset: 0px;   /* seam centred on the photo edge: each stitch crosses from photo to canvas */
}
.ht-patch {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  background: var(--c-raised);
  box-shadow: 0 1px 0 rgba(239, 231, 214, 0.05), 0 14px 28px -16px rgba(0, 0, 0, 0.85);
}
.ht-patch__clip {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.ht-patch__clip img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s var(--ease), filter 0.5s var(--ease);
}
/* Pucker: the leather dips slightly where the seam pulls it down. */
.ht-patch::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.35),
    inset 0 0 0 calc(var(--patch-inset) + 1px) rgba(0, 0, 0, 0.12),
    inset 0 0 22px rgba(0, 0, 0, 0.35);
}
/* The seam, centred on a line --patch-inset inside the edge (0 = on the
   edge itself); tiles are 10px deep, so the box sits 5px either side. */
.ht-patch::after {
  content: "";
  position: absolute;
  inset: calc(var(--patch-inset) - 5px);
  z-index: 2;
  pointer-events: none;
  background:
    var(--patch-h) left top / 18px 10px round no-repeat,
    var(--patch-h) left bottom / 18px 10px round no-repeat,
    var(--patch-v) left top / 10px 18px no-repeat round,
    var(--patch-v) right top / 10px 18px no-repeat round;
  transition: opacity 0.3s var(--ease);
}
.ht-patch.is-brass::after,
a:hover > .ht-patch::after,
.ht-ref-card:hover .ht-patch::after,
button.ht-patch:hover::after {
  background:
    var(--patch-h-brass) left top / 18px 10px round no-repeat,
    var(--patch-h-brass) left bottom / 18px 10px round no-repeat,
    var(--patch-v-brass) left top / 10px 18px no-repeat round,
    var(--patch-v-brass) right top / 10px 18px no-repeat round;
}

/* Reference cards */
.ht-ref-card__img .ht-patch__clip { aspect-ratio: 4 / 3; height: auto; }
.ht-ref-card__img img { filter: saturate(0.92); }
.ht-ref-card:hover .ht-ref-card__img img { transform: scale(1.045); filter: saturate(1); }

/* Editorial photo: a larger patch, seam set further in */
.ht-editorial__media { --patch-inset: 0px; }
.ht-editorial__media .ht-patch__clip { aspect-ratio: 4 / 5; height: auto; }
@media (max-width: 860px) { .ht-editorial__media .ht-patch__clip { aspect-ratio: 4 / 3; } }

/* Gallery thumbnails: small patches, seam close to the edge */
.ht-photo-gallery__item { width: 100%; cursor: zoom-in; }
.ht-photo-gallery__item .ht-patch__clip { aspect-ratio: 3 / 2; height: auto; }
.ht-photo-gallery__item:hover img { transform: scale(1.04); }
.ht-photo-gallery__item:focus-visible { box-shadow: 0 0 0 2px var(--c-canvas), 0 0 0 4px var(--c-brass); }

/* --------------------------------------------------------------------------
   Rhythm adjustments between adjacent blocks
   -------------------------------------------------------------------------- */
/* A title band already closes with its ornament — the block after it
   doesn't need a full band of air on top as well. */
.block-title + .block-section { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
/* Testimonial cards carry their own seam; the head's would double it. */
.block-selected--testimonial .ht-section-head::after { display: none; }
/* Small gallery patches on phones: quieter thread, more room between. */
@media (max-width: 560px) {
  .ht-photo-gallery__item::after { opacity: 0.55; }
}
