/* Location landing pages: existing Sora / Inter typography and architectural palette.
   Native details preserve readable content and keyboard interaction without extra JS. */
.local-page main { position:relative; z-index:3; }
.local-page main > section { scroll-margin-top:7rem; }
.local-hero { padding-top:clamp(8rem,16vh,12rem); padding-bottom:2rem; }
.local-hero .crumb { margin-bottom:3rem; }
.local-hero__grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(2rem,5vw,6rem); align-items:center; }
.local-hero__copy { min-width:0; }
.local-hero h1 { font-size:clamp(2.8rem,5.5vw,6rem); line-height:1.06; letter-spacing:-.055em; margin:1.4rem 0 1.8rem; max-width:17ch; }
.local-page h1 em,.local-page h2 em { color:var(--bronze); font-style:italic; }
.local-hero .lead { max-width:48ch; font-size:clamp(1rem,1.3vw,1.2rem); color:var(--paper-2); }
.local-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.4rem 2rem; margin-top:2rem; }
.local-link { display:inline-flex; align-items:center; gap:.65rem; color:var(--paper); font-size:.84rem; line-height:1.7; }
.local-link span { color:var(--bronze); }
.local-link:hover { color:var(--bronze); }
.local-hero__work { margin:0; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.local-hero__work > a { display:block; overflow:hidden; }
.local-hero__work img { width:100%; height:clamp(24rem,36vw,38rem); object-fit:cover; object-position:center; display:block; }
.local-hero__work figcaption { display:flex; gap:1rem; justify-content:space-between; padding-top:1rem; color:var(--stone); font-size:.7rem; }
.local-hero__work figcaption > span { font-family:var(--label); text-transform:uppercase; letter-spacing:.1em; }
.local-hero__work figcaption a { color:var(--paper); }
.local-nav { display:flex; flex-wrap:wrap; gap:1rem 2.5rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.3rem 0; margin-top:4rem; }
.local-nav a { font-family:var(--label); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; color:var(--paper-2); }
.local-nav a:hover { color:var(--bronze); }
.local-editorial { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2.5rem,7vw,8rem); }
.local-editorial h2 { font-size:var(--fs-h2); line-height:1.05; margin-top:1.5rem; }
.local-prose { display:grid; gap:1.5rem; align-content:start; color:var(--paper-2); }
.local-prose p { max-width:64ch; }
.local-prose a:not(.local-link) { text-decoration:underline; text-underline-offset:.3em; }
.local-authority { border-left:1px solid var(--bronze); padding-left:1.5rem; margin-top:1rem; display:grid; gap:1rem; }
.local-authority .label { color:var(--bronze); }
.local-authority p { font-size:.92rem; color:var(--sand); }
.local-services { border-top:1px solid var(--line); }
.local-service { display:grid; grid-template-columns:3rem minmax(0,1fr) minmax(0,.9fr); gap:2rem; padding:2rem 0; border-bottom:1px solid var(--line); align-items:start; }
.local-no { font-family:var(--label); color:var(--bronze); font-size:.7rem; letter-spacing:.1em; }
.local-service .local-no { padding-top:.5rem; }
.local-service h3 { font-size:clamp(1.2rem,2vw,2rem); font-weight:450; }
.local-service h3 a { display:flex; gap:1rem; align-items:baseline; justify-content:space-between; max-width:25rem; }
.local-service h3 span { color:var(--bronze); font-size:1rem; }
.local-service p { color:var(--paper-2); font-size:.93rem; max-width:46ch; }
.local-intro { max-width:72ch; margin-bottom:2.5rem; color:var(--paper-2); }
.local-approvals,.local-faqs { border-top:1px solid var(--line); }
.local-approval,.local-faq { border-bottom:1px solid var(--line); scroll-margin-top:7rem; }
.local-approval summary,.local-faq summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:2rem; padding:2rem 0; color:var(--paper); }
.local-approval summary::-webkit-details-marker,.local-faq summary::-webkit-details-marker { display:none; }
.local-approval summary .local-no { flex:0 0 3rem; }
.local-approval summary > div { flex:1; min-width:0; }
.local-approval summary .label { color:var(--stone); font-size:.61rem; letter-spacing:.1em; }
.local-approval h3 { font-size:clamp(1.25rem,2.2vw,2.2rem); line-height:1.3; font-weight:450; margin-top:.6rem; }
.local-toggle { flex:0 0 1.3rem; color:var(--bronze); font-size:1.5rem; font-weight:300; line-height:1; text-align:center; transition:transform .25s ease; }
details[open] > summary .local-toggle { transform:rotate(45deg); }
.local-approval__body { padding:0 3.3rem 2.5rem 5rem; max-width:75rem; display:grid; gap:1.1rem; color:var(--paper-2); }
.local-approval__body p { max-width:80ch; font-size:.95rem; }
.local-approval__links { display:flex; flex-wrap:wrap; gap:1rem 2.5rem; align-items:center; margin-top:.6rem; }
.local-source { font-size:.75rem; color:var(--sand); text-decoration:underline; text-underline-offset:.3em; }
.local-scope { margin-top:3rem; border-left:1px solid var(--bronze); padding:1rem 0 1rem 1.5rem; max-width:77ch; }
.local-scope h3 { font-size:1.2rem; font-weight:450; margin-bottom:1rem; }
.local-scope p { font-size:.86rem; color:var(--sand); margin-bottom:1rem; }
.local-scope a:not(.btn) { text-decoration:underline; text-underline-offset:.3em; color:var(--paper-2); }
.local-scope .btn { margin-top:.75rem; }
.local-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.5rem,4vw,4rem); }
.local-types article { border-top:1px solid var(--line); padding-top:1.5rem; }
.local-types h3 { font-size:1.6rem; font-weight:450; margin:1.2rem 0; }
.local-types p { color:var(--paper-2); font-size:.94rem; }
.local-work { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gutter); }
.local-work__image { display:block; overflow:hidden; margin-bottom:1.5rem; }
.local-work img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; transition:transform .7s ease; }
.local-work__image:hover img { transform:scale(1.025); }
.local-work .label { font-size:.64rem; color:var(--stone); }
.local-work h3 { font-size:clamp(1.6rem,2.5vw,2.8rem); font-weight:450; margin:.7rem 0; }
.local-work h3 span { font-size:1rem; color:var(--bronze); }
.local-work p { max-width:48ch; color:var(--paper-2); font-size:.93rem; }
.local-work__all { margin-top:2.5rem; }
.local-faq summary { justify-content:space-between; }
.local-faq h3 { font-size:clamp(1rem,1.5vw,1.35rem); line-height:1.5; font-weight:450; }
.local-faq > p { max-width:78ch; padding:0 3.5rem 2rem 0; font-size:.95rem; color:var(--paper-2); }
.local-cta-copy { max-width:54ch; margin-top:2rem; color:var(--paper-2); }
.local-page summary:focus-visible,.local-page a:focus-visible { outline:2px solid var(--bronze); outline-offset:5px; }
@media(max-width:1024px) {
 .local-hero__grid { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:2rem; }
 .local-hero h1 { font-size:clamp(2.75rem,5.7vw,4.5rem); }
 .local-hero__work img { height:28rem; }
 .local-hero__work figcaption { flex-wrap:wrap; gap:.5rem; }
 .local-actions { gap:1.3rem; }
 .local-editorial { gap:2.5rem; }
 .local-service { grid-template-columns:2rem minmax(0,1fr) minmax(0,1fr); gap:1.2rem; }
}
@media(max-width:760px) {
 .local-hero { padding-top:8rem; }
 .local-hero .crumb { margin-bottom:2rem; }
 .local-hero__grid,.local-editorial { grid-template-columns:minmax(0,1fr); }
 .local-hero h1 { font-size:clamp(2.6rem,9.5vw,4rem); max-width:19ch; }
 .local-hero__work { margin-top:1rem; }
 .local-hero__work img { height:auto; aspect-ratio:16/10; }
 .local-nav { gap:1.2rem 1.5rem; margin-top:2rem; }
 .local-nav a { font-size:.6rem; }
 .local-service { grid-template-columns:1.8rem minmax(0,1fr); gap:1rem; }
 .local-service p { grid-column:2; }
 .local-approval summary { gap:1rem; padding:1.6rem 0; }
 .local-approval summary .local-no { flex-basis:1.8rem; }
 .local-approval__body { padding:0 0 2rem 2.8rem; }
 .local-approval__links { align-items:start; flex-direction:column; }
 .local-approval summary .label { font-size:.55rem; }
 .local-types,.local-work { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
 .local-faq summary { padding:1.5rem 0; gap:1rem; }
 .local-faq > p { padding-right:0; }
 .local-scope { padding-left:1rem; }
}
@media(prefers-reduced-motion:reduce) {
 .local-toggle,.local-work img { transition:none; }
 .local-work__image:hover img { transform:none; }
}
