:root{--ox:#4F1A26;--ox2:#35101A;--cream:#F5EFE7;--ink:#2A1A1D;--mut:#725E5C;--line:#E3D7CC;--on:#F3E8DC;--onm:#D4BBB3;--gold:#C8A56C;--d:'Gilda Display',Georgia,serif;--s:'Jost',system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--s);font-weight:300;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;transition:color .3s,opacity .3s}
a:hover{color:var(--ox)}
img{display:block}
.lbl{font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase}
.ln{font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:6px}
.tex{background:var(--ox) url(assets/emboss.jpg) center/cover}
.btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-family:var(--s);font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;padding:17px 36px;cursor:pointer;transition:background .35s,color .35s}
.btn.lt{border:1px solid var(--on);color:var(--on);background:transparent}.btn.lt:hover{background:var(--on);color:var(--ox)}
.btn.dk{border:1px solid var(--ox);background:var(--ox);color:var(--on)}.btn.dk:hover{background:transparent;color:var(--ox)}
/* intro */
@keyframes fade{to{opacity:1}}
/* nav — mirrors live site structure */
.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px clamp(20px,3vw,44px);color:var(--on);border-bottom:1px solid transparent;transition:transform .5s ease,background .4s,color .4s,border-color .4s}
.nav.hid{transform:translateY(-101%)}
.nav.pinned{background:var(--cream);color:var(--ink);border-color:var(--line);box-shadow:0 18px 40px -26px rgba(20,4,8,.7)}
.nav a:hover,.nav .ddb:hover{color:#fff}
.nav.pinned a:hover,.nav.pinned .ddb:hover{color:var(--ox)}
.nav:not(.pinned):hover,.nav:not(.pinned):focus-within{background:var(--cream);color:var(--ink);border-color:var(--line);text-shadow:none}
.nav:not(.pinned):hover a:hover,.nav:not(.pinned):hover .ddb:hover{color:var(--ox)}
.nav:hover .brand .mk-cr,.nav:focus-within .brand .mk-cr{display:none}
.nav:hover .brand .mk-ox,.nav:focus-within .brand .mk-ox{display:block}
.brand{display:flex;align-items:center;gap:16px;line-height:1}
.brand img{height:30px;width:auto}
.brand .mk-ox,.nav.pinned .brand .mk-cr{display:none}
.nav.pinned .brand .mk-ox{display:block}
.brand .rule{width:1px;height:28px;background:currentColor;opacity:.55}
.brand b{font-family:var(--s);font-weight:300;font-size:13px;letter-spacing:.36em;white-space:nowrap}
.links,.rt{display:flex;align-items:center;gap:2px;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.links{position:absolute;left:50%;transform:translateX(-50%)}
.links a,.ddb{padding:8px 13px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.links a.on::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ox);box-shadow:0 0 0 1.5px var(--on)}
.ddb{background:none;border:0;color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit}
.ddb svg{transition:transform .2s}
.dd{position:relative;display:inline-flex}
.dd.open .ddb svg{transform:rotate(180deg)}
.ddm{position:absolute;top:calc(100% + 12px);left:0;min-width:210px;background:var(--cream);color:var(--ink);border:1px solid var(--line);box-shadow:0 26px 54px -30px rgba(40,10,16,.5);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .2s,transform .2s}
.ddm.r{left:auto;right:0}
.dd.open .ddm{opacity:1;pointer-events:auto;transform:none}
.ddm a{display:block;padding:15px 20px;border-bottom:1px solid var(--line);color:var(--ink)!important}
.ddm a:last-child{border-bottom:0}
.ddm a:hover{background:#EFE6DB;color:var(--ox)!important}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:10px;cursor:pointer;color:inherit}
.burger i{display:block;width:22px;height:1.5px;background:currentColor}
.mnav{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:var(--on);opacity:0;pointer-events:none;transition:opacity .35s;overflow-y:auto;padding:60px 24px}
.mnav.open{opacity:1;pointer-events:auto}
.mnav a{font-family:var(--d);font-size:26px;color:var(--on)}
.mnav a:hover{color:var(--gold)}
.mnav .sub{font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--onm);margin-top:16px}
.mnav a.sm{font-size:19px;color:var(--onm)}
.mnav .x{position:absolute;top:20px;right:22px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(243,232,220,.4);background:none;color:var(--on);font-size:16px;cursor:pointer}
@media (max-width:1200px){.links,.rt .dd{display:none}.burger{display:flex}}
@media (max-width:480px){.brand b{font-size:11px;letter-spacing:.28em}.brand{gap:12px}.brand img{height:24px}}
/* enquire */
.enq{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(48px,8vw,140px);align-items:center;padding:clamp(110px,12vw,180px) clamp(20px,8vw,160px)}
.enq .lbl{color:var(--mut)}
.enq h2{font-family:var(--d);font-weight:400;font-size:clamp(36px,4vw,58px);line-height:1.05;margin:22px 0 0}
.enq p{color:var(--mut);font-size:15px;max-width:46ch;margin:24px 0 0}
.enq h3{font-family:var(--d);font-weight:400;font-size:clamp(20px,1.8vw,26px);line-height:1.3;margin:0}
.gbtn{display:inline-flex;align-items:center;gap:16px;margin-top:34px;border:1px solid var(--ox);color:var(--ox);padding:18px 34px;font-size:11px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;transition:background .35s,color .35s}
.gbtn:hover{background:var(--ox);color:var(--on)}
.clist{display:flex;flex-direction:column;gap:14px;margin-top:44px;font-family:var(--d);font-size:17px}
/* footer */
.foot{background:var(--ox2);color:var(--onm);padding:clamp(70px,8vw,110px) clamp(20px,8vw,160px) 0}
.ftop{display:flex;justify-content:space-between;align-items:center;gap:48px;flex-wrap:wrap;padding-bottom:clamp(60px,7vw,100px)}
.flock{display:flex;align-items:center;gap:26px;color:var(--on)}
.flock:hover{color:var(--on)}
.flock img{height:64px;width:auto}
.flock .rule{width:1px;height:58px;background:var(--on);opacity:.7}
.flock b{font-weight:300;font-size:clamp(15px,1.4vw,20px);letter-spacing:.32em;white-space:nowrap}
.fcols{display:flex;gap:clamp(40px,6vw,100px);flex-wrap:wrap}
.fcols div{display:flex;flex-direction:column;gap:14px}
.fcols .lbl{color:var(--on);margin-bottom:8px}
.fcols a{font-family:var(--s);font-weight:300;font-size:16px;color:var(--on)}
.fcols a:hover{opacity:.75}
.fcols a:hover,.fbase a:hover{color:var(--on)}
.fbase{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 calc(clamp(20px,8vw,160px) * -1);padding:24px clamp(20px,3vw,60px);border-top:1px solid rgba(212,187,179,.16)}
.px{padding-left:clamp(20px,4vw,56px);padding-right:clamp(20px,4vw,56px)}
.rv{opacity:0;transform:translateY(32px);transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
@media (max-width:900px){.enq{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* floating oxblood scrollbar */
html{scrollbar-width:thin;scrollbar-color:#6B2333 transparent}
html::-webkit-scrollbar{width:12px;height:12px;background:transparent}
html::-webkit-scrollbar-track{background:transparent}
html::-webkit-scrollbar-thumb{background:#6B2333;border-radius:10px;border:3px solid transparent;background-clip:padding-box;min-height:60px}
html::-webkit-scrollbar-thumb:hover{background:#4F1A26;border-width:2px;background-clip:padding-box}
html::-webkit-scrollbar-corner{background:transparent}

/* mobile: no zoom, no blue tap flash, no light strip under the gesture bar */
html{background:#35101A;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}
*{-webkit-tap-highlight-color:transparent}
a,button,[role=button],label,summary{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
:focus:not(:focus-visible){outline:none}

/* footer · phone */
@media (max-width:640px){
.foot{padding:64px 24px 0}
.ftop{flex-direction:column;align-items:flex-start;gap:52px;padding-bottom:56px}
.flock{gap:18px}.flock img{height:44px;width:auto}.flock .rule{height:40px}.flock b{font-size:13px;letter-spacing:.3em}
.fcols{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px;width:100%}
.fcols div{gap:12px}
.fcols .lbl{color:var(--gold);font-size:10.5px;letter-spacing:.3em;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid rgba(200,165,108,.32)}
.fcols a{font-size:15px}
.fbase{flex-direction:column;align-items:flex-start;gap:14px;margin:0 -24px;padding:22px 24px calc(22px + env(safe-area-inset-bottom));font-size:10px;line-height:1.9}
}

/* footer · phone · locked on every page */
@media (max-width:640px){
.foot .fcols .lbl{color:var(--gold)!important;font-family:var(--s)!important;font-size:10.5px!important;font-weight:500!important;letter-spacing:.3em!important;text-transform:uppercase!important;padding-bottom:12px!important;margin-bottom:4px!important;border-bottom:1px solid rgba(200,165,108,.32)!important}
.foot .fcols{display:grid!important;grid-template-columns:1fr 1fr!important;gap:40px 28px!important;width:100%}
.foot .fcols a{font-size:15px!important}
}

.foot .rv,.foot.rv{opacity:1!important;transform:none!important;transition:none!important}

/* phone · F3 footer fold-out lines */
@media (max-width:640px){
.foot .ftop{gap:40px!important}
.foot .fcols{display:flex!important;flex-direction:column!important;gap:0!important;border-bottom:1px solid rgba(212,187,179,.16)}
.foot .fcols>div{gap:0!important;border-top:1px solid rgba(212,187,179,.16)}
.foot .fcols>div:nth-child(3){order:-1}
.foot .fcols .lbl{display:flex!important;justify-content:space-between;align-items:center;padding:20px 0!important;margin:0!important;border-bottom:0!important;cursor:pointer;-webkit-user-select:none;user-select:none}
.foot .fcols .lbl::after{content:"+";font-family:var(--s);font-size:18px;font-weight:300;letter-spacing:0;color:var(--gold);transition:transform .3s}
.foot .fcols>div>a{display:none!important}
.foot .fcols>div.open{padding-bottom:16px}
.foot .fcols>div.open>a{display:block!important;padding:7px 0}
.foot .fcols>div.open .lbl::after{transform:rotate(45deg)}
}
/* menu · M3 cream sheet */
@media (max-width:1200px){
.mnav,.mnav.tex{background:var(--cream)!important;color:var(--ink);display:grid!important;grid-template-columns:1fr 1fr;align-content:start;justify-items:stretch;align-items:start;gap:0 20px;padding:34px 24px calc(30px + env(safe-area-inset-bottom))!important;text-align:left}
.mnav .x{top:34px!important;right:22px;border-color:var(--line)!important;color:var(--ink)!important}
.mnav .mbrand{grid-column:1/-1;display:flex;align-items:center;gap:12px;height:40px;margin-bottom:44px;font-family:var(--s)!important}
.mnav .mbrand img{height:24px;width:auto}.mnav .mbrand .rule{width:1px;height:24px;background:var(--ink);opacity:.6}
.mnav .mbrand b{font-weight:300;font-size:10px;letter-spacing:.3em;color:var(--ink)}
.mnav>a:not(.sm):not(.mbrand):not(.mcta){grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-family:var(--d);font-size:30px;line-height:1.1;color:var(--ox);padding:16px 0;border-bottom:1px solid var(--line)}
.mnav>a:not(.sm):not(.mbrand):not(.mcta)::after{content:"→";font-family:var(--s);font-size:15px;color:var(--mut)}
.mnav>a.on:not(.sm){color:var(--ink)}
.mnav .sub{grid-column:1/-1;font-family:var(--s);font-size:9.5px!important;color:var(--mut)!important;margin:30px 0 8px!important}
.mnav a.sm{font-family:var(--s)!important;font-size:15px!important;color:var(--ink)!important;padding:6px 0}
.mnav a:hover{color:var(--ox)}
.mnav .mcta{grid-column:1/-1;display:block;margin-top:38px;background:var(--ox);color:var(--on)!important;text-align:center;padding:17px;font-family:var(--s)!important;font-size:10.5px!important;font-weight:500;letter-spacing:.3em;text-transform:uppercase}
}
@media (min-width:1201px){.mnav .mbrand,.mnav .mcta{display:none}}

/* menu: same type on every page (photographer pages had italic/bold) */
html body .mnav,html body .mnav *{font-style:normal!important;letter-spacing:normal}
html body .mnav>a:not(.sm):not(.mbrand):not(.mcta){font-family:var(--d)!important;font-weight:400!important;letter-spacing:0!important}
html body .mnav a.sm{font-family:var(--s)!important;font-weight:300!important;letter-spacing:0!important}
html body .mnav .sub{font-family:var(--s)!important;font-weight:500!important;letter-spacing:.24em!important;text-transform:uppercase}
html body .mnav .mbrand b{font-family:var(--s)!important;font-weight:300!important;letter-spacing:.3em!important}
html body .mnav .mcta{font-family:var(--s)!important;font-weight:500!important;letter-spacing:.3em!important}
html body .mnav>a:not(.sm):not(.mbrand):not(.mcta)::after{font-family:var(--s)!important;font-weight:300!important}

/* menu colours fixed to the site palette (dark pages like Intensive redefine --ink/--line) */
html body .mnav{--ink:#2A1A1D;--line:#E3D7CC;--mut:#725E5C}
html body .mnav a.sm,html body .mnav .mbrand b,html body .mnav .x{color:#2A1A1D!important}html body .mnav .x{border-color:#E3D7CC!important}html body .mnav .sub{color:#725E5C!important}html body .mnav>a:not(.sm):not(.mbrand):not(.mcta){border-color:#E3D7CC!important}html body .mnav .mbrand .rule{background:#2A1A1D!important}
