/* v1.2 — only the requested presentation and accessibility changes. */
.site-footer{padding-top:0}
.site-footer:before{position:relative;display:block;top:auto;left:auto;right:auto;width:100%;height:max(85px,18vw);background-size:100% auto;background-position:center 69%;margin-bottom:12px}
.theme-switch{position:relative;display:flex;align-items:center;justify-content:space-around;flex:0 0 88px;width:88px;height:44px;padding:4px;border:1px solid var(--line);border-radius:28px;background:#edf3f8;color:#164b7c;cursor:pointer}
.theme-switch>span{display:grid;place-items:center;width:36px;height:36px;z-index:1}
.theme-switch svg{width:23px;height:23px}
.theme-switch>.switch-thumb{position:absolute;left:4px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #164b7c25;z-index:0;transition:transform .2s}
.theme-switch[aria-checked=true]{background:#071723;color:#e5f1f9;border-color:#52738b}
.theme-switch[aria-checked=true]>.switch-thumb{transform:translateX(42px);background:#35576f}
.header-inner{gap:22px}
.header-inner nav{flex:1}
.menu-toggle{background:var(--white);color:var(--ink)}
.flyer-icon{object-fit:contain;flex-shrink:0}
.course-top .flyer-icon{width:100px;height:auto}
.course-card .check-list li:before{content:'';width:10px;height:10px;border-radius:50%;background:var(--pink-dark);top:18px}
.audience{grid-template-columns:80px 1.05fr 1fr 1fr;gap:24px}
.pricing-intro>.flyer-icon{margin-bottom:16px}
.workshop-bottom:before{display:none}
.workshop-bottom>.flyer-icon{width:80px;height:70px}
.fusion-label{display:flex;gap:12px;align-items:center}
.fusion-label img{object-fit:contain;flex:0 0 38px;background:#fff;border-radius:7px;padding:3px}
.creation-grid{gap:24px;border-top:0}
.creation-grid article,.creation-grid article:first-child,.creation-grid article:last-child{border:1px solid #ffffff35;padding:18px;border-radius:16px;background:#ffffff08}
.creation-illustration{width:100%;height:auto;aspect-ratio:18/11;margin-bottom:25px;border-radius:10px}
.creation-grid h3{margin-top:20px}
.map-shell{position:relative}
.tilida-map{height:360px;width:100%;background:#e5f1f9;z-index:0;font-family:Nunito,Arial,sans-serif}
.tilida-map .leaflet-tile-pane{filter:saturate(.45)}
.tilida-map .leaflet-control-zoom a{color:#164b7c;background:#fff;width:36px;height:36px;line-height:36px}
.tilida-map .leaflet-control-zoom{border:1px solid #7eabc8;overflow:hidden;border-radius:10px}
.tilida-map .leaflet-control-attribution{color:#123a59;background:#fff;font-size:11px;max-width:100%;white-space:normal}
.tilida-marker span{display:grid;place-items:center;width:40px;height:40px;border-radius:50% 50% 50% 5%;transform:rotate(-45deg);background:#164b7c;color:#fff;border:3px solid #ef8eb6;font-family:Nunito,sans-serif;font-weight:900;box-shadow:0 3px 8px #0004}
.tilida-marker span{font-size:0}
.tilida-marker span:after{content:'T';font-size:18px;transform:rotate(45deg)}
.map-load-status{position:absolute;z-index:2;bottom:35px;left:12px;right:12px;background:var(--white);color:var(--text);border:1px solid var(--line);padding:10px 14px;border-radius:8px;font-size:.85rem}
.map-load-status a{font-weight:900}
:root[data-theme=dark] .tilida-map{background:#102d43}
:root[data-theme=dark] .tilida-map .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) saturate(.5) brightness(.8)}
.reading-trigger{position:fixed;right:14px;bottom:18px;z-index:30;display:grid;place-items:center;width:48px;height:48px;padding:10px;border:2px solid #fff;border-radius:12px;background:#164b7c;color:#fff;box-shadow:0 3px 12px #0003}
.reading-trigger svg,.reading-close svg{width:26px;height:26px}
.reading-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(440px,100%);max-width:100%;height:100dvh;max-height:100dvh;padding:28px;border:0;border-left:1px solid var(--line);background:var(--white);color:var(--text);overflow-y:auto;box-shadow:-8px 0 40px #0003}
.reading-panel[open]{animation:drawer-in .2s ease-out}
.reading-panel::backdrop{background:#06152388}
.reading-heading{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:20px}
.reading-heading h2{font-family:Nunito,sans-serif;font-size:1.45rem;font-weight:900;line-height:1.25}
.reading-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink)}
.reading-panel>p{font-size:1rem}
.reading-options{margin:24px 0}
.reading-options label{display:flex;align-items:start;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}
.reading-options input{width:22px;height:22px;flex:0 0 22px;margin:2px 0;accent-color:#164b7c}
.reading-options strong{font-size:1rem;line-height:1.4;display:block}
.reading-options small{display:block;margin-top:5px;font-size:.9rem;line-height:1.5;color:var(--muted)}
.reading-status{margin-top:16px;min-height:1.5em}
.reading-open{overflow:hidden}
@keyframes drawer-in{from{transform:translateX(100%)}to{transform:translateX(0)}}

/* Reading preferences compose with either colour theme. No image recolouring. */
:root{font-size:var(--reading-font-size,100%)}
:root[data-large=true] body{font-size:1.0625rem}

:root[data-large=true] :is(.hero-grid,.form-layout){grid-template-columns:1fr 1fr}
:root[data-large=true] .header-inner{flex-wrap:wrap}
:root[data-large=true] h1{overflow-wrap:anywhere}
:root[data-spacing=true] :is(p,li,label,address){line-height:1.95;letter-spacing:.04em;word-spacing:.08em}
:root[data-spacing=true] :is(h1,h2,h3,h4){line-height:1.2;letter-spacing:.03em}
:root[data-motion=true]{scroll-behavior:auto}
:root[data-motion=true] *, :root[data-motion=true] *:before,:root[data-motion=true] *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
:root[data-colors=true]{--pink:#e5a650;--pink-dark:#8b4900;--pink-pale:#fff1dc}
:root[data-colors=true][data-theme=dark]{--pink:#ffc46d;--pink-dark:#ffc46d;--pink-pale:#30271b}
:root[data-colors=true] :is(.course-pink,.path-pink,.atelier-hero){background:var(--pink-pale);border-color:var(--pink-dark)}
:root[data-colors=true] .creations h2 span{color:#ffd18b}
:root[data-colors=true] .hero h1 span{background:none;text-decoration:underline;text-decoration-color:var(--pink-dark);text-underline-offset:.12em}
:root[data-colors=true] nav [aria-current=page]{text-decoration-thickness:3px}
:root[data-contrast=true]{--ink:#062b48;--steel:#164b7c;--text:#102333;--muted:#263e50;--line:#1b435e}
:root[data-contrast=true][data-theme=dark]{--ink:#fff;--steel:#dceefa;--text:#fff;--muted:#e7f2fa;--line:#b0cce0;--white:#06131e}
:root[data-contrast=true] :is(.hero,.page-hero,.contact-page,.location,.path-card,.course-card,.price-card,.workshop-bottom,.contact-form,.social-links>a,.site-header){background:var(--white);border-color:var(--line);box-shadow:none}
:root[data-contrast=true] .button{background:#062b48;border-color:var(--ink);color:#fff}
:root[data-contrast=true][data-theme=dark] .button{background:#e5f1f9;color:#062b48}
:root[data-contrast=true] .button-outline{background:var(--white);color:var(--ink)}
:root[data-contrast=true] .creations{background:#062b48;color:#fff}
:root[data-contrast=true] .creations :is(h2,h3,p,a){color:#fff}
:root[data-contrast=true] .creations h2 span{color:#ffd18b}
:root[data-contrast=true] .course-card .tag{border-color:var(--ink)}
:root[data-contrast=true] .hero h1 span{background:none}
:root[data-contrast=true] a:focus-visible,:root[data-contrast=true] button:focus-visible,:root[data-contrast=true] input:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
@media(max-width:1150px){.header-inner{gap:14px}.theme-switch{margin-left:auto}.header-inner nav{gap:12px}}
@media(max-width:1000px){.header-inner{display:grid;grid-template-columns:1fr auto auto;gap:12px}.header-inner>.brand{min-width:0;margin:0}.header-inner nav{grid-column:1/-1;display:none}.header-inner nav.is-open{display:flex}.theme-switch{margin:0}.menu-toggle{margin:0}.audience{grid-template-columns:80px 1fr}.audience p:last-child{grid-column:2}.creation-grid{gap:14px}.creation-grid article{padding:14px}}
@media(max-width:700px){.header-inner{column-gap:8px}.theme-switch{width:76px;flex-basis:76px;height:42px;padding:3px}.theme-switch>span{width:32px;height:32px}.theme-switch>.switch-thumb{top:4px;left:4px}.theme-switch[aria-checked=true]>.switch-thumb{transform:translateX(34px)}.header-inner>.brand img{width:116px}.header-inner>.brand span{font-size:.6rem;max-width:130px}.menu-toggle{padding:8px;font-size:.8rem;gap:6px}.course-top .flyer-icon{width:78px}.course-top{gap:12px}.course-card .tag{font-size:.8rem}.workshop-bottom{display:flex;align-items:center}.workshop-bottom>.flyer-icon{width:58px;height:52px}.audience{gap:14px;grid-template-columns:64px 1fr}.audience .flyer-icon{width:64px}.audience p:not(.handwritten){grid-column:2}.creation-grid{gap:24px}.creation-grid article,.creation-grid article:first-child,.creation-grid article:last-child{padding:18px}.tilida-map{height:320px}.reading-panel{padding:22px}.reading-trigger{right:10px;bottom:12px}:root[data-large=true] :is(.hero-grid,.form-layout){grid-template-columns:1fr}:root[data-large=true] .header-inner{grid-template-columns:1fr auto}:root[data-large=true] .menu-toggle{grid-column:1/-1;justify-self:end}:root[data-large=true] body{font-size:1rem}.creation-illustration{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.reading-panel[open]{animation:none}}

/* Text size preserves each typeface and its original proportions. */
.reading-size{padding:18px 0;border-bottom:1px solid var(--line)}
.reading-size-controls{display:flex;align-items:center;gap:12px;margin-top:14px}
.reading-size-controls button{flex:0 0 44px;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font:700 1.4rem Nunito,sans-serif;cursor:pointer}
.reading-size-controls button:disabled{opacity:.4;cursor:default}
.reading-size-value{min-width:4.5ch;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.reading-panel{overflow-wrap:anywhere}
.reading-heading h2{min-width:0}
:root[data-large=true] :is(main,footer){overflow-wrap:anywhere}:root[data-large=true] :is(main,footer) *{min-width:0}:root[data-large=true] .button{white-space:normal;max-width:100%}
