/* =========================================================
   MS Collective — site layout & built-in pages
   (block/pattern styles live in blocks.css)
========================================================= */
:root{
  --black:#080808;--cream:#f0ece4;--gold:#c9a66b;--muted:#aaa49a;--line:#2d2b28;--panel:#11100f;--ink:#141210;
  --nav-h:82px;--gutter:7vw;--content:820px;--wide:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 20px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--black);color:var(--cream);font-family:'DM Sans',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
img,video,iframe{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
h1,h2,h3,h4{font-family:'Playfair Display',Georgia,serif;font-weight:400}

/* Accessibility helpers */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;z-index:100;top:10px;left:10px;background:var(--gold);color:#111;padding:12px 18px}

/* ---------- Header ---------- */
.nav{height:var(--nav-h);position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 5vw;background:#080808e8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid #c9a66b40}
.admin-bar .nav{top:32px}
@media (max-width:782px){.admin-bar .nav{top:46px}}
@media (max-width:600px){.admin-bar .nav{top:0}}
.logo{display:block;flex:0 0 auto}
.logo img{display:block;width:210px;max-width:100%;height:auto}
.site-nav{display:flex;align-items:center;gap:32px}
.navlinks{display:flex;gap:24px;margin:0;padding:0;list-style:none;font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.navlinks li{position:relative;margin:0}
.navlinks a{display:block;padding:8px 0}
.navlinks a:hover,.navlinks .active,.navlinks .current-menu-item>a,.navlinks .current_page_item>a,.navlinks .current-menu-ancestor>a,.navlinks a[aria-current="page"]{color:var(--gold)}
.navlinks .sub-menu{display:none;position:absolute;top:100%;left:-18px;min-width:200px;margin:0;padding:10px 18px;list-style:none;background:#0e0d0c;border:1px solid var(--line)}
.navlinks li:hover>.sub-menu,.navlinks li:focus-within>.sub-menu{display:block}
.navcta{border:1px solid #7e6a49;padding:12px 17px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.navcta:hover{background:var(--gold);border-color:var(--gold);color:#111}
.mobile{display:none;background:none;border:0;color:var(--cream);cursor:pointer;width:44px;height:44px;padding:12px 10px;position:relative}
.mobile__bar{display:block;height:1px;background:currentColor;margin:6px 0;transition:transform .2s}
.nav.is-open .mobile__bar:nth-of-type(2){transform:translateY(3.5px) rotate(45deg)}
.nav.is-open .mobile__bar:nth-of-type(3){transform:translateY(-3.5px) rotate(-45deg)}

/* ---------- Buttons & shared text ---------- */
.eyebrow{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold)}
.display,.hero h1{font-size:clamp(56px,9.5vw,140px);line-height:.88;letter-spacing:-.05em;margin:24px 0}
.booking-hero h1{font-size:clamp(48px,7.5vw,110px);line-height:.92;letter-spacing:-.04em;margin:24px 0}
h1 em,h2 em{font-style:italic}
.tagline{font-size:13px;letter-spacing:.42em;text-transform:uppercase}
.lead,.copy{color:#c0bbb3;line-height:1.75}
.lead{max-width:570px;font-size:1.05rem}
.copy a,.lead a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.intro{max-width:640px;margin-top:-30px;margin-bottom:50px}
.buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-block;padding:14px 22px;border:1px solid #77736b;background:none;color:inherit;font-size:10px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.btn:hover{border-color:var(--gold);color:var(--gold)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#111}
.btn.gold:hover{background:#d8b882;color:#111}
.more{margin-top:40px}

/* ---------- Sections ---------- */
.section{padding:115px var(--gutter)}
.section--flush-top{padding-top:0}
.light{background:var(--cream);color:var(--ink)}
.light .copy,.light .lead{color:#4a4640}
.light .btn{border-color:#8a8378}
.light .stat{border-color:#d3cdc2}
.title{font-size:clamp(44px,7vw,92px);line-height:.94;margin:15px 0 55px}
.title--tight{margin-bottom:25px}

/* Hero (home) */
.hero{min-height:100vh;padding:145px var(--gutter) 80px;display:flex;align-items:flex-end;position:relative;overflow:hidden;background:radial-gradient(circle at 70% 28%,#554d42,#1b1917 40%,#080808 74%) center/cover no-repeat}
.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#000d,#0003 65%,#000b)}
.hero>*{position:relative;z-index:1}
.hero-inner{max-width:900px}

/* Page header (normal pages, blog, 404) */
.page-hero{padding:calc(var(--nav-h) + 90px) var(--gutter) 60px;position:relative;background:var(--black) center/cover no-repeat}
.page-hero__inner{max-width:var(--wide);margin:0 auto;position:relative;z-index:1}
.page-title{font-size:clamp(40px,6vw,84px);line-height:1;letter-spacing:-.03em;margin:14px 0 0;max-width:16ch}
.page-hero .lead{margin-top:22px}
.page-hero--image{min-height:62vh;display:flex;align-items:flex-end}
.page-hero--image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#080808ee,#08080833 70%)}
.page-hero--image .page-hero__inner{width:100%}

/* ---------- Block content area (page.php & friends) ---------- */
.page-main{min-height:60vh}
.page-builder{padding-top:var(--nav-h)}
.entry-content{padding:10px 0 110px;color:#d6d1c9}
.entry-content:has(> .alignfull:last-child){padding-bottom:0}
.entry-content>*{width:min(var(--content),100% - 2*var(--gutter));margin-left:auto;margin-right:auto}
.entry-content>.alignwide{width:min(var(--wide),100% - 2*var(--gutter))}
.entry-content>.alignfull{width:100%;max-width:none;margin-top:0;margin-bottom:0}
.entry-content>.alignfull+.alignfull{margin-top:0}
.entry-content>.alignleft{float:left;margin:.4em 2em 1em var(--gutter);max-width:45%}
.entry-content>.alignright{float:right;margin:.4em var(--gutter) 1em 2em;max-width:45%}
.entry-content--narrow>*{width:min(720px,100% - 2*var(--gutter))}
.page-builder .entry-content>.wp-block-cover.alignfull:first-child{margin-top:calc(var(--nav-h) * -1)}
.updated{font-size:12px;color:var(--muted);margin-top:50px}

/* ---------- Cards / grids ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.card{height:390px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;border:1px solid #fff1;background:linear-gradient(145deg,#534d43,#121110 70%)}
.card:nth-child(6n+2){background:linear-gradient(145deg,#2c2926,#756148)}
.card:nth-child(6n+3){background:linear-gradient(145deg,#151515,#4c4034)}
.card:nth-child(6n+4){background:linear-gradient(145deg,#413b34,#101010)}
.card:nth-child(6n+5){background:linear-gradient(145deg,#5c564d,#191817)}
.card:nth-child(6n){background:linear-gradient(145deg,#28231f,#67513b)}
.card__img{position:absolute;inset:0;width:100%;height:100%!important;object-fit:cover;transition:transform .6s ease}
.card:hover .card__img{transform:scale(1.04)}
.card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 42%,#000c)}
.card>b,.card>small{position:relative;z-index:1}
.card b{font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.card small{color:#d1cec7;margin-top:7px}
@media (prefers-reduced-motion:reduce){.card__img{transition:none}.card:hover .card__img{transform:none}}

.filters{display:flex;gap:10px;flex-wrap:wrap;margin:-20px 0 34px}
.filters a{display:inline-block;padding:9px 16px;border:1px solid #c9a66b66;border-radius:999px;color:#d8d2c8;font-size:10px;letter-spacing:.15em;text-transform:uppercase;transition:background-color .2s,color .2s,border-color .2s}
.filters a:hover{border-color:var(--gold);color:var(--gold)}
.filters a.active{background:var(--gold);border-color:var(--gold);color:#111}
@media (max-width:560px){.filters{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(var(--gutter) * -1);padding-right:var(--gutter);scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters a{flex:0 0 auto}}

/* Gallery (portfolio & albums) — layout chosen per project */
.ms-gallery{--gap:10px;--row:300px;margin-top:40px}
.ms-gallery__item{display:block;margin:0;position:relative;overflow:hidden;background:var(--panel)}
.ms-gallery__item img,.ms-gallery__item video{width:100%;height:100%;object-fit:cover;display:block}
a.ms-gallery__item{cursor:zoom-in}
a.ms-gallery__item img{transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .3s}
a.ms-gallery__item:hover img{transform:scale(1.025)}
a.ms-gallery__item:focus-visible{outline-offset:-3px}
.ms-gallery__item--video video{object-fit:contain;background:#000}
/* Justified: every row fills the width, every photo keeps its shape */
.ms-gallery--justified{display:flex;flex-wrap:wrap;gap:var(--gap)}
.ms-gallery--justified .ms-gallery__item{flex-grow:calc(var(--r) * 100);flex-basis:calc(var(--r) * var(--row));aspect-ratio:var(--r)}
.ms-gallery--justified::after{content:'';flex-grow:1000000}
/* Masonry */
.ms-gallery--masonry{columns:3 280px;column-gap:var(--gap)}
.ms-gallery--masonry .ms-gallery__item{break-inside:avoid;margin-bottom:var(--gap);aspect-ratio:var(--r)}
/* Even grid */
.ms-gallery--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.ms-gallery--grid .ms-gallery__item{aspect-ratio:4/5}
.ms-gallery--grid .ms-gallery__item--video{aspect-ratio:16/9;grid-column:span 2}
@media (prefers-reduced-motion:reduce){a.ms-gallery__item img{transition:none}a.ms-gallery__item:hover img{transform:none}}
.ms-video{margin-top:20px;aspect-ratio:16/9}
.ms-video iframe{width:100%;height:100%}
.project-cover{margin:0}
.project-cover img{width:100%;max-height:75vh;object-fit:cover;display:block}
.entry-content img.ms-zoomable{cursor:zoom-in}

/* Lightbox */
.ms-lb{position:fixed;inset:0;z-index:100000;background:#050505fc;display:grid;grid-template-rows:auto 1fr auto;color:var(--cream);opacity:0;transition:opacity .25s}
.ms-lb.is-open{opacity:1}
.ms-lb__top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#bdb6aa}
.ms-lb__actions{display:flex;gap:4px}
.ms-lb__btn{background:none;border:0;color:var(--cream);width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;text-decoration:none}
.ms-lb__btn:hover{background:#ffffff14;color:var(--gold)}
.ms-lb__btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5}
.ms-lb__stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 64px;touch-action:pan-y}
.ms-lb__img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;transition:opacity .25s;opacity:0}
.ms-lb__img.is-loaded{opacity:1}
.ms-lb__spin{position:absolute;width:28px;height:28px;border:1px solid #ffffff30;border-top-color:var(--gold);border-radius:50%;animation:ms-spin .8s linear infinite}
.ms-lb.is-ready .ms-lb__spin{display:none}
@keyframes ms-spin{to{transform:rotate(360deg)}}
.ms-lb__nav{position:absolute;top:50%;transform:translateY(-50%)}
.ms-lb__prev{left:10px}.ms-lb__next{right:10px}
.ms-lb__caption{min-height:52px;padding:12px 20px 18px;text-align:center;font-size:13px;color:#c0bbb3}
@media (max-width:700px){.ms-lb__stage{padding:0}.ms-lb__nav{display:none}}
@media (prefers-reduced-motion:reduce){.ms-lb,.ms-lb__img{transition:none}.ms-lb__spin{animation:none}}

/* Services */
.services{display:grid;grid-template-columns:repeat(2,1fr);column-gap:50px;border-top:1px solid var(--line)}
.service{padding:32px 0;border-bottom:1px solid var(--line)}
.service h3{font-size:32px;margin:10px 0}
.service__img img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;margin-bottom:10px}

/* About */
.about{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:stretch}
.media-panel{background:var(--panel) center/cover no-repeat;min-height:520px}
.media-panel:not([style]){display:none}
.media-panel--short{min-height:450px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px}
.stat{text-align:center;padding:35px 15px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat strong{display:block;font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:38px;color:var(--gold)}
.stat span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#aaa}

/* About: intro in two columns + full-width photo banner */
.about-intro{padding-bottom:70px}
.about-intro__grid{display:grid;grid-template-columns:1fr;gap:28px;justify-items:center;text-align:center}
.about-intro .copy{max-width:680px;margin-left:auto;margin-right:auto}
.about-intro .stats{width:100%;max-width:960px}
.about-intro .title{margin-bottom:0}
.about-intro .stats{margin-top:34px}
.about-banner{margin:0;width:100%;height:clamp(320px,52vw,760px);overflow:hidden;background:var(--panel)}
.about-banner img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}

.about-caption{display:grid;grid-template-columns:1fr 2fr;gap:6vw;align-items:baseline;padding:34px var(--gutter) 90px;border-bottom:1px solid var(--line)}
.about-caption p{margin:0;font-family:'Playfair Display',Georgia,serif;font-size:clamp(20px,2.1vw,30px);line-height:1.35;color:var(--cream);max-width:34ch}
@media (max-width:900px){.about-caption{grid-template-columns:1fr;gap:10px;padding-bottom:60px}}
@media (max-width:900px){.about-intro__grid{grid-template-columns:1fr;gap:20px}.about-banner{height:clamp(260px,62vw,480px)}}

/* Contact & forms */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:10vw}
.contact .copy a{text-decoration:none}
.form{max-width:900px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{width:100%;border:0;border-bottom:1px solid #807a70;border-radius:0;background:transparent;padding:17px 0;margin-bottom:15px;color:inherit;outline:0}
.field:focus{border-bottom-color:var(--gold)}
.field::placeholder{color:#888}
input[type=date].field{color-scheme:dark}
textarea.field{height:140px;resize:vertical}
.ms-field-label{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#888;margin-top:6px}
.ms-field-label+.field{padding-top:6px}
.ms-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ms-notice{padding:14px 18px;margin:0 0 20px;border:1px solid;font-size:14px}
.ms-notice--ok{border-color:#6f8f5a;background:#16200f;color:#cfe3c0}
.ms-notice--error{border-color:#9a4b3c;background:#24110d;color:#f0c9bf}
.ms-empty{border:1px dashed #6b5b40;padding:18px;color:#c9bfa9;font-size:14px}
.ms-empty a{color:var(--gold);text-decoration:underline}

/* Booking */
.booking-hero{min-height:68vh;padding:150px var(--gutter) 65px;display:flex;align-items:flex-end;gap:40px;position:relative;overflow:hidden;background:linear-gradient(90deg,#080808f5,#08080866),radial-gradient(circle at 65% 35%,#665646,#161412 60%)}
.offer{border:1px solid #7d6948;padding:24px 28px;background:#080808bb;max-width:350px;margin-left:auto;flex:0 0 auto}
.offer strong{font-size:13px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase}
.offer h3{font-size:34px;margin:12px 0}
.offer p{font-size:11px;line-height:1.6;color:#c2bcb2}
.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:auto}
.packages--4{grid-template-columns:repeat(4,1fr);max-width:1320px;gap:16px}
.packages--2{grid-template-columns:repeat(2,1fr);max-width:760px}
.packages--1{grid-template-columns:1fr;max-width:420px}
.package p{font-size:12px;line-height:1.7;color:#c0bbb3;margin:12px 0}
.package p strong{color:var(--cream);font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-size:10px}
.package p em{font-style:normal;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:10px;display:block;margin-bottom:2px}
.price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.price__was{font-size:18px;color:#8a8378;text-decoration-thickness:1px}
.price__save{font-family:'DM Sans',system-ui,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#111;background:var(--gold);padding:5px 10px;align-self:center}
.wp-block-table.ms-addons td:last-child{color:var(--gold);white-space:nowrap;font-family:'Playfair Display',Georgia,serif;font-size:1.1rem}
.wp-block-table.ms-addons td{border-left:0;border-right:0}
.package{border:1px solid #5d503b;background:linear-gradient(160deg,#151412,#0b0b0b);padding:30px 24px;position:relative;min-height:420px;display:flex;flex-direction:column}
.package .btn{align-self:flex-start}
.package__img{margin:-30px -24px 0;aspect-ratio:4/3;overflow:hidden;background:var(--panel)}
.package.popular .package__img{margin:-30px -24px 0}
.package__img img{width:100%;height:100%;object-fit:cover;display:block}
.package .icon svg{display:block}
.package .icon{display:flex;gap:6px;align-items:center}
.package.package--img .icon{width:52px;height:52px;margin:-26px auto 0;border-radius:26px;background:linear-gradient(145deg,#c9a66b,#8a6a3a);color:#fff;display:flex;width:max-content;min-width:52px;padding:0 14px;align-items:center;justify-content:center;font-size:20px;position:relative;z-index:1;box-shadow:0 0 0 4px #121110}
.package--img h3{text-align:center;margin-top:14px}
.package--img .desc{text-align:center}
.package.popular .badge{z-index:2}
.booking-hero--image{background-size:cover;background-position:center}
.booking-hero--image:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#080808f2 0%,#080808b0 45%,#08080840 100%)}
.booking-hero>*{position:relative;z-index:1}

.package .price{margin-top:auto;padding-top:10px}
.package.popular{border:2px solid var(--gold);transform:translateY(-10px)}
.badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:#111;padding:6px 20px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.package .icon{color:var(--gold);font-size:28px}
.package h3{font-size:31px;margin:18px 0 8px}
.package .desc{color:#aaa;font-size:12px}
.package ul{list-style:none;padding:15px 0;margin:0;color:#d1ccc3;font-size:12px;line-height:2}
.package li:before{content:'✓';color:var(--gold);margin-right:9px}
.price{font-family:'Playfair Display',Georgia,serif;font-size:35px;color:var(--gold);margin:18px 0}
.included{display:grid;grid-template-columns:repeat(4,1fr);max-width:1100px;margin:55px auto 0;border:1px solid #5b4e3a}
.included div{padding:22px;border-right:1px solid #5b4e3a;text-align:center}
.included b{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.included span{display:block;color:#999;font-size:11px;margin-top:7px}
.why{border:1px solid #514735;background:#11100e;padding:28px;align-self:start}
.why h3{font-size:27px;margin:0 0 18px}
.why p{color:#aaa;font-size:12px;line-height:1.7}
.booking-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:45px;max-width:1150px;margin:auto}
.booking-form{border:1px solid #4d4332;padding:28px;background:#0e0d0c}
.booking-form .field{color:#eee;border-color:#514a3e}

/* Booking form: labelled fields and dropdowns */
.booking-form{padding:32px}
.bf-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.bf-field{margin-bottom:18px}
.bf-label{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#bdb6aa;margin-bottom:4px}
.bf-label span{color:var(--gold)}
.bf-field .field{margin-bottom:0;padding:12px 0}
.bf-hint{display:block;margin-top:6px;font-size:11px;color:#7d776e}
.bf-select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:28px!important;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c9a66b' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 4px center}
.bf-select:invalid{color:#888}
.bf-select option,.bf-select optgroup{background:#151412;color:#eee}
.booking-form textarea.field{height:120px}
.bf-note{font-size:11px;color:#8a8378;margin:6px 0 18px}
@media (max-width:700px){.bf-grid{grid-template-columns:1fr}.booking-form{padding:22px}}

/* Albums */
.albums-intro{padding-bottom:60px}
.album-card__lock{position:absolute;top:16px;left:16px;z-index:1;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#080808b3;border:1px solid #c9a66b66;color:var(--gold);font-size:9px;letter-spacing:.16em;text-transform:uppercase;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.album{max-width:560px;margin:auto;text-align:center}
.album-list{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:12px;justify-items:center}
.album-form{margin:30px auto 0;max-width:380px;text-align:left}
.album-form p{text-align:center;color:#c0bbb3}
.lock{font-size:42px;color:var(--gold)}

/* Photo galleries built in the block editor (projects & albums): wider, gap-free masonry that keeps each photo's shape */
.single-portfolio .entry-content>.wp-block-gallery,.single-client_album .entry-content>.wp-block-gallery{width:min(var(--wide),100% - 2*var(--gutter))}
.single-portfolio .wp-block-gallery.has-nested-images,.single-client_album .wp-block-gallery.has-nested-images{display:block!important;columns:3 280px;column-gap:10px}
.single-portfolio .wp-block-gallery.has-nested-images figure.wp-block-image,.single-client_album .wp-block-gallery.has-nested-images figure.wp-block-image{display:block;width:100%!important;margin:0 0 10px!important;break-inside:avoid}
.single-portfolio .wp-block-gallery.has-nested-images figure.wp-block-image img,.single-client_album .wp-block-gallery.has-nested-images figure.wp-block-image img{width:100%!important;height:auto!important;object-fit:initial!important}
@media (max-width:560px){.single-portfolio .wp-block-gallery.has-nested-images,.single-client_album .wp-block-gallery.has-nested-images{columns:2;column-gap:6px}}

/* Pagination & post navigation */
.pagination,.post-nav{margin-top:50px}
.nav-links,.post-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}
.page-numbers{display:inline-block;padding:10px 14px;border:1px solid var(--line);font-size:12px}
.page-numbers.current,.page-numbers:hover{border-color:var(--gold);color:var(--gold)}
.post-nav a{color:var(--gold)}
.search-form{display:flex;gap:10px;max-width:480px;margin-top:20px}
.search-form .search-field{flex:1;background:transparent;border:0;border-bottom:1px solid #807a70;color:inherit;padding:12px 0}
.search-form .search-submit{background:var(--gold);border:0;padding:0 18px;cursor:pointer}

/* ---------- Footer ---------- */
.footer{padding:45px var(--gutter) 30px;border-top:1px solid var(--line);color:#888;font-size:10px;letter-spacing:.09em}
.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}
.footer a:hover{color:var(--gold)}
.footlogo{width:220px;max-width:100%;height:auto;margin-bottom:6px}
.footbar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
.footlinks{display:flex;gap:18px;list-style:none;margin:0;padding:0}

/* ---------- Responsive ---------- */
@media (max-width:1200px){.packages--4{grid-template-columns:1fr 1fr;max-width:860px}}
@media (max-width:900px){
  .mobile{display:block}
  /* Absolute (not fixed): the header's backdrop-filter makes it the containing block. */
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;height:calc(100vh - var(--nav-h));height:calc(100dvh - var(--nav-h));background:#080808;flex-direction:column;align-items:flex-start;gap:30px;padding:40px 6vw;overflow-y:auto}
  .admin-bar .site-nav{height:calc(100dvh - var(--nav-h) - 46px)}
  .nav.is-open .site-nav{display:flex}
  .navlinks{flex-direction:column;gap:6px;font-size:14px}
  .navlinks .sub-menu{display:block;position:static;border:0;background:none;padding:0 0 0 16px}
  .navcta--always{display:inline-block}
  .grid,.packages,.packages--4,.ms-gallery--grid{grid-template-columns:1fr 1fr}
  .ms-gallery{--row:220px}
  .about,.contact,.booking-grid{grid-template-columns:1fr}
  .services{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(2){border-right:0}
  .footgrid{grid-template-columns:1fr 1fr}
  .row{grid-template-columns:1fr;gap:0}
  .included{grid-template-columns:1fr 1fr}
  .package.popular{transform:none}
  .section{padding:85px 6vw}
  .section--flush-top{padding-top:0}
  :root{--gutter:6vw}
  .booking-hero{padding:130px 6vw 60px;flex-direction:column;align-items:flex-start}
  .offer{margin:0}
  .hero{padding:135px 6vw 70px}
  .media-panel{min-height:380px}
}
@media (max-width:560px){
  .grid,.packages,.packages--4,.packages--2,.stats,.footgrid,.included{grid-template-columns:1fr}
  .ms-gallery{--row:150px;--gap:6px}
  .ms-gallery--masonry{columns:2}
  .ms-gallery--grid .ms-gallery__item--video{grid-column:span 2}
  .stat{border-right:0;border-bottom:1px solid var(--line)}
  .card{height:300px}
  .buttons{flex-direction:column;align-items:flex-start}
  .logo img{width:165px}
  .entry-content>.alignleft,.entry-content>.alignright{float:none;margin-left:auto;margin-right:auto;max-width:none}
}

/* Floating buttons: back to top + WhatsApp */
.ms-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom, 0px));z-index:40;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.ms-float a,.ms-float button{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:1px solid #c9a66b80;background:#0b0b0ae6;color:var(--gold);cursor:pointer;border-radius:50%;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .25s,transform .25s,background-color .2s}
.ms-float a:hover,.ms-float button:hover{background:var(--gold);color:#111}
.ms-float svg{width:20px;height:20px}
.ms-top{opacity:0;transform:translateY(8px);pointer-events:none}
.ms-top.is-visible{opacity:1;transform:none;pointer-events:auto}
/* Project page: more work */
.project-more{border-top:1px solid var(--line);margin-top:60px;padding-top:40px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.project-more .filters{margin:14px 0 0}
.project-next{text-align:right}
.project-next small{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8a8378;margin-bottom:6px}
.project-next a{font-family:'Playfair Display',Georgia,serif;font-size:clamp(22px,2.4vw,34px);color:var(--cream)}
.project-next a:hover{color:var(--gold)}
@media (max-width:700px){.project-more{grid-template-columns:1fr}.project-next{text-align:left}}

/* ===== Home: full-screen photo slideshow ===== */
.hero--slides{background:#080808}
.hero-slides{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;background:#080808 center/cover no-repeat;opacity:0;transform:scale(1.06);transition:opacity 1.6s ease,transform 7s ease-out}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero--slides:after{z-index:0;background:linear-gradient(90deg,#000c 0%,#0006 45%,#0000 75%),linear-gradient(0deg,#000a 0%,#0000 40%)}
.hero--slides .hero-inner{z-index:1}
.hero-scroll{position:absolute;left:50%;bottom:26px;z-index:2;width:24px;height:38px;border:1px solid #ffffff66;border-radius:14px;transform:translateX(-50%)}
.hero-scroll span{position:absolute;left:50%;top:8px;width:2px;height:8px;margin-left:-1px;background:var(--gold);border-radius:1px;animation:ms-scroll 1.8s ease-in-out infinite}
@keyframes ms-scroll{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
@media (prefers-reduced-motion:reduce){.hero-slide{transition:opacity .6s;transform:none!important}.hero-scroll span{animation:none}}
@media (max-width:700px){.hero-scroll{display:none}}

/* ===== Home: photo wall ===== */
.frames__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:34px}
.frames__wall{--row:280px;margin-top:0}
.frame{cursor:pointer!important}
.frame__label{position:absolute;left:14px;bottom:12px;z-index:1;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;text-shadow:0 1px 8px #000}
.frame:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000a,#0000 45%);opacity:0;transition:opacity .3s}
.frame:hover .frame__label,.frame:focus-visible .frame__label{opacity:1;transform:none}
.frame:hover:after{opacity:1}
@media (max-width:700px){.frames__head{flex-direction:column;align-items:flex-start}.frames__wall{--row:150px}}

/* ===== Home: category tiles ===== */
.cat-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cat-tiles--3{grid-template-columns:repeat(3,1fr)}
.cat-tiles--2{grid-template-columns:repeat(2,1fr)}
.cat-tiles--1{grid-template-columns:1fr}
.cat-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:min(62vh,560px);padding:26px;overflow:hidden;background:var(--panel)}
.cat-tile__img{position:absolute;inset:0;width:100%;height:100%!important;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.cat-tile:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000d 0%,#0003 55%,#0000 100%)}
.cat-tile:hover .cat-tile__img{transform:scale(1.05)}
.cat-tile__name,.cat-tile__count{position:relative;z-index:1}
.cat-tile__name{font-family:'Playfair Display',Georgia,serif;font-size:clamp(26px,2.6vw,40px);line-height:1.05}
.cat-tile__count{margin-top:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
@media (max-width:900px){.cat-tiles,.cat-tiles--3{grid-template-columns:1fr 1fr}.cat-tile{min-height:340px}}
@media (max-width:560px){.cat-tiles,.cat-tiles--3,.cat-tiles--2{grid-template-columns:1fr}.cat-tile{min-height:300px}}
@media (prefers-reduced-motion:reduce){.cat-tile__img{transition:none}.cat-tile:hover .cat-tile__img{transform:none}}

/* ===== Home (creative) ===== */
.hero-title em,.title em,.statement__text em{font-style:italic;color:var(--gold)}
.hero-counter{position:absolute;right:var(--gutter);bottom:46px;z-index:2;display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.2em;color:#ffffffb3}
.hero-counter__now{color:#fff}
.hero-counter__bar{position:relative;width:120px;height:1px;background:#ffffff40;overflow:hidden}
.hero-counter__bar i{position:absolute;inset:0;background:var(--gold);transform-origin:left;transform:scaleX(0)}
.hero-counter__bar i.is-running{animation:ms-progress var(--slide-ms,5500ms) linear forwards}
@keyframes ms-progress{to{transform:scaleX(1)}}
@media (max-width:700px){.hero-counter{left:6vw;right:auto;bottom:28px}}

/* Filmstrip: two rows of photos drifting in opposite directions */
.filmstrip{padding:110px 0 40px;overflow:hidden;position:relative}
.filmstrip__label{padding:0 var(--gutter) 26px}
.filmstrip__row{overflow:hidden;margin-bottom:12px}
.filmstrip__track{display:flex;gap:12px;width:max-content;animation:ms-marquee 80s linear infinite}
.filmstrip__row--reverse .filmstrip__track{animation-direction:reverse;animation-duration:95s}
.filmstrip:hover .filmstrip__track{animation-play-state:paused}
.filmstrip__item{flex:0 0 auto;height:clamp(200px,24vw,340px);overflow:hidden;background:var(--panel);cursor:zoom-in}
.filmstrip__item img{height:100%;width:auto;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .4s;filter:saturate(.92)}
.filmstrip__item:hover img{transform:scale(1.04);filter:none}
@keyframes ms-marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.filmstrip__track{animation:none}.filmstrip__row{overflow-x:auto}}

/* Statement with photos inside the sentence */
.statement{padding-top:90px;padding-bottom:110px}
.statement__text{font-family:'Playfair Display',Georgia,serif;font-size:clamp(30px,4.6vw,68px);line-height:1.22;letter-spacing:-.02em;max-width:1200px;margin:0}
.statement__img{display:inline-block;vertical-align:middle;width:clamp(70px,9vw,140px);height:clamp(44px,5.4vw,84px);margin:0 .12em;border-radius:999px;overflow:hidden;transform:translateY(-.06em)}
.statement__img img{width:100%;height:100%;object-fit:cover;display:block}

/* Category list with image that follows the cursor */
.cat-list-wrap{position:relative;padding-top:20px}
.cat-list__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.cat-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cat-list__item{display:grid;grid-template-columns:70px 1fr auto auto;align-items:center;gap:24px;padding:30px 0;border-bottom:1px solid var(--line);transition:padding .35s,color .35s}
.cat-list__num{font-size:11px;letter-spacing:.2em;color:#8a8378}
.cat-list__name{font-family:'Playfair Display',Georgia,serif;font-size:clamp(34px,5.6vw,88px);line-height:1;letter-spacing:-.03em;transition:transform .45s cubic-bezier(.2,.7,.2,1),color .35s}
.cat-list__count{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8a8378}
.cat-list__arrow{font-size:28px;color:var(--gold);transform:translateX(-10px);opacity:0;transition:opacity .35s,transform .35s}
.cat-list__thumb{display:none}
.cat-list__item:hover .cat-list__name,.cat-list__item:focus-visible .cat-list__name{transform:translateX(18px);color:var(--gold)}
.cat-list__item:hover .cat-list__arrow{opacity:1;transform:none}
.cat-list__float{position:fixed;left:0;top:0;z-index:5;width:300px;height:380px;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .3s,transform .3s;overflow:hidden;box-shadow:0 30px 80px #000c}
.cat-list__float.is-on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cat-list__float img{width:100%;height:100%;object-fit:cover}
@media (hover:none),(max-width:900px){.cat-list__float{display:none}.cat-list__item{grid-template-columns:1fr 84px;gap:6px 16px;padding:22px 0}.cat-list__num,.cat-list__arrow{display:none}.cat-list__thumb{display:block;grid-row:span 2;width:84px;height:84px;overflow:hidden}.cat-list__thumb img{width:100%;height:100%;object-fit:cover}.cat-list__count{grid-column:1}}

/* Scroll reveal */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .hero [data-reveal]{opacity:1;transform:none}
.hero.is-ready [data-reveal]{animation:ms-rise 1.1s cubic-bezier(.2,.7,.2,1) both}
.hero.is-ready [data-reveal]:nth-child(2){animation-delay:.12s}.hero.is-ready [data-reveal]:nth-child(3){animation-delay:.24s}.hero.is-ready [data-reveal]:nth-child(4){animation-delay:.36s}
@keyframes ms-rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none;transition:none}.hero.is-ready [data-reveal]{animation:none}}
.explore .cat-list__head{align-items:flex-end;margin-bottom:34px}
.explore .card b{font-size:15px}
.explore .card small{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:10px}

/* Small Instagram grid in the footer */
.foot-ig{display:inline-flex;align-items:center;gap:6px}
.foot-ig-feed{display:grid;grid-template-columns:repeat(3,56px);gap:4px;margin-top:12px}
.foot-ig-feed a{display:block;width:56px;height:56px;overflow:hidden;background:var(--panel)}
.foot-ig-feed img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:opacity .25s}
.foot-ig-feed a:hover img{opacity:1}
/* Smash Balloon feed kept small */
.foot-ig-feed--live{display:block;max-width:180px}
.foot-ig-feed--live #sb_instagram{padding:0!important;width:180px!important}
.foot-ig-feed--live #sb_instagram .sb_instagram_header,.foot-ig-feed--live #sb_instagram .sbi_load_btn,.foot-ig-feed--live #sb_instagram #sbi_load{display:none!important}
.foot-ig-feed--live #sb_instagram #sbi_images{padding:0!important;gap:4px}
.foot-ig-feed--live #sb_instagram .sbi_follow_btn a{font-size:10px!important;padding:6px 10px!important;background:var(--gold)!important;color:#111!important;border-radius:0!important;letter-spacing:.1em;text-transform:uppercase;margin-top:8px}

/* ===== Films page ===== */
.films-intro{padding-bottom:50px}
.film-feature{padding:0 var(--gutter)}
.film-feature__btn{position:relative;display:block;width:100%;aspect-ratio:16/9;max-height:80vh;border:0;padding:0;background:#000;cursor:pointer;overflow:hidden;color:inherit;text-align:left}
.film-feature__btn img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:transform 1s cubic-bezier(.2,.7,.2,1),opacity .4s}
.film-feature__btn:hover img{transform:scale(1.03);opacity:1}
.film-feature__btn:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000c,#0000 50%)}
.film-feature__meta{position:absolute;left:clamp(20px,4vw,48px);bottom:clamp(20px,4vw,44px);z-index:2;display:flex;flex-direction:column;gap:8px}
.film-feature__title{font-family:'Playfair Display',Georgia,serif;font-size:clamp(28px,4vw,58px);line-height:1.05;color:#fff}
.film-play{position:absolute;left:50%;top:50%;z-index:2;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#c9a66bd9;color:#111;transition:transform .3s,background-color .3s;box-shadow:0 10px 40px #0009}
.film-play svg{margin-left:4px}
.film-feature__btn:hover .film-play,.film-card:hover .film-play,.reel-card:hover .film-play{transform:scale(1.1);background:var(--gold)}
.film-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 16px}
.film-card{display:flex;flex-direction:column;gap:8px;border:0;padding:0;background:none;color:inherit;text-align:left;cursor:pointer}
.film-card[hidden]{display:none}
.film-card__img{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#000}
.film-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.film-card:hover .film-card__img img{transform:scale(1.05)}
.film-card .film-play{width:56px;height:56px;margin:-28px 0 0 -28px}
.film-card__title{font-family:'Playfair Display',Georgia,serif;font-size:20px;line-height:1.25}
.film-card__cat{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.reel-row{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}
.reel-card{position:relative;flex:0 0 clamp(170px,18vw,240px);aspect-ratio:9/16;border:0;padding:0;background:#000;overflow:hidden;cursor:pointer;scroll-snap-align:start;color:#fff;text-align:left}
.reel-card img{width:100%;height:100%;object-fit:cover;display:block}
.reel-card:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000b,#0000 45%)}
.reel-card .film-play{width:52px;height:52px;margin:-26px 0 0 -26px}
.reel-card__title{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;font-size:12px;line-height:1.4}
.film-modal{position:fixed;inset:0;z-index:100000;background:#000f;display:flex;align-items:center;justify-content:center;padding:4vw}
.film-modal[hidden]{display:none}
.film-modal__frame{width:min(1400px,100%);aspect-ratio:16/9;background:#000}
.film-modal.is-vertical .film-modal__frame{width:auto;height:min(88vh,900px);aspect-ratio:9/16}
.film-modal__frame iframe{width:100%;height:100%;border:0;display:block}
.film-modal__close{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:40px;line-height:1;cursor:pointer;padding:6px 12px}
.film-modal__close:hover{color:var(--gold)}
@media (max-width:900px){.film-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.film-grid{grid-template-columns:1fr}.film-feature{padding:0}.film-play{width:64px;height:64px;margin:-32px 0 0 -32px}}
