/* Header and navigation */
.site-header{position:fixed;inset:0 0 auto;z-index:500;color:var(--color-white);transition:background-color var(--duration-standard),box-shadow var(--duration-standard),color var(--duration-standard);height:var(--header-height)}
.site-header.is-scrolled,.site-header.is-open{background:rgb(7 6 10 / .94);box-shadow:0 .8rem 2.5rem rgb(0 0 0 / .28);backdrop-filter:blur(1rem)}
.site-header__shell{height:100%;display:flex;align-items:center;gap:1rem}
.site-header__brand{display:block;width:10.25rem;position:relative;z-index:2}
.site-header__logo{width:100%;height:auto;max-height:3.6rem;object-fit:contain;object-position:left center}
.site-header__logo--black{display:none}
.site-header__navigation,.site-header__cta{display:none}
.site-header__toggle{margin-left:auto;width:3.2rem;height:3.2rem;display:grid;place-content:center;gap:.34rem;background:rgb(255 255 255 / .08);border:1px solid rgb(255 255 255 / .2);color:inherit}
.site-header__toggle span{display:block;width:1.45rem;height:.12rem;background:currentColor;transition:transform var(--duration-standard),opacity var(--duration-standard)}
.site-header__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(.46rem) rotate(45deg)}
.site-header__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.site-header__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-.46rem) rotate(-45deg)}
.nav-cluster{position:relative}
.nav-cluster__trigger{display:flex;align-items:center;gap:.45rem;background:transparent;color:inherit;font-weight:700;padding:.85rem .2rem}
.nav-cluster__trigger span{color:var(--color-gold-500);transition:transform var(--duration-standard)}
.nav-cluster__trigger[aria-expanded="true"] span{transform:rotate(-90deg)}
.nav-cluster__panel{position:absolute;top:calc(100% + 1rem);left:50%;width:min(54rem,82vw);transform:translate(-50%,-.75rem);display:grid;grid-template-columns:.65fr 1.35fr;gap:2rem;padding:2rem;background:var(--color-ink-950);border:1px solid rgb(255 255 255 / .16);box-shadow:var(--shadow-deep);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--duration-standard),transform var(--duration-standard),visibility var(--duration-standard)}
.nav-cluster__panel::before{content:"";position:absolute;inset:.55rem;border:1px solid rgb(245 170 28 / .18);pointer-events:none}
.nav-cluster__panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.nav-cluster__intro{display:flex;flex-direction:column;justify-content:flex-end;padding:1rem;border-left:.2rem solid var(--color-magenta-500)}
.nav-cluster__intro strong{font-family:var(--font-display);font-size:1.65rem;line-height:1.15}
.nav-cluster__links{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.nav-cluster__links a{padding:.9rem;border:1px solid rgb(255 255 255 / .12);background:rgb(255 255 255 / .03)}
.nav-cluster__links a:hover,.nav-cluster__links a:focus-visible{border-color:var(--color-cyan-500);transform:translateY(-.18rem)}
.nav-cluster__links span{display:block;font-weight:800;color:var(--color-white)}
.nav-cluster__links small{display:block;color:var(--color-grey-300);margin-top:.3rem;line-height:1.45}
.mobile-menu{position:fixed;inset:0;z-index:700;visibility:hidden;pointer-events:none}
.mobile-menu.is-open{visibility:visible;pointer-events:auto}
.mobile-menu__backdrop{position:absolute;inset:0;background:rgb(0 0 0 / .72);opacity:0;width:100%;height:100%}
.mobile-menu.is-open .mobile-menu__backdrop{opacity:1}
.mobile-menu__panel{position:absolute;inset:0 0 0 auto;width:min(100%,31rem);min-height:100vh;min-height:100dvh;background:var(--color-ink-950);color:var(--color-white);padding:1.2rem;overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);transition:transform var(--duration-slow) var(--ease-standard)}
.mobile-menu.is-open .mobile-menu__panel{transform:none}
.mobile-menu__top{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.2rem;border-bottom:1px solid rgb(255 255 255 / .14)}
.mobile-menu__top img{width:9.5rem}
.mobile-menu__close,.icon-button{width:3rem;height:3rem;display:grid;place-items:center;background:rgb(255 255 255 / .08);border:1px solid rgb(255 255 255 / .16);color:var(--color-white);font-size:1.8rem}
.mobile-menu__nav{display:grid;padding-block:1.2rem}
.mobile-menu__nav>a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem .5rem;border-bottom:1px solid rgb(255 255 255 / .12);font-family:var(--font-display);font-size:1.65rem}
.mobile-menu__nav>a small{display:none;font-family:var(--font-body)}
.mobile-menu__label{padding:.9rem .5rem .25rem;color:var(--color-cyan-500);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:800}
.mobile-menu__contact{display:grid;gap:.4rem;padding:1.2rem;background:var(--color-plum-900);border-left:.2rem solid var(--color-gold-500)}
.mobile-menu__contact span{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-grey-300)}

/* Buttons */
.button{min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.25rem;border:1px solid transparent;font-weight:800;line-height:1.2;text-align:center;position:relative;overflow:hidden}
.button::after{content:"";position:absolute;inset:auto -35% -140% auto;width:7rem;height:7rem;border-radius:50%;background:rgb(255 255 255 / .2);transition:transform var(--duration-slow)}
.button:hover::after{transform:translate(-1.5rem,-1.5rem)}
.button--gold{background:var(--color-gold-500);color:var(--color-ink-1000);clip-path:polygon(0 0,calc(100% - .9rem) 0,100% .9rem,100% 100%,0 100%)}
.button--gold:hover{background:var(--color-gold-400);transform:translateY(-.15rem)}
.button--outline{border-color:rgb(255 255 255 / .46);color:var(--color-white);background:rgb(255 255 255 / .02)}
.button--outline:hover{border-color:var(--color-cyan-500);background:rgb(24 196 231 / .08)}
.button--outline-dark{border-color:rgb(7 6 10 / .4);color:var(--color-ink-1000)}
.button--dark{background:var(--color-ink-1000);color:var(--color-white)}
.button.is-loading{pointer-events:none;opacity:.8}
.button.is-success{background:var(--color-success-600);color:var(--color-white)}
.button__loader{display:none;width:1.1rem;height:1.1rem;border:.14rem solid currentColor;border-right-color:transparent;border-radius:50%}
.button.is-loading .button__loader{display:block;animation:buttonLoad .7s linear infinite}
.button.is-loading [data-submit-label]{opacity:.7}
.text-button{background:transparent;color:inherit;text-decoration:underline;text-underline-offset:.2rem}
.hero-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:2rem}
.clarity-badge{display:inline-flex;align-items:flex-start;gap:.65rem;margin-top:1.5rem;padding:.8rem 1rem;border:1px solid rgb(24 196 231 / .34);background:rgb(24 196 231 / .08);font-size:var(--text-sm);font-weight:700;max-width:38rem}
.clarity-badge span{color:var(--color-cyan-500)}

/* Media */
.media-frame{display:block;position:relative;overflow:hidden;background:var(--color-plum-900)}
.media-frame img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-standard)}
a.gallery-link:hover .media-frame img,a.gallery-link:focus-visible .media-frame img,.event-card:hover .media-frame img{transform:scale(1.045)}
.media-frame--portrait{aspect-ratio:2/3;border-radius:0 var(--radius-lg) 0 var(--radius-md)}
.media-frame--landscape{aspect-ratio:16/10;border-radius:var(--radius-md) 0 var(--radius-md) 0}
.media-frame--square{aspect-ratio:1;border-radius:50% 0 50% 50%}
.media-frame--offset{box-shadow:.9rem .9rem 0 rgb(237 8 123 / .22),var(--shadow-deep)}
.media-frame--cut-corner{clip-path:polygon(0 0,calc(100% - 2.2rem) 0,100% 2.2rem,100% 100%,0 100%)}
.media-frame--full{width:100%;height:100%}
.gallery-link{display:block}

/* Shared cards and lists */
.value-grid,.service-pillars,.option-grid,.package-grid{display:grid;gap:1rem}
.value-grid article,.pillar-card,.option-card,.package-card{position:relative;padding:1.5rem;border:1px solid rgb(7 6 10 / .13);background:var(--color-white)}
.section--dark .value-grid article,.section--ink .value-grid article,.section--plum .value-grid article,.section--felt .value-grid article,.pillar-card,.option-card,.package-card{background:rgb(255 255 255 / .045);border-color:rgb(255 255 255 / .13)}
.value-grid article>span,.pillar-card>span,.package-card__index{display:inline-block;color:var(--color-magenta-500);font-weight:800;margin-bottom:2rem}
.value-grid h3,.pillar-card h3,.option-card h3,.package-card h3{margin-bottom:.75rem}
.value-grid p,.pillar-card p,.option-card p,.package-card p{color:inherit;opacity:.86}
.option-card{min-height:12rem;padding-top:3.4rem}
.orbit-dot{position:absolute;top:1.3rem;left:1.3rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--color-cyan-500);box-shadow:1.25rem .3rem 0 var(--color-magenta-500),2.1rem -.2rem 0 var(--color-gold-500)}
.package-card{padding:2rem}
.package-card--featured{background:var(--color-plum-900);color:var(--color-white);border-color:var(--color-gold-500);transform:none}
.package-card ul{display:grid;gap:.6rem;margin:1.5rem 0}
.package-card li{position:relative;padding-left:1.2rem}
.package-card li::before{content:"";position:absolute;left:0;top:.72rem;width:.45rem;height:.45rem;background:var(--color-cyan-500);border-radius:50%}
.package-card a{color:var(--color-gold-500);font-weight:800}

/* Accordion */
.accordion{border-top:1px solid currentColor}
.accordion__item{border-bottom:1px solid rgb(7 6 10 / .22)}
.section--dark .accordion__item,.section--ink .accordion__item,.section--plum .accordion__item,.section--felt .accordion__item{border-color:rgb(255 255 255 / .18)}
.accordion__item h3{font-family:var(--font-body);font-size:1rem}
.accordion__item button{width:100%;display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;background:transparent;color:inherit;text-align:left;font-weight:800}
.accordion__item button>span:last-child{color:var(--color-magenta-500);font-size:1.5rem;transition:transform var(--duration-standard)}
.accordion__item button[aria-expanded="true"]>span:last-child{transform:rotate(45deg)}
.accordion__panel{padding:0 2rem 1.3rem 0;max-width:48rem}

/* Contact wizard and form */
.brief-builder{position:relative}
.brief-builder__intro{margin-bottom:2rem}
.brief-builder__intro p{margin-top:1rem;max-width:43rem}
.wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-bottom:1.5rem}
.wizard-progress span{padding:.55rem .35rem;border-bottom:.18rem solid rgb(255 255 255 / .18);color:var(--color-grey-300);font-size:var(--text-xs);font-weight:800;text-align:center}
.wizard-progress span.is-active{border-color:var(--color-gold-500);color:var(--color-white)}
.wizard-step{padding:1.25rem;border:1px solid rgb(255 255 255 / .16);background:rgb(255 255 255 / .035)}
.wizard-step legend{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.3rem);line-height:1.2;margin-bottom:1.4rem}
.choice-grid{display:grid;gap:.75rem}
.choice-card{cursor:pointer}
.choice-card input{position:absolute;opacity:0;pointer-events:none}
.choice-card span{display:block;height:100%;padding:1rem;border:1px solid rgb(255 255 255 / .16);background:rgb(255 255 255 / .035)}
.choice-card strong,.choice-card small{display:block}
.choice-card small{margin-top:.35rem;color:var(--color-grey-300)}
.choice-card input:checked+span{border-color:var(--color-cyan-500);background:rgb(24 196 231 / .1);box-shadow:inset .2rem 0 0 var(--color-cyan-500)}
.choice-card input:focus-visible+span{outline:.18rem solid var(--color-cyan-500);outline-offset:.2rem}
.wizard-step__actions{display:flex;flex-direction:column;gap:.65rem;margin-top:1.25rem}
.event-form{margin-top:1.5rem;padding:1.25rem;background:var(--color-ink-950);color:var(--color-white);border:1px solid rgb(255 255 255 / .16);transition:opacity var(--duration-slow),transform var(--duration-slow),max-height var(--duration-slow)}
.event-form.is-concealed{display:none}
.event-form__heading{display:grid;gap:1rem;padding-bottom:1.5rem;border-bottom:1px solid rgb(255 255 255 / .13)}
.event-form__heading p{color:var(--color-grey-300)}
.form-section{padding-block:1.5rem;border-bottom:1px solid rgb(255 255 255 / .13)}
.form-section h4{color:var(--color-gold-500);margin-bottom:1.2rem}
.form-grid{display:grid;gap:1rem}
.form-field{display:grid;gap:.4rem}
.form-field label,.checkbox-group legend{font-size:var(--text-sm);font-weight:800}
.form-field input,.form-field select,.form-field textarea{width:100%;min-height:3.2rem;padding:.8rem .9rem;border:1px solid rgb(255 255 255 / .22);border-radius:0;background:rgb(255 255 255 / .06);color:var(--color-white)}
.form-field select option{color:var(--color-ink-1000)}
.form-field textarea{resize:vertical;min-height:9rem}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-cyan-500);outline:none;box-shadow:0 0 0 .15rem rgb(24 196 231 / .18)}
.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:var(--color-danger-600)}
.form-field__error{min-height:1.1rem;color:#ff9ea7;font-size:var(--text-xs)}
.form-field__hint{font-size:var(--text-xs);color:var(--color-grey-300)}
.checkbox-group{margin-top:1.25rem}
.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.75rem}
.checkbox-grid label{display:flex;align-items:center;gap:.55rem;padding:.7rem;border:1px solid rgb(255 255 255 / .13);font-size:var(--text-sm)}
.checkbox-grid input,.consent-check input{accent-color:var(--color-magenta-500);width:1.1rem;height:1.1rem;flex:0 0 auto}
.consent-check{display:flex;align-items:flex-start;gap:.7rem;margin-top:1.2rem;font-size:var(--text-sm)}
.consent-check a{text-decoration:underline;color:var(--color-cyan-500)}
.event-form__submit{display:grid;gap:1rem;padding-top:1.5rem}
.event-form__submit p{font-size:var(--text-sm);color:var(--color-grey-300)}
.form-status{padding:1rem;margin-bottom:1rem;border-left:.25rem solid}
.form-status--success{background:rgb(33 134 90 / .16);border-color:#52d697}
.form-status--error{background:rgb(201 67 80 / .16);border-color:#ff8793}

/* Footer */
.site-footer{position:relative;background:var(--color-ink-1000);color:var(--color-white);padding-top:5rem;overflow:hidden}
.site-footer__orbit{position:absolute;width:20rem;height:20rem;right:-8rem;top:-8rem;border:1px solid rgb(24 196 231 / .2);border-radius:50%;animation:orbitSpin 22s linear infinite}
.site-footer__orbit span{position:absolute;width:.7rem;height:.7rem;border-radius:50%;background:var(--color-magenta-500)}
.site-footer__orbit span:nth-child(1){top:10%;left:25%}.site-footer__orbit span:nth-child(2){right:5%;top:50%;background:var(--color-cyan-500)}.site-footer__orbit span:nth-child(3){left:20%;bottom:5%;background:var(--color-gold-500)}
.site-footer__grid{position:relative;display:grid;gap:2.5rem;padding-bottom:3rem}
.site-footer__brand img{width:13rem;margin-bottom:1.2rem}
.site-footer__brand p{max-width:25rem;color:var(--color-grey-300)}
.site-footer__clarity{margin-top:1rem;padding-left:1rem;border-left:.2rem solid var(--color-gold-500)}
.site-footer h2{font-family:var(--font-body);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.16em;color:var(--color-cyan-500);margin-bottom:1rem}
.site-footer ul{display:grid;gap:.55rem}
.site-footer a:hover{color:var(--color-gold-500)}
.site-footer__contact{display:grid;align-content:start;gap:.7rem}
.copy-line{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.copy-line button{background:transparent;border:1px solid rgb(255 255 255 / .2);color:var(--color-grey-300);padding:.35rem .55rem;font-size:var(--text-xs)}
.site-footer__legal{border-top:1px solid rgb(255 255 255 / .13);padding-block:1.5rem}
.site-footer__legal-links{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;font-size:var(--text-sm);color:var(--color-grey-300)}
.site-footer__bottom{display:flex;flex-direction:column;gap:1rem;margin-top:1.2rem;font-size:var(--text-sm);color:var(--color-grey-300)}

/* Cookie */
.cookie-banner{position:fixed;z-index:900;inset:auto 0 0;padding:1rem}
.cookie-banner__content{max-width:72rem;margin-inline:auto;padding:1.2rem;background:var(--color-ink-950);color:var(--color-white);border:1px solid rgb(255 255 255 / .2);box-shadow:var(--shadow-deep)}
.cookie-banner h2{font-size:clamp(1.45rem,3vw,2rem);margin-bottom:.5rem}
.cookie-banner p{color:var(--color-grey-300)}
.cookie-banner__actions{display:flex;flex-direction:column;gap:.65rem;margin-top:1rem}
.cookie-banner__actions>a{align-self:center;text-decoration:underline}
.cookie-dialog,.lightbox{padding:0;border:0;background:transparent;color:var(--color-white);max-width:none;max-height:none}
.cookie-dialog::backdrop,.lightbox::backdrop{background:rgb(0 0 0 / .86);backdrop-filter:blur(.4rem)}
.cookie-dialog__panel{width:min(42rem,calc(100vw - 2rem));padding:1.25rem;background:var(--color-ink-950);border:1px solid rgb(255 255 255 / .18)}
.dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;padding-bottom:1rem;border-bottom:1px solid rgb(255 255 255 / .13)}
.dialog-heading h2{font-size:2rem}
.consent-row{display:flex;justify-content:space-between;gap:1rem;padding:1.2rem 0;border-bottom:1px solid rgb(255 255 255 / .13)}
.consent-row p,.consent-row small{display:block;color:var(--color-grey-300);margin-top:.25rem}
.consent-row--toggle{align-items:center;cursor:pointer}.consent-row--toggle input{width:1.4rem;height:1.4rem;accent-color:var(--color-magenta-500)}
.cookie-dialog__actions{display:flex;justify-content:flex-end;gap:.7rem;padding-top:1.2rem}

/* Lightbox */
.lightbox{width:100vw;height:100vh;height:100dvh}
.lightbox__shell{position:relative;width:100%;height:100%;display:grid;grid-template-rows:auto 1fr;background:var(--color-ink-1000)}
.lightbox__topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .8rem max(1rem,env(safe-area-inset-left));border-bottom:1px solid rgb(255 255 255 / .14);z-index:2}
.lightbox__topbar p{font-size:var(--text-sm);color:var(--color-grey-300);max-width:42rem}
.lightbox__tools{display:flex;gap:.45rem}.lightbox__tools button,.lightbox__nav{width:3rem;height:3rem;background:rgb(255 255 255 / .08);border:1px solid rgb(255 255 255 / .2);color:var(--color-white);font-size:1.4rem}
.lightbox__viewport{position:relative;overflow:auto;overscroll-behavior:contain;display:flex;align-items:center;justify-content:center;cursor:grab;padding:1rem}
.lightbox__viewport.is-dragging{cursor:grabbing}
.lightbox__viewport img{max-width:min(94vw,100rem);max-height:calc(100dvh - 7rem);width:auto;height:auto;object-fit:contain;transform-origin:center;transition:transform var(--duration-standard)}
.lightbox__viewport.is-zoom-2 img{transform:scale(1.45)}
.lightbox__viewport.is-zoom-3 img{transform:scale(2)}
.lightbox__viewport.is-zoom-4 img{transform:scale(2.7)}
.lightbox__nav{position:absolute;top:50%;z-index:3;border-radius:50%}.lightbox__nav--prev{left:max(.6rem,env(safe-area-inset-left))}.lightbox__nav--next{right:max(.6rem,env(safe-area-inset-right))}
.lightbox__error{padding:2rem;max-width:28rem;text-align:center}

/* Toast */
.toast-region{position:fixed;z-index:1000;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:grid;gap:.65rem;width:min(24rem,calc(100vw - 2rem));pointer-events:none}
.toast{display:grid;grid-template-columns:1fr auto;gap:.75rem;padding:1rem;background:var(--color-ink-950);color:var(--color-white);border-left:.25rem solid var(--color-cyan-500);box-shadow:var(--shadow-deep);pointer-events:auto;animation:toastIn .25s var(--ease-standard)}
.toast--success{border-color:#52d697}.toast--error{border-color:#ff8793}.toast__close{background:transparent;color:var(--color-white);font-size:1.25rem}

@media (min-width:600px){.hero-actions,.wizard-step__actions,.cookie-banner__actions{flex-direction:row}.choice-grid{grid-template-columns:repeat(3,1fr)}.choice-grid--formats{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr 1fr}.event-form__heading,.event-form__submit{grid-template-columns:1fr 1fr;align-items:end}.event-form__submit .button{justify-self:end}.value-grid,.service-pillars,.option-grid{grid-template-columns:1fr 1fr}.site-footer__grid{grid-template-columns:1.3fr 1fr}.site-footer__bottom{flex-direction:row;align-items:center;justify-content:space-between}.cookie-banner__actions{align-items:center}}
@media (min-width:1024px){.site-header__brand{width:11.3rem}.site-header__toggle{display:none}.site-header__navigation{margin-left:auto;display:flex;align-items:center;gap:1.15rem;font-size:var(--text-sm);font-weight:700}.site-header__navigation>a{position:relative;padding:.85rem .1rem}.site-header__navigation>a::after{content:"";position:absolute;left:0;right:100%;bottom:.45rem;height:.12rem;background:linear-gradient(90deg,var(--color-magenta-500),var(--color-cyan-500));transition:right var(--duration-standard)}.site-header__navigation>a:hover::after,.site-header__navigation>a[aria-current="page"]::after{right:0}.site-header__cta{display:inline-flex;margin-left:.6rem}.site-footer__grid{grid-template-columns:1.4fr .7fr .7fr 1.1fr}.package-grid{grid-template-columns:repeat(3,1fr)}.package-card--featured{transform:translateY(-1.2rem)}.option-grid{grid-template-columns:repeat(3,1fr)}.service-pillars,.value-grid{grid-template-columns:repeat(4,1fr)}}
