/*
Theme Name: Talbot Custom Homes
Theme URI: https://talbotcustomhomes.com
Author: Bee Neufeld
Description: Custom block theme for Talbot Custom Homes, an Orlando, FL design-build custom home builder. Direction "Grounded & Material": warm espresso surface, bone text, matte brass accent; Spectral + Hanken Grotesk + Geist Mono. Built on native WordPress blocks.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.4
Version: 0.6.8
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tch
*/

/* ============================================================
   TOKENS (mirror theme.json for use in custom CSS)
   ============================================================ */
:root{
  --espresso:#241C17; --espresso-deep:#1B1510; --bark:#34291F;
  --bone:#ECE3D6; --bone-dim:#C9BCA9;
  --stone:#E8E1D5; --stone-2:#DBD2C3;
  --ink:#221A13; --ink-soft:#5E5141;
  --brass:#BE8F52; --brass-deep:#9C7437;
  --line-on-dark:rgba(236,227,214,.16);
  --line-on-light:rgba(34,26,19,.14);
  --maxw:1320px; --content:1080px;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ============================================================
   BASE
   ============================================================ */
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1,h2,h3,h4{ text-wrap:balance; }
p{ text-wrap:pretty; }
img{ display:block; max-width:100%; height:auto; }
::selection{ background:var(--brass); color:var(--espresso-deep); }
a{ transition:color .25s var(--ease); }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; border-radius:2px; }

/* Shared helpers */
.eyebrow{
  font-family:var(--wp--preset--font-family--mono); font-weight:500;
  font-size:clamp(1.25rem,.95rem + 1vw,1.5rem); letter-spacing:.1em; text-transform:uppercase; color:var(--brass);
  margin:0 0 1.25rem;
}
.lede{ max-width:46ch; font-size:var(--wp--preset--font-size--lg); line-height:1.5; }
.wp-block-button__link{ transition:background-color .25s var(--ease), color .25s var(--ease); }

/* A line/ghost button used on dark sections */
.btn-line .wp-block-button__link{
  background:transparent; color:var(--bone); border:1px solid rgba(236,227,214,.5);
}
.btn-line .wp-block-button__link:hover{ background:var(--bone); color:var(--espresso-deep); border-color:var(--bone); }

/* Anchor buttons (used in bespoke template sections) */
.cta-row{ display:flex; flex-wrap:wrap; gap:.85rem; align-items:center; }
.btn{ display:inline-flex; align-items:center; justify-content:center; min-height:48px;
  padding:0 1.75rem; font-family:var(--wp--preset--font-family--body); font-weight:600;
  font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; text-decoration:none;
  border-radius:3px; background:var(--brass); color:var(--espresso-deep); border:1px solid var(--brass);
  transition:background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.btn:hover{ background:var(--brass-deep); border-color:var(--brass-deep); color:var(--bone); }
.btn-ghost{ background:transparent; color:var(--bone); border-color:rgba(236,227,214,.5); }
.btn-ghost:hover{ background:var(--bone); color:var(--espresso-deep); border-color:var(--bone); }
.btn-dark{ background:var(--espresso); color:var(--bone); border-color:var(--espresso); }
.btn-dark:hover{ background:var(--ink); color:var(--bone); border-color:var(--ink); }
.link-arrow{ font-weight:600; font-size:.9rem; color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; }
.link-arrow::after{ content:"→"; color:var(--brass-deep); transition:transform .3s var(--ease); }
.link-arrow:hover::after{ transform:translateX(5px); }

/* ============================================================
   HEADER
   ============================================================ */
.tch-header{
  position:sticky; top:0; z-index:50;
  background:var(--espresso); color:var(--bone);
  border-bottom:1px solid var(--line-on-dark);
  padding-top:1rem; padding-bottom:1rem;
  transition:background-color .35s var(--ease), border-color .35s var(--ease), padding .35s var(--ease), box-shadow .35s var(--ease);
}
/* Homepage: transparent header overlaid on the hero photo, solid once scrolled */
.home .tch-header{
  position:fixed; inset:0 0 auto 0;
  background:transparent; border-bottom-color:transparent;
  padding-top:1.5rem; padding-bottom:1.5rem;
}
.home .tch-header.is-scrolled{
  background:var(--espresso); border-bottom-color:var(--line-on-dark);
  padding-top:.85rem; padding-bottom:.85rem;
  box-shadow:0 10px 34px rgba(0,0,0,.30);
}
/* Remove WP's root block-gap above <main> so the hero photo reaches the very top (kills the cream strip) */
.wp-site-blocks > main{ margin-block-start:0; }
/* Full-bleed page sections sit flush (each self-pads) — kills the stone body-bg line between sections */
.wp-block-post-content > .alignfull{ margin-block:0; }
/* Keep the fixed homepage header below the WP admin bar when logged in */
.admin-bar .home .tch-header{ top:32px; }
@media (max-width:782px){ .admin-bar .home .tch-header{ top:46px; } }
.tch-header .tch-brand a{ color:var(--bone); text-decoration:none; }
.tch-brand{ gap:.85rem; }
.tch-logo-link{ display:inline-flex; line-height:0; flex:none; color:var(--bone); }
/* Colored horizontal lockup (mark + wordmark + motto). Wide aspect, so size by height. */
.tch-logo{ height:clamp(40px,3.6vw,50px); width:auto; display:block; }
.tch-header .wp-block-navigation{ font-size:.95rem; color:var(--bone); }
.tch-header .wp-block-navigation a{ color:var(--bone); text-decoration:none; opacity:.85; }
.tch-header .wp-block-navigation a:hover{ opacity:1; color:var(--brass); }
.tch-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open{ background:var(--espresso); }
.tch-header .wp-block-button__link{ background:transparent; color:var(--bone); border:1px solid rgba(236,227,214,.5); }
.tch-header .wp-block-button__link:hover{ background:var(--bone); color:var(--espresso-deep); border-color:var(--bone); }
/* Single-row mobile header: brand + hamburger, no wrap. */
.tch-header > .wp-block-group{ flex-wrap:nowrap; align-items:center; }
.tch-header .cta-mini{ display:none; } /* desktop shows the full "Start your build" label */
@media (min-width:601px){
  .tch-header .nav-contact{ display:none; } /* Contact lives in the mobile menu; desktop has the header CTA + nav */
}
/* Mobile header: full lockup scaled to fit + compact "Start" CTA + hamburger */
@media (max-width:600px){
  .tch-header .tch-logo{ height:32px; }
  .tch-header .cta-full{ display:none; }
  .tch-header .cta-mini{ display:block; }
  .tch-header .wp-block-buttons, .tch-header .cta-mini{ flex:none; }
  .tch-header .wp-block-button__link{ padding:.5rem .8rem; font-size:.72rem; min-height:44px; display:inline-flex; align-items:center; white-space:nowrap; }
}

/* ============================================================
   SECTION SCAFFOLD
   ============================================================ */
.sec{ padding-block:clamp(3.5rem,3rem + 6vw,7.5rem); }
.sec-pad-x{ padding-inline:clamp(1.25rem,4vw,3.5rem); }
.wrap{ max-width:var(--maxw); margin-inline:auto; }
.wrap-narrow{ max-width:var(--content); margin-inline:auto; }

/* Consistent section gutters + vertical rhythm (hero self-pads) */
.home-services, .home-philosophy, .home-process, .home-testimonials, .home-areas, .home-cta{
  padding-block:clamp(3.75rem, 3rem + 6vw, 7.5rem);
  padding-inline:clamp(1.25rem, 4vw, 3.5rem);
}
.home-trust{ padding-inline:clamp(1.25rem, 4vw, 3.5rem); }

/* Neutralize core block "flow" margins inside our custom grid/flex containers */
.home-trust .wrap > *, .home-services .svc-grid > *, .home-process .steps > *,
.home-testimonials .quotes > *, .home-philosophy .pillars > *, .home-services .head > *{ margin-block:0; }
.wp-block-group.home-hero, .wp-block-group.home-trust{ margin-block:0; }

/* ============================================================
   HERO
   ============================================================ */
.home-hero{ position:relative; background:var(--espresso); color:var(--bone); overflow:hidden;
  min-height:clamp(560px,86svh,860px); display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(6.5rem,13vh,9rem) clamp(1.25rem,4vw,3.5rem) clamp(3rem,5vw,4.5rem); }
.home-hero .hero-bg{ position:absolute; inset:0; margin:0; z-index:0; line-height:0; }
.home-hero .hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 38%; }
.home-hero::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(27,21,16,.48) 0%, rgba(27,21,16,.50) 30%, rgba(27,21,16,.85) 64%, rgba(27,21,16,.97) 100%); }
.home-hero > *{ position:relative; z-index:2; }
.home-hero .hero-inner{ max-width:var(--maxw); margin-inline:auto; width:100%; }
.home-hero .eyebrow{ color:var(--brass); }
.home-hero h1{ color:var(--bone); font-weight:500;
  font-size:clamp(2.5rem,8.5vw,5rem); line-height:1.04; letter-spacing:-.02em; max-width:16ch; }
.home-hero .lede{ color:var(--bone-dim); margin-top:1.4rem; }
.home-hero .wp-block-buttons{ margin-top:2.1rem; }

@media (min-width:900px){
  .home-hero{ justify-content:flex-end; min-height:clamp(640px,90svh,880px); padding-bottom:clamp(3.5rem,6vh,5.5rem); }
  .home-hero::after{
    background:linear-gradient(96deg, rgba(27,21,16,.95) 0%, rgba(27,21,16,.86) 34%, rgba(27,21,16,.42) 68%, rgba(27,21,16,.12) 100%); }
  .home-hero .hero-inner{ max-width:var(--maxw); }
  .home-hero h1{ max-width:14ch; }
  .home-hero .lede{ max-width:40ch; }
}

/* ============================================================
   TRUST BAR
   ============================================================ */
.home-trust{ background:var(--espresso-deep); color:var(--bone); border-top:1px solid var(--line-on-dark); }
.home-trust .wrap{ display:grid; grid-template-columns:repeat(2,1fr); }
.home-trust .stat{ padding:clamp(1.6rem,4vw,2.4rem) clamp(1rem,3vw,2rem); border-bottom:1px solid var(--line-on-dark); border-right:1px solid var(--line-on-dark); }
.home-trust .stat:nth-child(2n){ border-right:0; }
.home-trust .stat:nth-last-child(-n+2){ border-bottom:0; }
.home-trust .num{ font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:clamp(2rem,5vw,2.9rem); color:var(--brass); line-height:1; }
.home-trust .lab{ font-family:var(--wp--preset--font-family--body); font-size:.84rem; color:var(--bone-dim); margin-top:.5rem; line-height:1.4; letter-spacing:.01em; }
@media (min-width:760px){
  .home-trust .wrap{ grid-template-columns:repeat(4,1fr); }
  .home-trust .stat{ border-bottom:0; }
  .home-trust .stat:last-child{ border-right:0; }
}

/* ============================================================
   SERVICES (asymmetric, photo-led, not a uniform card grid)
   ============================================================ */
.home-services{ background:var(--stone); color:var(--ink); }
.home-services .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,4rem); display:grid; gap:1.25rem; }
.home-services .head h2{ font-size:clamp(2rem,4.4vw,3.2rem); }
.home-services .head p{ color:var(--ink-soft); max-width:52ch; }
.svc-grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:1rem; }
.svc{ position:relative; display:flex; flex-direction:column; background:var(--stone-2); overflow:hidden; }
.svc .wp-block-image{ margin:0; overflow:hidden; line-height:0; }
.svc .wp-block-image img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform .8s var(--ease); }
.svc:hover .wp-block-image img{ transform:scale(1.04); }
.svc .body{ padding:clamp(1.4rem,2.5vw,2rem); display:flex; flex-direction:column; flex:1; }
.svc .tag{ font-family:var(--wp--preset--font-family--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); }
.svc h3{ font-size:clamp(1.4rem,2.4vw,1.85rem); margin:.7rem 0 .6rem; }
.svc p{ color:var(--ink-soft); font-size:.98rem; line-height:1.55; }
.svc .more{ margin-top:auto; padding-top:1.1rem; font-family:var(--wp--preset--font-family--body); font-weight:600; font-size:.9rem; color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; }
.svc .more::after{ content:"→"; transition:transform .3s var(--ease); color:var(--brass-deep); }
.svc:hover .more::after{ transform:translateX(5px); }
@media (min-width:860px){
  .svc-grid{ grid-template-columns:1.25fr 1fr; grid-template-rows:1fr 1fr; gap:1rem; }
  .svc-a{ grid-row:1 / span 2; }
  .svc-a .wp-block-image{ flex:1 1 auto; min-height:340px; }
  .svc-a .wp-block-image img{ aspect-ratio:auto; height:100%; }
  .svc-a .body{ flex:0 0 auto; }
  .svc-a .more{ margin-top:1.5rem; }
  .svc-b .wp-block-image img, .svc-c .wp-block-image img{ aspect-ratio:16/9; }
  .svc-a h3{ font-size:clamp(1.8rem,2.6vw,2.3rem); }
}

/* ============================================================
   PHILOSOPHY (espresso, image + values)
   ============================================================ */
.home-philosophy{ background:var(--espresso); color:var(--bone); }
.home-philosophy .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.home-philosophy .media{ line-height:0; }
.home-philosophy .media img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.home-philosophy .eyebrow{ margin-bottom:1.2rem; }
.home-philosophy .phil-quote-text{ font-family:var(--wp--preset--font-family--display); font-style:italic; font-weight:400; font-size:clamp(1.4rem,2.6vw,1.9rem); color:var(--brass); line-height:1.3; margin:2.2rem 0 .5rem; }
.home-philosophy .phil-quote-cite{ font-family:var(--wp--preset--font-family--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-dim); margin:0; }
.home-philosophy h2{ color:var(--bone); font-size:clamp(1.9rem,3.6vw,2.8rem); margin-bottom:1.3rem; }
.home-philosophy p{ color:var(--bone-dim); max-width:54ch; }
.home-philosophy p + p{ margin-top:1rem; }
.pillars{ display:grid; gap:1.4rem; margin-top:2.2rem; padding-top:2.2rem; border-top:1px solid var(--line-on-dark); }
.pillar .pk{ font-family:var(--wp--preset--font-family--display); font-size:1.2rem; color:var(--bone); }
.pillar .pk::before{ content:""; display:block; width:26px; height:2px; background:var(--brass); margin-bottom:.7rem; }
.pillar p{ color:var(--bone-dim); font-size:.95rem; margin-top:.4rem; }
@media (min-width:860px){
  .home-philosophy .grid{ grid-template-columns:0.85fr 1fr; }
  .pillars{ grid-template-columns:repeat(3,1fr); gap:1.6rem; }
}

/* ============================================================
   PROCESS (spec/structural, numbered sequence)
   ============================================================ */
.home-process{ background:var(--stone); color:var(--ink); }
.home-process .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.home-process .head h2{ font-size:clamp(2rem,4.4vw,3.2rem); max-width:18ch; }
.home-process .head p{ color:var(--ink-soft); max-width:50ch; margin-top:1rem; }
.home-process .steps{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:0; border-top:1px solid var(--line-on-light); }
.home-process .step{ display:grid; grid-template-columns:auto 1fr; gap:1.25rem; padding:1.6rem 0; border-bottom:1px solid var(--line-on-light); align-items:start; }
.home-process .step .n{ font-family:var(--wp--preset--font-family--mono); font-size:clamp(2.1rem,1.3rem + 2.6vw,3rem); line-height:1; color:var(--brass-deep); letter-spacing:.04em; padding-top:.15rem; }
.home-process .step h3{ font-size:1.7rem; margin:0 0 .5rem; }
.home-process .step p{ color:var(--ink-soft); font-size:1.2rem; line-height:1.55; max-width:60ch; }
@media (min-width:880px){
  .home-process .steps{ grid-template-columns:repeat(5,1fr); border-top:0; gap:0; }
  .home-process .step{ grid-template-columns:1fr; border-bottom:0; border-left:1px solid var(--line-on-light); padding:0 0 0 1.4rem; }
  .home-process .step:first-child{ border-left:0; padding-left:0; }
  .home-process .step .n{ padding-top:0; margin-bottom:1.1rem; }
  .home-process .step h3{ font-size:1.55rem; }
  .home-process .step p{ font-size:1.12rem; }
}

/* ============================================================
   TESTIMONIALS (real client words, dark)
   ============================================================ */
.home-testimonials{ background:var(--espresso-deep); color:var(--bone); }
.home-testimonials .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.home-testimonials .head h2{ color:var(--bone); font-size:clamp(2rem,4.4vw,3rem); }
.quotes{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(1.5rem,3vw,2.5rem); }
.quote{ background:var(--bark); padding:clamp(1.8rem,3vw,2.6rem); border:1px solid var(--line-on-dark); }
.quote .stars{ color:var(--brass); letter-spacing:.18em; font-size:.85rem; margin-bottom:1.2rem; }
.quote .qtext{ margin:0; font-family:var(--wp--preset--font-family--display); font-weight:400; font-size:clamp(1.15rem,2vw,1.4rem); line-height:1.45; color:var(--bone); }
.quote .who{ margin-top:1.5rem; font-family:var(--wp--preset--font-family--mono); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--bone-dim); }
.quote .who b{ color:var(--brass); font-weight:500; }
@media (min-width:820px){ .quotes{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   SERVICE AREAS
   ============================================================ */
.home-areas{ background:var(--stone-2); color:var(--ink); border-top:1px solid var(--line-on-light); }
.home-areas .wrap-narrow{ text-align:center; }
.home-areas h2{ font-size:clamp(1.8rem,3.6vw,2.6rem); }
.home-areas p{ color:var(--ink-soft); margin:1rem auto 2.2rem; max-width:48ch; }
.areas-list{ display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem; max-width:880px; margin-inline:auto; }
.areas-list span{ font-family:var(--wp--preset--font-family--body); font-size:.92rem; color:var(--ink); background:var(--stone-2); border:1px solid var(--line-on-light); padding:.5rem .95rem; border-radius:999px; }

/* ============================================================
   CTA
   ============================================================ */
.home-cta{ position:relative; background:var(--espresso); color:var(--bone); overflow:hidden; text-align:center; }
.home-cta .cta-bg{ position:absolute; inset:0; margin:0; z-index:0; line-height:0; }
.home-cta .cta-bg img{ width:100%; height:100%; object-fit:cover; }
.home-cta::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(27,21,16,.80), rgba(27,21,16,.70)); }
.home-cta .wrap-narrow{ position:relative; z-index:2; }
.home-cta h2{ color:var(--bone); font-size:clamp(2rem,4.6vw,3.4rem); max-width:18ch; margin-inline:auto; }
.home-cta p{ color:var(--bone-dim); margin:1.2rem auto 2.2rem; max-width:44ch; font-size:var(--wp--preset--font-size--lg); }

/* ============================================================
   INNER-PAGE SECTIONS (Custom Homes, ADUs, etc.)
   ============================================================ */
.split, .advantages, .gallery, .adu-types, .reasons, .faq, .renovate, .process-steps, .stat-banner,
.story, .team, .values, .rooted, .contact{
  padding-block:clamp(3.75rem, 3rem + 6vw, 7.5rem);
  padding-inline:clamp(1.25rem, 4vw, 3.5rem);
}

/* Sub-hero: solid header above, photo hero below */
.sub-hero{ position:relative; background:var(--espresso); color:var(--bone); overflow:hidden;
  min-height:clamp(420px,60vh,600px); display:flex; flex-direction:column; justify-content:flex-end;
  padding:clamp(3rem,6vw,5rem) clamp(1.25rem,4vw,3.5rem) clamp(2.5rem,5vw,4rem); }
.sub-hero .hero-bg{ position:absolute; inset:0; margin:0; z-index:0; line-height:0; }
.sub-hero .hero-bg img{ width:100%; height:100%; object-fit:cover; }
.sub-hero::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(27,21,16,.45) 0%, rgba(27,21,16,.52) 34%, rgba(27,21,16,.84) 62%, rgba(27,21,16,.96) 100%); }
.sub-hero > *{ position:relative; z-index:2; }
.sub-hero .hero-bg{ z-index:0; }
.sub-hero .hero-inner{ max-width:var(--maxw); margin-inline:auto; width:100%; }
.sub-hero h1{ color:var(--bone); font-weight:500; font-size:clamp(2.2rem,5.5vw,3.8rem); line-height:1.05; letter-spacing:-.02em; max-width:18ch; }
.sub-hero .lede{ color:var(--bone-dim); margin-top:1.2rem; max-width:46ch; }
.sub-hero .cta-row{ margin-top:1.8rem; }
@media(min-width:900px){
  .sub-hero::after{ background:linear-gradient(96deg, rgba(27,21,16,.92) 0%, rgba(27,21,16,.7) 45%, rgba(27,21,16,.25) 100%); }
}

/* Split: image + prose, alternating */
.split{ background:var(--stone); color:var(--ink); }
.split.is-dark{ background:var(--espresso); color:var(--bone); }
.split .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.split .media{ margin:0; line-height:0; }
.split .media img{ width:100%; aspect-ratio:5/4; object-fit:cover; display:block; }
.split .content h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:1.2rem; }
.split.is-dark .content h2{ color:var(--bone); }
.split .content p{ color:var(--ink-soft); max-width:56ch; }
.split.is-dark .content p{ color:var(--bone-dim); }
.split .content p + p{ margin-top:1rem; }
.split .content .cta-row{ margin-top:1.9rem; }
@media(min-width:860px){
  .split .grid{ grid-template-columns:1fr 1fr; }
  .split.reverse .media{ order:2; }
}

/* Item 5: "The Talbot Custom Homes advantage" promoted to a dark feature band
   (espresso-deep + brass keyline + framed photo) so it reads as the payoff,
   not a washed-out beige text block. Scoped class keeps other .split.is-dark intact. */
.split.advantage-feature{ background:var(--espresso-deep); border-block:1px solid var(--line-on-dark); }
.split.advantage-feature .content h2{ color:var(--bone); font-size:clamp(2.1rem,4vw,3.1rem); margin-bottom:1.3rem; }
.split.advantage-feature .content h2::before{ content:""; display:block; width:48px; height:3px; border-radius:2px; background:var(--brass); margin-bottom:1.4rem; }
.split.advantage-feature .content p{ color:var(--bone-dim); font-size:1.06rem; line-height:1.65; }
.split.advantage-feature .media img{ border-radius:4px; box-shadow:0 24px 60px rgba(0,0,0,.45); }

/* Advantages: 3-up commitments on dark */
/* Light, so the "advantage" feature band just below is the lone dark moment (item 5). */
.advantages{ background:var(--stone-2); color:var(--ink); border-top:1px solid var(--line-on-light); }
.advantages .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.advantages .head h2{ color:var(--ink); font-size:clamp(1.9rem,3.6vw,2.8rem); }
.advantages .head p{ color:var(--ink-soft); max-width:54ch; margin-top:1rem; }
.advantages .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(1.5rem,3vw,2.5rem); }
.advantages .grid > *{ margin-block:0; }
.advantages .adv h3{ font-size:1.3rem; color:var(--ink); margin:0 0 .6rem; }
.advantages .adv h3::before{ content:""; display:block; width:26px; height:2px; background:var(--brass-deep); margin-bottom:1rem; }
.advantages .adv p{ color:var(--ink-soft); font-size:.96rem; line-height:1.55; }
@media(min-width:780px){ .advantages .grid{ grid-template-columns:repeat(3,1fr); } }

/* Gallery: work grid */
.gallery{ background:var(--stone); color:var(--ink); }
.gallery .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2rem,3vw,3rem); text-align:center; }
.gallery .head h2{ font-size:clamp(1.9rem,3.6vw,2.8rem); }
.gallery .head p{ color:var(--ink-soft); max-width:52ch; margin:1rem auto 0; }
.gallery .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; grid-template-columns:1fr; gap:1rem; }
@media(min-width:600px){ .gallery .grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:880px){ .gallery .grid{ grid-template-columns:repeat(3,1fr); } }
.gallery .grid > *{ margin-block:0; }
.gallery .grid .wp-block-image{ margin:0; overflow:hidden; line-height:0; }
.gallery .grid .wp-block-image img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .8s var(--ease); }
.gallery .grid .wp-block-image:hover img{ transform:scale(1.04); }
/* Item 1: the one portrait photo (the freestanding-tub bathroom) is framed on the tub so its
   subject stays in view within the shared 4:3 grid cell — fixes "bathroom not in frame". */
.gallery .grid .portrait-fit img{ object-position:center 58%; }
/* Item 2: WordPress's lightbox sizes its zoom box to the thumbnail's cropped shape, which made
   the enlarged image inherit that crop. Force the lightbox to show the FULL photo, never a crop. */
.wp-lightbox-overlay .lightbox-image-container img{ object-fit:contain !important; }

/* Trust bar: 3-stat variant (ADU page) */
.home-trust .wrap:has(> .stat:nth-child(3):last-child){ grid-template-columns:1fr; }
.home-trust .wrap:has(> .stat:nth-child(3):last-child) .stat{ border-right:0; }
.home-trust .wrap:has(> .stat:nth-child(3):last-child) .stat:last-child{ border-bottom:0; }
@media(min-width:760px){
  .home-trust .wrap:has(> .stat:nth-child(3):last-child){ grid-template-columns:repeat(3,1fr); }
  .home-trust .wrap:has(> .stat:nth-child(3):last-child) .stat{ border-bottom:0; border-right:1px solid var(--line-on-dark); }
  .home-trust .wrap:has(> .stat:nth-child(3):last-child) .stat:last-child{ border-right:0; }
}

/* ADU types: 3 distinct option cards */
.adu-types{ background:var(--stone); color:var(--ink); }
.adu-types .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.adu-types .head .eyebrow{ color:var(--brass-deep); }
.adu-types .head h2{ font-size:clamp(1.9rem,3.6vw,2.8rem); max-width:22ch; }
.adu-types .head p{ color:var(--ink-soft); max-width:62ch; margin-top:1rem; }
.adu-types .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(1.1rem,2vw,1.6rem); }
.adu-types .grid > *{ margin-block:0; }
@media(min-width:820px){ .adu-types .grid{ grid-template-columns:repeat(3,1fr); } }
.adu-types .type{ background:var(--bone); border:1px solid var(--line-on-light); padding:clamp(1.6rem,2.5vw,2.2rem); display:flex; flex-direction:column; height:100%; }
.adu-types .type > *{ margin-block:0; }
.adu-types .type .kicker{ font-family:var(--wp--preset--font-family--mono); font-weight:500; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--brass-deep); margin:0 0 1.1rem; }
.adu-types .type h3{ font-size:1.4rem; margin:0 0 .8rem; color:var(--ink); line-height:1.15; }
.adu-types .type p{ color:var(--ink-soft); font-size:.95rem; line-height:1.6; margin:0; }
.adu-types .type .size{ margin-top:auto; padding-top:1.3rem; border-top:1px solid var(--line-on-light); color:var(--ink); font-family:var(--wp--preset--font-family--mono); font-size:.78rem; letter-spacing:.04em; }

/* Reasons: numbered sequence on dark */
.reasons{ background:var(--espresso); color:var(--bone); }
.reasons .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2rem,3.5vw,3rem); }
.reasons .head .eyebrow{ color:var(--brass); }
.reasons .head h2{ color:var(--bone); font-size:clamp(1.9rem,3.6vw,2.8rem); max-width:20ch; }
.reasons .list{ max-width:var(--maxw); margin-inline:auto; }
.reasons .list > *{ margin-block:0; }
.reasons .reason{ display:grid; gap:.4rem; padding-block:clamp(1.8rem,3vw,2.6rem); border-top:1px solid var(--line-on-dark); }
.reasons .reason:last-child{ border-bottom:1px solid var(--line-on-dark); }
.reasons .rnum{ font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:clamp(1.8rem,3vw,2.4rem); color:var(--brass); line-height:1; margin:0; }
.reasons .rbody h3{ color:var(--bone); font-size:1.4rem; margin:0 0 .7rem; }
.reasons .rbody p{ color:var(--bone-dim); margin:0; max-width:70ch; line-height:1.6; }
@media(min-width:760px){
  .reasons .reason{ grid-template-columns:auto 1fr; align-items:start; column-gap:clamp(2rem,5vw,4.5rem); }
  .reasons .rnum{ font-size:clamp(2.2rem,3.5vw,3rem); }
}

/* FAQ: native details accordion on dark */
.faq{ background:var(--espresso-deep); color:var(--bone); }
.faq .head{ max-width:780px; margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); text-align:center; }
.faq .head .eyebrow{ color:var(--brass); }
.faq .head h2{ color:var(--bone); font-size:clamp(1.9rem,3.6vw,2.8rem); }
.faq .head p{ color:var(--bone-dim); max-width:52ch; margin:1rem auto 0; }
.faq .faq-list{ max-width:780px; margin-inline:auto; }
.faq .faq-list > *{ margin-block:0; }
.faq .wp-block-details{ border-top:1px solid var(--line-on-dark); }
.faq .faq-list .wp-block-details:last-child{ border-bottom:1px solid var(--line-on-dark); }
.faq .wp-block-details summary{ cursor:pointer; list-style:none; padding:clamp(1.2rem,2.2vw,1.6rem) 2.5rem clamp(1.2rem,2.2vw,1.6rem) 0; position:relative; font-family:var(--wp--preset--font-family--display); font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--bone); font-weight:500; transition:color .25s var(--ease); }
.faq .wp-block-details summary:hover{ color:var(--brass); }
.faq .wp-block-details summary::-webkit-details-marker{ display:none; }
.faq .wp-block-details summary::after{ content:"+"; position:absolute; right:.2rem; top:50%; transform:translateY(-50%); font-size:1.6rem; line-height:1; color:var(--brass); transition:transform .3s var(--ease); }
.faq .wp-block-details[open] summary::after{ content:"\2013"; }
.faq .wp-block-details p{ color:var(--bone-dim); margin:0 0 1.4rem; max-width:70ch; line-height:1.65; padding-right:2.5rem; }

/* Renovate: two-up feature (Renovations page) */
.renovate{ background:var(--stone); color:var(--ink); }
.renovate .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.renovate .head .eyebrow{ color:var(--brass-deep); }
.renovate .head h2{ font-size:clamp(1.9rem,3.6vw,2.8rem); }
.renovate .head p{ color:var(--ink-soft); max-width:60ch; margin-top:1rem; }
.renovate .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(1.75rem,4vw,3rem); }
.renovate .grid > *{ margin-block:0; }
@media(min-width:760px){ .renovate .grid{ grid-template-columns:1fr 1fr; } }
.renovate .item .wp-block-image{ margin:0 0 1.5rem; line-height:0; overflow:hidden; }
.renovate .item .wp-block-image img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; transition:transform .8s var(--ease); }
.renovate .item:hover .wp-block-image img{ transform:scale(1.03); }
.renovate .item h3{ font-size:clamp(1.4rem,2.2vw,1.7rem); margin:0 0 .7rem; color:var(--ink); }
.renovate .item p{ color:var(--ink-soft); margin:0; line-height:1.6; max-width:52ch; }

/* Process steps: numbered method timeline (Our Process page) */
.process-steps{ background:var(--espresso-deep); color:var(--bone); }
.process-steps .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4.5vw,4rem); }
.process-steps .head .eyebrow{ color:var(--brass); }
.process-steps .head h2{ color:var(--bone); font-size:clamp(2rem,4vw,3rem); max-width:20ch; line-height:1.1; }
.process-steps .head p{ color:var(--bone-dim); max-width:62ch; margin-top:1.2rem; font-size:var(--wp--preset--font-size--lg); line-height:1.5; }
.process-steps .steps{ max-width:960px; margin-inline:auto; display:block; border-top:0; }
.process-steps .steps > *{ margin-block:0; }
.process-steps .step{ display:grid; gap:.55rem; padding-block:clamp(2rem,3.5vw,3rem); border-top:1px solid var(--line-on-dark); }
.process-steps .step:last-child{ border-bottom:1px solid var(--line-on-dark); }
.process-steps .snum{ font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:clamp(3.6rem,6.5vw,5.5rem); color:var(--brass); line-height:.9; margin:0; }
.process-steps .sbody h3{ color:var(--bone); font-size:clamp(1.9rem,3.2vw,2.6rem); margin:0 0 .9rem; letter-spacing:-.01em; }
.process-steps .sbody p{ color:var(--bone-dim); margin:0; line-height:1.65; font-size:clamp(1.12rem,1rem + .55vw,1.3rem); max-width:66ch; }
@media(min-width:760px){
  .process-steps .step{ grid-template-columns:minmax(120px,auto) 1fr; column-gap:clamp(2rem,5vw,4.5rem); align-items:start; }
}

/* Stat banner: single striking figure (Our Process page) */
.stat-banner{ background:var(--stone); color:var(--ink); text-align:center; }
.stat-banner .stat-inner{ max-width:var(--content); margin-inline:auto; }
.stat-banner .stat-inner > *{ margin-block:0; }
.stat-banner .big{ font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:clamp(4rem,12vw,8.5rem); color:var(--brass-deep); line-height:.95; letter-spacing:-.03em; margin:0; }
.stat-banner .big-cap{ color:var(--ink); font-size:clamp(1.15rem,2.2vw,1.5rem); max-width:24ch; margin:1rem auto 0; line-height:1.35; }
.stat-banner .stat-inner h2{ font-size:clamp(1.7rem,3.2vw,2.4rem); margin:clamp(2.25rem,4.5vw,3.25rem) auto 0; max-width:22ch; }
.stat-banner .stat-inner p:not(.big):not(.big-cap){ color:var(--ink-soft); max-width:58ch; margin:1.2rem auto 0; font-size:var(--wp--preset--font-size--lg); line-height:1.55; }

/* About: Story — prose with a brass motto pull-quote */
.story{ background:var(--stone); color:var(--ink); }
.story .wrap-narrow{ max-width:760px; }
.story .head{ margin-bottom:clamp(2rem,3.5vw,2.75rem); }
.story .head .eyebrow{ color:var(--brass-deep); }
.story .head h2{ font-size:clamp(2rem,4vw,3rem); max-width:18ch; line-height:1.08; margin:0; }
.story .prose p{ color:var(--ink-soft); font-size:1.06rem; line-height:1.72; max-width:68ch; margin:0; }
.story .prose p + p{ margin-top:1.15rem; }
.story .motto{ margin:clamp(2.75rem,5vw,4rem) 0 0; padding:clamp(2.25rem,4vw,3rem) 0; border-top:1px solid var(--line-on-light); border-bottom:1px solid var(--line-on-light); text-align:center; }
.story .motto > *{ margin-block:0; }
.story .motto-text{ font-family:var(--wp--preset--font-family--display); font-style:italic; font-weight:400; font-size:clamp(1.7rem,4vw,2.6rem); color:var(--brass-deep); line-height:1.2; letter-spacing:-.01em; }
.story .motto-cite{ font-family:var(--wp--preset--font-family--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-top:1rem; }

/* About: Team — editorial roster, no portraits */
.team{ background:var(--espresso-deep); color:var(--bone); }
.team .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.team .head .eyebrow{ color:var(--brass); }
.team .head h2{ color:var(--bone); font-size:clamp(1.9rem,3.6vw,2.8rem); }
.team .head p{ color:var(--bone-dim); max-width:58ch; margin-top:1rem; }
.team .roster{ max-width:var(--maxw); margin-inline:auto; }
.team .roster > *{ margin-block:0; }
.team .member{ display:grid; gap:.9rem; padding-block:clamp(1.9rem,3.2vw,2.8rem); border-top:1px solid var(--line-on-dark); }
.team .member > *{ margin-block:0; }
.team .member:last-child{ border-bottom:1px solid var(--line-on-dark); }
.team .m-name{ font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:clamp(1.45rem,2.6vw,1.95rem); color:var(--bone); line-height:1.1; margin:0; }
.team .m-role{ font-family:var(--wp--preset--font-family--mono); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:var(--brass); margin:.7rem 0 0; }
.team .m-bio p{ color:var(--bone-dim); line-height:1.7; max-width:64ch; margin:0; }
.team .m-bio p + p{ margin-top:.9rem; }
@media(min-width:820px){
  .team .member{ grid-template-columns:minmax(210px,0.5fr) 1fr; column-gap:clamp(2.5rem,5vw,5rem); align-items:start; }
}

/* About: Values — Three Pillars manifesto */
.values{ background:var(--stone); color:var(--ink); }
.values .head{ max-width:var(--maxw); margin-inline:auto; margin-bottom:clamp(2.5rem,4vw,3.5rem); }
.values .head .eyebrow{ color:var(--brass-deep); }
.values .head h2{ font-size:clamp(1.9rem,3.6vw,2.8rem); }
.values .head p{ color:var(--ink-soft); max-width:58ch; margin-top:1rem; }
.values .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(2rem,4vw,3rem); }
.values .grid > *{ margin-block:0; }
.values .value > *{ margin-block:0; }
.values .value .v-name{ font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:clamp(1.5rem,2.4vw,1.9rem); color:var(--ink); margin:0; }
.values .value .v-name::before{ content:""; display:block; width:34px; height:2px; background:var(--brass); margin-bottom:1.1rem; }
.values .value p{ color:var(--ink-soft); font-size:.98rem; line-height:1.66; margin:1rem 0 0; max-width:46ch; }
@media(min-width:820px){ .values .grid{ grid-template-columns:repeat(3,1fr); gap:clamp(2rem,3vw,3.25rem); } }

/* About: Rooted in Central Florida */
.rooted{ background:var(--espresso); color:var(--bone); }
.rooted .wrap{ max-width:var(--maxw); margin-inline:auto; }
.rooted .head{ display:grid; gap:1.4rem; margin-bottom:clamp(2.25rem,4vw,3rem); }
.rooted .head h2{ color:var(--bone); font-size:clamp(1.9rem,3.6vw,2.8rem); max-width:16ch; margin:0; }
.rooted .head-prose p{ color:var(--bone-dim); max-width:62ch; line-height:1.7; margin:0; }
.rooted .head-prose p + p{ margin-top:1rem; }
.rooted .areas-list{ justify-content:flex-start; max-width:none; }
.rooted .areas-list span{ color:var(--bone); background:var(--bark); border-color:var(--line-on-dark); }
@media(min-width:860px){
  .rooted .head{ grid-template-columns:0.85fr 1fr; column-gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
}

/* Contact: form + direct-contact sidebar */
.contact{ background:var(--stone); color:var(--ink); }
.contact .grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(2.5rem,5vw,4rem); }
@media(min-width:920px){ .contact .grid{ grid-template-columns:1.25fr .8fr; align-items:start; } }
.contact .form-side > *{ margin-block:0; }
.contact .form-side .eyebrow{ color:var(--brass-deep); }
.contact .form-side h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); margin:0 0 .8rem; }
.contact .form-side .intro{ color:var(--ink-soft); max-width:52ch; margin:0 0 2.2rem; line-height:1.6; }

/* Fluent Forms, themed to the brand */
.contact .fluentform{ --fluent-primary:var(--brass-deep); }
.contact .fluentform .ff-el-group{ margin-bottom:1.15rem; }
.contact .fluentform .ff-el-input--label label{ font-family:var(--wp--preset--font-family--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); font-weight:500; margin-bottom:.45rem; }
.contact .fluentform .ff-el-is-required.asterisk-right .ff-el-input--label label:after,
.contact .fluentform .ff-el-input--label.ff-el-is-required label:after{ color:var(--brass-deep); }
.contact .fluentform input[type="text"], .contact .fluentform input[type="email"],
.contact .fluentform input[type="tel"], .contact .fluentform select, .contact .fluentform textarea{
  width:100%; background:var(--bone); border:1px solid var(--line-on-light); border-radius:3px;
  padding:.8rem .9rem; font-family:var(--wp--preset--font-family--body); font-size:1rem; color:var(--ink); line-height:1.4;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.contact .fluentform input::placeholder, .contact .fluentform textarea::placeholder{ color:var(--ink-soft); opacity:.7; }
.contact .fluentform input:focus, .contact .fluentform select:focus, .contact .fluentform textarea:focus{
  outline:none; border-color:var(--brass); box-shadow:0 0 0 3px rgba(190,143,82,.18); }
.contact .fluentform textarea{ min-height:130px; resize:vertical; }
.contact .fluentform .ff-btn-submit{
  background:var(--brass); color:var(--espresso-deep); border:1px solid var(--brass); border-radius:3px;
  min-height:48px; padding:0 1.9rem; margin-top:.4rem;
  font-family:var(--wp--preset--font-family--body); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.06em;
  cursor:pointer; transition:background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.contact .fluentform .ff-btn-submit:hover{ background:var(--brass-deep); color:var(--bone); border-color:var(--brass-deep); }
.contact .fluentform .ff-message-success{ background:var(--bone); border:1px solid var(--brass); color:var(--ink); padding:1.2rem 1.3rem; border-radius:3px; }

/* Direct-contact sidebar card */
.contact .info-side{ background:var(--espresso); color:var(--bone); padding:clamp(1.75rem,3vw,2.4rem); border-radius:4px; }
.contact .info-side > *{ margin-block:0; }
.contact .info-side h3{ font-family:var(--wp--preset--font-family--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass); margin:0 0 1.5rem; }
.contact .info-side .info-item{ padding-block:1.05rem; border-top:1px solid var(--line-on-dark); }
.contact .info-side .info-item:first-of-type{ border-top:0; padding-top:0; }
.contact .info-side .info-item:last-of-type{ padding-bottom:0; }
.contact .info-side .il{ font-family:var(--wp--preset--font-family--mono); font-size:.63rem; letter-spacing:.12em; text-transform:uppercase; color:var(--bone-dim); margin:0 0 .35rem; }
.contact .info-side .iv{ color:var(--bone); margin:0; font-size:1.02rem; line-height:1.5; }
.contact .info-side .iv .sub{ display:block; color:var(--bone-dim); font-size:.84rem; margin-top:.3rem; }
.contact .info-side a{ color:var(--bone); text-decoration:none; transition:color .25s var(--ease); }
.contact .info-side a:hover{ color:var(--brass); }

/* ============================================================
   FOOTER
   ============================================================ */
.tch-footer{ background:var(--espresso-deep); color:var(--bone); padding-top:clamp(3.5rem,5vw,5rem); padding-bottom:2.5rem; padding-inline:clamp(1.25rem,4vw,3.5rem); }
.tch-footer a{ color:var(--bone-dim); text-decoration:none; }
.tch-footer a:hover{ color:var(--brass); }
.tch-footer .fcols{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:2.5rem 1.5rem; grid-template-columns:1fr 1fr; }
.tch-footer .fbrand{ grid-column:1 / -1; }
.tch-footer .tch-logo-foot{ height:52px; width:auto; margin-bottom:1.1rem; }
.tch-footer .fbrand h2{ font-family:var(--wp--preset--font-family--display); font-weight:500; color:var(--bone); font-size:1.4rem; margin:0 0 .9rem; }
.tch-footer .fbrand p{ color:var(--bone-dim); font-size:.92rem; max-width:42ch; }
.tch-footer h3{ font-family:var(--wp--preset--font-family--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass); margin:0 0 1.1rem; }
.tch-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.1rem; }
/* Comfortable tap targets for footer links (WCAG 2.5.8 target-size minimum) */
.tch-footer ul a{ display:inline-block; padding-block:.4rem; }
.tch-footer .fcontact p a{ display:inline-block; padding-block:.3rem; }
.tch-footer .fcontact p{ color:var(--bone-dim); font-size:.92rem; line-height:1.7; margin:0; }
.tch-footer .legal{ max-width:var(--maxw); margin:clamp(3rem,5vw,4rem) auto 0; padding-top:1.6rem; border-top:1px solid var(--line-on-dark); display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; justify-content:space-between; font-size:.8rem; color:var(--bone-dim); font-family:var(--wp--preset--font-family--mono); letter-spacing:.02em; }
@media (min-width:760px){
  .tch-footer .fcols{ grid-template-columns:2fr 1fr 1fr 1.4fr; }
  .tch-footer .fbrand{ grid-column:auto; }
}

/* ============================================================
   MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .svc:hover .photo{ transform:none; }
}

/* ============================================================
   THANK-YOU PAGE (Item 13: post-submit landing)
   ============================================================ */
.thankyou-hero{ background:var(--stone); color:var(--ink);
  padding-block:clamp(3.5rem,3rem + 6vw,7rem); padding-inline:clamp(1.25rem,4vw,3.5rem); }
.thankyou-hero .ty-grid{ max-width:var(--maxw); margin-inline:auto; display:grid; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
@media(min-width:860px){ .thankyou-hero .ty-grid{ grid-template-columns:1.05fr .95fr; } }
.thankyou-hero .ty-text > *{ margin-block:0; }
.thankyou-hero h1{ font-size:clamp(2.4rem,5vw,3.6rem); line-height:1.05; color:var(--ink); margin:.5rem 0 1.3rem; }
.thankyou-hero .lede{ color:var(--ink); margin-bottom:1.2rem; }
.thankyou-hero .ty-text p{ color:var(--ink-soft); max-width:58ch; }
.thankyou-hero .ty-text p + p{ margin-top:1rem; }
.thankyou-hero .ty-media{ margin:0; line-height:0; }
.thankyou-hero .ty-media img{ width:100%; height:auto; border-radius:5px; }
@media(max-width:859px){ .thankyou-hero .ty-media{ max-width:440px; } }

.thankyou-close{ background:var(--espresso-deep); color:var(--bone); text-align:center;
  border-top:1px solid var(--line-on-dark);
  padding-block:clamp(3rem,3rem + 4vw,5.5rem); padding-inline:clamp(1.25rem,4vw,3.5rem); }
.thankyou-close .wrap-narrow > *{ margin-block:0; }
.thankyou-close p{ color:var(--bone-dim); max-width:54ch; margin-inline:auto;
  font-size:var(--wp--preset--font-size--lg); line-height:1.55; }
.thankyou-close .cta-row{ justify-content:center; margin-top:1.9rem; }
