/* Shared accessibility requirements, loaded after page-specific styles. */
:root{--focus:#725020;--gold:#80613d}
html{scroll-padding-top:24px}body{min-width:0;overflow-x:visible}
img,video{max-width:100%}main,section,article,form,fieldset,nav{min-width:0}
button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px!important}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus)!important;outline-offset:4px!important;box-shadow:0 0 0 6px #fff}
:where(a,button,input,select,textarea,summary){scroll-margin:24px}
:where(button,summary,.btn,.pill,.header-cta){min-height:44px}
:where(header nav a,.mobile-nav a,.joy-mobile a,footer a){min-height:44px;display:inline-flex;align-items:center}
:where(p,li,h1,h2,h3,a,label){overflow-wrap:anywhere}
:where(p a,li a){text-decoration:underline;text-underline-offset:3px}
[hidden]{display:none!important}.skip,.skip-link{z-index:10000!important}
main:focus{outline:none}
.header{height:auto;min-height:84px;padding-top:10px;padding-bottom:10px;gap:20px}
.header nav{flex-wrap:wrap;gap:8px 24px}.header nav a{min-height:44px}
.eyebrow,.section-kicker{color:#80613d}.statement h2 span{color:#62685e}
.services .service{overflow:visible;aspect-ratio:auto;min-height:360px;display:flex;align-items:stretch}
.services .service-media{position:relative;inset:auto;width:100%;min-height:360px;display:flex;flex-direction:column;justify-content:space-between}
.services .service-index{position:relative;inset:auto;align-self:flex-start;margin:18px 20px 12px;padding:8px 10px}
.services .service-copy{position:relative;inset:auto;margin-top:auto;padding:60px 24px 24px}
.services .service-copy p{color:#fff}.services .service-copy h3{line-height:1.25}
.hero-bottom{flex-wrap:wrap;gap:8px}.hero-inner{min-width:0}
.work-head{flex-wrap:wrap}.work-head .underlink{white-space:normal}
.interior{background:#faf9f6;color:#202420;font-family:Arial,Helvetica,sans-serif;line-height:1.6}
.interior header{background:#fff;color:#202420;padding:14px 5%;gap:24px;border-bottom:1px solid #deddd6;position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between}
.interior header>a{flex:0 0 auto}.joy-logo{display:block;width:156px!important;max-width:42vw;background:#111;padding:8px}
.interior .desktop-nav{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;align-items:center}
.interior .desktop-nav a{color:#202420;text-decoration:none}.interior .desktop-nav .btn{color:#fff;background:#202420}
.joy-mobile{display:none}.joy-mobile summary{border:1px solid #777;padding:10px 14px;cursor:pointer}
.joy-mobile nav{position:absolute;top:100%;left:0;right:0;background:#fff;color:#202420;border-bottom:1px solid #aaa;padding:16px 6%;display:flex;flex-direction:column;gap:6px;box-shadow:0 12px 18px #0002}
.joy-mobile a{color:inherit;text-decoration:none;padding:8px}
.interior h1{font-size:clamp(2rem,5vw,3.5rem)!important;line-height:1.2;letter-spacing:-.025em}
.interior h2{line-height:1.3;letter-spacing:-.015em}
.interior .hero{display:block;min-height:0;background:#f0efe9;padding:64px 6%}
.interior .cta{background:#80613d;color:#fff}.interior .band{background:#252823}
.interior .wrap{width:100%;min-width:0}.interior footer{flex-wrap:wrap}
.interior .note{color:#595959}form input,form select,form textarea{border-color:#767b72!important;color:#202420;background:#fff}
form input[type=checkbox]{accent-color:#725020;width:22px;height:22px;flex-shrink:0}
.service-choices label{min-height:44px;padding:6px 0}.help-toggle{min-height:44px;color:#725020}
form :where(label,fieldset){min-width:0}form small{font-weight:400}
#form-status{color:#30382c}#preview-notice{border-left:3px solid #80613d;padding:12px 16px;background:#efeee8}
@media(max-width:1000px){.interior .desktop-nav{display:none}.joy-mobile{display:block}}
@media(max-width:650px){
.header{min-height:74px}.mobile-nav:not([hidden]){top:100%;position:absolute}
.services .service,.services .service-media{min-height:330px}
.services .service-copy{padding:60px 20px 22px}
.interior .columns,.interior .links{grid-template-columns:minmax(0,1fr)}
.interior .gallery,.interior .gallery-grid{grid-template-columns:minmax(0,1fr)!important}
.interior h1{font-size:2.25rem!important}.interior .hero{padding:48px 6%}
form{grid-template-columns:minmax(0,1fr)!important}fieldset{margin:0}
.hero-inner{padding-left:6vw;padding-right:6vw}.pill{max-width:100%;gap:14px}
.work-grid{grid-template-columns:minmax(0,1fr)}.work-grid img,.work-grid img:first-child{grid-column:auto;height:auto;max-height:380px;object-fit:contain}
footer{gap:20px}.fine{color:#595959}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){button,.btn,.pill,.header-cta,input,select,textarea{border:1px solid ButtonText}.services .service-copy{background:Canvas;color:CanvasText}.services .service-copy p{color:CanvasText}}

.business-contact{padding:28px;background:#f0efe9;border:1px solid #deddd6;margin:28px 0}.business-contact address{font-style:normal;line-height:1.7}.business-contact p a{text-decoration:underline}.business-details{font-style:normal;font-size:14px;line-height:1.8;grid-column:1/-1;width:100%;padding-top:20px;border-top:1px solid #deddd6;overflow-wrap:anywhere}.business-details a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;letter-spacing:normal;font-size:14px}.business-contact .btn{margin-top:8px}

/* Shared minimalist footer */
footer.joy-footer{display:block;background:#f4f3ee;color:#343832;padding:56px max(24px,5vw) 20px;border-top:1px solid #dddcd5;font-family:Arial,Helvetica,sans-serif;text-align:left}
.joy-footer-top{display:grid;grid-template-columns:1.2fr 1.25fr 1.15fr .7fr;gap:36px;max-width:1320px;margin:auto}
.joy-footer-top>div,.joy-footer-top>nav{min-width:0}
.joy-footer .joy-footer-brand img{display:block;width:156px;height:auto;background:#111;padding:8px}
.joy-footer p{font-size:14px;line-height:1.7;letter-spacing:0;color:#62665f;margin:20px 0 0}
.joy-footer h2{font-size:12px!important;font-weight:600;letter-spacing:.09em;line-height:1.5;text-transform:uppercase;color:#755b3b;margin:0 0 18px}
.joy-footer address{font-style:normal;font-size:14px;line-height:1.8;margin-bottom:8px}
.joy-footer a{font-size:14px;letter-spacing:0;line-height:1.6;min-height:36px;display:flex;align-items:center;text-decoration:none;overflow-wrap:anywhere}
.joy-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.joy-footer nav{display:block!important}.joy-footer nav a{gap:8px}
.joy-footer dl,.contact-hours{margin:0;font-size:14px;line-height:1.7}
.joy-footer dl>div{margin-bottom:14px}.joy-footer dt{color:#62665f}.joy-footer dd{margin:2px 0 0;color:#202420;white-space:normal}
.joy-footer-bottom{max-width:1320px;margin:38px auto 0;padding-top:18px;border-top:1px solid #dcdcd4;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:#62665f;line-height:1.6}
.contact-hours>div{display:flex;flex-wrap:wrap;gap:6px 24px;margin-bottom:8px}.contact-hours dd{margin:0}
@media(max-width:1000px){.joy-footer-top{grid-template-columns:1fr 1fr;gap:36px 40px}}
@media(max-width:540px){footer.joy-footer{padding:40px 6vw 20px}.joy-footer-top{grid-template-columns:minmax(0,1fr);gap:28px}.joy-footer h2{margin-bottom:10px}.joy-footer a{min-height:44px}.joy-footer-bottom{margin-top:28px;display:grid;gap:8px}}

/* Approved logo: black lettering, Honey Gold border, transparent background. */
.header .wordmark{background:transparent;padding:0}.header .wordmark img{object-fit:contain}
.joy-logo,.joy-footer .joy-footer-brand img{background:transparent!important;padding:0!important}
