@font-face{font-family:Manrope;src:url('../fonts/manrope-latin-wght-normal.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Space;src:url('../fonts/space-grotesk-latin-wght-normal.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--paper:#f6f3e9;--ink:#172824;--muted:#475952;--line:#c8cdc2;--orange:#ff794c;--mint:#dce9d8}
body{background:var(--paper);color:var(--ink);font:500 1rem/1.65 Manrope,system-ui,sans-serif}
.wrap{max-width:1440px;margin:auto;padding-inline:clamp(1.25rem,5vw,5rem)}
a{color:inherit;text-underline-offset:.2em}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #337c68;outline-offset:4px}
header{border-bottom:1px solid var(--line)}
.navbar{min-height:84px}
.brand{font:700 1.8rem Space,sans-serif;display:inline-flex;align-items:center;gap:.65rem;text-decoration:none;letter-spacing:-.06em}
.brand img{width:36px;height:36px}
.navbar .nav-link{color:var(--ink);font-weight:750;font-size:.9rem}
.navbar .nav-link.active{text-decoration:underline;text-decoration-color:#a53b1a;text-decoration-thickness:2px}
.kicker{font:700 .79rem Space,sans-serif;letter-spacing:.13em;text-transform:uppercase;display:flex;gap:.65rem;align-items:center}
.kicker:before{content:'';width:.6rem;height:.6rem;background:var(--orange);display:inline-block;transform:rotate(45deg);flex:none}
h1,h2,h3{font-family:Space,system-ui,sans-serif;font-weight:700;line-height:1.04;letter-spacing:-.055em}
h1{font-size:clamp(3.15rem,7.5vw,7.35rem);max-width:12ch;margin:.35em 0 .24em}
h2{font-size:clamp(2.1rem,4.4vw,4.5rem);margin:0 0 .4em;max-width:17ch}
h3{font-size:clamp(1.45rem,2.5vw,2.2rem)}
p{max-width:59ch}
.hero{padding-block:clamp(3rem,7vw,7rem)}
.hero p,.lead-copy{font-size:clamp(1.07rem,1.5vw,1.32rem);color:var(--muted)}
.hero-photo{margin:0;position:relative;background:#334b43;min-height:360px;overflow:hidden;border-radius:3px 3px 76px 3px}
.hero-photo img{width:100%;height:100%;min-height:360px;max-height:595px;object-fit:cover;display:block;aspect-ratio:4/4.5}
.hero-photo figcaption{position:absolute;bottom:1rem;left:1rem;background:var(--ink);color:white;padding:.55rem .85rem;font:600 .8rem Space,sans-serif}
.subhero{background:var(--mint);border-bottom:1px solid var(--line)}
.subhero .hero{display:grid;grid-template-columns:1fr minmax(135px,24%);align-items:center;gap:1rem}
.hero-symbol{width:100%;max-height:260px}
.cta{display:inline-flex;gap:1rem;align-items:center;background:var(--orange);color:var(--ink);font-weight:800;padding:.85rem 1.15rem;text-decoration:none;border:1px solid transparent;border-radius:3px}
.cta:hover{background:#ff9c79;color:var(--ink)}
.cta.alt{background:transparent;border-color:currentColor}
.cta.alt:hover{background:var(--mint);color:var(--ink)}
.sector-strip{background:var(--ink);color:var(--paper);font:650 clamp(.8rem,1.4vw,1.03rem) Space,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.sector-strip .wrap{display:flex;gap:1rem 2rem;justify-content:space-between;flex-wrap:wrap;padding-block:1.25rem}
.sector-strip span:before{content:'◆';color:var(--orange);margin-right:.7rem}
.chapter{padding-block:clamp(3rem,6.5vw,6rem);border-bottom:1px solid var(--line)}
.chapter:nth-of-type(3n+3){background:#eeefe4}
.chapter .index{color:var(--muted);margin-bottom:1rem}
.chapter .copy{align-self:center}
.chapter .copy p:last-child{margin-bottom:0}
.chapter p{color:var(--muted)}
.chapter.dark,.closing{background:var(--ink);color:var(--paper)}
.chapter.dark p,.closing p,.chapter.dark .index{color:#d8e2d7}
.panel{padding:clamp(1.2rem,3vw,2.5rem);background:var(--mint);border-top:4px solid var(--ink);height:100%}
.panel p:last-child{margin-bottom:0}
.panel:nth-child(2){background:#f8dacd}
.panel:nth-child(3){background:#e9e5d3}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem;margin-top:2rem}
.detail-list{margin:0;padding:0;list-style:none}
.detail-list li{padding:.8rem 0;border-bottom:1px solid var(--line)}
details{border-top:1px solid var(--line);padding:1rem 0}
details:last-child{border-bottom:1px solid var(--line)}
summary{font-weight:800;cursor:pointer}
details p{margin:.75rem 0 0}
.closing{padding-block:clamp(3rem,6vw,6rem);position:relative}
footer{background:#101d1a;color:var(--paper);padding-block:2.5rem}
footer p{color:#d8e2d7}
footer .links{display:flex;gap:.5rem 1rem;flex-wrap:wrap}
footer address{margin:0}
@media(max-width:767px){.subhero .hero{grid-template-columns:1fr}.hero-symbol{display:none}.hero-photo img{aspect-ratio:5/4}.hero-photo,.hero-photo img{min-height:255px}}

/* Page identities and section composition */
.page-about { --page-tone:#e6ddd0 }
.page-services { --page-tone:#dbe9df }
.page-why-us { --page-tone:#f6d7ca }
.page-contact { --page-tone:#e7e6cd }
.subhero { background:var(--page-tone,var(--mint)) }
.subhero .hero { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1rem,5vw,5rem) }
.subhero h1 { font-size:clamp(3rem,6.5vw,6.5rem) }
.photo-frame { margin:0;position:relative;overflow:hidden;background:var(--mint) }
.photo-frame img { display:block;width:100%;aspect-ratio:4/3;object-fit:cover }
.photo-frame figcaption { position:absolute;bottom:.75rem;left:.75rem;padding:.3rem .65rem;color:white;background:#172824;font:600 .76rem Space,sans-serif }
.page-about .subhero .photo-frame { border-radius:48% 48% 0 0 }
.page-services .subhero .photo-frame { border:8px solid #fff;box-shadow:14px 14px 0 #7b9c8c }
.page-why-us .subhero .photo-frame { border-radius:0 55px 0 55px }
.page-contact .subhero .photo-frame { border-radius:2px 2px 72px 2px }
.section-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(1.25rem,4vw,4rem) }
.layout-photo .section-grid { grid-template-areas:"title image" "copy image";row-gap:1rem }
.layout-photo .section-title,.layout-feature .section-title,.layout-poster .section-title { grid-area:title;align-self:end }
.layout-photo .copy,.layout-feature .copy,.layout-poster .copy { grid-area:copy;align-self:start }
.layout-photo .photo-frame,.layout-feature .photo-frame,.layout-poster .photo-frame { grid-area:image }
.layout-photo .photo-frame { border-radius:2px 68px 2px 2px }
.layout-feature .section-grid { grid-template-areas:"image title" "image copy";row-gap:1rem }
.layout-feature .photo-frame { border-radius:54% 54% 2px 2px }
.chapter.layout-brief { background:#efdbaf }
.layout-brief .section-grid { grid-template-columns:minmax(0,1fr) minmax(0,.85fr) minmax(120px,.4fr) }
.stamp { background:#173a30;color:#fff9ec;display:grid;align-content:center;gap:.4rem;padding:1.25rem;min-height:160px;border-radius:2px 30px 2px 2px }
.stamp strong { font:700 clamp(2.5rem,6vw,5rem)/1 Space,sans-serif;letter-spacing:-.08em }
.stamp span { font:700 .74rem Space,sans-serif;letter-spacing:.09em }
.layout-cards .section-grid,.layout-steps .section-grid { grid-template-columns:1fr;gap:.5rem }
.layout-cards .copy:empty,.layout-steps .copy:empty { display:none }
.layout-cards .panel { padding:0;overflow:hidden;border-radius:4px 4px 24px 4px }
.layout-cards .panel-inner { padding:1.35rem }
.layout-cards .photo-frame img { aspect-ratio:2/1 }
.chapter.layout-steps { background:#173a30;color:#f6f3e9 }
.layout-steps .index { color:#dce9d8 }
.layout-steps .tiles { gap:0 }
.layout-steps .panel { background:transparent;color:#f6f3e9;border-top:2px solid #8daf9c;border-inline-end:1px solid #59796d }
.layout-steps .panel p { color:#dce9d8 }
.layout-steps .panel:last-child { border-inline-end:0 }
.layout-banner .section-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);row-gap:1.25rem }
.layout-banner .photo-frame { grid-column:1/-1 }
.layout-banner .photo-frame img { aspect-ratio:4/1;min-height:215px }
.layout-check .section-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"title check" "copy check";row-gap:.65rem }
.layout-check .section-title { grid-area:title;align-self:end }
.layout-check .copy { grid-area:copy;align-self:start }
.check-list { grid-area:check;margin:0;padding:1.35rem;list-style:none;background:#e1eadc;border-radius:22px }
.check-list li { padding:.8rem;border-bottom:1px solid #a8b9a6;font-weight:750 }
.check-list li:last-child { border-bottom:0 }
.check-list li::before { content:'✓';margin-right:.75rem;color:#2b6554 }
.chapter.layout-poster { background:#edc9ba }
.layout-poster .section-grid { grid-template-areas:"title image" "copy image";grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);row-gap:.6rem }
.layout-poster .photo-frame { border:10px solid #fff7ee;box-shadow:8px 8px 0 #b77966;transform:rotate(1deg) }
.layout-location .section-grid,.layout-map .section-grid { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"title card" "copy card";row-gap:.6rem }
.layout-location .section-title,.layout-map .section-title { grid-area:title;align-self:end }
.layout-location .copy,.layout-map .copy { grid-area:copy;align-self:start }
.layout-location .stamp,.layout-map .stamp { grid-area:card;min-height:240px;padding:2rem;background:#173a30 repeating-linear-gradient(125deg,transparent 0 40px,#52756855 41px 43px,transparent 44px 65px) }
.layout-map .stamp { background-color:#263d55 }
.layout-map .stamp strong { font-size:clamp(3rem,10vw,8rem) }
.layout-faq .copy { background:#fffaf1;padding:1.4rem;border-radius:14px }
.closing .wrap { display:flex;align-items:center;justify-content:space-between;gap:1rem }
.closing img { width:clamp(100px,22vw,260px);height:auto }
@media(max-width: 767px) {
  .subhero .hero,.section-grid,.chapter .section-grid { grid-template-columns:minmax(0,1fr);grid-template-areas:none;gap:1rem }
  .chapter .section-grid > * { grid-area:auto }
  .layout-banner .photo-frame img { aspect-ratio:2/1 }
  .layout-steps .panel { border-inline-end:0 }
  .closing img { display:none }
}
