:root {
  --forest-950: #102c26;
  --forest-900: #173b32;
  --forest-800: #205044;
  --forest-700: #2d6758;
  --sage-100: #e8f0e9;
  --sage-50: #f3f7f2;
  --cream: #fbfaf4;
  --paper: #ffffff;
  --ink: #15211d;
  --muted: #56635d;
  --line: #dce4de;
  --amber: #eaa94b;
  --amber-dark: #a55b12;
  --rust: #b96037;
  --danger: #9b2c2c;
  --shadow-sm: 0 4px 16px rgba(16, 44, 38, 0.07);
  --shadow-lg: 0 24px 70px rgba(16, 44, 38, 0.14);
  --radius-sm: 0.65rem;
  --radius: 1rem;
  --radius-lg: 1.6rem;
  --container: 74rem;
  --narrow: 48rem;
  --space-1: 0.35rem;
  --space-2: 0.65rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2.25rem;
  --space-6: 3.5rem;
  --space-7: 5rem;
  --font-display: Georgia, "Times New Roman", serif;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--font-body); font-size: 1rem; line-height: 1.65; text-rendering: optimizeLegibility; }
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--forest-800); text-decoration-thickness: 0.08em; text-underline-offset: 0.16em; }
a:hover { color: var(--rust); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3 { color: var(--forest-950); font-family: var(--font-display); font-weight: 700; letter-spacing: -0.025em; line-height: 1.12; margin: 0 0 0.7em; text-wrap: balance; }
h1 { font-size: clamp(2.65rem, 10vw, 5.3rem); }
h2 { font-size: clamp(2rem, 6.5vw, 3.35rem); }
h3 { font-size: clamp(1.25rem, 3vw, 1.55rem); }
p { margin: 0 0 1rem; }
ul, ol { margin-top: 0; }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 4px; border-radius: 0.2rem; }
.sr-only { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.skip-link { background: var(--paper); color: var(--forest-950); left: 1rem; padding: 0.7rem 1rem; position: fixed; top: -5rem; z-index: 1000; }
.skip-link:focus { top: 1rem; }
.container { margin-inline: auto; max-width: var(--container); padding-inline: 1.25rem; width: 100%; }
.narrow { max-width: var(--narrow); }
.narrow-left { max-width: 56rem; }
.section { padding-block: var(--space-7); }
.section--tint { background: var(--sage-100); }
.section--faq { background: linear-gradient(180deg, var(--cream), #f6f1e5); }
.eyebrow { color: var(--amber-dark); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.14em; margin-bottom: 1rem; text-transform: uppercase; }
.eyebrow--light { color: #f8cf92; }
.lead { color: #35443e; font-size: clamp(1.12rem, 2.5vw, 1.1rem); line-height: 1.62; max-width: 48rem; }
.button-row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.8rem; }
.button { align-items: center; appearance: none; background: var(--amber); border: 2px solid var(--amber); border-radius: 999px; color: var(--forest-950); display: inline-flex; font-size: 0.91rem; font-weight: 800; justify-content: center; min-height: 3.2rem; padding: 0.75rem 1.35rem; text-align: center; text-decoration: none; transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; }
.button:hover { background: #f6bd66; border-color: #f6bd66; color: var(--forest-950); transform: translateY(-1px); }
.button--secondary { background: transparent; border-color: var(--forest-800); color: var(--forest-900); }
.button--secondary:hover { background: var(--forest-900); border-color: var(--forest-900); color: white; }
.button--light { background: white; border-color: white; color: var(--forest-950); }
.button--light:hover { background: var(--amber); border-color: var(--amber); }
.button--small { min-height: 2.7rem; padding: 0.55rem 1rem; }
.text-link { font-size: 0.9rem; font-weight: 800; text-decoration: none; }
.text-link--light { color: white; }
.text-link--light:hover { color: var(--amber); }

.site-header { background: rgba(251, 250, 244, 0.96); border-bottom: 1px solid rgba(23, 59, 50, 0.1); position: sticky; top: 0; z-index: 100; }
.nav-shell { align-items: center; display: flex; min-height: 5rem; }
.brand { align-items: center; color: var(--forest-950); display: inline-flex; flex: 0 1 auto; gap: 0.7rem; line-height: 1.05; margin-right: auto; min-width: 0; text-decoration: none; }
.brand:hover { color: var(--forest-950); }
.brand__logo { display: block; height: auto; max-width: 100%; width: clamp(9rem, 17vw, 13rem); }
.brand strong { display: block; font-family: var(--font-display); font-size: 1.15rem; }
.brand small { display: block; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.13em; margin-top: 0.2rem; text-transform: uppercase; }
.brand__mark { align-items: flex-end; background: var(--forest-900); border-radius: 50% 50% 46% 54%; display: flex; gap: 0.16rem; height: 2.7rem; justify-content: center; overflow: hidden; padding-bottom: 0.55rem; position: relative; transform: rotate(-4deg); width: 2.7rem; }
.brand__mark::after { background: var(--amber); border-radius: 50%; content: ""; height: 0.42rem; left: 0.45rem; position: absolute; top: 0.48rem; width: 0.42rem; }
.brand__mark i { background: #f4e7c9; border-radius: 1rem 1rem 0 0; display: block; height: 0.9rem; width: 0.2rem; }
.brand__mark i:nth-child(2) { height: 1.35rem; }
.brand--footer { background: white; border-radius: 0.65rem; color: white; display: inline-flex; padding: 0.35rem 0.5rem; }
.brand--footer .brand__logo { width: min(100%, 19rem); }
.brand--footer:hover { color: white; }
.nav-toggle { background: transparent; border: 0; display: grid; gap: 0.3rem; padding: 0.75rem; }
.nav-toggle span:not(.sr-only) { background: var(--forest-950); display: block; height: 2px; transition: transform 160ms ease; width: 1.55rem; }
.primary-nav { background: var(--cream); border-bottom: 1px solid var(--line); bottom: auto; left: 0; max-height: calc(100vh - 6.9rem); overflow: auto; padding: 1rem 1.25rem 2rem; position: fixed; right: 0; top: 6.9rem; transform: translateX(100%); transition: transform 200ms ease, visibility 200ms ease; visibility: hidden; width: 100vw; }
.primary-nav.is-open { transform: translateX(0); visibility: visible; }
.primary-nav ul { list-style: none; margin: 0; padding: 0; }
.primary-nav > ul > li { border-bottom: 1px solid var(--line); }
.primary-nav a, .primary-nav button { align-items: center; background: none; border: 0; color: var(--ink); display: flex; font-size: 0.98rem; font-weight: 700; justify-content: space-between; padding: 0.9rem 0; text-decoration: none; width: 100%; }
.primary-nav a:hover, .primary-nav button:hover { color: var(--rust); }
.primary-nav .has-submenu > ul { display: none; padding: 0 0 0.7rem 0.8rem; }
.primary-nav .has-submenu.is-open > ul { display: block; }
.primary-nav .has-submenu li { border-left: 2px solid var(--line); padding-left: 0.85rem; }
.primary-nav .has-submenu li a { font-size: 0.9rem; padding: 0.5rem 0; }
.header-cta { display: none; }

.hero { background: radial-gradient(circle at 85% 15%, rgba(234, 169, 75, 0.17), transparent 30%), linear-gradient(135deg, #f8f5e9, var(--sage-100)); overflow: hidden; padding-block: clamp(4rem, 9vw, 7.5rem); position: relative; }
.hero::before { border: 1px solid rgba(23,59,50,0.12); border-radius: 50%; content: ""; height: 24rem; position: absolute; right: -13rem; top: -11rem; width: 24rem; }
.hero-grid { display: grid; gap: 2.5rem; }
.hero-copy h1 { max-width: 11ch; }
.hero-copy .lead { max-width: 43rem; }
.hero-points { display: flex; flex-wrap: wrap; gap: 0.45rem 1.5rem; list-style: none; margin: 1.5rem 0 0; padding: 0; }
.hero-points li { color: var(--forest-800); font-size: 0.83rem; font-weight: 800; }
.hero-points li::before { color: var(--amber-dark); content: "•"; margin-right: 0.45rem; }
.hero-panel { background: var(--forest-950); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); color: #dce9e2; padding: 1.25rem; position: relative; }
.hero-panel--photo { overflow: hidden; padding: 0; }
.hero-photo { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; object-position: center 38%; width: 100%; }
.hero-panel__content { padding: 1.25rem; }
.hero-panel__top { border-bottom: 1px solid rgba(255,255,255,0.16); display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; justify-content: space-between; margin-bottom: 1rem; padding-bottom: 0.8rem; }
.hero-panel__top span { color: #f8cf92; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.hero-panel__top strong { color: white; font-family: var(--font-display); }
.hero-panel p { font-size: 0.92rem; }
.hero-panel .text-link { color: #f8cf92; }
.inspection-map { background: #214e43; border-radius: 0.9rem; height: 18rem; margin-bottom: 1rem; overflow: hidden; position: relative; }
.inspection-map::before { background: #e9dbc0; bottom: 2.5rem; clip-path: polygon(50% 0, 100% 32%, 90% 32%, 90% 100%, 10% 100%, 10% 32%, 0 32%); content: ""; height: 10.5rem; left: 15%; position: absolute; width: 70%; }
.inspection-map::after { background: #173b32; bottom: 2.5rem; content: ""; height: 5.2rem; left: 36%; position: absolute; width: 28%; }
.zone { background: var(--paper); border-radius: 999px; color: var(--forest-950); font-size: 0.67rem; font-weight: 800; padding: 0.3rem 0.6rem; position: absolute; z-index: 2; }
.zone--roof { left: 11%; top: 16%; }
.zone--wall { right: 7%; top: 50%; }
.zone--yard { bottom: 7%; left: 5%; }
.scan { animation: pulse 2.6s infinite; background: var(--amber); border: 4px solid rgba(234, 169, 75, 0.25); border-radius: 50%; height: 0.8rem; position: absolute; width: 0.8rem; z-index: 3; }
.scan--1 { left: 28%; top: 35%; }
.scan--2 { animation-delay: 0.7s; right: 22%; top: 48%; }
.scan--3 { animation-delay: 1.4s; bottom: 14%; left: 20%; }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(234,169,75,0); } 50% { box-shadow: 0 0 0 8px rgba(234,169,75,0.22); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }
.trust-strip { background: var(--forest-900); color: #e8f0e9; padding: 1rem 0; }
.trust-strip p { font-size: 0.82rem; margin: 0; text-align: center; }
.trust-strip strong { color: white; }

.section-heading { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem 3rem; justify-content: space-between; margin-bottom: 2.2rem; }
.section-heading h2 { margin-bottom: 0;  }
.section-heading > p { color: var(--muted); margin: 0; max-width: 35rem; }
.card-grid { display: grid; gap: 1rem; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 0 0 rgba(16,44,38,0); padding: 1.4rem; transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.card:hover { border-color: #bdcec3; box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.card h3 { font-size: 1.35rem; }
.card h3 a { color: var(--forest-950); text-decoration: none; }
.card p { color: var(--muted); display: -webkit-box; font-size: 0.9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.content-grid { display: grid; gap: 1rem; }
.content-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 1.7rem); }
.content-card h3 { font-size: 1.35rem; }
.content-card h3 a { color: var(--forest-950); text-decoration: none; }
.content-card p { color: var(--muted); font-size: 0.92rem; }
.content-card p:last-child { margin-bottom: 0; }
.content-card--dark { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.18); }
.content-card--dark h3 { color: white; }
.content-card--dark p { color: #d7e4de; }
.section-link { margin: 1.5rem 0 0; }
.service-card { overflow: hidden; }
.service-card__media { border-radius: calc(var(--radius) - 0.3rem); display: block; margin: -0.8rem -0.8rem 1rem; overflow: hidden; }
.service-card__media img { aspect-ratio: 16 / 10; display: block; height: auto; object-fit: cover; transition: transform 220ms ease; width: 100%; }
.service-card:hover .service-card__media img { transform: scale(1.025); }
.letter-icon { align-items: center; background: var(--sage-100); border: 1px solid #cfddd2; border-radius: 50%; color: var(--forest-800); display: inline-flex; font-family: var(--font-display); font-size: 1rem; font-weight: 800; height: 2.6rem; justify-content: center; margin-bottom: 1rem; width: 2.6rem; }
.split-feature, .split-content, .dual-column, .final-grid { display: grid; gap: 2rem; }
.feature-links { display: grid; gap: 0.75rem; margin-top: 1.6rem; }
.feature-links a { background: rgba(255,255,255,0.7); border: 1px solid #cfddd2; border-radius: var(--radius); padding: 1.1rem; text-decoration: none; }
.feature-links span, .feature-links strong { display: block; }
.feature-links span { color: var(--muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.feature-links strong { color: var(--forest-950); }
.checklist-card { background: var(--paper); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 1.5rem; }
.checklist-card ol { list-style: none; margin: 0; padding: 0; }
.checklist-card li { display: grid; gap: 1rem; grid-template-columns: auto 1fr; padding: 0.9rem 0; }
.checklist-card li + li { border-top: 1px solid var(--line); }
.checklist-card li > span { color: var(--amber-dark); font-family: var(--font-display); font-size: 1.35rem; }
.checklist-card p { color: var(--muted); font-size: 0.88rem; margin: 0.15rem 0 0; }
.focus-grid { display: grid; gap: 1rem; }
.focus-card { border-radius: var(--radius-lg); min-height: 25rem; overflow: hidden; padding: clamp(1.7rem, 5vw, 3rem); position: relative; }
.focus-card::after { border: 1px solid currentColor; border-radius: 50%; bottom: -8rem; content: ""; height: 17rem; opacity: 0.12; position: absolute; right: -5rem; width: 17rem; }
.focus-card h2 { font-size: clamp(2rem, 5vw, 3rem); max-width: 12ch; }
.focus-card p:not(.eyebrow) { max-width: 32rem; }
.focus-card--warm { background: #f4dfb7; }
.focus-card--dark { background: var(--forest-950); color: #dce9e2; }
.focus-card--dark h2 { color: white; }
.process-list { display: grid; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.process-list li { border-top: 2px solid var(--forest-800); padding-top: 1rem; }
.process-list li > span { align-items: center; background: var(--forest-900); border-radius: 50%; color: white; display: inline-flex; font-weight: 800; height: 2.2rem; justify-content: center; margin-bottom: 1rem; width: 2.2rem; }
.process-list p { color: var(--muted); font-size: 0.9rem; }
.location-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(2, 1fr); }
.location-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--forest-950); padding: 1rem; text-decoration: none; }
.location-card span, .location-card small { display: block; }
.location-card span { font-family: var(--font-display); font-size: 1.05rem; font-weight: 800; }
.location-card small { color: var(--muted); }

.faq-list { border-top: 1px solid var(--line); margin-top: 2rem; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { align-items: center; color: var(--forest-950); cursor: pointer; display: flex; font-family: var(--font-display); font-size: 1.15rem; font-weight: 800; justify-content: space-between; list-style: none; padding: 1.3rem 0; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { height: 1.2rem; position: relative; width: 1.2rem; }
.faq-item summary span::before, .faq-item summary span::after { background: var(--forest-800); content: ""; height: 2px; left: 0; position: absolute; top: 50%; width: 100%; }
.faq-item summary span::after { transform: rotate(90deg); transition: transform 160ms ease; }
.faq-item[open] summary span::after { transform: rotate(0); }
.faq-item > div { color: var(--muted); max-width: 42rem; padding: 0 2rem 1rem 0; }
.home-faq { border-top: 1px solid var(--line); margin-top: 2rem; }
.home-faq article { border-bottom: 1px solid var(--line); padding: 1.35rem 0; }
.home-faq h3 { font-size: 1.2rem; margin-bottom: 0.45rem; }
.home-faq p { color: var(--muted); margin: 0; }
.phone-cta { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: clamp(1.5rem, 4vw, 2.25rem); }
.phone-cta p { color: var(--muted); margin: 0 0 1.25rem; }
.service-link-grid { display: grid; gap: 0.65rem; }
.service-link-grid a { align-items: center; background: white; border: 1px solid var(--line); border-radius: var(--radius-sm); display: flex; font-weight: 800; justify-content: space-between; padding: 0.9rem 1rem; text-decoration: none; }
.business-photo-grid { display: grid; gap: 1rem; }
.business-photo { background: white; border: 1px solid var(--line); border-radius: var(--radius); margin: 0; overflow: hidden; }
.business-photo > img { aspect-ratio: 4 / 3; border: 0; border-radius: 0; height: 100%; max-height: 18rem; object-fit: cover; width: 100%; }
.business-photo figcaption { color: var(--muted); font-size: 0.82rem; font-weight: 800; padding: 0.75rem 1rem; }

.contact-card { background: var(--forest-950); border-radius: var(--radius-lg); color: #dce9e2; font-style: normal; padding: clamp(1.5rem, 4vw, 2.25rem); }
.contact-card p { border-bottom: 1px solid rgba(255,255,255,0.14); display: grid; gap: 0.2rem; padding-bottom: 1rem; }
.contact-card p:first-child { color: white; font-family: var(--font-display); font-size: 1.3rem; }
.contact-card span { color: #f8cf92; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.contact-card a { color: white; overflow-wrap: anywhere; }
.contact-card .text-link { color: #f8cf92; }
.contact-page .content-card h2 { font-size: 1.55rem; }

.breadcrumbs { font-size: 0.77rem; padding-block: 0.8rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.35rem; list-style: none; margin: 0; padding: 0; }
.breadcrumbs li + li::before { color: #89958e; content: "/"; margin-right: 0.35rem; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs span { color: var(--muted); }
.detail-hero { background: linear-gradient(150deg, var(--sage-100), #f8f4e7); padding-block: clamp(3rem, 8vw, 6rem); }
.detail-hero__grid { display: grid; gap: 2rem; }
.detail-hero h1 { font-size: clamp(2.5rem, 8vw, 4.6rem); max-width: 14ch; }
.detail-aside, .context-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 1.5rem; }
.detail-aside--photo { overflow: hidden; padding: 0; }
.detail-aside--photo > img { aspect-ratio: 16 / 10; display: block; height: auto; object-fit: cover; width: 100%; }
.detail-aside__content { padding: 1.5rem; }
.detail-aside__icon { align-items: center; background: var(--forest-900); border-radius: 50%; color: white; display: flex; font-family: var(--font-display); font-size: 1.7rem; font-weight: 800; height: 4rem; justify-content: center; margin-bottom: 1.2rem; width: 4rem; }
.detail-aside__label { color: var(--forest-950); font-family: var(--font-display); font-size: 1.55rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1.12; margin-bottom: 0.7em; }
.detail-aside h2, .context-card h2 { font-size: 1.55rem; }
.detail-aside ul, .context-card ul { list-style: none; margin: 0; padding: 0; }
.detail-aside li, .context-card li { border-top: 1px solid var(--line); font-size: 0.87rem; padding: 0.7rem 0; }
.article-layout { display: grid; gap: 2rem; }
.prose { min-width: 0; }
.prose h2 { font-size: clamp(1.8rem, 5vw, 2.65rem); margin-top: 1.6em; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin-top: 1.4em; }
.prose p, .prose li { color: #3f4e48; }
.prose a { font-weight: 700; }
.check-list { list-style: none; padding: 0; }
.check-list li { border-bottom: 1px solid var(--line); padding: 0.65rem 0 0.65rem 1.7rem; position: relative; }
.check-list li::before { color: var(--amber-dark); content: "✓"; font-weight: 900; left: 0; position: absolute; }
.toc { align-self: start; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.2rem; }
.toc p { font-size: 0.74rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.toc a { border-top: 1px solid var(--line); display: block; font-size: 0.88rem; padding: 0.55rem 0; text-decoration: none; }
.prevention-list { list-style: none; margin: 0; padding: 0; }
.prevention-list li { align-items: start; background: white; border: 1px solid var(--line); border-radius: 0.6rem; display: flex; gap: 0.7rem; margin-bottom: 0.6rem; padding: 0.8rem 1rem; }
.prevention-list span { color: var(--amber-dark); font-weight: 900; }
.cta-band { align-items: center; background: var(--forest-900); border-radius: var(--radius-lg); color: #dce9e2; display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: space-between; overflow: hidden; padding: clamp(1.5rem, 5vw, 2.5rem); position: relative; }
.cta-band::after { border: 1px solid rgba(255,255,255,0.15); border-radius: 50%; content: ""; height: 12rem; position: absolute; right: -5rem; top: -6rem; width: 12rem; }
.cta-band h2 { color: white; font-size: clamp(1.8rem, 5vw, 2.5rem); margin-bottom: 0.35rem; }
.cta-band p { margin-bottom: 0; max-width: 39rem; }
.cta-band .button { position: relative; z-index: 1; }
.dual-column article { border-top: 3px solid var(--amber); padding-top: 1.2rem; }
.section--local { background: var(--forest-950); color: #dce9e2; }
.section--local h2 { color: white; }
.section--local .section-heading > p { color: #c1d3ca; }
.chip-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.chip-row a { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); border-radius: 999px; color: white; padding: 0.55rem 0.9rem; text-decoration: none; }
.chip-row a:hover { background: var(--amber); border-color: var(--amber); color: var(--forest-950); }
.hub-hero, .article-hero, .guide-hero { background: linear-gradient(140deg, #f5ecd9, var(--sage-100)); padding-block: clamp(3.3rem, 8vw, 6rem); }
.hub-hero h1, .article-hero h1, .guide-hero h1 { font-size: clamp(2.5rem, 8vw, 4.7rem); max-width: 15ch; }
.hub-hero--library { background: radial-gradient(circle at 80% 20%, rgba(234,169,75,0.22), transparent 26%), var(--sage-100); }
.location-list { display: grid; gap: 1rem; }
.location-list article { background: white; border: 1px solid var(--line); border-radius: var(--radius); display: grid; gap: 1rem; grid-template-columns: auto 1fr; padding: 1.25rem; }
.location-list article > span { color: var(--amber-dark); font-family: var(--font-display); font-size: 1.4rem; }
.location-list h2 { font-size: 1.65rem; }
.location-list h2 a { color: var(--forest-950); text-decoration: none; }
.location-list p { color: var(--muted); font-size: 0.9rem; }
.location-hero-photo { align-self: center; border: 0.5rem solid rgba(255,255,255,0.75); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); margin: 0; overflow: hidden; }
.location-hero-photo__image { aspect-ratio: 4 / 3; height: 100%; object-fit: cover; width: 100%; }
.guide-grid, .article-grid { display: grid; gap: 1rem; }
.guide-card, .article-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.3rem; }
.guide-card > span { color: var(--amber-dark); font-family: var(--font-display); }
.guide-card h2, .article-card h2 { font-size: 1.5rem; }
.guide-card h2 a, .article-card h2 a { color: var(--forest-950); text-decoration: none; }
.guide-card p, .article-card > p { color: var(--muted); font-size: 0.9rem; }
.article-card > p:first-child { color: var(--amber-dark); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.editorial-note { border-left: 3px solid var(--amber); color: var(--muted); font-size: 0.78rem; margin-top: 2rem; padding-left: 0.9rem; }
.service-callout, .related-panel { align-self: start; background: var(--forest-950); border-radius: var(--radius-lg); color: #dce9e2; padding: 1.5rem; }
.service-callout h2 { color: white; font-size: 1.8rem; }
.service-callout .button { margin-top: 0.5rem; }
.related-panel > a { border-top: 1px solid rgba(255,255,255,0.16); color: white; display: block; padding: 1rem 0; text-decoration: none; }
.related-panel a strong, .related-panel a span { display: block; }
.related-panel a span { color: #bcd1c7; font-size: 0.78rem; }
.notice { background: #fff6df; border: 1px solid #e9c889; border-radius: var(--radius); color: #5f4618; margin-top: 1.5rem; padding: 1.1rem; }
.notice p { margin: 0.3rem 0 0; }
.contact-details { background: var(--sage-100); border: 1px solid #cfddd2; border-radius: var(--radius); margin-top: 1.5rem; padding: 1.2rem; }
.contact-details h2 { font-size: 1.5rem; }
.contact-details address { font-style: normal; }
.contact-details address p { color: var(--ink); }
.not-found { min-height: 65vh; padding-block: var(--space-7); text-align: center; }
.not-found .button-row { justify-content: center; }
.error-code { color: var(--amber-dark); font-family: var(--font-display); font-size: clamp(5rem, 20vw, 10rem); font-weight: 800; line-height: 0.8; }
.not-found-links { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 3rem; }

.site-footer { background: #0b241e; color: #aec4b9; padding: 4rem 0 5.5rem; }
.footer-grid { display: grid; gap: 2rem; margin-top: 3rem; }
.footer-brand p { font-size: 0.85rem; margin-top: 1.2rem; max-width: 25rem; }
.footer-brand .disclosure { color: #7f9c8e; font-size: 0.73rem; }
.footer-brand address { display: grid; font-size: 0.8rem; font-style: normal; gap: 0.35rem; margin-top: 1.2rem; }
.footer-brand address span { color: #c4d4cc; }
.footer-brand address a { color: #f1ca8d; overflow-wrap: anywhere; text-decoration: none; }
.footer-brand address a:hover { color: var(--amber); }
.footer-heading { color: white; font-family: var(--font-body); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.12em; margin: 0 0 0.7em; text-transform: uppercase; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 0.4rem 0; }
.site-footer nav a { color: #c4d4cc; font-size: 0.82rem; text-decoration: none; }
.site-footer nav a:hover { color: var(--amber); }
.footer-map { margin-bottom: 0; }
.footer-map__heading { align-items: end; display: flex; flex-wrap: wrap; gap: 0.75rem 2rem; justify-content: space-between; margin-bottom: 1rem; }
.footer-map__heading .footer-heading--map { font-family: var(--font-display); font-size: 1.55rem; letter-spacing: -0.02em; margin-bottom: 0.3rem; text-transform: none; }
.footer-map__heading p { color: #c4d4cc; font-size: 0.82rem; margin: 0; }
.footer-map__heading a { color: #f1ca8d; font-size: 0.8rem; font-weight: 800; text-decoration: none; }
.footer-map__heading a:hover { color: var(--amber); }
.footer-map iframe { background: #dce4de; border: 0; border-radius: var(--radius); display: block; height: clamp(20rem, 42vw, 28.125rem); width: 100%; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.12); display: flex; flex-wrap: wrap; font-size: 0.72rem; gap: 0.8rem 2rem; justify-content: space-between; margin-top: 2.5rem; padding-top: 1.2rem; }
.footer-bottom p { margin: 0; }
.footer-bottom a { color: #f1ca8d; }
.mobile-cta { background: white; border-top: 1px solid var(--line); bottom: 0; display: grid; grid-template-columns: 1fr; left: 0; padding: 0.55rem; position: fixed; right: 0; z-index: 90; }
.mobile-cta a { border-radius: 0.45rem; color: var(--forest-950); font-size: 0.75rem; font-weight: 800; padding: 0.7rem 0.35rem; text-align: center; text-decoration: none; }
.mobile-cta a:first-child { background: var(--amber); }

@media (min-width: 40rem) {
  .card-grid, .content-grid, .guide-grid, .article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .location-grid { grid-template-columns: repeat(4, 1fr); }
  .service-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-grid nav:last-child { grid-column: 2; }
}

@media (min-width: 56rem) {
  .section { padding-block: clamp(5rem, 8vw, 7rem); }
  .nav-toggle { display: none; }
  .primary-nav { background: transparent; border: 0; inset: auto; margin-left: 1.5rem; max-height: none; overflow: visible; padding: 0; position: static; transform: none; visibility: visible; width: auto; }
  .primary-nav > ul { align-items: center; display: flex; gap: 0.9rem; }
  .primary-nav > ul > li { border: 0; position: relative; }
  .primary-nav a, .primary-nav button { font-size: 0.78rem; min-height: 3rem; padding: 0.7rem 0.2rem; white-space: nowrap; }
  .primary-nav .has-submenu > ul { background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-lg); display: block; left: -1rem; min-width: 16rem; opacity: 0; padding: 0.6rem; pointer-events: none; position: absolute; top: calc(100% - 0.2rem); transform: translateY(-0.4rem); transition: opacity 160ms ease, transform 160ms ease; }
  .primary-nav .has-submenu:hover > ul, .primary-nav .has-submenu:focus-within > ul, .primary-nav .has-submenu.is-open > ul { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .primary-nav .has-submenu li { border: 0; padding: 0; }
  .primary-nav .has-submenu li a { border-radius: 0.4rem; min-height: auto; padding: 0.5rem 0.65rem; }
  .primary-nav .has-submenu li a:hover { background: var(--sage-50); }
  .header-cta { display: inline-flex; margin-left: 1rem; }
  .hero-grid { align-items: center; grid-template-columns: minmax(0, 1.25fr) minmax(22rem, 0.75fr); }
  .hero-panel { padding: 1.5rem; }
  .hero-panel--photo { padding: 0; }
  .hero-panel--photo .hero-panel__content { padding: 1.5rem; }
  .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .content-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .content-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-feature, .split-content, .final-grid { align-items: center; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
  .focus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .process-list--wide { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
  .dual-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-hero__grid { align-items: center; grid-template-columns: minmax(0, 1.3fr) minmax(18rem, 0.7fr); }
  .article-layout { grid-template-columns: minmax(0, 1fr) 19rem; }
  .toc { position: sticky; top: 8rem; }
  .location-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide-grid, .article-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .business-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 2fr repeat(3, 1fr); }
  .footer-grid nav:last-child { grid-column: auto; }
  .mobile-cta { display: none; }
  .site-footer { padding-bottom: 2rem; }
}

@media (min-width: 72rem) {
  .primary-nav > ul { gap: 1.25rem; }
  .primary-nav a, .primary-nav button { font-size: 0.84rem; }
  .card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .content-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .guide-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media print {
  .site-header, .mobile-cta, .button, .site-footer { display: none !important; }
  body { background: white; color: black; }
  a { color: black; }
  .section { padding-block: 2rem; }
}
