/* Demo photos (Unsplash). Swap these 12 URLs for the client's real shots. */
:root{--i1:url(https://images.unsplash.com/photo-1509631179647-0177331693ae?auto=format&fit=crop&q=70&w=1400);--i2:url(https://images.unsplash.com/photo-1612731486606-2614b4d74921?auto=format&fit=crop&q=70&w=1400);--i3:url(https://images.unsplash.com/photo-1531356495-75ccc754cb64?auto=format&fit=crop&q=70&w=1400);--i4:url(https://images.unsplash.com/photo-1601597565151-70c4020dc0e1?auto=format&fit=crop&q=70&w=800);--i5:url(https://images.unsplash.com/photo-1590131222139-91ba5992e4ed?auto=format&fit=crop&q=70&w=800);--i6:url(https://images.unsplash.com/photo-1586079615844-c0abfb04dc79?auto=format&fit=crop&q=70&w=800);--i7:url(https://images.unsplash.com/photo-1595882669314-919b3d51f2c7?auto=format&fit=crop&q=70&w=800);--i8:url(https://images.unsplash.com/photo-1731589802956-b4693dae884b?auto=format&fit=crop&q=70&w=1100);--i9:url(https://images.unsplash.com/photo-1704208316515-a32f81e373ef?auto=format&fit=crop&q=70&w=1100);--i10:url(https://images.unsplash.com/photo-1613915617430-8ab0fd7c6baf?auto=format&fit=crop&q=70&w=600);--i11:url(https://images.unsplash.com/photo-1610765431323-d88c88a2b2c8?auto=format&fit=crop&q=70&w=600);--i12:url(https://images.unsplash.com/photo-1731589802397-6a1088d63630?auto=format&fit=crop&q=70&w=600)}
:root{--w:#fff;--g1:#f5f5f3;--g2:#e4e4e0;--g3:#6b6b66;--g4:#484846;--ink:#1e1e1c;--gold:#8f6a22;--gl:#c9a45c;--pad:clamp(1.25rem,5vw,4.5rem);--serif:"Cormorant Garamond",Georgia,serif;--sans:Jost,"Helvetica Neue",Arial,sans-serif}
*,::before,::after{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{background:var(--w);color:var(--g4);font:300 1rem/1.75 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.02;color:var(--ink)}
h2{font-size:clamp(2.4rem,5.2vw,4.4rem);letter-spacing:-.01em}
.gt{padding-right:.1em;background:linear-gradient(100deg,#8a6420,#d3ad63 50%,#8a6420);-webkit-background-clip:text;background-clip:text;color:transparent}
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--pad)}
.s{padding:clamp(3rem,6vw,5.5rem) 0}
.tint{background:var(--g1)}
.eye{font:400 .66rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--g3)}
.eye.g{color:var(--gold)}
.eye.g::before{content:"";display:inline-block;width:2.4rem;height:1px;margin-right:1rem;vertical-align:middle;background:var(--gl)}
.btn,.play,.lnk{display:inline-flex;align-items:center;gap:.9rem;font:500 .66rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;transition:.4s}
.btn{padding:1.1rem 1.8rem;background:var(--gold);border:1px solid var(--gold);color:#fff}
.btn:hover{background:transparent;color:var(--gold)}
.btn.o{background:transparent;color:var(--ink);border-color:var(--gl)}
.btn.o:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.lnk{padding-bottom:.5rem;border-bottom:1px solid var(--gl);color:var(--ink)}
.lnk:hover{color:var(--gold)}
.play i{display:grid;place-items:center;width:2.7rem;height:2.7rem;padding-left:.15rem;border:1px solid var(--gl);border-radius:50%;font-size:.55rem;font-style:normal;color:var(--gold);transition:.4s}
.play:hover i{background:var(--gold);color:#fff}
.act{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2.2rem}
.ph{display:block;background-color:#dcdcd8;background-image:var(--img);background-size:cover;background-position:var(--p,50% 25%);filter:grayscale(1) contrast(1.05)}
header{position:sticky;top:0;z-index:50;isolation:isolate}
header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.9);border-bottom:1px solid var(--g2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:4.5rem}
.nav .btn{padding:.85rem 1.3rem}
.logo{position:relative;z-index:2;flex:none;display:flex;flex-direction:column;align-items:center;color:var(--ink);white-space:nowrap}
.logo span{display:block;margin-bottom:.4rem;font:400 2.5rem/.8 "Mrs Saint Delafield",cursive}
.logo small{display:block;margin-bottom:.34rem;padding-left:.3em;font:400 .56rem/1 var(--sans);letter-spacing:.3em;color:var(--g4)}
.logo::after{content:"";width:1.4rem;height:1px;background:var(--ink)}
.links{display:flex;gap:2.4rem;font:400 .66rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase}
.links a{padding:.4rem 0;border-bottom:1px solid transparent;transition:.3s}
.links a:hover{color:var(--ink);border-color:var(--gl)}
.mb{display:none;position:relative;z-index:2;flex:none;width:2.75rem;height:2.75rem;margin-right:-.65rem;padding:0;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mb span{position:absolute;left:.65rem;right:.65rem;top:50%;height:1.5px;margin-top:-.75px;background:var(--ink);transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .3s}
.mb span:nth-child(1){transform:translateY(-7px)}
.mb span:nth-child(3){transform:translateY(7px)}
.open .mb span:nth-child(1){transform:rotate(45deg)}
.open .mb span:nth-child(2){opacity:0}
.open .mb span:nth-child(3){transform:rotate(-45deg)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;min-height:calc(100svh - 4.5rem);overflow:clip}
.hero .t{padding:4rem 0 4rem max(var(--pad),calc((100vw - 1360px)/2 + var(--pad)))}
.hero h1{margin:1.6rem 0 1.8rem;font-size:clamp(3.2rem,8.4vw,8.4rem);line-height:.9;letter-spacing:-.02em}
.hero h1 em{display:block;padding-left:.8em}
.lead{max-width:24rem;font-size:1.06rem}
.hero .act{margin-top:2.4rem}
.vis{position:relative;align-self:stretch;overflow:hidden;min-height:min(84svh,56rem);-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%);mask-image:linear-gradient(90deg,transparent,#000 22%)}
.sl{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease}
.sl.on{opacity:1;animation:kb 9s ease-out forwards}
.cnt{position:absolute;right:1.6rem;bottom:1.4rem;font:400 .68rem/1 var(--sans);letter-spacing:.3em;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.45)}
@keyframes kb{from{transform:scale(1.08)}}
@keyframes up{from{opacity:0;transform:translateY(22px)}}
.up{animation:up 1.5s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stats>div{padding:2.2rem 1rem;text-align:center;border-left:1px solid var(--g2)}
.stats>div:first-child{border-left:0}
.stats b{display:block;font:300 clamp(2.4rem,4.6vw,3.6rem)/1.1 var(--serif)}
.stats span{display:block;margin-top:.6rem;font:400 .6rem/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--g3)}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.6rem 2rem;margin-bottom:clamp(2rem,5vw,3.5rem)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,2vw,1.6rem);align-items:start}
.cd:nth-child(even){margin-top:clamp(1.5rem,5vw,4.5rem)}
.cd,.cd p{min-width:0}
.fr{overflow:hidden}
.cd .ph{aspect-ratio:3/4.2;transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter .6s}
.cd:hover .ph{transform:scale(1.06);filter:grayscale(0) contrast(1.05)}
.cd p{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 1rem;margin-top:1.1rem;font:400 .62rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase}
.cd b{font:400 clamp(1.2rem,2.2vw,1.5rem)/1 var(--serif);letter-spacing:.1em;color:var(--ink);overflow-wrap:anywhere}
.cd span{color:var(--gold);transition:transform .4s}
.cd:hover span{transform:translateX(6px)}
.q{max-width:19ch;margin:0 auto 1.6rem;text-align:center;font:italic 300 clamp(2.4rem,6vw,5.2rem)/1.1 var(--serif);color:var(--ink)}
.q span{color:var(--gl)}
.sv,.who{display:grid;gap:clamp(2rem,7vw,7rem);align-items:center}
.sv{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.who{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.sv .ph,.who .ph{aspect-ratio:4/5}
.ls{list-style:none;margin:2.2rem 0 0;padding:0;border-top:1px solid var(--g2)}
.ls a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.1rem 1rem;padding:1.6rem 0;border-bottom:1px solid var(--g2);transition:padding .5s}
.ls h3{font-size:clamp(1.9rem,3.4vw,2.7rem);transition:color .4s}
.ls p{color:var(--g3)}
.ls i{grid-row:1/3;grid-column:2;font-style:normal;color:var(--gold);transition:transform .5s}
.ls a:hover{padding-left:1rem}
.ls a:hover h3{color:var(--gold)}
.ls a:hover i{transform:translateX(-.6rem)}
.flow{margin-top:3rem}
.flow>.eye{display:block;margin-bottom:2rem}
.flow ol{--r:1.3rem;position:relative;list-style:none;margin:0;padding:0;counter-reset:fs}
.flow li{position:relative;counter-increment:fs;padding:0 0 2.2rem calc(var(--r)*2 + 1.5rem)}
.flow li:last-child{padding-bottom:0}
.flow li::before{content:counter(fs,decimal-leading-zero);position:absolute;z-index:1;left:0;top:0;display:grid;place-items:center;width:calc(var(--r)*2);height:calc(var(--r)*2);background:var(--w);border:1px solid var(--gl);border-radius:50%;font:italic 400 .95rem/1 var(--serif);color:var(--gold);transition:background .5s,border-color .5s,color .5s,box-shadow .5s}
.flow li:not(:last-child)::after{content:"";position:absolute;left:calc(var(--r) - .5px);top:var(--r);width:1px;height:100%;background:linear-gradient(var(--gold),var(--gold)) 0 0/100% calc(var(--f,0)*100%) no-repeat,rgba(201,164,92,.38)}
.flow li.on::before{background:var(--gold);border-color:var(--gold);color:#fff}
.flow li.cur::before{box-shadow:0 0 0 6px rgba(201,164,92,.22)}
.flow b{display:flex;align-items:center;min-height:calc(var(--r)*2);font:300 1.75rem/1.2 var(--serif);color:var(--ink)}
.flow li span{display:block;margin-top:.35rem;font-size:.92rem;line-height:1.55;color:var(--g3)}
.flow.ready li b,.flow.ready li span{transition:opacity .6s}
.flow.ready li:not(.on) b,.flow.ready li:not(.on) span{opacity:.35}
@media(max-width:700px){.flow ol{--r:1.15rem}.flow b{font-size:1.5rem}.flow li{padding-bottom:1.9rem}}
@media(prefers-reduced-motion:reduce){.flow.ready li b,.flow.ready li span{transition:none}}
.who h2{margin:1.4rem 0 1rem}
.role{font:400 .68rem/1.7 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.who .b{max-width:30rem;margin:1.6rem 0 2.4rem;font-size:1.1rem}
.ig{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}
.ig .ph{aspect-ratio:1;transition:filter .6s}
.ig .ph:hover{filter:none}
.cta{padding:clamp(3.5rem,8vw,7rem) 0;text-align:center;border-top:1px solid var(--gl)}
.cta h2{margin-bottom:1.4rem;font-size:clamp(2.8rem,8vw,7rem)}
.cta p{max-width:28rem;margin:0 auto 2.4rem}
.cta .act{justify-content:center}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;padding:1.8rem 0 2.4rem;border-top:1px solid var(--g2);font:400 .62rem/1.8 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--g3)}
footer a:hover{color:var(--gold)}
@media(max-width:860px){
.links{display:none}.mb{display:block}.nav .btn{display:none}
.open .links{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.8rem;position:fixed;inset:0;z-index:1;background:var(--w);color:var(--ink);font:300 2.4rem/1 var(--serif);letter-spacing:.02em;text-transform:none}
.hero{grid-template-columns:minmax(0,1fr);min-height:0}
.vis{order:-1;min-height:62svh;-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}
.hero .t{padding:0 var(--pad) 3rem}
.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sv,.who{grid-template-columns:minmax(0,1fr)}
.ig{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cd p{flex-direction:column;align-items:flex-start}.cd b{font-size:1.05rem;letter-spacing:.06em}.stats>div:nth-child(3){border-left:0}.stats>div:nth-child(n+3){border-top:1px solid var(--g2)}}
@media(prefers-reduced-motion:reduce){.up,.sl.on{animation:none}html{scroll-behavior:auto}}
@media(prefers-reduced-motion:no-preference){
.rv{opacity:0}
.rv.in{opacity:1;animation:rv 1.1s cubic-bezier(.2,.7,.2,1) var(--rd,0s) backwards}
@keyframes rv{from{opacity:0;transform:translateY(30px)}}
.cv{opacity:0}
.cv.in{opacity:1;clip-path:none;animation:cv 1.5s cubic-bezier(.7,0,.2,1) var(--rd,0s) backwards}
@keyframes cv{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.q span{display:inline-block}
.q .w{color:var(--ink)}
.gt{background-size:200% 100%;animation:sh 8s linear infinite}
@keyframes sh{to{background-position:200% 0}}
.hero .eye.g::before{animation:ln 1.4s .3s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes ln{from{width:0}}
.play i{position:relative}
.play i::after{content:"";position:absolute;inset:-1px;border:1px solid var(--gl);border-radius:50%;animation:pl 2.6s ease-out infinite}
@keyframes pl{to{transform:scale(1.7);opacity:0}}
.btn:hover{transform:translateY(-2px)}
header::before{transition:background .4s,box-shadow .4s}
header.sc::before{background:rgba(255,255,255,.97);box-shadow:0 10px 30px -20px rgba(0,0,0,.45)}
.bar{position:fixed;top:0;left:0;right:0;z-index:60;height:2px;background:linear-gradient(90deg,var(--gold),var(--gl));transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.open .links{animation:fd .4s ease}
@keyframes fd{from{opacity:0}}
.open .links a{animation:up .8s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(.06s*var(--n,1) + .1s)}
}
/* UX refinements */
.skip{position:fixed;left:1rem;top:-4rem;z-index:100;padding:.8rem 1.2rem;background:var(--ink);color:#fff;font:500 .7rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;transition:top .3s}
.skip:focus{top:1rem}
.eye,.btn,.play,.lnk{font-size:.7rem}
.stats span,.cd p,footer{font-size:.66rem}
.links a[aria-current]{color:var(--ink);border-color:var(--gold)}
.cd:focus-visible .ph{transform:scale(1.06);filter:grayscale(0) contrast(1.05)}
footer a{display:inline-block;padding:.45rem .15rem}
html.lock{overflow:hidden}
.fab{display:none}
@media(min-width:861px){.links{font-size:.7rem}}
.nav .btn{white-space:nowrap}
@media(min-width:861px) and (max-width:1100px){.nav{gap:1rem}.links{gap:clamp(1.1rem,2.3vw,1.9rem);letter-spacing:.2em}.nav .btn{padding:.85rem 1.05rem;letter-spacing:.2em}}
@media(max-width:860px){
.vis{min-height:44svh}
.fab{display:inline-flex;align-items:center;position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:40;padding:1.05rem 1.7rem;background:var(--gold);color:#fff;font:500 .7rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);transform:translate(-50%,200%);visibility:hidden;transition:transform .5s cubic-bezier(.2,.7,.2,1),visibility .5s}
.fab.show{transform:translate(-50%,0);visibility:visible}}

/* Inner pages */
.pg{padding:clamp(3rem,7vw,6rem) 0 clamp(2rem,4vw,3rem)}
.pg h1{margin:1.4rem 0;font-size:clamp(3rem,8vw,7rem);line-height:.95;letter-spacing:-.02em}
.pg .lead{max-width:34rem}
.tabs{display:flex;flex-wrap:wrap;gap:.2rem 2rem;margin-bottom:2.4rem;border-bottom:1px solid var(--g2)}
.tabs button{margin-bottom:-1px;padding:1rem 0;background:none;border:0;border-bottom:1px solid transparent;font:500 .7rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--g3);cursor:pointer;transition:.3s}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-pressed=true]{color:var(--ink);border-color:var(--gold)}
.gal{columns:3;column-gap:clamp(.8rem,2vw,1.6rem)}
.gal .tile{display:block;width:100%;margin:0 0 clamp(.8rem,2vw,1.6rem);padding:0;border:0;cursor:zoom-in;break-inside:avoid;transition:filter .6s}
.gal .tile:hover,.gal .tile:focus-visible{filter:none}
.gal .tile[hidden]{display:none}
.lb{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;background:rgba(20,20,18,.95)}
.lb.on{display:flex}
.lb .im{width:min(92vw,980px);height:84svh;background:center/contain no-repeat}
.lb button{position:absolute;padding:1rem;background:none;border:0;color:#fff;font:300 2.4rem/1 var(--serif);cursor:pointer}
.lb .x{top:.6rem;right:.8rem}
.lb .pv,.lb .nx{top:50%;transform:translateY(-50%)}
.lb .pv{left:.4rem}.lb .nx{right:.4rem}
.ab{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,7vw,7rem);align-items:center}
.ab .ph{aspect-ratio:4/5}
.ab h2{margin:1.2rem 0 .8rem}
.ab .t2{margin-top:1.4rem}
.vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem 2rem}
.vals div{padding-top:1.4rem;border-top:1px solid var(--gl)}
.vals b{display:block;font:300 1.9rem/1.2 var(--serif);color:var(--ink)}
.vals span{display:block;margin-top:.5rem;font-size:.95rem;color:var(--g3)}
.svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--g2);border:1px solid var(--g2)}
.svc>div{padding:clamp(1.6rem,3vw,2.6rem);background:var(--w)}
.svc h3{font-size:2.2rem}
.svc p{margin:.6rem 0 1.4rem;color:var(--g3)}
.pk{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.2rem}
.pk article{position:relative;display:flex;flex-direction:column;padding:1.4rem;background:var(--w);border:1px solid var(--g2)}
.pk .pop{border-color:var(--gl)}
.pk .pop::before{content:"Most popular";position:absolute;top:-1px;left:50%;transform:translateX(-50%);padding:.5rem .9rem;background:var(--ink);color:#fff;font:500 .58rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap}
.pk h3{margin-top:1.6rem;font:400 .8rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;text-align:center}
.pk .pr{margin:1rem 0 .6rem;text-align:center;font:300 2.4rem/1 var(--serif);color:var(--ink)}
.pk .for{margin-bottom:1.2rem;text-align:center;font:400 .62rem/1.6 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--g3)}
.pk .for b{font-weight:500;color:var(--ink)}
.pk ul{flex:1;list-style:none;margin:0 0 1.2rem;padding:1rem 0 0;border-top:1px solid var(--g2)}
.pk li{position:relative;padding:.3rem 0 .3rem 1.5rem;font-size:.92rem;line-height:1.4}
.pk li::before{content:"✓";position:absolute;left:0;color:var(--gold)}
.pk .tg{margin-bottom:1rem;text-align:center;font:400 .6rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.pk .btn{justify-content:center}
@media(min-width:1180px){.pk{grid-template-columns:repeat(5,minmax(0,1fr))}}
.ao{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--g2)}
.ao div{padding:1.4rem 1rem 1.4rem 0;border-bottom:1px solid var(--g2)}
.ao b{display:block;font:400 .66rem/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--g3)}
.ao span{display:block;margin-top:.4rem;font:300 1.7rem/1.2 var(--serif);color:var(--ink)}
/* Signature Experience on the services page */
.xp{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,7vw,7rem);align-items:start}
.xp-h{position:sticky;top:7rem}
.xp-h h2{margin:1.2rem 0 1.2rem}
.xp-h .lead{margin-bottom:2rem}
.xp .flow{margin-top:0}
@media(max-width:860px){.xp{grid-template-columns:minmax(0,1fr)}.xp-h{position:static}}
.ct{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,7vw,7rem);align-items:start}
.ci{list-style:none;margin:0;padding:0;border-top:1px solid var(--g2)}
.ci li{padding:1.4rem 0;border-bottom:1px solid var(--g2)}
.ci a,.ci .v{display:block;margin-top:.7rem;font:300 1.6rem/1.3 var(--serif);color:var(--ink);overflow-wrap:anywhere}
.ci a:hover{color:var(--gold)}
.fm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem}
.fld{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.fld.w,.fm .act,.fm .fn{grid-column:1/-1}
.fm label{font:500 .66rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--g4)}
.fm input,.fm select,.fm textarea{width:100%;padding:.8rem 0;background:none;border:0;border-bottom:1px solid var(--g3);border-radius:0;font:300 1rem/1.5 var(--sans);color:var(--ink);transition:border-color .3s}
.fm input:focus,.fm select:focus,.fm textarea:focus{outline:0;border-color:var(--gold)}
.fm textarea{min-height:7rem;resize:vertical}
.fm .fn{font-size:.85rem;color:var(--g3)}
@media(max-width:860px){.gal{columns:2}.ab,.ct{grid-template-columns:minmax(0,1fr)}.vals{grid-template-columns:repeat(2,minmax(0,1fr))}.svc{grid-template-columns:minmax(0,1fr)}.ao{grid-template-columns:repeat(2,minmax(0,1fr))}.fm{grid-template-columns:minmax(0,1fr)}}

/* Contact: separate the details from the form */
.ct{align-items:stretch}
.ctl,.ctr{padding:clamp(1.8rem,4vw,3.2rem)}
.ctl h2,.ctr h2{margin:1.1rem 0 .7rem;font-size:clamp(2rem,3.6vw,2.8rem)}
.ctl{display:flex;flex-direction:column;background:var(--ink);color:#b9b9b2}
.ctl h2{color:#fff}
.ctl .eye,.ctl .eye.g{color:var(--gl)}
.ctl>p{max-width:20rem}
.ctl .ci{margin:2rem 0 2.2rem;border-top-color:rgba(255,255,255,.16)}
.ctl .ci li{border-bottom-color:rgba(255,255,255,.16)}
.ctl .ci a,.ctl .ci .v{color:#fff}
.ctl .ci a:hover{color:var(--gl)}
.ctl .btn{align-self:flex-start;margin-top:auto}
.ctl .btn:hover{background:transparent;border-color:var(--gl);color:#fff}
.ctr{background:var(--w);border:1px solid var(--g2);border-top:2px solid var(--gl);box-shadow:0 40px 70px -50px rgba(0,0,0,.35)}
.ctr .sub{margin:0 0 2.2rem;color:var(--g3)}

/* ---- Dynamic galleries, tabs as links, coming-soon popup ---- */
.tabs a{margin-bottom:-1px;padding:1rem 0;border-bottom:1px solid transparent;font:500 .7rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--g3);transition:.3s}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current]{color:var(--ink);border-color:var(--gold)}
.gal .tile img{display:block;width:100%;height:100%;object-fit:cover}
.gal-link{margin:2rem 0 0}
.color .ph{filter:none}
.soon{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1.5rem;background:rgba(20,20,18,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.soon[hidden]{display:none}
.soon-box{width:min(26rem,100%);padding:clamp(2rem,6vw,3rem);text-align:center;background:var(--w);border-top:2px solid var(--gl);box-shadow:0 40px 80px -30px rgba(0,0,0,.5)}
.soon-box h3{margin:1.1rem 0 .8rem;font-size:clamp(1.9rem,6vw,2.5rem)}
.soon-box p:not(.eye){margin-bottom:1.8rem;color:var(--g3)}
@media(prefers-reduced-motion:no-preference){.soon:not([hidden]) .soon-box{animation:up .6s cubic-bezier(.2,.7,.2,1) both}}
@media(max-width:860px){.gal{columns:2}}
@media(max-width:420px){.gal{columns:1}}

/* logo image + contact image (admin-managed) */
.logo.has-img{justify-content:center}.logo.has-img img{display:block;height:2.6rem;width:auto;max-width:11rem;object-fit:contain}.logo.has-img::after{display:none}
.ctl .ctimg{width:100%;aspect-ratio:4/3;margin-bottom:1.8rem}
