:root { --ink:#14372f; --paper:#f7f5ef; --cream:#ece7dc; --lime:#c9ef6f; --coral:#f2674f; --muted:#63736d; --line:rgba(20,55,47,.17); --radius:1.35rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
.container { width:min(1160px,calc(100% - 3rem)); margin:auto; }
.skip-link { position:absolute; left:-999px; top:0; background:var(--lime); padding:.75rem 1rem; z-index:10; }
.skip-link:focus { left:1rem; }
.site-header { background:rgba(247,245,239,.94); position:sticky; top:0; z-index:4; backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.header-inner { min-height:82px; display:flex; align-items:center; gap:2rem; justify-content:space-between; }
.brand { display:flex; align-items:center; gap:.7rem; white-space:nowrap; }
.brand-mark { width:35px; height:35px; display:block; flex:0 0 35px; }
.brand strong,.brand small,.footer-inner span { display:block; }.brand strong { font-size:.98rem; letter-spacing:-.03em; }.brand small { color:var(--muted); font-size:.72rem; }
nav { display:flex; align-items:center; gap:1.4rem; font-size:.9rem; }.header-phone { font:500 .86rem "DM Mono",monospace; border:1px solid var(--ink); padding:.64rem .9rem; border-radius:99px; white-space:nowrap; }
.hero { overflow:hidden; position:relative; padding:7.3rem 0 6rem; background:var(--ink); color:#fff; }.hero:before { content:""; position:absolute; width:53vw; height:53vw; right:-15vw; top:-21vw; border:1px solid rgba(201,239,111,.3); border-radius:50%; box-shadow:0 0 0 50px rgba(201,239,111,.025),0 0 0 100px rgba(201,239,111,.025),0 0 0 150px rgba(201,239,111,.025); }.hero:after { content:"80120"; position:absolute; color:rgba(255,255,255,.045); font:700 clamp(9rem,24vw,24rem) "DM Mono",monospace; bottom:-11rem; left:-1rem; letter-spacing:-.15em; }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.2fr .8fr; gap:6rem; align-items:center; }.eyebrow { color:var(--coral); font:500 .75rem "DM Mono",monospace; text-transform:uppercase; letter-spacing:.09em; margin:0 0 1.2rem; }.hero .eyebrow,.professional-section .eyebrow { color:var(--lime); }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { letter-spacing:-.055em; line-height:1.04; } h1 { max-width:780px; margin-bottom:1.5rem; font-size:clamp(3rem,6.2vw,5.8rem); font-weight:600; } h1 em { font-family:"Playfair Display",serif; color:var(--lime); font-weight:600; }.hero-copy { color:#d8e1dd; max-width:630px; font-size:1.16rem; }.actions { display:flex; gap:.8rem; flex-wrap:wrap; margin:2rem 0; }.button { display:inline-block; border-radius:99px; padding:.92rem 1.2rem; font-size:.9rem; font-weight:600; transition:transform .2s, background .2s; }.button:hover { transform:translateY(-2px); }.button-primary { background:var(--lime); color:var(--ink); }.button-secondary { border:1px solid rgba(255,255,255,.45); color:#fff; }.trust-list { display:flex; padding:0; margin:2.25rem 0 0; list-style:none; gap:1.25rem; flex-wrap:wrap; color:#d8e1dd; font-size:.8rem; }.trust-list li:before { content:"✦"; color:var(--lime); margin-right:.4rem; }
.hero-panel { padding:2rem; background:var(--cream); color:var(--ink); border-radius:var(--radius); transform:rotate(2deg); box-shadow:1.1rem 1.1rem 0 rgba(0,0,0,.15); }.panel-kicker { margin-bottom:1.4rem; color:var(--muted); font:.75rem "DM Mono",monospace; }.hero-panel h2 { font-size:clamp(1.65rem,2.7vw,2.4rem); margin-bottom:2rem; }.quick-links { border-top:1px solid var(--line); }.quick-links a { padding:.78rem 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:2.2rem 1fr auto; gap:.5rem; font-weight:600; }.quick-links span { color:var(--coral); font:.75rem "DM Mono",monospace; }.quick-links b { font-size:1.05rem; }
.section { padding:7.2rem 0; }.section-heading { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; margin-bottom:3rem; }.section-heading h2,.split-section h2,.professional-section h2,.zone h2,.contact-section h2 { font-size:clamp(2.4rem,4.3vw,4.45rem); margin:0; }.section-heading p { max-width:460px; margin:0; color:var(--muted); font-size:1.08rem; }.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }.service-card { min-height:345px; display:flex; flex-direction:column; padding:1.7rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }.service-card:nth-child(2) { background:var(--ink); color:#fff; }.service-card:nth-child(2) p { color:#d8e1dd; }.number { color:var(--coral); font:.8rem "DM Mono",monospace; }.service-card h3 { margin:3rem 0 1rem; font-size:2rem; }.service-card p { color:var(--muted); }.service-card a { margin-top:auto; padding-top:1rem; font-weight:600; border-top:1px solid currentColor; }.service-card a span,.text-link span { float:right; color:var(--coral); }
.story-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; gap:1rem; margin-top:1rem; }.story-card { margin:0; overflow:hidden; border-radius:var(--radius); background:var(--ink); color:#fff; }.story-card img { display:block; width:100%; aspect-ratio:1/1.08; object-fit:cover; transition:transform .35s ease; }.story-card:hover img { transform:scale(1.025); }.story-card-home img { aspect-ratio:1.2/1; }.story-card figcaption { padding:1rem 1.15rem 1.15rem; color:#d8e1dd; font-size:.88rem; }.story-card figcaption span { display:block; margin-bottom:.25rem; color:var(--lime); font:500 .7rem ui-monospace,SFMono-Regular,Consolas,monospace; text-transform:uppercase; letter-spacing:.08em; }
.split-section { background:var(--cream); }.split-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:9%; align-items:start; }.quote-block { padding:2rem 0 0; }.quote { font:600 clamp(2rem,3.2vw,3.25rem)/1.12 "Playfair Display",serif; }.check-list ul { padding:0; margin:2.5rem 0 0; list-style:none; }.check-list li { display:grid; grid-template-columns:1fr 1fr; padding:1.15rem 0; border-top:1px solid var(--line); gap:1rem; }.check-list span { color:var(--muted); font-size:.94rem; }
.professional-section { background:var(--ink); color:#fff; }.professional-grid { display:grid; grid-template-columns:1fr 1fr; gap:7rem; }.professional-grid p:not(.eyebrow) { color:#d8e1dd; max-width:500px; font-size:1.12rem; }.pill-list { display:flex; gap:.55rem; flex-wrap:wrap; margin:1.5rem 0 2rem; }.pill-list span { border:1px solid rgba(255,255,255,.36); padding:.4rem .65rem; border-radius:99px; font-size:.8rem; }.text-link { color:var(--lime); font-weight:600; border-bottom:1px solid rgba(201,239,111,.45); padding-bottom:.6rem; display:block; }
.zone-grid { display:grid; grid-template-columns:1fr .9fr; gap:8%; }.zone p:not(.eyebrow) { color:var(--muted); max-width:500px; font-size:1.08rem; margin:1.5rem 0 2rem; }.towns { padding:2rem; border-radius:var(--radius); background:#fff; border:1px solid var(--line); }.towns p { font-weight:600; }.towns ul { padding:0; margin:0; list-style:none; columns:2; }.towns li { border-top:1px solid var(--line); padding:.55rem 0; font-size:.92rem; }
.contact-section { padding:8rem 0; text-align:center; background:#dce7d2; color:var(--ink); }.contact-section .eyebrow { color:#4f685f; }.contact-section h2 { max-width:700px; margin:0 auto 1.25rem; }.contact-section p:not(.eyebrow) { margin:0 auto 2rem; max-width:600px; }.contact-number { display:inline-block; font:500 clamp(1.5rem,3vw,2.5rem) "DM Mono",monospace; border-bottom:2px solid var(--ink); }
.zone-link { margin-top:1.25rem !important; font-size:.9rem !important; }.zone-link a { color:var(--ink); font-weight:600; text-decoration:underline; text-underline-offset:3px; }.zone-link span { margin-left:.35rem; color:var(--coral); }.faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:8%; }.faq-grid > div > p:not(.eyebrow) { color:var(--muted); max-width:420px; }.faq-list { border-top:1px solid var(--line); }.faq-list details { border-bottom:1px solid var(--line); padding:1.2rem 0; }.faq-list summary { display:flex; justify-content:space-between; gap:1rem; cursor:pointer; font-weight:600; list-style:none; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary span { color:var(--coral); font-size:1.25rem; line-height:.8; }.faq-list details[open] summary span { transform:rotate(45deg); }.faq-list p { margin:1rem 2rem 0 0; color:var(--muted); }.faq-list p a { color:var(--ink); font-weight:600; text-decoration:underline; }.local-hero { background:var(--ink); color:#fff; padding:7.2rem 0; }.local-hero-inner { max-width:850px; }.local-hero h1 { font-size:clamp(2.9rem,5.8vw,5.4rem); }.local-hero p:not(.eyebrow) { max-width:680px; color:#d8e1dd; font-size:1.12rem; margin-bottom:2rem; }.town-page-grid { display:grid; grid-template-columns:1fr .9fr; gap:8%; }.town-page-grid h2 { font-size:clamp(2.4rem,4.3vw,4.45rem); }.town-page-grid > div > p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; }
.legal-page { min-height:calc(100vh - 180px); }.legal-content { max-width:780px; }.legal-content h1 { font-size:clamp(2.8rem,5vw,4.7rem); }.legal-content h2 { margin:2.75rem 0 .75rem; font-size:1.45rem; }.legal-content p { max-width:70ch; color:var(--muted); }.legal-content a { color:var(--ink); font-weight:600; text-decoration:underline; text-underline-offset:3px; }.not-found { min-height:100vh; display:grid; place-items:center; background:var(--ink); color:#fff; }.not-found h1 { font-size:clamp(3rem,8vw,7rem); max-width:800px; }.not-found p:not(.eyebrow) { color:#d8e1dd; margin-bottom:2rem; }
.territory-photo { height:min(54vw,560px); overflow:hidden; background:var(--ink); }.territory-photo img { width:100%; height:100%; object-fit:cover; display:block; }.local-detail { background:var(--cream); }.local-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }.local-detail h2 { font-size:clamp(2.4rem,4.3vw,4.45rem); margin-bottom:1.25rem; }.local-detail p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; }.local-detail figure { margin:0; }.local-detail img { display:block; width:100%; aspect-ratio:1.15/1; object-fit:cover; border-radius:var(--radius); }.local-detail figcaption { margin-top:.75rem; color:var(--muted); font-size:.85rem; }
footer { padding:2.1rem 0; background:var(--ink); color:#fff; }.footer-inner { display:flex; justify-content:space-between; gap:2rem; }.footer-inner strong { display:block; }.footer-inner span { color:#aabbb5; font-size:.8rem; }.footer-inner a { font:500 .9rem "DM Mono",monospace; }
@media (max-width:800px) { .container { width:min(100% - 2rem,1160px); }.header-inner { min-height:70px; }.header-phone { display:none; } nav { display:none; }.hero { padding:4.8rem 0 4rem; }.hero-grid,.section-heading,.split-grid,.professional-grid,.zone-grid,.faq-grid,.town-page-grid,.local-detail-grid { grid-template-columns:1fr; gap:2.5rem; }.hero-panel { transform:none; margin:0 .5rem; }.service-grid,.story-grid { grid-template-columns:1fr; }.service-card { min-height:280px; }.section { padding:4.5rem 0; }.section-heading { margin-bottom:2.2rem; }.check-list li { grid-template-columns:1fr; gap:.25rem; }.footer-inner { display:block; }.footer-inner > div + div { margin-top:1.3rem; }.story-card img,.story-card-home img { aspect-ratio:1.25/1; }.territory-photo { height:58vw; min-height:260px; } }
@media (max-width:420px) { .brand small { display:none; }.trust-list { display:block; }.trust-list li + li { margin-top:.5rem; }.towns ul { columns:1; } }
.service-card > a { margin-top:auto; }.partner-link { margin:1rem 0 0; font-size:.78rem; line-height:1.45; }.partner-link a,.partner-intro a { text-decoration:underline; text-underline-offset:2px; font-weight:600; }.service-card:nth-child(2) .partner-link { color:#d8e1dd; }.partner-intro { margin-top:1.45rem !important; font-size:.88rem !important; line-height:1.45; }.footer-sites { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:.5rem; }.footer-sites a { color:#aabbb5; font:400 .75rem "DM Sans",sans-serif; text-decoration:underline; text-underline-offset:2px; }
.image-feature { display:grid; grid-template-columns:1.25fr .75fr; margin:1rem 0 0; overflow:hidden; border-radius:var(--radius); background:var(--ink); color:#fff; }.image-feature img { display:block; width:100%; height:100%; max-height:410px; object-fit:cover; }.image-feature figcaption { align-self:end; padding:2rem; color:#d8e1dd; font-size:1.1rem; }.image-feature figcaption span { display:block; margin-bottom:.55rem; color:var(--lime); font:500 .7rem ui-monospace,SFMono-Regular,Consolas,monospace; text-transform:uppercase; letter-spacing:.08em; }.professional-grid { grid-template-columns:.8fr 1fr .9fr; gap:3rem; align-items:start; }.professional-visual { margin:0; }.professional-visual img { width:100%; display:block; aspect-ratio:.9/1; object-fit:cover; border-radius:var(--radius); }.professional-visual figcaption { margin-top:.65rem; color:#d8e1dd; font-size:.85rem; }.ia-feature { background:#fff; }.ia-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }.ia-feature figure { margin:0; }.ia-feature img { width:100%; display:block; aspect-ratio:1.12/1; object-fit:cover; border-radius:var(--radius); }.ia-feature h2 { font-size:clamp(2.4rem,4.3vw,4.45rem); margin-bottom:1.25rem; }.ia-feature p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; }
@media (max-width:800px) { .image-feature,.ia-feature-grid { grid-template-columns:1fr; gap:2.5rem; }.image-feature figcaption { padding:1.4rem; }.professional-grid { grid-template-columns:1fr; gap:2.5rem; } }

/* Keep the complete landscape scenes visible, including Pascal. */
.professional-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8%; align-items:center; }
.professional-grid h2 { margin-bottom:1.25rem; }
.professional-visual img,
.ia-feature img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
@media (max-width:800px) {
  .professional-grid { grid-template-columns:1fr; gap:2.5rem; }
}
