
.service-page .service-story-photo{margin:var(--service-photo-gap) 0 0;overflow:hidden}.service-page .service-story-photo img{display:block;width:100%;height:auto;aspect-ratio:var(--service-photo-ratio);object-fit:cover}

.service-page .service-story-photo{max-width:var(--service-photo-max-width)}


/* Lower-page planning, area and resource sections only. Hero styles are deliberately out of scope. */
.home-areas-editorial.areasfaq.lower-planning{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px 64px;padding-top:60px;padding-bottom:52px;background:#fff;align-items:start}
.lower-planning .local-overview,.lower-planning.local-service-area{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(30px,5vw,74px);row-gap:24px;align-items:start}
.lower-planning .local-overview{grid-column:1/-1}
.lower-planning .local-intro{grid-column:1;grid-row:1;min-width:0}
.lower-planning .local-intro>.eyebrow{margin:0 0 13px;font-size:10px;letter-spacing:.15em;color:#62686c}
.lower-planning .local-intro h2{font-family:SourceSerif,Georgia,serif;font-weight:400;font-size:clamp(30px,3.15vw,46px);line-height:1.12;letter-spacing:-.025em;max-width:510px;margin:0 0 18px;color:#242626}
.lower-planning .local-intro p:not(.eyebrow){font-size:15px;line-height:1.7;color:#5d6368;margin:0;max-width:58ch}
.lower-planning .local-photo{grid-column:2;grid-row:1/3;margin:0;min-width:0;position:relative;overflow:hidden;border-radius:2px;background:#f2f3f4}
.lower-planning .local-photo img{display:block;width:100%;height:370px;object-fit:cover;object-position:center;cursor:default;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.lower-planning .local-photo figcaption{margin:0;padding:10px 14px;background:#f3f4f5;font-size:11px;line-height:1.5;color:#555d62}
.lower-planning .local-directory{grid-column:1;grid-row:2;min-width:0}
.lower-planning .local-directory .area-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:0 0 14px;max-width:none}
.lower-planning .local-directory .area-links a{display:flex;align-items:center;min-height:42px;padding:8px 0;border:0;border-bottom:1px solid #e7e9ea;font-size:14px;line-height:1.4;letter-spacing:0;text-decoration:none;color:#303638}
.lower-planning .local-directory .area-links a:hover,.lower-planning .local-directory .area-links a:focus-visible{color:var(--orange,#ff8a12);border-bottom-color:var(--orange,#ff8a12)}
.lower-planning .local-directory>.textlink{display:inline-flex;min-height:44px;align-items:center;margin:0;padding:8px 0;font-size:13px;font-weight:600;color:#25292b;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;text-decoration-color:#c4c8ca;border:0}
.lower-planning .local-note{grid-column:1/-1;display:grid;grid-template-columns:minmax(140px,.6fr) minmax(0,1.4fr);gap:14px 32px;align-items:baseline;border-top:1px solid #dedfe1;padding:20px 0 0;margin:0;background:none;color:#5d6368}
.lower-planning .local-note p{margin:0;font-size:14px;line-height:1.65}
.lower-planning .local-note p:first-child{font-family:SourceSerif,Georgia,serif;font-size:21px;color:#282b2d}
.lower-planning .local-facts{min-width:0;margin:0;padding:28px 30px;background:#f5f6f7;border:0;border-top:2px solid #d8dadd}
.lower-planning .local-facts h3{font-family:SourceSerif,Georgia,serif;font-size:26px;font-weight:400;line-height:1.2;letter-spacing:-.015em;color:#26292b;margin:0 0 22px}
.lower-planning .local-facts dl{display:block;margin:0}
.lower-planning .local-facts dl>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:18px;margin:0;padding:14px 0;border-top:1px solid #dedfe1}
.lower-planning .local-facts dt{font-size:10px;font-weight:600;line-height:1.6;letter-spacing:.09em;text-transform:uppercase;color:#555c61;padding-top:2px}
.lower-planning .local-facts dd{margin:0;font-size:13px;line-height:1.7;color:#41494e}
.lower-planning .local-facts>p{margin:20px 0 0;padding-top:18px;border-top:1px solid #dedfe1;font-size:13px;line-height:1.7;color:#535a60}
.lower-planning .lower-faq-panel{padding:26px 0 0;margin:0;background:#fff;border-top:2px solid var(--orange,#ff8a12);min-width:0}
.lower-planning .lower-faq-panel h2{font-family:SourceSerif,Georgia,serif;font-weight:400;font-size:32px;line-height:1.18;margin:0 0 24px;max-width:none}
.lower-planning .lower-faq-panel .eyebrow{font-size:10px;letter-spacing:.13em;color:#62686c;margin:0 0 13px}
.lower-planning .lower-faq-panel details{padding:0;border-top:1px solid #dfe2e4}
.lower-planning .lower-faq-panel summary{min-height:58px;padding:15px 0;font-size:15px;font-weight:500;line-height:1.5}
.lower-planning .lower-faq-panel details p{font-size:14px;line-height:1.7;max-width:65ch;margin:0 20px 20px 0}
.lower-planning.local-service-area{padding-top:52px;padding-bottom:45px;border-top:1px solid #e1e3e5;background:#fff}
.lower-planning.local-service-area .local-photo img{height:390px;object-position:center}
.service-faq.lower-faq{gap:clamp(30px,6vw,76px);padding-top:48px;padding-bottom:52px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);background:#f5f6f7;border-top:1px solid #e4e6e8}
.service-faq.lower-faq>div:first-child{border-top:2px solid var(--orange,#ff8a12);padding-top:24px}
.service-faq.lower-faq h2{font-family:SourceSerif,Georgia,serif;font-size:clamp(28px,3vw,38px);font-weight:400;line-height:1.2;letter-spacing:-.02em;max-width:390px;margin:0 0 18px}
.service-faq.lower-faq>div:first-child>p{max-width:42ch;font-size:14px;line-height:1.7;color:#5d6368}
.service-faq.lower-faq .faq{background:transparent;padding:0}
.service-faq.lower-faq .faq summary{font-size:15px;line-height:1.5;min-height:54px;padding:14px 0}
.service-faq.lower-faq .faq details{border-color:#dadddf;padding:0}
.service-faq.lower-faq .faq p{font-size:14px;line-height:1.75;margin:0 28px 20px 0}
body .guides.lower-guides.lower-guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 36px;padding-top:52px;padding-bottom:52px;border-top:1px solid #e1e3e5;background:#fff}
body .guides.lower-guides.lower-guides>div:first-child,body .guides.lower-guides.lower-guides>.guide-intro{grid-column:1/-1;display:block;padding:0 0 22px;margin:0;border-bottom:1px solid #dedfe1}
body .guides.lower-guides.lower-guides>div:first-child h2,body .guides.lower-guides.lower-guides>.guide-intro h2{font-family:SourceSerif,Georgia,serif;font-size:36px;font-weight:400;line-height:1.15;max-width:none;margin:0 0 10px}
body .guides.lower-guides.lower-guides h2 br{display:none}
body .guides.lower-guides.lower-guides>div:first-child>.eyebrow,body .guides.lower-guides.lower-guides>.guide-intro>.eyebrow{font-size:10px;letter-spacing:.14em;margin:0 0 13px;color:#62686c}
body .guides.lower-guides.lower-guides>.guide-intro>p:not(.eyebrow){margin:0 0 8px;font-size:14px;line-height:1.6;color:#62686c}
body .guides.lower-guides.lower-guides .guide{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;border:0;min-width:0}
body .guides.lower-guides.lower-guides .guide-thumbnail{width:100%;margin:0 0 18px;overflow:hidden;background:#eee;border-radius:2px}
body .guides.lower-guides.lower-guides .guide-thumbnail img{display:block;width:100%;max-width:none;aspect-ratio:auto;height:180px;object-fit:cover}
body .guides.lower-guides.lower-guides .guide-copy{display:flex;flex-direction:column;flex:1;min-width:0}
body .guides.lower-guides.lower-guides .guide .eyebrow{margin:0 0 10px;font-size:10px;letter-spacing:.1em;color:#646a6f}
body .guides.lower-guides.lower-guides .guide h3{font-family:SourceSerif,Georgia,serif;font-weight:400;font-size:25px;line-height:1.22;letter-spacing:-.015em;margin:0 0 12px}
body .guides.lower-guides.lower-guides .guide p:not(.eyebrow){font-size:13px;line-height:1.7;margin:0 0 12px;color:#62686c}
body .guides.lower-guides.lower-guides .guide a{display:inline-flex;align-items:center;font-size:13px;line-height:1.4;font-weight:500;min-height:44px;margin-top:auto;padding:10px 0;border:0;align-self:flex-start;text-decoration:underline;text-decoration-color:#c9cdcf;text-underline-offset:6px}
body .guides.lower-guides.lower-guides .guide a:hover{text-decoration-color:var(--orange,#ff8a12)}
body .guides.lower-guides.lower-guides:not(.home-guides-editorial){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){
 .home-areas-editorial.areasfaq.lower-planning{column-gap:32px;row-gap:34px}
 .lower-planning .local-overview,.lower-planning.local-service-area{column-gap:30px}
 .lower-planning .local-photo img{height:360px}
 .lower-planning .local-facts{padding:22px}
 .lower-planning .local-facts dl>div{grid-template-columns:1fr;gap:5px}
 body .guides.lower-guides.lower-guides{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
}
@media(max-width:700px){
 .home-areas-editorial.areasfaq.lower-planning{grid-template-columns:1fr;gap:30px;padding-top:34px;padding-bottom:36px}
 .lower-planning .local-overview,.lower-planning.local-service-area{grid-template-columns:1fr;gap:22px}
 .lower-planning .local-intro{grid-column:1;grid-row:1}
 .lower-planning .local-intro h2{font-size:31px;line-height:1.15;margin-bottom:14px;max-width:16ch}
 .lower-planning .local-intro p:not(.eyebrow){font-size:14px;line-height:1.7}
 .lower-planning .local-photo{grid-column:1;grid-row:2}
 .lower-planning .local-photo img,.lower-planning.local-service-area .local-photo img{height:auto;aspect-ratio:1.75;object-fit:cover}
 .lower-planning .local-directory{grid-column:1;grid-row:3}
 .lower-planning .local-directory .area-links{column-gap:20px;margin-bottom:10px}
 .lower-planning .local-directory .area-links a{font-size:13px;min-height:44px}
 .lower-planning .local-note{grid-template-columns:1fr;gap:7px;padding-top:18px}
 .lower-planning .local-note p{font-size:13px}
 .lower-planning .local-note p:first-child{font-size:22px}
 .lower-planning .local-facts{padding:24px 22px}
 .lower-planning .local-facts h3{font-size:26px;max-width:18ch;margin-bottom:16px}
 .lower-planning .local-facts dl>div{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:13px 0}
 .lower-planning .local-facts dt{font-size:9px}
 .lower-planning .local-facts dd{font-size:13px;line-height:1.6}
 .lower-planning .lower-faq-panel{padding-top:23px}
 .lower-planning .lower-faq-panel h2{font-size:29px;margin-bottom:20px}
 .lower-planning .lower-faq-panel summary{font-size:14px;min-height:55px;padding:14px 0}
 .lower-planning .lower-faq-panel details p{font-size:13px}
 .lower-planning.local-service-area{padding-top:34px;padding-bottom:34px}
 .service-faq.lower-faq{grid-template-columns:1fr;gap:24px;padding-top:34px;padding-bottom:34px}
 .service-faq.lower-faq h2{font-size:29px;max-width:19ch}
 .service-faq.lower-faq .faq summary{font-size:14px}
 .service-faq.lower-faq .faq p{font-size:13px}
 body .guides.lower-guides.lower-guides,body .guides.lower-guides.lower-guides:not(.home-guides-editorial){grid-template-columns:1fr;gap:26px;padding-top:34px;padding-bottom:36px}
 body .guides.lower-guides.lower-guides>div:first-child h2,body .guides.lower-guides.lower-guides>.guide-intro h2{font-size:29px}
 body .guides.lower-guides.lower-guides .guide{display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:18px;padding-bottom:22px;border-bottom:1px solid #e3e5e6}
 body .guides.lower-guides.lower-guides .guide:not(:has(.guide-thumbnail)){display:flex}
 body .guides.lower-guides.lower-guides .guide-thumbnail{margin:0}
 body .guides.lower-guides.lower-guides .guide-thumbnail img{height:138px;object-fit:cover}
 body .guides.lower-guides.lower-guides .guide h3{font-size:22px;margin-bottom:8px}
 body .guides.lower-guides.lower-guides .guide .eyebrow{font-size:9px;margin-bottom:8px}
 body .guides.lower-guides.lower-guides .guide p:not(.eyebrow){font-size:12px;line-height:1.6}
 body .guides.lower-guides.lower-guides .guide a{font-size:12px}
}


/* Content hierarchy across core pages and standalone neighbourhood drafts.
   Existing scale fallbacks mirror src/styles/tokens.css for standalone previews. */
body:not(.homepage) main :is(.sectionhead,.section-heading,.service-intro,.planning-layout,.process-intro,.about-story,.showroom-grid,.gallery-notes,.gallery-scope,.gallery-close,.context-copy,.local-services,.area-band,.guides,.close__copy,.service-faq,.contact-form-layout,.local-faq,.local-closing,.area-directory-section) h2,
body:not(.homepage) main h2.sec-title,
body.service-expanded-page #main h2.sec-title,
body.neighbourhood-draft main .section>h2,
body.neighbourhood-draft main #planning>h2 {
 font-family:SourceSerif,var(--font-display,Georgia,serif);
 font-size:var(--step-3,clamp(1.55rem,1.4rem + .72vw,2.1rem));font-weight:400;
 line-height:var(--leading-snug,1.2);letter-spacing:var(--tracking-tight,-.02em);
 text-wrap:balance;max-width:var(--measure-narrow,46ch);margin-top:0;
}
body:not(.homepage) main :is(.sectionhead,.section-heading,.service-intro,.planning-layout,.about-story,.showroom-grid,.context-layout,.split,.sx__top,.sig__top){align-items:start}
body:not(.homepage) main :is(.sectionhead,.section-heading){gap:var(--space-l,2rem);margin-bottom:var(--space-l,2rem)}
body:not(.homepage) main :is(.sectionhead,.section-heading)>:is(div,p),
body:not(.homepage) main :is(.service-intro,.planning-layout,.about-story,.showroom-grid)>div {min-width:0;align-self:start}
body:not(.homepage) main :is(.sectionhead,.section-heading,.process-intro,.service-intro,.about-story,.showroom-grid,.context-copy,.guide-intro) .eyebrow{
 font-size:var(--step--2,clamp(.694rem,.675rem + .09vw,.741rem));line-height:1.6;letter-spacing:.14em;margin-bottom:var(--space-xs,.75rem)
}
body:not(.homepage) main :is(.intro-body,.context-copy,.service-grid-intro,.about-story,.showroom-grid) p,
body:not(.homepage) main :is(.sectionhead,.section-heading)>p,
body.service-expanded-page main .sec-sub {max-width:62ch;line-height:1.65}
body:not(.homepage) main :is(.process-intro,.planning-layout,.context-copy) h2+p {margin-top:var(--space-s,1rem)}
body:not(.homepage) main :is(.sectionhead,.section-heading) h2 {margin-bottom:0}
body:not(.homepage) main :is(.service-intro,.about-story,.showroom-grid,.process,.areasfaq){column-gap:var(--space-2xl,4rem)}
body:not(.homepage) main :is(.hero-copy,.gallery-heading) h1,
body:not(.homepage) main .hero__h1,
body:not(.homepage) main .pm h1{
 font-family:SourceSerif,var(--font-display,Georgia,serif);
 font-size:var(--step-5,clamp(2.1rem,1.8rem + 1.5vw,3.25rem));
 font-weight:400;line-height:1.12;letter-spacing:-.025em;text-wrap:balance
}
body:not(.homepage) main .prose h2{font-size:var(--step-3,clamp(1.55rem,1.4rem + .72vw,2.1rem));line-height:1.2;letter-spacing:-.02em;margin-top:var(--space-xl,3rem);margin-bottom:var(--space-s,1rem);text-wrap:balance}
body.homepage :is(.home-restored-planning,.home-restored-design-centre,.home-restored-credentials) h2{
 font-family:SourceSerif,var(--font-display,Georgia,serif);font-size:var(--step-3,clamp(1.55rem,1.4rem + .72vw,2.1rem));font-weight:400;line-height:1.2;letter-spacing:-.02em;text-wrap:balance
}
@media(max-width:700px){
 body:not(.homepage) main :is(.sectionhead,.section-heading,.service-intro,.planning-layout,.process-intro,.about-story,.showroom-grid,.gallery-notes,.gallery-scope,.gallery-close,.context-copy,.local-services,.area-band,.guides,.close__copy,.service-faq,.contact-form-layout,.local-faq,.local-closing,.area-directory-section) h2,
 body:not(.homepage) main h2.sec-title,
body.service-expanded-page #main h2.sec-title,
 body.neighbourhood-draft main .section>h2,
body.neighbourhood-draft main #planning>h2,
 body.homepage :is(.home-restored-planning,.home-restored-design-centre,.home-restored-credentials) h2{font-size:var(--step-2,clamp(1.32rem,1.24rem + .4vw,1.65rem))}
 body:not(.homepage) main :is(.sectionhead,.section-heading){gap:var(--space-s,1rem);margin-bottom:var(--space-m,1.5rem)}
 body:not(.homepage) main :is(.service-intro,.about-story,.showroom-grid,.process,.areasfaq){gap:var(--space-m,1.5rem)}
 body:not(.homepage) main .prose h2{margin-top:var(--space-l,2rem)}
}

/* Numbered planning notes need a real gutter, including wrapped lines. */
body.service-page main .service-intro{padding-block:var(--section-y-tight,clamp(2rem,1.25rem + 3vw,3.5rem))}
body.service-page main .service-intro+.service-intro{padding-top:0}
body.service-page main .intro-body>ul>li:has(>b:first-child){display:grid;grid-template-columns:2ch minmax(0,1fr);column-gap:var(--space-xs,.75rem);margin-block:var(--space-2xs,.5rem)}
body.service-page main .intro-body>ul>li>b:first-child{font-variant-numeric:tabular-nums;font-weight:500}


/* Homepage introductions only. Hero, benefits, cards and their media keep their approved styles. */
body.homepage .home-restored-planning .home-planning-copy {
  min-width: 0;
  align-self: start;
}
body.homepage .home-restored-planning .home-planning-points {
  display: grid;
  gap: var(--space-s);
  list-style: disc;
  margin: 0;
  padding: 0 0 0 var(--space-s);
  max-width: var(--measure);
  text-align: start;
}
body.homepage .home-restored-planning .home-planning-points > li {
  margin: 0;
  padding-inline-start: var(--space-3xs);
  font-size: var(--step--1);
  line-height: var(--leading-normal);
}
body.homepage .home-restored-planning .home-planning-points > li::marker {
  color: var(--orange,var(--accent-500));
  font-size: var(--step--2);
}
body.homepage #services.home-services-visual .sectionhead.service-grid-heading {
  grid-template-columns: minmax(0,1fr) minmax(0,1.1fr);
  align-items: start;
  column-gap: var(--space-2xl);
  row-gap: var(--space-m);
  margin-bottom: var(--space-l);
}
body.homepage #services.home-services-visual .service-grid-heading > div {
  align-self: start;
  min-width: 0;
}
body.homepage #services.home-services-visual .service-grid-intro {
  max-width: var(--measure-narrow);
  justify-self: start;
}
body.homepage #services.home-services-visual .service-grid-intro p {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  margin: 0 0 var(--space-xs);
  max-width: var(--measure-narrow);
}
body.homepage #services.home-services-visual .service-grid-intro p:last-child { margin-bottom: 0; }
body.homepage #services.home-services-visual .service-grid-heading h2,
body.homepage #projects > .wrap > .sectionhead h2,
body.homepage #process > .process-intro > h2,
body.homepage .home-areas-editorial > .areas > h2,
body.homepage .home-areas-editorial > .faq > h2,
body.homepage .home-guides-editorial > .guide-intro > h2 {
  font-family: SourceSerif,var(--font-display);
  font-size: var(--step-3);
  font-weight: var(--weight-normal);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  margin: 0;
  max-width: var(--measure-narrow);
}
body.homepage #services.home-services-visual .service-grid-heading .eyebrow,
body.homepage #projects > .wrap > .sectionhead .eyebrow,
body.homepage #process > .process-intro > .eyebrow,
body.homepage .home-areas-editorial > .areas > .eyebrow,
body.homepage .home-areas-editorial > .faq > .eyebrow,
body.homepage .home-guides-editorial > .guide-intro > .eyebrow {
  font-size: var(--step--2);
  font-weight: var(--weight-medium);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-widest);
  margin: 0 0 var(--space-xs);
}
body.homepage #projects > .wrap > .sectionhead {
  align-items: start;
  gap: var(--space-l);
  margin-bottom: var(--space-l);
}
body.homepage #projects > .wrap > .sectionhead > .textlink {
  margin: 0;
  align-self: start;
  font-size: var(--step--1);
  line-height: var(--leading-normal);
}
body.homepage #process.process {
  align-items: start;
}
body.homepage #process > .process-intro {
  align-self: start;
  min-width: 0;
}
body.homepage #process > .process-intro > p:not(.eyebrow) {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  margin: var(--space-m) 0 var(--space-s);
  max-width: var(--measure-narrow);
}
body.homepage #process > .process-intro > .textlink {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
}
body.homepage .home-areas-editorial.areasfaq {
  align-items: start;
  column-gap: var(--space-2xl);
  row-gap: var(--space-xl);
}
body.homepage .home-areas-editorial > .areas,
body.homepage .home-areas-editorial > .faq { align-self: start; min-width: 0; }
body.homepage .home-areas-editorial > .areas > p:not(.eyebrow) {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  max-width: var(--measure-narrow);
  margin: var(--space-m) 0 0;
}
body.homepage .home-areas-editorial > .faq > h2 { margin-bottom: var(--space-m); }
body.homepage .home-areas-editorial > .faq > p:not(.eyebrow) {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  max-width: var(--measure-narrow);
  margin: var(--space-m) 0 var(--space-s);
}
body.homepage .home-guides-editorial.guides {
  align-items: start;
  column-gap: var(--space-l);
  row-gap: var(--space-l);
}
body.homepage .home-guides-editorial.guides > .guide-intro {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.1fr);
  column-gap: var(--space-2xl);
  row-gap: var(--space-xs);
  align-items: start;
}
body.homepage .home-guides-editorial > .guide-intro > .eyebrow { grid-column: 1; margin: 0; }
body.homepage .home-guides-editorial > .guide-intro > h2 { grid-column: 1; grid-row: 2 / span 2; }
body.homepage .home-guides-editorial > .guide-intro > p:not(.eyebrow) {
  grid-column: 2;
  grid-row: 2;
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  max-width: var(--measure-narrow);
  margin: 0;
}
body.homepage .home-guides-editorial > .guide-intro > .textlink {
  grid-column: 2;
  grid-row: 3;
  justify-self: start;
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  margin: 0;
}
@media(max-width:700px) {
  body.homepage #services.home-services-visual .sectionhead.service-grid-heading {
    grid-template-columns: minmax(0,1fr);
    gap: var(--space-s);
    margin-bottom: var(--space-m);
  }
  body.homepage #services.home-services-visual .service-grid-intro { justify-self: start; max-width: none; }
  body.homepage #services.home-services-visual .service-grid-heading h2,
  body.homepage #projects > .wrap > .sectionhead h2,
  body.homepage #process > .process-intro > h2,
  body.homepage .home-areas-editorial > .areas > h2,
  body.homepage .home-areas-editorial > .faq > h2,
  body.homepage .home-guides-editorial > .guide-intro > h2 { font-size: var(--step-2); }
  body.homepage #projects > .wrap > .sectionhead { gap: var(--space-s); margin-bottom: var(--space-m); }
  body.homepage #process > .process-intro > p:not(.eyebrow),
  body.homepage .home-areas-editorial > .areas > p:not(.eyebrow) { margin-top: var(--space-s); }
  body.homepage .home-guides-editorial.guides > .guide-intro { display: block; }
  body.homepage .home-guides-editorial > .guide-intro > .eyebrow { margin-bottom: var(--space-xs); }
  body.homepage .home-guides-editorial > .guide-intro > p:not(.eyebrow) { margin-top: var(--space-s); }
  body.homepage .home-guides-editorial > .guide-intro > .textlink { display: inline-block; margin-top: var(--space-xs); }
}

/* A clearer reading order for the service introduction; wording stays intact. */
body.homepage #services.home-services-visual .service-grid-intro {
  max-width: var(--measure-narrow);
  display: grid;
  gap: var(--space-s);
}
body.homepage #services.home-services-visual .service-grid-intro p { margin: 0; }
body.homepage #services.home-services-visual .service-grid-intro > p:first-child {
  font-family: SourceSerif, var(--font-display);
  font-size: var(--step-1);
  line-height: var(--leading-normal);
  color: var(--ink-800);
}
body.homepage #services.home-services-visual .service-planning-note strong {
  display: block;
  color: var(--accent-text);
  font-weight: var(--weight-semibold);
  margin-bottom: var(--space-3xs);
}
body.homepage #services.home-services-visual .service-grid-intro .home-service-context {
  color: var(--ink-600);
}

/* Equal editorial columns, consistent thumbnails, and aligned reading links. */
body.homepage .home-guides-editorial.guides {
  grid-template-columns: repeat(3, minmax(0,1fr));
  align-items: stretch;
  column-gap: var(--space-l);
  row-gap: var(--space-l);
}
body.homepage .home-guides-editorial .guide {
  display: grid;
  grid-template-columns: var(--space-3xl) minmax(0,1fr);
  gap: var(--space-s);
  align-items: start;
  padding: 0;
  border: 0;
}
body.homepage .home-guides-editorial .guide-thumbnail { margin: 0; }
body.homepage .home-guides-editorial .guide-thumbnail img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
body.homepage .home-guides-editorial .guide-copy {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
}
body.homepage .home-guides-editorial .guide h3 {
  font-size: var(--step-1);
  line-height: var(--leading-snug);
  margin: 0 0 var(--space-xs);
  text-wrap: pretty;
}
body.homepage .home-guides-editorial .guide .home-guide-description {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  margin: 0 0 var(--space-s);
}
body.homepage .home-guides-editorial .guide a {
  margin-top: auto;
  justify-content: flex-start;
  align-self: flex-start;
  min-height: var(--space-xl);
  padding: var(--space-2xs) 0;
  font-size: var(--step--1);
  font-weight: var(--weight-medium);
  text-decoration: underline;
  text-decoration-color: var(--ink-300);
  text-underline-offset: var(--space-3xs);
}
body.homepage .home-guides-editorial .guide a:is(:hover,:focus-visible) {
  text-decoration-color: var(--accent-500);
  color: var(--accent-text);
}
@media(max-width:1050px) {
  body.homepage .home-guides-editorial.guides { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  body.homepage .home-guides-editorial.guides { grid-template-columns: minmax(0,1fr); gap: var(--space-l); }
  body.homepage .home-guides-editorial .guide { grid-template-columns: var(--space-3xl) minmax(0,1fr); }
  body.homepage #services.home-services-visual .service-grid-intro { gap: var(--space-xs); }
}


/* Credentials: aligned evidence cards with complete, readable explanations. */
body.homepage #credentials {
  padding-block: var(--section-y-tight);
}
body.homepage #credentials .home-credentials-intro {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: var(--space-m) var(--space-2xl);
  align-items: end;
  margin-bottom: var(--space-l);
}
body.homepage #credentials .home-credentials-intro h2 {
  font-family: SourceSerif,var(--font-display);
  font-weight: var(--weight-normal);
  font-size: var(--step-3);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  margin: 0;
}
body.homepage #credentials .home-credentials-intro > p {
  margin: 0;
  max-width: var(--measure-narrow);
  font-size: var(--step-0);
  line-height: var(--leading-normal);
  color: var(--ink-600);
}
body.homepage #credentials .home-credentials-grid {
  gap: var(--space-s);
  grid-template-columns: repeat(4,minmax(0,1fr));
}
body.homepage #credentials .home-credentials-grid article {
  display: grid;
  grid-template-rows: auto auto auto 1fr auto auto;
  align-content: start;
  gap: var(--space-s);
  padding: var(--space-m);
  border: 0;
  border-radius: var(--radius-xs);
  background: var(--white);
  color: var(--ink-800);
  min-width: 0;
}
body.homepage #credentials .home-credentials-grid h3 {
  font-family: SourceSerif,var(--font-display);
  font-size: var(--step-2);
  font-weight: var(--weight-normal);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  margin: 0;
  text-wrap: balance;
}
body.homepage #credentials .home-credentials-grid p {
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  color: var(--ink-600);
  margin: 0;
}
body.homepage #credentials .home-credentials-grid .credential-label {
  font-size: var(--step--2);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--accent-text);
}
body.homepage #credentials .home-credentials-grid .credential-detail {
  color: var(--ink-800);
  font-size: var(--step--1);
  font-weight: var(--weight-semibold);
  min-height: calc(2em * var(--leading-normal));
}
body.homepage #credentials .credential-rating { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
body.homepage #credentials .credential-stars { color: var(--accent-text); }
body.homepage #credentials .home-credentials-grid .credential-note {
  grid-row: 5;
  font-size: var(--step--2);
}
body.homepage #credentials .credential-link {
  grid-row: 6;
  align-self: end;
  justify-self: start;
  font-size: var(--step--1);
  line-height: var(--leading-normal);
  font-weight: var(--weight-semibold);
  color: var(--ink-800);
  text-decoration-color: var(--accent-500);
  text-underline-offset: var(--space-3xs);
  padding-block: var(--space-2xs);
}
body.homepage #credentials .credential-link:hover { color: var(--accent-text); }
body.homepage #credentials + .home-areas-editorial { padding-top: var(--space-xl); }
@media(max-width:1050px) {
  body.homepage #credentials .home-credentials-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  body.homepage #credentials .home-credentials-intro { grid-template-columns: minmax(0,1fr); gap: var(--space-s); margin-bottom: var(--space-m); }
  body.homepage #credentials .home-credentials-intro h2 { font-size: var(--step-2); }
  body.homepage #credentials .home-credentials-intro > p { font-size: var(--step--1); }
  body.homepage #credentials .home-credentials-grid { gap: var(--space-xs); }
  body.homepage #credentials .home-credentials-grid article { padding: var(--space-s); gap: var(--space-xs); }
  body.homepage #credentials .home-credentials-grid h3 { font-size: var(--step-1); }
  body.homepage #credentials .home-credentials-grid .credential-detail { min-height: 0; }
}
@media(max-width:540px) {
  body.homepage #credentials .home-credentials-grid { grid-template-columns: minmax(0,1fr); }
  body.homepage #credentials .home-credentials-grid article {
    display: block;
    padding: var(--space-m);
  }
  body.homepage #credentials .home-credentials-grid h3 { margin-top: var(--space-xs); }
  body.homepage #credentials .home-credentials-grid .credential-detail { margin-top: var(--space-xs); }
  body.homepage #credentials .home-credentials-grid .credential-detail + p { margin-top: var(--space-s); }
  body.homepage #credentials .home-credentials-grid .credential-note { margin-top: var(--space-xs); }
  body.homepage #credentials .credential-link { display: inline-block; margin-top: var(--space-s); }
}


/* Explicit foregrounds also repair the original dark review section before enhancement. */
.home-review-editorial .home-review-grid blockquote,
.home-review-editorial .home-review-grid figcaption,
.home-review-editorial h3 { color: var(--ink-50, #f6f7f7); }
body section.gdb-review-carousel.gdb-review-carousel {
  width: 100%; max-width: none; margin: 0;
  padding: var(--space-xl, 3rem) var(--gutter, 32px);
  background: var(--ink-800, #1d1f21); color: var(--ink-50, #f6f7f7); color-scheme: dark;
}
.gdb-review-shell { max-width: var(--width-max, 1120px); margin: 0 auto; display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: var(--space-xl,3rem); align-items: center; }
.gdb-review-shell > * { min-width: 0; }
.gdb-review-carousel .gdb-review-heading { display: block; }
.gdb-review-carousel .gdb-review-heading h2 { font: 400 var(--step-3,2rem)/var(--leading-snug,1.2) SourceSerif,Georgia,serif; letter-spacing: var(--tracking-tight,-.02em); color: var(--ink-50,#f6f7f7); margin: 0 0 var(--space-s,1rem); max-width: 22ch; }
.gdb-review-carousel .gdb-review-heading p { font-size: var(--step--1,.875rem); font-weight: 400; line-height: 1.5; color: var(--ink-300,#b6bcc2); margin: var(--space-2xs,.5rem) 0; }
.gdb-review-carousel .gdb-review-heading .eyebrow { color: var(--orange,var(--accent-500,#f78c1e)); font-size: var(--step--1,.875rem); letter-spacing: .08em; margin: 0 0 var(--space-xs,.75rem); }
.gdb-review-carousel .gdb-review-heading .eyebrow i { display: none; }
.gdb-review-carousel .gdb-review-context { font-size: var(--step--1,.875rem); font-weight: 400; line-height: 1.4; color: var(--ink-300,#b6bcc2); margin: var(--space-s,1rem) 0; }
.gdb-review-carousel .grev__rating { text-align: left; align-items: flex-start; }
.gdb-review-carousel .grev__rate { justify-content: flex-start; gap: var(--space-xs,.75rem); }
.gdb-review-carousel .gdb-review-heading a { color: var(--ink-50,#f6f7f7); font-size: var(--step--1,.875rem); display: inline-flex; align-items: center; gap: var(--space-2xs,.5rem); min-height: 44px; text-decoration: underline; text-underline-offset: 5px; border: 0; }
.gdb-review-panel { background: color-mix(in srgb,var(--ink-700,#3c434a) 45%,var(--ink-800,#1d1f21)); border: 1px solid color-mix(in srgb,var(--ink-300,#b6bcc2) 22%,transparent); border-radius: var(--radius-xs,6px); padding: var(--space-l,2rem); min-width: 0; touch-action: pan-y; }
.gdb-review-carousel .gdb-review-card { margin: 0; padding: 0; border: 0; background: transparent; color: var(--ink-50,#f6f7f7); }
.gdb-review-carousel .gdb-review-card[hidden] { display: none !important; }
.gdb-review-carousel .gdb-review-quote { font: 400 var(--step-1,1.25rem)/1.5 SourceSerif,Georgia,serif; letter-spacing: -.01em; color: var(--ink-50,#f6f7f7); padding: 0; margin: 0; border: 0; max-width: none; }
.gdb-review-carousel .gdb-review-quote::before,.gdb-review-carousel .gdb-review-quote::after { content: none; }
.gdb-review-card:not(.is-expanded) .gdb-review-quote { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.gdb-review-carousel .gdb-review-expand { display: inline-block; padding: 0; min-height: 44px; margin: var(--space-3xs,.25rem) 0 0; border: 0; background: transparent; color: var(--ink-50,#f6f7f7); font: inherit; font-size: var(--step--1,.875rem); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.gdb-review-carousel .gdb-review-expand[hidden] { display: none; }
.gdb-review-carousel .gdb-review-by { margin-top: var(--space-s,1rem); color: var(--ink-300,#b6bcc2); font-size: var(--step--1,.875rem); line-height: 1.5; }
.gdb-review-carousel .gdb-review-by * { margin: 0; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; }
.gdb-review-carousel .gdb-review-by b,.gdb-review-carousel .gdb-review-by .grev__name { color: var(--ink-50,#f6f7f7); font-weight: 600; }
.gdb-review-carousel .gdb-review-by span,.gdb-review-carousel .gdb-review-by b { display: block; }
.gdb-review-controls { display: flex; align-items: center; justify-content: space-between; gap: var(--space-s,1rem); margin-top: var(--space-m,1.5rem); }
.gdb-review-status { color: var(--ink-300,#b6bcc2); font-size: var(--step--1,.875rem); font-variant-numeric: tabular-nums; }
.gdb-review-buttons { display: flex; gap: var(--space-2xs,.5rem); }
.gdb-review-carousel .gdb-review-nav { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--ink-300,#b6bcc2); border-radius: 50%; background: transparent; color: var(--ink-50,#f6f7f7); font-size: var(--step-1,1.25rem); font-weight: 400; line-height: 1; cursor: pointer; transition: color .18s, border-color .18s; }
.gdb-review-carousel .gdb-review-nav:hover,.gdb-review-carousel .gdb-review-expand:hover { color: var(--orange,var(--accent-500,#f78c1e)); border-color: currentColor; }
.gdb-review-carousel button:focus-visible,.gdb-review-carousel a:focus-visible { outline: 2px solid var(--orange,var(--accent-500,#f78c1e)); outline-offset: 4px; }
@media(max-width:700px) {
  body section.gdb-review-carousel.gdb-review-carousel { padding: var(--space-l,2rem) var(--space-s,1rem); }
  .gdb-review-shell { display: block; }
  .gdb-review-heading { margin-bottom: var(--space-m,1.5rem); }
  .gdb-review-carousel .gdb-review-heading h2 { font-size: var(--step-2,1.6rem); max-width: none; margin-bottom: var(--space-xs,.75rem); }
  .gdb-review-panel { padding: var(--space-m,1.5rem); }
  .gdb-review-carousel .gdb-review-quote { font-size: var(--step-0,1rem); }
}
@media(prefers-reduced-motion:reduce) { .gdb-review-carousel button { transition: none; } }
@media print {
  body section.gdb-review-carousel,.gdb-review-carousel .gdb-review-panel { background: white; color: black; }
  .gdb-review-carousel .gdb-review-card[hidden] { display: block !important; }
  .gdb-review-carousel .gdb-review-card { margin-bottom: 1rem; }
  .gdb-review-carousel .gdb-review-quote { display: block !important; overflow: visible !important; color: black; }
  .gdb-review-controls,.gdb-review-expand { display: none !important; }
}
