/* Atelier by Ross Mooney, 2026 redesign.
   Black and white only. Cormorant Garamond for display and reading, Cinzel for
   small inscription labels, Mrs Saint Delafield for script accents.
   Behaviour (nav, reveals, gallery, forms, tickets) lives in site.js and tickets.js. */

:root{
  --ink:#000; --ink2:#0B0B0B; --ink3:#151515; --paper:#FFF; --paper2:#F6F6F4;
  --line-d:rgba(255,255,255,.22); --line-l:rgba(0,0,0,.18);
  --mute-d:#A9A9A9; --mute-l:#5A5A5A; --body-l:#2E2E2E;
  --fd:'Cormorant Garamond',Georgia,serif; --fl:'Cinzel',Georgia,serif;
  --fs:'Mrs Saint Delafield',cursive; --fb:Helvetica,Arial,sans-serif;
  --black:#000; --panel:#0A0A0A; --panel2:#121212; --edge-d:#262626; --muted-d:#A8A8A8; --fh:var(--fd);
  --wrap:1240px; --gut:clamp(20px,4vw,56px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--fd);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-family:var(--fd);font-weight:400}
p{margin:0}
::selection{background:var(--paper);color:var(--ink)}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.a-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.a-skip{position:absolute;left:-9999px;top:0;z-index:300;background:#fff;color:#000;padding:12px 18px;font:11px var(--fb)}
.a-skip:focus{left:12px;top:12px}

/* ---------- labels, script, ornament ---------- */
.a-label{font-family:var(--fl);font-size:11px;letter-spacing:.32em;text-transform:uppercase;font-weight:400}
.a-script{font-family:var(--fs);font-weight:400;line-height:.8;letter-spacing:0;text-transform:none}
.a-orn{display:flex;align-items:center;justify-content:center;gap:14px;color:currentColor;margin:28px auto}
.a-orn::before,.a-orn::after{content:"";height:1px;width:min(90px,18vw);background:currentColor;opacity:.55}
.a-orn i{width:7px;height:7px;border:1px solid currentColor;transform:rotate(45deg);display:block}
.a-orn.left{justify-content:flex-start}
.a-orn.left::before{display:none}

/* ---------- buttons ---------- */
.a-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 34px;font-family:var(--fl);font-size:11px;letter-spacing:.28em;text-transform:uppercase;border:1px solid currentColor;transition:background .3s ease,color .3s ease,border-color .3s ease;cursor:pointer}
.a-btn.solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.a-btn.solid:hover{background:transparent;color:var(--paper)}
.a-btn.ghost{color:var(--paper);border-color:rgba(255,255,255,.55)}
.a-btn.ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.a-light .a-btn.solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.a-light .a-btn.solid:hover{background:transparent;color:var(--ink)}
.a-light .a-btn.ghost{color:var(--ink);border-color:rgba(0,0,0,.45)}
.a-light .a-btn.ghost:hover{background:var(--ink);color:var(--paper)}
.a-link{font-family:var(--fl);font-size:11px;letter-spacing:.28em;text-transform:uppercase;display:inline-flex;gap:12px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:6px;transition:gap .3s ease}
.a-link:hover{gap:20px}
.a-btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* ---------- top strip + nav ---------- */
.a-strip{background:var(--ink);border-bottom:1px solid var(--line-d);color:var(--mute-d)}
.a-strip .a-wrap{display:flex;justify-content:space-between;gap:16px;min-height:38px;align-items:center;font-family:var(--fl);font-size:10px;letter-spacing:.28em;text-transform:uppercase}
.a-strip a:hover{color:#fff}
[data-nav]{position:sticky;top:0;z-index:100;background:var(--ink);border-bottom:1px solid var(--line-d);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 var(--gut);transition:background .3s ease}
.a-brand{display:flex;align-items:center;padding:14px 0}
.a-brand img{height:46px;width:auto}
[data-nav-burger]{display:none;align-items:center;gap:12px;background:transparent;border:1px solid var(--line-d);color:#fff;padding:12px 16px;cursor:pointer;font-family:var(--fl);font-size:10px;letter-spacing:.26em;text-transform:uppercase}
[data-nav-burger] b{display:flex;flex-direction:column;gap:4px}
[data-nav-burger] b i{display:block;width:18px;height:1px;background:currentColor}
[data-nav-links]{display:flex;align-items:center;gap:clamp(6px,1.2vw,20px);font-family:var(--fl);font-size:11px;letter-spacing:.24em;text-transform:uppercase}
[data-nav-links] a{position:relative;padding:12px 6px;color:#DADADA;transition:color .25s ease}
[data-nav-links] a::after{content:"";position:absolute;left:6px;right:6px;bottom:4px;height:1px;background:#fff;transform:scaleX(0);transition:transform .35s ease}
[data-nav-links] a:hover,[data-nav-links] a[aria-current="page"]{color:#fff}
[data-nav-links] a:hover::after,[data-nav-links] a[aria-current="page"]::after{transform:scaleX(1)}
[data-nav-links] a.a-nav-cta{border:1px solid #fff;padding:13px 22px;margin-left:10px;color:#fff}
[data-nav-links] a.a-nav-cta::after{display:none}
[data-nav-links] a.a-nav-cta:hover{background:#fff;color:#000}
@media(max-width:1179px){
  [data-nav]{padding:0 16px}
  [data-nav-links]{gap:0;padding:6px 0 14px}
  [data-nav-links] a{padding:16px 4px;border-bottom:1px solid var(--line-d);font-size:12px}
  [data-nav-links] a::after{display:none}
  [data-nav-links] a[aria-current="page"]{padding-left:14px;border-left:1px solid #fff}
  [data-nav-links] a.a-nav-cta{margin:14px 0 0;text-align:center;justify-content:center;display:flex}
  .a-strip .a-hide-sm{display:none}
}

/* ---------- hero ---------- */
.a-hero{position:relative;min-height:calc(100svh - 113px);display:grid;place-items:center;overflow:hidden;background:#000;text-align:center;isolation:isolate}
.a-hero.short{min-height:min(76svh,680px)}
.a-hero>img,.a-hero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.a-hero>video{opacity:0;transition:opacity .6s ease}
.a-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,rgba(0,0,0,.38) 0%,rgba(0,0,0,.72) 70%,rgba(0,0,0,.86) 100%)}
.a-hero::after{content:"";position:absolute;inset:clamp(12px,2.2vw,26px);border:1px solid rgba(255,255,255,.42);outline:1px solid rgba(255,255,255,.16);outline-offset:-8px;pointer-events:none}
.a-hero-in{padding:clamp(90px,12vw,140px) var(--gut);max-width:1000px}
.a-hero .a-script{font-size:clamp(64px,9vw,128px);display:block;margin-bottom:-.12em;color:#fff;opacity:.95}
.a-hero h1{font-size:clamp(40px,6.4vw,92px);line-height:1.02;font-style:italic;font-weight:400;letter-spacing:-.01em;text-wrap:balance}
.a-hero .a-lede{font-size:clamp(19px,1.9vw,23px);line-height:1.7;color:#E6E6E6;max-width:46ch;margin:0 auto 38px;text-wrap:pretty}
.a-hero .a-label{color:#E0E0E0}
.a-scroll{position:absolute;left:50%;bottom:clamp(30px,4vw,48px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--fl);font-size:9px;letter-spacing:.32em;color:#CFCFCF}
.a-scroll::after{content:"";width:1px;height:40px;background:linear-gradient(#fff,transparent);animation:aDrop 2.4s ease-in-out infinite}
@keyframes aDrop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(prefers-reduced-motion:reduce){.a-scroll::after{animation:none}}

/* ---------- sections ---------- */
.a-sec{padding:clamp(80px,10vw,140px) 0;position:relative}
.a-dark{background:var(--ink);color:var(--paper)}
.a-dark2{background:var(--ink2);color:var(--paper)}
.a-light{background:var(--paper);color:var(--ink)}
.a-light2{background:var(--paper2);color:var(--ink)}
.a-head{text-align:center;max-width:760px;margin:0 auto clamp(48px,6vw,80px)}
.a-head .a-script{font-size:clamp(54px,6vw,84px);display:block;margin-bottom:-.18em}
.a-head h2{font-size:clamp(34px,4.4vw,60px);line-height:1.1;font-style:italic;text-wrap:balance}
.a-head p{font-size:20px;line-height:1.75;margin-top:22px;text-wrap:pretty}
.a-dark .a-head p,.a-dark2 .a-head p{color:#CFCFCF}
.a-light .a-head p,.a-light2 .a-head p{color:var(--body-l)}
.a-head .a-label{display:block;margin-bottom:18px}
.a-dark .a-label,.a-dark2 .a-label{color:var(--mute-d)}
.a-light .a-label,.a-light2 .a-label{color:var(--mute-l)}
.a-prose p{font-size:20px;line-height:1.8;text-wrap:pretty}
.a-prose p+p{margin-top:20px}
.a-light .a-prose p,.a-light2 .a-prose p{color:var(--body-l)}
.a-dark .a-prose p,.a-dark2 .a-prose p{color:#D2D2D2}

/* split: arched image and text */
.a-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,110px);align-items:center}
.a-split.rev{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.a-split.rev .a-arch{order:2}
.a-arch{position:relative;padding:14px}
.a-arch::before{content:"";position:absolute;inset:0;border:1px solid currentColor;border-radius:999px 999px 0 0;opacity:.5;pointer-events:none}
.a-arch>div{border-radius:999px 999px 0 0;overflow:hidden;aspect-ratio:4/5.2}
.a-arch img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.a-arch:hover img{transform:scale(1.04)}
.a-split h2{font-size:clamp(34px,4.2vw,58px);line-height:1.1;font-style:italic;text-wrap:balance}
.a-split .a-script{font-size:clamp(50px,5.4vw,78px);display:block;margin-bottom:-.16em}
.a-split .a-label{display:block;margin-bottom:16px}
.a-facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-top:1px solid var(--line-l);border-bottom:1px solid var(--line-l)}
.a-facts>div{padding:22px 10px;text-align:center}
.a-facts>div+div{border-left:1px solid var(--line-l)}
.a-facts span{display:block;font-family:var(--fl);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--mute-l)}
.a-facts b{display:block;font-weight:400;font-style:italic;font-size:22px;margin-top:6px}
.a-dark .a-facts,.a-dark .a-facts>div+div{border-color:var(--line-d)}
.a-dark .a-facts span{color:var(--mute-d)}

/* steps with roman numerals */
.a-steps{display:grid;grid-template-columns:repeat(var(--n,3),1fr);border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
.a-steps>div{padding:clamp(36px,4vw,56px) clamp(20px,3vw,40px);text-align:center}
.a-steps>div+div{border-left:1px solid var(--line-d)}
.a-steps .a-num{font-family:var(--fd);font-style:italic;font-size:clamp(46px,5vw,64px);line-height:1;color:#fff;opacity:.9}
.a-steps h3{font-family:var(--fl);font-size:13px;letter-spacing:.26em;text-transform:uppercase;margin:22px 0 14px}
.a-steps p{font-size:19px;line-height:1.7;color:#C9C9C9;max-width:32ch;margin:0 auto}
.a-light .a-steps,.a-light .a-steps>div+div{border-color:var(--line-l)}
.a-light .a-steps .a-num{color:var(--ink)}
.a-light .a-steps p{color:var(--body-l)}

/* experience arches */
.a-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.a-exp{display:flex;flex-direction:column;align-items:center;text-align:center;color:inherit}
.a-exp .a-arch{width:100%}
.a-exp .a-arch>div{aspect-ratio:3/4.1}
.a-exp h3{font-size:clamp(30px,2.8vw,40px);font-style:italic;margin-top:30px}
.a-exp p{font-size:19px;line-height:1.7;margin:14px auto 24px;max-width:34ch;color:var(--body-l)}
.a-dark .a-exp p{color:#C9C9C9}

/* statement over film */
.a-film{position:relative;overflow:hidden;isolation:isolate;text-align:center;padding:clamp(120px,16vw,200px) 0;background:#000}
.a-film>img,.a-film>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.a-film>video{opacity:0;transition:opacity .8s ease}
.a-film::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.66);z-index:-1}
.a-film blockquote{margin:0 auto;max-width:900px;padding:0 var(--gut)}
.a-film blockquote p{font-size:clamp(32px,4.4vw,60px);line-height:1.16;font-style:italic;text-wrap:balance}
.a-film .a-label{display:block;color:#D8D8D8;margin-bottom:26px}
.a-film .a-btns{margin-top:40px}

/* event list */
.a-list{border-top:1px solid var(--line-d)}
.a-row{display:grid;grid-template-columns:150px 1fr auto;gap:30px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line-d);color:inherit;transition:padding .35s ease}
a.a-row:hover{padding-left:14px;padding-right:14px}
.a-row .a-date{font-family:var(--fl);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mute-d);line-height:1.8}
.a-row .a-date b{display:block;font-family:var(--fd);font-style:italic;font-weight:400;font-size:44px;letter-spacing:0;color:#fff;line-height:1}
.a-row h3{font-size:clamp(28px,3vw,40px);font-style:italic}
.a-row p{font-size:18px;color:#BDBDBD;margin-top:6px}
.a-pill{font-family:var(--fl);font-size:10px;letter-spacing:.26em;text-transform:uppercase;border:1px solid rgba(255,255,255,.6);padding:12px 18px;white-space:nowrap}

/* gallery strip */
.a-strip4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.a-strip4 a{position:relative;overflow:hidden;aspect-ratio:3/4;display:block}
.a-strip4 img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s ease}
.a-strip4 a:hover img{transform:scale(1.05)}
.a-strip4 a::after{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.5);pointer-events:none;transition:inset .4s ease}
.a-strip4 a:hover::after{inset:18px}

/* journal cards */
.a-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,44px)}
.a-post{display:flex;flex-direction:column;color:inherit}
.a-post .a-img{overflow:hidden;aspect-ratio:4/3;position:relative}
.a-post .a-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.a-post:hover .a-img img{transform:scale(1.05)}
.a-post .a-label{margin-top:24px;color:var(--mute-l)}
.a-dark .a-post .a-label{color:var(--mute-d)}
.a-post h3{font-size:clamp(26px,2.3vw,32px);font-style:italic;line-height:1.2;margin-top:12px;text-wrap:balance}
.a-post p{font-size:18px;line-height:1.7;margin-top:12px;color:var(--body-l)}
.a-dark .a-post p{color:#C4C4C4}
.a-post .a-link{margin-top:22px;align-self:flex-start}

/* FAQ */
.a-faq{max-width:900px;margin:0 auto;border-top:1px solid var(--line-l)}
.a-faq [data-accordion-item]{border-bottom:1px solid var(--line-l)}
.a-faq button{width:100%;display:flex;justify-content:space-between;gap:24px;align-items:center;background:none;border:0;color:inherit;cursor:pointer;text-align:left;padding:30px 4px;font-family:var(--fd);font-size:clamp(23px,2.4vw,30px);font-style:italic}
.a-faq [data-accordion-mark]{font-family:var(--fd);font-style:normal;font-size:30px;line-height:1;transition:transform .35s ease;flex:0 0 auto}
.a-faq [data-accordion-panel] p{font-size:19px;line-height:1.8;color:var(--body-l);padding:0 4px 30px;max-width:70ch}
.a-faq [data-accordion-item]{background:transparent!important}

/* article */
.a-article{max-width:760px;margin:0 auto}
.a-article .a-meta{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-family:var(--fl);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--mute-l)}
.a-article h2{font-size:clamp(28px,3vw,38px);font-style:italic;margin:54px 0 18px;line-height:1.2}
.a-article p,.a-article li{font-size:20px;line-height:1.85;color:var(--body-l)}
.a-article p+p{margin-top:20px}
.a-article ul{padding-left:22px;margin:18px 0}
.a-article li+li{margin-top:10px}
.a-article .a-drop::first-letter{font-family:var(--fd);font-style:italic;float:left;font-size:92px;line-height:.82;padding:8px 14px 0 0;color:#000}
.a-article figure{margin:48px 0}
.a-article figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
.a-article figcaption{font-family:var(--fl);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--mute-l);margin-top:12px;text-align:center}
.a-article .a-end{margin-top:64px;padding:44px;border:1px solid var(--ink);outline:1px solid var(--line-l);outline-offset:-9px;text-align:center}
.a-article .a-end p{font-size:20px}
.a-article .a-end .a-btns{margin-top:26px}

/* enquiry/booking blocks carried over: white card on black */
.a-formsec{background:var(--ink2);padding:clamp(80px,9vw,120px) 0}
.a-formsec .a-head{margin-bottom:44px}
.a-formsec .a-head h2{color:#fff}
.a-formwrap{max-width:900px;margin:0 auto;padding:0 var(--gut)}
.a-formwrap>p{font-size:19px;line-height:1.7;color:#CFCFCF;text-align:center;margin:-18px auto 30px;max-width:56ch}
.a-formwrap>p a{border-bottom:1px solid currentColor}

/* footer */
.a-foot{background:var(--ink);border-top:1px solid var(--line-d);color:var(--mute-d);padding:clamp(70px,8vw,110px) 0 30px;text-align:center}
.a-foot .a-script{font-size:clamp(80px,10vw,140px);color:#fff;display:block}
.a-foot .a-tag{font-family:var(--fl);font-size:11px;letter-spacing:.42em;text-transform:uppercase;margin-top:6px;color:#CFCFCF}
.a-foot nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin:44px auto 0;font-family:var(--fl);font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.a-foot nav a{color:#DADADA}
.a-foot nav a:hover{color:#fff}
.a-foot .a-contact{margin-top:34px;font-size:20px;font-style:italic;color:#E2E2E2}
.a-foot .a-contact a{border-bottom:1px solid rgba(255,255,255,.4)}
.a-foot .a-base{margin-top:60px;padding-top:24px;border-top:1px solid var(--line-d);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-family:var(--fl);font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:#7C7C7C}

/* ---------- carried over from the previous stylesheet ---------- */
/* first visit logo intro */
html.pm-intro body::before,.pm-loader{content:"";position:fixed;inset:0;z-index:9999;background:#000 url('/images/atelier-logo-intro.png') center/min(560px,82vw) auto no-repeat}
html.pm-intro body::before{pointer-events:none;animation:pmLogoIn 1.8s cubic-bezier(.18,.82,.24,1) both,pmOut .9s ease 3.8s forwards}
@keyframes pmOut{to{opacity:0;visibility:hidden}}
.pm-loader{transition:opacity .9s ease,visibility .9s ease}
.pm-loader.out{opacity:0;visibility:hidden}
.pm-loader::after{content:"";position:absolute;left:50%;top:calc(50% + min(104px,16vw));width:180px;height:1px;margin-left:-90px;background:#fff;transform-origin:center;animation:pmLine 1.2s ease .6s both}
@keyframes pmLogoIn{from{opacity:0;background-size:min(500px,74vw) auto}to{opacity:1;background-size:min(560px,82vw) auto}}
@keyframes pmLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){html.pm-intro body::before{display:none}.pm-loader::after{animation:none}}

/* gallery canvas and viewer */
.pm-gallery{background:#fff;padding:14px;display:grid;gap:14px}
.pm-gallery>section{display:flex;flex-wrap:wrap;gap:14px}
.pm-gallery [data-reveal="image"]{position:relative;overflow:hidden}
.pm-gallery [data-reveal="image"] img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){.pm-gallery [data-reveal="image"]:hover img{transform:scale(1.045)}}
.pm-gallery [data-reveal="image"]::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.5);pointer-events:none;z-index:2;transition:inset .5s ease,border-color .5s ease}
.pm-gallery [data-reveal="image"]:hover::after{inset:20px;border-color:#fff}
.pm-view{position:absolute;inset:auto 24px 24px auto;z-index:3;display:flex;align-items:center;gap:16px;background:rgba(0,0,0,.82);border:1px solid #fff;color:#FFF;padding:11px 16px;min-height:44px;font:10px var(--fl);letter-spacing:.22em;text-transform:uppercase;cursor:pointer;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease}
.pm-gallery [data-reveal="image"]:hover .pm-view,.pm-view:focus-visible{opacity:1;transform:none}
@media(hover:none){.pm-view{opacity:1;transform:none}}
.pm-dialog{width:min(1100px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:10px;border:1px solid #fff;background:#0A0A0A;color:#FFF;outline:1px solid rgba(255,255,255,.38);outline-offset:-7px}
.pm-dialog::backdrop{background:rgba(0,0,0,.88);backdrop-filter:blur(8px)}
.pm-dialog .bar{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 14px;font:10px var(--fl);letter-spacing:.22em;text-transform:uppercase;color:#A8A8A8}
.pm-dialog button{background:transparent;border:1px solid rgba(255,255,255,.38);color:#FFF;min-width:44px;min-height:44px;cursor:pointer;font:12px var(--fb);letter-spacing:.12em}
.pm-dialog button:hover{background:#fff;color:#000}
.pm-dialog .stage{height:min(68dvh,700px);display:grid;place-items:center;background:#000}
.pm-dialog .stage img{max-width:100%;max-height:min(68dvh,700px);object-fit:contain}
.pm-dialog .cap{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:14px 12px 6px}
.pm-dialog .cap p{margin:0;text-align:center;font-family:var(--fd);font-style:italic;font-size:19px;color:#E4E4E4}

/* white form and booking cards */
.pm-card{background:#fff!important;color:#14130F;border:1px solid #14130F!important;outline:1px solid rgba(20,19,15,.32);outline-offset:-8px}
.pm-card input,.pm-card textarea{background:#FFFFFF!important}
input,textarea,button{font-family:var(--fb);font-size:12px;letter-spacing:.08em}
input,textarea{width:100%;background:transparent;border:1px solid var(--edge-d);color:var(--paper);padding:17px 18px;outline:none;transition:border-color 200ms ease}
input{min-height:56px}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:#8A8A8A}
form[data-enquiry-form] input,form[data-enquiry-form] textarea,form[data-booking-form] input,form[data-booking-form] textarea{background:#fff;border:1px solid #B4B4B4;color:#14130F;font-size:15px}
form[data-enquiry-form] input:focus,form[data-enquiry-form] textarea:focus,form[data-booking-form] input:focus,form[data-booking-form] textarea:focus{border-color:#14130F}
form input::placeholder,form textarea::placeholder{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-family:var(--fb);color:#5E5E5E}
form [data-select]>button,form [data-select] [data-opt]{text-transform:uppercase!important;letter-spacing:.16em!important;font-size:11px!important}
form button[type="submit"]{font-family:var(--fl)!important;letter-spacing:.26em!important}
.pm-btn:hover{background:#DADADA!important;color:#000!important}

/* event cards (events page) */
.pm-event{border:1px solid #14130F!important;outline:1px solid rgba(20,19,15,.28);outline-offset:-10px;padding:12px}
.pm-event>div:first-child{border:1px solid rgba(20,19,15,.25)}
.pm-event>div:last-child{text-align:center;align-items:center;padding:28px 16px 18px!important}
.pm-event>div:last-child>p:first-child{color:#6A6A6A!important;letter-spacing:.3em!important;font-family:var(--fl)!important}
.pm-event h3{font-style:italic;font-weight:400!important;font-size:clamp(28px,2.6vw,36px)!important}
.pm-event h3+p{font-style:normal!important;font-size:18px!important;color:#5A5A5A!important}
.pm-event h3+p::after{content:"";display:block;width:56px;height:1px;background:#14130F;margin:22px auto 0;opacity:.6}
.pm-event p{max-width:40ch;margin-left:auto;margin-right:auto;text-align:center!important}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]{width:100%;gap:0!important;padding-top:0!important;border:1px solid #D8D8D8!important}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div{flex:1 1 0!important;min-width:0;padding:14px 6px;border-left:1px solid #D8D8D8}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div:first-child{border-left:0}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"] p{max-width:none;margin-left:0;margin-right:0}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div p:last-child{font-size:16px!important}
.pm-event details{width:100%;text-align:left}
.pm-event details p{text-align:left!important;max-width:none}
.pm-event>div:last-child>a,.pm-event>div:last-child>span[aria-disabled]{width:100%;font-family:var(--fl)!important}
.pm-event>div:last-child>div[style*="flex:1; min-height:28px"]{flex:0 0 28px!important}
.pm-event>div:last-child>p:nth-of-type(3){flex:1 0 auto}
@media(max-width:1100px){.pm-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.pm-events-grid{grid-template-columns:minmax(0,1fr)!important}}
@media(max-width:600px){.pm-event{padding:10px;outline-offset:-6px}.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div{flex-basis:100%!important;border-left:0;border-top:1px solid #D8D8D8}.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div:first-child{border-top:0}}
.a-legacy h2{font-style:italic;font-weight:400!important}
.a-legacy .pm-eyebrow{color:#A8A8A8!important;font-family:var(--fl)!important}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .a-split,.a-split.rev{grid-template-columns:1fr}
  .a-split.rev .a-arch{order:0}
  .a-split .a-arch{max-width:460px;margin:0 auto;width:100%}
  .a-trio,.a-posts{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  .a-steps{grid-template-columns:1fr}
  .a-steps>div+div{border-left:0;border-top:1px solid var(--line-d)}
  .a-light .a-steps>div+div{border-top-color:var(--line-l)}
  .a-strip4{grid-template-columns:repeat(2,1fr)}
  .a-row{grid-template-columns:110px 1fr}
  .a-row .a-pill{grid-column:2;justify-self:start}
}
@media(max-width:600px){
  .a-hero{min-height:calc(100svh - 113px)}
  .a-hero::after{inset:10px;outline-offset:-6px}
  .a-facts{grid-template-columns:1fr}
  .a-facts>div+div{border-left:0;border-top:1px solid var(--line-l)}
  .a-row{grid-template-columns:1fr;gap:12px}
  .a-row .a-pill{grid-column:1}
  .a-row .a-date b{display:inline;font-size:30px;margin-right:8px}
  .a-btn{width:100%}
  .a-foot .a-base{justify-content:center;text-align:center}
  .pm-gallery{padding:8px;gap:8px}.pm-gallery>section{gap:8px}
  .pm-gallery [data-reveal="image"]::after{inset:9px}
  .a-article .a-end{padding:30px 20px}
}

/* refinements */
.a-hero .a-script{margin-top:14px}
@media(max-width:700px){
  .a-strip .a-wrap{justify-content:center}
  .a-strip .a-wrap>span{display:none}
  .a-hero .a-label{font-size:10px;letter-spacing:.24em}
}

/* ---------- alignment pass (5 Nov) ---------- */
/* experience cards: links sit on one line across all three */
.a-trio{align-items:stretch}
.a-exp{height:100%}
.a-exp p{flex:1 0 auto}
.a-exp .a-link{margin-top:auto}

/* home gallery: continuous loop, no frames */
.a-marquee{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.a-track{display:flex;gap:12px;width:max-content;animation:aLoop 60s linear infinite}
.a-marquee:hover .a-track{animation-play-state:paused}
.a-track a{flex:0 0 auto;width:clamp(220px,24vw,340px);aspect-ratio:3/4;overflow:hidden;display:block}
.a-track img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.a-track a:hover img{transform:scale(1.05)}
@keyframes aLoop{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 6px))}}
@media(prefers-reduced-motion:reduce){.a-track{animation:none}.a-marquee{overflow-x:auto}}

/* blog: separate cards, equal height, buttons aligned, rows of three */
.a-posts{align-items:stretch}
.a-post{height:100%;background:#fff;border:1px solid rgba(0,0,0,.16);outline:1px solid rgba(0,0,0,.07);outline-offset:-8px;transition:border-color .3s ease,box-shadow .4s ease,transform .4s ease}
.a-post:hover{border-color:#000;box-shadow:0 28px 50px -30px rgba(0,0,0,.35);transform:translateY(-4px)}
.a-post .a-img{margin:10px 10px 0}
.a-post .a-body{flex:1;display:flex;flex-direction:column;padding:26px 28px 30px;text-align:left}
.a-post .a-body .a-label{margin-top:0;display:block}
.a-post .a-tag{display:block;margin-top:8px;font-family:var(--fl);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#000}
.a-post h3{margin-top:16px}
.a-post .a-body p{flex:1 0 auto}
.a-post .a-link{margin-top:24px;align-self:flex-start}
.a-dark .a-post .a-label{color:var(--mute-l)}
.a-dark .a-post p{color:var(--body-l)}
@media(max-width:980px){.a-posts{max-width:560px}}

/* events: fact boxes keep text clear of their borders */
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div{padding:14px 10px!important}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div p:last-child{font-size:15px!important;line-height:1.35!important;overflow-wrap:anywhere}

/* gallery page: no frames on the images */
.pm-gallery [data-reveal="image"]::after{display:none}
/* loop edges: soft fade drawn on top instead of a mask */
.a-marquee{-webkit-mask-image:none;mask-image:none;position:relative}
.a-marquee::before,.a-marquee::after{content:"";position:absolute;top:0;bottom:0;width:6%;z-index:2;pointer-events:none}
.a-marquee::before{left:0;background:linear-gradient(90deg,#0B0B0B,rgba(11,11,11,0))}
.a-marquee::after{right:0;background:linear-gradient(270deg,#0B0B0B,rgba(11,11,11,0))}

/* events: fact boxes as one full-width row (Where) over two (Tickets, Guests) */
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]{display:grid!important;grid-template-columns:1fr 1fr}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div{border-left:0!important;border-top:0!important;padding:14px 12px!important}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div:first-child{grid-column:1 / -1;border-bottom:1px solid #D8D8D8!important}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div:last-child{border-left:1px solid #D8D8D8!important}
.pm-event>div:last-child>div[style*="border-top:1px solid #E4E4E4"]>div p:last-child{overflow-wrap:normal!important;white-space:nowrap;font-size:17px!important}

/* ---------- overflow guard (Safari sizes 1fr columns to full image width) ---------- */
main,.a-foot{overflow-x:clip}
.a-posts{grid-template-columns:repeat(3,minmax(0,1fr))}
.a-trio{grid-template-columns:repeat(3,minmax(0,1fr))}
.a-steps{grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
.a-split{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.a-split.rev{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.a-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.a-posts>*,.a-trio>*,.a-steps>*,.a-split>*,.a-facts>*,.pm-events-grid>*{min-width:0}
.a-post .a-img,.a-arch>div,.a-track a{min-width:0}
.a-post .a-img img,.a-arch img,.a-hero>img,.a-film>img,.a-article figure img{max-width:100%;min-width:0}
@media(max-width:980px){
  .a-split,.a-split.rev,.a-steps{grid-template-columns:minmax(0,1fr)}
  .a-trio,.a-posts{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){.a-facts{grid-template-columns:minmax(0,1fr)}}
