/* AWB identity retained from the supplied multipage website. */
html { scroll-padding-top:110px; }
body { overflow-wrap:break-word; }
:focus-visible { outline:3px solid #5b8a14; outline-offset:5px; }
.btn-green { padding:16px 21px; background:var(--green); color:white; border:1px solid var(--green); }
.btn-green:hover { background:var(--deep); }
.btn-lime { border:1px solid var(--lime); }
.brand { flex-shrink:0; }
.brand small { letter-spacing:.19em; }
.nav-details summary { min-height:48px; }
.subnav { top:calc(100% + 12px); width:390px; left:-70px; }
.subnav a[aria-current="page"] { color:var(--green); background:#edf4e7; }
.nav-items>a[aria-current="page"] { color:var(--green); }
.home-hero-grid { grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); min-height:670px; }
.home-hero-copy { padding-top:90px; padding-bottom:54px; }
.home-hero .section-index { font-size:10px; letter-spacing:.13em; margin-bottom:29px; }
.home-hero h1 { font-size:clamp(40px,4.05vw,58px); line-height:1.12; }
.home-hero h1 em { color:var(--green); }
.home-hero-photo { min-height:610px; }
.home-lead { font-size:16px; line-height:1.8; }
.home-photo-caption { left:29px; right:35px; bottom:125px; }
.home-photo-caption b { font-size:29px; }
.home-photo-caption>span { font-size:11px; }
.home-hero-image-shade { background:linear-gradient(180deg,rgba(4,37,17,.02),rgba(4,37,17,.15) 35%,rgba(3,28,14,.90)); }
.trust-line { font-size:10px; padding-top:32px; max-width:440px; }
.portfolio-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.portfolio-card, .portfolio-card:nth-child(4), .portfolio-card:nth-child(5) { grid-column:auto; min-height:330px; padding:33px 30px 30px; }
.portfolio-card:nth-child(5), .portfolio-card:nth-child(5):hover { background:white; color:var(--ink); }
.portfolio-card:nth-child(5) .portfolio-top { color:#739379; }
.portfolio-card:nth-child(5) p { color:var(--soft-text); }
.portfolio-card:nth-child(5) .portfolio-more { color:var(--green); border-color:#bfd0b8; }
.portfolio-card:nth-child(5):hover { background:#e8f3de; }
.portfolio-card:last-child { background:var(--deep); color:white; }
.portfolio-card:last-child:hover { background:#165332; }
.portfolio-card:last-child .portfolio-top, .portfolio-card:last-child .portfolio-more { color:var(--lime); }
.portfolio-card:last-child p { color:#d4e3d4; }
.portfolio-card:last-child .portfolio-more { border-color:#6c9e77; }
.portfolio-card h3 { font-size:25px; margin-top:32px; }
.portfolio-card p { font-size:14px; line-height:1.75; margin-bottom:25px; }
.portfolio-card .portfolio-top { font-size:10px; letter-spacing:.1em; }
.portfolio-card:hover .portfolio-top>span:last-child { transform:translate(3px,-3px); }
.portfolio-top>span:last-child { transition:transform .2s; }
.opening-grid { grid-template-columns:minmax(0,.25fr) minmax(0,1fr); gap:45px; }
.opening-columns p { font-size:15px; }
.home-feature-grid, .story-grid, .scope-grid, .work-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:72px; }
.profile-grid, .owner-grid { grid-template-columns:minmax(0,.86fr) minmax(0,1.1fr); gap:76px; }
.about-grid, .contact-main-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:70px; }
.legal-grid { grid-template-columns:minmax(0,.6fr) minmax(0,1.3fr); gap:72px; }
.contact-location { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:65px; }
.cta-inner { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:70px; }
.footer-top { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.3fr); gap:55px; }
.footer-links a { line-height:1.5; overflow-wrap:anywhere; }
.footer-identity p { font-size:15px; }
.profile-copy h2 { font-size:clamp(37px,4vw,57px); line-height:1.14; }
.feature-copy>p:not(.section-index), .story-copy>p:not(.section-index), .scope-grid>div:first-child>p:not(.section-index), .owner-content p, .about-grid>div:first-child>p:not(.section-index) { font-size:15px; }
.profile-copy p { font-size:15px; }
.page-hero-grid { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.page-hero-copy { padding:80px 40px 70px 0; }
.page-hero h1 { font-size:clamp(39px,3.95vw,58px); }
.page-hero em { color:var(--green); }
.page-hero .section-index { font-size:10px; letter-spacing:.14em; }
.page-hero-image { min-height:520px; }
.item-card { padding:32px; min-height:270px; }
.item-marker { font-size:11px; font-weight:800; color:var(--green); border-color:#b7cdae; }
.item-card h3 { font-size:21px; margin-top:30px; }
.item-card p, .step p { font-size:14px; }
.step h3 { font-size:19px; }
.related-card p { font-size:14px; }
.taglist span { font-size:11px; }
.contact-method { grid-template-columns:1fr 22px; }
.contact-method span { grid-column:span 2; }
.contact-method strong { font-size:clamp(18px,1.8vw,24px); }
.contact-prompt p { font-size:14px; }
.contact-prompt { gap:18px; }
.contact-small { font-size:12px!important; }
.legal-main { padding:38px 40px; }
.service-note { background:#edf3e8; padding:26px 0; border-top:1px solid var(--line); }
.service-note p { font-size:13px; line-height:1.8; color:#536654; max-width:1000px; margin:0; }
.mediation-section { background:var(--deep); color:white; }
.mediation-inner { max-width:970px; }
.mediation-inner h2 { font-size:clamp(33px,3.8vw,52px); line-height:1.17; }
.mediation-inner>p:not(.section-index) { font-size:16px; color:#d3e3d6; max-width:750px; }
.mediation-inner .btn { margin-top:17px; }
.gis-section, .inquiry-section { background:var(--ivory); }
.parcel-map { margin:0; border:1px solid #c9d4c0; background:#edf2e7; }
.parcel-map svg { display:block; width:100%; height:auto; }
.parcel-map figcaption { padding:16px 20px; background:white; color:#5d705c; font-size:11px; line-height:1.5; }
.layer-controls { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.layer-controls button { cursor:pointer; display:flex; align-items:center; gap:9px; padding:13px 15px; border:1px solid #b6c7af; background:white; color:var(--green); font-size:12px; font-weight:700; min-height:46px; }
.layer-controls button[aria-pressed="false"] { background:transparent; color:#627467; border-style:dashed; }
.layer-controls button[aria-pressed="false"] .layer-dot { opacity:.3; }
.layer-dot { width:10px; height:10px; border-radius:50%; border:1px solid var(--green); }
.parcels-dot { background:#c4d5ac; }
.route-dot { background:var(--lime); }
.status-dot { background:var(--green); }
.map-caption { font-size:12px!important; margin-top:16px; }
.inquiry-form { padding:33px; background:white; border:1px solid var(--line); display:flex; flex-direction:column; align-items:stretch; }
.inquiry-form label { font-size:13px; font-weight:700; margin:0 0 10px; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { color:var(--ink); background:#fafcf8; width:100%; max-width:100%; padding:14px; border:1px solid #b7c7b4; border-radius:0; font:inherit; font-size:15px; margin-bottom:25px; min-height:48px; }
.inquiry-form textarea { resize:vertical; line-height:1.6; }
.inquiry-form .btn { border:0; cursor:pointer; text-align:left; }
.inquiry-note { margin:17px 0 0; font-size:12px; color:#627467; line-height:1.7; }
.notfound .btn { margin:7px 10px 0 0; }
@media (max-width:1120px) {
  .home-hero h1 { font-size:clamp(38px,4.3vw,51px); }
  .profile-grid, .owner-grid, .about-grid, .home-feature-grid, .story-grid, .scope-grid, .work-grid, .contact-main-grid, .legal-grid { gap:40px; }
  .home-hero-copy { padding-top:75px; }
  .portfolio-card, .portfolio-card:nth-child(4), .portfolio-card:nth-child(5) { padding:28px; }
  .portfolio-card h3 { font-size:23px; }
  .standards-inner span { font-size:9px; letter-spacing:.08em; }
  .footer-top { gap:35px; }
}
@media (max-width:980px) {
  .nav-wrap { height:74px; }
  .menu-button { display:flex; flex-direction:column; justify-content:center; gap:5px; background:none; border:0; cursor:pointer; padding:12px; margin-right:-8px; z-index:3; }
  .menu-button span { height:2px; background:var(--deep); width:25px; display:block; }
  .nav-items { position:absolute; display:none; top:74px; left:0; right:0; max-height:calc(100dvh - 74px); overflow-y:auto; z-index:30; background:white; border-bottom:1px solid var(--line); padding:14px 28px 28px; flex-direction:column; align-items:stretch; gap:0; }
  .nav-items.open { display:flex; }
  .nav-items>a { font-size:14px; padding:15px 5px; border-bottom:1px solid var(--line); }
  .nav-items>.nav-cta { margin-top:16px; justify-content:space-between; padding:17px; }
  .nav-details { font-size:14px; border-bottom:1px solid var(--line); }
  .nav-details summary { padding:15px 5px; justify-content:space-between; }
  .subnav { position:static; box-shadow:none; border:0; width:100%; padding:0 0 12px 8px; }
  .subnav a { font-size:13px; min-height:52px; padding:10px 0; }
  .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-identity { grid-column:span 2; }
}
@media (max-width:850px) {
  .home-hero-grid, .page-hero-grid { grid-template-columns:1fr; }
  .home-hero-copy { padding:65px 0 45px; }
  .home-hero h1 { font-size:clamp(42px,7vw,60px); }
  .home-hero-photo { min-height:440px; margin-left:0; }
  .home-photo-caption { bottom:45px; max-width:400px; right:90px; }
  .home-photo-caption b { font-size:30px; }
  .opening-grid, .home-feature-grid, .story-grid, .scope-grid, .work-grid, .profile-grid, .owner-grid, .about-grid, .contact-main-grid, .legal-grid, .contact-location, .cta-inner { grid-template-columns:1fr; gap:35px; }
  .opening-grid { gap:0; }
  .page-hero-copy { padding:64px 0 45px; }
  .page-hero h1 { font-size:clamp(41px,6.5vw,59px); }
  .page-hero-image { min-height:360px; }
  .profile-photo, .owner-image { max-width:520px; width:100%; }
  .story-image { height:390px; }
  .legal-aside { position:static; }
  .standards-inner { justify-content:flex-start; }
  .standards-inner span { font-size:9px; }
  .cta-inner { gap:28px; }
  .cta-inner h2 { max-width:700px; }
  .contact-location>div:last-child { padding-top:0; }
  .footer-identity { grid-column:span 2; }
}
@media (max-width:570px) {
  html { scroll-padding-top:90px; }
  .section-pad { padding:65px 0; }
  .brand strong { font-size:10px; }
  .brand small { font-size:8px; letter-spacing:.16em; }
  .brand img { width:37px; height:37px; }
  .home-hero-copy { padding:51px 0 36px; }
  .home-hero .section-index { font-size:9px; line-height:1.7; max-width:260px; }
  .home-hero h1 { font-size:clamp(31px,8.5vw,47px); letter-spacing:-.048em; margin-bottom:26px; }
  .home-lead { font-size:15px; line-height:1.8; }
  .home-hero .hero-actions { align-items:stretch; }
  .hero-actions .btn { min-height:51px; font-size:11px; padding:14px; gap:13px; }
  .home-hero-photo { min-height:330px; height:330px; }
  .home-photo-caption { left:22px; right:72px; bottom:35px; }
  .home-photo-caption small { font-size:8px; line-height:1.6; }
  .home-photo-caption b { font-size:24px; }
  .home-photo-caption>span { font-size:10px; }
  .corner-label { width:65px; min-width:65px; height:76px; }
  .vertical-label { font-size:8px; right:16px; }
  .trust-line { font-size:10px; max-width:320px; }
  .portfolio-grid { grid-template-columns:1fr; }
  .portfolio-card, .portfolio-card:nth-child(4), .portfolio-card:nth-child(5) { grid-column:auto; min-height:0; padding:28px; }
  .portfolio-card h3 { font-size:25px; margin-top:24px; max-width:none; }
  .portfolio-card p { font-size:14px; }
  .portfolio-more { font-size:11px; }
  .opening h2, .section-heading h2, .feature-copy h2, .profile-copy h2, .owner-content h2, .work-grid h2, .story-copy h2, .scope-grid h2, .contact-main h2, .contact-location h2, .about-section h2, .principle-section h2 { font-size:clamp(31px,8vw,43px); }
  .page-hero h1 { font-size:clamp(33px,8.8vw,47px); }
  .page-hero .section-index { font-size:9px; }
  .page-hero-copy { padding:53px 0 40px; }
  .page-hero-image { min-height:290px; height:290px; }
  .item-card { min-height:0; padding:27px; }
  .item-card h3 { margin-top:24px; }
  .item-card p, .step p { font-size:14px; }
  .related-card { min-height:0; padding:28px; }
  .related-card p { font-size:14px; }
  .footer-top { grid-template-columns:1fr; display:grid; gap:35px; }
  .footer-identity { grid-column:auto; }
  .footer-bottom { align-items:flex-start; }
  .cta-inner h2 { font-size:clamp(33px,8.8vw,47px); }
  .cta-section { padding:65px 0; }
  .legal-main { padding:29px 23px; }
  .contact-aside { padding:30px 25px; }
  .inquiry-form { padding:25px 20px; }
  .layer-controls button { font-size:11px; padding:12px; }
  .story-image { height:310px; }
  .profile-photo, .owner-image { height:auto; aspect-ratio:4/5; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; transition:none!important; }
}
