
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { min-width: 0; }
main, main section, .container, .container-fluid { min-width: 0; }
main img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid #8b604f; outline-offset: 3px; }
.site-visually-hidden { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.navbar-dropdown .navbar-toggler { cursor: pointer; }
.navbar-dropdown .navbar-toggler .hamburger { pointer-events:none; }
.navbar-dropdown .navbar-brand { min-width:0; }
.navbar-dropdown .navbar-caption { overflow-wrap:anywhere; }
.form-help-intro { margin-top: 1.25rem; text-align:center; }
.form-submission-note { font-size: .875rem; line-height:1.5; margin: 1.2rem .8rem 0; color:#555; text-align:center; }
#contact-details .google-map { border-radius:2rem; overflow:hidden; height:100%; min-height:300px; }
#contact-details .google-map img { width:100%; height:100%; min-height:300px; max-height:440px; object-fit:cover; display:block; border-radius:2rem; }
#site-footer { background-color: #000000; color: #f7f3f0; }
#site-footer .container { max-width: 1150px; }
.site-company-details { padding-top: 1.4rem; padding-bottom:1rem; border-top: 1px solid rgba(255,255,255,.18); }
.site-footer-heading { font-size:1.3rem; line-height:1.4; font-weight:700; text-align:center; margin:0 0 1rem; color:#f7f3f0; }
.site-company-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 2.5rem; max-width:960px; margin:auto; }
.site-company-grid p { font-size:.95rem; line-height:1.85; margin:0; overflow-wrap:anywhere; }
.site-company-grid strong { font-weight:650; }
.site-legal-links { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.5rem 1.75rem; padding:1rem 0; border-top:1px solid rgba(255,255,255,.15); border-bottom:1px solid rgba(255,255,255,.15); }
.site-legal-links a { color:#e4b69c; font-size:.98rem; line-height:1.5; text-decoration:underline; text-underline-offset:3px; }
.site-legal-links a:hover { color:#ffffff; }
.site-data-notice { max-width:950px; margin:1.25rem auto 1.5rem; padding:.9rem 1.2rem; border-radius:12px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); }
.site-data-notice__title { margin:0 0 .4rem; font-size:1rem; font-weight:700; line-height:1.45; text-align:center; color:#f7f3f0; }
.site-data-notice__text { margin:0; font-size:.86rem; line-height:1.65; text-align:center; color:#d8cbc7; }
#site-footer .mbr-text { color:#f7f3f0; font-size:.98rem; line-height:1.5; }
.legal-main { padding-top: 120px; background:#efeae9; }
.site-legal-page { background:#efeae9; padding:3rem 0 5rem; }
.site-legal-page .container { width:min(100% - 2rem, 980px); }
.site-legal-back { display:inline-block; font-size:1rem; font-weight:600; margin-bottom:1.5rem; color:#7c5749; }
.site-legal-title { font-size:clamp(2.1rem, 4vw, 3.6rem); line-height:1.15; margin:0 0 1.2rem; overflow-wrap:break-word; color:#342b28; }
.site-legal-lede { font-size:1.12rem; line-height:1.65; color:#554943; margin:0 0 2rem; }
.site-legal-section { padding:1.45rem 0; border-top:1px solid rgba(52,43,40,.17); }
.site-legal-subtitle { font-size:clamp(1.2rem,2.5vw,1.65rem); line-height:1.35; font-weight:700; margin:0 0 .85rem; overflow-wrap:break-word; color:#342b28; }
.site-legal-section p { font-size:1.04rem; line-height:1.8; margin:0; color:#554943; overflow-wrap:anywhere; }
@media (max-width: 991px) {
 .navbar-dropdown .navbar-collapse { max-height:calc(100dvh - 80px); overflow-y:auto; overscroll-behavior:contain; }
 .navbar-dropdown .navbar-toggler { min-width:44px;  position:relative; z-index:2; flex-shrink:0; }
 .navbar-dropdown .navbar-collapse .navbar-nav { width:100%; }
 .navbar-dropdown .navbar-collapse .nav-link { display:block; padding:.65rem .5rem; white-space:normal; }
 .navbar-dropdown .navbar-collapse .navbar-buttons { padding:.5rem 0; }
 .navbar-dropdown .navbar-collapse .navbar-buttons .btn { margin:0; }
 .legal-main { padding-top: 95px; }
}
@media (max-width: 575px) {
 .site-company-grid { grid-template-columns:1fr; gap: .5rem; }
 .site-legal-links { flex-direction:column; gap:.6rem; }
 .site-company-details { padding-top:1rem; }
 .site-legal-page { padding:1.5rem 0 3rem; }
 .site-legal-page .container { width:calc(100% - 2rem); }
 .site-legal-title { font-size:clamp(1.85rem,8vw,2.4rem); }
 .site-legal-lede, .site-legal-section p { font-size:1rem; }
 .navbar-dropdown .navbar-brand { max-width:calc(100% - 60px); }
 .navbar-dropdown .navbar-caption { font-size:clamp(.95rem,3.8vw,1.25rem); }
 .navbar-dropdown .navbar-logo img { max-width:3rem; height:auto!important; max-height:3rem; object-fit:contain; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto;} }

#site-footer .site-company-grid p, #site-footer .site-company-grid strong { color:#f7f3f0; }
#gallery .gallery-wrapper { overflow-x:clip; }
