/* Shared appearance controls and colour tokens. The default follows the device. */
.theme-control{align-items:center;display:inline-flex;gap:.4rem;white-space:nowrap;color:var(--muted);font-size:.72rem;font-weight:700}
.theme-control select{appearance:auto;background:var(--paper);border:1px solid var(--line);border-radius:6px;color:var(--ink);cursor:pointer;font:600 .78rem var(--sans);min-height:36px;padding:.35rem .3rem;max-width:105px}
.theme-control select:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}
footer .footer-theme{grid-column:1/-1;justify-self:end;color:#e9e0e9}
.menu-toggle span:before,.menu-toggle span:after{transition:top .2s ease,transform .2s ease}
.menu-toggle[aria-expanded="true"] span{background:transparent}
.menu-toggle[aria-expanded="true"] span:before{top:0;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:after{top:0;transform:rotate(-45deg)}
.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;min-width:0}
.contact-details>a{display:block;max-width:100%}
.contact-details strong{display:block;white-space:nowrap}
.contact-details .contact-email{overflow-wrap:anywhere;line-height:1.45}
@media(max-width:480px){.contact-card{padding:1.4rem}.contact-details strong{font-size:clamp(1.35rem,5.3vw,1.7rem)}}

:root[data-theme="dark"]{color-scheme:dark;--plum:#69367e;--plum-deep:#3c1d4c;--gold:#d8b879;--gold-deep:#e2bf7e;--ivory:#1b1720;--paper:#28212d;--ink:#f3edf3;--muted:#c9bdca;--line:#514454;--lav:#312638;--green:#9ec5b5}
:root[data-theme="dark"] .header{background:rgba(31,24,35,.96)}
:root[data-theme="dark"] .brand strong,:root[data-theme="dark"] h1,:root[data-theme="dark"] .section-heading h2,:root[data-theme="dark"] .menu-toggle{color:#eedaf3}
:root[data-theme="dark"] .page-hero{background:linear-gradient(135deg,#31243a,#211b28 60%,#302719)}
:root[data-theme="dark"] .page-hero h1 em,:root[data-theme="dark"] .about-layout h2 em,:root[data-theme="dark"] .service-page-card a,:root[data-theme="dark"] .text-link,:root[data-theme="dark"] .text-button,:root[data-theme="dark"] .contact-email{color:#e7c6ed}
:root[data-theme="dark"] .service-card h3,:root[data-theme="dark"] .price-card:not(.featured) h3,:root[data-theme="dark"] .price-card:not(.featured) .price,:root[data-theme="dark"] .about-shape p,:root[data-theme="dark"] .testimonial blockquote,:root[data-theme="dark"] .faq summary{color:#eedaf3}
:root[data-theme="dark"] .service-card a,:root[data-theme="dark"] .price-card:not(.featured) a{color:#e7c6ed}
:root[data-theme="dark"] .hero-sun{background:#443527}
:root[data-theme="dark"] .pricing{background:#241b2a}
:root[data-theme="dark"] .about-shape{background:#39283f}
:root[data-theme="dark"] .about-shape:before{border-color:#a884b033}
:root[data-theme="dark"] .notice{background:#3e3424;color:#f0dcb1}
:root[data-theme="dark"] .individual-prices div,:root[data-theme="dark"] .map-shell{background:#302932}
:root[data-theme="dark"] .gallery-page figcaption{background:rgba(40,33,45,.94);color:var(--ink)}
:root[data-theme="dark"] .article p,:root[data-theme="dark"] .article li{color:var(--muted)}
:root[data-theme="dark"] .cookie-banner,:root[data-theme="dark"] .cookie-dialog{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] .cookie-secondary{background:var(--paper);border-color:#b98ed0;color:#eedaf3}
:root[data-theme="dark"] .cookie-close{color:#eedaf3}
:root[data-theme="dark"] .price-controls select{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
:root[data-theme="dark"] .estimator-choice.is-selected{background:var(--paper);border-color:var(--gold);color:var(--ink)}
:root[data-theme="dark"] .estimator-result-card{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] .price-card.featured,:root[data-theme="dark"] .price-table article.featured,:root[data-theme="dark"] .experience{background:#482657}
:root[data-theme="dark"] .ivory{background:#eadfc9;color:#35213b}
:root[data-theme="dark"] .ivory:hover{background:#fff1d7}
:root[data-theme="dark"] .final-cta{background:#26142f}
:root[data-theme="dark"] .theme-control select{background:#362b3c}
@media(max-width:900px){footer .footer-theme{justify-self:start}.theme-control select{max-width:none;min-width:120px}}
@media(max-width:680px){.experience-details{grid-template-columns:1fr;gap:0;max-width:none}.experience-details div{display:grid;grid-template-columns:2.5rem minmax(0,1fr);align-items:center;gap:1rem;border-left:0;border-top:1px solid rgba(255,255,255,.28);padding:.9rem .2rem}.experience-details div:first-child{border-top:0}.experience-details strong{font-size:2.5rem;line-height:1}.experience-details p{font-size:.82rem;line-height:1.45;letter-spacing:.02em}}

.location-section{border-top:1px solid var(--line);padding-top:4.5rem}
.location-section .section-heading h2{margin-bottom:1rem}
.location-lede{color:var(--muted);line-height:1.7;max-width:620px;margin-bottom:2rem}
.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.location-grid figure{background:var(--paper);border:1px solid var(--line);margin:0;overflow:hidden}
.location-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.location-grid .location-wide{grid-column:1/-1}
.location-grid .location-wide img{aspect-ratio:16/8}
.location-grid figcaption{color:var(--muted);font-size:.82rem;padding:.8rem 1rem}
.location-section>.text-link{margin-top:1.6rem}
@media(max-width:680px){.location-grid{grid-template-columns:1fr}.location-grid .location-wide{grid-column:auto}.location-grid .location-wide img{aspect-ratio:16/10}}
