/* Premium Photo: functional accessibility controls. Not a compliance certification. */
.access-widget{position:fixed;bottom:22px;left:22px;z-index:105;direction:rtl;font-family:Heebo,Assistant,Arial,sans-serif;color:#202c21;font-size:15px}
.access-widget *{box-sizing:border-box}
.access-fab{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:1px;width:70px;height:70px;border:2px solid #fff;border-radius:18px;background:#344938;color:#fff;box-shadow:0 6px 25px #1116;font-size:12px;font-weight:700;cursor:pointer;line-height:1.25}
.access-fab:hover,.access-fab[aria-expanded=true]{background:#243b29}
.access-fab:focus-visible,.access-panel button:focus-visible,.access-panel a:focus-visible{outline:3px solid #267256!important;outline-offset:3px!important;box-shadow:0 0 0 2px white,0 0 0 6px #267256!important}
.access-panel[hidden]{display:none!important}
.access-panel{position:absolute;bottom:80px;left:0;width:min(340px,calc(100vw - 28px));max-height:min(650px,calc(100dvh - 125px));overflow-y:auto;overscroll-behavior:contain;background:#fffefa;color:#1b291e;border:1px solid #899486;border-radius:16px;padding:20px;box-shadow:0 16px 60px #18231955;line-height:1.55}
.access-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.access-panel-head h2{font-size:21px;font-weight:650;line-height:1.4;margin:0}
.access-panel-head>button{width:44px;min-width:44px;height:44px;background:#f0f1ec;border:1px solid #929e91;border-radius:9px;color:#172a19;font-size:28px;line-height:1}
.access-panel-intro{color:#3c4e3d;font-size:14px;margin:6px 0 18px}
.access-font-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px;font-weight:600;margin:0 0 16px}
.access-font-buttons{display:flex;align-items:center;gap:4px}
.access-font-buttons button{height:45px;min-width:45px;border:1px solid #839583;border-radius:7px;background:white;color:#182719;font-size:18px;font-weight:700}
.access-font-buttons button:disabled{color:#747f75;background:#e5e8e3;cursor:not-allowed}
.access-font-buttons output{min-width:46px;text-align:center;font-size:13px;color:#263828}
.access-options-list{display:flex;flex-direction:column;gap:9px}
.access-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:9px 12px;border:1px solid #b2bcb0;border-radius:9px;background:#f5f7f3;color:#192d1c;text-align:right;font-size:15px;font-weight:500;cursor:pointer}
.access-option:hover{background:#eef2ea}
.access-switch{position:relative;display:block;width:43px;height:25px;flex:none;border-radius:100px;background:#aab5a8;border:1px solid #647463;transition:background .15s}
.access-switch::before{content:'';position:absolute;top:3px;right:3px;width:17px;height:17px;background:white;border-radius:50%;transition:transform .15s}
.access-option[aria-pressed=true] .access-switch{background:#2c6039}
.access-option[aria-pressed=true] .access-switch::before{transform:translateX(-17px)}
.access-panel-footer{border-top:1px solid #d8ded6;margin-top:18px;padding-top:12px;display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.access-panel-footer button{background:white;border:1px solid #a3ada2;border-radius:8px;padding:9px 10px;color:#1c3020;min-height:44px;font-weight:600}
.access-panel-footer a{display:inline-block;text-decoration:underline;text-underline-offset:4px;font-size:12px;font-weight:600;color:#1c3020;padding:7px 0}
/* Larger reading text for site copy, menus and controls. Headings remain responsive. */
body[data-a11y-text="1"] :is(p,li,summary,label,.service-card p,.section-head p,.portfolio-note,.footer-links a,.desktop-nav a,.form-hint,.btn,.choice,.text-link,.process-item p){font-size:max(17px,1.05rem)!important;line-height:1.9!important}
body[data-a11y-text="2"] :is(p,li,summary,label,.service-card p,.section-head p,.portfolio-note,.footer-links a,.desktop-nav a,.form-hint,.btn,.choice,.text-link,.process-item p){font-size:max(20px,1.2rem)!important;line-height:1.95!important}
body[data-a11y-text="1"] :is(h1,h2,h3){letter-spacing:normal;line-height:1.4}
body[data-a11y-text="2"] :is(h1,h2,h3){letter-spacing:normal;line-height:1.45}
/* Preserve compact UI inside widget even when site text is enlarged */
body[data-a11y-text] .access-panel p{font-size:14px!important;line-height:1.6!important}
body[data-a11y-text] .access-panel h2{font-size:21px!important}
body[data-a11y-text] .access-panel button,body[data-a11y-text] .access-panel a{font-size:15px!important}
body.a11y-links a:not(.brand):not(.btn):not(.header-cta):not(.access-fab){text-decoration:underline!important;text-underline-offset:4px!important}
body.a11y-motion *,body.a11y-motion *::before,body.a11y-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.a11y-motion{scroll-behavior:auto!important}
body.a11y-contrast{--paper:#fff;--cream:#fff;--line:#111;--ink:#000;--muted:#101010;--moss:#000;--moss-dark:#000;background:white!important;color:#000!important}
body.a11y-contrast :is(.topline,.hero,.services-section,.portfolio-section,.packages-section,.process-section,.identity-section,.instagram-section,.faq-section,.inquiry-section,.footer,.intro-line,.inquiry-form,.service-card,.package-card,.site-header,.mobile-sticky,.review,.access-main,.access-note){background:#fff!important;color:#000!important;border-color:#000!important}
body.a11y-contrast :is(p,h1,h2,h3,summary,label,.eyebrow,.brand-mark,.brand-sub,.identity-copy p,.portfolio-note,.form-hint,.footer-meta,.inquiry-contact a,.footer a,.footer p,.footer h3){color:#000!important}
body.a11y-contrast :is(.btn-dark,.header-cta,.filter-btn.is-active,.choice.selected){background:#000!important;color:#fff!important;border-color:#000!important}
body.a11y-contrast :is(.portfolio-caption){background:#000!important;color:#fff!important}
body.a11y-contrast :is(.portfolio-caption span){color:#fff!important}
body.a11y-contrast .access-fab{background:#000!important;color:#fff!important;border-color:#fff!important}
body.a11y-contrast .access-panel{background:#fff!important;color:#000!important;border:2px solid #000!important}
body.a11y-contrast .access-panel :is(button,a,p,span,output,h2){color:#000!important}
body.a11y-contrast .access-panel .access-switch::before{background:white!important}
body.a11y-contrast .access-panel .access-option[aria-pressed=true] .access-switch{background:#000!important}
body.a11y-contrast .access-panel .access-option{background:#fff!important;border:2px solid #000!important}
@media(max-width:800px){
 .access-widget{left:14px;bottom:calc(93px + env(safe-area-inset-bottom))}
 .access-fab{width:60px;height:60px;border-radius:16px}
 .access-panel{bottom:70px;max-height:calc(100dvh - 210px)}
}
@media(max-width:360px){.access-panel{padding:14px}.access-panel-head h2{font-size:19px}.access-widget{left:9px}}
@media(prefers-reduced-motion:reduce){.access-widget *{transition:none!important}}
