/* Max Sydko Photography — website UI kit. Structure mirrors sydkowed.com.
   Inherits foundation from ../../colors_and_type.css */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--cream); color:var(--ink); font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;}
img{display:block; max-width:100%;}
.wrap{max-width:var(--container); margin:0 auto; padding:0 var(--gutter);}
.wrap-text{max-width:var(--container-text); margin:0 auto; padding:0 var(--gutter);}
section{position:relative;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} html{scroll-behavior:auto;} }

/* ============ NAV ============ */
.nav{position:fixed; top:0; left:0; right:0; z-index:60; transition:background-color .6s var(--ease), color .6s var(--ease), border-color .6s var(--ease);
  border-bottom:1px solid transparent;}
.nav-inner{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:22px var(--gutter); gap:24px;}
.nav-group{display:flex; gap:26px; align-items:center;}
.nav-group.right{justify-content:flex-end;}
.nav a.nlink{font-size:11px; letter-spacing:.24em; text-transform:uppercase; text-decoration:none; color:inherit; position:relative; padding-bottom:3px; cursor:pointer;}
.nav a.nlink::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease);}
.nav a.nlink:hover::after{transform:scaleX(1);}
.nav .mark{font-family:var(--font-serif); font-weight:400; font-size:21px; letter-spacing:.05em; text-align:center; white-space:nowrap; color:inherit; text-decoration:none; cursor:pointer;}
.nav-logo{height:48px; max-width:none; display:block; object-fit:contain;}
.nav .mark em{font-style:italic;}
.nav.over-photo{color:var(--on-dark);}
.nav.solid{background:var(--cream); color:var(--ink); border-bottom-color:var(--line);}
.nav-burger{display:none; background:none; border:0; color:inherit; cursor:pointer; font-size:11px; letter-spacing:.24em; text-transform:uppercase;}

/* nav — MENU model */
.nav-menu-mode{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:22px var(--gutter);}
.nav-menu-btn{justify-self:start; display:inline-flex; align-items:center; gap:10px; background:none; border:0; color:inherit; cursor:pointer; font-family:var(--font-sans); font-size:11px; letter-spacing:.24em; text-transform:uppercase; padding:0;}
.nav-menu-bars{display:inline-flex; flex-direction:column; gap:4px;}
.nav-menu-bars i{display:block; width:22px; height:1px; background:currentColor;}
.nav-social{justify-self:end; display:flex; gap:18px;}
.nav-social a{font-family:var(--font-sans); font-size:11px; letter-spacing:.18em; text-decoration:none; color:inherit; opacity:.85;}
.nav-social a:hover{opacity:1;}

/* ============ MENU OVERLAY (two-panel) ============ */
.menu-overlay{position:fixed; inset:0; z-index:120; display:grid; grid-template-columns:1fr 1fr;
  opacity:0; pointer-events:none; transition:opacity .55s var(--ease);}
.menu-overlay.open{opacity:1; pointer-events:auto;}
.menu-panel{position:relative; background:var(--forest); color:var(--on-dark); padding:clamp(28px,4vw,56px) clamp(32px,5vw,80px); display:flex; flex-direction:column;
  transform:translateY(-18px); transition:transform .6s var(--ease);}
.menu-overlay.open .menu-panel{transform:none;}
.menu-close{align-self:flex-start; display:inline-flex; align-items:center; gap:10px; background:none; border:0; color:var(--on-dark); cursor:pointer; font-family:var(--font-sans); font-size:11px; letter-spacing:.24em; text-transform:uppercase; padding:0; margin-bottom:auto;}
.menu-close span{font-size:15px;}
.menu-links{display:flex; flex-direction:column; gap:clamp(2px,0.4vw,6px); margin:clamp(24px,4vh,56px) 0;}
.menu-links a{font-family:var(--font-serif); font-weight:500; line-height:1; color:var(--on-dark); text-decoration:none; width:max-content; cursor:pointer; transition:color .4s var(--ease);}
.menu-links a:hover{color:var(--gold);}
.menu-foot{margin-top:auto; max-width:380px;}
.menu-mark{height:30px; display:block; filter:brightness(0) invert(1); opacity:.92;}
.menu-bio{font-size:13px; line-height:1.7; font-weight:300; color:var(--on-dark-soft); margin:16px 0 16px;}
.menu-social{display:flex; gap:22px;}
.menu-social a{font-family:var(--font-sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--on-dark-soft); text-decoration:none;}
.menu-social a:hover{color:var(--gold);}
.menu-media{position:relative; overflow:hidden; cursor:pointer; background:var(--cream-dark);}
.menu-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.menu-media::after{content:""; position:absolute; inset:0; background:rgba(20,16,12,.18);}
.menu-media-word{position:absolute; top:50%; left:0; transform:translateY(-50%); z-index:2; color:var(--on-dark);
  font-family:var(--font-sans); font-weight:300; font-size:clamp(60px,9vw,150px); letter-spacing:.04em; text-indent:-.12em; mix-blend-mode:soft-light; opacity:.95;}

/* ============ HERO ============ */
.hero{height:100vh; min-height:620px; position:relative; overflow:hidden;}
.hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.04);}

/* split two-column slideshow (KT-Merry style) */
.hero-split{display:flex;}
.hero-half{position:relative; flex:1 1 50%; overflow:hidden; background:var(--cream-dark);}
.hero-slide{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0;
  transform:scale(1.06); transition:opacity 1.5s var(--ease), transform 6s linear; will-change:opacity;}
.hero-slide.is-active{opacity:1; transform:scale(1.005);}
.hero-split-line{position:absolute; top:0; bottom:0; left:50%; width:1px; transform:translateX(-50%); background:rgba(244,241,234,.5); z-index:1;}
@media (prefers-reduced-motion: reduce){ .hero-slide{transition:opacity .4s;} .hero-slide:not(.is-active){opacity:0;} }
.hero::after{content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 52% at 50% 52%, rgba(20,16,12,.42) 0%, rgba(20,16,12,.12) 60%, transparent 100%),
    linear-gradient(180deg, rgba(20,16,12,.42) 0%, rgba(20,16,12,.14) 30%, rgba(20,16,12,.2) 66%, rgba(20,16,12,.56) 100%);}
.hero-content{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--on-dark); padding:0 24px; text-shadow:0 2px 38px rgba(20,16,12,.4);}
.hero-h1{display:flex; flex-direction:column; align-items:center; margin:0; font-weight:inherit;}
h2.lead{margin-block:0;}
.hero-eyebrow{font-size:12px; letter-spacing:.4em; text-transform:uppercase; color:var(--on-dark); opacity:.92; text-indent:.4em;}
.hero-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(46px,8.2vw,116px); line-height:.98; margin:20px 0 0; letter-spacing:-.01em;}
.hero-title em{font-style:italic; font-weight:400;}
.hero-sub{margin-top:22px; font-size:13px; letter-spacing:.26em; text-transform:uppercase; opacity:.88; text-indent:.26em;}
.scroll-cue{position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:2; color:var(--on-dark); display:flex; flex-direction:column; align-items:center; gap:10px; font-size:10px; letter-spacing:.3em; text-transform:uppercase; opacity:.8;}
.scroll-cue i{width:1px; height:46px; background:currentColor; animation:cue 2.4s var(--ease) infinite;}
@keyframes cue{0%,100%{transform:scaleY(.4); transform-origin:top; opacity:.4;}50%{transform:scaleY(1); opacity:.9;}}

/* ============ generic band ============ */
.band{padding:var(--s-10) 0;}
.band-cream{background:var(--cream);}
.band-deep{background:var(--cream-deep);}
.center{text-align:center;}
.eyebrow-c{display:block; font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--stone);}
.lead{font-family:var(--font-serif); font-weight:500; font-size:clamp(30px,4.4vw,56px); line-height:1.12; letter-spacing:-.005em; color:var(--ink); margin:22px 0 0;}
.lead em{font-style:italic; font-weight:400;}
.para{font-size:16px; line-height:1.85; font-weight:300; color:var(--ink-soft);}
.rule-c{width:54px; height:1px; background:var(--ink); margin:0 auto;}

/* ============ MANIFESTO ============ */
.manifesto{max-width:880px; margin:0 auto; text-align:center;}
.manifesto .para{max-width:560px; margin:28px auto 0;}

/* ============ GALLERY ============ */
.gallery-grid{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(10px,1.4vw,18px);}
.g-item{overflow:hidden; cursor:pointer; position:relative; background:var(--cream-dark);}
.g-item img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease);}
.g-item:hover img{transform:scale(1.05);}
.g-tall{grid-column:span 4; aspect-ratio:3/4.2;}
.g-wide{grid-column:span 8; aspect-ratio:16/10;}
.g-half{grid-column:span 6; aspect-ratio:4/3;}
.g-cap{position:absolute; left:16px; bottom:14px; color:var(--on-dark); font-size:10px; letter-spacing:.24em; text-transform:uppercase; opacity:0; transform:translateY(6px); transition:.5s var(--ease); z-index:2; text-shadow:0 1px 12px rgba(0,0,0,.4);}
.g-item:hover .g-cap{opacity:1; transform:none;}

/* ============ ABOUT ============ */
.about-grid{display:grid; grid-template-columns:0.82fr 1fr; gap:clamp(32px,6vw,90px); align-items:center;}
.about-img{aspect-ratio:3/4; overflow:hidden; background:var(--cream-dark);}
.about-img img{width:100%; height:100%; object-fit:cover;}
.featured{margin-top:var(--s-9); text-align:center;}
.featured-row{display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,56px); align-items:center; justify-content:center; margin-top:24px;}
.featured-row span{font-family:var(--font-serif); font-size:clamp(20px,2.4vw,30px); font-weight:500; color:var(--ink); opacity:.78; letter-spacing:.02em;}
.featured-row .it{font-style:italic;}

/* ============ COLLECTIONS ============ */
.collections-head{text-align:center; margin-bottom:var(--s-9);}
.tier{display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; border-top:1px solid var(--line);}
.tier:last-child{border-bottom:1px solid var(--line);}
.tier-media{overflow:hidden; min-height:440px; background:var(--cream-dark); position:relative;}
.tier-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform 1.6s var(--ease);}
.tier:hover .tier-media img{transform:scale(1.05);}
.tier-body{padding:clamp(36px,5vw,72px); display:flex; flex-direction:column; justify-content:center;}
.tier.flip .tier-media{order:2;}
.tier-num{font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--stone);}
.tier-name{font-family:var(--font-serif); font-weight:500; font-size:clamp(32px,3.6vw,50px); line-height:1.02; margin:14px 0 6px; color:var(--ink);}
.tier-name em{font-style:italic; font-weight:400;}
.tier-kicker{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--ink);}
.tier-cols{display:grid; grid-template-columns:1fr 1fr; gap:28px; margin:30px 0;}
.tier-col h4{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--ink); margin:0 0 12px; font-weight:500;}
.tier-col ul{list-style:none; margin:0; padding:0;}
.tier-col li{font-size:13.5px; line-height:1.5; font-weight:300; color:var(--ink-soft); padding:6px 0; border-bottom:1px solid var(--line);}
.tier-foot{display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:auto; padding-top:24px; border-top:1px solid var(--ink);}

/* ============ OPTIONAL / PROCESS ============ */
.optional-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(32px,5vw,72px);}
.opt{display:flex; justify-content:space-between; gap:16px; align-items:baseline; padding:20px 0; border-bottom:1px solid var(--line);}
.opt-name{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink);}
.opt-price{font-size:12px; letter-spacing:.16em; color:var(--stone); white-space:nowrap;}
.process-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,4vw,56px);}
.step-n{font-family:var(--font-serif); font-size:46px; font-weight:400; font-style:italic; color:var(--gold-deep);}
.step h4{font-size:12px; letter-spacing:.22em; text-transform:uppercase; margin:16px 0 12px; color:var(--ink); font-weight:500;}
.step p{font-size:14px; line-height:1.7; font-weight:300; color:var(--ink-soft); margin:0;}

/* ============ CTA ============ */
.cta{position:relative; height:78vh; min-height:520px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center;}
.cta img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.cta::after{content:""; position:absolute; inset:0; background:rgba(20,16,12,.4);}
.cta-content{position:relative; z-index:2; color:var(--on-dark); padding:0 24px;}
.cta-content .lead{color:var(--on-dark);}

/* ============ FOOTER ============ */
.footer{background:var(--forest); color:var(--on-dark); padding:var(--s-10) 0 var(--s-7);}
.footer .mark{font-family:var(--font-serif); font-weight:500; font-size:34px; letter-spacing:.05em; color:var(--on-dark);}
.footer .mark em{font-style:italic;}
.footer-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:var(--s-8); border-bottom:1px solid var(--forest-soft);}
.footer-contact{display:flex; flex-direction:column; gap:8px; align-items:flex-end; text-align:right;}
.footer-contact a{font-size:13px; letter-spacing:.06em; color:var(--on-dark-soft); text-decoration:none; white-space:nowrap;}
.footer-contact a:hover{color:var(--on-dark);}
.footer-bottom{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-top:var(--s-6); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--on-dark-soft);}
.footer-bottom > span{white-space:nowrap;}
.footer-nav{display:flex; gap:28px; flex-wrap:wrap;}
.footer-nav a{text-decoration:none; color:var(--on-dark-soft);}
.footer-nav a:hover{color:var(--on-dark);}

/* ============ LIGHTBOX ============ */
.lightbox{position:fixed; inset:0; z-index:100; background:rgba(20,16,12,.94); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .5s var(--ease);}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox img{max-width:88vw; max-height:86vh; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.lb-close{position:absolute; top:26px; right:30px; background:none; border:0; color:var(--on-dark); font-size:11px; letter-spacing:.24em; text-transform:uppercase; cursor:pointer;}
.lb-arrow{position:absolute; top:50%; transform:translateY(-50%); background:none; border:0; color:var(--on-dark); cursor:pointer; font-family:var(--font-serif); font-size:40px; padding:20px; opacity:.7;}
.lb-arrow:hover{opacity:1;}
.lb-prev{left:18px;} .lb-next{right:18px;}

/* ============ MODAL (enquire) ============ */
.modal{position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .5s var(--ease);}
.modal.open{opacity:1; pointer-events:auto;}
.modal-bg{position:absolute; inset:0; background:rgba(20,16,12,.6);}
.modal-card{position:relative; z-index:2; background:var(--cream); width:min(560px,92vw); max-height:90vh; overflow:auto; padding:clamp(32px,5vw,56px);}
.modal-card h3{font-family:var(--font-serif); font-weight:500; font-size:38px; margin:8px 0 0; color:var(--ink);}
.modal-card h3 em{font-style:italic; font-weight:400;}
.modal-form{display:flex; flex-direction:column; gap:20px; margin-top:28px;}
.modal-close{position:absolute; top:20px; right:22px; background:none; border:0; cursor:pointer; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink);}
.thanks{text-align:center; padding:20px 0;}

/* ============ SERVICE CARDS ("You can book") ============ */
.band-forest{background:var(--forest); color:var(--on-dark);}
.band-forest .eyebrow-c{color:var(--gold);}
/* Numerals must never use Graflows (its demo renders digits as a watermark).
   Use Cormorant Garamond — an elegant high-contrast serif close to the logo. */
.num{font-family:'Cormorant Garamond','Cormorant',serif; font-weight:600; letter-spacing:0; font-size:1.08em;}
.award-cat-a .num{font-style:normal;}

/* ============ WEDDINGS INDEX ============ */
.weddings-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(14px,2vw,28px);}
.wed-card{display:block; position:relative; border:0; padding:0; margin:0; background:none; cursor:pointer; text-align:left; font-family:inherit;}
.wed-card-lg{grid-column:1/3;}
.wed-media{aspect-ratio:3/4; overflow:hidden; background:var(--cream-dark);}
.wed-card-lg .wed-media{aspect-ratio:16/9;}
.wed-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease);}
.wed-card:hover .wed-media img{transform:scale(1.04);}
.wed-overlay{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:rgba(20,16,12,.32); opacity:0; transition:opacity .5s var(--ease);}
.wed-card:hover .wed-overlay{opacity:1;}
.wed-count{font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--on-dark);}
.wed-view{font-family:var(--font-serif); font-style:italic; font-size:28px; color:var(--on-dark);}
.wed-meta{padding-top:16px; text-align:center;}
.wed-couple{font-family:var(--font-serif); font-weight:500; font-size:clamp(24px,2.2vw,32px); margin:0;}
.wed-loc{display:block; margin-top:6px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--stone);}

/* editorial staggered variant (KT-Merry style) — alternating portrait + landscape */
.weddings-grid.editorial{display:grid; grid-template-columns:repeat(12,1fr); column-gap:clamp(16px,2.5vw,44px); row-gap:0; align-items:start;}
.editorial .wed-card{min-width:0; margin:0 0 clamp(32px,5vw,72px);}
/* row pattern: narrow portrait + wide landscape, sides swap each row; right item drops down */
.editorial .wed-card:nth-child(4n+1){grid-column:1 / 6;}
.editorial .wed-card:nth-child(4n+2){grid-column:6 / 13; margin-top:clamp(40px,7vw,110px);}
.editorial .wed-card:nth-child(4n+3){grid-column:1 / 8;}
.editorial .wed-card:nth-child(4n+4){grid-column:8 / 13; margin-top:clamp(40px,7vw,110px);}
.editorial .wed-card:nth-child(4n+1) .wed-media,
.editorial .wed-card:nth-child(4n+4) .wed-media{aspect-ratio:3/4;}
.editorial .wed-card:nth-child(4n+2) .wed-media,
.editorial .wed-card:nth-child(4n+3) .wed-media{aspect-ratio:4/3;}
.editorial .wed-media{position:relative;}
.wed-ext{position:absolute; top:14px; right:14px; z-index:2; color:var(--on-dark); opacity:.85; display:flex;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.4)); transition:opacity .4s var(--ease);}
.editorial .wed-card:hover .wed-ext{opacity:1;}
.editorial .wed-meta{padding-top:14px; text-align:center;}
.editorial .wed-couple{font-family:var(--font-sans); font-weight:400; font-size:clamp(11px,1vw,13px); letter-spacing:.26em; text-transform:uppercase; color:var(--stone); line-height:1.4;}
.wed-view-link{display:block; margin-top:8px; font-family:var(--font-serif); font-style:italic; font-size:clamp(18px,1.7vw,24px); color:var(--ink-soft);}
.editorial .wed-card:hover .wed-view-link{color:var(--ink);}

/* ============ WEDDING GALLERY PAGE (overlay) ============ */
.wed-page{position:fixed; inset:0; z-index:90; background:var(--cream); overflow-y:auto; -webkit-overflow-scrolling:touch;}
.wed-page-bar{position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter); background:rgba(244,241,234,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.wed-page-bar .nav-menu-btn{color:var(--ink);}
.wed-page-bar .nav-social a{color:var(--ink);}
.wed-back{background:none; border:0; cursor:pointer; font-family:var(--font-sans); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink); text-align:center;}
.wed-back-bottom{position:sticky; top:62px; z-index:5; display:inline-flex; width:auto; padding:14px var(--gutter) 18px;
  background:transparent; border-top:0; text-align:left;}
.wed-page{padding-bottom:0;}
.wed-page-mark{display:flex; align-items:center;}
.wed-page-head{text-align:center; padding:clamp(40px,7vw,90px) var(--gutter) clamp(28px,4vw,48px);}
.wed-page-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(40px,6vw,80px); line-height:1; margin:14px 0 0;}
.wed-page-title em{font-style:italic; font-weight:400; color:var(--gold-deep);}
.wed-page-loc{display:block; margin-top:16px; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--stone);}
.wed-page-grid{display:flex; flex-wrap:wrap; gap:4px; padding:0 var(--gutter); align-content:flex-start; overflow:hidden;}
.wp-item{height:clamp(230px,30vw,360px); margin:0; overflow:hidden; cursor:pointer; background:var(--cream-dark); flex:0 1 auto; max-width:100%;}
.wp-item img{height:100%; width:auto; max-width:100%; display:block; transition:transform 1.3s var(--ease);}
.wp-item:hover img{transform:scale(1.03);}
.wed-page-foot{text-align:center; padding:clamp(40px,6vw,80px) var(--gutter);}

/* ============ STUDIO PAGE ============ */
.studio-hero{position:relative; height:82vh; min-height:520px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;}
.studio-hero image-slot{position:absolute; inset:0; width:100%; height:100%;}
.studio-hero-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,16,12,.25) 0%, rgba(20,16,12,.15) 45%, rgba(20,16,12,.6) 100%); z-index:1;}
.studio-hero-cap{position:relative; z-index:2; text-align:center; padding:0 var(--gutter) clamp(28px,4vw,48px); color:var(--on-dark);}
.studio-hero-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(44px,7vw,96px); line-height:1; margin:12px 0 0; letter-spacing:.01em;}
.studio-hero-title em{font-style:italic; font-weight:400;}
.studio-hero-strip{position:relative; z-index:2; display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(4px,.8vw,10px); padding:0 clamp(4px,.8vw,10px) clamp(4px,.8vw,10px);}
.studio-hero-strip image-slot{position:relative; inset:auto; aspect-ratio:3/4; display:block;}
.studio-strip-img{aspect-ratio:3/4; width:100%; height:100%; object-fit:cover; display:block;}
.studio-why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,40px);}
.studio-why-card{border-top:1px solid var(--line); padding-top:20px;}
.studio-why-n{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:34px; line-height:1; color:var(--gold-deep); display:block; margin-bottom:12px;}
.studio-why-t{font-family:var(--font-serif); font-weight:500; font-size:20px; margin:0 0 10px;}
.studio-why-p{font-size:14px; line-height:1.6; color:var(--stone); margin:0;}
.studio-clip{position:relative; margin-top:clamp(8px,1vw,14px); aspect-ratio:21/9; overflow:hidden; background:var(--cream-dark);}
.studio-clip image-slot{position:absolute; inset:0; width:100%; height:100%;}
.studio-clip-play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; width:76px; height:76px; border-radius:50%; background:rgba(20,16,12,.55); color:#fff; display:flex; align-items:center; justify-content:center; font-size:22px; pointer-events:none;}
.studio-promo-inner{display:flex; align-items:center; gap:clamp(32px,5vw,64px); flex-wrap:wrap;}
.studio-promo-badge{flex:0 0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; padding:clamp(24px,3vw,36px); border:1px solid var(--line); min-width:200px;}
.studio-promo-n{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:56px; line-height:1; color:var(--gold-deep);}
.studio-promo-l{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--stone); margin-top:10px; max-width:160px;}
.studio-promo-copy{flex:1 1 420px;}
@media (max-width:1024px){
  .studio-why-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .studio-hero-strip{grid-template-columns:repeat(3,1fr);}
  .studio-hero-strip image-slot:nth-child(4), .studio-hero-strip image-slot:nth-child(5){display:none;}
  .studio-why-grid{grid-template-columns:1fr;}
  .studio-clip{aspect-ratio:4/3;}
}

/* ============ ABOUT PAGE (overlay) ============ */
.about-page-hero{position:relative; height:56vh; min-height:380px; overflow:hidden;}
.about-page-hero img{width:100%; height:100%; object-fit:cover;}
.about-page-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,16,12,.2) 0%, rgba(20,16,12,.1) 50%, rgba(20,16,12,.55) 100%);}
.about-page-hero-cap{position:absolute; left:0; right:0; bottom:0; z-index:2; text-align:center; padding:0 var(--gutter) clamp(28px,4vw,48px); color:var(--on-dark);}
.about-page-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(40px,6vw,80px); line-height:1; margin:12px 0 0;}
.about-page-title em{font-style:italic; font-weight:400;}
.about-page-body{display:grid; grid-template-columns:0.8fr 1fr; gap:clamp(32px,5vw,72px); align-items:start;
  max-width:1100px; margin:0 auto; padding:clamp(28px,4vw,56px) var(--gutter) clamp(40px,6vw,80px);}
.about-page-intro{max-width:900px; margin:0 auto; padding:clamp(40px,6vw,84px) var(--gutter) 0; text-align:center;}
.about-lede{font-family:var(--font-serif); font-weight:500; font-size:clamp(22px,2.6vw,34px); line-height:1.32; color:var(--ink);}
.about-quote{max-width:860px; margin:0 auto; padding:clamp(24px,4vw,56px) var(--gutter); text-align:center;}
.about-quote p{font-family:var(--font-serif); font-weight:500; font-size:clamp(26px,3.4vw,46px); line-height:1.18; color:var(--ink); margin:0;}
.about-quote em{font-style:italic; font-weight:400; color:var(--gold-deep);}
.about-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(8px,1vw,16px); padding:0 var(--gutter);}
.about-strip img{width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--cream-dark);}
.about-cta{text-align:center; padding:clamp(48px,7vw,96px) var(--gutter);}
.about-page-portrait{position:sticky; top:90px; aspect-ratio:4/5; overflow:hidden; background:var(--cream-dark);}
.about-page-portrait img{width:100%; height:100%; object-fit:cover;}

/* ============ ABOUT PAGE (calm editorial) ============ */
.abp{background:var(--cream);}
.abp2-intro{display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(32px,5vw,80px); align-items:start;
  max-width:1180px; margin:0 auto; padding:clamp(48px,7vw,110px) var(--gutter) clamp(20px,3vw,48px);}
.abp2-portrait{margin:0; position:sticky; top:96px;}
.abp2-portrait img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 65%; background:var(--cream-dark);}
.abp2-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(40px,6vw,82px); line-height:1; letter-spacing:-.01em; margin:14px 0 0; color:var(--ink);}
.abp2-title em{font-style:italic; font-weight:400;}
.abp2-lead{font-family:var(--font-serif); font-style:italic; font-size:clamp(20px,2.2vw,28px); color:var(--gold-deep); margin:18px 0 24px;}
.abp2-para{font-size:16px; line-height:1.85; font-weight:300; color:var(--ink-soft); margin:0 0 16px; max-width:60ch;}
.abp2-stats{display:flex; flex-wrap:wrap; gap:clamp(24px,4vw,52px); margin-top:clamp(28px,4vw,44px); padding-top:28px; border-top:1px solid var(--line);}
.abp2-stat{display:flex; flex-direction:column; gap:6px;}
.abp2-stat-n{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(34px,4vw,52px); line-height:.9; color:var(--ink);}
.abp2-stat-l{font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--stone);}

.abp2-quote{margin:0 auto; padding:clamp(40px,6vw,90px) var(--gutter); text-align:center; max-width:1000px;
  font-family:var(--font-serif); font-weight:500; font-size:clamp(26px,3.6vw,48px); line-height:1.2; color:var(--ink); letter-spacing:-.005em;}
.abp2-quote em{font-style:italic; font-weight:400; color:var(--gold-deep);}

.abp2-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:4px;}
.abp2-strip img{width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--cream-dark);}

.abp2-cta{text-align:center; padding:clamp(56px,8vw,110px) var(--gutter);}
.abp2-cta-head{font-family:var(--font-serif); font-weight:500; font-size:clamp(32px,4.6vw,60px); line-height:1; margin:12px 0 28px; color:var(--ink);}
.abp2-cta-head em{font-style:italic; font-weight:400;}

@media (max-width:860px){
  .abp2-intro{grid-template-columns:1fr; gap:28px;}
  .abp2-portrait{position:relative; top:0; max-width:440px;}
}

/* legacy about-page-facts */
.about-page-facts{display:flex; flex-wrap:wrap; gap:clamp(20px,3vw,44px); margin-top:var(--s-7); padding-top:var(--s-6); border-top:1px solid var(--line);}
.fact{display:flex; flex-direction:column;}
.fact-n{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:46px; line-height:1; color:var(--ink);}
.fact-l{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); margin-top:6px;}

/* ============ SERVICES PAGE (overlay, 4 cards) ============ */
.svc-page-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(14px,2vw,26px); grid-auto-rows:1fr;}
.svc-page-card{display:flex; flex-direction:column; position:relative; border:0; padding:0; margin:0; background:none; cursor:pointer; text-align:left; font-family:inherit;}
.svc-page-media{aspect-ratio:4/3; overflow:hidden; background:var(--cream-dark);}
.svc-page-media img{width:100%; height:100%; object-fit:cover; object-position:center 22%; transition:transform 1.4s var(--ease);}
.svc-page-card[data-key="wedding"] .svc-page-media img{object-position:center 62%;}
.svc-page-card:hover .svc-page-media img{transform:scale(1.04);}
.svc-page-body{padding-top:16px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; border-top:1px solid var(--line); margin-top:14px; min-height:96px;}
.svc-page-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(26px,2.6vw,38px); line-height:1.04; margin:0; color:var(--ink);}
.svc-page-cta{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); white-space:nowrap; padding-top:6px;}

/* ============ PACKAGE / PRICING PAGE (overlay) ============ */
.package-hero{position:relative; height:48vh; min-height:340px; overflow:hidden;}
.package-hero img{width:100%; height:100%; object-fit:cover;}
.package-hero[data-key="engagement"] img{object-position:center 34%;}
.package-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,16,12,.28) 0%, rgba(20,16,12,.12) 45%, rgba(20,16,12,.6) 100%);}
.package-hero-cap{position:absolute; left:0; right:0; bottom:0; z-index:2; text-align:center; padding:0 var(--gutter) clamp(28px,4vw,48px); color:var(--on-dark);}
.package-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(38px,5.4vw,72px); line-height:1; margin:12px 0 0;}
.package-title em{font-style:italic; font-weight:400;}
.package-intro{font-size:16px; line-height:1.7; font-weight:300; color:var(--on-dark-soft); max-width:540px; margin:16px auto 0;}
.pkg-grid2{display:flex; flex-direction:column; gap:clamp(48px,7vw,90px); margin-top:clamp(40px,6vw,72px);}
.pkg-row{display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(28px,5vw,72px); align-items:center;}
.pkg-row:nth-child(even){direction:rtl;}
.pkg-row:nth-child(even) > *{direction:ltr;}
.pkg-row-media{aspect-ratio:4/5; overflow:hidden; background:var(--cream-dark);}
.pkg-row-media img{width:100%; height:100%; object-fit:cover;}
.pkg-row-body{text-align:right;}
.pkg-row:nth-child(even) .pkg-row-body{text-align:right;}
.pkg-row-price{display:block; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(48px,6vw,80px); line-height:1; color:var(--ink); margin-bottom:24px;}
.pkg-row-items{list-style:none; margin:0 0 28px; padding:0;}
.pkg-row-items li{font-family:var(--font-serif); font-style:italic; font-weight:400; font-size:clamp(16px,1.6vw,19px); line-height:1.8; color:var(--ink-soft);}
.pkg-row-items li .num{font-family:'Jost',sans-serif; font-style:normal; font-weight:500;}
.pkg-row-body .btn{margin-left:auto;}
@media (max-width:768px){
  .pkg-row, .pkg-row:nth-child(even){direction:ltr; grid-template-columns:1fr; text-align:left;}
  .pkg-row-body, .pkg-row:nth-child(even) .pkg-row-body{text-align:left;}
  .pkg-row-body .btn{margin-left:0;}
}
.pkg-flag{position:absolute; top:-1px; right:-1px; background:var(--gold); color:var(--ink); font-size:10px; letter-spacing:.18em; text-transform:uppercase; padding:6px 12px;}
.pkg-name{font-family:var(--font-serif); font-style:italic; font-size:24px; color:inherit;}
.pkg-featured .pkg-name{color:var(--gold);}
.pkg-price{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:54px; line-height:1; margin:8px 0 4px; color:inherit;}
.pkg-hours{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--stone);}
.pkg-featured .pkg-hours{color:var(--on-dark-soft);}
.pkg-items{list-style:none; margin:22px 0 26px; padding:22px 0 0; border-top:1px solid var(--line); flex:1;}
.pkg-featured .pkg-items{border-top-color:var(--forest-soft);}
.pkg-items li{font-size:14px; line-height:1.5; font-weight:300; color:var(--ink-soft); padding:7px 0 7px 20px; position:relative;}
.pkg-featured .pkg-items li{color:var(--on-dark-soft);}
.pkg-items li::before{content:"—"; position:absolute; left:0; color:var(--gold-deep);}
.pkg-featured .pkg-items li::before{color:var(--gold);}
.addons{display:none;}
.addons-list{margin-top:22px;}
.addon{display:flex; justify-content:space-between; gap:16px; align-items:baseline; padding:14px 2px; border-bottom:1px solid var(--line);}
.addon-n{font-size:13px; letter-spacing:.04em; color:var(--ink); font-weight:300;}
.addon-p{font-size:13px; letter-spacing:.1em; color:var(--stone); white-space:nowrap;}
.pkg-note{max-width:640px; margin:clamp(40px,5vw,64px) auto 0; text-align:center; font-size:13px; line-height:1.7; font-weight:300; color:var(--stone);}
.pkg-seo{max-width:680px; margin:clamp(40px,6vw,72px) auto 0; padding-top:clamp(32px,4vw,48px); border-top:1px solid var(--line);}
.pkg-seo-block{margin-bottom:clamp(24px,3vw,36px);}
.pkg-seo-h{font-family:var(--font-serif); font-weight:500; font-size:clamp(20px,2.4vw,28px); line-height:1.15; margin:0 0 12px; color:var(--ink);}
.pkg-seo-p{font-size:15px; line-height:1.85; font-weight:300; color:var(--ink-soft); margin:0;}

/* personal letter on the wedding package page */
.pkg-letter{max-width:680px; margin:0 auto; padding:clamp(48px,6vw,84px) var(--gutter) clamp(8px,2vw,24px); text-align:center;}
.pkg-letter-p{font-size:18px; line-height:1.8; font-weight:300; color:var(--ink-soft); margin:18px 0 0;}
.pkg-letter-p:first-of-type{margin-top:22px;}
.pkg-signature{font-family:var(--font-script); font-size:46px; line-height:1; color:var(--ink); margin:26px 0 0;}
.pkg-startsat{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); margin:22px 0 0;}
.pkg-closing{max-width:620px; margin-left:auto; margin-right:auto; margin-top:28px; padding-top:28px; border-top:1px solid var(--line); font-size:16px;}

/* embedded contact form */
.pkg-contact{background:var(--white); max-width:none; margin:clamp(48px,6vw,80px) 0 0; padding:clamp(36px,4vw,56px) var(--gutter) clamp(56px,7vw,96px); text-align:center; border-top:1px solid var(--line);}
.pkg-contact > *{max-width:720px; margin-left:auto; margin-right:auto;}
.pkg-contact-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(30px,4vw,48px); line-height:1.05; margin:12px 0 0; color:var(--ink);}
.pkg-contact-title em{font-style:italic; font-weight:400;}
.pkg-reply{font-size:15px; line-height:1.7; font-weight:300; color:var(--ink-soft); max-width:460px; margin:16px auto 0;}
.hb-wrap{margin-top:32px; min-height:120px;}
.pkg-fallback{font-size:13px; color:var(--stone); margin-top:24px;}
.pkg-fallback a{color:var(--gold-deep); text-decoration:none; border-bottom:1px solid var(--line);}
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.6vw,20px);}
.svc{text-decoration:none; color:var(--ink); display:block; cursor:pointer;}
.svc-media{aspect-ratio:3/4; overflow:hidden; background:var(--cream-dark);}
.svc-media img{width:100%; height:100%; object-fit:cover; object-position:center 22%; transition:transform 1.2s var(--ease);}
.svc[data-key="wedding"] .svc-media img{object-position:center 62%;}
.svc:hover .svc-media img{transform:scale(1.05);}
.svc-body{padding-top:16px; text-align:center; display:flex; flex-direction:column; align-items:center;}
.svc-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(22px,2vw,28px); line-height:1.15; margin:0; min-height:2.3em; display:flex; align-items:center; justify-content:center;}
.svc-cta{display:inline-block; margin-top:8px; font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--stone); position:relative; padding-bottom:3px;}
.svc:hover .svc-cta{color:var(--gold-deep);}

/* ============ AWARD ============ */
.award-inner{display:grid; grid-template-columns:0.85fr 1fr; gap:clamp(32px,6vw,80px); align-items:center;}
.award-media{aspect-ratio:4/5; overflow:hidden; background:var(--forest-soft);}
.award-media img{width:100%; height:100%; object-fit:cover; object-position:center 20%;}
.award .lead{color:var(--on-dark);}
.award .para{color:var(--on-dark-soft);}
.award-cats{display:flex; gap:40px; margin-top:30px; flex-wrap:wrap;}
.award-cat{display:flex; flex-direction:column; gap:4px; border-top:1px solid var(--gold); padding-top:12px;}
.award-cat-a{font-family:var(--font-serif); font-style:italic; font-size:22px; color:var(--on-dark);}
.award-cat-b{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--on-dark-soft);}

/* ============ PORTFOLIO GRID ============ */
.portfolio-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(8px,1vw,14px);}
.pf-item{margin:0; overflow:hidden; cursor:pointer; aspect-ratio:3/4; background:var(--cream-dark);}
.pf-item img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease), opacity .4s var(--ease);}
.pf-item:hover img{transform:scale(1.05);}

/* ============ TAGLINE ============ */
.tagline{position:relative; height:64vh; min-height:420px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center;}
.tagline img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; transform:scale(1.35); filter:saturate(1.05);}
.tagline::after{content:""; position:absolute; inset:0; background:rgba(20,16,12,.46);}
.tagline-content{position:relative; z-index:2; padding:0 24px;}
.tagline-text{font-family:var(--font-serif); font-style:italic; font-weight:400; font-size:clamp(30px,5vw,64px); line-height:1.1; color:var(--on-dark); margin:0; text-shadow:0 2px 30px rgba(20,16,12,.4);}
.tagline-text .tw{display:inline-block; opacity:0; filter:blur(12px); transform:translateY(6px);
  transition:opacity .7s var(--ease), filter .7s var(--ease), transform .7s var(--ease);}
.tagline-text.in .tw{opacity:1; filter:blur(0px); transform:none;}
.blur-words .tw{display:inline-block; opacity:0; filter:blur(12px); transform:translateY(6px);
  transition:opacity .7s var(--ease), filter .7s var(--ease), transform .7s var(--ease);}
.blur-words.in .tw{opacity:1; filter:blur(0px); transform:none;}
@media (prefers-reduced-motion: reduce){ .blur-words .tw{opacity:1; filter:none; transform:none; transition:none;} }
@media (prefers-reduced-motion: reduce){ .tagline-text .tw{opacity:1; filter:none; transform:none; transition:none;} }

/* ============ ABOUT (redesigned — editorial dark) ============ */
.about2{position:relative; background:#1c1a16; color:var(--on-dark); overflow:hidden;
  padding:clamp(72px,10vw,150px) 0;}
.about2-inner{position:relative; z-index:1; display:grid; grid-template-columns:0.9fr 1.1fr;
  gap:clamp(36px,6vw,96px); align-items:center;}
.about2-portrait{position:relative; aspect-ratio:3/4.6; overflow:hidden; background:#26302600;}
.about2-portrait img{width:100%; height:100%; object-fit:cover; object-position:center 8%; filter:grayscale(1) contrast(1.04);}
.about2-portrait-tag{position:absolute; left:0; bottom:18px; writing-mode:vertical-rl; transform:rotate(180deg);
  left:auto; right:14px; font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:rgba(244,241,234,.78);}
.about2-head{font-family:var(--font-serif); font-weight:500; font-size:clamp(52px,8vw,108px); line-height:.92;
  margin:18px 0 0; color:var(--on-dark); letter-spacing:-.01em;}
.about2-head em{font-style:italic; font-weight:400; color:var(--gold);}
.about2-lead{font-family:var(--font-serif); font-style:italic; font-size:clamp(22px,2.6vw,34px); line-height:1.2;
  color:var(--on-dark); margin:24px 0 0; max-width:18ch;}
.about2-para{font-size:15px; line-height:1.8; font-weight:300; color:rgba(244,241,234,.72); margin:18px 0 0; max-width:48ch;}
.about2-stats{display:flex; gap:clamp(24px,4vw,56px); margin-top:clamp(32px,4vw,48px); flex-wrap:wrap;
  padding-top:28px; border-top:1px solid rgba(244,241,234,.16);}
.about2-stat{display:flex; flex-direction:column; gap:8px;}
.about2-stat-n{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(40px,5vw,64px); line-height:.9; color:var(--gold);}
.about2-stat-l{font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:rgba(244,241,234,.6); line-height:1.5;}
.about2-cta{display:flex; align-items:center; gap:clamp(24px,4vw,48px); margin-top:clamp(32px,4vw,48px); flex-wrap:wrap;}
.about2-sign{font-family:var(--font-script); font-size:clamp(34px,4vw,52px); color:rgba(244,241,234,.92); line-height:1;}
@media (max-width:860px){
  .about2-inner{grid-template-columns:1fr; gap:36px;}
  .about2-portrait{max-width:460px; aspect-ratio:3/4.6;}
  .about2-watermark{font-size:clamp(120px,40vw,300px);}
}

/* ============ ABOUT STATS (legacy) ============ */
.about-grid{display:grid; grid-template-columns:0.82fr 1fr; gap:clamp(32px,6vw,90px); align-items:center;}
.about-img{aspect-ratio:3/4; overflow:hidden; background:var(--cream-dark);}
.about-img img{width:100%; height:100%; object-fit:cover;}
.about-stats{display:flex; gap:40px; margin-top:34px; flex-wrap:wrap;}
.about-stats .stat{display:flex; flex-direction:column;}
.about-stats .stat-n{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:54px; line-height:1; color:var(--ink); letter-spacing:0;}
.about-stats .stat-l{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--stone); margin-top:6px;}

/* ============ FILM ============ */
.film-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(8px,1.2vw,16px);}
.film-item{margin:0; overflow:hidden; background:var(--cream-dark); aspect-ratio:2/3;}
.film-item img{width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease);}
.film-item:hover img{transform:scale(1.04);}
@media (max-width:768px){ .film-grid{grid-template-columns:repeat(2,1fr);} }

/* ============ TESTIMONIALS ============ */
.tmt-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,40px);}
.tmt{margin:0; text-align:center; padding:0 8px;}
.tmt-quote{font-family:var(--font-serif); font-size:clamp(19px,1.7vw,24px); line-height:1.5; color:var(--on-dark); margin:0;}
.tmt-name{display:block; margin-top:18px; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);}
.tmt-role{display:block; margin-top:5px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-soft); font-weight:400;}
.tmt-stars{display:flex; align-items:center; justify-content:center; gap:4px; margin-top:16px;}
.tmt-stars-label{margin-left:10px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--on-dark-soft);}

/* ============ BLOG ============ */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,40px);}
.post{text-decoration:none; color:var(--ink); display:block;}
.post-media{aspect-ratio:4/5; overflow:hidden; background:var(--cream-dark); margin-bottom:18px;}
.post-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
.post:hover .post-media img{transform:scale(1.04);}
.post-kicker{font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--stone);}
.post-title{font-family:var(--font-sans); font-weight:400; font-size:clamp(18px,1.6vw,23px); line-height:1.3; letter-spacing:-0.01em; margin:8px 0 14px;}
.post{display:block; width:100%; text-align:left; background:none; border:0; padding:0; cursor:pointer; font-family:inherit; color:inherit;}

/* ============ BLOG INDEX PAGE (overlay) ============ */
.blogp-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,44px);}
.blogp-card{display:block; width:100%; text-align:left; background:none; border:0; padding:0; cursor:pointer; font-family:inherit; color:inherit;}
.blogp-lead{grid-column:auto;}
.blogp-media{overflow:hidden; background:var(--cream-dark); aspect-ratio:4/5;}
.blogp-lead .blogp-media{aspect-ratio:4/5;}
.blogp-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease);}
.blogp-card:hover .blogp-media img{transform:scale(1.04);}
.blogp-body{padding-top:16px;}
.blogp-meta{display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); margin-bottom:10px;}
.blogp-meta .post-kicker{color:var(--gold-deep);}
.blogp-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(22px,2vw,28px); line-height:1.1; margin:0 0 10px; color:var(--ink);}
.blogp-excerpt{font-size:15px; line-height:1.7; font-weight:300; color:var(--ink-soft); margin:0 0 14px; max-width:520px;}

/* ============ ARTICLE PAGE (overlay) ============ */
.article-hero{position:relative; height:54vh; min-height:380px; overflow:hidden;}
.article-hero img{width:100%; height:100%; object-fit:cover;}
.article-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,16,12,.2) 0%, rgba(20,16,12,.08) 45%, rgba(20,16,12,.62) 100%);}
.article-hero-cap{position:absolute; left:0; right:0; bottom:0; z-index:2; text-align:center; padding:0 var(--gutter) clamp(28px,4vw,52px); color:var(--on-dark);}
.article-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(32px,5vw,68px); line-height:1.02; margin:12px auto 0; max-width:14ch;}
.article-body{max-width:720px; margin:0 auto; padding:clamp(44px,6vw,80px) var(--gutter) clamp(56px,8vw,110px);}
.article-p{font-size:18px; line-height:1.8; font-weight:300; color:var(--ink-soft); margin:0 0 20px;}
.article-h{font-family:var(--font-serif); font-weight:500; font-size:clamp(24px,2.6vw,32px); line-height:1.12; color:var(--ink); margin:38px 0 14px;}
.article-list{list-style:none; margin:0 0 20px; padding:0;}
.article-list li{font-size:16px; line-height:1.6; font-weight:300; color:var(--ink-soft); padding:8px 0 8px 24px; position:relative; border-bottom:1px solid var(--line);}
.article-list li::before{content:"—"; position:absolute; left:0; color:var(--gold-deep);}
.article-tip{display:block; background:var(--cream-deep); border-left:2px solid var(--gold); padding:14px 18px; margin:0 0 22px; font-size:15px; line-height:1.6; font-weight:300; color:var(--ink-soft);}
.article-tip span{display:block; font-family:var(--font-sans); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:5px;}
.article-foot{margin-top:48px; padding-top:32px; border-top:1px solid var(--line); text-align:center;}
.article-sign{font-family:var(--font-script); font-size:38px; color:var(--ink); margin:0 0 22px;}
.article-img{margin:14px 0 26px; overflow:hidden; background:var(--cream-dark);}
.article-img img{width:100%; height:auto; display:block; max-height:680px; object-fit:cover;}

/* ============ CONTACT CTA ============ */
.contact-cta{position:relative; background:var(--cream);}
.contact-banner{position:relative; height:62vh; min-height:460px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center;}
.contact-banner img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 27%;}
.contact-banner::after{content:""; position:absolute; inset:0; background:rgba(20,16,12,.46);}
.contact-cta-content{position:relative; z-index:2; padding:0 24px;}
.contact-form-panel{background:var(--cream); padding:clamp(48px,7vw,96px) var(--gutter) clamp(56px,8vw,110px); display:flex; justify-content:center;}
.contact-form-card{width:100%; max-width:720px; text-align:center;}
.contact-form-title{font-family:var(--font-serif); font-weight:500; font-size:clamp(30px,4vw,48px); line-height:1.05; margin:12px 0 0; color:var(--ink);}
.contact-form-title em{font-style:italic; font-weight:400;}
.contact-form-wrap{margin-top:32px; min-height:120px;}
.contact-fallback{font-size:13px; color:var(--stone); margin-top:24px;}
.contact-fallback a{color:var(--gold-deep); text-decoration:none; border-bottom:1px solid var(--line);}
.cform-fields{display:flex; flex-direction:column; gap:18px;}
.cform-row{display:flex; gap:18px;}
.cform-row .field{flex:1;}
.cform-done{padding:10px 0;}
.hb-frame{width:100%; min-height:620px; border:0; background:var(--cream); display:block;}
/* ============ CONTACT PAGE (separate) ============ */
.contact-page-grid{display:grid; grid-template-columns:1.2fr 0.8fr; gap:clamp(32px,5vw,72px); align-items:start; padding-bottom:clamp(40px,6vw,80px);}
.contact-form-side .contact-form-wrap{margin-top:0;}
.contact-info-side{display:flex; flex-direction:column; gap:var(--s-6);}
.ci-block{display:flex; flex-direction:column; gap:7px; padding-bottom:var(--s-5); border-bottom:1px solid var(--line);}
.ci-label{font-family:var(--font-sans); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--stone);}
.ci-val{font-size:15px; line-height:1.7; font-weight:300; color:var(--ink-soft); margin:0;}
.ci-link{font-size:16px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); width:max-content;}
.ci-link:hover{color:var(--gold-deep);}
.ig-section{border-top:1px solid var(--line); padding:clamp(40px,6vw,72px) 0 clamp(48px,7vw,88px);}
.ig-head{text-align:center; margin-bottom:clamp(24px,3vw,40px);}
.ig-handle{display:inline-flex; align-items:center; gap:10px; font-family:var(--font-serif); font-weight:500; font-size:clamp(24px,2.6vw,36px); color:var(--ink); text-decoration:none;}
.ig-handle:hover{color:var(--gold-deep);}
.ig-glyph{font-size:.8em;}
.ig-sub{display:block; margin-top:8px; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--stone);}
.ig-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(6px,0.8vw,12px); padding:0 var(--gutter);}
.ig-cell{position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--cream-dark); display:block;}
.ig-cell img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
.ig-cell:hover img{transform:scale(1.06);}
.ig-hover{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--on-dark); background:rgba(20,16,12,.34); opacity:0; transition:opacity .4s var(--ease); font-size:24px;}
.ig-cell:hover .ig-hover{opacity:1;}
.ig-foot{text-align:center; margin-top:clamp(28px,4vw,48px);}
@media (max-width:768px){
  .contact-page-grid{grid-template-columns:1fr;}
  .ig-grid{grid-template-columns:repeat(3,1fr);}
}

/* ============ MODAL (enquire) ============ */
.modal{position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .5s var(--ease);}
.modal.open{opacity:1; pointer-events:auto;}
.modal-bg{position:absolute; inset:0; background:rgba(20,16,12,.6);}
.modal-card{position:relative; z-index:2; background:var(--cream); width:min(560px,92vw); max-height:90vh; overflow:auto; padding:clamp(32px,5vw,56px);}
.modal-card h3{font-family:var(--font-serif); font-weight:500; font-size:38px; margin:8px 0 0; color:var(--ink);}
.modal-card h3 em{font-style:italic; font-weight:400;}
.modal-form{display:flex; flex-direction:column; gap:20px; margin-top:28px;}
.modal-close{position:absolute; top:20px; right:22px; background:none; border:0; cursor:pointer; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink);}
.thanks{text-align:center; padding:20px 0;}

/* ============ responsive ============ */
@media (max-width:1024px){
  .nav .mark{text-align:center;}
  .about-grid{grid-template-columns:1fr; gap:36px;}
  .award-inner{grid-template-columns:1fr; gap:32px;}
  .award-media{aspect-ratio:3/4;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .portfolio-grid{grid-template-columns:repeat(3,1fr);}
  .weddings-grid{grid-template-columns:1fr;}
  .weddings-grid.editorial{grid-template-columns:1fr; column-gap:0;}
  .weddings-grid.editorial{display:block;}
  .editorial .wed-card{grid-column:auto !important; margin-top:0 !important; margin-bottom:clamp(28px,6vw,44px);}
  .editorial .wed-card .wed-media{aspect-ratio:4/5 !important;}
  .wed-card-lg{grid-column:auto;}
  .wed-card-lg .wed-media{aspect-ratio:3/4;}
  .wed-page-grid{height:auto;}
  .wp-item{height:clamp(140px,44vw,220px);}
  .tmt-grid{grid-template-columns:1fr;}
  .blog-grid{grid-template-columns:1fr; max-width:520px; margin:0 auto;}
  .about-page-body{grid-template-columns:1fr; gap:32px;}
  .about-page-portrait{position:relative; top:0; max-width:420px;}
  .about-strip{grid-template-columns:1fr;}
  .pkg-grid2{gap:36px;}
  .blogp-grid{grid-template-columns:1fr;}
  .blogp-lead{grid-column:auto; grid-template-columns:1fr; gap:0;}
  .blogp-lead .blogp-media{aspect-ratio:3/2;}
}
@media (max-width:768px){
  .menu-overlay{grid-template-columns:1fr;}
  .menu-media{display:none;}
}
@media (max-width:560px){
  .services-grid{grid-template-columns:1fr 1fr; gap:10px;}
  .hero-split .hero-right, .hero-split .hero-split-line{display:none;}
  .hero-split .hero-half.hero-left{flex:1 1 100%;}
  .svc-page-grid{grid-template-columns:1fr;}
  .portfolio-grid{grid-template-columns:1fr 1fr;}
  .about-stats{gap:26px;}
  .footer-top{flex-direction:column;}
  .footer-contact{align-items:flex-start; text-align:left;}
}
