/* ==========================================================================
   Falardeau Flooring & Renovations — design system
   Palette: material-derived from real project photography (see brand notes)
   Type: Arvo (display) + Public Sans (body/UI)
   ========================================================================== */

@font-face{
  font-family:'Arvo';
  src:url('../fonts/arvo-regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Arvo';
  src:url('../fonts/arvo-bold.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Public Sans';
  src:url('../fonts/publicsans-regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Public Sans';
  src:url('../fonts/publicsans-medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Public Sans';
  src:url('../fonts/publicsans-semibold.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;
}

:root{
  /* --- color tokens --- */
  --canvas:#FAF8F6;
  --surface:#FFFFFF;
  --ink:#1C1917;
  --slate:#5C5650;
  --walnut:#2E2420;
  --walnut-ink:#F5F1EC;
  --walnut-muted:#C9BEB4;
  --terracotta:#B5502A;
  --terracotta-tint:#DD8257;
  --terracotta-ink:#FFFFFF;
  --hairline:#E7E2DD;
  --border:#998572;
  --error:#B42318;
  --success:#166534;

  /* --- type --- */
  --font-display:'Arvo', Georgia, serif;
  --font-body:'Public Sans', -apple-system, BlinkMacSystemFont, sans-serif;

  /* --- layout --- */
  --maxw:1160px;
  --radius-sm:4px;
  --radius:10px;
  --radius-lg:20px;
  --space-1:8px;
  --space-2:16px;
  --space-3:24px;
  --space-4:40px;
  --space-5:64px;
  --space-6:96px;
}

/* --- reset --- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.15;margin:0 0 var(--space-2);color:var(--ink);}
h1{font-size:clamp(2.1rem,4.5vw,3.4rem);}
h2{font-size:clamp(1.6rem,3vw,2.3rem);}
h3{font-size:1.3rem;}
p{margin:0 0 var(--space-2);}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;}

/* --- visually-hidden utility (skip link target text, sr-only labels) --- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* --- focus visibility (WCAG 2.4.7) --- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:3px solid var(--terracotta);
  outline-offset:2px;
  border-radius:var(--radius-sm);
}
/* dark-background containers need the lighter tint to keep the ring at 3:1+ non-text contrast */
.hero :focus-visible,.cta-band :focus-visible,.page-hero :focus-visible,.site-footer :focus-visible,.mobile-cta-bar :focus-visible,.about-photo-slot :focus-visible{
  outline-color:var(--terracotta-tint);
}
.g7-story-hero :focus-visible,.g7-story-cta :focus-visible,.g8-advice-hero :focus-visible,.g8-article-hero :focus-visible,.g8-planner-hero :focus-visible,.g8-advice-cta :focus-visible,.g9-about-hero :focus-visible,.g9-about-cta :focus-visible,.g10-editorial-hero :focus-visible,.g10-service-hero :focus-visible,.g10-contact-details :focus-visible{
  outline-color:var(--terracotta-tint);
}

/* --- skip link --- */
.skip-link{
  position:absolute;left:var(--space-2);top:-60px;z-index:200;
  background:var(--walnut);color:var(--walnut-ink);padding:10px 18px;border-radius:var(--radius-sm);
  font-family:var(--font-body);font-weight:600;font-size:14px;text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{top:var(--space-2);}

/* --- layout shell --- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--space-3);}
section{padding:var(--space-5) 0;}
@media (max-width:640px){
  section{padding:var(--space-4) 0;}
}

/* ==========================================================================
   Header / nav
   ========================================================================== */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(250,248,246,0.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hairline);
}
.header-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand svg{height:36px;width:auto;}
.brand-word{font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:var(--ink);}
.brand-sub{display:none;}

.main-nav{display:flex;align-items:center;gap:var(--space-4);}
.main-nav ul{display:flex;align-items:center;gap:var(--space-3);}
.nav-parent{position:relative;}
.nav-parent-toggle{font-weight:600;font-size:15px;text-decoration:none;color:var(--ink);padding:8px 2px;border:0;border-bottom:2px solid transparent;background:none;cursor:pointer;}
.nav-parent-toggle:hover,.nav-parent-toggle[aria-expanded="true"]{border-bottom-color:var(--terracotta);}
.nav-parent-toggle::after{content:"";display:inline-block;width:7px;height:7px;margin:0 0 3px 8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s ease;}
.nav-parent-toggle[aria-expanded="true"]::after{transform:rotate(225deg);margin-bottom:0;}
.nav-submenu{position:absolute;top:calc(100% + 8px);left:-12px;display:block;min-width:180px;padding:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:0 10px 24px rgba(46,36,32,.12);}
.nav-submenu[hidden]{display:none;}
.nav-submenu li{display:block;}
.nav-submenu a{display:block;padding:10px 12px;white-space:nowrap;}
.nav-submenu a:hover,.nav-submenu a[aria-current="page"]{background:var(--canvas);border-bottom-color:transparent;}
.main-nav a{
  font-weight:600;font-size:15px;text-decoration:none;color:var(--ink);
  padding:8px 2px;border-bottom:2px solid transparent;
}
.main-nav a:hover,.main-nav a[aria-current="page"]{border-bottom-color:var(--terracotta);}
.main-nav a.nav-cta{
  color:var(--terracotta-ink);border-bottom:none;
  font-weight:700;font-size:15px;
  padding:14px 26px;
}
.main-nav a.nav-cta:hover{color:var(--terracotta-ink);}

.nav-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--terracotta);color:var(--terracotta-ink);
  font-weight:700;font-size:14px;text-decoration:none;
  padding:11px 20px;border-radius:999px;white-space:nowrap;
  border:1px solid var(--terracotta);
}
.nav-cta:hover{background:#9c4423;border-color:#9c4423;}

.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;cursor:pointer;}
.nav-toggle svg{width:22px;height:22px;display:block;}

@media (max-width:860px){
  .brand-word{font-size:1.1rem;}
  .main-nav{
    position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--canvas);
    flex-direction:column;align-items:flex-start;padding:var(--space-3);
    transform:translateX(100%);transition:transform .2s ease;
    overflow-y:auto;height:calc(100vh - 64px);
  }
  .main-nav.open{transform:translateX(0);}
  .main-nav ul{flex-direction:column;width:100%;gap:0;}
  .main-nav li{width:100%;border-bottom:1px solid var(--hairline);}
  .main-nav a{display:block;padding:16px 4px;font-size:18px;}
  .nav-parent-toggle{display:block;width:100%;padding:16px 4px;text-align:left;font-size:18px;}
  .nav-parent-toggle::after{float:right;margin-top:4px;}
  .nav-submenu{position:static;min-width:0;padding:0 0 8px 16px;border:0;border-radius:0;box-shadow:none;background:transparent;}
  .nav-submenu a{padding:12px 4px;font-size:17px;}
  .nav-cta{margin-top:var(--space-3);width:100%;justify-content:center;padding:14px 20px;}
  .nav-toggle{display:block;}
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;
  padding:14px 26px;border-radius:999px;border:1px solid transparent;
  transition:transform .12s ease, background .15s ease;
}
.btn:active{transform:scale(0.98);}
.btn-primary{background:var(--terracotta);color:var(--terracotta-ink);border-color:var(--terracotta);}
.btn-primary:hover{background:#9c4423;border-color:#9c4423;}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--border);}
.btn-secondary:hover{background:var(--surface);border-color:var(--ink);}
.btn-on-dark{background:transparent;color:var(--walnut-ink);border-color:var(--walnut-muted);}
.btn-on-dark:hover{background:rgba(255,255,255,0.08);}
.btn-block{width:100%;}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  background:var(--walnut);color:var(--walnut-ink);
  padding:var(--space-6) 0 var(--space-5);
  position:relative;overflow:hidden;
}
.hero .wrap{display:grid;grid-template-columns:1.05fr 0.95fr;gap:var(--space-5);align-items:center;}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--walnut-muted);margin-bottom:var(--space-2);
}
.hero-eyebrow::before{content:"";width:28px;height:2px;background:var(--terracotta);display:inline-block;}
.hero h1{color:var(--walnut-ink);}
.hero p.lead{color:var(--walnut-muted);font-size:1.15rem;max-width:46ch;}
.hero-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-3);}
.hero-trust{display:flex;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;}
.hero-trust-item{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--walnut-muted);}
.hero-trust-item svg{width:18px;height:18px;flex-shrink:0;color:var(--terracotta-tint);}

.hero-media{position:relative;}
.frame{position:relative;border-radius:0;overflow:hidden;}
.frame img{width:100%;height:100%;object-fit:cover;display:block;}
/* signature device: carpenter's-square corner brackets, echoing the icon mark */
.corner-mark{position:absolute;width:34px;height:34px;pointer-events:none;z-index:2;}
.corner-mark::before,.corner-mark::after{content:"";position:absolute;background:var(--terracotta);}
.corner-mark.tl{top:-3px;left:-3px;}
.corner-mark.tl::before{top:0;left:0;width:100%;height:5px;}
.corner-mark.tl::after{top:0;left:0;width:5px;height:100%;}
.corner-mark.br{bottom:-3px;right:-3px;}
.corner-mark.br::before{bottom:0;right:0;width:100%;height:5px;}
.corner-mark.br::after{bottom:0;right:0;width:5px;height:100%;}

.stock-tag{
  position:absolute;bottom:12px;right:12px;z-index:3;
  background:rgba(28,25,23,0.72);color:#fff;font-size:11px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:999px;
  backdrop-filter:blur(3px);
}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;gap:var(--space-4);}
  .hero-media{order:-1;}
}

/* ==========================================================================
   Worries / trust grid
   ========================================================================== */
.section-head{max-width:640px;margin-bottom:var(--space-4);}
.eyebrow{
  display:block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--terracotta);margin-bottom:10px;
}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);}
@media (max-width:860px){
  .grid-3,.grid-4{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .grid-3,.grid-2,.grid-4{grid-template-columns:1fr;}
}

.card{
  background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);
  padding:var(--space-3);
}
.worry-card{padding:var(--space-3);}
.worry-q{font-family:var(--font-body);font-weight:700;font-size:15px;color:var(--slate);margin-bottom:8px;}
.worry-q::before{content:"“";color:var(--border);}
.worry-a{font-size:15px;color:var(--ink);margin:0;}
.worry-a strong{color:var(--terracotta);}

/* ==========================================================================
   Services
   ========================================================================== */
.service-card{
  position:relative;border-radius:0;overflow:hidden;
  aspect-ratio:4/5;text-decoration:none;color:#fff;
  display:flex;align-items:flex-end;
}
.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.service-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(28,20,17,0.88) 0%, rgba(28,20,17,0.25) 55%, rgba(28,20,17,0.05) 100%);
}
.service-card-body{position:relative;z-index:2;padding:var(--space-3);width:100%;}
.service-card h3{color:#fff;margin-bottom:4px;font-size:1.15rem;}
.service-card p{color:var(--walnut-muted);font-size:14px;margin:0;}
.service-card:focus-visible{outline:3px solid var(--terracotta-tint);outline-offset:3px;}

/* ==========================================================================
   Featured project story
   ========================================================================== */
.project-block{background:var(--surface);border:1px solid var(--hairline);border-radius:0;overflow:hidden;}
.project-grid{display:grid;grid-template-columns:1fr 1fr;}
.project-media{position:relative;min-height:340px;}
.project-media img{width:100%;height:100%;object-fit:cover;}
.project-body{padding:var(--space-4);}
.placeholder-tag{
  display:inline-block;background:var(--canvas);border:1px dashed var(--border);color:var(--slate);
  font-size:12px;font-weight:600;letter-spacing:.03em;padding:5px 11px;border-radius:999px;margin-bottom:var(--space-2);
}
.project-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2) var(--space-3);margin:var(--space-3) 0;padding:var(--space-3) 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.fact-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);margin-bottom:3px;}
.fact-value{font-weight:600;font-size:15px;}
@media (max-width:800px){
  .project-grid{grid-template-columns:1fr;}
  .project-media{min-height:260px;}
  .project-facts{grid-template-columns:1fr 1fr;}
}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonial-card{padding:var(--space-3);position:relative;}
.testimonial-quote{font-family:var(--font-display);font-size:1.05rem;line-height:1.5;color:var(--ink);margin-bottom:var(--space-2);}
.testimonial-meta{display:flex;align-items:center;gap:10px;}
.avatar-mono{
  width:38px;height:38px;border-radius:50%;background:var(--walnut);color:var(--walnut-ink);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;
}
.testimonial-name{font-weight:700;font-size:14px;}
.testimonial-loc{font-size:13px;color:var(--slate);}

/* ==========================================================================
   About
   ========================================================================== */
.about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:var(--space-5);align-items:center;}
.about-photo-slot{
  aspect-ratio:4/5;border-radius:0;background:var(--walnut);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.about-photo-slot .mono-initial{font-family:var(--font-display);font-size:5rem;color:var(--terracotta-tint);}
.about-photo-caption{
  position:absolute;bottom:0;left:0;right:0;background:rgba(28,20,17,0.85);color:var(--walnut-muted);
  font-size:12px;text-align:center;padding:10px;
}
.about-list{margin-top:var(--space-3);}
.about-list li{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--hairline);font-size:15px;}
.about-list li:first-child{border-top:none;}
.about-list svg{width:20px;height:20px;flex-shrink:0;color:var(--terracotta);margin-top:2px;}
@media (max-width:800px){
  .about-grid{grid-template-columns:1fr;}
}

/* ==========================================================================
   FAQ (accordion)
   ========================================================================== */
.faq-item{border-bottom:1px solid var(--hairline);}
.faq-item summary{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);
  padding:var(--space-2) 0;cursor:pointer;font-weight:700;font-size:16px;list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-icon{width:22px;height:22px;flex-shrink:0;border:1px solid var(--border);border-radius:50%;position:relative;}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;background:var(--ink);top:50%;left:50%;transform:translate(-50%,-50%);}
.faq-icon::before{width:10px;height:2px;}
.faq-icon::after{width:2px;height:10px;transition:opacity .15s ease;}
.faq-item[open] .faq-icon::after{opacity:0;}
.faq-answer{padding:0 0 var(--space-3);color:var(--slate);font-size:15px;max-width:68ch;}

/* ==========================================================================
   Final CTA band
   ========================================================================== */
.cta-band{background:var(--walnut);color:var(--walnut-ink);text-align:center;}
.cta-band h2{color:#fff;}
.cta-band p{color:var(--walnut-muted);max-width:52ch;margin-left:auto;margin-right:auto;}
.cta-band .hero-actions{justify-content:center;}

/* ==========================================================================
   Contact / form
   ========================================================================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:start;}
.form-field{margin-bottom:var(--space-2);}
.form-field label{display:block;font-weight:600;font-size:14px;margin-bottom:6px;}
.form-field .hint{font-weight:400;color:var(--slate);font-size:13px;}
.form-field input,.form-field select,.form-field textarea{
  width:100%;font-family:var(--font-body);font-size:16px;color:var(--ink);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:12px 14px;
}
.form-field textarea{resize:vertical;min-height:120px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);}
.form-error{color:var(--error);font-size:13px;margin-top:6px;display:none;}
.form-error.show{display:block;}
.form-field.invalid input,.form-field.invalid select,.form-field.invalid textarea{border-color:var(--error);}
.form-success{
  background:#EFF6EE;border:1px solid var(--success);color:var(--success);
  padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-weight:600;display:none;
}
.form-success.show{display:block;}
@media (max-width:640px){
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}

.info-list{margin-top:var(--space-3);}
.info-list li{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--hairline);}
.info-list li:first-child{border-top:none;}
.info-list svg{width:20px;height:20px;color:var(--terracotta-tint);flex-shrink:0;margin-top:2px;}
.info-list a{text-decoration:none;font-weight:600;}
.info-list a:hover{color:var(--terracotta-tint);}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--walnut);color:var(--walnut-muted);padding:var(--space-5) 0 var(--space-3);}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.2fr;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid rgba(255,255,255,0.12);}
.legacy-footer-grid{display:none;}
.footer-brand-name{font-family:var(--font-display);font-size:1.25rem;color:#fff;margin-bottom:var(--space-1);}
.footer-brand svg{height:34px;width:auto;margin-bottom:var(--space-2);}
.footer-tag{max-width:32ch;font-size:14px;}
.footer-col h3{font-family:var(--font-body);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#fff;margin-bottom:var(--space-2);}
.footer-col li{margin-bottom:10px;font-size:14px;}
.footer-col a{text-decoration:none;color:var(--walnut-muted);}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-3);font-size:13px;flex-wrap:wrap;gap:8px;}
@media (max-width:760px){
  .footer-grid{grid-template-columns:1fr;gap:var(--space-3);}
}

/* ==========================================================================
   Sticky mobile CTA bar (device-aware contact, per brief)
   ========================================================================== */
.mobile-cta-bar{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:150;
  background:var(--walnut);border-top:1px solid rgba(255,255,255,0.1);
  padding:10px var(--space-2);
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.mobile-cta-bar ul{display:flex;}
.mobile-cta-bar li{flex:1;}
.mobile-cta-bar a{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  text-decoration:none;color:var(--walnut-muted);font-size:11px;font-weight:600;padding:6px 4px;
}
.mobile-cta-bar a svg{width:20px;height:20px;color:var(--walnut-muted);}
.mobile-cta-bar a.primary{color:var(--terracotta-tint);}
.mobile-cta-bar a.primary svg{color:var(--terracotta-tint);}
@media (max-width:640px){
  .mobile-cta-bar{display:block;}
  body{padding-bottom:64px;}
}

/* ==========================================================================
   Page hero (non-home pages)
   ========================================================================== */
.page-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-5) 0 var(--space-4);}
.page-hero .eyebrow{color:var(--terracotta-tint);}
.page-hero h1{color:#fff;margin-bottom:8px;}
.page-hero p{color:var(--walnut-muted);max-width:56ch;margin:0;}
.breadcrumb{font-size:13px;color:var(--walnut-muted);margin-bottom:var(--space-2);}
.breadcrumb a{color:var(--walnut-muted);text-decoration:none;}
.breadcrumb a:hover{color:#fff;}

/* G3 Flooring service page (bounded extension) */
.g3-flooring-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g3-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-5);align-items:center;}
.g3-hero-copy h1{color:var(--walnut-ink);max-width:13ch;}
.g3-hero-copy .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:48ch;}
.g3-hero-media{position:relative;overflow:hidden;min-height:360px;}
.g3-hero-media img{width:100%;height:100%;min-height:360px;object-fit:cover;}
.g3-surface-section{background:var(--surface);}
.g3-decision-grid,.g3-material-grid{margin-top:var(--space-4);}
.g3-material-card h3{margin-bottom:10px;}
.g3-material-card p{font-size:15px;color:var(--slate);}
.g3-material-card p:last-child{margin-bottom:0;}
.g3-material-card strong{color:var(--ink);}
.g3-check-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-5);align-items:start;}
.g3-checklist{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-3);border-top:1px solid var(--hairline);}
.g3-checklist li{padding:14px 0 14px 24px;border-bottom:1px solid var(--hairline);font-size:15px;position:relative;}
.g3-checklist li::before{content:"";position:absolute;left:0;top:20px;width:9px;height:9px;border:2px solid var(--terracotta);border-radius:50%;}
.g3-process-list{max-width:820px;border-top:1px solid var(--hairline);}
.g3-process-list li{display:grid;grid-template-columns:52px 1fr;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g3-process-list li>span{font-family:var(--font-display);font-size:1.25rem;color:var(--terracotta);}
.g3-process-list h3{font-family:var(--font-body);font-size:1rem;margin-bottom:5px;}
.g3-process-list p{font-size:15px;color:var(--slate);margin:0;}
.g3-proof{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);}
.g3-proof>div{max-width:680px;}
.g3-proof p{color:var(--slate);}
.faq-list{max-width:860px;}
@media (max-width:900px){.g3-hero-grid{grid-template-columns:1fr;gap:var(--space-4);}.g3-hero-media{order:-1;min-height:280px;}.g3-hero-media img{min-height:280px;}.g3-check-grid{grid-template-columns:1fr;gap:var(--space-3);}}
@media (max-width:640px){.g3-checklist{grid-template-columns:1fr;}.g3-proof{display:block;}.g3-proof .btn{margin-top:var(--space-2);}.g3-process-list li{grid-template-columns:40px 1fr;}}

/* G4 Kitchen service page (bounded extension) */
.g4-kitchen-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g4-kitchen-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-5);align-items:center;}
.g4-kitchen-copy h1{color:var(--walnut-ink);max-width:14ch;}
.g4-kitchen-copy .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:49ch;}
.g4-kitchen-media{position:relative;overflow:hidden;min-height:360px;}
.g4-kitchen-media img{width:100%;height:100%;min-height:360px;object-fit:cover;}
.g4-surface-section{background:var(--surface);}
.g4-decision-grid,.g4-scope-grid{margin-top:var(--space-4);}
.g4-decision-card h3{margin-bottom:10px;}
.g4-decision-card p{font-size:15px;color:var(--slate);}
.g4-decision-card p:last-child{margin-bottom:0;}
.g4-confirmed{border-top:1px solid var(--hairline);padding-top:12px;margin-top:16px;font-size:13px!important;}
.g4-confirmed span{color:var(--ink);font-weight:600;}
.g4-check-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-5);align-items:start;}
.g4-checklist{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-3);border-top:1px solid var(--hairline);}
.g4-checklist li{padding:14px 0 14px 24px;border-bottom:1px solid var(--hairline);font-size:15px;position:relative;}
.g4-checklist li::before{content:"";position:absolute;left:0;top:20px;width:9px;height:9px;border:2px solid var(--terracotta);border-radius:50%;}
.g4-process-list{max-width:820px;border-top:1px solid var(--hairline);}
.g4-process-list li{display:grid;grid-template-columns:52px 1fr;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g4-process-list li>span{font-family:var(--font-display);font-size:1.25rem;color:var(--terracotta);}
.g4-process-list h3{font-family:var(--font-body);font-size:1rem;margin-bottom:5px;}
.g4-process-list p{font-size:15px;color:var(--slate);margin:0;}
.g4-proof{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);}
.g4-proof>div{max-width:680px;}
.g4-proof p{color:var(--slate);}
@media (max-width:900px){.g4-kitchen-hero-grid{grid-template-columns:1fr;gap:var(--space-4);}.g4-kitchen-media{order:-1;min-height:280px;}.g4-kitchen-media img{min-height:280px;}.g4-check-grid{grid-template-columns:1fr;gap:var(--space-3);}}
@media (max-width:640px){.g4-checklist{grid-template-columns:1fr;}.g4-proof{display:block;}.g4-proof .btn{margin-top:var(--space-2);}.g4-process-list li{grid-template-columns:40px 1fr;}}

/* G4 CRO syllabus refinements (bounded content hierarchy) */
.g4-kitchen-section{background:var(--canvas);}
.g4-situation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--space-5);margin-top:var(--space-4);border-top:1px solid var(--hairline);}
.g4-situation-grid article{padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g4-situation-grid h3{font-family:var(--font-body);font-size:1rem;margin-bottom:7px;}
.g4-situation-grid p{font-size:15px;color:var(--slate);margin:0;max-width:48ch;}
.g4-primary-decisions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g4-primary-decisions article{background:var(--canvas);border-top:3px solid var(--terracotta);padding:var(--space-3);}
.g4-primary-decisions h3{margin-bottom:9px;}
.g4-primary-decisions article>p:not(.g4-confirmed){font-size:15px;color:var(--slate);}
.g4-primary-decisions article>p:last-child{margin-bottom:0;}
.g4-connected{margin-top:var(--space-5);border-top:1px solid var(--hairline);padding-top:var(--space-3);}
.g4-connected>ul{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-2);}
.g4-connected li{display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--slate);}
.g4-connected li strong{color:var(--ink);font-size:15px;}
.g4-information-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-4);}
.g4-information-grid article{border-top:1px solid var(--border);padding-top:var(--space-2);}
.g4-information-grid h3{font-family:var(--font-body);font-size:1rem;margin-bottom:var(--space-2);}
.g4-information-grid li{padding:9px 0;border-bottom:1px solid var(--hairline);font-size:15px;color:var(--slate);}
.g4-connected-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-4);}
.g4-connected-groups article{border-left:3px solid var(--terracotta);padding-left:var(--space-2);}
.g4-connected-groups h3{font-family:var(--font-body);font-size:1rem;margin-bottom:7px;}
.g4-connected-groups p{font-size:15px;color:var(--slate);margin:0;}
.g4-section-close{max-width:68ch;color:var(--slate);margin:var(--space-4) 0 0;}
.g4-conversation-list{max-width:820px;border-top:1px solid var(--hairline);margin-top:var(--space-4);}
.g4-conversation-list li{display:grid;grid-template-columns:52px 1fr;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g4-conversation-list li>span{font-family:var(--font-display);font-size:1.25rem;color:var(--terracotta);}
.g4-conversation-list h3{font-family:var(--font-body);font-size:1rem;margin-bottom:5px;}
.g4-conversation-list p{font-size:15px;color:var(--slate);margin:0;}
.g4-secondary-link{align-self:center;color:var(--walnut-ink);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;}
.g4-secondary-link:hover{color:#fff;}
.g4-proof-compact{background:var(--canvas);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.g4-proof-compact .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4);padding-bottom:var(--space-4);}
.g4-proof-compact h2{font-size:1.35rem;margin-bottom:7px;}
.g4-proof-compact p{color:var(--slate);font-size:14px;margin:0;max-width:70ch;}
@media (max-width:900px){.g4-primary-decisions{grid-template-columns:1fr 1fr;}.g4-information-grid,.g4-connected-groups{gap:var(--space-3);}.g4-kitchen-hero-grid{grid-template-columns:1fr;gap:var(--space-4);}.g4-kitchen-media{order:-1;min-height:280px;}.g4-kitchen-media img{min-height:280px;}}
@media (max-width:640px){.g4-situation-grid,.g4-primary-decisions,.g4-connected>ul,.g4-information-grid,.g4-connected-groups{grid-template-columns:1fr;}.g4-proof-compact .wrap{display:block;}.g4-proof-compact .g4-secondary-link{display:inline-block;margin-top:var(--space-2);}.g4-conversation-list li{grid-template-columns:40px 1fr;}}

/* G5 Bathroom service page (bounded content hierarchy) */
.g5-bathroom-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g5-bathroom-hero h1{color:var(--walnut-ink);max-width:15ch;}
.g5-bathroom-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:54ch;}
.g5-bathroom-section{background:var(--canvas);}
.g5-surface-section{background:var(--surface);}
.g5-situation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--space-5);margin-top:var(--space-4);border-top:1px solid var(--hairline);}
.g5-situation-grid article{padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g5-situation-grid h3,.g5-information-grid h3,.g5-connected-grid h3{font-family:var(--font-body);font-size:1rem;margin-bottom:7px;}
.g5-situation-grid p,.g5-connected-grid p,.g5-evidence-grid p,.g5-source-note{font-size:15px;color:var(--slate);margin:0;max-width:52ch;}
.g5-information-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-4);}
.g5-information-grid article{border-top:1px solid var(--border);padding-top:var(--space-2);}
.g5-information-grid li{padding:9px 0;border-bottom:1px solid var(--hairline);font-size:15px;color:var(--slate);}
.g5-primary-decisions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g5-primary-decisions article{background:var(--canvas);border-top:3px solid var(--terracotta);padding:var(--space-3);}
.g5-primary-decisions h3{margin:9px 0;}
.g5-primary-decisions p{font-size:15px;color:var(--slate);margin:0;}
.g5-supporting{margin-top:var(--space-5);border-top:1px solid var(--hairline);padding-top:var(--space-3);}
.g5-supporting ul{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-2);}
.g5-supporting li{display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--slate);}
.g5-supporting strong{color:var(--ink);font-size:15px;}
.g5-connected-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-top:var(--space-4);}
.g5-connected-grid article{border-left:3px solid var(--terracotta);padding-left:var(--space-2);}
.g5-section-close{max-width:68ch;color:var(--slate);margin:var(--space-4) 0 0;}
.g5-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-4);}
.g5-evidence-grid article{border-top:3px solid var(--terracotta);padding-top:var(--space-3);}
.g5-evidence-grid h3{margin:9px 0;}
.g5-evidence-grid p{max-width:62ch;}
.g5-source-note{font-size:13px!important;margin-top:var(--space-2)!important;}
.g5-proof-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--hairline);padding-top:var(--space-3);}
.g5-proof-link p{font-size:14px;color:var(--slate);margin:0;max-width:72ch;}
.g5-secondary-link{align-self:center;color:var(--walnut-ink);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;white-space:nowrap;}
.g5-secondary-link:hover{color:var(--terracotta);}
.g5-related-link{color:var(--slate);margin-top:var(--space-4);}
.g5-related-link a{color:var(--ink);font-weight:700;text-underline-offset:4px;}
.g5-conversation-list{max-width:820px;border-top:1px solid var(--hairline);margin-top:var(--space-4);}
.g5-conversation-list li{display:grid;grid-template-columns:52px 1fr;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g5-conversation-list li>span{font-family:var(--font-display);font-size:1.25rem;color:var(--terracotta);}
.g5-conversation-list h3{font-family:var(--font-body);font-size:1rem;margin-bottom:5px;}
.g5-conversation-list p{font-size:15px;color:var(--slate);margin:0;}
.g5-conversation-cta{margin-top:var(--space-4);}
@media (max-width:900px){.g5-primary-decisions{grid-template-columns:1fr 1fr;}.g5-connected-grid{grid-template-columns:1fr 1fr;}.g5-supporting ul{grid-template-columns:1fr 1fr;}.g5-evidence-grid{gap:var(--space-3);}}
@media (max-width:640px){.g5-situation-grid,.g5-primary-decisions,.g5-information-grid,.g5-connected-grid,.g5-supporting ul,.g5-evidence-grid{grid-template-columns:1fr;}.g5-proof-link{display:block;}.g5-proof-link .g5-secondary-link{display:inline-block;margin-top:var(--space-2);}.g5-conversation-list li{grid-template-columns:40px 1fr;}}

/* G6 Projects landing and first canonical story (bounded extension) */
.g6-projects-hero,.g6-story-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g6-projects-hero h1,.g6-story-hero h1{color:var(--walnut-ink);max-width:18ch;}
.g6-projects-hero .lead,.g6-story-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:58ch;}
.g6-project-index,.g6-story-section,.g6-projects-next{background:var(--canvas);}
.g6-featured-story,.g6-story-surface{background:var(--surface);}
.g6-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g6-project-grid article{border-top:3px solid var(--border);padding:var(--space-3) 0;}
.g6-project-grid article.g6-project-feature{border-top-color:var(--terracotta);background:var(--surface);padding:var(--space-3);}
.g6-project-grid h3{margin:9px 0;}
.g6-project-grid p{color:var(--slate);font-size:15px;max-width:42ch;}
.g6-status{color:var(--slate);font-size:13px;}
.g6-project-link,.g6-secondary-link{display:inline-block;color:var(--ink);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;}
.g6-featured-grid,.g6-story-hero-grid,.g6-story-grid,.g6-story-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:center;}
.g6-featured-grid p{max-width:58ch;color:var(--slate);}
.g6-featured-location{font-weight:700;color:var(--ink)!important;}
.g6-featured-note{border-left:3px solid var(--terracotta);padding-left:var(--space-3);}
.g6-featured-note p{margin:8px 0 0;}
.g6-projects-next .section-head{max-width:780px;}
.g6-projects-next .hero-actions{margin-top:var(--space-3);align-items:center;}
.g6-story-hero-grid{align-items:stretch;}
.g6-proof-media{margin:0;overflow:hidden;background:var(--surface);}
.g6-proof-media img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover;}
.g6-proof-media figcaption{padding:9px 12px;color:var(--slate);font-size:12px;}
.g6-story-hero .g6-proof-media{background:var(--walnut);}
.g6-story-hero .g6-proof-media figcaption{color:var(--walnut-muted);}
.g6-story-grid{align-items:start;}
.g6-story-grid>div{padding-top:var(--space-2);}
.g6-story-grid p,.g6-story-section .section-head>p,.g6-story-narrow p{color:var(--slate);max-width:66ch;}
.g6-story-points{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g6-story-points article{border-top:1px solid var(--border);padding-top:var(--space-2);}
.g6-story-points h3{font-family:var(--font-body);font-size:1rem;margin-bottom:7px;}
.g6-story-points p{font-size:15px;color:var(--slate);margin:0;}
.g6-connected-line{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--space-4);}
.g6-connected-line span{border:1px solid var(--border);padding:10px 14px;color:var(--ink);font-size:14px;background:var(--canvas);}
.g6-proof-section{background:var(--surface);}
.g6-proof-grid{display:grid;grid-template-columns:1.1fr 1.1fr .8fr;gap:var(--space-3);margin-top:var(--space-4);align-items:start;}
.g6-proof-grid .g6-proof-media img{min-height:240px;}
.g6-story-narrow{max-width:780px;}
.g6-story-cta{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-5) 0;}
.g6-story-cta h2{color:var(--walnut-ink);}
.g6-story-cta p{color:var(--walnut-muted);max-width:58ch;}
.g6-story-cta .g6-secondary-link{color:var(--walnut-ink);margin-left:var(--space-3);}
.g6-story-cta .g6-secondary-link:hover{color:#fff;}
@media (max-width:900px){.g6-project-grid{grid-template-columns:1fr 1fr;}.g6-featured-grid,.g6-story-hero-grid,.g6-story-grid,.g6-story-cta-grid{grid-template-columns:1fr;gap:var(--space-4);}.g6-story-hero-grid .g6-proof-media{order:-1;}.g6-proof-grid{grid-template-columns:1fr 1fr;}.g6-proof-grid .g6-proof-media:last-child{grid-column:1 / -1;max-width:50%;}}
@media (max-width:640px){.g6-project-grid,.g6-story-points,.g6-proof-grid{grid-template-columns:1fr;}.g6-proof-grid .g6-proof-media:last-child{grid-column:auto;max-width:none;}.g6-story-cta .g6-secondary-link{display:block;margin:var(--space-3) 0 0;}.g6-connected-line{display:grid;grid-template-columns:1fr 1fr;}.g6-connected-line span{padding:9px 10px;}}

/* ==========================================================================
   Gallery page
   ========================================================================== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
@media (max-width:860px){.gallery-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.gallery-grid{grid-template-columns:1fr;}}
.gallery-item{position:relative;border-radius:0;overflow:hidden;aspect-ratio:4/3;}
.gallery-item img{width:100%;height:100%;object-fit:cover;}
.gallery-item-tag{
  position:absolute;top:10px;left:10px;background:rgba(28,20,17,0.75);color:#fff;
  font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;
}

/* ==========================================================================
   Utility
   ========================================================================== */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.divider{height:1px;background:var(--hairline);border:none;margin:var(--space-4) 0;}

/* G7 remaining project stories (bounded additive extension) */
.g7-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g7-project-card{position:relative;border-top:3px solid var(--border);background:var(--canvas);transition:transform 250ms ease-out,border-color 250ms ease-out;}
.g7-project-card .g6-project-link::after{content:"";position:absolute;inset:0;}
@media (hover:hover) and (pointer:fine){.g7-project-card:hover,.g7-project-card:focus-within{transform:translateY(-4px);border-top-color:var(--terracotta);}}
.g7-project-card:focus-within{outline:3px solid var(--terracotta);outline-offset:3px;}
.g7-project-card .g6-project-link:focus-visible{outline:none;}
.g7-project-card.g6-project-feature{border-top-color:var(--terracotta);}
.g7-project-card-media{aspect-ratio:4/3;overflow:hidden;background:var(--surface);}
.g7-project-card-media img{display:block;width:100%;height:100%;object-fit:cover;}
.g7-project-card-body{padding:var(--space-3);}
.g7-project-card-body h3{margin:9px 0;}
.g7-project-card-body p{color:var(--slate);font-size:15px;max-width:42ch;}
.g7-project-card-body .g6-project-link{margin-top:5px;}
.g7-text-card{background:var(--surface);align-self:start;}
.g7-story-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g7-story-hero h1{color:var(--walnut-ink);max-width:18ch;}
.g7-story-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:56ch;}
.g7-story-hero-grid,.g7-story-grid,.g7-story-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:center;}
.g7-story-section{background:var(--canvas);padding:var(--space-5) 0;}
.g7-story-surface{background:var(--surface);}
.g7-story-narrow{max-width:780px;}
.g7-story-grid{align-items:start;}
.g7-story-grid h3{font-family:var(--font-body);font-size:1rem;margin-top:var(--space-3);}
.g7-story-grid p,.g7-story-narrow p{color:var(--slate);max-width:66ch;}
.g7-proof-media{margin:0;overflow:hidden;background:var(--surface);}
.g7-proof-media img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover;}
.g7-proof-media figcaption{padding:9px 12px;color:var(--slate);font-size:12px;}
.g7-story-hero .g7-proof-media{background:var(--walnut);}
.g7-story-hero .g7-proof-media figcaption{color:var(--walnut-muted);}
.g7-text-note{border-left:3px solid var(--terracotta);padding:var(--space-3);background:var(--surface);}
.g7-text-note p{margin:8px 0 0;}
.g7-source-note{font-size:13px!important;margin-top:var(--space-3);}
.g7-story-cta{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-5) 0;}
.g7-story-cta h2{color:var(--walnut-ink);}
.g7-story-cta p{color:var(--walnut-muted);max-width:58ch;}
.g7-secondary-link{display:inline-block;color:var(--walnut-ink);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;margin-left:var(--space-3);}
.g7-secondary-link:hover{color:#fff;}
@media (max-width:900px){.g7-project-grid{grid-template-columns:1fr 1fr;}.g7-story-hero-grid,.g7-story-grid,.g7-story-cta-grid{grid-template-columns:1fr;gap:var(--space-4);}.g7-story-hero-grid .g7-proof-media{order:-1;}}
@media (max-width:640px){.g7-project-grid{grid-template-columns:1fr;}.g7-story-cta .g7-secondary-link{display:block;margin:var(--space-3) 0 0;}.g7-story-hero h1{max-width:15ch;}}

/* G8 Advice system (bounded additive extension) */
.g8-advice-hero,.g8-article-hero,.g8-planner-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g8-advice-hero h1,.g8-article-hero h1,.g8-planner-hero h1{color:var(--walnut-ink);max-width:20ch;}
.g8-advice-hero .lead,.g8-article-hero .lead,.g8-planner-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:60ch;}
.g8-advice-intro,.g8-article-body,.g8-planner{background:var(--canvas);}
.g8-advice-paths{background:var(--surface);}
.g8-advice-cta{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-5) 0;}
.g8-advice-cta h2{color:var(--walnut-ink);}
.g8-advice-cta p{color:var(--walnut-muted);}
.g8-narrow{max-width:780px;}
.g8-article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g8-article-card{border-top:3px solid var(--terracotta);padding:var(--space-3);background:var(--canvas);}
.g8-article-card h3{margin:9px 0;}
.g8-article-card p{color:var(--slate);font-size:15px;}
.g8-article-card a,.g8-inline-link,.g8-secondary-link{display:block;color:var(--ink);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;margin-top:var(--space-2);}
.g8-card-secondary{color:var(--slate)!important;font-weight:600!important;}
.g8-article-body{padding:var(--space-5) 0;}
.g8-article-body section{max-width:780px;margin:0 auto;padding:var(--space-4) 0;border-bottom:1px solid var(--hairline);}
.g8-article-body section:last-child{border-bottom:0;}
.g8-article-body h2{margin-bottom:var(--space-2);}
.g8-article-body h3{font-family:var(--font-body);font-size:1rem;margin-top:var(--space-3);}
.g8-article-body p,.g8-article-body li{color:var(--slate);}
.g8-article-next{background:var(--surface);padding:var(--space-3)!important;}
.g8-planning-bridge{background:var(--surface);padding:var(--space-4) 0;border-top:1px solid var(--hairline);}
.g8-planning-bridge p{max-width:65ch;color:var(--slate);}
.g8-planning-bridge .g8-secondary-link{display:inline-block;margin-left:var(--space-3);}
.g8-planner{padding:var(--space-5) 0;}
.g8-planner-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);}
.g8-planner fieldset{border:1px solid var(--border);padding:var(--space-3);background:var(--surface);}
.g8-planner legend{font-family:var(--font-display);font-size:1.25rem;padding:0 7px;}
.g8-planner fieldset p,.g8-planner label{display:block;color:var(--slate);font-size:15px;}
.g8-planner label{padding:8px 0;}
.g8-planner input{margin-right:8px;accent-color:var(--terracotta);}
.g8-planner textarea{display:block;width:100%;margin-top:var(--space-2);padding:12px;border:1px solid var(--border);font:inherit;background:var(--canvas);}
.g8-planner-wide{grid-column:1 / -1;}
.g8-planner-actions{grid-column:1 / -1;display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;}
.g8-planner-actions .g8-inline-link{margin-top:0;}
.g8-print{margin-top:0;}
@media print{.g8-print,.g8-planner-actions{display:none!important;}.g8-planner fieldset{break-inside:avoid;}}
@media (max-width:900px){.g8-article-grid{grid-template-columns:1fr 1fr;}.g8-planner-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.g8-article-grid,.g8-planner-grid{grid-template-columns:1fr;}.g8-planner-wide,.g8-planner-actions{grid-column:auto;}.g8-planning-bridge .g8-secondary-link{display:block;margin-left:0;}}

/* G9 About / Matt integration (bounded additive extension) */
.g9-about-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g9-about-hero h1{color:var(--walnut-ink);max-width:12ch;}
.g9-about-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:52ch;margin-bottom:var(--space-3);}
.g9-about-hero-grid,.g9-two-column{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:center;}
.g9-matt-portrait{margin:0;background:var(--surface);max-width:470px;justify-self:end;}
.g9-matt-portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;}
.g9-matt-portrait figcaption{padding:9px 12px;color:var(--slate);font-size:12px;}
.g9-about-hero .g9-matt-portrait figcaption{color:var(--slate);}
.g9-about-section{padding:var(--space-5) 0;background:var(--canvas);}
.g9-about-surface{background:var(--surface);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.g9-narrow{max-width:780px;}
.g9-about-section p{color:var(--slate);max-width:68ch;}
.g9-values{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g9-values article{border-top:2px solid var(--terracotta);padding-top:var(--space-2);}
.g9-values .g10-semantic-icon{margin-left:auto;margin-right:auto;margin-bottom:var(--space-2);}
.g9-values h3{margin-bottom:8px;}
.g9-values p{font-size:15px;margin:0;}
.g9-two-column{align-items:start;}
.g9-two-column>div{border-top:1px solid var(--border);padding-top:var(--space-2);}
.g9-inline-link{display:inline-block;color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px;margin-top:var(--space-2);}
.g9-about-cta{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-5) 0;}
.g9-about-cta h2{color:var(--walnut-ink);}
.g9-about-cta{text-align:center;}
.g9-about-cta p{color:var(--walnut-muted);max-width:60ch;margin-left:auto;margin-right:auto;}
@media (max-width:900px){.g9-values{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.g9-about-hero-grid,.g9-two-column,.g9-values{grid-template-columns:1fr;gap:var(--space-4);}.g9-matt-portrait{justify-self:stretch;max-width:none;order:-1;}.g9-about-hero h1{max-width:15ch;}}

/* G10 sitewide integration (bounded additive extension) */
.g10-home-proof{background:var(--surface);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.g10-home-project-links{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);margin:var(--space-3) 0;}
.g10-home-project-links a,.g10-inline-link{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px;}
.g10-home-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:start;}
.g10-home-two>div{border-top:1px solid var(--border);padding-top:var(--space-2);}
.g10-form-purpose,.g10-confirmation-note{color:var(--slate);font-size:14px;}
.g10-contact-details{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-4);}
.g10-contact-details h2{color:var(--walnut-ink);}
.g10-contact-details a,.g10-contact-details p{color:var(--walnut-muted);}
.g10-confirmation-note{border-top:1px solid var(--walnut-muted);padding-top:var(--space-2);}
@media (max-width:900px){.g10-home-project-links{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.g10-home-project-links,.g10-home-two{grid-template-columns:1fr;}.g10-contact-details{margin-top:var(--space-4);}}

/* G10 interaction polish (bounded additive extension) */
.g10-section-reveal{opacity:1;transform:none;}
html.motion-ready .g10-section-reveal{opacity:0;transform:translateY(30px);transition:opacity 1200ms cubic-bezier(.22,1,.36,1),transform 1200ms cubic-bezier(.22,1,.36,1);}
html.motion-ready .g10-section-reveal.is-visible{opacity:1;transform:none;}
.g10-card-stagger{--g10-stagger:0ms;}
html.motion-ready .g10-section-reveal:not(.is-visible) .g10-card-stagger > *{opacity:0;transform:translateY(12px);}
html.motion-ready .g10-section-reveal.is-visible .g10-card-stagger > *{opacity:1;transform:none;transition:opacity 420ms cubic-bezier(.22,1,.36,1),transform 420ms cubic-bezier(.22,1,.36,1);transition-delay:var(--g10-stagger);}
html.motion-ready .g10-card-stagger > *:nth-child(2){--g10-stagger:120ms;}
html.motion-ready .g10-card-stagger > *:nth-child(3){--g10-stagger:240ms;}
html.motion-ready .g10-card-stagger > *:nth-child(4){--g10-stagger:360ms;}
.g10-image-motion{overflow:hidden;}
.g10-image-motion img,.g10-image-hover{display:block;transform:scale(1);}
html.motion-ready .g10-image-motion{opacity:1;transform:none;}
@media (hover:hover) and (pointer:fine){
  .g10-image-hover{transition:transform 450ms cubic-bezier(.22,1,.36,1);}
  .g10-image-motion:hover .g10-image-hover,.g10-image-motion:focus-within .g10-image-hover{transform:scale(1.04);}
}
@media (hover:hover) and (pointer:fine){
  .g10-hover-lift{transition:transform 250ms ease-out;}
  .g10-hover-lift:hover,.g10-hover-lift:focus-within{transform:translateY(-4px);}
}
.g10-scroll-progress{position:fixed;z-index:20;top:0;left:0;width:100%;height:3px;background:var(--terracotta);transform:scaleX(0);transform-origin:left center;pointer-events:none;}
@media print{.g10-scroll-progress{display:none!important;}}
@media (prefers-reduced-motion:reduce){
  html.motion-ready .g10-section-reveal,html.motion-ready .g10-section-reveal.is-visible{opacity:1;transform:none;transition:none;}
  html.motion-ready .g10-section-reveal .g10-card-stagger > *{opacity:1;transform:none;transition:none;transition-delay:0ms;}
  html.motion-ready .g10-image-motion img,html.motion-ready .g10-image-hover{transform:none;transition:none;}
  .g10-scroll-progress{display:none;}
}

/* G10.2 shared service-page semantic components */
.g10-service-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g10-service-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-5);align-items:center;}
.g10-service-hero-grid{width:100%;max-width:100%;}
.g10-service-hero-grid>*{min-width:0;max-width:100%;width:100%;}
.g10-service-hero h1{color:var(--walnut-ink);max-width:15ch;}
.g10-service-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:100%;width:100%;overflow-wrap:anywhere;}
.g10-service-hero-media{position:relative;overflow:hidden;min-height:360px;background:var(--walnut);}
.g10-service-hero-media img{display:block;width:100%;height:100%;min-height:360px;object-fit:cover;}
.g10-service-section{padding:var(--space-5) 0;background:var(--canvas);}
.g10-service-section>.wrap,.g10-service-hero>.wrap{width:100%;}
.g10-service-section--surface{background:var(--surface);}
.g10-key-tiles{display:grid;gap:var(--space-3);margin-top:var(--space-4);}
.g10-key-tiles--three{grid-template-columns:repeat(3,1fr);}
.g10-key-tiles--four{grid-template-columns:repeat(4,1fr);}
.g10-key-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--space-3);}
.g10-service-section--surface .g10-key-tile{background:var(--canvas);}
.g10-key-tile h3{margin:10px 0 9px;}
.g10-key-tile p{font-size:15px;color:var(--slate);}
.g10-key-tile p:last-child{margin-bottom:0;}
.g10-semantic-icon{display:block;width:28px;height:28px;fill:none;stroke:var(--terracotta);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;}
.g10-planning-list{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-4);}
.g10-planning-list article{border-top:1px solid var(--border);padding-top:var(--space-2);}
.g10-planning-list h3{font-family:var(--font-body);font-size:1rem;margin-bottom:var(--space-2);}
.g10-planning-list li{padding:9px 0;border-bottom:1px solid var(--hairline);font-size:15px;color:var(--slate);}
.g10-planning-process{max-width:820px;border-top:1px solid var(--hairline);margin-top:var(--space-4);}
.g10-planning-process li{display:grid;grid-template-columns:52px 1fr;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);}
.g10-planning-process li>span{font-family:var(--font-display);font-size:1.25rem;color:var(--terracotta);}
.g10-planning-process h3{font-family:var(--font-body);font-size:1rem;margin-bottom:5px;}
.g10-planning-process p{font-size:15px;color:var(--slate);margin:0;}
.g10-supporting-block{margin-top:var(--space-5);border-top:1px solid var(--hairline);padding-top:var(--space-3);}
.g10-supporting-block .section-head{margin-bottom:var(--space-2);}
.g10-supporting-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
.g10-supporting-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--space-3);}
.g10-service-section--surface .g10-supporting-tile{background:var(--canvas);}
.g10-supporting-tile h3{font-family:var(--font-body);font-size:1rem;margin-bottom:7px;}
.g10-supporting-tile p{font-size:14px;color:var(--slate);margin:0;}
.g10-evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-top:var(--space-4);}
.g10-evidence-section{background:var(--surface);}
.g10-evidence-card{border-top:3px solid var(--terracotta);padding-top:var(--space-3);}
.g10-evidence-card h3{margin:9px 0;}
.g10-evidence-card p{font-size:15px;color:var(--slate);max-width:62ch;}
.g10-source-note{font-size:13px!important;margin-top:var(--space-2)!important;}
.g10-evidence-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--hairline);padding-top:var(--space-3);}
.g10-evidence-link p{font-size:14px;color:var(--slate);margin:0;max-width:72ch;}
.g10-evidence-link a{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px;white-space:nowrap;}
.g10-evidence-link a:hover,.g10-evidence-link a:focus-visible{color:var(--terracotta);}
.g10-next-step{border-top:1px solid var(--hairline);}
.g10-service-hero .hero-actions{min-width:0;}
.g10-service-hero .hero-actions>*{min-width:0;max-width:100%;}
@media (max-width:900px){.g10-service-hero-grid{grid-template-columns:1fr;gap:var(--space-4);}.g10-service-hero-media{order:-1;min-height:280px;}.g10-service-hero-media img{min-height:280px;}.g10-key-tiles--four{grid-template-columns:1fr 1fr;}.g10-planning-list{gap:var(--space-3);}.g10-supporting-tiles{grid-template-columns:1fr 1fr;}.g10-evidence-grid{gap:var(--space-3);}}
@media (max-width:640px){.g10-key-tiles--three,.g10-key-tiles--four,.g10-planning-list,.g10-supporting-tiles,.g10-evidence-grid{grid-template-columns:1fr;}.g10-service-hero-grid{width:calc(100vw - 48px);}.g10-service-hero .hero-actions{flex-direction:column;align-items:flex-start;}.g10-evidence-link{display:block;}.g10-evidence-link a{display:inline-block;margin-top:var(--space-2);}.g10-planning-process li{grid-template-columns:40px 1fr;}}

/* G10.3 shared sitewide components */
.g10-editorial-hero{background:var(--walnut);color:var(--walnut-ink);padding:var(--space-6) 0 var(--space-5);}
.g10-editorial-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-5);align-items:center;}
.g10-editorial-hero h1{color:var(--walnut-ink);max-width:20ch;}
.g10-editorial-hero .lead{color:var(--walnut-muted);font-size:1.15rem;max-width:60ch;}
.g10-editorial-hero-media{margin:0;background:var(--surface);overflow:hidden;}
.g10-editorial-hero-media img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;}
.g10-editorial-hero-media figcaption,.g10-image-guidance-media figcaption{padding:8px 12px;color:var(--slate);font-size:12px;}
.g10-image-guidance-split-section{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.g10-image-guidance-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:center;}
.g10-image-guidance-media{margin:0;background:var(--surface);overflow:hidden;}
.g10-image-guidance-media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;}
.g10-image-guidance-copy{min-width:0;text-align:left;}
.g10-image-guidance-copy p{max-width:68ch;color:var(--slate);}
.g10-project-card{display:block;background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;color:var(--ink);text-decoration:none;}
.g10-project-card img{display:block;width:100%;height:150px;object-fit:cover;}
.g10-project-card span{display:block;padding:var(--space-2);font-weight:700;text-decoration:underline;text-underline-offset:4px;}
.g10-project-card:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.g10-supporting-image-card{display:flex;flex-direction:column;}
.g10-supporting-image-card figure{order:2;margin:var(--space-3) 0 0;overflow:hidden;background:var(--surface);}
.g10-supporting-image-card figure img{display:block;width:100%;height:300px;object-fit:cover;}
.g10-home-two .g10-supporting-image-card:last-child figure img{object-position:50% 36%;}
.g10-advice-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4);}
.g10-advice-category-card{border-top:3px solid var(--terracotta);padding:var(--space-3);background:var(--canvas);}
.g10-advice-category-card h3{margin:9px 0;}
.g10-advice-category-card p{color:var(--slate);font-size:15px;}
.g10-advice-category-card a{display:block;color:var(--ink);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;margin-top:var(--space-2);}
.g10-advice-category-card .g8-card-secondary{color:var(--slate)!important;}
.g10-advice-next-steps{background:var(--canvas)!important;color:var(--ink);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.g10-advice-next-steps h2{color:var(--ink);}
.g10-advice-next-steps p{color:var(--slate);}
.g10-advice-next-steps .btn-primary{display:flex;width:max-content;margin:var(--space-2) auto 0;}
@media (max-width:900px){.g10-editorial-hero-grid,.g10-image-guidance-split{grid-template-columns:1fr;gap:var(--space-4);}.g10-editorial-hero-media{order:-1;}.g10-advice-category-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.g10-editorial-hero-grid,.g10-image-guidance-split{width:calc(100vw - 48px);}.g10-editorial-hero-media img{aspect-ratio:4/3;}.g10-advice-category-grid{grid-template-columns:1fr;}.g10-project-card img{height:170px;}.g10-supporting-image-card figure img{height:340px;}}
@media (max-width:640px){h1,h2,h3{overflow-wrap:anywhere;}.hero .wrap,.g9-about-hero .wrap{width:100%;}.hero-copy,.hero-media{min-width:0;max-width:100%;}.g10-supporting-image-card{min-width:0;}}

/* G11.4 Advice renovation decision map */
.g11-decision-map-section{background:var(--surface);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.g11-decision-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3);list-style:none;margin:var(--space-5) 0 0;padding:0;}
.g11-decision-card{position:relative;min-width:0;min-height:268px;padding:var(--space-3);background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--radius);display:flex;flex-direction:column;align-items:flex-start;}
.g11-decision-card:not(:last-child)::after{content:"";position:absolute;z-index:1;top:50%;right:-19px;width:16px;height:1px;background:var(--border);}
.g11-decision-card:not(:last-child)::before{content:"";position:absolute;z-index:1;top:calc(50% - 4px);right:-19px;width:7px;height:7px;border-top:1px solid var(--border);border-right:1px solid var(--border);transform:rotate(45deg);}
.g11-decision-map-number{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--terracotta);border-radius:50%;color:var(--terracotta);font-family:var(--font-display);font-size:15px;line-height:1;}
.g11-decision-map-icon{width:34px;height:34px;margin:var(--space-3) 0 10px;fill:none;stroke:var(--terracotta);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;}
.g11-decision-card h3{font-family:var(--font-body);font-size:1rem;line-height:1.25;margin:0 0 9px;text-transform:none;}
.g11-decision-card p{margin:0;color:var(--slate);font-size:15px;line-height:1.5;}
@media (max-width:900px){.g11-decision-map{grid-template-columns:repeat(3,minmax(0,1fr));}.g11-decision-card:not(:last-child)::after,.g11-decision-card:not(:last-child)::before{display:none;}}
@media (max-width:640px){.g11-decision-map{grid-template-columns:1fr;gap:var(--space-3);margin-top:var(--space-4);}.g11-decision-card{min-height:0;padding:var(--space-3);}.g11-decision-card:not(:last-child)::after{display:block;top:auto;right:auto;bottom:-17px;left:50%;width:1px;height:14px;}.g11-decision-card:not(:last-child)::before{display:block;top:auto;right:auto;bottom:-18px;left:calc(50% - 3px);width:6px;height:6px;transform:rotate(135deg);}}

/* G12 local discovery siblings */
.g12-location-hero{padding:clamp(4rem,8vw,7rem) 0;background:var(--canvas)}
.g12-location-page section,.g12-local-section{padding:clamp(3.5rem,7vw,6rem) 0}
.g12-local-surface{background:var(--surface)}
.g12-location-grid,.g12-prompt-grid,.g12-service-area-links{display:grid;gap:1rem}
.g12-location-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:2rem}
.g12-location-card,.g12-prompt-grid article{border:1px solid var(--hairline);border-radius:var(--radius);padding:1.5rem;background:var(--canvas)}
.g12-location-card{color:var(--ink);text-decoration:none}
.g12-location-card h3,.g12-prompt-grid h3{margin-top:0}
.g12-location-card span,.g12-prompt-grid a,.g12-source-list a{color:var(--terracotta);font-weight:700}
.g12-prompt-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:2rem}
.g12-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,6vw,6rem)}
.g12-service-area-links{grid-template-columns:repeat(3,minmax(0,1fr));margin:2rem 0}
.g12-service-area-links a{border:1px solid var(--hairline);border-radius:var(--radius);padding:1rem;color:var(--ink);text-decoration:none;background:var(--canvas)}
.g12-beyond-finishes-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.g12-source-list{padding-left:1.2rem;display:grid;gap:.75rem}
.g12-note{font-size:.95rem;color:var(--slate)}
@media(max-width:800px){.g12-location-grid,.g12-prompt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.g12-two-column{grid-template-columns:1fr}}
@media(max-width:520px){.g12-location-grid,.g12-prompt-grid,.g12-service-area-links{grid-template-columns:1fr}}

/* --- project media upload --- */
.project-media{
  margin:var(--space-5) 0;
  padding:clamp(24px,4vw,36px);
  border:1px solid var(--hairline);
  border-radius:24px;
  background:var(--surface);
}
.project-media-intro{max-width:720px;margin-bottom:var(--space-4);}
.project-media-intro h3{margin:.35rem 0 .7rem;}
.project-media-intro p{margin:0;color:var(--slate);}
.project-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-4);}
.project-media-card{padding:20px;border:1px solid var(--hairline);border-radius:18px;background:#fff;}
.project-media-card label{display:block;font-weight:700;margin-bottom:6px;}
.project-media-card p{margin:0 0 14px;color:var(--slate);font-size:.95rem;}
.project-media-card input[type="file"]{width:100%;padding:12px;border:1px dashed var(--border);border-radius:12px;background:var(--canvas);cursor:pointer;}
.project-media-card .media-selection{margin:10px 0 0;font-size:.9rem;color:var(--ink);}
.project-media-consent{margin-top:var(--space-3);}
.checkbox-label{display:flex;align-items:flex-start;gap:12px;font-weight:600;line-height:1.45;cursor:pointer;}
.checkbox-label input{margin-top:4px;flex:0 0 auto;width:18px;height:18px;}
.media-privacy{margin:8px 0 0 30px;font-size:.9rem;color:var(--slate);}
.upload-status{margin:var(--space-3) 0 0;padding:12px 14px;border-radius:12px;font-weight:600;}
.upload-status.is-working{background:#f3eee9;color:var(--ink);}
.upload-status.is-success{background:#edf5ee;color:#225a30;}
.upload-status.is-error{background:#fff0ec;color:#8a2f1f;}
#contact-submit:disabled{opacity:.7;cursor:wait;}
.project-media .form-field.invalid input[type="file"]{border-color:#a33a27;}
@media (max-width:760px){
  .project-media-grid{grid-template-columns:1fr;}
  .project-media{padding:22px 18px;}
}

/* Advice normalization: Decision Map uses icon-only, centered tiles. */
.g11-decision-map-number{display:none;}
.g11-decision-card{
  align-items:center;
  text-align:center;
}
.g11-decision-map-icon{
  margin:0 0 14px;
}

/* Gallery project index: four projects in a balanced 2 x 2 desktop grid. */
@media (min-width:901px){
  .g7-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .g7-project-grid > .g7-project-card{grid-column:auto;}
}

/* Advice normalization: add editorial imagery to the three starting-point cards. */
.g10-advice-category-media{
  margin:calc(var(--space-3) * -1) calc(var(--space-3) * -1) var(--space-3);
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--surface);
}
.g10-advice-category-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Advice page only: locked Where We Work standard = beige section + white tiles. */
.advice-where-we-work{
  background:var(--canvas);
}
.advice-where-we-work .g12-service-area-links a{
  background:var(--surface);
}

/* Home page only: locked Where We Work standard = beige section + white tiles. */
.home-where-we-work{
  background:var(--canvas);
}
.home-where-we-work .g12-service-area-links a{
  background:var(--surface);
}

/* Gallery page only: locked Where We Work standard = beige section + white tiles. */
.gallery-where-we-work{
  background:var(--canvas);
}
.gallery-where-we-work .g12-service-area-links a{
  background:var(--surface);
}

/* Gallery-only normalization: white Your Project section; shared pages unchanged. */
.gallery-project-next{
  background:var(--surface);
}

/* Gallery-only hero fix: remove empty figcaption strip under the My Work image. */
.g10-editorial-hero .g10-editorial-hero-media figcaption:empty{
  display:none;
}

/* About page only: locked Where We Work standard = beige section + white tiles. */
.about-where-we-work{
  background:var(--canvas);
}
.about-where-we-work .g12-service-area-links a{
  background:var(--surface);
}

/* About page: center the four value titles beneath their icons. */
.g9-values h3{
  text-align:center;
}

/* HOME SUPPORT SECTION — exact surgical scope only. */
#home-support-section .g10-home-two{
  align-items:stretch;
}
#home-support-section .g10-supporting-image-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
#home-support-section .home-support-copy{
  flex:0 0 auto;
}
#home-support-section .home-advice-support-image,
#home-support-section .home-matt-support-image{
  order:2;
  margin-top:auto !important;
  margin-bottom:0;
  width:100%;
}
#home-support-section .home-advice-support-image img,
#home-support-section .home-matt-support-image img{
  display:block;
  width:100%;
  height:clamp(420px,42vw,620px) !important;
  object-fit:cover;
}
#home-support-section .home-advice-support-image img{
  object-position:50% 50%;
}
#home-support-section .home-matt-support-image img{
  object-position:50% 36%;
}
@media (max-width:640px){
  #home-support-section .g10-home-two{
    align-items:stretch;
  }
  #home-support-section .g10-supporting-image-card{
    min-height:0;
  }
  #home-support-section .home-advice-support-image img,
  #home-support-section .home-matt-support-image img{
    height:clamp(420px,120vw,560px) !important;
  }
}

/* HOME SUPPORT COPY ALIGNMENT — exact section scope only.
   Different approach: align the entire copy blocks, not the headings. */
#home-support-section .home-support-copy{
  display:flex;
  flex-direction:column;
  min-height:290px;
}
#home-support-section .home-support-copy .g10-inline-link{
  margin-top:auto;
}
@media (max-width:640px){
  #home-support-section .home-support-copy{
    min-height:0;
  }
  #home-support-section .home-support-copy .g10-inline-link{
    margin-top:var(--space-2);
  }
}

/* SERVICE TILE ALIGNMENT — shared component repair.
   Applies only to G10 key tiles that contain semantic icons.
   This avoids dependence on page-link URL rewriting. */
.g10-key-tile:has(.g10-semantic-icon) .g10-semantic-icon{
  margin-left:auto;
  margin-right:auto;
}
.g10-key-tile:has(.g10-semantic-icon) h3{
  text-align:center;
}


/* BATCH 1 — 2026-09-17 controlled section normalization */
:root{
  --surface-warm:#FAF8F6;
}

/* Shared centered section-intro treatment: constrained copy above tile/image groups. */
.section-head--centered,
.section-intro-centered > .wrap > .section-head{
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.section-intro-centered > .wrap > .eyebrow,
.section-intro-centered > .wrap > h2,
.section-intro-centered > .wrap > p:not(.g12-note){
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* Home: What I Do copy centered above the three service images. */
.page-home .section-home-services > .wrap > .section-head,
.page-home .section-home-services > .wrap > .eyebrow,
.page-home .section-home-services > .wrap > h2,
.page-home .section-home-services > .wrap > p{
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* Home: Advice/About Matt now shares the main canvas colour.
   Hairline boundaries preserve section separation where equal surfaces meet. */
.page-home .section-home-support{
  background:var(--surface-warm);
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}

/* Home/About closing sections: separate the closing CTA visually from the dark footer. */
.page-home .section-home-closing,
.page-about .section-about-closing{
  background:var(--surface);
  color:var(--ink);
  border-top:1px solid var(--hairline);
}
.page-home .section-home-closing h2,
.page-about .section-about-closing h2{color:var(--ink);}
.page-home .section-home-closing p,
.page-about .section-about-closing p{color:var(--slate);}

/* About: My Work / Useful Preparation now shares the main canvas colour.
   Hairline boundaries preserve section separation where equal surfaces meet. */
.page-about .section-about-support{
  background:var(--surface-warm);
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}

/* Service siblings: same content role = same centered intro treatment. */
.page-bathrooms .g10-service-section .section-head--centered,
.page-flooring .g10-service-section .section-head--centered,
.page-kitchens .g10-service-section .section-head--centered{
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* My Work: Project Index centered above project tiles. */
.page-gallery .g6-project-index .section-head--centered{
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* My Work: swapped sections retain the surface colours of their former positions. */
.page-gallery .gallery-where-we-work.gallery-where-we-work--white{
  background:var(--surface);
}
.page-gallery .gallery-where-we-work--white .g12-service-area-links a{
  background:var(--canvas);
}
.page-gallery .gallery-project-next.gallery-project-next--beige{
  background:var(--canvas);
}
.page-gallery .gallery-project-next-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);
  gap:var(--space-5);
  align-items:center;
}
.page-gallery .gallery-project-next-copy{
  max-width:680px;
  margin:0;
}
.page-gallery .gallery-project-next-media{
  margin:0;
  overflow:hidden;
  background:var(--surface);
}
.page-gallery .gallery-project-next-media img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
@media (max-width:800px){
  .page-gallery .gallery-project-next-grid{grid-template-columns:1fr;gap:var(--space-4);}
  .page-gallery .gallery-project-next-media{order:-1;}
}

/* Advice: heading owns a full row; both explanatory columns begin together. */
.page-advice .g12-advice-authority-layout{
  display:block;
}
.page-advice .g12-advice-authority-header{
  max-width:780px;
  margin-bottom:var(--space-3);
}
.page-advice .g12-advice-authority-columns{
  align-items:start;
}
.page-advice .g12-advice-authority-columns > div{
  min-width:0;
}
.page-advice .g12-advice-authority-columns p{
  margin-top:0;
}
.page-advice .advice-next-steps-separated{
  background:var(--surface-warm)!important;
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}

/* Batch 2: Blog landing page */
.page-blog .blog-intro {
  padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5rem);
  background: var(--surface, #fff);
  border-bottom: 1px solid rgba(46, 36, 32, .12);
}
.page-blog .blog-intro-inner {
  max-width: 780px;
  text-align: center;
}
.page-blog .blog-intro h1 {
  margin: .45rem 0 1rem;
}
.page-blog .blog-intro p {
  max-width: 680px;
  margin: 0 auto;
}
.page-blog .blog-categories {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin-top: 2rem;
}
.page-blog .blog-categories a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: .55rem .9rem;
  border: 1px solid rgba(46, 36, 32, .18);
  border-radius: 999px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}
.page-blog .blog-categories a:hover,
.page-blog .blog-categories a:focus-visible {
  border-color: currentColor;
}
.page-blog .blog-featured,
.page-blog .blog-projects {
  background: var(--surface-warm, #FAF8F6);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.page-blog .blog-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.page-blog .blog-feature-card,
.page-blog .blog-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(46, 36, 32, .12);
  border-radius: 4px;
}
.page-blog .blog-feature-card img,
.page-blog .blog-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.page-blog .blog-feature-card > div,
.page-blog .blog-card > div {
  padding: 1.4rem;
}
.page-blog .blog-feature-card h3,
.page-blog .blog-card h3 {
  margin: .35rem 0 .65rem;
}
.page-blog .blog-feature-card a,
.page-blog .blog-card a,
.page-blog .blog-project-card {
  font-weight: 600;
}
.page-blog .blog-card-grid,
.page-blog .blog-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.page-blog .blog-project-card {
  display: block;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(46, 36, 32, .12);
  border-radius: 4px;
  color: inherit;
  text-decoration: none;
}
.page-blog .blog-project-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.page-blog .blog-project-card span {
  display: block;
  padding: 1rem;
}
@media (max-width: 780px) {
  .page-blog .blog-feature-grid,
  .page-blog .blog-card-grid,
  .page-blog .blog-project-grid {
    grid-template-columns: 1fr;
  }
}

/* Service-page My Work buttons: shared advice-style outline treatment. */
.page-flooring .g10-evidence-link .btn.btn-secondary,
.page-bathrooms .g10-evidence-link .btn.btn-secondary,
.page-kitchens .g10-evidence-link .btn.btn-secondary{
  background:transparent;
  color:var(--ink);
  border-color:var(--border);
  text-decoration:none;
  white-space:nowrap;
}
.page-flooring .g10-evidence-link .btn.btn-secondary:hover,
.page-flooring .g10-evidence-link .btn.btn-secondary:focus-visible,
.page-bathrooms .g10-evidence-link .btn.btn-secondary:hover,
.page-bathrooms .g10-evidence-link .btn.btn-secondary:focus-visible,
.page-kitchens .g10-evidence-link .btn.btn-secondary:hover,
.page-kitchens .g10-evidence-link .btn.btn-secondary:focus-visible{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--surface);
}
.page-flooring .g10-evidence-link,
.page-bathrooms .g10-evidence-link,
.page-kitchens .g10-evidence-link{
  display:flex;
  justify-content:center;
  text-align:center;
}
