/* Local corrections layered after the original design system. */
:root { --font-family-body: "Segoe UI", Arial, sans-serif; --font-family-heading: Georgia, "Times New Roman", serif; }
html { scroll-padding-top: 90px; }
body { min-width: 0; }
.site-main { width: 100%; min-width: 0; }
.site-skip-link { position:fixed; top:-100px; left:8px; z-index:3000; padding:10px 16px; border-radius:0 0 6px 6px; background:var(--color-primary); color:var(--color-on-primary); font:600 14px/1.25 system-ui,sans-serif; text-decoration:none; }
.site-skip-link:focus { top:0; }
:where(img,svg,video) { max-width:100%; }
img { height:auto; }
:where(.site-main,.site-main section,.legal-section) { min-width:0; }
:where(.site-main p,.site-main h1,.site-main h2,.site-main h3,.site-main a,.legal-content p) { overflow-wrap:break-word; }
.navigation-navlink9,.navigation-navlink10,.footer-navlink7,.footer-navlink10 { display:contents; }
.navigation-hamburger,.navigation-close { align-items:center; justify-content:center; border:0; appearance:none; background:transparent; -webkit-appearance:none; cursor:pointer; }
.navigation-hamburger:focus-visible,.navigation-close:focus-visible { outline:2px solid #fff; outline-offset:3px; border-radius:6px; }
.navigation-panel { position:relative; z-index:1200; }
.navigation-mobile-overlay { z-index:2200; background:#12201d; max-width:100vw; height:100dvh; min-height:100vh; }
.navigation-section.menu-open .navigation-mobile-overlay { display:flex; }
.navigation-overlay-header { background:#12201d; }
.navigation-section.menu-open .navigation-panel { visibility:hidden; }
.navigation-overlay-links { padding:clamp(24px,5vh,64px) 20px 72px; gap:24px; }
.navigation-overlay-link { cursor:pointer; }
.navigation-overlay-link:hover,.navigation-overlay-link:focus-within { opacity:.84; }
.navigation-section a:focus-visible { outline:2px solid white; outline-offset:4px; border-radius:4px; }
html.menu-is-open,body.menu-is-open { overflow:hidden; }
.footer-alva-contact-details .footer-alva-contact-link { cursor:text; }
.footer-alva-legal-links { flex-wrap:wrap; }
/* The supplied layout had several fixed-width text columns that overflowed narrow viewports. */
@media(max-width:767px) {
 .navigation-panel { grid-template-columns:1fr auto; }
 .navigation-navlink3 { min-width:0; }
 .navigation-logo,.company-logo-text { max-width:100%; min-width:0; }
 .navigation-mobile-overlay { width:100vw; }
 .showcase-homes-titles,.ethics-header-text,.lodging-categories-header-text,.about-hero-needle-header,.about-hero-header-text,.forest-hero-text-block { width:100%; max-width:100%; min-width:0; }
 .showcase-homes,.showcase-homes-header,.ethics-header,.lodging-categories-header { min-width:0; max-width:100%; }
 .site-main a:has(> .btn),.site-main .btn { max-width:100%; white-space:normal; text-align:center; }
 .footer-alva-legal-links { gap:12px 18px; }
}
@media(max-width:479px) {
 .section-title { font-size:clamp(1.75rem,8vw,2.45rem); }
 .navigation-overlay-link { font-size:clamp(1.3rem,7vw,1.75rem); }
}
/* Documents share the original site's colours, fonts, header and footer. */
.legal-content { color:var(--color-on-surface); }
.legal-content .legal-intro { display:flex; flex-direction:column; gap:14px; padding-bottom:22px; border-bottom:1px solid var(--color-outline); }
.legal-content .legal-eyebrow { color:var(--color-secondary); font-size:.83rem; font-weight:600; letter-spacing:.10em; text-transform:uppercase; }
.legal-content h1 { font:600 clamp(2.2rem,5.3vw,3.45rem)/1.14 var(--font-family-heading); margin:0; }
.legal-content .legal-updated { font-size:.92rem; color:var(--color-on-surface-secondary); }
.legal-content p,.legal-content li { font:400 1rem/1.78 var(--font-family-body); color:var(--color-on-surface-secondary); overflow-wrap:anywhere; }
.legal-content p strong { color:var(--color-on-surface); }
.legal-content .legal-section { display:flex; flex-direction:column; gap:15px; padding:6px 0; }
.legal-content h2 { font:600 clamp(1.35rem,2.8vw,1.65rem)/1.28 var(--font-family-heading); color:var(--color-on-surface); }
.legal-content a:not(.legal-return) { text-decoration:underline; text-underline-offset:3px; color:var(--color-primary); }
.legal-content a:not(.legal-return):hover { color:var(--color-secondary); }
.legal-bottom { border-top:1px solid var(--color-outline); padding-top:26px; margin-top:8px; }
.legal-return { display:inline-flex; align-items:center; padding:12px 22px; border:1px solid var(--color-primary); border-radius:999px; color:var(--color-primary); font-weight:600; text-decoration:none; }
.legal-return:hover,.legal-return:focus-visible { background:var(--color-primary); color:var(--color-on-primary); }
.contact-card { padding:24px !important; background:var(--color-surface-tint); border-radius:var(--border-radius-lg); }
@media(max-width:767px) { .legal-content { padding:40px 22px !important; } .legal-content .legal-section { gap:12px; } }
@media(max-width:359px) { .legal-content { padding:32px 16px !important; } .footer-alva-headline { font-size:2.2rem; } .hero-title { font-size:clamp(2.25rem,10vw,2.7rem); } }
