/* VIP Weddings Films · editorial light layout (Stitch direction) */
:root{
  --ivory:#fbfaf7; --paper:#f4f2ee; --ink:#1b1a18; --soft:#55524d; --muted:#8c8780; --rule:#e4e0d9;
  --serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --w:1440px; --gut:24px; /* Stitch: sections max 1440, side margin 24px mobile / 80px desktop, content 1280 */
}
@media (min-width:768px){:root{--gut:80px}}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
em{font-style:italic}
.wrap{max-width:var(--w);margin-inline:auto;padding-inline:var(--gut)}
.narrow{max-width:760px;margin-inline:auto;padding-inline:var(--gut)}
section{position:relative}
.on-paper{background:var(--paper)}
.rule-top{border-top:1px solid var(--rule)}

/* type */
.eyebrow{font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);display:block}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;letter-spacing:-.01em}
h1{font-size:clamp(36px,5.4vw,68.4px)}
h2{font-size:clamp(32px,4.2vw,52px)}
h3{font-size:clamp(22px,2.2vw,30px)}
h1 em,h2 em,h3 em{font-style:italic}
.center{text-align:center}
.sub{color:var(--soft);font-size:14.5px;max-width:560px;margin:18px auto 0}
.shead{text-align:center;margin-bottom:64px}
.shead .eyebrow{margin-bottom:18px}
.shead .line{width:180px;height:1px;background:var(--rule);margin:26px auto 0}
.pad{padding-block:clamp(84px,11vw,140px)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 30px;border:1px solid var(--ink);font-size:10.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;transition:background .3s,color .3s;cursor:pointer;background:none}
.btn:hover{background:var(--ink);color:var(--ivory)}
.btn.dark{background:var(--ink);color:var(--ivory)}
.btn.dark:hover{background:transparent;color:var(--ink)}
.tlink{font-size:10.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px}
.tlink:hover{color:var(--muted)}
.ctas{display:flex;gap:28px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:34px}

/* header */
.nav{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.nav .in{max-width:2160px;margin-inline:auto;padding:12px var(--gut);display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.nav .l,.nav .r{display:flex;gap:30px;align-items:center;font-size:10.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase}
.nav .r{justify-content:flex-end}
.nav .l a:hover,.nav .r a:hover,.nav a[aria-current]{color:var(--muted)}
.nav .logo img{height:48px;width:auto;filter:invert(1)}
.nav .r .enq{border:1px solid var(--ink);padding:10px 18px}
.nav .r .enq:hover{background:var(--ink);color:var(--ivory)}
.nav .menu{display:none;background:none;border:0;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:500;cursor:pointer;justify-self:start}
.drawer{display:none}
@media (max-width:900px){
  .nav .l{display:none}
  .nav .menu{display:block}
  .nav .r .hs{display:none}
  .nav .logo img{height:40px}
  .drawer{position:fixed;inset:0;z-index:60;background:var(--ivory);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;font-family:var(--serif);font-size:30px;opacity:0;pointer-events:none;transition:opacity .3s}
  .drawer.open{opacity:1;pointer-events:auto}
  .drawer .x{position:absolute;top:22px;right:var(--gut);font-family:var(--sans);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;background:none;border:0;cursor:pointer}
}

/* hero */
.hero.full{padding:0}
.hero.full .frame{height:100vh;height:100svh;aspect-ratio:auto;background:#111}
.hero.full .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 75%,rgba(0,0,0,.35) 100%);pointer-events:none}
.hero.full .scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:#fff;font-size:10px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;padding-bottom:34px}
.hero.full .scroll::after{content:"";position:absolute;left:50%;bottom:0;width:1px;height:26px;background:rgba(255,255,255,.8);animation:drop 2s ease-in-out infinite}
@keyframes drop{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}}
.hero.full+.hero{padding-top:0}
/* nav over the hero video (home), turns solid after the video */
.nav.over{position:fixed;left:0;right:0;background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;transition:background .4s,color .4s,border-color .4s}
.nav.over .logo img{filter:none;transition:filter .4s}
.nav.over .r .enq{border-color:#fff}
.nav.over .r .enq:hover{background:#fff;color:var(--ink)}
.nav.over.solid{background:rgba(251,250,247,.94);border-bottom-color:var(--rule);color:var(--ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.nav.over.solid .logo img{filter:invert(1)}
.nav.over.solid .r .enq{border-color:var(--ink)}
.nav.over.solid .r .enq:hover{background:var(--ink);color:var(--ivory)}
.hero{padding-top:clamp(24px,4vw,52px)}
.hero .frame{position:relative;overflow:hidden;aspect-ratio:2.35/1;background:var(--paper)}
.hero video{width:100%;height:100%;object-fit:cover}
.hero .title{text-align:center;padding:clamp(56px,8vw,96px) 0 0}
.hero .title p{color:var(--soft);max-width:520px;margin:22px auto 0;font-size:14.5px}


/* manifesto */
.manifesto{text-align:center}
.manifesto .big{font-family:var(--serif);font-size:clamp(25px,3.2vw,40px);line-height:1.4;max-width:980px;margin:28px auto 0}
.manifesto .w{color:#d3cdc4;transition:color .5s}
.manifesto .w.on{color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:72px}
.stats div{padding:30px 10px;text-align:center}
.stats div+div{border-left:1px solid var(--rule)}
.stats b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1}
.stats span{display:block;margin-top:10px;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
@media (max-width:700px){.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){border-left:0}.stats div:nth-child(n+3){border-top:1px solid var(--rule)}}

/* split blocks (text + image) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);align-items:center}
.split.rev .media{order:-1}
.split h2{font-size:clamp(28px,3vw,40px)}
.split .txt .rl{width:56px;height:1px;background:var(--rule);margin:26px 0}
.split .txt p{color:var(--soft);margin-top:16px;max-width:470px}
.split .txt blockquote{font-style:italic;color:var(--ink);margin-top:22px;max-width:470px}
.split .txt .btn{margin-top:34px}
.split .media{position:relative;z-index:0}
.split .media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.split .media.bw img{filter:grayscale(1) contrast(1.05)}
.split .media.boxed{margin:0 16px 16px 0}
.split .media.boxed::after{content:"";position:absolute;inset:16px -16px -16px 16px;border:1px solid var(--rule);z-index:-1}
@media (max-width:820px){.split{grid-template-columns:1fr}.split.rev .media{order:0}}

/* collections */
.coll{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.coll>div{padding:34px 22px 28px;text-align:center;display:flex;flex-direction:column}
.coll>div+div{border-left:1px solid var(--rule)}
.coll h3{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;line-height:1.6}
.coll q{display:block;font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.55;color:var(--soft);margin:16px 0 0;quotes:none}
.coll cite{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:6px}
.coll details{margin-top:auto;padding-top:22px}
.coll summary{list-style:none;cursor:pointer;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.coll summary::-webkit-details-marker{display:none}
.coll summary::after{content:" +"}
.coll details[open] summary::after{content:" −"}
.coll .sum{font-size:13px;line-height:1.65;color:var(--soft);margin-top:18px}
.coll dl{text-align:left;margin-top:16px;font-size:12.5px;line-height:1.6;color:var(--soft)}
.coll dt{font-size:9.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin-top:14px}
.coll dd{margin-top:4px}
.coll dd ul{list-style:none}
.coll dd li{padding:6px 0;border-bottom:1px solid var(--rule)}
.coll dd li:last-child{border-bottom:0}
.sdebox{border:1px solid var(--rule);max-width:840px;margin:56px auto 0;padding:38px 28px;text-align:center;background:var(--ivory)}
.sdebox p{color:var(--soft);margin:10px auto 22px;max-width:520px}
@media (max-width:900px){.coll{grid-template-columns:1fr 1fr}.coll>div:nth-child(3){border-left:0}.coll>div:nth-child(n+3){border-top:1px solid var(--rule)}}
@media (max-width:520px){.coll{grid-template-columns:1fr}.coll>div+div{border-left:0;border-top:1px solid var(--rule)}}

/* film cards */
.feature,.fcard{display:block}
.ph{position:relative;overflow:hidden;background:var(--paper)}
.feature .ph{aspect-ratio:16/9}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.feature:hover img,.fcard:hover img{transform:scale(1.03)}
.play{position:absolute;left:50%;top:50%;width:74px;height:74px;margin:-37px 0 0 -37px;border-radius:50%;border:1px solid rgba(255,255,255,.9);display:grid;place-items:center;background:rgba(0,0,0,.14);transition:transform .4s}
.feature:hover .play,.fcard:hover .play{transform:scale(1.08)}
.play svg path{fill:#fff}
.fcard .play{width:56px;height:56px;margin:-28px 0 0 -28px}
.meta{display:block;margin-top:18px;font-size:10px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.feature h3,.fcard h3{margin-top:8px}
.feature p,.fcard p{color:var(--soft);font-size:13.5px;margin-top:8px;max-width:440px}
.feature .cap{text-align:center}
.feature .cap p{margin-inline:auto}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);margin-top:clamp(56px,7vw,90px)}
.trio .ph{aspect-ratio:4/5}
.trio.duo{grid-template-columns:1fr 1fr}
.trio.duo .ph{aspect-ratio:16/9}
@media (max-width:820px){.trio,.trio.duo{grid-template-columns:1fr}.trio .ph{aspect-ratio:16/11}}

/* portfolio grid */
.filters{display:flex;flex-wrap:wrap;justify-content:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);max-width:900px;margin:44px auto 0;padding:14px 0}
.filters button{background:none;border:0;cursor:pointer;padding:8px 22px;font-size:10px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);position:relative}
.filters button+button::before{content:"";position:absolute;left:0;top:30%;height:40%;width:1px;background:var(--rule)}
.filters button[aria-pressed="true"]{color:var(--ink);text-decoration:underline;text-underline-offset:7px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px) clamp(24px,4vw,56px);margin-top:clamp(56px,7vw,90px);list-style:none;align-items:start}
.pgrid li.lo{margin-top:clamp(0px,5vw,72px)}
.pgrid .ph{aspect-ratio:16/10}
.pgrid .tx{border-left:1px solid var(--rule);padding-left:14px;margin-top:16px}
.pgrid .meta{margin-top:0}
.note{max-width:860px;margin:clamp(90px,10vw,140px) auto 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:38px 10px;text-align:center;font-family:var(--serif);font-size:13px;letter-spacing:.08em;text-transform:uppercase;line-height:1.8}
.empty{text-align:center;color:var(--muted);margin-top:40px}
@media (max-width:700px){.pgrid{grid-template-columns:1fr}.pgrid li.lo{margin-top:0}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr)}
.pillars>div{padding:10px clamp(20px,3vw,40px)}
.pillars>div+div{border-left:1px solid var(--rule)}
.pillars .eyebrow{font-size:9.5px}
.pillars h3{font-size:clamp(19px,1.7vw,22px);text-transform:uppercase;letter-spacing:.02em;margin-top:22px}
.pillars p{color:var(--soft);font-size:13.5px;margin-top:18px}
@media (max-width:820px){.pillars{grid-template-columns:1fr}.pillars>div+div{border-left:0;border-top:1px solid var(--rule);padding-top:34px;margin-top:24px}}

/* ethos header (about) */
.ethos{padding-top:clamp(70px,9vw,120px)}
.ethos h1{font-size:clamp(36px,4.86vw,61.2px);margin-top:14px}
.ethos .lead{font-family:var(--serif);font-size:clamp(22px,2.4vw,31px);line-height:1.45;color:var(--soft);max-width:640px;margin:34px 0 0 clamp(0px,8vw,120px)}

/* team */
.people{display:flex;flex-wrap:wrap;justify-content:center;gap:56px 32px;max-width:1040px;margin-inline:auto}
.people .person{flex:0 0 calc((100% - 64px)/3);text-align:center}
.person .ph{width:min(220px,100%);aspect-ratio:1;border-radius:50%;margin:0 auto;border:1px solid var(--rule);display:grid;place-items:center;align-content:center}
.person .ph b{font-family:var(--serif);font-weight:400;font-size:52px;line-height:1;color:var(--muted)}
.person .ph small{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.person h3{font-size:22px;margin-top:22px}
.person span{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:8px}
@media (max-width:820px){.people .person{flex-basis:calc((100% - 32px)/2)}}
@media (max-width:460px){.people{gap:44px 18px}.people .person{flex-basis:calc((100% - 18px)/2)}.person h3{font-size:18px}}

/* venues */
.vlist{list-style:none;border-top:1px solid var(--rule);max-width:900px;margin-inline:auto}
.vlist li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 4px;border-bottom:1px solid var(--rule);transition:opacity .3s,padding .4s}
.vlist .vn{font-family:var(--serif);font-size:clamp(22px,2.6vw,32px)}
.vlist .ix{font-size:10px;letter-spacing:.24em;color:var(--muted);margin-right:22px}
.vlist .ct{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.vlist.hovering li{opacity:.35}
.vlist.hovering li.on{opacity:1;padding-left:16px}
.preview{position:fixed;z-index:40;width:240px;aspect-ratio:4/5;pointer-events:none;opacity:0;transform:scale(.94);transition:opacity .3s,transform .3s}
.preview.on{opacity:1;transform:none}
.preview img{width:100%;height:100%;object-fit:cover}
.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.logos div{background:var(--ivory);padding:38px 14px;text-align:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
@media (max-width:700px){.logos{grid-template-columns:1fr 1fr}}

/* testimonials */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:64px clamp(28px,4vw,56px);max-width:1000px;margin-inline:auto}
.tgrid figure{display:flex;flex-direction:column}
.tgrid blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(19px,1.7vw,22px);line-height:1.4;margin-top:14px;flex:1}
.tgrid figcaption{border-top:1px solid var(--rule);margin-top:28px;padding-top:16px;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase}
.tgrid figcaption span{color:var(--muted)}
.tgrid .eyebrow{font-size:9.5px}
.sample{align-self:flex-start;margin-top:12px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#a0583f;border:1px dashed #d8b4a6;padding:3px 7px}
@media (max-width:820px){.tgrid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.tgrid{grid-template-columns:1fr}}

/* faq */
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-child{border-top:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:24px 34px 24px 0;font-family:var(--serif);font-size:clamp(18px,1.8vw,22px);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:22px;font-family:var(--sans);font-weight:300;font-size:20px;color:var(--muted)}
.faq details[open] summary::after{content:"−"}
.faq details p{color:var(--soft);padding:0 34px 26px 0}

/* cta + form */
.cta h2{font-style:italic;font-size:clamp(28px,3.4vw,42px)}
.fm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:30px 34px;margin-top:56px;text-align:left}
.fm label{display:flex;flex-direction:column;gap:8px;font-size:9.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.fm input,.fm select,.fm textarea{border:0;border-bottom:1px solid #cfc9c0;background:transparent;padding:10px 0;font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink);border-radius:0;outline:none;font-weight:300}
.fm input:focus,.fm select:focus,.fm textarea:focus{border-bottom-color:var(--ink)}
.fm .full{grid-column:1/-1}
.fm .row{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:8px}
.fm .row span{font-size:12.5px;color:var(--muted)}
@media (max-width:640px){.fm{grid-template-columns:minmax(0,1fr)}}

/* login card */
.portal{display:grid;place-items:center;padding:clamp(60px,9vw,120px) var(--gut)}
.card-login{width:min(460px,100%);background:#fff;border:1px solid var(--rule);padding:clamp(36px,5vw,56px) clamp(26px,5vw,52px);text-align:center}
.card-login .lg{height:56px;margin:0 auto;filter:invert(1)}
.card-login h1{font-size:clamp(27px,3.06vw,34.2px);margin-top:26px}
.card-login .eyebrow{margin-top:14px;line-height:1.8}
.card-login form{display:flex;flex-direction:column;gap:26px;margin-top:38px;text-align:left}
.card-login .fm{display:flex;margin-top:38px}
.card-login .chk{display:flex;flex-direction:row;align-items:center;gap:10px;font-size:12.5px;color:var(--soft);text-transform:none;letter-spacing:0;font-weight:300}
.card-login .btn{width:100%}
.card-login .lost{display:block;margin-top:26px;font-size:12.5px;color:var(--soft)}
.card-login .lost:hover{color:var(--ink)}
.card-login .alt{display:block;margin-top:8px;font-size:11.5px;color:var(--muted)}

/* simple page head */
.phead{text-align:center;padding-top:clamp(70px,9vw,120px)}
.phead .eyebrow{margin-bottom:18px}
.phead p{color:var(--soft);max-width:560px;margin:20px auto 0}
.phead .line{width:180px;height:1px;background:var(--rule);margin:30px auto 0}
.thanks{min-height:62vh;display:grid;place-items:center;text-align:center;padding:clamp(70px,9vw,120px) var(--gut)}
.thanks p{color:var(--soft);max-width:520px;margin:24px auto 0}
.thanks .tlink{display:inline-block;margin-top:24px}

/* footer */
.foot{border-top:1px solid var(--rule);background:var(--paper)}
.foot .top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;padding-block:56px 40px}
.foot .lg{height:54px;filter:invert(1)}
.foot .addr{margin-top:20px;font-size:13px;color:var(--soft);line-height:1.9}
.foot .addr b{display:block;font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin-bottom:6px}
.foot .addr a:hover{color:var(--ink)}
.foot .links{display:grid;grid-template-columns:repeat(3,auto);gap:12px 48px;font-family:var(--serif);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase}
.foot .links a:hover{color:var(--muted)}
.foot .bot{border-top:1px solid var(--rule);padding-block:22px;font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
@media (max-width:560px){.foot .links{grid-template-columns:repeat(2,auto)}}

/* modal */
.modal{position:fixed;inset:0;z-index:100;background:rgba(20,19,17,.94);display:grid;place-items:center;padding:4vw}
.modal[hidden]{display:none}
.modal .box{width:min(1200px,100%);aspect-ratio:16/9;background:#000}
.modal iframe{width:100%;height:100%;border:0}
.modal .x{position:absolute;top:18px;right:22px;background:none;border:0;color:#fff;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;cursor:pointer}

/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}
:focus-visible{outline:1px solid var(--ink);outline-offset:4px}

.venue-cap{margin-top:14px;font-size:12px;font-weight:400;letter-spacing:.06em;color:var(--muted)}
.fm .privacy{grid-column:1/-1;font-size:11.5px;color:var(--muted);margin-top:-8px}
.fm select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:24px;cursor:pointer}

/* ===== mobile hardening (iOS Safari, Android Chrome) ===== */
html,body{overflow-x:clip}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
a,button,summary,select,input,textarea,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
img{height:auto}
.ph img,.split .media img,.hero video{height:100%}
.split .media img{height:auto}
/* safe areas (notch, home indicator, landscape) */
.wrap,.narrow{padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
.nav .in{padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
.nav.over{padding-top:env(safe-area-inset-top)}
.foot .bot{padding-bottom:max(22px,env(safe-area-inset-bottom))}
/* hero poster as background, portrait version on phones */
.hero.full .frame{background:#111 url(hero-poster.webp) center/cover no-repeat}
@media (max-aspect-ratio:1/1) and (max-width:900px){.hero.full .frame{background-image:url(hero-poster-mobile.webp)}}
.hero.full .scroll{bottom:max(28px,calc(env(safe-area-inset-bottom) + 16px))}
/* forms: 16px stops iOS zooming in on focus; fields never wider than the screen */
.fm input,.fm select,.fm textarea{font-size:16px;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none;border-radius:0;min-height:44px}
.fm textarea{min-height:110px;resize:vertical}
.fm label{min-width:0}
.card-login .chk input{width:20px;height:20px;min-height:0;-webkit-appearance:checkbox;appearance:auto;accent-color:var(--ink)}
.fm input::placeholder,.fm textarea::placeholder{color:#a8a39b;opacity:1}
/* menu drawer */
body.menu-open{overflow:hidden}
.drawer{padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom);overscroll-behavior:contain}
.drawer a{padding:6px 10px}
@media (max-width:900px){
  .nav .menu{min-height:44px;min-width:44px;padding:0 4px;text-align:left}
  .nav .r .enq{min-height:40px;display:inline-flex;align-items:center}
  .drawer .x{top:max(22px,calc(env(safe-area-inset-top) + 12px));min-height:44px;padding:0 6px}
}
/* comfortable tap targets on touch screens */
@media (pointer:coarse){
  .filters button{padding:14px 18px}
  .foot .links a,.foot .addr a{display:inline-block;padding:11px 0}
  .foot .links{gap:2px 40px}
  .tlink{display:inline-block;padding:14px 0 8px}
  .coll summary{padding:12px 0}
  .card-login .lost,.card-login .alt{padding:10px 0}
  .faq summary{padding-top:20px;padding-bottom:20px}
}
/* very small phones (iPhone SE 1st gen, small Android) */
@media (max-width:360px){
  :root{--gut:16px}
  h1{font-size:30.6px}
  .hero .title h1{font-size:29.7px}
  .nav .r .enq{padding:8px 12px;letter-spacing:.18em}
  .nav .logo img{height:36px}
  .filters button{padding:12px 12px;letter-spacing:.18em}
  .stats b{font-size:26px}
}
.foot .addr a{overflow-wrap:anywhere}
/* landscape phones: keep the hero and drawer usable */
@media (max-height:500px) and (orientation:landscape){
  .drawer{font-size:22px;gap:10px}
  .card-login{margin-block:10px}
}
@media (max-width:900px){
  .drawer{font-size:clamp(22px,5.2vh,30px);gap:clamp(6px,2.2vh,24px);overflow-y:auto;justify-content:safe center;padding-top:max(70px,calc(env(safe-area-inset-top) + 60px));padding-bottom:max(24px,env(safe-area-inset-bottom))}
}
@media (max-width:900px){.drawer a{line-height:1.2;padding:8px 12px}}
.card-login .chk{justify-content:flex-start}
.card-login .chk input{flex:0 0 20px;margin:0}
@media (max-width:600px){
  .vlist li{flex-direction:column;align-items:flex-start;gap:4px}
  .vlist li>span:first-child{display:flex;align-items:baseline}
  .vlist .ix{margin-right:14px}
  .vlist .ct{padding-left:32px}
  .nav .back-long{display:none}
}
@media (min-width:601px){.nav .back-short{display:none}}

/* venue cards with photos (same size for all, swipe for more) */
.vgrid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,48px) clamp(20px,3vw,36px);max-width:1000px;margin:0 auto clamp(40px,5vw,64px)}
.vcard{position:relative}
.vslides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:16/9;background:var(--paper);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.vslides::-webkit-scrollbar{display:none}
.vslides img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start;scroll-snap-stop:always}
.vprev,.vnext{position:absolute;top:calc((100% - 70px)/2);transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(251,250,247,.85);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.vprev{left:10px}.vnext{right:10px}
.vdots{position:absolute;left:0;right:0;top:0;aspect-ratio:16/9;display:flex;align-items:flex-end;justify-content:center;gap:6px;padding-bottom:12px;pointer-events:none}
.vdots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55)}
.vdots i.on{background:#fff}
.vtx{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin-top:16px}
.vtx .vn{font-family:var(--serif);font-size:clamp(20px,2vw,26px)}
.vtx .ix,.vtx .ct{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.vtx .ct{flex-basis:100%;padding-left:30px}
.vmore{max-width:1000px}
@media (max-width:700px){.vgrid{grid-template-columns:minmax(0,1fr)}}
@media (pointer:coarse){.vprev,.vnext{display:none}}
/* venue pages */
.crumbs{padding-top:22px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crumbs a{display:inline-block;padding:10px 0}
.crumbs a:hover{color:var(--ink)}
.vhead{padding-top:clamp(40px,6vw,80px)}
.vhead h1{font-size:clamp(30.6px,4.68vw,57.6px)}
.vhead .eyebrow{margin-bottom:18px}
.vfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);max-width:760px;margin:44px auto 0}
.vfacts div{padding:22px 8px;text-align:center}
.vfacts div+div{border-left:1px solid var(--rule)}
.vfacts b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(18px,2.2vw,28px);line-height:1.2}
.vfacts span{display:block;margin-top:8px;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.vhero{max-width:1100px;margin:clamp(40px,6vw,70px) auto 0}
.vhero+.venue-cap,.wrap>.venue-cap{max-width:1100px;margin-inline:auto}
.vbody h2{font-size:clamp(26px,3vw,36px);margin-top:48px}
.vbody h2:first-child{margin-top:0}
.vbody p{color:var(--soft);margin-top:16px}
.vspaces{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.vspaces li{border:1px solid var(--rule);padding:8px 14px;font-size:12.5px;color:var(--soft)}
.disclaim{max-width:760px;margin:40px auto 0;font-size:11.5px;color:var(--muted);text-align:center}
a.vtx{color:inherit}
a.vtx:hover .vn{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.vrow{display:flex;justify-content:space-between;align-items:baseline;gap:20px;width:100%}
.vlist li:has(.vrow){padding:0;border-bottom:1px solid var(--rule)}
.vlist .vrow{padding:22px 4px}
.vlist .vrow:hover .vn{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.vgrid .vcard>a{display:block;color:inherit}
.noimg{width:100%;aspect-ratio:16/9;background:var(--paper);display:grid;place-items:center;border:1px solid var(--rule)}
.noimg span{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
@media (max-width:600px){.vfacts{grid-template-columns:minmax(0,1fr)}.vfacts div+div{border-left:0;border-top:1px solid var(--rule)}.vlist .vrow{flex-direction:column;gap:4px}}
/* Work page: two columns, the right column sits lower (editorial stagger) */
.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,6vw,92px) clamp(24px,4vw,56px)}
.pgrid li.lo{margin-top:clamp(28px,4vw,56px)}
.pgrid .ph{aspect-ratio:16/9}
.pgrid .tx h3{font-size:clamp(28px,3vw,40px)}
.pgrid .tx p{max-width:420px}
@media (max-width:700px){.pgrid{grid-template-columns:minmax(0,1fr)}.pgrid li.lo{margin-top:0}}

/* sticky "check availability" bar on phones */
.stickycta{display:none}
@media (max-width:900px){
  .stickycta{display:flex;align-items:center;justify-content:center;position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:45;min-height:50px;background:var(--ink);color:var(--ivory);font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;box-shadow:0 8px 24px rgba(0,0,0,.18);transform:translateY(160%);transition:transform .35s ease}
  .stickycta.on{transform:none}
  body.menu-open .stickycta{transform:translateY(160%)}
  .foot .bot{padding-bottom:max(84px,calc(env(safe-area-inset-bottom) + 74px))}
}
.vgrid .vcard>a.vtx{display:flex}
/* wider intro text under section titles */
.sub,.phead p{max-width:720px}

/* collections, Stitch layout: title, inline quote, expand */
.coll>div{padding:30px 24px 26px}
.coll h3{text-transform:none;letter-spacing:.16em;font-weight:700;font-size:11.5px}
.coll q{font-size:16px;line-height:1.5;color:var(--ink);margin-top:18px}
.coll q cite{display:inline;font-style:italic;font-size:inherit;color:inherit;margin:0}
.coll details{padding-top:26px}
.coll summary{color:var(--ink);font-weight:500;padding:6px 0}
.coll details .sum{margin-top:16px;text-align:left}
.coll h3{font-weight:400;min-height:3.2em}
.coll q{min-height:4.6em}
.coll details{margin-top:0}
@media (max-width:900px){.coll h3,.coll q{min-height:0}}
.coll q{color:var(--soft);font-size:15.5px;font-weight:400;-webkit-font-smoothing:antialiased}
.coll summary .co{display:none}
.coll details[open] summary .ex{display:none}
.coll details[open] summary .co{display:inline}
/* film preview clips over thumbnails */
.ph video.pv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;pointer-events:none}
.ph.pv-on video.pv{opacity:1}
.ph .play{z-index:2}
.ph.pv-on .play{opacity:0;transition:opacity .4s}
/* venue film card (no thumbnail available) */
.vfilm{display:grid;place-items:center;max-width:1100px;margin:clamp(40px,6vw,70px) auto 0;aspect-ratio:16/9;background:#1b1a18;color:#fbfaf7;text-align:center;position:relative;overflow:hidden}
.vfilm::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(255,255,255,.08),transparent 60%)}
.vf-in{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;padding:24px}
.vfilm .eyebrow{color:rgba(251,250,247,.7)}
.vf-t{font-family:var(--serif);font-size:clamp(24px,3.4vw,44px);font-style:italic;line-height:1.15}
.vfilm .play{position:static;margin:6px 0 0}
.vf-cta{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(251,250,247,.75)}
.vfilm:hover .play{transform:scale(1.08)}
@media (max-width:600px){.vfilm{aspect-ratio:4/3}}

/* venue film card with the film's own frame */
.vfilm>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vfilm::before{z-index:1;background:linear-gradient(rgba(20,19,17,.35),rgba(20,19,17,.55))}
.vfilm .vf-in{z-index:2}
.vfilm .eyebrow,.vf-cta{color:rgba(251,250,247,.9)}
.vfilm>img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.vfilm:hover>img{transform:scale(1.03)}
/* preview-only note inside the player */
.pvnote{width:100%;height:100%;display:grid;place-items:end center;background:#000 center/cover no-repeat;position:relative}
.pvnote p{position:relative;margin:0 0 6%;padding:10px 18px;background:rgba(20,19,17,.8);color:#fbfaf7;font-size:13px;letter-spacing:.04em;text-align:center}

/* film thumbnail on venue cards */
.vcard{position:relative}
.vcard .vplay,.vgrid .vcard>a.vplay{position:absolute;left:0;right:0;top:0;aspect-ratio:16/9;display:grid;place-items:center;z-index:2}
.vcard .vplay .play{position:static;margin:0}
.vcard .vplay:hover .play{transform:scale(1.08)}
.vgrid .vslides{position:relative}
.vgrid .vcard>a:hover .play{transform:scale(1.08)}

/* ---- about page (Oct 2026): leadership, atelier, pillars ---- */
.abt-head{text-align:center;padding-top:clamp(70px,9vw,120px);padding-bottom:clamp(36px,5vw,64px)}
.abt-head h1{font-size:clamp(36px,5.04vw,64.8px);margin-top:18px}
.abt-head .sub{max-width:560px;margin:28px auto 0}
.abt-stats .stats{margin-top:0}
.abt-group.pad{padding-block:clamp(48px,6vw,84px)}
.abt-frame{margin:0;border:1px solid var(--rule);background:#fff;padding:clamp(10px,1.6vw,18px)}
.abt-frame img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--paper)}
.abt-frame figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:16px 32px;flex-wrap:wrap;padding:14px 4px 2px}
.abt-frame figcaption .eyebrow{font-size:9.5px}
.abt-frame figcaption em{font-family:var(--serif);font-size:13px;color:var(--soft)}
.abt-lead{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);max-width:1040px;margin-inline:auto}
.abt-card{background:#fff;border:1px solid var(--rule);padding:clamp(16px,2vw,28px)}
.abt-card .pic{overflow:hidden;background:var(--paper)}
.abt-card .pic img{width:100%;aspect-ratio:4/5;object-fit:cover}
.abt-card .role{display:block;font-size:9.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.abt-lead .role{margin-top:26px}
.abt-lead h3{margin-top:12px}
.abt-lead p{color:var(--soft);font-size:13.5px;margin-top:16px}
.abt-lead .tag{display:block;font-family:var(--serif);font-size:13px;color:var(--soft);margin-top:22px;padding-top:16px;border-top:1px solid var(--rule)}
.abt-team{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,28px);max-width:1040px;margin-inline:auto}
.abt-team .abt-card{padding:clamp(12px,1.4vw,18px)}
.abt-team h3{font-size:clamp(17px,1.5vw,20px);margin-top:18px}
.abt-team .role{margin-top:8px}
@media (max-width:820px){.abt-lead{grid-template-columns:1fr}.abt-team{grid-template-columns:1fr 1fr}.abt-frame figcaption{flex-direction:column;gap:8px}}

/* venue listing: each slide is a film that opens the player; the name below links to the venue page */
.vslides>a.vs{position:relative;display:block;flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;color:inherit}
.vslides>a.vs img{width:100%;height:100%;object-fit:cover;display:block}
.vslides>a.vs:hover .play{transform:scale(1.08)}

/* looping silent film thumbnail (HTML5 video over its poster image) */
.tv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.feature:hover .tv,.fcard:hover .tv,.vs:hover .tv,.vfilm:hover>.tv{transform:scale(1.03)}

/* play symbol: hidden by default, appears only when the pointer is over the film */
.play{opacity:0;transform:scale(.82);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){
  .feature:hover .play,.fcard:hover .play,.vs:hover .play,.vfilm:hover .play{opacity:1;transform:scale(1)}
}

/* about: both leadership cards share one height, the closing line sits at the bottom */
.abt-lead .abt-card{display:flex;flex-direction:column}
.abt-lead .abt-card p:last-of-type{margin-bottom:22px}
.abt-lead .tag{margin-top:auto}

.vfall{display:block;text-align:center;margin-top:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,250,247,.75);text-decoration:underline;text-underline-offset:4px}

/* Headline contrast: the plain part is set thin, the italic emphasis keeps the current Playfair look */
:is(h1,h2):has(em){font-family:'Cormorant Garamond','Playfair Display',Georgia,serif;font-weight:300;letter-spacing:0}
:is(h1,h2):has(em) em{font-family:var(--serif);font-weight:400;letter-spacing:-.01em}

/* Home Selected Work: every film the same size, two columns */
.trio.duo{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,72px) clamp(24px,4vw,56px);margin-top:clamp(40px,5vw,64px)}
.trio.duo h3{font-size:clamp(24px,2.6vw,34px)}
@media (max-width:820px){.trio.duo{grid-template-columns:1fr}}

/* desktop header: logo left, menu centre, actions right */
@media (min-width:901px){
  .nav .logo{grid-column:1;grid-row:1;justify-self:start}
  .nav .l{grid-column:2;grid-row:1;justify-content:center}
  .nav .r{grid-column:3;grid-row:1}
}
.foot .bot .tm{display:block;margin-top:8px;letter-spacing:.18em;text-transform:none;font-size:10px}

/* Social Content page */
.scgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,28px);max-width:1100px;margin:0 auto}
@media (max-width:900px){.scgrid{grid-template-columns:repeat(2,1fr)}}
.scv{margin:0}
.scv-in{position:relative;aspect-ratio:9/16;background:#1b1a18;color:#fbfaf7;overflow:hidden;cursor:pointer;display:grid;place-items:center}
.scv.soon .scv-in{cursor:default}
.scv-soon{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(251,250,247,.7)}
.scv video,.scv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scv .play{z-index:2;width:56px;height:56px;margin:-28px 0 0 -28px}
.scv.playing .play{display:none}
.scv figcaption{margin-top:12px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);text-align:center}
.scnote{text-align:center;margin-top:26px;font-size:12px;color:var(--muted);letter-spacing:.06em}
.scc{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);max-width:1100px;margin:0 auto}
.scc.three{grid-template-columns:repeat(3,1fr)}
.sccard{background:var(--ivory);padding:34px 26px}
.on-paper .sccard{background:var(--paper)}
.sccard h3{font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:12px}
.sccard p{color:var(--soft);font-size:14px}
@media (max-width:900px){.scc,.scc.three{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.scc,.scc.three{grid-template-columns:1fr}}
.scsteps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);max-width:1000px;margin:0 auto;padding:0}
.scsteps .n{display:block;font-family:var(--serif);font-size:34px;color:var(--muted);margin-bottom:14px}
.scsteps h3{font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:10px}
.scsteps p{color:var(--soft);font-size:14px}
@media (max-width:700px){.scsteps{grid-template-columns:1fr}}

.scv-in:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.scv video{background:#000;object-fit:contain}
@media (hover:none){.scv .play{opacity:1}}
@media (hover:hover){.scv-in:hover .play,.scv-in:focus-visible .play{opacity:1;transform:scale(1)}}
@media (hover:none){.scv .play{opacity:1;transform:scale(1)}}

/* reCAPTCHA v3 badge hidden: the required notice is shown under the form */
.grecaptcha-badge{visibility:hidden}

/* Venues: still thumbnails (no looping video). They only move on hover; the no play symbol */
.vgrid .vs img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){
  .vgrid .vs:hover img{transform:scale(1.03)}
}

.vgrid .vs{cursor:default}

.vfilm{cursor:default}

/* Venues: same width and gaps as the Work frames (full 1280 content column) */
.vgrid{max-width:none;column-gap:clamp(24px,4vw,56px)}
.vfilm,.vhero,.vhero+.venue-cap,.wrap>.venue-cap,.vmore{max-width:none}

/* Work: filter lines run the full width of the frames */
.filters{max-width:none}

/* Venue pages: text aligned to the left edge of the film thumbnail (not centred) */
body:has(.vhead) .vbody,body:has(.vhead) .faq .narrow{max-width:var(--w)}
body:has(.vhead) .vbody p,body:has(.vhead) .faq details p{max-width:none;text-align:justify;hyphens:auto}
body:has(.vhead) .faq .shead{text-align:left}
body:has(.vhead) .disclaim{max-width:none;margin-inline:0;text-align:justify}

/* About: leadership, The Atelier team and Our foundations use the full content column, like Work */
.abt-lead,.abt-team{max-width:none}
.pillars>div:first-child{padding-left:0}
.pillars>div:last-child{padding-right:0}
