.main-nav { gap:clamp(.7rem,1.4vw,1.6rem); }
.main-nav .nav-consultation { border:1px solid var(--line); padding:.65rem .85rem; white-space:nowrap; }
.main-nav .nav-consultation:hover { border-color:var(--lime); }
.main-nav .nav-consultation:focus-visible { outline:2px solid var(--lime); outline-offset:4px; }
@media(min-width:861px) and (max-width:1150px){ .site-header { padding-inline:1.25rem; } .main-nav { font-size:.8rem; gap:.7rem; } .main-nav .nav-consultation { padding:.5rem .6rem; } }
@media(max-width:860px){ .main-nav .nav-consultation { white-space:normal; } }

/* Full-bleed backgrounds with centred, bounded content on ultrawide screens. */
:root { --content-width:1200px; --page-gutter:clamp(24px,5vw,72px); }
main > section:not(.hero) { padding-inline:max(var(--page-gutter),calc((100% - var(--content-width))/2)); }
main > .hero { padding-inline:max(var(--page-gutter),calc((100% - 1440px)/2)); column-gap:clamp(24px,4vw,64px); }
.site-header { padding-inline:max(var(--page-gutter),calc((100% - 1440px)/2)); }
footer { padding-inline:max(var(--page-gutter),calc((100% - var(--content-width))/2)); }
.split-heading { gap:clamp(24px,5vw,72px); }
.service-detail { gap:clamp(24px,5vw,72px); }
.process article { padding:clamp(32px,4vw,60px); min-width:0; }
.page-hero h1,.contact-page h1 { font-size:clamp(48px,5.8vw,88px); }
.legal { width:100%; max-width:none; }
.legal h1,.legal h2,.legal p,.legal ul { max-width:900px; }
.pricing-cards > *, .split-heading > *, .service-detail > * { min-width:0; }
@media(max-width:1000px){
 .site-header { display:flex; justify-content:space-between; }
 .header-actions { margin-left:auto; }
 .menu-toggle { display:block; }
 .main-nav { display:none; position:absolute; top:100%; left:0; right:0; padding:24px var(--page-gutter); background:var(--ink); border-bottom:1px solid var(--line); flex-direction:column; }
 .main-nav.is-open { display:flex; }
}
@media(max-width:760px){ .page-hero h1,.contact-page h1 { font-size:clamp(42px,11vw,72px); } .hero { padding-inline:var(--page-gutter); } }
.library-nav { position:relative; align-self:center; }
.library-nav summary { cursor:pointer; padding:10px 0; font-size:13px; list-style:none; }
.library-nav summary::-webkit-details-marker { display:none; }
.library-nav summary::marker { content:''; }
.mobile-consultation-bar { display:none; }
@media(max-width:1000px){ .hero-actions > a.button-primary[href="/contact"] { display:none; } }
@media(max-width:1000px){
 body { padding-bottom:calc(80px + env(safe-area-inset-bottom,0px)); }
 .main-nav .nav-consultation { display:none; }
 .mobile-consultation-bar { display:flex; position:fixed; inset:auto 0 0; z-index:45; justify-content:center; padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px)); background:var(--ink); border-top:1px solid var(--line); }
 .mobile-consultation-bar a { display:flex; align-items:center; justify-content:center; width:100%; max-width:520px; min-height:48px; padding:12px 16px; background:var(--accent); color:var(--ink); text-decoration:none; font-weight:600; }
 .mobile-consultation-bar a:focus-visible { outline:2px solid var(--paper); outline-offset:3px; }
}
.library-menu { position:absolute; top:100%; left:0; min-width:190px; display:grid; padding:12px 16px; background:var(--ink); border:1px solid var(--line); z-index:30; box-shadow:0 12px 24px #0002; }
.library-menu a { white-space:nowrap; }
.library-nav summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
#resource-library .palette-card { border:1px solid var(--line); background:var(--ink); }
#resource-library .palette-open { display:block; width:100%; padding:0; border:0; text-align:left; }
#resource-library .palette-theme-toggle { display:block; width:calc(100% - 32px); margin:0 16px 16px; min-height:44px; border-radius:24px; }
#resource-library .palette-theme-toggle[aria-checked=true] { border-color:var(--accent); }
@media(max-width:1000px){ .library-nav { align-self:stretch; } .library-menu { position:static; box-shadow:none; margin-top:6px; } }
#resource-library .palette-shuffle { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; font-size:13px; padding:12px 16px; white-space:nowrap; }
#resource-library > .controls { display:grid; grid-template-columns:minmax(180px,1.3fr) minmax(140px,1fr) minmax(140px,1fr) auto minmax(290px,1.5fr); gap:16px; width:100%; margin:16px 0 24px; padding:0; min-height:0; }
#resource-library > .controls > label { min-width:0; }
#resource-library > .controls input,#resource-library > .controls select { width:100%; min-width:0; min-height:48px; }
#resource-library .palette-sort-group { display:flex; align-items:end; gap:12px; min-width:0; }
#resource-library .palette-sort-group label { flex:1; min-width:0; }
@media(max-width:1200px){#resource-library > .controls { grid-template-columns:repeat(3,minmax(0,1fr)); }#resource-library .palette-sort-group { grid-column:span 2; }}
@media(max-width:700px){#resource-library > .controls { grid-template-columns:repeat(2,minmax(0,1fr)); }#resource-library > .controls > label:first-child { grid-column:1/-1; }#resource-library .palette-sort-group { grid-column:1/-1; }}
@media(max-width:380px){#resource-library > .controls { grid-template-columns:minmax(0,1fr); }#resource-library .palette-sort-group { flex-wrap:wrap; }#resource-library .palette-sort-group label { flex-basis:100%; }}

/* Per-card preview theme control: independent of site theme. */
#resource-library .palette-card{position:relative}
#resource-library .palette-theme-toggle{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:44px;height:44px;min-height:44px;margin:0;padding:0;border-radius:50%;background:#f8faf7;color:#17201a;border:1px solid #52634b;box-shadow:0 2px 8px #0002}
#resource-library .palette-theme-toggle[aria-checked=true]{background:#17201a;color:#f8faf7;border-color:#aabb9f}
#resource-library .palette-theme-toggle:hover{box-shadow:0 2px 10px #0004}
#resource-library .mini-site .mini-nav{padding-right:48px}

/* Legal pages share the selected theme and responsive reading column. */
main > .legal{width:min(100%,1050px);padding:80px 6vw 100px;margin-inline:auto;min-height:65vh;}main > .legal p{max-width:72ch;}@media(max-width:760px){main > .legal{padding:55px 6vw 70px;}}

/* Site controls follow the selected theme; dark lime remains unchanged. */
.button-primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}
html[data-theme=light] .booking-picker{--ea-action:var(--accent)}
html[data-theme=light] .main-nav .nav-consultation:hover{border-color:var(--accent)}
html[data-theme=light] .main-nav .nav-consultation:focus-visible{outline-color:var(--accent)}
.library-nav>.library-link{display:block;padding:10px 0;font-size:13px}
.library-nav>.library-menu{display:none}
.library-nav:not(.is-dismissed):hover>.library-menu,.library-nav:not(.is-dismissed):focus-within>.library-menu{display:grid}
.library-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.library-card{display:flex;flex-direction:column;gap:20px;padding:30px;border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 5%,var(--ink));min-width:0}
.library-card h2{font-size:clamp(28px,3vw,40px)}.library-card p{color:var(--muted);margin:0}.library-card .text-link{align-self:start;margin-top:auto}
@media(max-width:760px){.library-cards{grid-template-columns:1fr}.library-card{padding:24px}}

/* Both inline icons exist in HTML: the early theme attribute chooses the action. */
.theme-toggle{display:grid;place-items:center;padding:0}
.theme-toggle .theme-action{display:none;align-items:center;justify-content:center}
html[data-theme=light] .theme-toggle .theme-action-dark,html:not([data-theme=light]) .theme-toggle .theme-action-light{display:inline-flex}
.theme-control-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Bounded, code-native library previews: motion only on hover or keyboard focus. */
.library-card{position:relative;overflow:hidden;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}
.library-card:hover,.library-card:focus-visible{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 16px 28px #0001}
.library-preview{height:145px;display:flex;align-items:center;justify-content:center;padding:20px;border-bottom:1px solid var(--line);margin:-10px -10px 2px;perspective:600px}
.palette-preview{gap:0}
.palette-preview>span{width:40px;height:85px;border:1px solid var(--line);border-radius:5px;transform:rotate(-8deg);transition:transform .3s ease;box-shadow:0 5px 10px #0001}
.palette-preview>span:nth-child(1){background:var(--paper)}.palette-preview>span:nth-child(2){background:color-mix(in srgb,var(--paper) 70%,var(--ink))}.palette-preview>span:nth-child(3){background:var(--accent)}.palette-preview>span:nth-child(4){background:color-mix(in srgb,var(--accent) 35%,var(--ink))}.palette-preview>span:nth-child(5){background:var(--ink)}
.library-card-palettes:is(:hover,:focus-visible) .palette-preview>span:nth-child(1){transform:translate(-10px,8px) rotate(-15deg)}.library-card-palettes:is(:hover,:focus-visible) .palette-preview>span:nth-child(2){transform:translate(-5px,-4px) rotate(-7deg)}.library-card-palettes:is(:hover,:focus-visible) .palette-preview>span:nth-child(3){transform:translateY(-10px)}.library-card-palettes:is(:hover,:focus-visible) .palette-preview>span:nth-child(4){transform:translate(5px,-4px) rotate(7deg)}.library-card-palettes:is(:hover,:focus-visible) .palette-preview>span:nth-child(5){transform:translate(10px,8px) rotate(15deg)}
.preview-window{position:relative;display:block;width:210px;height:105px;border:1px solid var(--muted);border-radius:5px;transform:rotateY(-9deg) rotateX(7deg);transition:transform .3s ease}
.preview-window>span{position:absolute;display:block;border:1px solid var(--muted);transition:transform .3s ease}
.preview-toolbar{inset:0 0 auto;height:15px;border-top:0!important;border-left:0!important;border-right:0!important}
.preview-heading{top:30px;left:14px;width:88px;height:12px;transform:translate(-4px,-3px)}.preview-copy{top:50px;left:14px;width:88px;height:34px;transform:translate(-7px,4px)}.preview-panel{top:30px;right:14px;width:75px;height:54px;transform:translate(6px,-3px)}
.library-card-templates:is(:hover,:focus-visible) .preview-window{transform:rotateY(0) rotateX(0)}.library-card-templates:is(:hover,:focus-visible) .preview-window>span{transform:none}
.icon-preview{display:grid;grid-template-columns:repeat(4,42px);gap:12px}.icon-preview>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;color:var(--paper);transform:translateY(3px);transition:transform .24s ease,border-color .24s ease,color .24s ease}.icon-preview svg{width:23px;height:23px}.library-card-icons:is(:hover,:focus-visible) .icon-preview>span{transform:translateY(-3px);border-color:var(--accent);color:var(--accent)}.icon-preview>span:nth-child(2){transition-delay:.025s}.icon-preview>span:nth-child(3){transition-delay:.05s}.icon-preview>span:nth-child(4){transition-delay:.075s}
@media(hover:none){.library-card:hover{transform:none;box-shadow:none}.library-card:active{border-color:var(--accent)}}
@media(prefers-reduced-motion:reduce){.library-card,.library-preview *{transition:none!important}.library-card:hover,.library-card:focus-visible,.library-card .library-preview *{transform:none!important}}
