/*
Theme Name: Aglika
Theme URI: https://aglikaboutiquehotel.com/
Author: Aspire
Description: Самостоятелна тема за Аглика Бутик Хотел — едностранична начална страница с BG/EN превключвател.
Version: 0.11.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: aglika
*/

/* ---- base ---- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
html:not(.lenis){scroll-behavior:smooth}
body{margin:0;background:#F4F1EA;color:#161512;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}} /* clip, unlike hidden, does not turn body into a scroll container, so position:sticky keeps working */
a{color:inherit;text-decoration:none}a:hover{color:inherit}
img{display:block}button{font:inherit;color:inherit}
h1,h2,h3,p,ul{margin:0}
*:focus-visible{outline:2px solid #C98A5E;outline-offset:4px}
[hidden]{display:none!important}

@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.6);opacity:0}}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---- cursor (desktop only) ---- */
[data-cursor]{position:fixed;top:0;left:0;z-index:80;pointer-events:none;width:12px;height:12px;border-radius:50%;background:#F4F1EA;mix-blend-mode:difference;display:none;transform:translate(-50%,-50%);transition:width .5s cubic-bezier(.7,0,.2,1),height .5s cubic-bezier(.7,0,.2,1),background .4s}
[data-cursor][data-big="1"]{width:84px;height:84px;background:#F4F1EA}
[data-cursor-label]{position:absolute;inset:0;display:grid;place-items:center;font:500 10px/1 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#161512;opacity:0;transition:opacity .3s}
[data-cursor][data-big="1"] [data-cursor-label]{opacity:1}
@media (pointer:fine){[data-cursor]{display:block}}

/* ---- header ---- */
/* logged-in: everything fixed to the top moves below the WP admin bar (inline top:0 needs !important) */
.admin-bar [data-header],.admin-bar [data-menu],.admin-bar [data-intro],.admin-bar [data-lightbox],.admin-bar [data-moment-preview]{top:32px!important}
.admin-bar .m3d__stage{top:32px;height:calc(100svh - 32px)}
@media (max-width:782px){.admin-bar [data-header],.admin-bar [data-menu],.admin-bar [data-intro],.admin-bar [data-lightbox],.admin-bar [data-moment-preview]{top:46px!important}.admin-bar .m3d__stage{top:46px;height:calc(100svh - 46px)}}
[data-header][data-on="light"]{color:#161512!important}
[data-header][data-on="light"] [data-logo]{filter:invert(1) brightness(.12)}
[data-header]{transition:color .6s,background .5s,padding .5s!important}
[data-header][data-scrolled="1"]{background:rgba(22,21,18,.38);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding-top:10px!important;padding-bottom:10px!important}
[data-header][data-scrolled="1"][data-on="light"]{background:rgba(244,241,234,.82)}
[data-header][data-menu-open="1"]{background:transparent!important;-webkit-backdrop-filter:none;backdrop-filter:none;color:#F4F1EA!important}
[data-header][data-menu-open="1"] [data-logo]{filter:none!important}
[data-chapter-ind]{opacity:0;transition:opacity .6s}
[data-chapter-ind][data-active="1"]{opacity:1}

/* ---- menu: diagonal reveal (CSS fallback; main.js drives it with GSAP when available) ---- */
[data-menu]{clip-path:polygon(0 0,100% 0,100% 0,0 0);pointer-events:none;transition:clip-path .9s cubic-bezier(.7,0,.2,1)}
[data-menu][data-open="1"]{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);pointer-events:auto}
[data-menu][data-gsap="1"]{transition:none}
[data-menu-link]:hover,[data-menu-link]:focus-visible{transform:translateX(16px)}
[data-menu-nav]:has([data-menu-link]:hover) [data-menu-link]:not(:hover){opacity:.4}
[data-menu-link] [data-i18n]{display:inline-block}
[data-tl]{transform-origin:center;transition:transform .5s cubic-bezier(.7,0,.2,1)}
[data-header][data-menu-open="1"] [data-tl="1"]{transform:translateY(3px) rotate(45deg)}
[data-header][data-menu-open="1"] [data-tl="2"]{transform:translateY(-3px) rotate(-45deg)}
[data-page]{transform-origin:0 0}
@media (prefers-reduced-motion:reduce){[data-menu]{transition:none}}

/* ---- split-hover cards (Хотелът → какво ще намерите, Настаняване → типове): bands slide in, title by letter, text by word ---- */
.scard{--hl:#C9A23F;--ease:cubic-bezier(.66,.08,.19,.97);position:relative;display:block;overflow:hidden;color:#F4F1EA;background:#1F2A22;transition:box-shadow 1s var(--ease)}
.scard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease)}
.scard::before,.scard::after{content:"";position:absolute;left:0;top:0;width:100%;height:50%;background:rgba(22,21,18,.7);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);z-index:1}
.scard::after{top:50%;transition-delay:.15s}
.scard__label{position:absolute;left:18px;top:16px;z-index:2;font-size:10px;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.6);transition:opacity .4s}
.scard__arrow{position:absolute;right:18px;top:12px;z-index:2;font-size:18px;text-shadow:0 1px 8px rgba(0,0,0,.6);transition:transform .5s var(--ease)}
.scard__text{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;display:block;text-shadow:0 1px 2px rgba(0,0,0,.55),0 4px 18px rgba(0,0,0,.45)}
/* the title is a cream name-plate with a brass edge that slides open from the left; always legible, whatever the photo */
.scard__t{display:inline-block;max-width:100%;font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:clamp(20px,1.6vw,30px);line-height:1;letter-spacing:-.01em;white-space:nowrap;margin:0 0 10px;padding:8px 12px 6px 10px;background:#F4F1EA;color:#1F2A22;border-left:3px solid #9A7B4F;text-shadow:none;clip-path:inset(0 100% 0 0);transition:clip-path .65s var(--ease) .12s}
.scard:hover .scard__t,.scard:focus-visible .scard__t{clip-path:inset(0 0 0 0)}
.scard .scard__t .char{color:#9A7B4F}
.scard:hover .scard__t .char,.scard:focus-visible .scard__t .char{color:#1F2A22}
.scard__d{display:block;font-size:13px;line-height:1.5;max-width:34ch;color:rgba(244,241,234,.95)}
.scard .char,.scard .word{display:inline-block;opacity:0;transform:translateY(16px);color:var(--hl);transition:transform .75s cubic-bezier(.38,.26,.05,1.07),opacity .75s cubic-bezier(.38,.26,.05,1.07),color .5s}
.scard:hover::before,.scard:hover::after,.scard:focus-visible::before,.scard:focus-visible::after{transform:scaleX(1)}
.scard:hover img,.scard:focus-visible img{transform:scale(1.08)}
.scard:hover .scard__arrow,.scard:focus-visible .scard__arrow{transform:translateX(4px)}
.scard:hover .char,.scard:focus-visible .char{opacity:1;transform:none;color:inherit;transition-delay:calc(.1s + var(--i) * .05s)}
.scard:hover .word,.scard:focus-visible .word{opacity:1;transform:none;color:inherit;transition-delay:calc(.1s + var(--i) * .015s)}
@media (hover:none){.scard::before,.scard::after{transform:scaleX(1);background:rgba(22,21,18,.55)}.scard__t{clip-path:inset(0 0 0 0)}.scard .scard__t .char{color:#1F2A22}.scard .char,.scard .word{opacity:1;transform:none;color:inherit}}
@media (prefers-reduced-motion:reduce){.scard .char,.scard .word,.scard::before,.scard::after,.scard img{transition:none}}

/* ---- hover helpers ---- */
[data-swap-inner]{display:flex;flex-direction:column;transition:transform .7s cubic-bezier(.7,0,.2,1)}
[data-swap]:hover [data-swap-inner]{transform:translateY(-50%)}
.btn-line:hover{background:#F4F1EA!important;color:#161512!important}
.btn-line--green:hover{background:#F4F1EA!important;color:#1F2A22!important}
.btn-line--dark:hover{background:#161512!important;color:#F4F1EA!important}
.link-arrow:hover{gap:18px!important}
.zoom:hover{transform:scale(var(--z,1.04))!important}

/* ---- hero: day / sunset ---- */
[data-hero-day],[data-hero-video]{transition:opacity 1.6s cubic-bezier(.7,0,.2,1)}
#hero[data-mode="sunset"] [data-hero-day]{opacity:0}
#hero[data-mode="day"] [data-hero-video]{opacity:0}
/* buttons carry inline all:unset, so their state styles need !important to win */
[data-hero-mode]{opacity:.55!important;border-bottom:1px solid transparent!important;transition:opacity .5s,border-color .5s!important}
#hero[data-mode="day"] [data-hero-mode="day"],#hero[data-mode="sunset"] [data-hero-mode="sunset"]{opacity:1!important;border-bottom-color:currentColor!important}

/* ---- map hotspots ---- */
[data-hotspot] [data-dot]{background:rgba(244,241,234,.25);transition:background .4s,transform .4s}
[data-hotspot] [data-hotspot-label]{opacity:0;transition:opacity .4s}
[data-hotspot][data-active="1"] [data-dot]{background:#F4F1EA;transform:scale(1.3)}
[data-hotspot][data-active="1"] [data-hotspot-label]{opacity:1}

/* ---- water story ---- */
[data-water-video]{opacity:0;transition:opacity 1.4s cubic-bezier(.7,0,.2,1)}
[data-water-video][data-active="1"]{opacity:1}
[data-beat-layer]{opacity:0;transition:opacity 1.4s cubic-bezier(.7,0,.2,1)}
[data-beat-layer]{will-change:opacity}
[data-beat-layer] img{transform:scale(1.06);transition:transform 2.4s cubic-bezier(.2,0,.1,1)}
[data-beat-layer][data-active="1"]{opacity:1}
[data-beat-layer][data-active="1"] img{transform:scale(1)}
[data-beat] h3{opacity:.35;transition:opacity .8s}
[data-beat] p{opacity:.25;transition:opacity .8s .1s}
[data-beat][data-active="1"] h3{opacity:1}
[data-beat][data-active="1"] p{opacity:.9}

/* ---- experiences ---- */
/* layers are stacked; the active one is raised and wiped in by main.js */
[data-exp-layer][data-active="1"],[data-venue-layer][data-active="1"]{z-index:1}
[data-exp-btn]{opacity:.45!important;padding-left:0!important;transition:opacity .6s,padding-left .6s cubic-bezier(.7,0,.2,1)!important}
[data-exp-btn][data-active="1"]{opacity:1!important;padding-left:clamp(8px,2vw,32px)!important}

/* ---- food venues ---- */
[data-venue-btn]{opacity:.5!important;transition:opacity .5s!important}
[data-venue-btn] [data-venue-desc]{max-height:0;overflow:hidden;transition:max-height .7s cubic-bezier(.7,0,.2,1)}
[data-venue-btn][data-active="1"]{opacity:1!important}
[data-venue-btn][data-active="1"] [data-venue-desc]{max-height:120px}

/* ---- split headings: room for descenders inside the line masks ---- */
.sl-mask{padding:.08em 0 .2em;margin:-.08em 0 -.2em}

/* ---- moments: cursor-following preview on desktop, thumbnails on touch ---- */
[data-moment-row] h3{transition:transform .6s cubic-bezier(.7,0,.2,1)}
@media (pointer:fine){[data-moment-thumb]{display:none!important}[data-moment-row]:hover h3{transform:translateX(clamp(8px,1.5vw,24px))}}

/* ---- ribbons ---- */
[data-drag]::-webkit-scrollbar{display:none}

/* ---- responsive ---- */
@media (max-width:1600px){[data-hero-grid]{grid-template-columns:1fr!important}}
@media (max-width:900px){
[data-story]{grid-template-columns:1fr!important}
[data-story-media]{display:none!important}
[data-beat-img]{display:block!important}
[data-two]{grid-template-columns:1fr!important}
[data-details]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
[data-food-media]{position:relative!important;top:auto!important;height:64vw!important;order:-1}
[data-menu-panel]{width:100%!important;padding-top:clamp(84px,12vh,120px)!important}
[data-menu-bgs]{display:none!important}
[data-menu-link]{font-size:min(clamp(30px,8vw,48px),6.2vh)!important}
[data-menu-side]{display:none!important}
[data-hide-m]{display:none!important}
[data-hero-grid]{grid-template-columns:1fr!important}
[data-facts]{grid-template-columns:1fr 1fr!important}
[data-offset]{margin-top:0!important}
}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation:none!important}}

/* ---- inner pages (index.php) ---- */
.page-shell{font-family:Manrope,system-ui,sans-serif;line-height:1.6;max-width:820px;margin:0 auto;padding:clamp(32px,6vh,72px) clamp(20px,5vw,48px)}
.page-shell__home{display:inline-block;margin-bottom:clamp(32px,6vh,64px);font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;letter-spacing:.16em;text-transform:uppercase}
.page-shell h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(40px,6vw,80px);line-height:1;margin-bottom:32px}
.page-shell p{margin:0 0 1.2em}
.page-shell a{border-bottom:1px solid currentColor}

/* ---- landing pages ---- */
.btn-fill:hover{background:transparent!important;color:#F4F1EA!important}
.faq details{border-top:1px solid rgba(244,241,234,.2)}
.faq details:last-child{border-bottom:1px solid rgba(244,241,234,.2)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:clamp(18px,3vh,30px) 0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(24px,2.3vw,38px);line-height:1.15}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';flex:0 0 auto;font-family:Manrope,sans-serif;font-size:22px;font-weight:300;transition:transform .4s cubic-bezier(.7,0,.2,1)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{max-width:62ch;padding:0 0 clamp(18px,3vh,30px);font-size:clamp(15px,1.1vw,18px);line-height:1.7;opacity:.85;text-wrap:pretty}

/* ---- inquiry form ---- */
.inquiry{display:flex;flex-direction:column;gap:clamp(20px,3vh,32px)}
.inquiry__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vh,32px) clamp(20px,3vw,48px)}
.inquiry__field{display:flex;flex-direction:column;gap:8px;min-width:0}
.inquiry__field--wide{grid-column:1 / -1}
.inquiry__field>span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#6B655B}
.inquiry__field input,.inquiry__field textarea{font:400 17px/1.4 Manrope,system-ui,sans-serif;color:#161512;background:transparent;border:0;border-bottom:1px solid #A89F8D;border-radius:0;padding:10px 0;width:100%;box-sizing:border-box;transition:border-color .3s}
.inquiry__field textarea{resize:vertical;min-height:110px}
.inquiry__field input:focus,.inquiry__field textarea:focus{outline:none;border-bottom-color:#161512;box-shadow:0 1px 0 #161512}
.inquiry__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.inquiry__consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.55;color:#4A463F;max-width:60ch}
.inquiry__consent input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:#1F2A22}
.inquiry__consent a{border-bottom:1px solid currentColor}
.inquiry__actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.inquiry__submit{cursor:pointer;background:#161512;color:#F4F1EA;border:1px solid #161512;border-radius:0;padding:18px 34px;font:600 11px/1 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;transition:background .4s,color .4s,opacity .3s}
.inquiry__submit:hover{background:transparent;color:#161512}
.inquiry__submit:disabled{opacity:.5;cursor:default}
[data-inquiry-status]{margin:0;font-size:15px;line-height:1.5;max-width:44ch}
[data-inquiry-status][data-state="ok"]{color:#1F2A22;font-weight:500}
[data-inquiry-status][data-state="error"]{color:#9A3B2E}
@media (max-width:700px){.inquiry__grid{grid-template-columns:1fr}}

/* ---- hotspot editor (?hotspots): every label visible while placing the dots ---- */
[data-hotspot-edit] [data-hotspot-label]{opacity:1!important}

/* ---- stay: while pinned for the horizontal scroll, the whole section must fit one screen ---- */
#stay[data-pinned="1"]{height:100svh;box-sizing:border-box;display:flex;flex-direction:column;padding:clamp(84px,11vh,120px) 0 clamp(44px,6vh,60px)!important}
#stay[data-pinned="1"]>[data-two]{flex:0 0 auto;margin-bottom:clamp(20px,3vh,40px)!important}
#stay[data-pinned="1"]>[data-two]>div>div:first-child{margin-bottom:clamp(12px,2vh,24px)!important}
#stay[data-pinned="1"] h2{font-size:clamp(34px,3.6vw,68px)!important}
#stay[data-pinned="1"] [data-stay-track]{flex:1 1 auto;min-height:0;align-items:stretch!important;padding-bottom:0!important}
#stay[data-pinned="1"] [data-stay-track]>article{flex:0 0 clamp(260px,24vw,420px)!important;height:100%;box-sizing:border-box;margin-top:0!important;gap:14px!important}
#stay[data-pinned="1"] [data-stay-track]>article:nth-child(even){padding-top:clamp(16px,4vh,48px)}
#stay[data-pinned="1"] [data-stay-track]>article>a:first-child{flex:1 1 auto;min-height:0;aspect-ratio:auto!important}
#stay[data-pinned="1"]>div:last-child{display:none!important}

/* ---- moments hover preview: edges fade out instead of ending in a hard rectangle ---- */
[data-moment-preview]{-webkit-mask-image:linear-gradient(to right,transparent,#000 16%,#000 84%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 16%,#000 84%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}

/* ---- gallery rows: the photo under the cursor stays bright, its neighbours step back ---- */
[data-gallery-row]::-webkit-scrollbar{display:none}
@media (pointer:fine){[data-gallery-row]:hover img{opacity:.55}[data-gallery-row] [data-gallery]:hover img{opacity:1}}
[data-lightbox]{animation:aglika-fade .35s ease both}
@keyframes aglika-fade{from{opacity:0}to{opacity:1}}

/* ---- gallery page: three columns, two on tablets, one on phones ---- */
.gallery-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.8vw,28px);align-items:start;padding:clamp(40px,8vh,120px) 0}
.gallery-cols__col{display:flex;flex-direction:column;gap:clamp(12px,1.8vw,28px)}
.gallery-cols__col:nth-child(2){margin-top:clamp(40px,9vh,140px)}
@media (max-width:900px){.gallery-cols{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 0}.gallery-cols__col:nth-child(2){margin-top:0}.gallery-cols__col:nth-child(3){grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gallery-cols{grid-template-columns:minmax(0,1fr)}.gallery-cols__col:nth-child(3){display:flex}}

/* ---- room pages: the other room types ---- */
.room-others{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,40px)}
@media (max-width:900px){.room-others{grid-template-columns:repeat(2,minmax(0,1fr))}}


[data-venue-layer] video{display:block}

/* ---- hero film look: a little more contrast and warmth, fine moving grain, darker corners ---- */
#hero [data-hero-video]{filter:contrast(1.06) saturate(1.12) sepia(.06)}
[data-hero-grain]{position:absolute;inset:-50%;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .5  0 0 0 0 .5  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:aglika-grain .9s steps(6) infinite}
@keyframes aglika-grain{0%{transform:translate(0,0)}17%{transform:translate(-3%,2%)}33%{transform:translate(2%,-4%)}50%{transform:translate(-4%,-1%)}67%{transform:translate(3%,3%)}83%{transform:translate(-1%,-3%)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){[data-hero-grain]{animation:none}}

/* amenity icons: thin brass line icons beside each amenity */
.amen .amen-ico{flex:0 0 auto;color:#9A7B4F;width:20px;height:20px}
li.amen .amen-ico{width:26px;height:26px}

/* ---- mobile audit fixes ---- */
/* comfortable tap targets: header buttons, socials, breadcrumbs, slider dots get a 44px hit area without changing their look */
[data-lang-toggle],[data-menu-toggle],[data-menu-foot] a,[data-footer] a[href*="instagram"],[data-footer] a[href*="facebook"],nav[aria-label=Breadcrumb] a,.vs__dot{position:relative!important}
[data-lang-toggle]::after,[data-menu-toggle]::after,[data-menu-foot] a::after,[data-footer] a[href*="instagram"]::after,[data-footer] a[href*="facebook"]::after,nav[aria-label=Breadcrumb] a::after,.vs__dot::after{content:"";position:absolute;left:-10px;right:-10px;top:50%;height:44px;transform:translateY(-50%)}
.vs__dots{gap:16px}
@media (max-width:900px){
  /* uppercase 10px labels read better at 11px on phones */
  [style*="font-size:10px"]{font-size:11px!important}
  .scard__label,[data-hotspot-label],.dmap__sub{font-size:11px!important}
}

/* ---- promo pop-up (struct.promo) ---- */
.promo{font-family:Manrope,system-ui,sans-serif;position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(22,21,18,0);transition:background .45s ease}
.promo.is-open{background:rgba(22,21,18,.72)}
.promo__panel{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);width:min(920px,100%);max-height:calc(100svh - 40px);overflow:auto;background:#F4F1EA;color:#161512;box-shadow:0 30px 80px rgba(0,0,0,.45);opacity:0;transform:translateY(24px) scale(.98);transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1)}
.promo.is-open .promo__panel{opacity:1;transform:none}
.promo__media{background:#0B1430;min-height:280px}
.promo__media img{width:100%;height:100%;object-fit:cover;display:block}
.promo__body{display:flex;flex-direction:column;gap:14px;padding:clamp(28px,4vw,48px)}
.promo__eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6B655B}
.promo__h{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(34px,3.6vw,54px);line-height:1;letter-spacing:-.01em;margin:0}
.promo__p{font-size:clamp(15px,1.1vw,17px);line-height:1.6;color:#2A2823;margin:0;max-width:44ch}
.promo__actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:8px}
.promo__cta{display:inline-flex;gap:10px;align-items:center;background:#161512;color:#F4F1EA;border:1px solid #161512;padding:15px 26px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;transition:background .4s,color .4s,gap .4s}
.promo__cta:hover{background:transparent;color:#161512;gap:16px}
.promo__later{all:unset;cursor:pointer;font-size:11px;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px;color:#4A463F}
.promo__close{all:unset;cursor:pointer;position:absolute;top:10px;right:14px;z-index:2;width:40px;height:40px;display:grid;place-items:center;font-size:30px;line-height:1;color:#F4F1EA;mix-blend-mode:difference}
@media (max-width:760px){.promo__panel{grid-template-columns:1fr}.promo__media{min-height:0;aspect-ratio:663/500}.promo__media img{object-position:center 30%}}

/* ---- New Year programme card: typography over the real fireworks photo ---- */
.nycard{position:sticky;top:clamp(96px,14vh,140px);overflow:hidden;background:#0E1512;color:#F4F1EA;box-shadow:0 24px 60px rgba(0,0,0,.18)}
.nycard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.nycard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,21,18,.05) 0%,rgba(14,21,18,.05) 38%,rgba(14,21,18,.78) 70%,rgba(14,21,18,.94) 100%)}
.nycard__body{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:clamp(24px,3vw,44px)}
.nycard__top{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.nycard__date{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(64px,7vw,124px);line-height:.9;letter-spacing:-.02em;color:#E7C98A}
.nycard__title{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:clamp(30px,3vw,52px);line-height:1;letter-spacing:-.01em;margin:0}
.nycard__sub{font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.nycard__rule{display:block;width:56px;height:1px;background:#E7C98A;margin:6px 0}
.nycard__tag{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:clamp(20px,1.8vw,28px);line-height:1.1}

@media (max-width:900px){.nycard{position:relative;top:auto}}
/* ---- CSS fireworks ---- */
.nyfx{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.nyfx__b{position:absolute;width:0;height:0}
.nyfx__b i{position:absolute;left:0;top:0;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;border-radius:50%;background:hsl(var(--h) 95% 72%);box-shadow:0 0 6px 1px hsl(var(--h) 100% 65%),0 0 14px 2px hsl(var(--h) 100% 55% / .5);opacity:0;transform:rotate(var(--a)) translateY(0);animation:nyfx-spark 5.2s cubic-bezier(.12,.7,.25,1) var(--d) infinite}
.nyfx__b i::after{content:"";position:absolute;left:50%;bottom:100%;width:1px;height:calc(var(--r) * .32);margin-left:-.5px;background:linear-gradient(to top,hsl(var(--h) 95% 75% / .7),transparent);transform-origin:bottom}
@keyframes nyfx-spark{0%{opacity:0;transform:rotate(var(--a)) translateY(0) scale(.6)}4%{opacity:1}28%{opacity:1}46%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--r) * -1)) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--r) * -1.08)) scale(1)}}
@media (prefers-reduced-motion:reduce){.nyfx{display:none}}
/* ---- packages on the night-stage clip ---- */
.nypacks{position:relative;overflow:hidden;background:#0E1512;color:#F4F1EA;padding:clamp(96px,14vh,200px) clamp(20px,5vw,96px)}
.nypacks__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nypacks__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,21,18,.82) 0%,rgba(14,21,18,.6) 45%,rgba(14,21,18,.88) 100%)}
.nypacks__inner{position:relative;z-index:2}
.nypack{display:flex;flex-direction:column;gap:14px;padding:clamp(28px,4vh,48px) clamp(24px,3vw,44px);background:rgba(244,241,234,.07);border:1px solid rgba(244,241,234,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.nypack--premium{background:rgba(231,201,138,.12);border-color:#E7C98A}
.nypack__t{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.75}
.nypack--premium .nypack__t{color:#E7C98A;opacity:1}
.nypack__n{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(52px,6vw,112px);line-height:1}
.nypack__l{font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.nypack__k{font-size:14px;line-height:1.6;opacity:.85;border-top:1px solid rgba(244,241,234,.22);padding-top:12px}
.nypacks__deal{display:inline-block;margin-top:clamp(20px,3vh,32px);padding:12px 18px;border:1px solid #E7C98A;color:#E7C98A;font-size:13px;letter-spacing:.04em;line-height:1.5}

.nybank{position:sticky;top:clamp(96px,14vh,140px)}
@media (max-width:900px){.nybank{position:static}}

/* ---- mobile spacing ---- */
@media (max-width:900px){
  /* sections keep their side padding; top/bottom shrink from 114–146 px to 56–64 px */
  section[style*="padding:clamp("]{padding-top:clamp(56px,8vh,64px)!important;padding-bottom:clamp(56px,8vh,64px)!important}
  #map{padding-bottom:clamp(48px,7vh,56px)!important}
  /* water: the five beats stack as photo + text cards instead of five full screens */
  [data-beat]{min-height:0!important;justify-content:flex-start!important;gap:14px!important;padding:28px clamp(20px,6vw,110px)!important}
  [data-beat]:first-of-type{padding-top:56px!important}
  [data-beat]:last-of-type{padding-bottom:56px!important}
  [data-beat] h3,[data-beat] p{opacity:1!important}
  [data-beat-img]{margin-bottom:6px!important}
  [data-waves]{visibility:hidden!important} /* invisible on phones but still measured, so the sun keeps its travel when the window is widened */
  [data-offset]{padding-top:0!important}
  /* events: rows sit closer together on phones */
  #events [style*="gap:clamp(80px,14vh,200px)"]{gap:56px!important;margin-top:40px!important}
}

/* ---- legal pages (index.php) ---- */
.legal{padding:clamp(140px,20vh,200px) clamp(20px,5vw,96px) clamp(80px,12vh,140px)}
.legal__article{max-width:760px;margin:0 auto}
.legal__crumb{display:flex;gap:12px;align-items:center;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6B655B;margin-bottom:28px}
.legal__crumb span[aria-hidden]{width:24px;height:1px;background:currentColor}
.legal__h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.01em;margin:0 0 clamp(28px,5vh,48px)}
.legal__body{font-size:16px;line-height:1.75;color:#2A2823}
.legal__body p{margin:0 0 1em}
.legal__body h2,.legal__body h3,.legal__body h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:1.15;margin:1.6em 0 .5em}
.legal__body h2{font-size:32px}.legal__body h3{font-size:26px}.legal__body h4{font-size:22px}
.legal__body ul,.legal__body ol{margin:0 0 1em;padding-left:1.3em}
.legal__body li{margin:.25em 0}
.legal__body a{border-bottom:1px solid currentColor}
.legal__body strong{font-weight:600}
