:root{--bg:#0a0a0a;--fg:#ededed;--accent:#c8a97e;--muted:#a6a3a0;--panel:#111;--card:#141414;--line:rgba(237,237,237,.1);--display:"Bebas Neue",sans-serif;--body:"DM Sans",sans-serif}
*{box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{min-height:100%;margin:0;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:20px;line-height:1.5;overflow-x:clip}body.locked{overflow:hidden}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.cover{width:100%;height:100%;object-fit:cover}.container{width:min(100% - 32px,1280px);margin-inline:auto}.main{min-width:0;flex:1}.eyebrow{margin:0;color:var(--accent);font-size:.875rem;text-transform:uppercase;letter-spacing:.3em}.brand,h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:.04em}.brand{font-size:1.7rem;letter-spacing:.2em}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--accent);border-radius:0;background:var(--accent);padding:12px 32px;color:var(--bg);font-size:.875rem;text-transform:uppercase;letter-spacing:.15em;transition:.2s}.button:hover{color:var(--fg);filter:brightness(.92)}.button.outline{border-color:rgba(237,237,237,.3);background:transparent;color:var(--fg)}.button.outline:hover{border-color:var(--accent);color:var(--accent)}.button.full{width:100%}.text-link,.content a,.prose a{color:var(--accent)}.text-link:hover,.content a:hover,.prose a:hover{color:var(--fg)}
.site-header{position:sticky;z-index:50;top:0;transition:.3s}.site-header.scrolled{border-bottom:1px solid var(--line);background:rgba(10,10,10,.92);backdrop-filter:blur(12px)}.header-inner{display:flex;height:80px;align-items:center;gap:24px}.desktop-nav{display:flex;flex:1;justify-content:center;gap:25px}.desktop-nav a,.mobile-links a{color:rgba(237,237,237,.7);font-size:.8rem;text-transform:uppercase;letter-spacing:.15em}.desktop-nav a:hover,.desktop-nav a.active,.mobile-links a.active{color:var(--accent)}.header-actions{margin-left:auto;display:flex;align-items:center}.menu-toggle{display:none;width:44px;height:44px;border:0;background:none;color:var(--fg)}.menu-toggle svg{width:24px;fill:none;stroke:currentColor;stroke-width:1.5}.mobile-menu{position:fixed;z-index:70;inset:0}.menu-backdrop,.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px)}.mobile-panel{position:absolute;right:0;top:0;display:flex;width:min(100%,384px);height:100%;flex-direction:column;border-left:1px solid var(--line);background:var(--panel)}.mobile-title{display:flex;height:80px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 24px;font-family:var(--display);letter-spacing:.25em}.menu-close,.modal-close{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(237,237,237,.2);background:var(--panel);color:var(--fg);font-size:1.4rem}.mobile-links{display:flex;flex:1;flex-direction:column;padding:28px 24px}.mobile-links a{display:flex;min-height:48px;align-items:center}.mobile-booking{border-top:1px solid var(--line);padding:24px}.mobile-booking .button{width:100%}
.home-hero{position:relative;display:flex;min-height:100vh;align-items:center;justify-content:center;overflow:hidden}.home-hero>img,.page-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:rgba(10,10,10,.75)}.hero-overlay.dark{background:rgba(10,10,10,.85)}.home-hero-copy{position:relative;z-index:2;width:min(100% - 32px,960px);text-align:center}.hero-logo{width:min(100%,672px);margin:4px auto}.since{margin:0;color:rgba(237,237,237,.7);font-size:1.6rem}.hero-buttons{display:flex;justify-content:center;gap:16px;margin-top:48px}.news-stamp{position:absolute;z-index:3;top:32px;right:32px;min-height:44px;border:4px solid rgba(255,255,255,.25);border-radius:99px;background:#c20;color:#fff;padding:10px 30px;font-family:var(--display);font-size:1.5rem;letter-spacing:.2em;transform:rotate(-6deg);animation:pulse 2s infinite}.section{padding:96px 0}.section.alt{background:var(--panel)}.section-head{margin-bottom:56px}.section-head h2,.split h2{margin:10px 0 0;font-size:3.25rem}.section-head.row{display:flex;align-items:end;justify-content:space-between}.section-head.center{text-align:center}.service-grid,.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.service-card{overflow:hidden;border:1px solid var(--line);background:var(--bg);transition:.2s}.service-card:hover{border-color:rgba(200,169,126,.4)}.portrait{aspect-ratio:3/4;overflow:hidden}.service-card:hover img,.team-card:hover img,.gallery-card:hover img{transform:scale(1.05)}.service-card img,.team-card img,.gallery-card img{transition:transform .5s}.service-card>div:last-child{padding:24px}.service-card h3{margin:0;font-size:2rem}.service-card p,.news-card p,blockquote p{color:rgba(237,237,237,.65);font-size:1.1rem}.service-card span{color:var(--accent);font-size:.8rem;text-transform:uppercase;letter-spacing:.15em}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}.studio-image{aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line)}.home-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.home-gallery>div{aspect-ratio:1;overflow:hidden;border:1px solid var(--line)}.review-grid blockquote{display:flex;min-height:300px;flex-direction:column;margin:0;border:1px solid var(--line);background:var(--card);padding:32px}.review-grid blockquote>p{flex:1}.review-grid footer{border-top:1px solid var(--line);padding-top:16px}.review-grid cite{display:block;font-style:normal}.review-grid span{color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
.carousel{position:relative}.carousel-window{overflow:hidden;padding:0 64px}.carousel-track{display:flex;align-items:stretch;transition:transform .5s}.news-card{position:relative;flex:0 0 33.333%;padding:0 12px}.news-card>img,.news-card>a{display:block;width:100%;aspect-ratio:2/3;overflow:hidden}.news-card>img,.news-card>a img{width:100%;height:100%;object-fit:cover}.news-card>div{position:absolute;inset:0 12px;display:flex;align-items:end;padding:24px;background:linear-gradient(transparent,rgba(10,10,10,.7));opacity:0;pointer-events:none;transition:opacity .3s}.news-card:hover>div,.news-card:focus-within>div{opacity:1}.news-card p{margin:0;color:#fff}.carousel-arrow{position:absolute;z-index:2;top:40%;display:grid;width:48px;height:48px;place-items:center;border:2px solid var(--accent);background:var(--bg);color:var(--fg);font-size:2rem}.carousel-arrow.prev{left:0}.carousel-arrow.next{right:0}.carousel-arrow:disabled{opacity:.25}.carousel-dots{display:flex;justify-content:center;gap:14px;margin-top:32px}.carousel-dots button{width:11px;height:11px;border:0;border-radius:20px;background:rgba(237,237,237,.4);padding:0}.carousel-dots button.active{width:36px;background:var(--accent)}
.page-hero{position:relative;display:flex;height:600px;align-items:end;overflow:hidden;border-bottom:1px solid var(--line);background:var(--panel)}.page-hero.legal-hero,.page-hero.placeholder-hero{height:500px}.placeholder-hero .hero-copy h1{font-size:6.25rem}.hero-copy{position:relative;z-index:2;padding-bottom:48px}.hero-copy h1{margin:12px 0 0;font-size:6.25rem;line-height:1.05}.content-wrap{padding:80px 0}.placeholder-content{padding:80px 0}.content.narrow{max-width:896px}.content.medium{max-width:1024px}.content.wide{max-width:1280px}.content.legal-width,.legal-width{max-width:768px}.lead{color:rgba(237,237,237,.8);font-size:1.25rem;line-height:1.9}.page-section{margin-top:64px}.page-section h2,.contact-page h2{font-size:2.5rem}.prose{color:rgba(237,237,237,.7);font-size:1.25rem;line-height:1.9}.prose p{margin:0 0 16px}.prose li{margin:.35em 0}.prose strong{color:var(--fg)}.wide-image{height:480px;margin:28px 0;overflow:hidden}.cta-box,.included{margin-top:64px;border:1px solid var(--line);background:var(--card);padding:32px}.cta-box h3{font-size:2rem;margin:0}.content a.button,.cta-box .button{color:#0a0a0a}.content a.button:hover,.cta-box .button:hover{color:#0a0a0a}.price-group{margin-top:32px}.price-list{list-style:none!important;margin:16px 0!important;padding:0!important;border:1px solid var(--line)}.price-list li{display:flex;align-items:center;gap:16px;min-height:60px;border-bottom:1px solid var(--line);padding:12px 16px}.price-list li:last-child{border-bottom:0}.price-name{display:flex;min-width:0;flex:1;align-items:center}.price-image{display:block;flex:0 0 80px;width:80px;height:80px;overflow:hidden;border:1px solid var(--line);background:var(--panel);padding:0;pointer-events:none}.price-image img{width:100%;height:100%;object-fit:cover}.info-tooltip{display:grid;flex:0 0 22px;width:22px;height:22px;margin-left:8px;place-items:center;border:1px solid rgba(237,237,237,.3);border-radius:50%;background:none;color:rgba(237,237,237,.6);font-size:.7rem}.floating-tooltip{position:fixed;z-index:9999;width:208px;border:1px solid rgba(237,237,237,.2);background:var(--card);padding:8px 12px;color:#f0ece4;font-size:.75rem;line-height:1.5;box-shadow:0 5px 20px #000}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;min-height:64px;cursor:pointer;align-items:center;justify-content:space-between;color:var(--fg);list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary b{color:var(--accent);font-size:1.5rem;transition:.2s}.faq-list details[open] summary{color:var(--accent)}.faq-list details[open] summary b{transform:rotate(45deg)}.legal h2{margin:40px 0 16px;font-size:2rem}.legal p,.legal li{color:rgba(237,237,237,.7);font-size:1.15rem;line-height:1.9}.aftercare-row{display:flex;gap:24px;margin-top:32px;align-items:start}.aftercare-row.left{flex-direction:row-reverse}.aftercare-row>div{flex:1}.aftercare-row h3{color:var(--fg);font-size:1.6rem}.aftercare-row figure{width:400px;height:300px;margin:0;border:1px solid var(--line)}
.gallery-filters{position:sticky;z-index:30;top:80px;display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);background:rgba(10,10,10,.95);padding:8px 0 16px}.gallery-filters button{min-height:44px;border:1px solid rgba(237,237,237,.2);background:none;padding:10px 16px;color:rgba(237,237,237,.65);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}.gallery-filters button.active{border-color:var(--accent);background:var(--accent);color:var(--bg)}.gallery-scroll{max-height:min(68dvh,52rem);overflow-y:auto;margin-top:24px;padding-right:4px}.masonry{columns:3;column-gap:16px}.gallery-card{position:relative;break-inside:avoid;margin-bottom:16px;overflow:hidden;border:1px solid var(--line);background:var(--card)}.gallery-card>div{position:absolute;inset:0;display:flex;align-items:end;background:linear-gradient(transparent,rgba(10,10,10,.9));opacity:0;transition:.3s}.gallery-card:hover>div{opacity:1}.gallery-card p{margin:0;padding:16px;color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em}.gallery-empty{text-align:center;color:rgba(237,237,237,.5)}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;align-items:start}.team-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--card);padding:0;color:var(--fg);text-align:left}.team-photo{display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#141414}.team-photo img{width:100%;height:100%;object-fit:cover;object-position:top}.team-photo-empty{display:grid;place-items:center;color:var(--accent);font-family:var(--display);font-size:4rem}.team-card>span{padding:20px}.team-card strong{display:block;font-family:var(--display);font-size:1.6rem;font-weight:400}.team-card small{color:var(--accent);text-transform:uppercase;letter-spacing:.1em}.team-modal-card{position:relative;z-index:2;width:min(100% - 32px,896px);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--line);background:var(--card);padding:32px}.team-profile{display:flex;gap:32px;padding-top:20px}.team-profile>img{width:320px;aspect-ratio:1;object-fit:cover}.team-profile h3{margin:0;font-size:3rem}.team-profile .bio{color:rgba(237,237,237,.7);line-height:1.9}.team-work{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.team-work>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.team-work img{width:100%;aspect-ratio:1;object-fit:cover}
.contact-home address,.contact-page address,.footer-contact address{font-style:normal;color:rgba(237,237,237,.7)}.cash{border-left:2px solid var(--accent);padding-left:16px;color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em}.hours{list-style:none;margin:16px 0;padding:0}.hours li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0;font-size:1rem}.maps-consent{aspect-ratio:16/9;border:1px solid var(--line);background:var(--card)}.maps-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.maps-placeholder p{max-width:500px;color:rgba(237,237,237,.7);font-size:1rem}.maps-placeholder>div{display:flex;gap:12px}.maps-consent iframe{width:100%;height:100%;border:0}.map-note{color:rgba(237,237,237,.5);font-size:.75rem}
.site-footer{border-top:1px solid var(--line);background:var(--panel);padding:64px 0 0}.footer-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:48px}.site-footer p,.site-footer address{font-size:1rem}.footer-nav{display:flex;flex-direction:column}.footer-nav a,.footer-contact a{display:flex;min-height:44px;align-items:center;color:rgba(237,237,237,.6);font-size:.95rem}.socials{display:flex;gap:8px}.socials a{display:grid;width:44px;height:44px;place-items:center}.socials svg{width:20px;fill:rgba(237,237,237,.6)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:48px;padding-top:24px;padding-bottom:24px}.footer-bottom p,.footer-bottom a,.cookie-settings{color:rgba(237,237,237,.4);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.footer-bottom nav{display:flex;align-items:center;gap:24px}.cookie-settings{min-height:44px;border:0;background:none}
.modal{position:fixed;z-index:80;inset:0;display:flex;align-items:center;justify-content:center;padding:24px}.modal[hidden],.mobile-menu[hidden]{display:none}.modal.opening{animation:fade .25s}.modal.closing{animation:fade .22s reverse}.modal-card{position:relative;z-index:2;width:min(100%,448px);border:1px solid var(--line);background:var(--card);padding:32px;animation:modalin .3s}.modal-card .modal-close,.team-modal-card>.modal-close{position:absolute;right:16px;top:16px}.modal-card h2{font-size:2rem}.modal-card>p{color:rgba(237,237,237,.7)}.contact-line{display:flex;gap:12px;align-items:start;margin:16px 0}.contact-line span,.contact-line a{color:var(--accent)}.contact-line p{margin:0;color:rgba(237,237,237,.7)}@keyframes pulse{50%{transform:rotate(-6deg) scale(1.06);box-shadow:0 0 18px 4px rgba(204,34,0,.45)}}@keyframes fade{from{opacity:0}}@keyframes modalin{from{opacity:0;transform:scale(.96) translateY(8px)}}@media(max-width:1023px){.desktop-nav{display:none}.menu-toggle{display:block}.page-hero{height:480px}.page-hero.legal-hero,.page-hero.placeholder-hero{height:380px}.service-grid,.review-grid{gap:20px}.masonry{columns:2}.aftercare-row,.aftercare-row.left{flex-direction:column}.aftercare-row figure{width:min(100%,400px)}.team-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){body{font-size:18px}.container{width:min(100% - 32px,1280px)}.header-inner{height:64px}.desktop-booking{display:none}.home-hero{min-height:100vh}.news-stamp{top:24px;right:16px;font-size:1.25rem}.hero-buttons{flex-direction:column;align-items:center}.hero-buttons .button{width:min(100%,320px)}.section{padding:64px 0}.section-head h2,.split h2{font-size:2.5rem}.service-grid,.review-grid,.split{grid-template-columns:1fr}.home-gallery{grid-template-columns:repeat(2,1fr)}.section-head.row{align-items:start;flex-direction:column;gap:20px}.carousel-window{padding:0 52px}.news-card{flex-basis:100%;padding:0 8px}.page-hero,.page-hero.legal-hero,.page-hero.placeholder-hero{height:280px}.hero-copy{padding-bottom:36px}.hero-copy h1{font-size:3.25rem}.placeholder-hero .hero-copy h1{font-size:4rem}.content-wrap{padding:48px 0}.placeholder-content{padding:80px 0}.page-section h2{font-size:2rem}.prose,.lead{font-size:1.05rem}.wide-image{height:auto;aspect-ratio:16/10}.masonry{columns:1}.gallery-filters{top:64px}.gallery-card>div{opacity:1}.team-grid{grid-template-columns:1fr}.team-profile{flex-direction:column}.team-profile>img{width:min(100%,280px)}.team-work>div{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr}.footer-bottom{align-items:start;flex-direction:column;gap:16px}.footer-bottom nav{flex-wrap:wrap}.maps-placeholder>div{flex-wrap:wrap;justify-content:center}}
.consent-banner{position:fixed;z-index:9999;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;border-top:1px solid rgba(240,236,228,.1);background:#111;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.consent-banner[hidden]{display:none}
.consent-banner p{margin:0;max-width:70ch;color:rgba(237,237,237,.8);font-size:14px;line-height:1.5}
.consent-banner a{color:var(--accent)}
.consent-banner a:hover{color:var(--fg)}
.consent-actions{display:flex;align-items:stretch;flex-shrink:0;gap:8px}
.consent-actions.end{justify-content:flex-end;margin-top:24px}
.consent-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border:0;border-radius:4px;background:#c8a97e;color:#0a0a0a;font:400 14px/1 inherit;cursor:pointer}
.consent-btn.gray{background:#9a9088}
.consent-btn:hover{filter:brightness(.92)}
.consent-card p{color:rgba(237,237,237,.7);font-size:1rem}
.consent-row{display:flex;align-items:start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:16px 0;cursor:pointer}
.consent-row:last-of-type{border-bottom:0}
.consent-row strong{display:block;font-family:var(--body);font-size:1rem;font-weight:500}
.consent-row small{display:block;margin-top:6px;color:#9a9088;font-size:.85rem;line-height:1.5}
.consent-switch{appearance:none;position:relative;flex:0 0 44px;width:44px;height:24px;margin-top:4px;border:0;border-radius:999px;background:#2a2a2a;cursor:pointer}
.consent-switch:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#f0ece4;transition:transform .2s}
.consent-switch:checked{background:#c8a97e}
.consent-switch:checked:before{transform:translateX(20px)}
@media(max-width:767px){.consent-banner{flex-direction:column;align-items:stretch}.consent-actions{justify-content:flex-end}}

@keyframes gallery-fade-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.gallery-grid-animate{animation:gallery-fade-in .45s ease-out both}
.maps-consent{max-height:280px;overflow:hidden}
@media(min-width:640px){.maps-consent{max-height:400px}.placeholder-hero .hero-copy h1{font-size:4.75rem}}
@media(min-width:768px){.placeholder-hero .hero-copy h1{font-size:6.25rem}}
@media(max-width:639px){.placeholder-hero .hero-copy h1{font-size:4rem}}
@media(min-width:640px) and (max-width:767px){.gallery-card>div{opacity:0}.gallery-card:hover>div{opacity:1}}
.ui-icon{display:inline-block;width:18px;height:18px;flex:0 0 18px;vertical-align:-3px}
.footer-contact a{gap:8px}
.contact-line .ui-icon{width:20px;height:20px;flex:0 0 20px;margin-top:2px}
