/* Gate5 desktop design system.
 * Scope: 1101px and above; tablet/phone rules remain in the original sheets.
 * Shared tokens below are the source of truth. Component order is intentional:
 * keep state selectors and media exceptions in place when editing the cascade.
 * See AGENTS.md for the agreed typography, palette and spacing contract.
 */
@media (min-width: 1101px) {
  /* Shared typography, palette, spacing and compatibility aliases. */
  :root {
    --g5-surface-white: var(--g5-color-white);
    --g5-surface-grey: var(--g5-color-grey);
    --g5-surface-stone: var(--g5-color-stone);
    --g5-surface-charcoal: var(--g5-color-charcoal);
    --g5-surface-selection: var(--g5-color-selection);
    --g5-type-12: 12px;
    --g5-type-13: 13px;
    --g5-type-20: 20px;
    --g5-type-30: 30px;
    --g5-type-36: 36px;
    --g5-glyph-process: 40px;
    --g5-glyph-chapter: 48px;
    --g5-glyph-carousel: 52px;
    --g5-glyph-close-large: 58px;
    --g5-glyph-quote: 64px;
    --g5-glyph-lightbox-arrow: 88px;
    --g5-color-white: #FFFFFF;
    --g5-color-grey: #F5F5F5;
    --g5-color-stone: #F2F0EB;
    --g5-color-charcoal: #373A39;
    --g5-color-selection: #FFF8ED;
    --g5-color-accent: #FCC973;
    --g5-color-hover: #FFBB50;
    --g5-color-text: #666666;
    --g5-color-border: #949895;
    --g5-color-eco: #71805A;
    --g5-color-success: #2F7D4F;
    --g5-color-error: #A83232;
    --g5-color-successLight: #8FD6A8;
    --g5-color-errorLight: #FFB3B3;
    --heading: var(--g5-color-charcoal);
    --text: var(--g5-color-text);
    --secondary: var(--g5-color-grey);
    --accent: var(--g5-color-accent);
    --background: var(--g5-color-white);
    --transparent: transparent;
    --hover: rgba(255,187,80,.4);
    --hover-solid: var(--g5-color-hover);
    --lightbox: rgba(0,0,0,0.5);
    --rule: var(--g5-color-charcoal);
    --g5-weight-light: 300;
    --g5-weight-regular: 400;
    --g5-weight-strong: 600;
    --g5-leading-heading: 1.3;
    --g5-leading-body: 1.6;
    --g5-leading-compact: 1.5;
    --g5-space-1: 4px;
    --g5-title-rule-scale: .5;
    --g5-space-2: 8px;
    --g5-space-3: 12px;
    --g5-space-4: 16px;
    --g5-space-6: 24px;
    --g5-space-8: 32px;
    --g5-space-12: 48px;
    --g5-space-16: 64px;
  }

  /* Home service previews use the enquiry form's orange selection treatment. */
  :is(.wf-home, .wf-services-overview) .wf-grid-heading { font-weight: var(--g5-weight-regular); }
  :is(.wf-home, .wf-extensions, .wf-services-overview, .wf-architectural, .wf-technical, .wf-construction, .wf-complete) #process .process-step { border: 1px solid transparent; border-radius: var(--g5-space-3); padding: calc(30px + var(--g5-space-3)) var(--g5-space-3) var(--g5-space-3); transition: border-color .2s ease, background-color .2s ease; }
  :is(.wf-home, .wf-extensions, .wf-services-overview, .wf-architectural, .wf-technical, .wf-construction, .wf-complete) #process .process-step::before { top: 6px; left: var(--g5-space-3); }
  :is(.wf-home, .wf-extensions, .wf-services-overview, .wf-architectural, .wf-technical, .wf-construction, .wf-complete) #process .process-step.is-selected { border-color: var(--g5-color-hover); background: var(--g5-color-selection); }
  @media (prefers-reduced-motion: reduce) {
    :is(.wf-home, .wf-extensions, .wf-services-overview, .wf-architectural, .wf-technical, .wf-construction, .wf-complete) #process .process-step { transition: none; }
  }

  /* Component rules, semantic roles and interactive states. */
  body, .topbar, .nav a { font-size: var(--g5-type-13); }
  .subnav-group h3 { font-size: var(--g5-type-12); }
  .subnav a, .btn, .ticks li, .prose p { font-size: var(--g5-type-13); }
  .car-btn { font-size: var(--g5-glyph-carousel); }
  .field input, .field select, .field textarea, .counter, .mb-band h2 { font-size: var(--g5-type-13); }
  .site-footer { font-size: var(--g5-type-12); }
  .site-footer h3, .useful summary, .useful-links, .copyright { font-size: var(--g5-type-13); }
  /* Shared compact desktop footer: equal visual gaps between content-sized columns. */
  .site-footer { padding: var(--g5-space-8) 0 var(--g5-space-6); }
  .footer-cols { grid-template-columns: repeat(4, max-content); justify-content: space-between; gap: var(--g5-space-12); align-items: start; }
  .footer-cols > div { min-width: 0; }
  .footer-cols > div:first-child { display: flex; flex-direction: column; align-self: stretch; }
  .site-footer .footer-cols > div:first-child > p:last-child { margin-bottom: 0; }
  .site-footer .footer-cols h3 { font-size: var(--g5-type-13); line-height: var(--g5-leading-heading); color: var(--g5-color-white); margin-bottom: var(--g5-space-3); }
  .site-footer .footer-cols p { margin-bottom: var(--g5-space-2); }
  .site-footer ul li { margin-bottom: var(--g5-space-2); }
  .site-footer ul li:last-child { margin-bottom: 0; }
  .site-footer .wf-footer-subheading { margin-top: var(--g5-space-4); margin-bottom: var(--g5-space-3); }
  .site-footer .footer-brand-link { display: block; flex: 1 1 0px; width: 100%; height: 0; min-height: var(--g5-space-16); padding: 0; background: transparent; margin-bottom: var(--g5-space-2); }
  .site-footer .footer-brand-link:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  .site-footer .footer-brand-mark { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; background: transparent; filter: none; mix-blend-mode: normal; }
  .site-footer .footer-location { display: flex; flex-direction: column; gap: var(--g5-space-2); }
  .site-footer .copyright { margin-top: var(--g5-space-6); gap: var(--g5-space-3); }
  .t-subheading { font-size: var(--g5-type-20); }
  #testimonials .t-subtitle { font-size: var(--g5-type-30); }
  .legal h3 { font-size: var(--g5-type-20); }
  .form-status, .hero-copy .eyebrow, .hero-copy p, .btn-ghost { font-size: var(--g5-type-13); }
  .trust-heading { font-size: var(--g5-type-12); }
  .trust-copy strong { font-size: var(--g5-type-13); }
  .trust-copy span { font-size: var(--g5-type-12); }
  .sec-intro { font-size: var(--g5-type-13); }
  .service-card .label b { font-size: var(--g5-type-20); }
  .service-card .label em, .sec-foot { font-size: var(--g5-type-13); }
  .project-card h3 { font-size: var(--g5-type-20); }
  .project-card .meta { font-size: var(--g5-type-13); }
  .project-card .tag { font-size: var(--g5-type-12); }
  .case-kicker, .case-hero .intro { font-size: var(--g5-type-13); }
  .case-result strong { font-size: var(--g5-type-20); }
  .case-result span, .case-section .lead { font-size: var(--g5-type-13); }
  .case-fact dt { font-size: var(--g5-type-12); }
  .case-fact dd { font-size: var(--g5-type-13); }
  .sustain-card h3 { font-size: var(--g5-type-20); }
  .sustain-card p { font-size: var(--g5-type-12); }
  .case-film h3, .case-quote blockquote { font-size: var(--g5-type-20); }
  .case-back { font-size: var(--g5-type-13); }
  .process-step::before { font-size: var(--g5-glyph-process); }
  .process-step h3 { font-size: var(--g5-type-13); }
  .process-step p { font-size: var(--g5-type-12); }
  .testimonial .who span { font-size: var(--g5-type-13); }
  .quote-mark { font-size: var(--g5-glyph-quote); }
  .pull-quote p, .pull-quote cite { font-size: var(--g5-type-13); }
  .stat b { font-size: var(--g5-type-30); }
  .stat span { font-size: var(--g5-type-13); }
  .fmb-strip p { font-size: var(--g5-type-12); }
  .enquire .lede, .enquire .contact-lines li, .project-back { font-size: var(--g5-type-13); }
  .project-story figcaption, .project-eyebrow, .project-facts dt { font-size: var(--g5-type-12); }
  .project-facts dd { font-size: var(--g5-type-13); }
  .chapter-number { font-size: var(--g5-glyph-chapter); }
  .opposite-copy span { font-size: var(--g5-type-12); }
  .result-gallery-group h3 { font-size: var(--g5-type-20); }
  .result-gallery-group h3 span { font-size: var(--g5-type-12); }
  .project-film-link > span, .project-film-link a { font-size: var(--g5-type-13); }
  .project-lightbox figcaption { font-size: var(--g5-type-12); }
  .project-lightbox-close { font-size: var(--g5-type-30); }
  .lightbox-prev, .lightbox-next { font-size: var(--g5-glyph-lightbox-arrow) !important; }
  .performance-band strong { font-size: var(--g5-type-30); }
  .performance-band span, .performance-table-head, .performance-table-row, .performance-summary p, .performance-summary strong { font-size: var(--g5-type-12); }
  .wireframe-nav a { font-size: var(--g5-type-13); }
  @media (min-width: 1101px) and (max-width: 1200px) {
    .wireframe-nav a { font-size: var(--g5-type-13); }
  }
  .wf-site h3 { font-size: var(--g5-type-20); }
  .wf-home-hero .hero-copy .eyebrow { font-size: var(--g5-type-12); }
  .wf-featured-credit { font-size: inherit; }
  .wf-home-hero .hero-copy .wf-hero-description, .wf-home-hero .hero-actions a, .wf-icon-card span { font-size: var(--g5-type-13); }
  .wf-site .project-card h3 { font-size: var(--g5-type-20); }
  .wf-site .project-card .meta, .wf-type-icons figcaption { font-size: var(--g5-type-13); }
  .wf-choices summary::after { font-size: var(--g5-type-20); }
  .wf-choice-copy { font-size: var(--g5-type-13); }
  .wf-comparison { font-size: var(--g5-type-12); }
  .wf-comparison caption, .wf-stage-label, .wf-site .process-step h3 { font-size: var(--g5-type-13); }
  .wf-site .process-step p { font-size: var(--g5-type-12); }
  .wf-image-pair figcaption { font-size: var(--g5-type-13); }
  .wf-enlarge, .wf-design-journey .wf-enlarge, .wf-reviews blockquote { font-size: var(--g5-type-12); }
  .wf-reviews figcaption, .wf-faq summary { font-size: var(--g5-type-13); }
  .wf-faq summary::after { font-size: var(--g5-type-20); }
  .wf-image-dialog p { font-size: var(--g5-type-12); }
  .wf-contact .contact-content { font-size: var(--g5-type-13); }
  .wf-contact .contact-choice-help { font-size: var(--g5-type-12); }
  .contact-option .wf-icon-card > span:last-child, .contact-option .contact-check { font-size: var(--g5-type-13); }
  .wf-contact .contact-choice-error { font-size: var(--g5-type-12); }
  .wf-contact .contact-process-label, .contact-stage-number, .wf-contact .contact-stages h3 { font-size: var(--g5-type-13); }
  .wf-contact .contact-process-summary { font-size: var(--g5-type-12); }
  .contact-stage-guide summary, .wf-contact .contact-stage-descriptions h3, .wf-contact .contact-stage-descriptions p { font-size: var(--g5-type-13); }
  .wf-contact .contact-details-help, .wf-contact .contact-upload p { font-size: var(--g5-type-12); }
  .wf-thank-you .confirmation-card p, .confirmation-actions a { font-size: var(--g5-type-13); }
  html #g5-consent h2 { font-size: var(--g5-type-20); }
  html #g5-consent p, html #g5-consent button { font-size: var(--g5-type-13); }
  .hero h1, .page-hero h1, .hero-copy h1, .case-hero h1, .project-intro-copy h1, .wf-site h1, .wf-portfolio h1, .wf-thank-you .confirmation-card h1 { font-size: var(--g5-type-36); }
  .wf-home-hero .hero-copy h1 { font-size: var(--g5-type-36); white-space: normal; }
  .sec-head h2, .legal h2, .case-section h2, .enquire h2, .chapter-heading h2, .opposites-heading h2, .result-heading h2, .project-story .enquire h2, .wf-site h2, .wf-site .sec-head h2, .wf-portfolio .sec-head h2, .wf-cta h2 { font-size: var(--g5-type-30); }
  .wf-hero-copy h2, .contact-choice-group legend, .wf-contact .contact-details h2, .opposite-copy h3, .performance-comparison-title h3 { font-size: var(--g5-type-20); }
  .hero p, .t-subtitle, .testimonial blockquote, .testimonial .who, .project-description, .chapter-heading > p, .opposites-heading > p:last-child, .opposite-copy p, .result-heading > p:last-child { font-size: var(--g5-type-13); }
  body { color: var(--text); background: var(--background); }
  a { color: inherit; }
  .topbar { background: var(--heading); color: var(--g5-color-white); }
  .topbar a { color: var(--g5-color-white); }
  .topbar svg { fill: currentcolor; }
  .site-header { background: var(--g5-color-white); box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 0px; }
  .nav a { color: var(--heading); border-bottom: 2px solid transparent; }
  .nav a:hover, .nav .active > a { color: var(--hover-solid); border-bottom-color: var(--accent); }
  .caret { fill: currentcolor; }
  .subnav { background: var(--heading); }
  .subnav-group h3 { color: var(--accent); }
  .subnav a { color: var(--g5-color-white); border: 0px; }
  .subnav a:hover { color: var(--accent); border: 0px; background: rgba(255, 255, 255, 0.2); }
  .burger { background: none; border: 0px; }
  .burger span { background: var(--g5-color-charcoal); }
  .hero { color: var(--g5-color-white); }
  .hero::after { background: rgba(0, 0, 0, 0.4); }
  .hero h1, .hero p { text-shadow: rgba(0, 0, 0, 0.4) 0px 2px 14px; }
  .btn { background: var(--accent); color: var(--g5-color-charcoal); border: 0px; }
  .btn:hover { background: var(--hover-solid); }
  .sec-head h2 { color: var(--heading); }
  .sec-head .rule { background: var(--rule); }
  .dark .sec-head h2 { color: var(--g5-color-white); }
  .dark .sec-head .rule { background: var(--g5-color-white); }
  .service-card::after { background: rgba(0, 0, 0, 0.12); }
  .service-card:hover::after { background: var(--lightbox); }
  .ticks li { color: var(--text); }
  .ticks li::before { border-left: 2px solid var(--text); border-bottom: 2px solid var(--text); }
  .dark { background: var(--heading); color: var(--g5-color-white); }
  .prose p { color: var(--text); }
  .prose a { color: inherit; }
  .prose strong { color: var(--heading); }
  .car-btn { background: none; border: 0px; color: var(--accent); text-shadow: rgba(0, 0, 0, 0.4) 0px 2px 8px; }
  .contact-list a { color: var(--text); }
  .field input, .field select, .field textarea { border-top: 0px; border-right: 0px; border-left: 0px; border-image: none; border-bottom: 1px solid var(--g5-color-border); background: transparent; color: var(--heading); outline: none; }
  .field textarea { border-top: 0px; border-right: 0px; border-left: 0px; border-image: none; border-bottom: 1px solid var(--g5-color-border); }
  .field input:focus, .field select:focus, .field textarea:focus { border-bottom-color: var(--hover-solid); }
  .counter { color: var(--g5-color-text); }
  .mb-band { background: var(--accent); }
  .mb-band h2, .mb-band p, .mb-band li { color: var(--heading); }
  .site-footer { background: var(--heading); color: var(--g5-color-white); }
  .site-footer h3 { color: var(--g5-color-white); }
  .site-footer a:hover { color: var(--accent); }
  .contact-lines svg { fill: currentcolor; }
  .useful { border: 1px solid var(--accent); }
  .useful summary, .useful summary::before { color: var(--accent); }
  .useful-links { color: var(--g5-color-text); }
  .useful-links a { border-right: 1px solid var(--g5-color-border); color: var(--g5-color-text); }
  .useful-links a:last-child { border-right: 0px; }
  .copyright { color: var(--g5-color-white); }
  .t-subtitle, .t-subheading, .newsletter .news-right p strong { color: var(--heading); }
  .page-hero { color: var(--g5-color-white); }
  .page-hero::after { background: rgba(0, 0, 0, 0.4); }
  .page-hero h1 { text-shadow: rgba(0, 0, 0, 0.4) 0px 2px 14px; }
  .legal h2, .legal h3, .legal a { color: var(--heading); }
  .placeholder-note { background: var(--secondary); border-left: 3px solid var(--accent); }
  .form-status { color: var(--text); }
  .form-status.ok { color: var(--g5-color-success); }
  .form-status.err { color: var(--g5-color-error); }
  .nav-cta a { background: var(--accent); color: var(--heading) !important; border-bottom: 0px !important; }
  .nav-cta a:hover { background: var(--hover-solid); border-bottom: 0px !important; }
  .hero-single { color: var(--g5-color-white); }
  .hero-single::after { background: linear-gradient(90deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.4) 55%, rgba(0, 0, 0, 0.2) 100%); }
  .hero-copy .eyebrow { color: var(--accent); }
  .hero-copy h1 { text-shadow: rgba(0, 0, 0, 0.4) 0px 2px 18px; }
  .btn-ghost { border: 1px solid rgba(255, 255, 255, 0.75); color: var(--g5-color-white); }
  .btn-ghost:hover { background: rgba(255, 255, 255, 0.2); border-color: var(--g5-color-white); }
  .trust { background: var(--secondary); }
  .trust-heading { color: var(--text); }
  .trust-card { color: inherit; }
  .trust-cover img { box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 7px; }
  .trust-copy strong { color: var(--heading); }
  .trust-copy span, .sec-intro { color: var(--text); }
  .service-card .label { background: linear-gradient(transparent 0%, rgba(0, 0, 0, 0.75) 68%); color: var(--g5-color-white); }
  .sec-foot a, .project-card h3 { color: var(--heading); }
  .project-card .meta { color: var(--text); }
  .project-card .tag { background: var(--accent); color: var(--heading); }
  .case-hero { color: var(--g5-color-white); }
  .case-hero::after { background: linear-gradient(0deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.4) 58%, rgba(0, 0, 0, 0.12) 100%); }
  .case-kicker { color: var(--accent); }
  .case-hero h1 { text-shadow: rgba(0, 0, 0, 0.4) 0px 2px 18px; }
  .case-results { background: var(--heading); color: var(--g5-color-white); }
  .case-result { border-right: 1px solid rgba(255, 255, 255, 0.2); }
  .case-result:last-child { border-right: 0px; }
  .case-result strong { color: var(--accent); }
  .case-result span { color: var(--g5-color-white); }
  .case-section.alt { background: var(--secondary); }
  .case-section h2 { color: var(--heading); }
  .case-media, .case-facts { background: var(--g5-color-grey); }
  .case-fact { background: var(--g5-color-white); }
  .case-fact dt { color: var(--text); }
  .case-fact dd { color: var(--heading); }
  .sustain-card { background: var(--g5-color-white); border-top: 3px solid var(--accent); }
  .sustain-card h3 { color: var(--heading); }
  .case-film { background: var(--heading); color: var(--g5-color-white); }
  .case-film p { color: var(--g5-color-white); }
  .case-quote blockquote { color: var(--heading); }
  .process-step::before { color: var(--accent); }
  .process-step h3 { color: var(--heading); }
  .process-step p { color: var(--text); }
  .process-rule { background: var(--g5-color-grey); }
  .testimonial blockquote, .testimonial .who { color: var(--heading); }
  .testimonial .who span { color: var(--text); }
  .quote-mark { color: var(--accent); }
  .pull-quote { border-left: 3px solid var(--accent); }
  .pull-quote p, .pull-quote cite, .stat b { color: var(--heading); }
  .stat span { color: var(--text); }
  .fmb-strip { background: var(--secondary); }
  .fmb-strip p { color: var(--text); }
  .fmb-strip strong { color: var(--heading); }
  .enquire { background: var(--heading); color: var(--g5-color-white); }
  .enquire .lede { color: var(--g5-color-white); }
  .enquire .contact-lines svg { fill: var(--accent); }
  .enquire a { color: var(--g5-color-white); }
  .enquire .field input, .enquire .field select, .enquire .field textarea { color: var(--g5-color-white); border-bottom-color: rgba(255, 255, 255, 0.5); }
  .enquire .field input::placeholder, .enquire .field textarea::placeholder, .enquire .field select { color: var(--g5-color-white); }
  .enquire .field select option { color: var(--heading); }
  .enquire .counter, .enquire .form-status { color: var(--g5-color-white); }
  .enquire .form-status.ok { color: var(--g5-color-successLight); }
  .enquire .form-status.err { color: var(--g5-color-errorLight); }
  :focus-visible { outline: 3px solid var(--accent); }
  .project-story, .project-opening-stage, .project-story-overlay { background: var(--g5-color-white); }
  .project-back { color: var(--heading); }
  .project-back::before { color: var(--accent); }
  .project-story figcaption { color: var(--g5-color-text); }
  .project-eyebrow { color: var(--g5-color-charcoal); }
  .project-intro-copy h1 { border-bottom: 1px solid var(--rule); color: var(--heading); }
  .project-description { color: var(--text); }
  .project-facts-band { background: var(--heading); color: var(--g5-color-white); }
  .project-facts > div { border-right: 1px solid rgba(255, 255, 255, 0.2); }
  .project-facts > div:last-child { border: 0px; }
  .project-facts dt { color: var(--accent); }
  .project-facts dd { color: var(--g5-color-white); }
  .chapter-number { color: var(--accent); }
  .chapter-heading h2, .opposites-heading h2, .result-heading h2 { border-bottom: 1px solid var(--rule); color: var(--heading); }
  .drawing-stage figure { background: var(--g5-color-grey); }
  .drawing-stage .lightbox-trigger:focus-visible { outline: 2px solid var(--accent); }
  .project-chapter-dark { background: var(--g5-color-charcoal); color: var(--g5-color-white); }
  .chapter-heading-light h2 { color: var(--g5-color-white); border-bottom-color: rgba(255, 255, 255, 0.5); }
  .chapter-heading-light > p, .project-chapter-dark figcaption { color: var(--g5-color-white); }
  .opposite-card { border: 1px solid var(--heading); }
  .opposite-card:hover { border-color: var(--accent); box-shadow: rgba(0, 0, 0, 0.12) 0px 14px 34px; }
  .opposite-card:focus-within { border-color: var(--accent); }
  .opposite-copy h3 { border-bottom: 1px solid; }
  .opposite-light { background: var(--g5-color-stone); color: var(--heading); }
  .opposite-dark { background: var(--g5-color-charcoal); color: var(--g5-color-white); }
  .opposite-dark h3 { color: var(--g5-color-white); }
  .opposite-dark span { color: var(--accent); }
  .project-details { background: var(--g5-color-grey); }
  .result-gallery-group h3 { color: var(--heading); }
  .result-gallery-group h3 span { color: var(--g5-color-charcoal); }
  .result-photo { border: 0px; background: transparent; }
  .result-photo:focus-visible { outline: 2px solid var(--accent); }
  .project-film-link { border-top: 1px solid var(--g5-color-border); color: var(--heading); }
  .project-film-link a span { color: var(--g5-color-charcoal); }
  .project-lightbox { background: rgba(0, 0, 0, 0.95); color: var(--g5-color-white); }
  .project-lightbox figcaption { color: rgba(255, 255, 255, 0.75); }
  .project-lightbox button { border: 0px !important; background: transparent !important; box-shadow: none !important; color: var(--g5-color-white) !important; }
  .lightbox-prev:hover, .lightbox-next:hover, .project-lightbox-close:hover { color: var(--accent) !important; }
  .project-lightbox button:focus-visible { outline: 2px solid var(--accent); }
  .project-story .enquire h2 { border-bottom: 1px solid rgba(255, 255, 255, 0.5); }
  @media (min-width: 861px) {
    .project-story-overlay { box-shadow: rgba(0, 0, 0, 0.12) 0px -22px 48px; }
  }
  .brislington-story { --project-moss: var(--g5-color-eco); }
  .performance-band { border-top: 1px solid var(--heading); border-bottom: 1px solid var(--heading); }
  .performance-band article { border-right: 1px solid var(--heading); }
  .performance-band article:last-child { border-right: 0px; }
  .performance-band strong { color: var(--project-moss); }
  .performance-comparison-title { border-bottom: 1px solid rgba(0, 0, 0, 0.2); }
  .performance-comparison-title h3 { color: var(--heading); }
  .performance-table-head { border-bottom: 1px solid rgba(0, 0, 0, 0.4); color: var(--project-moss); }
  .performance-table-row { border-bottom: 1px solid rgba(0, 0, 0, 0.2); }
  .performance-table-row:last-child { border-bottom: 0px; }
  .performance-table-row span, .performance-table-row p { color: var(--g5-color-charcoal); }
  .performance-summary { border-top: 1px solid rgba(0, 0, 0, 0.4); }
  .performance-summary p:first-child { border-right: 1px solid rgba(0, 0, 0, 0.4); }
  .performance-summary strong { color: var(--project-moss); }
  .brislington-story .brislington-drawing-grid img { background: var(--g5-color-grey); }
  @media (min-width: 861px) {
    .brislington-story .project-story-overlay { box-shadow: none; }
  }
  .wireframe-nav .nav-cta > a { background: var(--accent); color: var(--heading); border-bottom: 0px; }
  .wireframe-nav .nav-cta > a:hover, .wireframe-nav .nav-cta > a:focus-visible { background: var(--hover-solid); }
  .wireframe-nav a:focus-visible { outline: 3px solid var(--accent); }
  /* Preserve menu hit areas; a second 70% reduction leaves 9% of the original underline gap. */
  .wireframe-nav > li:not(.nav-cta) > a { position: relative; border-bottom-color: transparent; }
  .wireframe-nav > li:not(.nav-cta) > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: calc(var(--g5-space-2) * .91 - 1px); height: 1px; background: var(--accent); opacity: 0; transition: opacity .2s ease; }
  .wireframe-nav > li:not(.nav-cta) > a:hover::after, .wireframe-nav > li:not(.nav-cta) > a:focus-visible::after, .wireframe-nav > li:not(.nav-cta) > a[aria-current]::after, .wireframe-nav > li.is-current-section:not(.nav-cta) > a::after { opacity: 1; }
  .wireframe-nav > li:not(.nav-cta) > a[aria-current], .wireframe-nav > li.is-current-section:not(.nav-cta) > a { color: var(--hover-solid); }
  .wireframe-nav .subnav a[aria-current="page"] { color: var(--accent); background: rgba(255, 255, 255, .2); }
  /* Outer corners follow the pill ends with the same inset as the menu padding. */
  .wireframe-nav .subnav { --g5-subnav-cap-radius: calc(var(--g5-type-13) * var(--g5-leading-compact) / 2 + var(--g5-space-4)); border-radius: calc(var(--g5-subnav-cap-radius) + var(--g5-space-2)); padding: var(--g5-space-2); gap: var(--g5-space-1); }
  .wireframe-nav .subnav a { border-radius: 999px; padding: var(--g5-space-4); }
  .wireframe-nav .subnav a:focus-visible { color: var(--accent); background: rgba(255, 255, 255, .2); }
  .wireframe-nav .nav-cta > a[aria-current="page"] { background: var(--hover-solid); color: var(--heading); }
  @media (prefers-reduced-motion: reduce) { .wireframe-nav > li:not(.nav-cta) > a::after { transition: none; } }
  .wf-skip { background: var(--heading); color: var(--g5-color-white); }
  .wf-site h1, .wf-site h2, .wf-site h3 { color: var(--heading); }
  .wf-home-hero .hero-copy { text-shadow: rgba(0, 0, 0, 0.75) 0px 1px 4px; }
  .wf-home-hero .hero-copy h1 { color: var(--g5-color-white); }
  .wf-home-hero .hero-copy .eyebrow { color: var(--accent); }
  .wf-hero-badge { background: none; }
  .wf-home .trust { background: var(--secondary); color: var(--text); }
  .wf-home .trust-heading { color: var(--heading); }
  .wf-home .trust-card { border-right: 1px solid rgba(0, 0, 0, 0.12); }
  .wf-home .trust-card:last-child { border-right: 0px; }
  .wf-home .trust-copy strong { color: var(--heading); }
  .wf-home .trust-copy span { color: var(--text); }
  .wf-home .trust-mark-amt img { background: var(--g5-color-white); }
  .wf-points li strong, .wf-icon-card { color: var(--heading); }
  .wf-icon-card .wf-icon-frame { border: 1px solid var(--g5-color-border); background: var(--g5-color-white); }
  .wf-icon-card:hover .wf-icon-frame, .wf-icon-card:focus-visible .wf-icon-frame { border-color: var(--hover-solid); }
  .wf-dark { background: var(--heading); color: var(--g5-color-white); }
  .wf-dark .sec-head h2, .wf-dark .project-card h3, .wf-dark .sec-foot a { color: var(--g5-color-white); }
  .wf-dark .rule { background: var(--g5-color-grey); }
  .wf-dark .project-card .meta { color: var(--g5-color-white); }
  .wf-type-icons img { border: 1px solid var(--g5-color-border); }
  .wf-type-icons figcaption { color: var(--heading); }
  .wf-choice-band { background: var(--g5-color-stone); }
  .wf-choices details { border-bottom: 1px solid var(--g5-color-border); }
  .wf-choices details:last-child { border: 0px; }
  .wf-choices summary { color: var(--heading); }
  .wf-comparison-scroll { border: 0px; }
  .wf-comparison caption { color: var(--heading); }
  .wf-comparison th, .wf-comparison td { border-bottom: 1px solid var(--g5-color-border); }
  .wf-comparison thead { background: var(--heading); color: var(--g5-color-white); }
  .wf-comparison tbody th { color: var(--heading); }
  .wf-comparison tbody tr:last-child > * { border: 0px; }
  .wf-comparison tbody tr:nth-last-child(-n+2) { background: var(--g5-color-grey); }
  /* Extensions comparison uses the enquiry form's pale-orange summary surface. */
  .wf-extensions .wf-performance-grid { gap: var(--g5-space-16); }
  .wf-extensions .wf-performance-grid > img { height: 0; min-height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover; }
  .wf-extensions .wf-extension-comparison { table-layout: fixed; font-size: var(--g5-type-13); }
  .wf-extensions .wf-extension-comparison .comparison-element { width: 24%; }
  .wf-extensions .wf-extension-comparison .comparison-eco { width: 18%; }
  .wf-extensions .wf-extension-comparison .comparison-standard { width: 23%; }
  .wf-extensions .wf-extension-comparison .comparison-difference { width: 35%; }
  .wf-extensions .wf-extension-comparison thead { background: var(--g5-color-white); color: var(--g5-color-charcoal); }
  .wf-extensions .wf-extension-comparison tbody td { color: var(--g5-color-text); }
  .wf-extensions .wf-extension-comparison tbody th { width: auto; color: var(--g5-color-charcoal); }
  .wf-extensions .wf-extension-comparison tbody tr.comparison-summary { background: var(--g5-color-selection); }
  .wf-extensions .wf-extension-comparison thead tr > *, .wf-extensions .wf-extension-comparison tbody tr > * { border-bottom: 1px solid var(--g5-color-border); }
  .wf-stage-label { background: var(--heading); color: var(--accent); }
  .wf-current-step { border-bottom: 3px solid var(--accent); }
  .wf-visual-band { background: var(--g5-color-stone); }
  .wf-drawing { color: var(--heading); }
  .wf-drawing img { background: var(--g5-color-white); }
  .wf-package { background: var(--g5-color-stone); }
  .wf-package-dark { background: var(--g5-color-charcoal); color: var(--g5-color-white); }
  .wf-package-dark h3 { color: var(--accent); }
  .wf-review-heading { background: var(--heading); color: var(--g5-color-white); }
  .wf-review-heading a { color: var(--accent); }
  .wf-reviews figure { background: var(--secondary); }
  .wf-stars { color: var(--g5-color-success); }
  .wf-faq details { border-bottom: 1px solid var(--g5-color-border); }
  .wf-faq summary { color: var(--heading); }
  .wf-cta h2, .wf-cta p { color: var(--g5-color-white); }
  .wf-cta .btn { color: var(--heading); }
  .wf-image-dialog { border: 0px; background: var(--g5-color-white); box-shadow: rgba(0, 0, 0, 0.4) 0px 10px 80px; }
  .wf-image-dialog::backdrop { background: rgba(0, 0, 0, 0.75); }
  .wf-image-dialog button { background: var(--heading); color: var(--g5-color-white); border: 0px; }
  .wf-site a:focus-visible, .wf-site summary:focus-visible, .wf-site button:focus-visible { outline: 3px solid var(--g5-color-charcoal); }
  .contact-choice-group { border: 0px; }
  .contact-choice-group legend, .wf-contact .contact-details h2 { border: 0px; color: var(--heading,var(--g5-color-charcoal)); }
  .wf-contact .contact-choice-help { color: var(--g5-color-text); }
  .contact-sr-only, .contact-option > input { border: 0px !important; }
  .contact-option .wf-icon-card > span:last-child { color: var(--g5-color-charcoal); }
  .contact-option .contact-check { background: var(--hover-solid,var(--g5-color-hover)); color: var(--heading); }
  .contact-option > input:checked + .wf-icon-card .wf-icon-frame { border: 2px solid var(--hover-solid,var(--g5-color-hover)); background: var(--g5-color-selection); }
  .contact-option > input:checked + .wf-icon-card > span:last-child { color: var(--heading,var(--g5-color-charcoal)); }
  .contact-option > input:focus-visible + .wf-icon-card .wf-icon-frame { outline: 3px solid var(--hover-solid,var(--g5-color-hover)); }
  .wf-contact .contact-choice-error { color: var(--g5-color-error); }
  .contact-process { border: 0px; }
  .wf-contact .contact-process-label { color: var(--g5-color-charcoal); }
  .contact-stages > li { border: 1px solid var(--g5-color-border); background: var(--g5-color-stone); }
  .contact-stages > li.is-selected { border-color: var(--hover-solid,var(--g5-color-hover)); background: var(--g5-color-selection); }
  .contact-stages:has(> li.is-selected) > li:not(.is-selected) { background: var(--g5-color-stone); }
  .contact-stages:has(> li.is-selected) > li:not(.is-selected) .contact-stage-number, .contact-stage-number { color: var(--g5-color-text); }
  .contact-stages > li.is-selected .contact-stage-number { color: var(--g5-color-charcoal); }
  .wf-contact .contact-stages h3 { color: var(--heading,var(--g5-color-charcoal)); }
  .wf-contact .contact-process-summary { color: var(--g5-color-text); }
  .contact-stage-guide summary { color: var(--heading,var(--g5-color-charcoal)); }
  .contact-stage-guide summary:focus-visible { outline: 2px solid var(--hover-solid,var(--g5-color-hover)); }
  .wf-contact .contact-stage-descriptions p { color: var(--g5-color-text); }
  .contact-details { background: var(--g5-color-selection); }
  .wf-contact .contact-details-help { color: var(--g5-color-text); }
  .contact-field input:not([type="file"]), .contact-field textarea { border: 1px solid var(--g5-color-border); background: var(--g5-color-white); color: var(--heading); outline: none; }
  .contact-field input::placeholder, .contact-field textarea::placeholder { color: var(--g5-color-text); }
  .contact-field input:focus::placeholder, .contact-field textarea:focus::placeholder { color: transparent; }
  .contact-field input:focus, .contact-field textarea:focus { border-color: var(--hover-solid,var(--g5-color-hover)); box-shadow: 0 0 0 1px var(--hover-solid,var(--g5-color-hover)); }
  .contact-upload { border: 1px solid var(--g5-color-border); background: var(--g5-color-white); }
  .contact-upload:focus-within { border-color: var(--hover-solid,var(--g5-color-hover)); box-shadow: 0 0 0 1px var(--hover-solid,var(--g5-color-hover)); }
  .contact-upload > label > span { color: var(--g5-color-text); }
  .contact-upload input { color: var(--heading); }
  .contact-upload input::file-selector-button { background: var(--g5-color-white); border: 1px solid var(--g5-color-border); }
  .contact-upload input:focus-visible { outline: 2px solid var(--hover-solid,var(--g5-color-hover)); }
  .wf-contact .contact-form-status { color: var(--g5-color-error); }
  .contact-submit { border: 1px solid var(--g5-color-border); background: var(--g5-color-white); color: var(--heading); }
  .contact-submit:hover, .contact-submit:focus, .contact-submit:active, .contact-submit.is-submitting { background: var(--hover-solid,var(--g5-color-hover)); border-color: var(--hover-solid,var(--g5-color-hover)); }
  .contact-submit:focus-visible { outline: 2px solid var(--heading); }
  .wf-thank-you .enquiry-confirmation { background: var(--secondary,var(--g5-color-grey)); }
  .confirmation-card { background: var(--g5-color-white); border-top: 3px solid var(--accent,var(--g5-color-accent)); }
  .confirmation-mark { border: 1px solid var(--accent,var(--g5-color-accent)); color: var(--heading,var(--g5-color-charcoal)); }
  .confirmation-mark svg { fill: none; stroke: currentcolor; }
  .confirmation-secondary { border: 1px solid var(--heading,var(--g5-color-charcoal)); color: var(--heading,var(--g5-color-charcoal)); }
  .confirmation-secondary:hover { background: var(--hover-solid,var(--g5-color-hover)); border-color: var(--hover-solid,var(--g5-color-hover)); }
  html #g5-consent { background: var(--heading,var(--g5-color-charcoal)); color: var(--g5-color-white); border-top: 4px solid var(--accent,var(--g5-color-accent)); box-shadow: rgba(0, 0, 0, 0.2) 0px -8px 30px; }
  html #g5-consent h2, html #g5-consent p { color: var(--g5-color-white); }
  html #g5-consent a { color: var(--accent,var(--g5-color-accent)); }
  html #g5-consent button { border: 1px solid rgba(255, 255, 255, 0.75); background: transparent; color: var(--g5-color-white); }
  html #g5-consent button:hover { border-color: var(--g5-color-white); }
  html #g5-consent button[data-choice="accept"] { background: var(--accent,var(--g5-color-accent)); border-color: var(--accent,var(--g5-color-accent)); color: var(--heading,var(--g5-color-charcoal)); }
  html #g5-consent button[data-choice="accept"]:hover { background: var(--hover-solid,var(--g5-color-hover)); border-color: var(--hover-solid,var(--g5-color-hover)); }
  html #g5-consent button:focus-visible, html #g5-cookie-settings:focus-visible { outline: 3px solid var(--accent,var(--g5-color-accent)); }
  html #g5-cookie-settings { color: inherit; background: transparent; border: 0px; }
  b, strong { font-weight: var(--g5-weight-strong); }
  body { line-height: var(--g5-leading-body); font-weight: var(--g5-weight-regular); }
  .nav a { font-weight: var(--g5-weight-regular); }
  .subnav-group h3 { font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-heading); }
  .subnav a { font-weight: var(--g5-weight-regular); }
  .hero p { font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-body); }
  .sec-head h2 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .sec-head h2 b { font-weight: var(--g5-weight-strong); }
  .ticks li { line-height: var(--g5-leading-compact); }
  .prose strong, .mb-band h2, .site-footer h3 { font-weight: var(--g5-weight-strong); }
  .t-subtitle { font-weight: var(--g5-weight-regular); }
  .t-subheading { font-weight: var(--g5-weight-strong); }
  #testimonials .t-subtitle { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-compact); }
  .hero h1, .page-hero h1 { font-weight: var(--g5-weight-strong); }
  .legal h2 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .legal h3 { font-weight: var(--g5-weight-strong); }
  .form-status.ok, .form-status.err { font-weight: var(--g5-weight-regular); }
  .nav-cta a, .hero-copy .eyebrow { font-weight: var(--g5-weight-strong); }
  .hero-copy h1 { line-height: var(--g5-leading-heading); font-weight: var(--g5-weight-strong); }
  .hero-copy p { line-height: var(--g5-leading-body); }
  .trust-heading, .trust-copy strong { font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-compact); }
  .trust-copy span { line-height: var(--g5-leading-compact); }
  .service-card .label b { font-weight: var(--g5-weight-strong); }
  .service-card .label em { line-height: var(--g5-leading-compact); }
  .sec-foot a { font-weight: var(--g5-weight-regular); }
  .project-card h3, .project-card .tag, .case-kicker { font-weight: var(--g5-weight-strong); }
  .case-hero h1 { line-height: var(--g5-leading-heading); font-weight: var(--g5-weight-strong); }
  .case-hero .intro { line-height: var(--g5-leading-compact); }
  .case-result strong { font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-compact); }
  .case-section h2 { line-height: var(--g5-leading-heading); font-weight: var(--g5-weight-light); }
  .case-section h2 b, .case-fact dt { font-weight: var(--g5-weight-strong); }
  .case-fact dd { font-weight: var(--g5-weight-regular); }
  .case-quote blockquote { line-height: var(--g5-leading-body); font-weight: var(--g5-weight-light); }
  .case-quote cite, .case-back, .process-step h3 { font-weight: var(--g5-weight-strong); }
  .testimonial blockquote { font-weight: var(--g5-weight-light); }
  .testimonial .who { font-weight: var(--g5-weight-strong); }
  .testimonial .who span { font-weight: var(--g5-weight-regular); }
  .pull-quote p { line-height: var(--g5-leading-body); font-weight: var(--g5-weight-light); }
  .pull-quote cite { font-weight: var(--g5-weight-strong); }
  .stat b { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .fmb-strip p { line-height: var(--g5-leading-body); }
  .fmb-strip strong { font-weight: var(--g5-weight-strong); }
  .enquire h2 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .enquire h2 b, .project-back, .project-eyebrow { font-weight: var(--g5-weight-strong); }
  .project-intro-copy h1 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .project-facts dt { font-weight: var(--g5-weight-strong); }
  .chapter-heading h2, .opposites-heading h2, .result-heading h2 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .opposites-heading h2 { font-weight: var(--g5-weight-light); }
  .opposite-copy span { font-weight: var(--g5-weight-strong); }
  .opposite-copy h3 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .result-gallery-group h3 { font-weight: var(--g5-weight-light); }
  .result-gallery-group h3 span, .project-film-link a { font-weight: var(--g5-weight-strong); }
  .project-story .enquire h2 { line-height: var(--g5-leading-heading); }
  .performance-band strong { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .performance-band span { line-height: var(--g5-leading-compact); }
  .performance-comparison-title h3 { line-height: var(--g5-leading-heading); }
  .performance-comparison-title h3 em { font-weight: var(--g5-weight-regular); }
  .performance-table-head, .performance-table-row strong, .wireframe-nav a { font-weight: var(--g5-weight-strong); }
  .wf-site .sec-head h2 { line-height: var(--g5-leading-heading); font-weight: var(--g5-weight-light); }
  .wf-home-hero .hero-copy h1 { line-height: var(--g5-leading-heading); }
  .wf-home-hero .hero-copy .eyebrow { line-height: var(--g5-leading-compact); }
  .wf-featured-credit { font-weight: inherit; }
  .wf-home-hero .hero-copy .wf-hero-description, .wf-points li { line-height: var(--g5-leading-compact); }
  .wf-points li strong, .wf-choices summary { font-weight: var(--g5-weight-strong); }
  .wf-comparison { line-height: var(--g5-leading-compact); }
  .wf-comparison caption, .wf-comparison th, .wf-site .process-step h3 { font-weight: var(--g5-weight-strong); }
  .wf-faq summary { font-weight: var(--g5-weight-regular); }
  .wf-cta h2 { font-weight: var(--g5-weight-light); }
  .wf-portfolio h1 { font-weight: var(--g5-weight-regular); }
  .wf-contact .contact-content { line-height: var(--g5-leading-body); }
  .contact-option .wf-icon-card > span:last-child { line-height: var(--g5-leading-compact); }
  .contact-option > input:checked + .wf-icon-card > span:last-child, .wf-contact .contact-process-label { font-weight: var(--g5-weight-regular); }
  .contact-stage-number { font-weight: var(--g5-weight-regular); line-height: var(--g5-leading-compact); }
  .wf-contact .contact-stages h3, .wf-contact .contact-stage-descriptions h3 { font-weight: var(--g5-weight-regular); }
  .wf-contact .contact-stage-descriptions p { line-height: var(--g5-leading-body); }
  .wf-thank-you .confirmation-card h1 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  html #g5-consent h2 { font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-heading); }
  html #g5-consent p { line-height: var(--g5-leading-body); }
  html #g5-consent button { font-weight: var(--g5-weight-regular); }
  .wf-site h1, .wf-site h2, .project-story h1, .project-story h2 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .wf-home-hero .hero-copy h1 { font-weight: var(--g5-weight-regular); }
  .wf-site h3 { font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-heading); }
  .wf-hero-copy h2 { font-weight: var(--g5-weight-strong); }
  .contact-choice-group legend, .wf-contact .contact-details h2 { font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); }
  .chapter-heading h2 em, .project-intro-copy h1 strong { font-weight: var(--g5-weight-strong); }
  .performance-comparison-title h3 { font-weight: var(--g5-weight-light); }
  .wf-site .process-step h3, .wf-contact .contact-stages h3, .wf-contact .contact-stage-descriptions h3, .wf-icon-card span, .wf-type-icons figcaption, .project-card .meta, .wf-image-pair figcaption, .project-story figcaption, .project-facts dd, .performance-table-row, .performance-table-row p, .performance-summary p, .process-step p, .wf-site .process-step p, .wf-contact .contact-choice-help, .wf-contact .contact-process-summary, .wf-contact .contact-details-help, .wf-contact .contact-upload p, .contact-stage-guide summary, .nav a, .subnav a, .btn, .btn-ghost, .contact-submit, .contact-field input:not([type="file"]), .contact-field textarea, .contact-upload input, .contact-upload input::file-selector-button { line-height: var(--g5-leading-compact); }
  .wf-site p, .prose p, .project-description, .chapter-heading > p, .opposite-copy p, .opposites-heading > p:last-child, .result-heading > p:last-child, .testimonial blockquote, .wf-reviews blockquote, .wf-thank-you .confirmation-card p { line-height: var(--g5-leading-body); }
  .wf-contact .contact-choice-help, .wf-contact .contact-process-summary, .wf-contact .contact-details-help, .wf-contact .contact-upload p, .process-step p, .wf-site .process-step p, .performance-table-row p, .performance-summary p, .project-card .meta { line-height: var(--g5-leading-compact); }
  section, .wf-section, .case-section, .enquire, .wf-cta { padding-block: var(--g5-space-16); }
  .wf-section + .wf-section { padding-top: var(--g5-space-8); }
  .wf-hero { padding-block: var(--g5-space-16); }
  .wf-types { padding-bottom: 0px; }
  .wf-choice-band, .wf-visual-band { padding-block: var(--g5-space-8); }
  .project-story section { padding-block: var(--g5-space-16); }
  .project-intro { padding-top: var(--g5-space-12) !important; }
  .project-opposites { padding-bottom: var(--g5-space-16) !important; }
  .project-facts-band { padding: 0px !important; }
  .project-story .result-gallery-group { padding-block: 0px; }
  .project-story .performance-comparison { margin-bottom: var(--g5-space-8); padding-block: 0px !important; }
  .wf-contact .contact-content { padding-top: var(--g5-space-12); padding-bottom: var(--g5-space-16); }
  .wf-thank-you .enquiry-confirmation { padding-block: var(--g5-space-16); }
  .sec-head, .wf-site .sec-head { gap: calc(var(--g5-space-1) * var(--g5-title-rule-scale)); margin-bottom: var(--g5-space-8); }
  /* Halve heading-to-rule spacing; retain title sizes and line heights. */
  .project-intro-copy h1, .chapter-heading h2, .opposites-heading h2, .result-heading h2, .project-story .enquire h2 { padding-bottom: calc(4.5px * var(--g5-title-rule-scale)); }
  .opposite-copy h3 { padding-bottom: calc(3.5px * var(--g5-title-rule-scale)); }
  .performance-comparison-title { padding-bottom: calc(5.5px * var(--g5-title-rule-scale)); }
  .chapter-heading, .opposites-heading, .result-heading { margin-bottom: var(--g5-space-8); }
  .project-intro-copy h1 { margin-bottom: var(--g5-space-6); }
  .project-eyebrow, .wf-site p, .prose p, .legal p { margin-bottom: var(--g5-space-4); }
  .wf-site p:last-child, .prose p:last-child, .legal p:last-child, .chapter-heading > p, .opposites-heading > p:last-child, .result-heading > p:last-child { margin-bottom: 0px; }
  .brislington-story .brislington-brief-heading > p { margin-bottom: var(--g5-space-4); }
  /* Chapter descriptions and the heading rule share one bottom edge. */
  .project-story .project-chapter .chapter-heading > div { align-self: end; }
  .project-story .project-chapter .chapter-heading > p { align-self: end; margin: 0; }
  .project-story figcaption, .wf-image-pair figcaption, .wf-enlarge { margin-top: var(--g5-space-2); }
  .wf-grid-heading { margin: var(--g5-space-8) 0 var(--g5-space-6); }
  .wf-grid-heading:not(:first-of-type) { margin-top: var(--g5-space-12); }
  .wf-site .project-card h3, .project-card h3 { margin: var(--g5-space-4) 0 calc(var(--g5-space-2) * .3); }
  .wf-site .project-card .meta { margin: 0px; }
  .wf-package h3 { margin-bottom: var(--g5-space-6); }
  .wf-stage-label { margin-bottom: var(--g5-space-8) !important; }
  .wf-comparison-copy { margin-bottom: var(--g5-space-6); }
  .wf-portfolio-intro { margin-bottom: var(--g5-space-8) !important; }
  .sec-foot, .stat-row, .confirmation-actions { margin-top: var(--g5-space-8); }
  .split, .wf-site .split, .wf-hero-grid, .wf-image-pair, .testimonial, .enquire .split { gap: var(--g5-space-12); }
  .wf-icon-grid, .wf-projects-two, .wf-type-icons, .wf-package-grid { gap: var(--g5-space-8); }

  /* Home section rhythm and icon spacing match the enquiry layout. */
  :is(.wf-home, .wf-services-overview) main > .wf-section { padding-block: var(--g5-space-12); }
  :is(.wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts) main > .wf-hero, :is(.wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts) main > .wf-section { padding-block: var(--g5-space-12); }
  :is(.wf-extensions, .wf-garden) main > .wf-types { padding-bottom: 0; }
  /* Storey tabs reuse the enquiry form's outlined icon selection language. */
  :is(.wf-extensions #extension-types, .wf-garden #garden-types).is-tabbed { padding-bottom: var(--g5-space-12); }
  :is(#extension-types, #garden-types).is-tabbed .extension-tabs-desktop { display: block; max-width: calc(1200px - 4 * var(--g5-space-8)); margin-inline: auto; }
  :is(#extension-types, #garden-types).is-tabbed .extension-types-legacy { display: none; }
  .extension-type-tabs { display: flex; justify-content: center; gap: calc(var(--g5-space-12) * 1.3); margin-bottom: var(--g5-space-8); }
  .extension-type-tab { position: relative; min-width: 200px; padding: 0; border: 0; background: transparent; font: inherit; color: var(--g5-color-charcoal); cursor: pointer; gap: var(--g5-space-3); }
  .extension-type-tab .wf-icon-frame { position: relative; }
  .extension-type-tab[aria-selected="true"] .wf-icon-frame { border: 2px solid var(--g5-color-hover); padding: 7px; background: var(--g5-color-selection); }
  .extension-type-tab[aria-selected="true"] .extension-type-name { font-weight: var(--g5-weight-strong); }
  .extension-type-tab .extension-type-name { display: inline-flex; align-items: center; gap: var(--g5-space-2); transition: color .2s ease; }
  .extension-type-chevron { width: var(--g5-space-3); height: var(--g5-space-3); flex-shrink: 0; color: var(--g5-color-hover); transition: transform .2s ease; }
  .wf-extensions #extension-types .extension-type-chevron { width: var(--g5-space-4); height: var(--g5-space-4); }
  .extension-type-tab:hover .extension-type-name, .extension-type-tab:focus-visible .extension-type-name { color: var(--g5-color-hover); }
  .extension-type-tab[aria-selected="true"] .extension-type-chevron { transform: rotate(180deg); }
  .extension-tab-check { position: absolute; top: var(--g5-space-2); right: var(--g5-space-2); display: grid; place-items: center; width: var(--g5-space-6); height: var(--g5-space-6); border-radius: 50%; background: var(--g5-color-hover); font-size: var(--g5-type-13); font-weight: var(--g5-weight-strong); visibility: hidden; }
  .extension-type-tab[aria-selected="true"] .extension-tab-check { visibility: visible; }
  :is(#extension-types, #garden-types) .extension-type-tab:focus-visible { outline: none; }
  .extension-type-tab:focus-visible .wf-icon-frame { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  .extension-type-panel { padding: 0; border: 0; border-radius: var(--g5-space-6); background: var(--g5-color-selection); overflow: hidden; }
  .extension-type-panel[hidden] { display: none; }
  .extension-tabs-body { padding: var(--g5-space-8); }
  .extension-type-panel:focus-visible { outline: 2px solid var(--g5-color-border); outline-offset: var(--g5-space-1); }
  .extension-type-intro h3, .extension-layout h3 { margin: 0 0 var(--g5-space-3); font-size: var(--g5-type-20); font-weight: var(--g5-weight-strong); }
  .extension-type-intro p { margin: 0; }
  .wf-extensions .extension-layout-note { margin: var(--g5-space-6) 0; color: var(--g5-color-text); }
  .extension-layouts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--g5-space-6) var(--g5-space-8); }
  .extension-layout { padding-top: var(--g5-space-4); border-top: 1px solid var(--g5-color-border); }
  .extension-layout p { margin: 0; }
  @media (prefers-reduced-motion: reduce) {
    .extension-type-tab .wf-icon-frame, .extension-type-tab .extension-type-name, .extension-type-chevron { transition: none; }
    .extension-type-tab:hover .wf-icon-frame, .extension-type-tab:focus-visible .wf-icon-frame { transform: none; }
  }
  .wf-garden .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wf-garden .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-garden .garden-hero-intro { display: block; margin-bottom: var(--g5-space-6); }
  .wf-garden .wf-hero-copy .wf-points li:last-child { margin-bottom: 0; }
  .wf-garden .garden-uses { margin-top: var(--g5-space-6); }
  .wf-garden .garden-project-link { margin: var(--g5-space-6) 0 0; }
  /* Architectural service: covered stages and a survey-to-planning drawing sequence. */
  .wf-architectural main > :is(.wf-hero, .wf-section, .architectural-stages, .architectural-process-section) { padding-block: var(--g5-space-12); }
  .wf-architectural .architectural-legacy-drawings, .wf-architectural .architectural-legacy-copy, .wf-architectural .architectural-legacy-package-title, .wf-architectural .architectural-legacy-cta-title, .wf-architectural .architectural-legacy-package-stages { display: none; }
  .wf-architectural .architectural-hero-sketch, .wf-architectural .architectural-hero-details, .wf-architectural .architectural-stages, .wf-architectural .architectural-process-section { display: block; }
  .wf-architectural .architectural-package-title, .wf-architectural .architectural-cta-title { display: inline; }
  .wf-architectural .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .wf-architectural .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-architectural .architectural-title-emphasis { font-weight: var(--g5-weight-strong); }
  .wf-architectural .architectural-hero-details > p { margin: 0 0 var(--g5-space-6); }
  .wf-architectural .wf-hero-copy .wf-points:has(span) { padding-left: var(--g5-space-4); }
  .wf-architectural .wf-hero-copy .wf-points li:has(span) { list-style: disc; padding-left: var(--g5-space-1); }
  .wf-architectural .wf-hero-copy .wf-points li:last-child { margin-bottom: 0; }
  .wf-architectural .architectural-hero-sketch, .wf-architectural .architectural-hero-sketch .wf-drawing { height: 100%; }
  .wf-architectural .architectural-hero-sketch img { width: 100%; height: 0; min-height: 100%; object-fit: contain; }
  .wf-architectural .architectural-process-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g5-space-16); list-style: none; padding: 0; margin: 0; }
  .wf-architectural .architectural-process-step { position: relative; min-width: 0; }
  .wf-architectural .architectural-process-step h3 { font-size: var(--g5-type-20); font-weight: var(--g5-weight-strong); margin: 0 0 var(--g5-space-6); }
  .wf-architectural .architectural-process-arrow { position: absolute; left: calc(100% + var(--g5-space-4)); top: calc(50% + var(--g5-space-6)); width: 32px; height: 24px; color: var(--g5-color-hover); cursor: default; transform: translateY(-50%); pointer-events: none; user-select: none; }
  .wf-architectural .architectural-stage-note { margin: var(--g5-space-6) 0 0; color: var(--g5-color-text); font-size: var(--g5-type-12); }
  .wf-architectural figure { margin: 0; }
  .wf-architectural .architectural-process-timeline img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; }
  .wf-architectural .wf-drawing:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  .wf-architectural .wf-stage-label { background: transparent; color: var(--g5-color-text); padding: 0; }
  .wf-architectural .wf-package { border-radius: var(--g5-space-6); }
  .wf-architectural .wf-package-light { background: var(--g5-color-selection); color: var(--g5-color-charcoal); }
  .wf-architectural .wf-package-dark { background: var(--g5-color-charcoal); color: var(--g5-color-white); }
  .wf-architectural .wf-package-dark h3 { color: var(--g5-color-accent); }
  .wf-architectural .wf-package li { line-height: var(--g5-leading-body); margin-bottom: var(--g5-space-3); }
  /* Technical Design retains its service list and highlights only stage 4. */
  .wf-technical main > :is(.wf-hero, .wf-section) { padding-block: var(--g5-space-12); }
  .wf-technical :is(.technical-legacy-subtitle, .technical-legacy-scope, .technical-legacy-enlarge, .technical-legacy-process-title, .technical-legacy-stage-label) { display: none; }
  .wf-technical .technical-process-title { display: inline; }
  .wf-technical .technical-stage-note { display: block; margin: var(--g5-space-6) 0 0; color: var(--g5-color-text); font-size: var(--g5-type-12); }
  .wf-technical .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .wf-technical .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-technical .wf-hero-copy > p { margin: 0 0 var(--g5-space-6); }
  .wf-technical .wf-hero-copy .wf-points, .wf-technical .wf-hero-copy .wf-points li:last-child { margin-bottom: 0; }
  .wf-technical .wf-hero-media, .wf-technical .wf-hero-media .wf-drawing { height: 100%; }
  .wf-technical .wf-hero-media img { width: 100%; height: 0; min-height: 100%; object-fit: contain; }
  .wf-technical .wf-drawing:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  /* Construction Management shares the service-page rhythm and covers stages 5–6. */
  .wf-construction main > :is(.wf-hero, .wf-section) { padding-block: var(--g5-space-12); }
  .wf-construction :is(.construction-legacy-intro, .construction-legacy-inspections, .construction-legacy-process-title, .construction-legacy-stage-label) { display: none; }
  .wf-construction .construction-intro { display: block; margin: 0 0 var(--g5-space-6); }
  .wf-construction .construction-process-title { display: inline; }
  .wf-construction .construction-inspections { display: list-item; }
  .wf-construction .construction-stage-note { display: block; margin: var(--g5-space-6) 0 0; color: var(--g5-color-text); font-size: var(--g5-type-12); }
  .wf-construction .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .wf-construction .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-construction .construction-title-emphasis { font-weight: var(--g5-weight-strong); }
  .wf-construction .wf-hero-copy .wf-points, .wf-construction .wf-hero-copy .wf-points li:last-child { margin-bottom: 0; }
  .wf-construction .wf-hero-media { height: 100%; }
  .wf-construction .wf-hero-media img { width: 100%; height: 0; min-height: 100%; object-fit: cover; object-position: center; }
  /* Complete Design & Build retains the service list and covers every stage. */
  .wf-complete main > :is(.wf-hero, .wf-section) { padding-block: var(--g5-space-12); }
  .wf-complete :is(.complete-legacy-intro, .complete-legacy-process-title, .complete-legacy-stage-label) { display: none; }
  .wf-complete .complete-intro { display: block; margin: 0 0 var(--g5-space-6); }
  .wf-complete .complete-process-title { display: inline; }
  .wf-complete .complete-stage-note { display: block; margin: var(--g5-space-6) 0 0; color: var(--g5-color-text); font-size: var(--g5-type-12); }
  .wf-complete .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .wf-complete .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-complete .complete-title-emphasis { font-weight: var(--g5-weight-strong); }
  .wf-complete .wf-hero-copy .wf-points, .wf-complete .wf-hero-copy .wf-points li:last-child { margin-bottom: 0; }
  .wf-complete .wf-hero-media { height: 100%; }
  .wf-complete .wf-hero-media img { width: 100%; height: 0; min-height: 100%; object-fit: cover; object-position: center; }
  /* New Homes separates proposed concepts from completed portfolio projects. */
  .wf-new-homes .new-homes-legacy-hero, .wf-new-homes .new-homes-legacy-concepts { display: none; }
  .wf-new-homes .new-homes-hero-concept, .wf-new-homes .new-homes-intro, .wf-new-homes .new-homes-design { display: block; }
  .wf-new-homes .wf-hero-grid, .wf-new-homes .new-homes-design-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wf-new-homes .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-new-homes .new-homes-intro { margin-bottom: var(--g5-space-6); }
  :is(.wf-new-homes, .wf-lofts) .wf-hero-copy .wf-points:has(span) { padding-left: var(--g5-space-4); }
  :is(.wf-new-homes, .wf-lofts) .wf-hero-copy .wf-points li:has(span) { list-style: disc; padding-left: var(--g5-space-1); }
  .wf-new-homes .wf-points li:last-child { margin-bottom: 0; }
  .wf-new-homes .wf-hero-media { align-self: stretch; }
  .wf-new-homes .new-homes-hero-concept, .wf-new-homes .new-homes-hero-concept figure, .wf-new-homes .new-homes-hero-concept .wf-drawing { height: 100%; }
  .wf-new-homes .new-homes-hero-concept .wf-drawing img { height: 0; min-height: 100%; object-fit: cover; object-position: center; }
  .wf-new-homes figure { margin: 0; }
  .wf-new-homes .new-homes-design-grid { display: grid; gap: var(--g5-space-12); align-items: end; }
  .wf-new-homes .new-homes-concept-note { margin: 0 0 var(--g5-space-8); }
  .wf-new-homes .wf-drawing { display: block; }
  .wf-new-homes .wf-drawing img { width: 100%; height: auto; object-fit: contain; }
  .wf-new-homes .new-homes-design-grid img { aspect-ratio: 12 / 5; object-fit: contain; }
  .wf-new-homes .new-homes-design-grid figcaption { margin-top: var(--g5-space-2); color: var(--g5-color-text); font-size: var(--g5-type-12); line-height: var(--g5-leading-compact); }
  .wf-new-homes .wf-drawing:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  /* Lofts remain part of a coordinated, larger home project. */
  .wf-lofts .lofts-legacy-hero, .wf-lofts .lofts-legacy-copy, .wf-lofts .lofts-legacy-concepts { display: none; }
  .wf-lofts .lofts-hero-visual, .wf-lofts .lofts-hero-details, .wf-lofts .lofts-design { display: block; }
  .wf-lofts .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wf-lofts .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-lofts .lofts-title-emphasis, .wf-lofts .lofts-cta-emphasis { font-weight: var(--g5-weight-strong); }
  .wf-lofts .lofts-process-title { display: inline; }
  .wf-lofts .lofts-legacy-process { display: none; }
  .wf-lofts .lofts-hero-details > p { margin: 0 0 var(--g5-space-6); }
  .wf-lofts .wf-points li:last-child { margin-bottom: 0; }
  .wf-lofts .wf-hero-media { align-self: stretch; }
  .wf-lofts .lofts-hero-visual, .wf-lofts .lofts-hero-visual figure, .wf-lofts .lofts-hero-visual .wf-drawing { height: 100%; }
  .wf-lofts figure { margin: 0; }
  .wf-lofts .lofts-hero-visual img { width: 100%; height: 0; min-height: 100%; object-fit: cover; object-position: center; }
  .wf-lofts .lofts-design-intro { margin: 0 0 var(--g5-space-8); }
  .wf-lofts .lofts-design-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--g5-space-12); align-items: end; }
  .wf-lofts .lofts-design-grid img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
  .wf-lofts .lofts-design-grid figcaption { margin-top: var(--g5-space-2); color: var(--g5-color-text); font-size: var(--g5-type-12); line-height: var(--g5-leading-compact); }
  .wf-lofts .wf-drawing:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  .wf-extensions .wf-hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wf-extensions .wf-hero-media { align-self: stretch; }
  .wf-extensions .wf-hero-media > img { height: 0; min-height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover; object-position: center top; }
  .wf-extensions .wf-hero-copy h1 { font-size: var(--g5-type-30); margin-bottom: var(--g5-space-6); }
  .wf-extensions .wf-hero-copy > p { margin-bottom: var(--g5-space-6); }
  .wf-extensions .wf-hero-copy .wf-points li:last-child { margin-bottom: 0; }
  .wf-extensions #projects { background: var(--g5-color-white); color: var(--g5-color-charcoal); }
  .wf-extensions #projects .sec-head h2, .wf-extensions #projects .project-card h3, .wf-extensions #projects .sec-foot a { color: var(--g5-color-charcoal); }
  .wf-extensions #projects .project-card .meta { color: var(--g5-color-text); }
  .wf-extensions #projects .sec-head .rule { background: var(--g5-color-charcoal); }
  :is(.wf-home, .wf-services-overview) #services :is(.wf-icon-grid, .services-projects-desktop), :is(.wf-home, .wf-services-overview) #services .wf-grid-heading { width: calc(100% - 2 * var(--g5-space-8)); max-width: calc(1200px - 4 * var(--g5-space-8)); margin-inline: auto; }
  :is(.wf-home, .wf-services-overview) #services :is(.wf-icon-grid, .services-projects-desktop) { gap: var(--g5-space-6); }
  :is(.wf-home, .wf-services-overview) #services .wf-icon-card { gap: var(--g5-space-3); }
  :is(.wf-home, .wf-services-overview) #services .wf-icon-card > span:last-child { max-width: 230px; }

  /* Service overview uses the same title hierarchy and compact icon grids. */
  .wf-services-overview .services-projects-legacy, .wf-services-overview .services-legacy-cta-title { display: none; }
  .wf-services-overview .services-desktop-cta-title { display: inline; }
  .wf-services-overview .services-projects-desktop { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .wf-services-overview #process { display: block; }
  .wf-services-overview #services .sec-head h1 { font-size: var(--g5-type-30); font-weight: var(--g5-weight-light); line-height: var(--g5-leading-heading); max-width: none; margin: 0; }

  /* All featured sections and Portfolio share compact project cards. */
  .wf-featured-projects .projects-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wf-site .wf-featured-projects .project-card h3 { margin-bottom: 0; }
  .wf-portfolio-page #projects .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--g5-space-12); row-gap: var(--g5-space-16); }
  .wf-portfolio-page #projects .project-card h3 { margin-top: var(--g5-space-2); margin-bottom: 0; }
  .wf-portfolio-page #projects .project-card .meta { line-height: var(--g5-leading-heading); }
  .wf-portfolio-page #projects .project-card .meta > br { display: none; }
  .wf-portfolio-page #projects .project-meta-line, .wf-portfolio-page #projects .project-meta-stage-names { display: block; }
  .wf-portfolio-page #projects .project-meta-stages { display: block; margin: 0; color: var(--g5-color-hover); font-size: var(--g5-type-12); font-weight: var(--g5-weight-strong); line-height: var(--g5-leading-heading); letter-spacing: .18em; text-transform: uppercase; }
  .wf-portfolio-page .sec-head h1 { font-size: var(--g5-type-30); line-height: var(--g5-leading-heading); font-weight: var(--g5-weight-light); margin: 0; max-width: none; letter-spacing: .2px; }
  .wf-featured-projects, .wf-portfolio-page #projects { padding-block: var(--g5-space-12); }
  :is(.wf-featured-projects, .wf-portfolio-page #projects) .sec-head { margin-bottom: var(--g5-space-6); }
  :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card .shot { aspect-ratio: 2 / 1; }
  :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card h3, :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card .meta { transition: color .2s ease; }
  :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card:hover h3, :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card:hover .meta, :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card:focus-visible h3, :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card:focus-visible .meta { color: var(--g5-color-hover); }
  :is(.wf-featured-projects, .wf-portfolio-page #projects) .sec-foot { margin-top: var(--g5-space-6); text-align: left; }
  .wf-site .wf-home-text-link { font-style: italic; text-decoration: none; }
  .wf-site .wf-home-text-link::after { content: '↗'; display: inline-block; margin-left: var(--g5-space-2); color: var(--g5-color-accent); font-style: normal; line-height: 1; }
  .wf-home #testimonials .wf-home-text-link { color: var(--g5-color-charcoal); }
  .wf-site .wf-home-text-link:hover, .wf-site .wf-home-text-link:focus-visible, .wf-site :is(#projects, #testimonials) .wf-home-text-link:hover, .wf-site :is(#projects, #testimonials) .wf-home-text-link:focus-visible, .wf-site .wf-home-text-link:hover::after, .wf-site .wf-home-text-link:focus-visible::after { color: var(--g5-color-hover); }
  .wf-site .wf-home-text-link:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }

  /* Home and Extensions calls to action share the menu button's hover enlargement. */
  :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) { --g5-button-hover-scale: 1.045; }
  .btn[href$="contact.html"], .wf-home .btn-ghost { font-weight: var(--g5-weight-strong); }
  :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) .btn, .wf-home .btn-ghost, .wf-home .nav-cta > a, html body.wf-home #g5-consent button { transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
  :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) .btn:hover, :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) .btn:focus-visible, .wf-home .btn-ghost:hover, .wf-home .btn-ghost:focus-visible, .wf-home .nav-cta > a:hover, .wf-home .nav-cta > a:focus-visible, html body.wf-home #g5-consent button:hover, html body.wf-home #g5-consent button:focus-visible { transform: scale(var(--g5-button-hover-scale)); background: var(--g5-color-hover); color: var(--g5-color-charcoal); border-color: var(--g5-color-hover); }
  .wf-home .btn-ghost:hover, .wf-home .btn-ghost:focus-visible { background: var(--g5-color-grey); color: var(--g5-color-charcoal); border-color: var(--g5-color-grey); }
  @media (prefers-reduced-motion: reduce) {
    :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) .btn, .wf-home .btn-ghost, .wf-home .nav-cta > a, html body.wf-home #g5-consent button { transition: none; transform: none; }
    :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) .btn:hover, :is(.wf-home, .wf-extensions, .wf-garden, .wf-new-homes, .wf-lofts, .wf-services-overview, .wf-architectural, .wf-portfolio-page) .btn:focus-visible, .wf-home .btn-ghost:hover, .wf-home .btn-ghost:focus-visible, .wf-home .nav-cta > a:hover, .wf-home .nav-cta > a:focus-visible, html body.wf-home #g5-consent button:hover, html body.wf-home #g5-consent button:focus-visible { transform: none; }
    :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card h3, :is(.wf-featured-projects, .wf-portfolio-page #projects) .project-card .meta { transition: none; }
  }


  /* Home accreditation links and compact, manually controlled testimonials. */
  .wf-home .trust-card:hover .trust-copy strong, .wf-home .trust-card:hover .trust-copy span, .wf-home .trust-card:focus-visible .trust-copy strong, .wf-home .trust-card:focus-visible .trust-copy span { color: var(--g5-color-hover); }
  .wf-home .trust-review b { font-weight: var(--g5-weight-strong); letter-spacing: 2px; }
  .wf-home #testimonials { padding-block: var(--g5-space-12); }
  .wf-home #testimonials .testimonial { grid-template-columns: minmax(0, 1fr) 320px; gap: var(--g5-space-12); }
  .wf-home #testimonials .testimonial > div { max-width: 720px; }
  .wf-home #testimonials .testimonial > img { width: 100%; height: auto; }
  .wf-home #testimonials .testimonial blockquote { font-weight: var(--g5-weight-regular); }
  .wf-home #testimonials .testimonial .who { margin-top: var(--g5-space-4); }
  .wf-home #testimonials .wf-review-heading { background: transparent; margin: var(--g5-space-6) 0 0; padding: 0; justify-content: flex-start; }
  .wf-home #testimonials.wf-carousel-ready .wrap > :is(.testimonial, .wf-review-heading), .wf-home #testimonials.wf-carousel-ready .wf-reviews { display: none; }
  .wf-testimonial-carousel { display: grid; grid-template-columns: var(--g5-glyph-lightbox-arrow) minmax(0, 1fr) var(--g5-glyph-lightbox-arrow); gap: var(--g5-space-4); align-items: center; }
  .wf-testimonial-track { display: grid; min-width: 0; min-height: 232px; overflow: hidden; }
  .wf-home #testimonials .wf-testimonial-slide { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; grid-area: 1 / 1; visibility: hidden; pointer-events: none; align-self: center; }
  .wf-home #testimonials .wf-testimonial-slide > .wf-review-heading { margin: 0; }
  .wf-home #testimonials .wf-testimonial-slide.is-active { visibility: visible; pointer-events: auto; }
  .wf-home #testimonials .wf-testimonial-slide.is-moving { visibility: visible; pointer-events: none; will-change: transform; }
  .wf-home #testimonials .wf-testimonial-slide .testimonial.is-review { grid-template-columns: minmax(0, 1fr); }
  .wf-home #testimonials .wf-testimonial-slide .testimonial.is-review > div { max-width: 900px; }
  .wf-home #testimonials .wf-testimonial-slide .wf-stars { color: var(--g5-color-accent); margin-bottom: var(--g5-space-4) !important; }
  .wf-testimonial-arrow { display: grid; place-items: center; width: var(--g5-glyph-lightbox-arrow); height: 112px; padding: 0; border: 0; border-radius: var(--g5-space-3); background: transparent; color: var(--g5-color-accent); font-family: inherit; font-size: var(--g5-glyph-lightbox-arrow); font-weight: 200; line-height: 1; cursor: pointer; transition: transform .2s ease, color .2s ease; }
  .wf-testimonial-arrow { translate: 0 calc(var(--testimonial-link-space, 0px) * -.5); }
  .wf-testimonial-arrow:hover, .wf-testimonial-arrow:focus-visible { color: var(--g5-color-hover); transform: scale(1.18); }
  .wf-testimonial-arrow:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  .wf-testimonial-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  @media (prefers-reduced-motion: reduce) {
    .wf-testimonial-arrow, .wf-testimonial-arrow:hover, .wf-testimonial-arrow:focus-visible { transition: none; transform: none; }
  }

  .wf-reviews, .services-grid, .projects-grid { gap: var(--g5-space-6); }
  .wf-package, .wf-reviews figure, .opposite-copy { padding: var(--g5-space-8); }
  .wf-review-heading { padding: var(--g5-space-6) var(--g5-space-8); margin: var(--g5-space-12) 0 var(--g5-space-8); }
  .result-gallery-groups { gap: var(--g5-space-8); }
  .result-gallery { gap: var(--g5-space-12); }
  .brislington-story .brislington-consultation-grid, .brislington-story .brislington-drawing-grid, .brislington-story .fabric-sequence, .brislington-story .transformation-triptych, .brislington-story .brislington-gallery { gap: var(--g5-space-8); }
  .wf-faq details { padding-block: var(--g5-space-6); }
  .wf-faq details > div { padding-top: var(--g5-space-6); }
  /* Shared compact closing invitations, with page-specific copy. */
  :is(.wf-home #home-enquiry, .wf-extensions #extension-enquiry, .wf-garden #garden-enquiry, .wf-new-homes #new-home-enquiry, .wf-lofts #loft-enquiry, .wf-services-overview #services-enquiry, .wf-architectural #architectural-enquiry, .wf-portfolio-page #portfolio-enquiry, #technical-enquiry, #construction-enquiry, #complete-enquiry) { padding-block: var(--g5-space-12); background: var(--g5-color-stone); color: var(--g5-color-charcoal); }
  :is(.wf-home #home-enquiry, .wf-extensions #extension-enquiry, .wf-garden #garden-enquiry, .wf-new-homes #new-home-enquiry, .wf-lofts #loft-enquiry, .wf-services-overview #services-enquiry, .wf-architectural #architectural-enquiry, .wf-portfolio-page #portfolio-enquiry, #technical-enquiry, #construction-enquiry, #complete-enquiry) .wrap { gap: var(--g5-space-12); }
  :is(.wf-home #home-enquiry, .wf-extensions #extension-enquiry, .wf-garden #garden-enquiry, .wf-new-homes #new-home-enquiry, .wf-lofts #loft-enquiry, .wf-services-overview #services-enquiry, .wf-architectural #architectural-enquiry, .wf-portfolio-page #portfolio-enquiry, #technical-enquiry, #construction-enquiry, #complete-enquiry) h2 { color: var(--g5-color-charcoal); margin: 0 0 var(--g5-space-4); }
  :is(.wf-home #home-enquiry, .wf-extensions #extension-enquiry, .wf-garden #garden-enquiry, .wf-new-homes #new-home-enquiry, .wf-lofts #loft-enquiry, .wf-services-overview #services-enquiry, .wf-architectural #architectural-enquiry, .wf-portfolio-page #portfolio-enquiry, #technical-enquiry, #construction-enquiry, #complete-enquiry) h2 b { font-weight: var(--g5-weight-strong); }
  :is(.wf-home #home-enquiry, .wf-extensions #extension-enquiry, .wf-garden #garden-enquiry, .wf-new-homes #new-home-enquiry, .wf-lofts #loft-enquiry, .wf-services-overview #services-enquiry, .wf-architectural #architectural-enquiry, .wf-portfolio-page #portfolio-enquiry, #technical-enquiry, #construction-enquiry, #complete-enquiry) p { color: var(--g5-color-text); margin: 0; }
  :is(.wf-home #home-enquiry, .wf-extensions #extension-enquiry, .wf-garden #garden-enquiry, .wf-new-homes #new-home-enquiry, .wf-lofts #loft-enquiry, .wf-services-overview #services-enquiry, .wf-architectural #architectural-enquiry, .wf-portfolio-page #portfolio-enquiry, #technical-enquiry, #construction-enquiry, #complete-enquiry) .btn { width: 250px; max-width: 100%; padding: 14px 20px; text-align: center; }

  /* Home FAQ retains the form's outlined white fields without a coloured panel. */
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq { max-width: none; display: grid; gap: var(--g5-space-4); padding: var(--g5-space-8); background: transparent; border-radius: 18px; }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details { min-width: 0; padding: 0; border: 1px solid var(--g5-color-border); border-radius: var(--g5-space-6); background: var(--g5-color-white); transition: border-color .15s ease; }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq summary { min-height: 44px; box-sizing: border-box; align-items: center; padding: var(--g5-space-3) var(--g5-space-4); border-radius: var(--g5-space-6); }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq summary::after { color: var(--g5-color-text); flex: none; }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details:hover, :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details[open], :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details:focus-within { border-color: var(--g5-color-hover); }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details:hover summary::after, :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details[open] summary::after { color: var(--g5-color-hover); }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq summary:focus-visible { outline: 2px solid var(--g5-color-hover); outline-offset: var(--g5-space-1); }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details > div { max-width: none; padding: 0 var(--g5-space-4) var(--g5-space-4); }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq p { max-width: 1050px; }
  :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq a:hover, :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq a:focus-visible { color: var(--g5-color-hover); }
  @media (prefers-reduced-motion: reduce) {
    :is(.wf-home #faq, .wf-architectural #design-planning-questions) .wf-faq details { transition: none; }
  }
  .wf-choices details { padding-block: var(--g5-space-6); }
  .contact-choice-group { padding-inline: var(--g5-space-8); margin-bottom: var(--g5-space-8); }
  .contact-process { margin-inline: var(--g5-space-8); margin-bottom: var(--g5-space-8); }
  .contact-details { padding: var(--g5-space-8); }
  .contact-options { gap: var(--g5-space-6); }
  .contact-fields { gap: var(--g5-space-4); }
  .contact-stages { gap: var(--g5-space-2); }
  .contact-stages > li { padding: var(--g5-space-3); }
  .wf-contact .contact-choice-help { margin: var(--g5-space-2) 0 var(--g5-space-6); }
  .wf-contact .contact-details-help { margin: 0 0 var(--g5-space-6); }
  .contact-field input:not([type="file"]), .contact-field textarea, .contact-upload { padding: var(--g5-space-3) var(--g5-space-4); }
  .contact-stage-descriptions { gap: var(--g5-space-6); margin-top: var(--g5-space-4); }
  .confirmation-card { padding: var(--g5-space-12); }
}
