/* ft-tokens.css */
/* Final Touch tokens, generated from the design system's tokens.json (Gallery theme, with Evening overrides),
   plus the type classes the components use and a few landing-page helpers. */

:root {
  --surface-100: #f6f2ec;
  --surface-200: #ede7de;
  --surface-300: #e2d9cc;
  --surface-raised: #fcfaf7;
  --surface-deep: #1c1a17;
  --ink: #1e1b18;
  --ink-muted: #5f574d;
  --ink-on-deep: #f2ede6;
  --ink-muted-on-deep: #b3a999;
  --line: #dcd3c6;
  --line-strong: #83796c;
  --line-on-deep: #3a352f;
  --champagne: #d0c2b0;
  --champagne-hover: #e2d7c8;
  --on-champagne: #1e1b18;
  --bronze: #735535;
  --bronze-strong: #5e452b;
  --action: #1e1b18;
  --action-hover: #3a342e;
  --on-action: #f6f2ec;
  --focus: #735535;
  --focus-on-deep: #d0c2b0;
  --danger: #a3392c;
  --success: #386547;
  --scrim: #12100e99;
  --scrim-soft: #12100e4d;

  --font-display: "Noto Serif Display", "Iowan Old Style", Georgia, serif;
  --font-sans: Jost, "Avenir Next", "Helvetica Neue", Arial, sans-serif;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 144px;

  --radius-none: 0px;
  --radius-s: 2px;
  --radius-round: 9999px;
  --shadow-float: 0 12px 32px -8px #1e1b1829;

  --container-max: 1320px;
  --container-text: 720px;
  --gutter-l: 56px;
  --gutter-s: 20px;
  --header-h: 88px;
  --header-h-s: 64px;
  --ratio-tile: 4 / 5;
  --ratio-hero: 16 / 9;
}

[data-theme="evening"] {
  --surface-100: #151311;
  --surface-200: #1d1a17;
  --surface-300: #28241f;
  --surface-raised: #1f1c19;
  --surface-deep: #0d0c0b;
  --ink: #f2ede6;
  --ink-muted: #b3a999;
  --line: #36312b;
  --line-strong: #7d7366;
  --line-on-deep: #2a2622;
  --bronze: #c9a57a;
  --bronze-strong: #ddbf98;
  --action: #d0c2b0;
  --action-hover: #e2d7c8;
  --on-action: #151311;
  --focus: #c9a57a;
  --danger: #ec8f80;
  --success: #8dc4a0;
  --shadow-float: 0 12px 32px -8px #000000b3;
}

/* Type styles */
.display-xl { font-family: var(--font-display); font-size: 88px; line-height: 92px; font-weight: 300; letter-spacing: -0.02em; }
.display-l  { font-family: var(--font-display); font-size: 64px; line-height: 70px; font-weight: 300; letter-spacing: -0.015em; }
.display-m  { font-family: var(--font-display); font-size: 44px; line-height: 52px; font-weight: 300; letter-spacing: -0.01em; }
.display-s  { font-family: var(--font-display); font-size: 30px; line-height: 38px; font-weight: 400; letter-spacing: -0.005em; }
.display-xs { font-family: var(--font-display); font-size: 24px; line-height: 32px; font-weight: 400; }
.quote      { font-family: var(--font-display); font-size: 30px; line-height: 42px; font-weight: 300; font-style: italic; }
.lede       { font-family: var(--font-sans); font-size: 20px; line-height: 32px; font-weight: 300; }
.body       { font-family: var(--font-sans); font-size: 17px; line-height: 28px; font-weight: 400; }
.body-s     { font-family: var(--font-sans); font-size: 15px; line-height: 24px; font-weight: 400; }
.eyebrow    { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; }
.label      { font-family: var(--font-sans); font-size: 13px; line-height: 16px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; }
.caption    { font-family: var(--font-sans); font-size: 13px; line-height: 20px; font-weight: 400; letter-spacing: 0.01em; }

/* Landing-page helpers */
.lp-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; min-height: 900px; }
.lp-hero__img { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-hero__scrim { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--scrim) 0%, var(--scrim) 30%, transparent 78%), linear-gradient(0deg, var(--scrim) 0%, transparent 55%), var(--scrim-soft); }
.lp-hero h1 em, .lp-statement em { font-style: italic; }
.lp-img { display: block; width: 100%; object-fit: cover; }
.lp-rows > * { border-top: 1px solid var(--line); }
.lp-rows > *:last-child { border-bottom: 1px solid var(--line); }
.ft-deep .lp-rows > * { border-color: var(--line-on-deep); }
.lp-svg { display: block; flex: none; }
.lp-link-plain { color: inherit; text-decoration: none; }
.lp-link-plain:hover { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Client logo (gold, transparent PNG): only on dark grounds, the hero header and the footer */
.lp-logo { display: block; flex: none; width: auto; height: 52px; }
.lp-logo--l { height: 84px; }

/* Smooth scrolling for every in-page CTA */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
[id] { scroll-margin-top: 24px; }

/* Square controls: on deep grounds (lightbox) and on light grounds (review row) */
.lp-ctrl { box-sizing: border-box; width: 48px; height: 48px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--ink-on-deep); border: 1px solid var(--line-on-deep); border-radius: var(--radius-none); cursor: pointer; transition: border-color .24s cubic-bezier(.2,0,0,1); }
.lp-ctrl:hover { border-color: var(--ink-muted-on-deep); }
.lp-ctrl:focus-visible { outline: 2px solid var(--focus-on-deep); outline-offset: 3px; }
.lp-arrow { box-sizing: border-box; width: 48px; height: 48px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--ink); border: 1px solid var(--line-strong); border-radius: var(--radius-none); cursor: pointer; transition: border-color .24s cubic-bezier(.2,0,0,1); }
.lp-arrow:hover { border-color: var(--ink); }
.lp-arrow:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

/* Header directions link (showroom page) */
.lp-hdir { display: inline-flex; align-items: center; gap: var(--space-2); }

/* Photo figures */
.lp-fig { margin: 0; display: flex; flex-direction: column; gap: var(--space-3); min-height: 0; }
.lp-fig > img { flex: 1 1 auto; min-height: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-fig > figcaption { color: var(--ink-muted); }
.ft-deep .lp-fig > figcaption { color: var(--ink-muted-on-deep); }

/* Full-width photo break between text sections */
.lp-break { position: relative; margin: 0; height: 560px; overflow: hidden; background: var(--surface-deep); }
.lp-break > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-break > figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--space-8) var(--gutter-l) var(--space-5); color: var(--ink-on-deep); background: linear-gradient(0deg, var(--scrim) 0%, transparent 100%); }

/* Hero with the form beside the copy (kitchen and renovation pages) */
.lp-hero--form { min-height: 0; align-items: stretch; }
.lp-hero--form .lp-hero__scrim { background: linear-gradient(90deg, var(--scrim) 0%, var(--scrim) 40%, var(--scrim-soft) 100%), var(--scrim-soft); }
.lp-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: var(--space-8); align-items: center; width: 100%; padding-top: calc(var(--header-h) + var(--space-5)); padding-bottom: var(--space-8); }
.lp-hero__form .ft-leadform { max-width: none; padding: var(--space-6); }
.lp-hero__form .ft-leadform__head { margin-bottom: var(--space-5); }
.lp-hero__form .ft-leadform__grid { gap: var(--space-4); }
.lp-hero__form .ft-leadform__foot { margin-top: var(--space-5); }
.lp-form textarea.ft-field__control { min-height: 76px; }

/* Trust badges: hero (single color on deep), under the form (compact), footer (chips) */
.lp-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-6); }
.lp-badge { display: inline-flex; align-items: center; gap: var(--space-2); color: inherit; text-decoration: none; white-space: nowrap; font-family: var(--font-sans); font-size: 14px; line-height: 20px; }
a.lp-badge:hover { color: inherit; }
a.lp-badge:hover .lp-badge__name { text-decoration: underline; text-underline-offset: 3px; }
a.lp-badge:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.ft-deep a.lp-badge:focus-visible { outline-color: var(--focus-on-deep); }
.lp-badge__logo { display: block; flex: none; }
.lp-badge__name { font-weight: 500; letter-spacing: 0.02em; }
.lp-badge__score { font-weight: 500; }
.lp-badge__count { color: var(--ink-muted); }
.ft-deep .lp-badge__count { color: var(--ink-muted-on-deep); }
.lp-badge__star { display: block; flex: none; color: var(--bronze); }
.ft-deep .lp-badge__star { color: var(--champagne); }
.lp-badges--hero { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line-on-deep); color: var(--ink-on-deep); }
.lp-badges--hero .lp-badge__logo--g { filter: brightness(0) invert(1); }
.lp-badges--compact { gap: var(--space-2) var(--space-5); }
.lp-badges--compact .lp-badge { font-size: 13px; line-height: 18px; }
.lp-badges--chips { gap: var(--space-3); }
.lp-badges--chips .lp-badge { padding: var(--space-3) var(--space-4); background: var(--surface-raised); color: var(--ink); border: 1px solid var(--line); }
.lp-badges--chips a.lp-badge:hover { color: var(--ink); border-color: var(--line-strong); }
.lp-badges--chips .lp-badge__count { color: var(--ink-muted); }
.lp-badges--chips .lp-badge__star { color: var(--bronze); }
.lp-license { margin: var(--space-4) 0 0; color: var(--ink-on-deep); }

/* Expanding category panels */
.lp-panels { display: flex; gap: var(--space-3); height: 600px; margin-top: var(--space-8); }
.lp-panel { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; background: var(--surface-deep); color: var(--ink-on-deep); transition: flex-grow .4s cubic-bezier(.2,0,0,1); }
.lp-panel[data-open="true"] { flex-grow: 5; }
.lp-panel__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-panel__shade { position: absolute; inset: 0; background: linear-gradient(0deg, var(--scrim) 0%, var(--scrim-soft) 60%, var(--scrim-soft) 100%); }
.lp-panel[data-open="true"] .lp-panel__shade { background: linear-gradient(0deg, var(--scrim) 0%, var(--scrim) 22%, transparent 62%); }
.lp-panel__tab { position: absolute; inset: 0; box-sizing: border-box; display: flex; align-items: flex-end; justify-content: center; width: 100%; margin: 0; padding: var(--space-6) 0; background: none; border: 0; color: var(--ink-on-deep); cursor: pointer; transition: opacity .2s ease; }
.lp-panel__tab > span { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.lp-panel__tab:focus-visible { outline: 2px solid var(--focus-on-deep); outline-offset: -6px; }
.lp-panel[data-open="true"] .lp-panel__tab { opacity: 0; pointer-events: none; }
.lp-panel__body { position: absolute; left: 0; bottom: 0; box-sizing: border-box; width: 100%; max-width: 560px; padding: var(--space-7); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.lp-panel[data-open="true"] .lp-panel__body { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease .25s, transform .4s cubic-bezier(.2,0,0,1) .2s, visibility 0s; }
.lp-panel__title { margin: 0; color: var(--ink-on-deep); }
.lp-panel__desc { margin: var(--space-3) 0 var(--space-5); color: var(--ink-on-deep); }

/* Filtered project gallery: justified rows, 12 photos at a time */
.lp-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-7); }
.lp-tab { box-sizing: border-box; height: 44px; padding: 0 var(--space-5); background: transparent; color: var(--ink); border: 1px solid var(--line-strong); border-radius: var(--radius-none); cursor: pointer; transition: background-color .24s cubic-bezier(.2,0,0,1), border-color .24s cubic-bezier(.2,0,0,1), color .24s cubic-bezier(.2,0,0,1); }
.lp-tab:hover { border-color: var(--ink); }
.lp-tab[aria-pressed="true"] { background: var(--action); border-color: var(--action); color: var(--on-action); }
.lp-tab:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-just { --rh: 250px; list-style: none; margin: var(--space-6) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.lp-just__item { position: relative; min-width: 0; background: var(--surface-300); }
.lp-just__fill { flex: 1000 1 0px; height: 0; }
.lp-just__btn { position: relative; display: block; width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden; background: none; border: 0; cursor: zoom-in; }
.lp-just__btn img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,0,0,1); }
.lp-just__btn:hover img { transform: scale(1.03); }
.lp-just__btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-just__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--space-6) var(--space-4) var(--space-3); color: var(--ink-on-deep); text-align: left; background: linear-gradient(0deg, var(--scrim) 0%, transparent 100%); opacity: 0; transition: opacity .24s ease; }
.lp-just__btn:hover .lp-just__cap, .lp-just__btn:focus-visible .lp-just__cap { opacity: 1; }
.lp-more { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-5); margin-top: var(--space-7); padding-top: var(--space-6); border-top: 1px solid var(--line); }

/* Lightbox */
.lp-lb { position: fixed; inset: 0; z-index: 100; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: var(--surface-deep); color: var(--ink-on-deep); }
.lp-lb__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); }
.lp-lb__count { margin: 0; color: var(--ink-muted-on-deep); }
.lp-lb__stage { position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; padding: 0 var(--space-10); }
.lp-lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; gap: var(--space-4); max-width: 100%; min-height: 0; }
.lp-lb__img { display: block; max-width: 100%; max-height: calc(100vh - 190px); width: auto; height: auto; object-fit: contain; }
.lp-lb__cap { margin: 0; color: var(--ink-muted-on-deep); }
.lp-lb__end { max-width: 560px; text-align: center; }
.lp-lb__navs { position: absolute; left: var(--space-6); right: var(--space-6); top: 50%; margin-top: -24px; display: flex; justify-content: space-between; pointer-events: none; }
.lp-lb__navs > * { pointer-events: auto; }

/* Render-to-real slider */
.lp-compare { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface-300); touch-action: pan-y; cursor: ew-resize; -webkit-user-select: none; user-select: none; }
.lp-compare__real { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.lp-compare__render { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0); background-color: var(--surface-300); background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 48px 48px; }
.lp-compare__ph { position: absolute; top: 0; bottom: 0; left: 0; width: var(--pos, 50%); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3); padding: var(--space-5); text-align: center; color: var(--ink-muted); overflow: hidden; }
.lp-compare__range { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
.lp-compare__line { position: absolute; top: 0; bottom: 0; left: var(--pos, 50%); width: 2px; margin-left: -1px; background: var(--surface-raised); pointer-events: none; }
.lp-compare__knob { position: absolute; top: 50%; left: 50%; box-sizing: border-box; width: 48px; height: 48px; margin: -24px 0 0 -24px; display: flex; align-items: center; justify-content: center; background: var(--surface-raised); color: var(--ink); border: 1px solid var(--line-strong); }
.lp-compare__range:focus-visible ~ .lp-compare__line .lp-compare__knob { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-compare__tag { position: absolute; top: var(--space-4); padding: var(--space-2) var(--space-3); background: var(--surface-deep); color: var(--ink-on-deep); pointer-events: none; }
.lp-compare__tag--l { left: var(--space-4); }
.lp-compare__tag--r { right: var(--space-4); }
.lp-checks { list-style: none; margin: var(--space-7) 0 0; padding: 0; }
.lp-checks > li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4) 0; border-top: 1px solid var(--line); }
.lp-checks > li:last-child { border-bottom: 1px solid var(--line); }
.lp-checks__num { font-family: var(--font-display); font-size: 24px; line-height: 28px; font-weight: 300; color: var(--bronze); }

/* Project spotlight */
.lp-spot { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); align-items: start; }
.lp-spot__open { display: block; width: 100%; margin: 0; padding: 0; overflow: hidden; aspect-ratio: 3 / 2; background: var(--surface-300); border: 0; cursor: zoom-in; }
.lp-spot__open img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-spot__open:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-thumbs { list-style: none; margin: var(--space-3) 0 0; padding: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--space-2); }
.lp-thumbs--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.lp-thumb { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; margin: 0; padding: 0; overflow: hidden; background: var(--surface-300); border: 0; cursor: pointer; }
.lp-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-thumb[aria-current="true"]::after { content: ""; position: absolute; inset: 0; border: 2px solid var(--ink); }
.lp-thumb:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.lp-facts { margin: var(--space-7) 0 0; padding: 0; }
.lp-facts > div { padding: var(--space-4) 0; border-top: 1px solid var(--line); }
.lp-facts > div:last-child { border-bottom: 1px solid var(--line); }
.lp-facts dt { color: var(--bronze); }
.lp-facts dd { margin: var(--space-2) 0 0; }

/* Facts strip */
.lp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-5); margin: var(--space-7) 0 0; }
.lp-stat { margin: 0; padding-top: var(--space-4); border-top: 1px solid var(--line-strong); }
.lp-stat__num { display: block; font-family: var(--font-display); font-size: 44px; line-height: 52px; font-weight: 300; color: var(--bronze); }
.lp-stat__label { display: block; margin-top: var(--space-2); color: var(--ink-muted); }

/* Reviews: light band, rating summaries, slow auto-scrolling row of cards */
.lp-reviews { padding: var(--space-8) 0; background: var(--surface-200); }
.lp-reviews__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-6); }
.lp-ratings { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-7); }
.lp-rating { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: var(--space-3); align-items: center; padding-bottom: var(--space-3); color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-strong); transition: border-color .24s cubic-bezier(.2,0,0,1); }
.lp-rating:hover { color: var(--ink); border-bottom-color: var(--ink); }
.lp-rating:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.lp-rating__num { grid-row: 1 / span 2; font-family: var(--font-display); font-size: 40px; line-height: 44px; font-weight: 300; }
.lp-rating__name { display: inline-flex; align-items: center; gap: var(--space-2); }
.lp-rating__count { color: var(--ink-muted); }
.lp-rtrack { display: flex; gap: var(--space-5); margin-top: var(--space-6); overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; cursor: grab; -webkit-user-select: none; user-select: none; }
.lp-rtrack::-webkit-scrollbar { display: none; }
.lp-rcard { box-sizing: border-box; flex: 0 0 calc((100% - 2 * var(--space-5)) / 3); display: flex; flex-direction: column; gap: var(--space-4); margin: 0; padding: var(--space-6); background: var(--surface-raised); border: 1px solid var(--line); }
.lp-rcard__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: 24px; }
.lp-rcard__src { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--ink); }
.lp-rcard__stars { display: inline-flex; gap: 2px; color: var(--bronze); }
.lp-rcard__nostars { color: var(--ink-muted); }
.lp-rcard__q { margin: 0; color: var(--ink); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.lp-rcard__q[data-open="true"] { display: block; -webkit-line-clamp: unset; overflow: visible; }
.lp-rcard__more { align-self: flex-start; margin: 0; padding: var(--space-1) 0; background: none; border: 0; border-bottom: 1px solid var(--line-strong); color: var(--ink); cursor: pointer; }
.lp-rcard__more:hover { border-bottom-color: var(--ink); }
.lp-rcard__more:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-rcard__who { margin-top: auto; padding-top: var(--space-4); border-top: 1px solid var(--line); }
.lp-rcard__name { display: block; color: var(--ink); }
.lp-rcard__meta { display: block; margin-top: var(--space-1); color: var(--ink-muted); }
.lp-rnav { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-6); }

/* Map placeholder until the embed goes in on the live page */
.lp-map { position: relative; box-sizing: border-box; aspect-ratio: 4 / 3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3); padding: var(--space-6); text-align: center; color: var(--ink-muted); background-color: var(--surface-300); background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 64px 64px; }

/* Three-action sticky bar (showroom page) */
.lp-sticky3 { grid-template-columns: 1fr 1fr 1.3fr; }

@media (min-width: 1024px) {
  .lp-hide-lg { display: none !important; }
}

@media (max-width: 1023px) {
  .lp-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 0; }
  .lp-hero__copy { padding-bottom: var(--space-8); }
  .lp-hero__form { margin: 0 calc(-1 * var(--gutter-l)); padding: var(--space-8) var(--gutter-l); background: var(--surface-200); color: var(--ink); }
  .lp-hero--form .lp-hero__scrim { background: var(--scrim); }
  .lp-spot { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
  .lp-rcard { flex-basis: calc((100% - var(--space-5)) / 2); }
  .lp-lb__stage { padding: 0 var(--space-9); }
}

@media (max-width: 767px) {
  .lp-fig > img { flex: none; height: auto; aspect-ratio: 3 / 2; }
  .lp-logo { height: 40px; }
  .lp-logo--l { height: 64px; }
  .lp-hero { min-height: 720px; }
  .lp-hero--form { min-height: 0; }
  .lp-hero__scrim { background: linear-gradient(0deg, var(--scrim) 0%, var(--scrim) 45%, transparent 90%), var(--scrim-soft); }
  .lp-hero--form .lp-hero__scrim { background: var(--scrim); }
  .lp-hero__form { margin: 0 calc(-1 * var(--gutter-s)); padding: var(--space-7) var(--gutter-s); }
  .lp-actions > * { width: 100%; }
  .lp-actions .ft-btn { width: 100%; }
  .lp-pad-sticky { padding-bottom: 60px; }
  .lp-break { height: 300px; }
  .lp-break > figcaption { padding: var(--space-7) var(--gutter-s) var(--space-4); }
  .lp-badges--hero { gap: var(--space-3) var(--space-5); }
  .lp-panels { flex-direction: column; height: auto; gap: var(--space-2); margin-top: var(--space-7); }
  .lp-panel { flex: none; height: 72px; transition: height .4s cubic-bezier(.2,0,0,1); }
  .lp-panel[data-open="true"] { height: 440px; }
  .lp-panel__tab { align-items: center; justify-content: flex-start; padding: 0 var(--space-5); }
  .lp-panel__tab > span { writing-mode: horizontal-tb; transform: none; }
  .lp-panel__body { padding: var(--space-5); }
  .lp-tabs { flex-wrap: nowrap; overflow-x: auto; margin-left: calc(-1 * var(--gutter-s)); margin-right: calc(-1 * var(--gutter-s)); padding: 0 var(--gutter-s) var(--space-1); scrollbar-width: none; }
  .lp-tabs::-webkit-scrollbar { display: none; }
  .lp-tab { flex: none; }
  .lp-just { --rh: 140px; gap: var(--space-2); }
  .lp-just__cap { display: none; }
  .lp-lb__stage { padding: 0 var(--space-2); }
  .lp-lb__img { max-height: calc(100vh - 220px); }
  .lp-lb__navs { position: static; margin: 0; justify-content: center; gap: var(--space-4); padding: var(--space-4) 0 calc(var(--space-4) + env(safe-area-inset-bottom)); }
  .lp-thumbs, .lp-thumbs--6 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lp-reviews { padding: var(--space-8) 0; }
  .lp-rating__num { font-size: 32px; line-height: 36px; }
  .lp-rtrack { gap: var(--space-4); margin-left: calc(-1 * var(--gutter-s)); margin-right: calc(-1 * var(--gutter-s)); padding: 0 var(--gutter-s); scroll-padding: 0 var(--gutter-s); }
  .lp-rcard { flex-basis: 86%; padding: var(--space-5); }
  .lp-rnav { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lp-panel, .lp-panel__body, .lp-panel__tab, .lp-just__btn img, .lp-just__cap { transition: none !important; }
  .lp-just__btn:hover img { transform: none; }
}

/* Hero with the form: keep the copy and form clear of the transparent header.
   Two classes, so this wins over .ft-container's padding shorthand in the component stylesheet. */
.lp-hero .lp-hero__grid { padding-top: calc(var(--header-h) + var(--space-6)); padding-bottom: var(--space-8); }

/* Rating stars: a gold row clipped to the score, over a pale row */
:root { --lp-star: #f4b400; }
.lp-stars { position: relative; display: inline-block; flex: none; width: 80px; height: 16px; line-height: 0; color: var(--line); }
.lp-stars__svg { display: block; width: 80px; height: 16px; fill: currentColor; }
.lp-stars__on { position: absolute; top: 0; left: 0; bottom: 0; width: var(--r, 100%); overflow: hidden; color: var(--lp-star); }

/* Trust strip (hero and footer): real platform logos on a light card */
.lp-trust { list-style: none; max-width: 880px; margin: var(--space-7) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--surface-raised); border: 1px solid var(--line); color: var(--ink); }
footer .lp-trust { max-width: none; margin: 0; }
.lp-trust > li { min-width: 0; }
.lp-trust > li + li { border-left: 1px solid var(--line); }
.lp-trust__item { box-sizing: border-box; display: flex; flex-direction: column; gap: var(--space-2); height: 100%; padding: var(--space-4); color: var(--ink); text-decoration: none; transition: background-color .24s cubic-bezier(.2,0,0,1); }
.lp-trust__item:hover { color: var(--ink); background: var(--surface-100); }
.lp-trust__item:focus-visible { outline: 2px solid var(--focus); outline-offset: -4px; }
.lp-trust__logo { display: flex; align-items: center; gap: var(--space-2); height: 40px; }
.lp-trust__g { display: block; width: 22px; height: 22px; }
.lp-trust__brand { font-family: var(--font-sans); font-size: 17px; line-height: 20px; font-weight: 500; }
.lp-trust__houzz { display: block; width: auto; height: 20px; }
.lp-trust__yelp { display: block; width: auto; height: 34px; }
.lp-trust__bbb { display: block; width: auto; height: 40px; }
.lp-trust__score { display: flex; align-items: center; gap: var(--space-2); font-family: var(--font-sans); font-size: 16px; line-height: 20px; font-weight: 500; }
.lp-trust__count { font-family: var(--font-sans); font-size: 13px; line-height: 18px; color: var(--ink-muted); }

/* Compact logo row under each form's submit button */
.lp-minitrust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); }
.lp-minitrust__item { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); text-decoration: none; font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 500; }
.lp-minitrust__item:hover { color: var(--ink); }
.lp-minitrust__item:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-minitrust__g { display: block; width: 16px; height: 16px; }
.lp-minitrust__houzz { display: block; width: auto; height: 13px; }
.lp-minitrust__yelp { display: block; width: auto; height: 24px; }
.lp-minitrust__bbb { display: block; width: auto; height: 26px; }
.lp-minitrust .lp-stars, .lp-minitrust .lp-stars__svg { width: 65px; height: 13px; }

/* Reviews band: one card per platform; review cards appear below once texts are added */
.lp-pcards { list-style: none; margin: var(--space-7) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.lp-pcard { box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); height: 100%; padding: var(--space-6); background: var(--surface-raised); border: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: border-color .24s cubic-bezier(.2,0,0,1); }
.lp-pcard:hover { color: var(--ink); border-color: var(--line-strong); }
.lp-pcard:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.lp-pcard__logo { display: flex; align-items: center; gap: var(--space-2); height: 44px; margin-bottom: var(--space-3); }
.lp-pcard__g { display: block; width: 26px; height: 26px; }
.lp-pcard__brand { font-family: var(--font-sans); font-size: 20px; line-height: 24px; font-weight: 500; }
.lp-pcard__houzz { display: block; width: auto; height: 24px; }
.lp-pcard__yelp { display: block; width: auto; height: 42px; }
.lp-pcard__bbb { display: block; width: auto; height: 44px; }
.lp-pcard__num { font-family: var(--font-display); font-size: 44px; line-height: 52px; font-weight: 300; }
.lp-pcard .lp-stars, .lp-pcard .lp-stars__svg { width: 100px; height: 20px; }
.lp-pcard__count { color: var(--ink-muted); }
.lp-pcard__link { margin-top: auto; padding-top: var(--space-4); color: var(--ink); border-bottom: 1px solid var(--line-strong); }
.lp-pcard:hover .lp-pcard__link { border-bottom-color: var(--ink); }
.lp-pcards + .lp-rtrack { margin-top: var(--space-7); }
.lp-rcard__logo { display: block; width: auto; height: 20px; }

@media (max-width: 1023px) {
  .lp-hero .lp-hero__grid { padding-bottom: 0; }
  .lp-pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .lp-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-trust > li + li { border-left: 0; }
  .lp-trust > li:nth-child(even) { border-left: 1px solid var(--line); }
  .lp-trust > li:nth-child(n+3) { border-top: 1px solid var(--line); }
  .lp-trust__item { padding: var(--space-3) var(--space-4); }
  .lp-pcards { gap: var(--space-3); }
  .lp-pcard { padding: var(--space-5); }
  .lp-pcard__num { font-size: 36px; line-height: 44px; }
}

/* Beside the hero form the copy column is narrow, so the trust strip sits two by two there */
.lp-hero__copy .lp-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lp-hero__copy .lp-trust > li + li { border-left: 0; }
.lp-hero__copy .lp-trust > li:nth-child(even) { border-left: 1px solid var(--line); }
.lp-hero__copy .lp-trust > li:nth-child(n+3) { border-top: 1px solid var(--line); }

/* Partner brands: the client's own white logo artwork, in full color on a deep band.
   Heights are set per logo so each carries about the same visual weight. */
.lp-brandband { padding: var(--space-7) 0; border-top: 1px solid var(--line-on-deep); }
.lp-brandband .ft-brands { flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.lp-brandband .ft-brands__list { width: 100%; justify-content: space-between; gap: var(--space-5) var(--space-6); }
.lp-brandband .ft-brands__item img { width: auto; height: 22px; filter: none; opacity: 1; }
.lp-brandband .ft-brands__item img[alt="Arizona Tile"] { height: 14px; }
.lp-brandband .ft-brands__item img[alt="Atlas Homewares"] { height: 26px; }
.lp-brandband .ft-brands__item img[alt="Caesarstone"] { height: 18px; }
.lp-brandband .ft-brands__item img[alt="Cambria"] { height: 23px; }
.lp-brandband .ft-brands__item img[alt="Cosentino"] { height: 15px; }
.lp-brandband .ft-brands__item img[alt="Duchateau"] { height: 19px; }
.lp-brandband .ft-brands__item img[alt="Galleher"] { height: 28px; }
.lp-brandband .ft-brands__item img[alt="MSI"] { height: 26px; }
@media (max-width: 1023px) {
  .lp-brandband .ft-brands__list { justify-content: flex-start; gap: var(--space-5) var(--space-7); }
}
@media (max-width: 767px) {
  .lp-brandband { padding: var(--space-6) 0; }
  .lp-brandband .ft-brands__list { gap: var(--space-5) var(--space-6); }
}


/* ds/finaltouch/components/bundle.css */
/* Final Touch — component styles. Every colour, space and radius is a token from tokens.css. */

/* ---------- Base ---------- */
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 28px;
  background: var(--surface-100);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.eyebrow, .label { text-transform: uppercase; }
.ft-icon { display: block; flex: none; }

/* Responsive steps for the display and lede styles */
@media (max-width: 767px) {
  .display-xl { font-size: 48px; line-height: 52px; }
  .display-l { font-size: 40px; line-height: 46px; }
  .display-m { font-size: 32px; line-height: 40px; }
  .display-s { font-size: 24px; line-height: 32px; }
  .quote { font-size: 24px; line-height: 34px; }
  .lede { font-size: 18px; line-height: 28px; }
}

/* ---------- Layout utilities ---------- */
.ft-container { box-sizing: border-box; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--gutter-l); }
.ft-section { padding: var(--space-10) 0; }
.ft-section--alt { background: var(--surface-200); }
.ft-deep { background: var(--surface-deep); color: var(--ink-on-deep); }
@media (max-width: 767px) {
  .ft-container { padding: 0 var(--gutter-s); }
  .ft-section { padding: var(--space-8) 0; }
}
a.ft-link { color: var(--bronze); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a.ft-link:hover { color: var(--bronze-strong); }
.ft-deep a.ft-link { color: var(--champagne); }

/* ---------- Button ---------- */
.ft-btn {
  box-sizing: border-box;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3);
  height: 52px; padding: 0 var(--space-6);
  border: 1px solid transparent; border-radius: var(--radius-none);
  background: none; color: inherit; font-family: var(--font-sans);
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .24s cubic-bezier(.2,0,0,1), border-color .24s cubic-bezier(.2,0,0,1), color .24s cubic-bezier(.2,0,0,1);
}
.ft-btn--icon-start { flex-direction: row-reverse; }
.ft-btn--s { height: 44px; padding: 0 var(--space-5); }
.ft-btn--block { display: flex; width: 100%; }
.ft-btn__icon { transition: transform .32s cubic-bezier(.2,0,0,1); }
.ft-btn:hover .ft-btn__icon { transform: translateX(4px); }
.ft-btn--primary { background: var(--action); color: var(--on-action); }
.ft-btn--primary:hover { background: var(--action-hover); }
.ft-btn--secondary { color: var(--ink); border-color: var(--line-strong); }
.ft-btn--secondary:hover { border-color: var(--ink); }
.ft-btn--text { height: auto; padding: var(--space-2) 0; color: var(--ink); border-width: 0 0 1px; border-bottom-color: var(--line-strong); }
.ft-btn--text:hover { border-bottom-color: var(--ink); }
.ft-btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.ft-btn:disabled, .ft-btn[aria-disabled="true"] { opacity: .4; cursor: not-allowed; }
.ft-btn:disabled:hover .ft-btn__icon { transform: none; }

/* Buttons inside deep bands and the hero */
.ft-deep .ft-btn--primary { background: var(--champagne); color: var(--on-champagne); }
.ft-deep .ft-btn--primary:hover { background: var(--champagne-hover); }
.ft-deep .ft-btn--secondary { color: var(--ink-on-deep); border-color: var(--ink-muted-on-deep); }
.ft-deep .ft-btn--secondary:hover { border-color: var(--ink-on-deep); }
.ft-deep .ft-btn--text { color: var(--ink-on-deep); border-bottom-color: var(--ink-muted-on-deep); }
.ft-deep .ft-btn--text:hover { border-bottom-color: var(--ink-on-deep); }
.ft-deep .ft-btn:focus-visible { outline-color: var(--focus-on-deep); }

/* ---------- Field ---------- */
.ft-field { display: grid; gap: var(--space-2); align-content: start; }
.ft-field__label { color: var(--ink); }
.ft-field__req { color: var(--bronze); }
.ft-field__opt { color: var(--ink-muted); text-transform: none; letter-spacing: 0; font-weight: 400; }
.ft-field__control {
  box-sizing: border-box; width: 100%; height: 52px; margin: 0;
  padding: 0 var(--space-4);
  background: var(--surface-raised); color: var(--ink);
  border: 1px solid var(--line-strong); border-radius: var(--radius-none);
  -webkit-appearance: none; appearance: none;
  transition: border-color .24s cubic-bezier(.2,0,0,1);
}
textarea.ft-field__control { height: auto; min-height: 112px; padding: var(--space-3) var(--space-4); resize: vertical; }
.ft-field__control::placeholder { color: var(--ink-muted); opacity: 1; }
.ft-field__control:hover { border-color: var(--ink-muted); }
.ft-field__control:focus { outline: 2px solid var(--focus); outline-offset: 2px; border-color: var(--ink); }
.ft-field__control:disabled { opacity: .4; cursor: not-allowed; }
.ft-field__select { position: relative; }
.ft-field__select .ft-field__control { padding-right: var(--space-8); cursor: pointer; }
.ft-field__chev { position: absolute; right: var(--space-4); top: 50%; margin-top: -9px; color: var(--ink-muted); pointer-events: none; }
.ft-field__msg { display: flex; gap: var(--space-2); align-items: flex-start; margin: 0; color: var(--ink-muted); }
.ft-field__msg .ft-icon { margin-top: 3px; }
.ft-field--error .ft-field__control { border-color: var(--danger); }
.ft-field__msg--error { color: var(--danger); }

/* ---------- LeadForm ---------- */
.ft-leadform {
  box-sizing: border-box; max-width: var(--container-text);
  padding: var(--space-7);
  background: var(--surface-raised); color: var(--ink);
  border: 1px solid var(--line);
}
.ft-leadform__head { margin-bottom: var(--space-6); }
.ft-leadform__title { margin: 0; font-family: var(--font-display); color: var(--ink); }
.ft-leadform__intro { margin: var(--space-3) 0 0; color: var(--ink-muted); }
.ft-leadform__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
.ft-leadform__full { grid-column: 1 / -1; }
.ft-leadform__foot { display: grid; gap: var(--space-4); margin-top: var(--space-6); }
.ft-leadform__note { margin: 0; color: var(--ink-muted); }
.ft-leadform--done { text-align: center; padding: var(--space-9) var(--space-7); }
.ft-leadform__badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; margin-bottom: var(--space-5);
  border: 1px solid var(--success); border-radius: var(--radius-round); color: var(--success);
}
/* The card keeps light-ground styling inside a deep band */
.ft-deep .ft-leadform .ft-btn--primary { background: var(--action); color: var(--on-action); }
.ft-deep .ft-leadform .ft-btn--primary:hover { background: var(--action-hover); }
.ft-deep .ft-leadform .ft-btn:focus-visible { outline-color: var(--focus); }
@media (max-width: 639px) {
  .ft-leadform { padding: var(--space-6) var(--space-5); }
  .ft-leadform__grid { grid-template-columns: 1fr; }
}

/* ---------- Wordmark ---------- */
.ft-wordmark { display: inline-flex; flex-direction: column; align-items: flex-start; gap: var(--space-1); color: inherit; text-decoration: none; line-height: 1; }
.ft-wordmark__name { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 26px; letter-spacing: -0.01em; }
.ft-wordmark__sub { font-family: var(--font-sans); font-weight: 500; font-size: 10px; line-height: 12px; letter-spacing: 0.52em; text-transform: uppercase; color: var(--bronze); padding-left: 1px; }
.ft-wordmark--l .ft-wordmark__name { font-size: 44px; line-height: 44px; }
.ft-wordmark--l .ft-wordmark__sub { font-size: 12px; line-height: 16px; letter-spacing: 0.62em; }
.ft-deep .ft-wordmark__sub { color: var(--champagne); }
a.ft-wordmark:focus-visible { outline: 2px solid var(--focus); outline-offset: 6px; }
.ft-deep a.ft-wordmark:focus-visible { outline-color: var(--focus-on-deep); }

/* ---------- SiteHeader ---------- */
.ft-header { position: relative; z-index: 10; background: var(--surface-100); color: var(--ink); border-bottom: 1px solid var(--line); }
.ft-header__inner {
  box-sizing: border-box; max-width: var(--container-max); height: var(--header-h);
  margin: 0 auto; padding: 0 var(--gutter-l);
  display: flex; align-items: center; gap: var(--space-7);
}
.ft-header__nav { display: flex; gap: var(--space-6); margin-left: auto; }
.ft-header__link { color: inherit; text-decoration: none; padding: var(--space-2) 0; border-bottom: 1px solid transparent; transition: border-color .24s cubic-bezier(.2,0,0,1); }
.ft-header__link:hover { border-bottom-color: currentColor; }
.ft-header__actions { display: flex; align-items: center; gap: var(--space-6); margin-left: auto; }
.ft-header__nav + .ft-header__actions { margin-left: 0; }
.ft-header__phone { display: inline-flex; align-items: center; gap: var(--space-2); color: inherit; text-decoration: none; }
.ft-header__link:focus-visible, .ft-header__phone:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.ft-header--transparent { position: absolute; top: 0; left: 0; right: 0; background: transparent; color: var(--ink-on-deep); border-bottom-color: transparent; }
.ft-header--transparent .ft-header__link:focus-visible, .ft-header--transparent .ft-header__phone:focus-visible { outline-color: var(--focus-on-deep); }
.ft-header.is-scrolled { position: fixed; background: var(--surface-100); color: var(--ink); box-shadow: var(--shadow-float); }
@media (max-width: 1023px) { .ft-header__nav { display: none; } }
@media (max-width: 767px) {
  .ft-header__inner { height: var(--header-h-s); padding: 0 var(--gutter-s); }
  .ft-header__phone-text, .ft-header__cta { display: none; }
  .ft-header .ft-wordmark__name { font-size: 22px; line-height: 22px; }
}

/* ---------- StickyCTA ---------- */
.ft-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  display: grid; grid-template-columns: 1fr 2fr;
  background: var(--surface-raised); border-top: 1px solid var(--line);
  box-shadow: var(--shadow-float);
  padding-bottom: env(safe-area-inset-bottom);
}
.ft-sticky--inline { position: relative; z-index: auto; }
.ft-sticky__call, .ft-sticky__cta { display: flex; align-items: center; justify-content: center; gap: var(--space-2); height: 60px; text-decoration: none; }
.ft-sticky__call { color: var(--ink); border-right: 1px solid var(--line); }
.ft-sticky__cta { background: var(--action); color: var(--on-action); }
.ft-sticky__call:focus-visible { outline: 2px solid var(--focus); outline-offset: -6px; }
.ft-sticky__cta:focus-visible { outline: 2px solid var(--on-action); outline-offset: -6px; }
.ft-sticky__call:only-child, .ft-sticky__cta:only-child { grid-column: 1 / -1; }
@media (min-width: 768px) { .ft-sticky:not(.ft-sticky--always) { display: none; } }

/* ---------- SectionHeading ---------- */
.ft-sh { max-width: var(--container-text); }
.ft-sh--center { margin-left: auto; margin-right: auto; text-align: center; }
.ft-sh__eyebrow { display: flex; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-5); color: var(--bronze); }
.ft-sh__eyebrow::before { content: ""; width: var(--space-6); height: 1px; background: currentColor; flex: none; }
.ft-sh--center .ft-sh__eyebrow { justify-content: center; }
.ft-sh__title { margin: 0; color: inherit; font-family: var(--font-display); }
.ft-sh__title em, .ft-hero__title em { font-style: italic; }
.ft-sh__lede { margin: var(--space-5) 0 0; color: var(--ink-muted); }
.ft-deep .ft-sh__eyebrow { color: var(--champagne); }
.ft-deep .ft-sh__lede { color: var(--ink-muted-on-deep); }

/* ---------- Hero ---------- */
.ft-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; min-height: 88vh; }
.ft-hero--medium { min-height: 64vh; }
.ft-hero__media { position: absolute; inset: 0; z-index: -2; }
.ft-hero__media > img, .ft-hero__media > svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.ft-hero__scrim { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, var(--scrim) 0%, var(--scrim) 25%, transparent 75%), var(--scrim-soft); }
.ft-hero__inner { box-sizing: border-box; width: 100%; max-width: var(--container-max); margin: 0 auto; padding: calc(var(--header-h) + var(--space-9)) var(--gutter-l) var(--space-9); }
.ft-hero__content { max-width: 880px; }
.ft-hero__eyebrow { margin: 0 0 var(--space-5); color: var(--champagne); }
.ft-hero__title { margin: 0; font-family: var(--font-display); color: var(--ink-on-deep); }
.ft-hero__lede { max-width: 560px; margin: var(--space-5) 0 0; color: var(--ink-on-deep); }
.ft-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin-top: var(--space-7); }
.ft-hero__note { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-7) 0 0; color: var(--ink-on-deep); }
.ft-hero__note .ft-icon { color: var(--champagne); }
@media (max-width: 767px) {
  .ft-hero { min-height: 92svh; }
  .ft-hero__inner { padding: calc(var(--header-h-s) + var(--space-8)) var(--gutter-s) var(--space-8); }
  .ft-hero__actions .ft-btn { width: 100%; }
}
/* Placeholder art: never ship it */
.ft-ph-ground { fill: var(--surface-deep); }
.ft-ph-panel { fill: var(--line-on-deep); }

/* ---------- CategoryTile ---------- */
.ft-tile { display: block; color: inherit; text-decoration: none; }
.ft-tile__media { position: relative; overflow: hidden; aspect-ratio: var(--ratio-tile); background: var(--surface-300); }
.ft-tile__media > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,0,0,1); }
a.ft-tile:hover .ft-tile__media > img { transform: scale(1.03); }
.ft-tile__ph { position: absolute; inset: 0; }
.ft-sw--plaster { background: var(--surface-200); }
.ft-sw--travertine { background: var(--surface-300); }
.ft-sw--champagne { background: var(--champagne); }
.ft-sw--bronze { background: var(--bronze); }
.ft-sw--charcoal { background: var(--surface-deep); }
.ft-tile__body { display: grid; grid-template-columns: 1fr auto; column-gap: var(--space-4); align-items: center; padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.ft-tile__title { margin: 0; font-family: var(--font-display); }
.ft-tile__caption { grid-column: 1; margin: var(--space-1) 0 0; color: var(--ink-muted); }
.ft-tile__arrow { grid-column: 2; grid-row: 1 / span 2; color: var(--bronze); transition: transform .32s cubic-bezier(.2,0,0,1); }
a.ft-tile:hover .ft-tile__arrow { transform: translateX(4px); }
a.ft-tile:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.ft-deep .ft-tile__body { border-bottom-color: var(--line-on-deep); }
.ft-deep .ft-tile__caption { color: var(--ink-muted-on-deep); }
.ft-deep .ft-tile__arrow { color: var(--champagne); }

/* ---------- ProcessSteps ---------- */
.ft-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-7) var(--space-6); }
.ft-step { padding-top: var(--space-5); border-top: 1px solid var(--line-strong); }
.ft-step__num { display: block; margin-bottom: var(--space-7); font-family: var(--font-display); color: var(--bronze); }
.ft-step__title { margin: 0 0 var(--space-3); font-family: var(--font-display); }
.ft-step__body { margin: 0; color: var(--ink-muted); }
.ft-deep .ft-step { border-top-color: var(--line-on-deep); }
.ft-deep .ft-step__num { color: var(--champagne); }
.ft-deep .ft-step__body { color: var(--ink-muted-on-deep); }

/* ---------- Testimonial ---------- */
.ft-quote { max-width: 880px; margin: 0 auto; text-align: center; }
.ft-quote--left { margin: 0; text-align: left; }
.ft-quote__mark { display: block; height: var(--space-8); font-family: var(--font-display); font-size: 120px; line-height: 120px; color: var(--bronze); }
.ft-quote__text { margin: 0; font-family: var(--font-display); }
.ft-quote__cap { display: flex; flex-direction: column; align-items: center; gap: var(--space-1); margin-top: var(--space-6); }
.ft-quote--left .ft-quote__cap { align-items: flex-start; }
.ft-quote__detail { color: var(--ink-muted); }
.ft-deep .ft-quote__mark { color: var(--champagne); }
.ft-deep .ft-quote__detail { color: var(--ink-muted-on-deep); }

/* ---------- FAQ ---------- */
.ft-faq { border-top: 1px solid var(--line); }
.ft-faq__item { border-bottom: 1px solid var(--line); }
.ft-faq__q { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); padding: var(--space-5) 0; cursor: pointer; font-family: var(--font-display); }
.ft-faq__q::-webkit-details-marker { display: none; }
.ft-faq__q::marker { content: ""; }
.ft-faq__q .display-xs { font-family: var(--font-display); }
.ft-faq__q:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.ft-faq__icon { color: var(--bronze); transition: transform .32s cubic-bezier(.2,0,0,1); }
.ft-faq__item[open] .ft-faq__icon { transform: rotate(45deg); }
.ft-faq__a { max-width: 640px; padding: 0 0 var(--space-6); color: var(--ink-muted); }
.ft-deep .ft-faq, .ft-deep .ft-faq__item { border-color: var(--line-on-deep); }
.ft-deep .ft-faq__a { color: var(--ink-muted-on-deep); }
.ft-deep .ft-faq__icon { color: var(--champagne); }
.ft-deep .ft-faq__q:focus-visible { outline-color: var(--focus-on-deep); }

/* ---------- BrandRow ---------- */
.ft-brands { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-8); }
.ft-brands__label { margin: 0; color: var(--ink-muted); }
.ft-brands__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-7); }
.ft-brands__item { color: var(--ink-muted); }
.ft-brands__item .display-xs { font-family: var(--font-display); }
.ft-brands__item a { color: inherit; text-decoration: none; }
.ft-brands__item img { display: block; height: 28px; width: auto; filter: grayscale(1); opacity: .75; }
.ft-deep .ft-brands__label, .ft-deep .ft-brands__item { color: var(--ink-muted-on-deep); }

@media (prefers-reduced-motion: reduce) {
  .ft-btn__icon, .ft-tile__media > img, .ft-tile__arrow, .ft-faq__icon { transition: none; }
  .ft-btn:hover .ft-btn__icon, a.ft-tile:hover .ft-tile__media > img, a.ft-tile:hover .ft-tile__arrow { transform: none; }
}


/* ---- Site: page basics and the pieces the static pages add ---- */
[hidden] { display: none !important; }
body { margin: 0; background: var(--surface-100); }
a { color: #735535; }
a:hover { color: #5e452b; }
.lp-logo-link { display: inline-flex; line-height: 0; }
.lp-footnav { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.lp-footnav a { color: var(--ink-on-deep); }
.lp-footnav a:hover { color: var(--champagne); }
.lp-footnav a[aria-current="page"] { color: var(--champagne); }
.ft-btn[aria-busy="true"] { opacity: 0.6; cursor: progress; }
/* The showroom page's three-action mobile bar: .ft-sticky (loaded later) would otherwise reset it to two columns */
.ft-sticky.lp-sticky3 { grid-template-columns: 1fr 1fr 1.3fr; }
.ft-leadform--done:focus { outline: none; }
