/* Golden-ratio composition. Rounded spacing steps follow successive powers of phi.
   Main columns use 1 : 1.618034; equal service cards and usable controls stay equal. */
:root{
  --phi:1.618034;
  --space-1:8px;
  --space-2:13px;
  --space-3:21px;
  --space-4:34px;
  --space-5:55px;
  --space-6:89px;
  --layout-max:1280px;
  --page-gutter:55px;
  --layout-gap:clamp(34px,4.25vw,55px);
  --section-space:clamp(55px,6.18vw,89px);
  line-height:1.618034;
}
.wrap{width:min(var(--layout-max),calc(100% - var(--page-gutter)*2))}
h2{font-size:clamp(34px,3.4vw,42px);line-height:1.08}
h3{font-size:26px;line-height:1.236}
.eyebrow{font-size:13px;margin-bottom:var(--space-3)}
.section{padding-block:var(--section-space)}
.actions{gap:var(--space-3);margin-top:var(--space-4)}
.btn{min-height:55px;padding:13px 34px;gap:21px}
.btn.small{min-height:44px;padding:13px 21px}
.nav-row{min-height:89px;gap:34px}
.nav{gap:21px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);min-height:0}
.hero-copy{padding:55px 34px 55px 0}
.hero-title{font-size:clamp(42px,4vw,55px);line-height:1.03;max-width:none}
.hero-copy .lead{font-size:21px;line-height:1.618034;max-width:34ch;margin-top:21px}
.hero-note{margin-top:21px}
.hero-art{margin-left:0;margin-right:calc(-1 * max(var(--page-gutter),calc((100vw - var(--layout-max))/2)))}
.hero-art img{aspect-ratio:1.618034;object-position:52% center}
.tagline-strip{padding-block:13px}
.tagline-strip .wrap{gap:21px}
.section-head{display:grid;grid-template-columns:minmax(0,1.618034fr) minmax(0,1fr);gap:var(--layout-gap);margin-bottom:34px}
.section-head p{max-width:34ch}
.services{--service-bleed:max(var(--page-gutter),calc((100vw - var(--layout-max))/2))}
.service{padding:34px 21px 34px 0}
.service+.service{padding-left:21px}
.service>.icon{width:34px;height:34px;margin-bottom:21px}
.service h3{font-size:26px;line-height:1.236;min-height:2.472em;margin-bottom:13px;max-width:none}
.service p{font-size:16px;line-height:1.618034;margin-bottom:34px}
.service .service-arrow{padding-top:13px}
.process-grid,.faq-grid,.contact-layout,.coverage-top{grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);gap:var(--layout-gap)}
.local-grid,.team-note{grid-template-columns:minmax(0,1.618034fr) minmax(0,1fr);gap:var(--layout-gap)}
:is(.hero-grid,.section-head,.process-grid,.local-grid,.team-note,.faq-grid,.contact-layout,.coverage-top,.footer-grid)>*{min-width:0}
.process-intro p{margin-top:21px;max-width:34ch}
.steps{gap:34px}
.step{grid-template-columns:55px minmax(0,1fr);gap:21px;padding-bottom:34px}
.step-no{font-size:34px}
.step h3{margin-bottom:13px}
.step p{font-size:16px}
.local-copy>p{font-size:17px;margin-block:21px;max-width:55ch}
.region-art{padding:21px}
.team-note{padding-top:34px;margin-top:55px}
.team-note h3{font-size:34px;margin-bottom:13px}
.team-note p{max-width:55ch}
.faq-intro p{margin-top:21px;max-width:34ch}
.faq summary{padding-block:21px}
.faq details p{padding-bottom:21px;line-height:1.618034}
.cta-band{padding-block:55px}
.cta-band .wrap{display:grid;grid-template-columns:minmax(0,1.618034fr) minmax(0,1fr);gap:34px}
.cta-band h2{font-size:42px}
.cta-band .btn{justify-self:end}
.cta-band p{margin-top:13px}
.site-footer{padding-block:55px 34px}
.footer-grid{grid-template-columns:minmax(0,1.618034fr) minmax(0,1fr) minmax(0,1fr);gap:34px}
.footer-brand p{margin-top:21px;max-width:34ch}
.footer-bottom{gap:21px;margin-top:34px;padding-top:21px}
.page-top{padding-block:55px}
.breadcrumb{margin-bottom:34px}
.page-top h1{font-size:clamp(42px,5.2vw,68px);line-height:1.03;max-width:calc(100% / 1.618034)}
.page-top p{max-width:55ch;font-size:21px;line-height:1.618034;margin-top:21px}
.areas-main{padding-block:55px 89px}
.coverage-top{margin-bottom:34px}
.coverage-top h2{font-size:42px;margin-bottom:13px}
.map-caption{max-width:89ch;line-height:1.618034}
.district-groups{gap:34px;margin-top:55px}
.district-groups h2{font-size:26px;line-height:1.236;margin-bottom:13px}
.district-groups p{font-size:16px;line-height:1.618034}
.area-note{margin-top:34px;padding-top:34px;gap:34px}
.area-note p{max-width:55ch}
.contact-layout{padding-block:55px 89px}
.contact-aside h2{font-size:42px}
.contact-aside>p{margin-top:21px;max-width:34ch}
.contact-links{margin-block:34px;gap:21px}
.contact-poster{margin-top:34px}
.contact-poster img{aspect-ratio:1.618034}
.form-card{padding:34px}
.form-heading{gap:21px;margin-bottom:21px}
.form-heading h2{font-size:34px}
.progress{margin-bottom:34px}
.form-stage legend{margin-bottom:21px}
.form-grid{grid-template-columns:minmax(0,1.618034fr) minmax(0,1fr);gap:21px}
.field{gap:8px}
.field input,.field select,.field textarea{padding:13px;line-height:1.618034}
.field textarea{min-height:144px}
.form-footer{gap:21px;margin-top:34px}
.form-note{margin-top:21px;line-height:1.618034}
.photo-dropzone{padding:21px}
.enquiry-result{margin-top:34px;padding:34px}
.enquiry-result pre{padding:21px;margin-block:21px}
.privacy-dialog{padding:34px;max-width:550px}
.photo-gallery-header{padding-block:21px}
.photo-gallery h1{font-size:clamp(34px,5.2vw,68px);margin-bottom:21px}
.photo-gallery ul{gap:21px;margin-top:34px}
.photo-gallery li{padding:13px}
.photo-gallery li img,.photo-gallery li .file-placeholder{height:auto;aspect-ratio:1.618034}

@media(max-width:1050px){
  :root{--page-gutter:34px;--layout-gap:34px}
  .nav-row{gap:21px}
  .hero-copy{padding:34px 21px 34px 0}
  .hero-title{font-size:clamp(34px,4.2vw,44px)}
  .hero-copy .lead{font-size:17px}
  .service h3{font-size:21px}
  .service p{font-size:15px}
  .contact-links .whatsapp-btn{font-size:20px;gap:13px;padding-inline:21px}
  .form-card{padding:21px}
  .form-grid{gap:13px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .page-top h1{max-width:calc(100% / 1.236)}
}
@media(max-width:800px){
  :root{--page-gutter:21px;--layout-gap:34px;--section-space:55px}
  .nav-row{min-height:78px;gap:13px}
  .nav{gap:6px}
  .hero-grid{display:flex;flex-direction:column}
  .hero-copy{padding:34px 0 13px}
  .hero-title{font-size:clamp(34px,9.5vw,55px);max-width:618px}
  .hero-copy .lead{font-size:17px;max-width:34ch;margin-top:21px}
  .hero-copy .actions{margin-top:21px}
  .hero-note{margin-top:13px}
  .hero-art{width:calc(100% + var(--page-gutter)*2);margin:0 calc(-1 * var(--page-gutter))}
  .hero-art img{aspect-ratio:1.618034;object-position:center 61%}
  h2{font-size:34px}
  .section-head,.process-grid,.local-grid,.team-note,.faq-grid,.coverage-top,.contact-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:34px}
  .section-head{gap:21px;margin-bottom:34px}
  .section-head p{margin-top:0;max-width:55ch}
  .service{padding:21px 13px 21px 0}
  .service+.service{padding-left:13px}
  .service:nth-child(3){padding-left:0}
  .service>.icon{width:34px;height:34px;margin-bottom:21px}
  .service h3{font-size:21px;margin-bottom:13px}
  .service p{font-size:14px;margin-bottom:21px}
  .step{grid-template-columns:34px minmax(0,1fr);gap:21px;padding-bottom:21px}
  .step h3{font-size:26px}
  .step p{font-size:15px}
  .steps{gap:21px}
  .region-art{padding:21px}
  .team-note{margin-top:34px;padding-top:34px;gap:21px}
  .team-note h3{font-size:26px}
  .faq-grid{gap:34px}
  .cta-band{padding-block:34px}
  .cta-band .wrap{grid-template-columns:minmax(0,1fr);gap:21px}
  .cta-band h2{font-size:34px}
  .cta-band .btn{justify-self:start}
  .site-footer{padding-block:34px 110px}
  .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px 21px}
  .footer-brand p{max-width:55ch}
  .page-top{padding-block:34px}
  .breadcrumb{margin-bottom:21px}
  .page-top h1{font-size:42px;max-width:100%}
  .page-top p{font-size:17px;max-width:55ch}
  .areas-main{padding-block:34px 55px}
  .coverage-top h2,.contact-aside h2{font-size:34px}
  .district-groups{gap:34px;margin-top:34px}
  .district-groups h2{font-size:26px}
  .area-note{padding-top:21px;gap:21px}
  .contact-layout{padding-block:34px 55px}
  .contact-aside>p{max-width:55ch}
  .contact-links{margin-block:21px 0}
  .form-card{padding:21px}
  .form-heading{gap:13px}
  .form-heading h2{font-size:26px}
  .progress{margin-bottom:21px}
  .form-grid{gap:21px 13px}
  .form-footer{margin-top:21px}
  .enquiry-result{padding:21px;margin-top:21px}
  .privacy-dialog{padding:21px}
}
@media(max-width:480px){
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .field.full{grid-column:1}
  .photo-dropzone label.photo-picker{padding-inline:13px;gap:8px}
  .form-footer{flex-direction:column;align-items:stretch}
  .form-footer small{max-width:none}
  .form-footer .btn{justify-content:center;padding-inline:21px}
  .form-footer .back{align-self:flex-start}
}
@media(max-width:370px){
  .service h3{font-size:19px}
  .page-top h1{font-size:34px}
  .contact-links .whatsapp-btn{font-size:18px;gap:10px;padding-inline:21px}
}

/* Keep the CTA's clipped edges clean: illuminate its content, not its box. */
.cta-band .btn.white{
  filter:none;
  text-shadow:0 0 0 #ffffff00,0 0 0 #ffffff00;
  transition:color var(--fade),text-shadow var(--fade);
}
.cta-band .btn.white .icon{
  filter:drop-shadow(0 0 0 #ffffff00);
  transition:filter var(--fade);
}
@media(hover:hover) and (pointer:fine){
  .cta-band .btn.white:hover{text-shadow:0 0 5px #ffffff80,0 0 10px #ffffff40}
  .cta-band .btn.white:hover .icon{filter:drop-shadow(0 0 4px #ffffff80)}
}
.cta-band .btn.white:focus-visible{text-shadow:0 0 5px #ffffff80,0 0 10px #ffffff40}
.cta-band .btn.white:focus-visible::before{background:var(--red)}
.cta-band .btn.white:focus-visible .icon{filter:drop-shadow(0 0 4px #ffffff80)}

/* Real team photo fills the space beneath the process introduction. */
.process-photo{margin:34px 0 0;width:100%;}
.process-photo img{display:block;width:100%;height:auto;aspect-ratio:1.618034;object-fit:cover;object-position:center 45%;}
@media(max-width:800px){.process-photo{margin-top:21px;}}

/* Preserve the natural colour of the supplied team photograph. */
.hero-art img,.contact-poster img{mix-blend-mode:normal;object-position:center center;}

/* Real people, with quiet captions and a clearly attributed customer review. */
.hero-art .team-caption{position:absolute;z-index:1;right:var(--page-gutter);bottom:13px;padding:6px 13px;background:#1c1b1bdd;color:#fff;font-size:12px;line-height:1.6;max-width:calc(100% - 42px)}
.team-note{grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);align-items:start}
.founder-portrait{margin:0;width:100%;max-width:340px}
.founder-portrait img{display:block;width:100%;height:auto}
.founder-portrait figcaption{font-size:13px;color:var(--muted);padding-top:13px}
.team-story>p{margin-top:21px}
.team-story>.eyebrow{margin-top:0}
.team-story .team-company{margin-top:0;font-weight:700;color:var(--wine)}
.customer-review{margin:34px 0 0;padding:21px 26px;border-left:3px solid var(--red);background:var(--stone)}
.review-stars{color:var(--red);font-size:16px;letter-spacing:3px;margin-bottom:13px}
.customer-review blockquote{margin:0}
.customer-review blockquote p{font-size:21px;font-weight:700;line-height:1.5;max-width:45ch}
.customer-review figcaption{display:grid;gap:3px;margin-top:13px;font-size:13px}
.customer-review figcaption span{color:var(--muted);font-size:12px}
.team-note .customer-review .text-link{font-size:12px;margin-top:13px}
.contact-poster{display:block}
.contact-poster img{display:block;aspect-ratio:3/2;height:auto}
.photo-dropzone .photo-picker{display:inline-flex;color:#fff;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:16px;min-height:46px}
.photo-sources{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px}
.photo-sources[hidden]{display:none}
.photo-source{min-height:48px;padding:10px 13px;background:white;border:1px solid var(--line);font:700 13px/1.4 Archivo,Arial,sans-serif;color:var(--ink);cursor:pointer;text-align:center}
.photo-source:hover,.photo-source:focus-visible{border-color:var(--red);color:var(--red)}
.photo-source:focus-visible,.photo-picker:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.photo-source-files{grid-column:1/-1;font-size:12px;font-weight:400}
@media(max-width:800px){
 .team-note{grid-template-columns:minmax(0,1fr)}
 .founder-portrait{max-width:270px}
 .customer-review{padding:21px;margin-top:21px}
 .customer-review blockquote p{font-size:19px}
}
@media(max-width:480px){.photo-dropzone .photo-picker{padding-inline:13px;gap:8px}}

/* A compact, forward-leaning Archivo treatment echoes the approved logo. */
.site-header .nav>a,.site-header .btn>span{
  font-style:italic;font-weight:800;text-transform:uppercase;letter-spacing:-.025em;
}
.site-header .nav>a{font-size:14px}

/* The portrait stretches to the team copy; its caption sits quietly over the image. */
.team-note{align-items:stretch}
.founder-portrait{position:relative;max-width:none;min-height:0;overflow:hidden}
.founder-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 36%}
.founder-portrait figcaption{position:absolute;bottom:0;left:0;right:0;padding:34px 21px 13px;background:linear-gradient(transparent,#1c1b1bbf);color:white;font-size:12px}
.team-story{padding-block:8px}

/* A separate full-width review banner, with an exact-logo relief in warm stone. */
.reviews-banner{position:relative;isolation:isolate;overflow:clip;background:var(--stone);padding-block:21px;border-bottom:3px solid var(--wine)}
.review-emboss{position:absolute;z-index:-1;pointer-events:none;top:50%;right:-27%;width:max(1600px,145vw);max-width:none;height:auto;transform:translateY(-50%) rotate(-6deg);opacity:.8}
.review-carousel{text-align:center;position:relative}
.reviews-banner h2.eyebrow{font-size:13px;line-height:1.6;letter-spacing:.16em;margin-bottom:8px}
.review-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.review-track::-webkit-scrollbar{display:none}
.review-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;padding:0 55px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.review-slide .review-stars{font-size:18px;margin-bottom:5px}
.review-slide blockquote{margin:0;max-width:38em}
.review-slide blockquote p{color:var(--ink);font-weight:700;font-size:clamp(22px,2.25vw,30px);line-height:1.45;letter-spacing:-.02em}
.review-slide figcaption{display:grid;margin-top:8px}
.review-slide figcaption strong{font-size:15px}
.review-slide figcaption span{font-size:12px;color:#59534d}
.review-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 34px;margin-top:8px}
.review-controls{display:flex;align-items:center;justify-content:center;gap:13px}
.review-controls[hidden]{display:none}
.review-arrow{display:inline-flex;align-items:center;justify-content:center;width:48px;height:44px;border:0;position:relative;isolation:isolate;background:transparent;color:var(--ink);transition:color var(--fade),filter var(--fade)}
.review-arrow::before{content:'';position:absolute;inset:0;z-index:-1;background:#ffffff60;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 100%,10px 100%);transition:background-color var(--fade)}
.review-prev .icon{transform:rotate(180deg)}
.review-arrow:hover,.review-arrow:focus-visible{color:white;filter:drop-shadow(0 0 7px #f0071b40)}
.review-arrow:hover::before,.review-arrow:focus-visible::before{background:var(--red)}
.review-status{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;min-width:34px;color:var(--wine)}
.reviews-banner .review-source{font-size:12px;margin-top:0}
@media(max-width:800px){
 .founder-portrait{width:100%;max-width:none;aspect-ratio:2/3}
 .founder-portrait img{object-position:center}
 .team-story{padding-block:0}
 .reviews-banner{padding-block:21px}
 .review-emboss{width:1150px;right:-530px;opacity:.65}
 .review-slide{padding-inline:0}
 .review-slide blockquote p{font-size:22px}
 .review-slide figcaption span{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.review-arrow,.review-arrow::before{transition:none}}

/* Keep the process compact: introduction above a photo and naturally sized steps. */
.section.process{padding-block:34px}
.process-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);gap:var(--layout-gap);align-items:center;margin-bottom:21px}
.process-heading .eyebrow{margin-bottom:13px}
.process-summary .actions{margin-top:0}
.process-grid{align-items:stretch}
.process-grid .process-photo{position:relative;margin:0;min-height:0;overflow:hidden}
.process-grid .process-photo img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center 45%}
.process .steps{align-content:start;gap:13px}
.process .step{padding-bottom:13px}
.process .step:last-child{padding-bottom:0}
.process .step h3{margin-bottom:8px}
@media(max-width:800px){
 .process-heading{grid-template-columns:minmax(0,1fr);gap:13px;margin-bottom:21px}
 .process-summary{display:none}
 .process-grid{gap:21px}
 .process-grid .process-photo{aspect-ratio:1.618034}
}

/* Homepage refinement: one phi-based scale for type, space and column rhythm.
   Keep the approved compact process/reviews and usable button dimensions. */
.page-home{
 --space-1:calc(13px / var(--phi));
 --space-2:13px;
 --space-3:calc(var(--space-2) * var(--phi));
 --space-4:calc(var(--space-3) * var(--phi));
 --space-5:calc(var(--space-4) * var(--phi));
 --space-6:calc(var(--space-5) * var(--phi));
 --layout-gap:var(--space-4);
 --page-gutter:var(--space-5);
 --section-space:var(--space-5);
 --home-body:16px;
 --home-root-phi:1.27201965;
 --home-lead:calc(var(--home-body) * var(--home-root-phi));
 --home-subheading:calc(var(--home-body) * var(--phi));
 --home-title-small:calc(var(--home-subheading) * var(--home-root-phi));
 --home-heading:calc(var(--home-subheading) * var(--phi));
 --home-display:calc(var(--home-heading) * var(--home-root-phi));
}
.page-home .hero-copy{padding:var(--space-5) var(--space-4) var(--space-5) 0}
.page-home .hero-title{font-size:clamp(34px,4vw,var(--home-display))}
.page-home .hero-copy .lead{font-size:calc(16px * 1.27201965);margin-top:var(--space-3);line-height:var(--phi)}
.page-home main h2{font-size:clamp(34px,3.4vw,var(--home-heading))}
.page-home .section-head{margin-bottom:var(--space-4)}
.page-home .service{padding-block:var(--space-4)}
.page-home .service h3,.page-home .step h3{font-size:var(--home-subheading)}
.page-home .service p{margin-bottom:var(--space-3)}
.page-home .section.process{padding-block:var(--space-4)}
.page-home .process-heading{margin-bottom:var(--space-3)}
.page-home .process .step{grid-template-columns:var(--space-6) minmax(0,1fr);gap:var(--space-3)}
.page-home .step-no{font-size:var(--space-4);white-space:nowrap;letter-spacing:-.04em}
.page-home .local-copy>p,.page-home .team-story>p,.page-home .step p,.page-home .faq details p{line-height:var(--phi)}
.page-home .local-copy>p{font-size:16px}
.page-home .region-art{padding:var(--space-3)}
.page-home .team-note{margin-top:var(--space-4);padding-top:var(--space-4);gap:var(--layout-gap)}
.page-home .team-story h3{font-size:calc(var(--home-subheading) * 1.27201965);margin-bottom:var(--space-2)}
.page-home .team-story>p{margin-top:var(--space-3)}
.page-home .team-story>.eyebrow,.page-home .team-story>.team-company{margin-top:0}
.page-home .reviews-banner{padding-block:var(--space-3)}
.page-home .reviews-banner h2.eyebrow{font-size:13px}
.page-home .review-slide blockquote{max-width:55ch;width:78.6151%}
.page-home .review-footer{column-gap:var(--space-4)}
.page-home .faq summary{padding-block:var(--space-3)}
.page-home .cta-band{padding-block:var(--space-4)}
.page-home .cta-band h2{font-size:clamp(34px,3.4vw,var(--home-heading))}
.page-home .footer-grid{grid-template-columns:minmax(0,3.236068fr) minmax(0,1fr) minmax(0,1fr);gap:var(--space-4)}
@media(min-width:801px) and (max-width:1050px){
 .page-home{--page-gutter:var(--space-4)}
 .page-home .hero-copy{padding:var(--space-4) var(--space-3) var(--space-4) 0}
 .page-home .hero-copy .lead{font-size:16px}
 .page-home .service h3{font-size:var(--space-3)}
 .page-home .process .step{grid-template-columns:var(--space-5) minmax(0,1fr);gap:var(--space-2)}
 .page-home .step-no{font-size:var(--home-subheading)}
}
@media(max-width:800px){
 .page-home{--page-gutter:var(--space-3);--section-space:var(--space-4);--layout-gap:var(--space-3)}
 .page-home .hero-copy{padding:var(--space-4) 0 var(--space-2)}
 .page-home .hero-title{font-size:clamp(34px,9.5vw,var(--home-display))}
 .page-home .hero-copy .lead{font-size:17px}
 .page-home .section-head{gap:var(--space-3);margin-bottom:var(--space-3)}
 .page-home .service{padding-block:var(--space-3)}
 .page-home .service h3{font-size:var(--space-3)}
 .page-home .process .step{grid-template-columns:var(--space-5) minmax(0,1fr);gap:var(--space-2)}
 .page-home .step-no{font-size:var(--home-subheading)}
 .page-home .step h3{font-size:var(--space-3)}
 .page-home .team-note{margin-top:var(--space-4);padding-top:var(--space-4)}
 .page-home .team-story h3{font-size:var(--home-subheading)}
 .page-home .review-slide blockquote{width:100%}
 .page-home .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4) var(--space-3)}
}
@media(max-width:370px){
 .page-home .service h3{font-size:19px}
 .page-home .service{padding-right:var(--space-1)}
 .page-home .service+.service{padding-left:var(--space-1)}
 .page-home .service:nth-child(3){padding-left:0}
}

/* A wider crop fills the FAQ column and shows both movers at work. */
.page-home .faq-photo{position:relative;overflow:hidden;width:100%;aspect-ratio:4/3;margin:var(--space-3) 0 0}
.page-home .faq-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 57%}

/* Let the services title span the full desktop row. */
.page-home .services .section-head{grid-template-columns:minmax(0,1fr)}
.page-home .services .section-head h2{max-width:none}
@media(min-width:801px){
 .page-home .services .section-head h2{white-space:nowrap}
 .page-home .services .mobile-break{display:none}
}

/* Service headings illuminate in step with each card's quote link. */
.page-home .service h3{color:var(--ink);text-shadow:0 1px 3px #1c1b1b00,0 0 5px #ffffff00,0 0 13px #ffffff00;transition:color var(--fade),text-shadow var(--fade)}
.page-home .service:is(:hover,:focus-visible) h3{color:#fff;text-shadow:0 1px 3px #1c1b1b99,0 0 5px #ffffffb3,0 0 13px #fff}
@media(prefers-reduced-motion:reduce){.page-home .service h3{transition:none}}

/* Desktop process title and call to action share one centred row. */
@media(min-width:801px){
 .page-home .process-heading{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--layout-gap);align-items:center}
 .page-home .process-title{display:contents}
 .page-home .process-heading .eyebrow{grid-column:1/-1;margin-bottom:0}
 .page-home .process-heading h2{font-size:clamp(24px,3.3vw,var(--home-heading));white-space:nowrap}
 .page-home .process-heading .mobile-break{display:none}
 .page-home .process-summary{grid-column:2}
}

/* Match the FAQ column tops and let the photo fill the remaining height. */
.page-home .faq-intro>.eyebrow{margin-top:0}
@media(min-width:801px){
 .page-home .faq-grid{align-items:stretch}
 .page-home .faq-intro{display:flex;flex-direction:column}
 .page-home .faq-intro>.eyebrow{margin-bottom:var(--space-2)}
 .page-home .faq-intro h2{font-size:clamp(20px,2.45vw,34px);white-space:nowrap}
 .page-home .faq-intro .mobile-break{display:none}
 .page-home .faq-photo{flex:1;min-height:0;aspect-ratio:auto}
 .page-home .faq-photo img{position:absolute;inset:0}
}

/* Even mobile gaps through the process introduction and team divider. */
@media(max-width:800px){
 .page-home .process-heading .eyebrow{margin-bottom:var(--space-3)}
 .page-home .process-heading{margin-bottom:var(--space-3)}
 .page-home .process-grid{gap:var(--space-3)}
}

/* Match the coverage introduction's gap to the gap before the process band. */
.page-home .local-copy{align-self:start}
.page-home .local-copy>.eyebrow{margin-top:0}

/* Homepage finishing scale: phi columns, 13px spacing powers, 16/26/42px type.
   Half-steps use sqrt(phi); established button geometry and matching rows stay intact. */
.page-home .hero-copy .lead{font-size:var(--home-lead)}
.page-home .hero-note{font-size:var(--space-2);gap:var(--space-1);margin-top:var(--space-3)}
.page-home :is(.hero-art .team-caption,.founder-portrait figcaption){font-size:var(--space-2);line-height:var(--phi)}
.page-home .hero-art .team-caption{bottom:var(--space-2);padding:calc(var(--space-2)/2) var(--space-2)}
.page-home .founder-portrait figcaption{padding:var(--space-4) var(--space-3) var(--space-2)}
.page-home .service>.icon{width:var(--space-4);height:var(--space-4);margin-bottom:var(--space-3)}
.page-home .service h3{line-height:calc(2 / var(--phi));margin-bottom:var(--space-2)}
.page-home .service p,.page-home .step p,.page-home .team-story>p:not(.eyebrow){font-size:var(--home-body);line-height:var(--phi)}
.page-home .service .service-arrow{padding-top:var(--space-2)}
.page-home .process .steps{gap:var(--space-2)}
.page-home .process .step{padding-bottom:var(--space-2)}
.page-home .process .step:last-child{padding-bottom:0}
.page-home .process .step h3{margin-bottom:var(--space-1);line-height:calc(2 / var(--phi))}
.page-home :is(.local-copy,.team-story,.process-heading,.faq-intro)>.eyebrow{font-size:var(--space-2)}
.page-home .local-copy>p{margin-bottom:var(--space-3)}
.page-home .town-list{margin-top:var(--space-3);gap:var(--space-1) var(--space-2);font-size:var(--space-2)}
.page-home .team-story{display:flow-root;padding-block:0}
.page-home .team-story h3{font-size:var(--home-title-small)}
.page-home .review-slide{padding-inline:var(--space-5)}
.page-home .review-slide blockquote p{font-size:clamp(21px,2.45vw,var(--home-title-small));line-height:var(--home-root-phi)}
.page-home .review-slide figcaption{margin-top:var(--space-1)}
.page-home .review-slide figcaption strong{font-size:var(--home-body)}
.page-home .review-footer{gap:var(--space-1) var(--space-4);margin-top:var(--space-1)}
.page-home .review-controls{gap:var(--space-2)}
.page-home .cta-band p{margin-top:var(--space-2);line-height:var(--phi)}
.page-home .footer-brand p{margin-top:var(--space-3);line-height:var(--phi)}
.page-home .footer-bottom{margin-top:var(--space-4);padding-top:var(--space-3);gap:var(--space-4)}
@media(min-width:801px){
 .page-home .service{padding-right:var(--space-3)}
 .page-home .service+.service{padding-left:var(--space-3)}
 .page-home .service:last-child{padding-right:0}
 .page-home .site-footer{padding-block:var(--space-5) var(--space-4)}
}
@media(max-width:1050px){.page-home .hero-copy .lead{font-size:var(--home-body)}}
@media(max-width:800px){
 .page-home .hero-note{margin-top:var(--space-2)}
 .page-home .founder-portrait{aspect-ratio:1 / var(--phi)}
 .page-home .team-story{padding-block:0}
 .page-home .team-story h3{font-size:var(--home-subheading)}
 .page-home .review-slide{padding-inline:0}
 .page-home .review-slide blockquote p{font-size:var(--space-3)}
}

/* Equal breathing room on both sides of the process/coverage colour boundary. */
.page-home .coverage-section{padding-top:var(--space-4)}
.page-home .postcode-cta{max-width:100%}
.page-home .postcode-cta::before{background:var(--wine)}
.page-home .postcode-cta:is(:hover,:focus-visible){color:var(--wine);filter:drop-shadow(0 0 12px #7b172459)}
.page-home .postcode-cta:is(:hover,:focus-visible)::before{background:#fff}
@media(min-width:801px){
 .page-home .local-grid{align-items:stretch}
 .page-home .local-grid>.region-art{display:flex;flex-direction:column;justify-content:space-between}
 .page-home .local-grid>.region-art>svg{margin-block:auto}
}

@media(max-width:800px){.page-home .postcode-cta{padding-inline:var(--space-3)}}

/* The visible team copy and portrait share the same top and bottom edges.
   The image follows the content height while the desktop columns retain 1:phi. */
.page-home .team-story>:first-child{margin-top:0}
.page-home .team-story>:last-child{margin-bottom:0}
@media(min-width:801px){
 .page-home .team-note{align-items:stretch;grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr)}
 .page-home .team-note>.founder-portrait{align-self:stretch;aspect-ratio:auto}
}

/* Finish the homepage's small spacing relationships on the same phi scale. */
.page-home .hero-copy>.eyebrow{margin-bottom:var(--space-3)}
.page-home .tagline-strip{padding-block:var(--space-2)}
.page-home .tagline-strip .wrap{gap:var(--space-3)}
.page-home .region-art>.eyebrow{margin-bottom:var(--space-2)}
.page-home .region-art>.small{margin-top:var(--space-2)}
.page-home .faq details p{font-size:var(--home-body);padding-right:var(--space-4);padding-bottom:var(--space-3)}
.page-home .footer-grid h3{margin:0 0 var(--space-2)}
.page-home .footer-grid a:not(.brand){margin-block:var(--space-1)}
@media(max-width:800px){
 .page-home .hero-copy .actions{margin-top:var(--space-3)}
 .page-home .faq details p{padding-right:var(--space-3)}
}

/* Compact Areas and Contact introductions follow the homepage's display and spacing scale. */
:is(.page-areas,.page-contact) .page-top{padding-block:var(--space-4)}
:is(.page-areas,.page-contact) .breadcrumb{margin-bottom:var(--space-3)}
:is(.page-areas,.page-contact) .page-top h1{font-size:clamp(34px,4vw,53.28px);max-width:78.6151%}
:is(.page-areas,.page-contact) .page-top p{font-size:20.35px;margin-top:var(--space-3)}
.page-areas .areas-main,.page-contact .contact-layout{padding-top:var(--space-4)}

/* Matching slanted postcode field and button, with an unclipped focus cue. */
.page-areas .input-row{--postcode-slant:16px;gap:var(--space-2);align-items:stretch}
.page-areas .postcode-entry{position:relative;isolation:isolate;display:flex;flex:1;min-width:0}
.page-areas .postcode-entry::before,.page-areas .postcode-entry::after{content:'';position:absolute;z-index:-1;pointer-events:none;clip-path:polygon(0 0,calc(100% - var(--postcode-slant)) 0,100% 100%,var(--postcode-slant) 100%);transition:background-color var(--fade)}
.page-areas .postcode-entry::before{inset:0;background:var(--line)}
.page-areas .postcode-entry::after{inset:1px;background:#faf9f6}
.page-areas .postcode-entry:focus-within::before{background:var(--wine)}
.page-areas .postcode-entry:focus-within::after{inset:2px;background:white}
.page-areas .postcode-entry:focus-within{filter:drop-shadow(0 0 3px #7b172459)}
.page-areas .postcode-entry input{width:100%;min-width:0;min-height:55px;border:0;background:transparent;padding:13px 34px;outline:none;font-size:16px}
.page-areas .postcode-form .btn>span{font-style:italic;font-weight:800;text-transform:uppercase;letter-spacing:-.025em}

/* Shared rows keep all three area headings, descriptions and links aligned. */
@media(min-width:801px){
 .page-areas .district-groups{row-gap:var(--space-2)}
 .page-areas .district-groups>section{display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:var(--space-2)}
 .page-areas .district-groups>section>*{margin-block:0;align-self:start}
 .page-areas .district-groups>section>.eyebrow{font-size:var(--space-2)}
}
@media(max-width:800px){
 :is(.page-areas,.page-contact) .page-top h1{max-width:100%}
 :is(.page-areas,.page-contact) .page-top p{font-size:16px}
 .page-areas .postcode-entry input{padding-inline:var(--space-3)}
 .page-areas .postcode-entry input::placeholder{font-size:13px}
 .page-areas .postcode-form .btn{padding-inline:var(--space-3);gap:var(--space-2);font-size:14px}
}

/* Let the boundary note use the desktop row and keep the closing gap compact. */
.page-areas .area-note{margin-top:var(--space-3);padding-top:var(--space-3);gap:var(--space-3)}
.page-areas .area-note p{max-width:none;min-width:0}
.page-areas .areas-main{padding-bottom:var(--space-4)}

/* Ed bridges the cream and crimson sections; the cutout stays clear of both CTAs. */
.page-areas .areas-main{padding-bottom:var(--space-6)}
.page-areas .cta-band{position:relative;padding-block:var(--space-4)}
.page-areas .cta-band>.wrap{grid-template-columns:minmax(0,1fr) 266px auto;gap:var(--space-4);align-items:center}
.page-areas .cta-team{position:relative;align-self:end;z-index:1;margin:calc(-1 * var(--space-6)) 0 calc(-1 * var(--space-4));width:266px;pointer-events:none}
.page-areas .cta-team img{display:block;width:100%;height:auto}
.page-areas .cta-band h2{font-size:clamp(34px,3.1vw,42px)}
@media(max-width:1100px){
 .page-areas .cta-band{padding-top:var(--space-4)}
 .page-areas .cta-band>.wrap{grid-template-columns:minmax(0,1fr) 210px;gap:var(--space-3) var(--space-4)}
 .page-areas .cta-copy{grid-column:1;grid-row:1}
 .page-areas .cta-band .btn{grid-column:1;grid-row:2;justify-self:start}
 .page-areas .cta-team{grid-column:2;grid-row:1 / span 2;width:210px;align-self:start;margin-top:calc(-1 * var(--space-6));margin-bottom:0;mask-image:linear-gradient(#000 0 90%,transparent 100%)}
}
@media(max-width:800px){
 .page-areas .cta-band>.wrap{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
 .page-areas .cta-team{grid-column:1;grid-row:1;justify-self:center;margin-bottom:0}
 .page-areas .cta-copy{grid-column:1;grid-row:2}
 .page-areas .cta-band .btn{grid-column:1;grid-row:3;max-width:100%;padding-inline:var(--space-3);gap:var(--space-2);font-size:14px}
}

/* Compact shared desktop rows put Ed's head between the note and its action. */
@media(min-width:1101px){
 .page-areas .areas-main{padding-bottom:21px}
 .page-areas .area-note,.page-areas .cta-band>.wrap{display:grid;grid-template-columns:minmax(0,1fr) 230px 286.5px;gap:34px}
 .page-areas .area-note p{grid-column:1}
 .page-areas .area-note>.btn{grid-column:3;justify-self:end}
 .page-areas .cta-band{padding-block:21px}
 .page-areas .cta-band>.wrap{position:relative;min-height:110px}
 .page-areas .cta-copy{grid-column:1}
 .page-areas .cta-band .btn{grid-column:3}
 .page-areas .cta-team{position:absolute;bottom:-21px;left:calc(100% - 550.5px);width:230px;margin:0}
 .page-areas .cta-band h2{font-size:clamp(26px,calc(4vw - 18px),36px)}
 .page-areas .cta-copy p{margin-top:8px}
}
@media(max-width:800px){
 .page-home .faq-intro .mobile-break{display:none}
 .page-home .faq-intro h2{white-space:nowrap;font-size:clamp(18px,5.8vw,34px);letter-spacing:-.025em}
 .page-areas .cta-copy p{margin-top:8px}
 .page-areas .cta-band>.wrap{row-gap:13px}
}


/* Contact header: transparent team cutout in the open right column. */
.page-contact .page-top>.wrap{display:grid;grid-template-columns:minmax(0,1.618fr) minmax(0,1fr);gap:21px;align-items:center}
.page-contact .page-top .page-top-copy{min-width:0}
.page-contact .page-top h1{max-width:100%;font-size:clamp(30px,3.65vw,49px)}
.page-contact .contact-header-photo{margin:0 -21px 0 0;align-self:end}
.page-contact .contact-header-photo img{display:block;width:100%;height:auto}
@media(max-width:800px){
 .page-contact .page-top>.wrap{grid-template-columns:minmax(0,1fr);gap:21px}
 .page-contact .page-top h1{font-size:34px}
 .page-contact .contact-header-photo{width:min(100%,480px);margin:0 auto -21px}
}

/* Areas header cutout: cropped legs sit exactly on the section boundary. */
.page-areas .page-top{padding-bottom:0}
.page-areas .page-top>.wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:21px;align-items:end}
.page-areas .page-top-copy{min-width:0;padding-bottom:34px;align-self:center}
.page-areas .page-top h1{max-width:100%;font-size:clamp(30px,3.45vw,46px)}
.page-areas .areas-header-photo{margin:0;align-self:end}
.page-areas .areas-header-photo img{display:block;width:100%;height:auto}
@media(max-width:800px){
 .page-areas .page-top>.wrap{grid-template-columns:minmax(0,1fr);gap:0}
 .page-areas .page-top-copy{padding-bottom:13px}
 .page-areas .page-top h1{font-size:34px}
 .page-areas .areas-header-photo{width:min(100%,520px);margin:0 auto}
}

/* Separate the three local coverage groups without changing their alignment. */
.page-areas .district-groups>section{position:relative}
.page-areas .district-groups>section+section::before{content:"";position:absolute;left:-17px;top:0;bottom:0;width:1px;background:var(--wine);opacity:.45;pointer-events:none}
@media(max-width:800px){
 .page-areas .district-groups>section+section::before{left:0;right:0;top:-17px;bottom:auto;width:auto;height:1px}
}
/* Visible progress, review and feedback for the enquiry flow. */
#quote-form{scroll-margin-top:120px}.progress>span{width:33.333%}
#review-summary pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:15px;line-height:1.6;background:var(--paper);padding:21px;margin-top:21px}
#form-errors:empty,#send-error:empty{display:none}
#email-fallback[hidden]{display:none}
#quote-form[hidden]{display:none}
/* Reuse the desktop inverted-neon fade for touch navigation. */
.site-header .brand.logo-touch-glow img{animation:logo-exit-glow 1.15s ease-out both}
@media(prefers-reduced-motion:reduce){.site-header .brand.logo-touch-glow img{animation:none}}


/* Homepage overview uses the same district artwork as the coverage page. */
.page-home .region-map-link{display:block;width:100%;margin-block:auto;background:#e9e5df;border:1px solid #d6cfc5;overflow:hidden}
.page-home .region-map-link img{width:100%;height:auto;display:block}
.page-home .region-map-caption{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.page-home .region-map-link:hover{border-color:var(--wine)}

/* Give the detailed coverage map the larger desktop column. */
@media(min-width:801px){
 .page-home .local-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);gap:34px}
 .page-home .local-copy h2{font-size:clamp(26px,3.1vw,42px)}
 .page-home .local-grid>.region-art{padding:21px}
}

/* Balanced team section: 1:phi columns, a 55px gutter, equal 34px vertical space. */
.page-home .coverage-section{padding-bottom:0}
.page-home .team-note{padding-top:34px;padding-bottom:34px}
@media(min-width:801px){
 .page-home .team-note{width:100%;max-width:1100px;margin-inline:auto;grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);column-gap:55px;align-items:stretch}
 .page-home .team-story>p{max-width:none}
}

/* Distribute the coverage copy across the full map-panel height. */
@media(min-width:801px){
 .page-home .local-grid>.local-copy{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:21px}
 .page-home .local-copy>p,.page-home .local-copy>.town-list{margin-block:0}
}

.site-header .header-call{min-height:44px;padding-block:10px;cursor:pointer}
.site-header .header-call .icon{pointer-events:none}

/* Process rhythm follows 13, 21, 34 and 55px steps with 1:phi columns. */
.page-home .process-heading{margin-bottom:34px}
.page-home .process .steps{gap:21px}
.page-home .process .step{grid-template-columns:max-content minmax(0,1fr);column-gap:24px;row-gap:21px;align-items:first baseline;padding-bottom:21px}
.page-home .process .step:last-child{padding-bottom:0}
.page-home .process .step h3{margin-bottom:13px;font-size:26px;line-height:1.24}
.page-home .process .step p{font-size:16px;line-height:1.618034;max-width:55ch}
.page-home .process .step-no{font-size:42px;line-height:1}
@media(min-width:801px){
 .page-home .process-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);gap:34px;align-items:stretch}
 .page-home .process-heading{row-gap:21px;column-gap:34px}
}
@media(max-width:800px){
 .page-home .process-heading{margin-bottom:21px}
 .page-home .process .step{grid-template-columns:max-content minmax(0,1fr);column-gap:21px}
 .page-home .process .step-no{font-size:34px}
 .page-home .process .step h3{font-size:21px;margin-bottom:13px}
}

/* FAQ placement follows 1:phi columns and the shared spacing scale. */
.page-home .faq-intro>.eyebrow{margin-top:0;margin-bottom:13px}
.page-home .faq-photo{margin-top:34px}
.page-home .faq summary{padding:21px 34px 21px 0;line-height:1.618034}
.page-home .faq details:first-child summary{padding-top:0}
.page-home .faq summary::after{top:50%;transform:translateY(-50%);right:0;width:21px;text-align:center;line-height:1}
.page-home .faq details:first-child summary::after{top:calc(50% - 10.5px)}
.page-home .faq details p{max-width:55ch;padding:0 34px 21px 0;line-height:1.618034}
@media(min-width:801px){
 .page-home .faq-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.618034fr);gap:55px;align-items:stretch}
}
@media(max-width:800px){
 .page-home .faq-grid{gap:34px}
 .page-home .faq-photo{margin-top:21px}
 .page-home .faq summary{padding-right:34px}
}

/* Footer: brand occupies 1/phi², navigation and contact share the remainder. */
.page-home .cta-band{padding-block:34px}
.page-home .cta-band>.wrap{align-items:center;gap:34px}
.page-home .cta-band .cta-copy>p{margin-top:13px}
.page-home .footer-brand p{max-width:34ch;margin-top:21px}
.page-home .footer-bottom{margin-top:34px;padding-top:21px}
@media(min-width:801px){
 .page-home .cta-band>.wrap{grid-template-columns:minmax(0,1.618034fr) minmax(0,1fr)}
 .page-home .cta-band .btn{justify-self:center}
 .page-home .site-footer{padding-block:55px 34px}
 .page-home .footer-grid{grid-template-columns:minmax(0,1.236068fr) minmax(0,1fr) minmax(0,1fr);gap:55px;align-items:start}
 .page-home .footer-grid>div:not(.footer-brand){display:flex;flex-direction:column;align-items:flex-start;gap:13px}
 .page-home .footer-grid>div:not(.footer-brand) h3{margin:0 0 8px}
 .page-home .footer-grid>div:not(.footer-brand) a{margin:0}
}
@media(max-width:800px){
 .page-home .cta-band>.wrap{gap:21px}
 .page-home .cta-band .btn{justify-self:start}
 .page-home .footer-grid{gap:34px 21px}
}

/* Header telephone: matching neon feedback with native tap-to-call. */
.site-header .header-call{transition:color var(--fade),text-shadow var(--fade)}
.site-header .header-call .icon{transition:filter var(--fade),color var(--fade)}
.site-header .header-call:is(:hover,:focus-visible,:active){color:#fff;text-shadow:0 0 5px #ffffffcc,0 0 13px #ffffff80,0 0 22px #f0071b99}
.site-header .header-call:is(:hover,:focus-visible,:active) .icon{color:#ff5a65;filter:drop-shadow(0 0 5px #f0071b) drop-shadow(0 0 11px #f0071b99)}
@media(prefers-reduced-motion:reduce){.site-header .header-call,.site-header .header-call .icon{transition:none}}

/* The hero actions share one row at every viewport width. */
.page-home .hero-copy .actions.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;width:100%;max-width:420px;margin-left:0;container-type:inline-size;container-name:hero-buttons}
.page-home .hero-copy .hero-actions .btn{width:100%;min-width:0;min-height:54px;height:100%;margin:0;left:auto;padding:12px 18px;gap:8px;font-size:14px;line-height:1.25;white-space:normal;text-align:center;justify-content:center;text-decoration:none}
.page-home .hero-copy .hero-actions .btn span{min-width:0}
.page-home .hero-copy .hero-actions .btn .icon{width:16px;height:20px;flex-shrink:0}
.page-home .hero-copy .hero-actions .btn::before{clip-path:polygon(0 0,calc(100% - 16px) 0,100% 100%,16px 100%)}
@container hero-buttons (max-width:360px){
 .page-home .hero-copy .hero-actions .btn{font-size:13px;padding-inline:14px;gap:5px}
 .page-home .hero-copy .hero-actions .btn .icon{display:none}
}
@container hero-buttons (max-width:270px){
 .page-home .hero-copy .hero-actions .btn{font-size:12px;padding-inline:12px}
}

/* Keep all three labels clear of their headings on compact phones. */
@media(max-width:380px){
 .page-home .process .step{column-gap:16px}
 .page-home .process .step-no{font-size:28px}
 .page-home .process .step h3{font-size:18px}
}

/* Keep the five coverage towns together on mobile. */
@media(max-width:800px){
 .page-home .town-list{container-type:inline-size;flex-wrap:nowrap;justify-content:space-between;gap:2px}
 .page-home .town-list span{flex:0 0 auto;white-space:nowrap;font-size:clamp(10.5px,3.4cqw,13px)}
 .page-home .town-list span::before{margin-right:3px}
}

/* Coverage link matches the standard angled black action buttons. */
.contact-links .area-check-btn{font-size:16px;font-weight:700;word-break:normal;max-width:100%;margin-top:13px}

/* Photo upload action uses the crimson button palette. */
.photo-dropzone .photo-picker::before{background:var(--wine)}
.photo-dropzone .photo-picker:is(:hover,:focus-visible){color:var(--wine);filter:drop-shadow(0 0 12px #7b172459)}
.photo-dropzone .photo-picker:is(:hover,:focus-visible)::before{background:#fff}

/* Compact certificate button keeps the original slim banner rhythm. */
.tagline-strip .ea-registration{display:flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;background:#fff;color:var(--ink);padding:1px 14px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 100%,16px 100%);transition:filter .25s}
.tagline-strip .ea-registration img{width:64px;height:auto;flex:none}
.tagline-strip .ea-registration span{display:block;font-size:11px;font-weight:700;letter-spacing:0;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.tagline-strip .ea-registration:hover{filter:none;background:#00aa53}
.tagline-strip .ea-registration:hover img{filter:url(#ea-green-white-swap)}
.tagline-strip .ea-registration:focus-visible{outline:none;box-shadow:none}
.tagline-strip .ea-registration:focus-visible img{outline:2px solid var(--wine);outline-offset:2px}
@media(max-width:800px){
 .page-home .tagline-strip .wrap{flex-wrap:nowrap;justify-content:space-between;gap:8px}
 .tagline-strip strong{flex:1;min-width:0;font-size:clamp(12px,3.2vw,19px)}
 .tagline-strip .checker{flex:none;width:16px;height:16px}
 .tagline-strip .ea-registration{padding:1px 10px;gap:4px}
 .tagline-strip .ea-registration img{width:58px}
 .tagline-strip .ea-registration span{display:block;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.tagline-strip .ea-registration{transition:none}}

/* Logo-only certificate button; retain the 5px red inset. */
.page-home .tagline-strip{padding-block:0}
.page-home .tagline-strip .wrap{align-items:stretch}
.page-home .tagline-strip .checker{align-self:center}
.page-home .tagline-strip strong{align-self:center;padding-block:var(--space-2)}
.page-home .tagline-strip .ea-registration{--ea-logo-width:128px;display:grid;grid-template-columns:var(--ea-logo-width);gap:8px;align-self:stretch;margin-block:5px;padding:1px 21px}
.page-home .tagline-strip .ea-registration img{width:var(--ea-logo-width)}
.page-home .tagline-strip .ea-registration span{font-family:Archivo,Arial,sans-serif;font-size:10px;font-weight:700;font-style:normal;line-height:1.2;text-transform:none;letter-spacing:normal;text-align:center}
@media(max-width:800px){.page-home .tagline-strip .ea-registration{--ea-logo-width:104px;gap:5px;padding-inline:18px}.page-home .tagline-strip .ea-registration span{font-size:9px}}

/* Certificate viewer: scroll the document while keeping the close button visible. */
.page-home .tagline-strip .ea-registration{border:0}
.certificate-dialog{width:min(680px,calc(100vw - 24px));max-width:none;max-height:85vh;max-height:85dvh;padding:0;border:0;background:#fff;color:var(--ink);box-shadow:0 16px 64px #0006;overflow:hidden}
.certificate-dialog[open]{display:flex;flex-direction:column}
.certificate-dialog::backdrop{background:#1c1b1bb3}
.certificate-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line);flex:none}
.certificate-heading h2{font:700 16px/1.3 Archivo,Arial,sans-serif;text-transform:none;letter-spacing:normal}
.certificate-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;background:var(--ink);color:white;font:30px/1 Arial,sans-serif;cursor:pointer}
.certificate-close:focus-visible{outline:3px solid var(--wine);outline-offset:2px}
.certificate-content{overflow:auto;min-height:0;overscroll-behavior:contain}
.certificate-content img{width:100%;height:auto}
body:has(.certificate-dialog[open]){overflow:hidden}

/* Closing the certificate clears hover colours immediately, including sticky touch hover. */
.page-home .tagline-strip .ea-registration.certificate-reset{background:#fff;filter:none;transition:none}
.page-home .tagline-strip .ea-registration.certificate-reset img{filter:none;transition:none}

/* Golden-ratio balance: slogan and certificate regions use 1.618:1. */
.page-home .tagline-strip .wrap{display:grid;grid-template-columns:34px minmax(0,1.618fr) minmax(170px,1fr);column-gap:21px;align-items:center}
.page-home .tagline-strip .checker{width:34px;height:21px;justify-self:start}
.page-home .tagline-strip strong{margin:0;min-width:0;padding-block:13px;text-align:left;text-wrap:balance}
.page-home .tagline-strip .ea-registration{justify-self:center;align-self:center}
@media(max-width:800px){
 .page-home .tagline-strip .wrap{grid-template-columns:21px minmax(0,1fr) auto;column-gap:13px}
 .page-home .tagline-strip .checker{width:21px;height:13px}
 .page-home .tagline-strip strong{padding-block:8px}
 .page-home .tagline-strip .ea-registration{justify-self:end}
}
@media(max-width:380px){
 .page-home .tagline-strip .wrap{column-gap:8px}
 .page-home .tagline-strip .ea-registration{--ea-logo-width:88px;padding-inline:16px}
}
