/* Always-on foundation, not an accessibility overlay. Last in the cascade. */
:root{--muted:#4b554c;--bronze:#665039;--sk-header-height:145px}
html{scroll-padding-top:calc(var(--sk-header-height) + 16px);scroll-padding-bottom:96px}
body{overflow-wrap:break-word}
[hidden]{display:none!important}
*,*:before,*:after{box-sizing:border-box}
main,section,article,fieldset,nav,figure,form{min-width:0}
img,video,canvas{max-width:100%}
button,input,select,textarea{font:inherit;max-width:100%}
button{white-space:normal;overflow-wrap:break-word}
button:not(.lead-honeypot),.button,.menu-toggle,.header-direct a,.mobile-contact a,.accessibility-launch{min-height:44px;min-width:44px}
a,input,select,textarea,button,[tabindex]{scroll-margin-top:calc(var(--sk-header-height) + 16px);scroll-margin-bottom:100px}
/* A two-tone focus indicator remains visible on both photographs and light dialogs. */
html body :focus-visible{outline:3px solid #192b22!important;outline-offset:3px!important;box-shadow:0 0 0 6px #fff!important}
.skip{z-index:10000!important;max-width:calc(100% - 32px);min-height:44px;background:#fff!important;color:#192b22!important}
.skip:focus,.skip:focus-visible{top:12px!important;right:16px!important}
.article-content a,.article-page p a,.service-content p a,.privacy-notice a,.fine a,.status a{ text-decoration:underline;text-underline-offset:.2em}
.contact-form input,.contact-form select,.contact-form textarea{border:1px solid #b3c0b6;min-height:48px;line-height:1.5}
.service-contact input,.service-contact select,.service-contact textarea{border:1px solid #707a70;min-height:48px;line-height:1.5}
input::placeholder,textarea::placeholder{opacity:1}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#d3ddd5}
.service-contact input::placeholder,.service-contact textarea::placeholder{color:#525e55}
.sk-privacy-banner{max-height:50svh}
.sk-focus-clearance{width:1px;pointer-events:none}
.sk-a11y-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.recommend .choice-tag{font-size:15px;font-weight:600;margin:0 0 6px;color:#665039}
.service-contact .contact-form input::placeholder,.service-contact .contact-form textarea::placeholder{color:#525e55}
.field-error{display:block;margin-top:8px;font-size:1rem;line-height:1.65;font-weight:600;color:#862218}
.a11y-field{min-width:0}.a11y-field>label{display:block}
.form-error-summary:focus{outline:3px solid #192b22!important;outline-offset:3px;box-shadow:0 0 0 6px #fff!important}
.contact .field-error{color:#ffe1bf}
[aria-invalid=true]{border:2px solid currentColor!important}
.form-error-summary{padding:20px;margin-bottom:20px;border:2px solid currentColor;max-width:100%;line-height:1.7}
.form-error-summary p{font-size:1.125rem;margin:0 0 10px;color:inherit}
.form-error-summary ul{margin:0;padding-inline-start:24px}
.form-error-summary a{color:inherit!important;text-decoration:underline;display:inline-block;padding:6px 0}
.contact-form .form-error-summary{color:#fff1dd}
.service-contact .form-error-summary{color:#76271d}
.site-header .brand{flex-shrink:0}.site-header .menu-toggle{line-height:1.5}
.site-header .nav a{white-space:normal}
body .projects-page,body .villa-main,body .service-main,body .article-page,body .about-page{padding-top:calc(var(--sk-header-height) + 32px)!important}
/* Override older navigation-page media rules: this is the canonical breakpoint. */
@media(min-width:1401px){.site-header .menu-toggle{display:none!important}.site-header .nav{display:flex!important;position:static!important;flex-direction:row!important;max-height:none!important}}
@media(max-width:1400px){.site-header .menu-toggle{display:block!important}.site-header .nav{display:none!important;position:absolute!important;inset:100% 0 auto!important;flex-direction:column!important;flex-basis:auto;order:0;padding:15px 6vw!important;background:var(--paper)!important;color:var(--ink)!important;max-height:calc(100dvh - var(--sk-header-height) - 12px)!important;overflow-y:auto!important}.site-header .nav.open{display:flex!important}.site-header .nav a{font-size:20px;padding:10px 0}}
dialog{max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;overflow:auto;overscroll-behavior:contain}
dialog img{max-width:100%;height:auto;object-fit:contain}
.viewer-bar{flex-wrap:wrap}.viewer-bar p{min-width:0;overflow-wrap:anywhere}
.sk-gallery-controls{flex-wrap:wrap}.sk-gallery-controls span{min-width:90px;text-align:center}
.hero{height:auto!important;max-height:none!important;min-height:max(720px,100svh)}
.hero-copy{max-width:100%;height:auto!important;overflow:visible}
.hero h1,.projects-heading h1,.villa-heading h1,.service-hero h1{overflow-wrap:break-word}
@media(max-width:700px){
 .site-header{height:auto!important;min-height:0;gap:8px;padding-inline:5vw}
 .site-header .header-direct{gap:10px;flex-wrap:wrap}
 .site-header .menu-toggle{max-width:60%;padding:8px}
 .site-header .nav{max-height:calc(100dvh - var(--sk-header-height) - 12px)}
 .hero{min-height:100svh;padding-top:calc(var(--sk-header-height) + 36px)}
 .hero-copy{position:relative!important;inset:auto!important;margin:0;padding-top:30px;padding-bottom:100px}
 .contact-form,.service-contact form,.form-step{grid-template-columns:minmax(0,1fr)!important}
 .form-actions,.form-top,.direct-contact,.viewer-bar{gap:12px;flex-wrap:wrap}
 .form-top>*,.form-actions>*{min-width:0}
 .article-page,.service-main,.villa-main,.projects-page,.about-page{padding-top:calc(var(--sk-header-height) + 32px)}
 footer,.footnote{overflow-wrap:anywhere}
}
@media(max-width:360px){.site-header .brand span{font-size:10px}.site-header .brand b{font-size:30px}.header-direct a{font-size:15px}.sk-gallery-controls button{padding:8px}.hero h1{font-size:2.25rem}}
@media(max-height:500px){.site-header{position:relative!important}html{scroll-padding-top:16px}a,input,select,textarea,button,[tabindex]{scroll-margin-top:16px}body .projects-page,body .villa-main,body .service-main,body .article-page,body .about-page{padding-top:32px!important}.hero{padding-top:0}.hero-copy{padding-top:32px}}
@media(prefers-reduced-motion:reduce){html:focus-within,html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.a11y-still *,.a11y-still *:before,.a11y-still *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(forced-colors:active){html body :focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}[aria-invalid=true],.form-error-summary{border-color:CanvasText!important}button,input,select,textarea{forced-color-adjust:auto}}
