/* =====================================================================
   DISTINGUISHED PHOTOGRAPHY: EDITORIAL EDITION
   Inspired by fashion-magazine layouts: white pages, black Didone type,
   full-bleed photography, and one bright color that means "book".

   COLOR ROLES (each color has one job)
   White  #FFFFFF  The page. Light, open, lets the photos bring the color.
   Black  #0A0A0A  Type, rules, and a few dramatic sections. Reads as luxury.
   Rouge  #C8102E  BOOKING BUTTONS ONLY. Energy, romance, and the strongest
                   contrast on white, so every "Book" button is found instantly.
   Petal  #FBE3E6  Warm color blocks for offers. Pulled from the florals.
   Stone  #F4F1EC  Quiet panels that separate sections.
   Sage   #2F7A55  Safety: secure checkout, availability, confirmations.
   ===================================================================== */
:root{
  --white:#FFFFFF; --black:#0A0A0A; --stone:#F4F1EC; --petal:#FBE3E6;
  --rouge:#C8102E; --rouge-hover:#A30C25; --sage:#2F7A55;
  --text:#141414; --grey:#5E5A57; --hair:#E4E0DA;
  --serif:'Bodoni Moda', 'Didot', 'Bodoni 72', Georgia, serif;
  --sans:'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --pad:clamp(20px,4.5vw,64px);
  --ink:var(--text); --muted:var(--grey); --rule:var(--hair); --accent:var(--text);
}
.dark{--ink:#FFFFFF; --muted:#BDB8B3; --rule:rgba(255,255,255,.2); --accent:#FFFFFF; color:var(--ink);}
.light{--ink:var(--text); --muted:var(--grey); --rule:var(--hair); --accent:var(--text); color:var(--ink);}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:110px;}
body{background:var(--white); color:var(--ink); font-family:var(--sans); font-size:16.5px; line-height:1.65; font-weight:400; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{display:block; max-width:100%;}
a{color:inherit;}
::selection{background:var(--rouge); color:#fff;}
:focus-visible{outline:2px solid var(--rouge); outline-offset:3px;}
[hidden]{display:none !important;}
.skip{position:absolute; left:-999px;} .skip:focus{left:12px; top:12px; z-index:99; background:var(--black); color:#fff; padding:8px 12px;}

h1,h2,h3{font-family:var(--serif); font-weight:500; letter-spacing:-.02em; line-height:1; color:var(--ink);}
h2{font-size:clamp(2.6rem,6.2vw,5.2rem);}
h2 em, h1 em{font-style:italic; font-weight:400;}
h3{font-size:1.6rem; letter-spacing:-.01em;}
.eyebrow{font-family:var(--sans); font-stretch:75%; font-weight:600; font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); line-height:1.4;}
.muted{color:var(--muted);}
.rule{display:block; width:48px; height:2px; background:var(--ink); margin:22px 0 0;}
.center .rule{margin-left:auto; margin-right:auto;}

/* ---------- Announcement bar + nav ---------- */
.announce{background:var(--black); color:#fff; text-align:center; font-size:.8rem; letter-spacing:.04em; padding:9px 16px;}
.announce a{text-decoration:none;}
.announce u{text-underline-offset:3px; text-decoration-color:var(--rouge); text-decoration-thickness:2px;}
nav{position:sticky; top:0; z-index:40; background:rgba(255,255,255,.97); border-bottom:1px solid var(--black);
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; padding:14px var(--pad); color:var(--text); transition:padding .25s ease;}
nav.scrolled{padding-top:10px; padding-bottom:10px;}
.nav-left, .nav-right{display:flex; align-items:center; gap:28px;}
.nav-right{justify-content:flex-end; gap:18px;}
nav ul{list-style:none; display:flex; gap:26px;}
nav ul a{text-decoration:none; font-stretch:80%; font-weight:600; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; padding:6px 0; background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat; transition:background-size .25s ease;}
nav ul a:hover, nav ul a:focus-visible{background-size:100% 1px;}
.brand{font-family:var(--serif); font-weight:500; font-size:1.9rem; letter-spacing:.02em; line-height:1; text-decoration:none; color:inherit; text-align:center; white-space:nowrap;}
.brand span{display:block; font-family:var(--sans); font-stretch:75%; font-weight:600; font-size:.56rem; letter-spacing:.42em; text-transform:uppercase; margin-top:5px; padding-left:.42em;}
.icon-btn{display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid currentColor; background:transparent; color:inherit; cursor:pointer;}
.icon-btn:hover{background:var(--black); color:#fff;}
.menu-btn{display:none;}
@media (max-width:1100px){
  nav ul{display:none;} .menu-btn{display:inline-flex;}
  .brand{font-size:1.5rem;}
}
@media (max-width:600px){
  nav{padding:10px 16px; gap:8px;}
  nav .btn-nav{display:none;}
  .brand{font-size:1.25rem;} .brand span{font-size:.5rem; letter-spacing:.34em;}
  .announce{font-size:.72rem;}
}
.drawer{position:fixed; inset:0; z-index:60; background:var(--white); color:var(--text); padding:20px; display:flex; flex-direction:column; transform:translateY(-100%); visibility:hidden; transition:transform .35s ease;}
.drawer.open{transform:none; visibility:visible;}
.drawer-top{display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--black); padding-bottom:14px;}
.drawer-top .brand{text-align:left;}
.drawer ul{list-style:none; margin:26px 0 auto;}
.drawer li a{display:block; font-family:var(--serif); font-size:2.3rem; line-height:1.2; padding:8px 0; text-decoration:none; border-bottom:1px solid var(--hair);}
.drawer .btn{margin-top:12px;}
@media (min-width:1101px){ .drawer{display:none;} }

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--sans); font-stretch:80%; font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; text-decoration:none;
  padding:17px 30px; border:1px solid var(--ink); background:transparent; color:var(--ink); cursor:pointer; transition:background .2s ease, color .2s ease, border-color .2s ease, transform .1s ease;}
.btn:hover{background:var(--ink); color:var(--white);}
.dark .btn:hover{color:var(--black);}
.btn-solid, .dark .btn-solid, .light .btn-solid{background:var(--rouge); border-color:var(--rouge); color:#fff;}
.btn-solid:hover, .dark .btn-solid:hover, .light .btn-solid:hover{background:var(--rouge-hover); border-color:var(--rouge-hover); color:#fff;}
.btn-solid:active{transform:translateY(1px);}
.btn-alt, .light .btn-alt{background:var(--black); border-color:var(--black); color:#fff;}
.btn-alt:hover, .light .btn-alt:hover{background:#333; border-color:#333; color:#fff;}
.dark .btn-alt{background:#fff; border-color:#fff; color:var(--black);}
.btn-nav{padding:12px 20px; font-size:.7rem; white-space:nowrap;}
.btn[disabled], .dark .btn[disabled]{opacity:.4; cursor:not-allowed; background:transparent; color:var(--muted); border-color:var(--rule); transform:none;}

/* ---------- Sections ---------- */
section{padding:120px var(--pad); position:relative;}
.tint{background:var(--stone);}
.petal{background:var(--petal);}
.wine{background:var(--black);}
.section-head{max-width:720px; margin-bottom:60px;}
.section-head h2{margin-top:14px;}
.section-head p{color:var(--muted); margin-top:22px; max-width:54ch; font-size:1.05rem;}
.center{text-align:center; margin-left:auto; margin-right:auto;}
.split-head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px 40px; margin-bottom:54px;}
.split-head .section-head{margin-bottom:0;}
@media (max-width:860px){ section{padding:80px 20px;} }

/* ---------- Magazine cover (homepage) ---------- */
.cover{padding:26px var(--pad) 90px;}
.cover-meta{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-stretch:80%; font-weight:600; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; border-bottom:1px solid var(--black); padding-bottom:10px;}
.masthead{font-family:var(--serif); font-weight:500; font-size:clamp(2.4rem,11.3vw,14rem); line-height:.86; letter-spacing:-.035em; text-align:center; margin:18px 0 22px; white-space:nowrap;}
.cover-grid{display:grid; gap:34px; grid-template-columns:1fr;}
.cover-photo{margin:0; position:relative;}
.cover-photo img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 22%;}
.cover-photo figcaption{position:absolute; left:14px; bottom:12px; color:#fff; font-stretch:80%; font-weight:600; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; text-shadow:0 1px 8px rgba(0,0,0,.6);}
.cover-lines{display:flex; flex-direction:column; gap:28px;}
.cover-line{display:block; text-decoration:none; border-top:1px solid var(--black); padding-top:14px;}
.cover-line .eyebrow{color:var(--ink);}
.cover-line .eyebrow.urgent{color:var(--rouge);}
.cover-line b{display:block; font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem,2.3vw,2.2rem); line-height:1.05; letter-spacing:-.015em; margin-top:8px;}
.cover-line span.more{display:inline-block; margin-top:10px; font-size:.9rem; color:var(--grey);}
.cover-line:hover b{text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px;}
.cover-cta{display:flex; flex-direction:column; gap:10px; margin-top:6px;}
.cover-cta .btn{width:100%;}
.cover-note{display:flex; align-items:center; gap:10px; font-size:.86rem; color:var(--grey);}
.cover-note i{width:8px; height:8px; border-radius:50%; background:var(--sage); flex:none; animation:pulse 2.4s ease-out infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,122,85,.45);}70%{box-shadow:0 0 0 9px rgba(47,122,85,0);}100%{box-shadow:0 0 0 0 rgba(47,122,85,0);}}
@media (min-width:980px){
  .cover-grid{grid-template-columns:1fr 1.35fr 1fr; align-items:start; gap:40px;}
  .cover-photo img{aspect-ratio:4/5; max-height:84vh;}
  .cover-lines.right{padding-top:0;}
}
@media (max-width:979px){ .cover-photo{order:-2;} .cover-cta-mobile{order:-1;} .cover-cta-desktop{display:none;} }
@media (min-width:980px){ .cover-cta-mobile{display:none;} }
.masthead, .cover-photo img{animation:rise 1s cubic-bezier(.2,.7,.2,1) both;}
.cover-photo img{animation-delay:.12s;}
@keyframes rise{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}

/* ---------- Service-page hero (light, editorial split) ---------- */
.hero{padding:0;}
.hero-grid{display:grid; grid-template-columns:1fr;}
.hero-photo{position:relative; min-height:62svh;}
.hero-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 25%;}
.hero-copy{padding:56px var(--pad) 80px;}
.crumbs{font-stretch:80%; font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:18px;}
.crumbs a{text-decoration:none;}
.hero h1{font-size:clamp(3.2rem,9vw,7.4rem); line-height:.9; letter-spacing:-.035em; margin-bottom:26px;}
.hero h1 span{display:block;}
.hero-sub{font-family:var(--serif); font-style:italic; font-size:clamp(1.35rem,2.1vw,1.7rem); line-height:1.3; margin-bottom:12px;}
.hero-note{color:var(--muted); max-width:46ch; font-size:1.05rem;}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px;}
.hero-open{display:flex; align-items:center; gap:10px; margin-top:22px; font-size:.9rem; color:var(--muted);}
.hero-open i{width:8px; height:8px; border-radius:50%; background:var(--sage);}
@media (min-width:900px){
  .hero-grid{grid-template-columns:1fr 1fr; min-height:calc(100svh - 110px);}
  .hero-photo{order:2; min-height:auto;}
  .hero-copy{order:1; align-self:center; padding:80px var(--pad);}
}
.text-hero{padding:130px var(--pad) 100px; text-align:center; border-bottom:1px solid var(--black);}
.text-hero h1{font-size:clamp(3.2rem,9vw,7rem); line-height:.92; letter-spacing:-.035em; margin:18px auto 26px; max-width:13ch;}
.text-hero p{color:var(--muted); max-width:54ch; margin:0 auto; font-size:1.08rem;}
.text-hero .hero-cta{justify-content:center;}

/* ---------- Films ---------- */
.films{display:grid; gap:40px;}
@media (min-width:900px){ .films{grid-template-columns:1fr 1fr; gap:28px;} }
.film{margin:0;}
.film-frame{position:relative; aspect-ratio:16/9; background:var(--black); overflow:hidden;}
.film-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.film-play{all:unset; position:absolute; inset:0; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.film-play img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease;}
.film-play:hover img{transform:scale(1.03);}
.film-play:focus-visible{outline:3px solid var(--rouge); outline-offset:3px;}
.play{position:relative; z-index:2; width:88px; height:88px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 34px -10px rgba(0,0,0,.45); transition:transform .25s ease;}
.play::before{content:''; margin-left:6px; border-left:22px solid var(--rouge); border-top:14px solid transparent; border-bottom:14px solid transparent;}
.film-play:hover .play{transform:scale(1.08);}
.film figcaption{display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-top:1px solid var(--black); margin-top:14px; padding-top:12px;}
.film figcaption b{font-family:var(--serif); font-weight:500; font-size:1.8rem; letter-spacing:-.01em;}
.film figcaption span{font-stretch:80%; font-weight:600; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);}

/* ---------- Portfolio ---------- */
.tab-row{display:flex; flex-wrap:wrap; gap:4px 22px;}
.tab-btn{background:none; border:0; border-bottom:2px solid transparent; color:var(--muted); font-family:var(--sans); font-stretch:80%; font-weight:600; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; padding:8px 0; cursor:pointer;}
.tab-btn:hover{color:var(--ink);}
.tab-btn[aria-pressed="true"]{color:var(--ink); border-bottom-color:var(--rouge);}
.gallery{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; grid-auto-flow:dense;}
.gallery figure{position:relative; overflow:hidden; display:flex; min-width:0; margin:0;}
.gallery figure[hidden]{display:none;}
.gallery button{all:unset; cursor:zoom-in; display:flex; flex:1 1 auto; min-height:0; position:relative;}
.gallery button:focus-visible{outline:3px solid var(--rouge); outline-offset:3px;}
.gallery img{width:100%; aspect-ratio:2/3; object-fit:cover; object-position:center 18%; transition:transform .8s ease;}
.gallery button:hover img{transform:scale(1.03);}
.gallery figcaption{position:absolute; left:14px; bottom:12px; color:#fff; font-stretch:80%; font-weight:600; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; text-shadow:0 1px 10px rgba(0,0,0,.65); pointer-events:none;}
.gallery .wide{grid-column:span 2;}
.gallery .wide img{aspect-ratio:3/2;}
@media (min-width:900px){ .gallery{grid-template-columns:repeat(3,1fr); gap:16px;} .gallery .wide img{aspect-ratio:auto; height:0; min-height:100%;} }
.gallery-links{display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; margin-top:34px; padding-top:18px; border-top:1px solid var(--black); color:var(--muted); font-size:.9rem;}
.gallery-links a{font-stretch:80%; font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; color:var(--ink);}
.gallery-links a:hover{color:var(--rouge);}
dialog.lightbox{border:0; padding:0; background:transparent; max-width:min(92vw,1000px); max-height:92vh; margin:auto;}
dialog.lightbox::backdrop{background:rgba(255,255,255,.97);}
dialog.lightbox img{max-height:84vh; width:auto; margin:auto;}
dialog.lightbox form{text-align:right;}
dialog.lightbox .close{background:none; border:0; color:var(--black); font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; padding:12px 0; cursor:pointer;}

/* ---------- Mini sessions ---------- */
.mini-grid{display:grid; gap:50px; align-items:center;}
@media (min-width:900px){ .mini-grid{grid-template-columns:1fr 1.1fr;} }
.mini-price{display:flex; align-items:baseline; gap:16px; margin:22px 0 10px; flex-wrap:wrap;}
.mini-price b{font-family:var(--serif); font-weight:500; font-size:clamp(4rem,8vw,6.4rem); line-height:.9; letter-spacing:-.03em;}
.mini-dates{display:grid; gap:12px;}
@media (min-width:600px){ .mini-dates{grid-template-columns:1fr 1fr;} }
.mini-date{all:unset; box-sizing:border-box; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:22px 22px; background:#fff; border:1px solid transparent; transition:border-color .2s, transform .2s;}
.mini-date:hover{border-color:var(--black); transform:translateY(-2px);}
.mini-date:focus-visible{outline:3px solid var(--rouge);}
.mini-date b{display:block; font-family:var(--serif); font-weight:500; font-size:1.7rem; line-height:1.05;}
.mini-date small{color:var(--muted); font-size:.9rem;}
.mini-date .left{font-stretch:80%; font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); text-align:right; white-space:nowrap;}
.mini-date .left.low{color:var(--rouge);}
.mini-date .left.low::before{content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--rouge); margin-right:8px; vertical-align:middle;}
.mini-date[disabled]{opacity:.45; cursor:default; transform:none;}

/* ---------- Branding band ---------- */
.band-grid{display:grid; gap:56px; align-items:center;}
@media (min-width:900px){ .band-grid{grid-template-columns:1.1fr 1fr;} }
.band-pics{display:grid; grid-template-columns:1.25fr 1fr; gap:14px; align-items:end;}
.band-pics img{width:100%; aspect-ratio:2/3; object-fit:cover;}
.band-pics img:last-child{aspect-ratio:3/4; margin-bottom:-56px;}
@media (max-width:899px){ .band-pics img:last-child{margin-bottom:0;} }
.band ul{list-style:none; margin:30px 0 36px; border-top:1px solid var(--black);}
.band li{padding:15px 0; border-bottom:1px solid var(--rule);}

/* ---------- Pricing ---------- */
.menu{border-top:2px solid var(--black);}
.item{display:grid; grid-template-columns:1fr auto; gap:8px 28px; padding:30px 0; border-bottom:1px solid var(--rule);}
.item.featured{background:var(--petal); margin:0 calc(var(--pad) * -1); padding-left:var(--pad); padding-right:var(--pad); border-bottom-color:transparent;}
.item h3{font-size:clamp(1.7rem,2.6vw,2.2rem); letter-spacing:-.02em;}
.item .tag{display:block; margin-top:8px; font-family:var(--sans); font-stretch:80%; font-weight:700; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink);}
.item .tag.limited{color:var(--rouge);}
.item .price{grid-column:2; grid-row:1; font-family:var(--serif); font-size:clamp(2rem,3vw,2.6rem); letter-spacing:-.02em; text-align:right; white-space:nowrap; line-height:1;}
.item .meta{grid-column:1/-1; color:var(--muted); font-size:.96rem;}
.item .act{grid-column:1/-1; display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-top:8px;}
.item .act .btn{padding:14px 24px; font-size:.7rem;}
.item .dep{font-size:.84rem; color:var(--muted);}
@media (min-width:860px){
  .item{grid-template-columns:1.1fr 1.6fr auto 170px; align-items:center;}
  .item .meta{grid-column:2; grid-row:1;} .item .price{grid-column:3;}
  .item .act{grid-column:4; grid-row:1; margin:0; flex-direction:column; align-items:stretch; gap:8px; text-align:center;}
}
.steps{list-style:none; display:grid; gap:36px; margin-top:80px; counter-reset:s;}
@media (min-width:860px){ .steps{grid-template-columns:repeat(3,1fr);} }
.steps li{counter-increment:s; border-top:1px solid var(--black); padding-top:22px;}
.steps li::before{content:'0' counter(s); display:block; font-family:var(--serif); font-size:3rem; line-height:1; letter-spacing:-.03em; margin-bottom:14px;}
.steps strong{display:block; font-family:var(--serif); font-weight:500; font-size:1.55rem; line-height:1.1; margin-bottom:8px;}
.steps span{color:var(--muted);}
.plans{font-size:.9rem; color:var(--muted); margin-top:18px;}

/* ---------- Booking ---------- */
.book-grid{display:grid; gap:0; border:1px solid var(--black);}
@media (min-width:1000px){ .book-grid{grid-template-columns:1.55fr 1fr; align-items:stretch;} }
.panel{background:#fff; padding:30px 22px;}
@media (min-width:600px){ .panel{padding:50px;} }
fieldset{border:0; margin:0 0 46px;}
legend{font-family:var(--serif); font-weight:500; font-size:2rem; letter-spacing:-.02em; margin-bottom:20px; color:var(--ink);}
.choices{display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(210px,1fr));}
.choice{position:relative;}
.choice input{position:absolute; opacity:0;}
.choice label{display:block; height:100%; padding:18px 20px; border:1px solid var(--rule); cursor:pointer; transition:border-color .2s, background .2s;}
.choice label:hover{border-color:var(--black);}
.choice label b{display:block; font-family:var(--serif); font-weight:500; font-size:1.3rem; line-height:1.15;}
.choice label small{color:var(--muted); font-size:.86rem;}
.choice input:checked+label{border-color:var(--black); box-shadow:inset 0 0 0 1px var(--black); background:var(--stone);}
.choice input:focus-visible+label{outline:3px solid var(--rouge); outline-offset:2px;}
.cal-head, .cal{max-width:470px;}
.cal-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px;}
.cal-head b{font-family:var(--serif); font-weight:500; font-size:1.5rem;}
.cal-head button{width:42px; height:42px; border:1px solid var(--black); background:#fff; color:var(--black); cursor:pointer; font-size:1.1rem;}
.cal-head button:hover:not(:disabled){background:var(--black); color:#fff;}
.cal-head button:disabled{opacity:.25; cursor:default;}
.cal{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center;}
.cal .dow{font-stretch:80%; font-weight:600; font-size:.68rem; letter-spacing:.14em; color:var(--muted); padding:6px 0;}
.cal button{aspect-ratio:1; border:1px solid transparent; background:transparent; color:#C9C4BE; font:400 .95rem var(--sans); cursor:default;}
.cal button:not(:disabled){color:var(--black); background:var(--stone); cursor:pointer; font-weight:500;}
.cal button:not(:disabled):hover{border-color:var(--black);}
.cal button[aria-pressed="true"]{background:var(--black); color:#fff;}
.times{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; min-height:48px;}
.times button{font:600 .88rem var(--sans); padding:12px 18px; border:1px solid var(--rule); background:#fff; color:var(--black); cursor:pointer;}
.times button:hover{border-color:var(--black);}
.times button[aria-pressed="true"]{background:var(--black); border-color:var(--black); color:#fff;}
.hint{color:var(--muted); font-size:.95rem;}
.fields{display:grid; gap:20px;}
@media (min-width:600px){ .fields{grid-template-columns:1fr 1fr;} .fields .full{grid-column:1/-1;} }
label.f{display:block; font-stretch:80%; font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);}
label.f input, label.f select, label.f textarea{display:block; width:100%; margin-top:6px; font:400 1.02rem var(--sans); letter-spacing:0; text-transform:none; padding:12px 0; border:0; border-bottom:1px solid #BDB7B0; background:transparent; color:var(--text); border-radius:0;}
label.f textarea{min-height:90px; resize:vertical;}
label.f input:focus, label.f select:focus, label.f textarea:focus{outline:none; border-bottom-color:var(--black); box-shadow:0 1px 0 0 var(--black);}
label.f input::placeholder, label.f textarea::placeholder{color:#AAA39C;}
.check{display:flex; gap:14px; align-items:center; padding:14px 0; border-bottom:1px solid var(--rule); cursor:pointer;}
.check:last-child{border-bottom:0;}
.check input{accent-color:var(--black); width:18px; height:18px; flex:none;}
.check span{flex:1;} .check em{font-style:normal; font-weight:600;}
.agree{margin-top:34px; padding-top:26px; border-top:1px solid var(--rule); display:grid; gap:18px;}
.agree .check{border:0; padding:0; align-items:flex-start;}
.agree .check input{margin-top:3px;}
.agree a{text-underline-offset:3px;}
.release{border:0; margin:0;}
.release legend{font-family:var(--sans); font-stretch:80%; font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:10px;}
.release label{display:flex; gap:12px; align-items:flex-start; padding:6px 0; cursor:pointer;}
.release input{accent-color:var(--black); margin-top:5px; width:17px; height:17px; flex:none;}
.summary{background:var(--black); padding:44px 34px;}
.summary-inner{position:sticky; top:130px;}
.summary h3{font-size:2.3rem; margin:10px 0 26px; letter-spacing:-.02em;}
.summary dl{display:grid; grid-template-columns:auto 1fr; gap:12px 16px; margin-bottom:24px;}
.summary dt{font-stretch:80%; font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); padding-top:3px;}
.summary dd{text-align:right;}
.summary .total{display:flex; justify-content:space-between; border-top:1px solid var(--rule); padding-top:18px;}
.paytype{display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--rule); margin:22px 0; padding:4px;}
.paytype button{border:0; background:transparent; color:var(--muted); font:700 .7rem var(--sans); font-stretch:80%; letter-spacing:.14em; text-transform:uppercase; padding:12px 6px; cursor:pointer;}
.paytype button[aria-pressed="true"]{background:#fff; color:var(--black);}
.due{font-stretch:80%; font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);}
.summary .today{font-family:var(--serif); font-size:4rem; line-height:1; letter-spacing:-.03em; color:#fff; margin:6px 0 26px;}
.summary .btn{width:100%;}
.secure{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; font-size:.84rem; color:var(--muted);}
.secure svg{color:#7FD1A6;}
.fine{font-size:.84rem; color:var(--muted); margin-top:14px;}
.err{color:var(--rouge); margin-top:12px; font-size:.95rem; font-weight:500;}
.dark .err{color:#FF8A9C;}

/* ---------- Reviews ---------- */
.testimonial-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:0; border-top:2px solid var(--black);}
.testimonial-card{position:relative; padding:40px 32px 36px; display:flex; flex-direction:column; gap:18px; border-bottom:1px solid var(--rule);}
@media (min-width:900px){ .testimonial-card + .testimonial-card{border-left:1px solid var(--rule);} }
.testimonial-card .stars{color:var(--black); letter-spacing:.22em; font-size:.9rem;}
.testimonial-card .quote{font-family:var(--serif); font-style:italic; font-size:1.55rem; line-height:1.3; letter-spacing:-.01em;}
.testimonial-card .attribution{font-stretch:80%; font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);}
.placeholder-note{font-size:.9rem; color:var(--rouge);}

/* ---------- Weddings inquiry ---------- */
.inq-grid{display:grid; gap:56px;}
@media (min-width:900px){ .inq-grid{grid-template-columns:1fr 1.15fr; align-items:start;} }
.inq-intro p.lead{color:var(--muted); margin-top:22px; max-width:46ch; font-size:1.05rem;}
.consult{margin-top:34px; padding-top:26px; border-top:1px solid var(--rule);}
.consult p{color:var(--muted); margin-bottom:16px;}
.inq-photo{margin-top:40px;}
.inq-photo img{width:100%; aspect-ratio:4/5; object-fit:cover;}
.hp{position:absolute; left:-5000px;}
.ok{border-left:3px solid var(--sage); padding:10px 0 10px 24px;}
.ok h3{font-size:2.2rem; margin-bottom:8px;} .ok p{color:var(--muted);}

/* ---------- About ---------- */
.about-wrap{display:grid; grid-template-columns:1fr; gap:56px; align-items:center;}
@media (min-width:900px){ .about-wrap{grid-template-columns:1fr 1.2fr; gap:90px;} }
.about-portrait{aspect-ratio:4/5; position:relative;}
.about-portrait img{width:100%; height:100%; object-fit:cover; object-position:40% 30%;}
.about-portrait.no-photo{background:var(--stone); display:flex; align-items:center; justify-content:center; border:1px solid var(--black);}
.about-portrait.no-photo::after{content:'Jon'; font-family:var(--serif); font-style:italic; font-size:clamp(5rem,12vw,9rem); letter-spacing:-.03em; color:var(--black);}
.about-quote{font-family:var(--serif); font-style:italic; font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.2; letter-spacing:-.015em; margin:18px 0 28px;}
.about-quote span{text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px;}
.about-body p:not(.about-quote){color:var(--muted); margin-bottom:16px; max-width:56ch;}

/* ---------- Guide signup ---------- */
.guide{display:grid; gap:30px; align-items:center; background:#fff; border:1px solid var(--black); padding:48px clamp(22px,4vw,60px);}
@media (min-width:900px){ .guide{grid-template-columns:1.1fr 1fr;} }
.guide h2{font-size:clamp(2.2rem,4vw,3.4rem);}
.guide form{display:grid; gap:16px;}
@media (min-width:600px){ .guide form{grid-template-columns:1fr 1fr auto; align-items:end;} }
.guide .btn{white-space:nowrap;}

/* ---------- FAQ ---------- */
.faq-wrap{display:grid; gap:40px;}
@media (min-width:900px){ .faq-wrap{grid-template-columns:1fr 1.6fr;} }
details{border-bottom:1px solid var(--rule); padding:24px 0;}
details:first-of-type{border-top:2px solid var(--black);}
summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px; font-family:var(--serif); font-size:1.55rem; line-height:1.2; letter-spacing:-.01em;}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+'; font-family:var(--sans); font-weight:300; font-size:1.6rem; line-height:1;}
details[open] summary::after{content:'–';}
details p{color:var(--muted); margin-top:12px; max-width:62ch;}

/* ---------- Service-page blocks ---------- */
.features{display:grid; border-top:2px solid var(--black);}
@media (min-width:860px){ .features{grid-template-columns:repeat(3,1fr);} }
.features > div{padding:34px 28px 36px 0; border-bottom:1px solid var(--rule);}
@media (min-width:860px){ .features > div{padding:34px 30px 36px;} .features > div:first-child{padding-left:0;} .features > div + div{border-left:1px solid var(--rule);} }
.features h3{font-size:2.2rem; margin:10px 0 10px; letter-spacing:-.02em;}
.features p{color:var(--muted);}
.strip{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
@media (min-width:860px){ .strip{grid-template-columns:repeat(4,1fr);} }
.strip img{width:100%; aspect-ratio:3/4; object-fit:cover;}
.legal{max-width:760px; margin:0 auto;}
.legal h2{font-size:2.4rem; margin:48px 0 12px;}
.legal p, .legal li{color:var(--muted); margin-bottom:10px;}
.legal ul{padding-left:1.2em;}
.form-card{max-width:660px; margin:0 auto; background:#fff; border:1px solid var(--black); padding:46px clamp(22px,5vw,54px);}
.stars-input{display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:6px;}
.stars-input input{position:absolute; opacity:0;}
.stars-input label{font-size:2.4rem; color:#D6D1CB; cursor:pointer; line-height:1;}
.stars-input input:checked ~ label, .stars-input label:hover, .stars-input label:hover ~ label{color:var(--black);}
.stars-input input:focus-visible + label{outline:2px solid var(--rouge);}

/* ---------- Closing + footer ---------- */
.closing{text-align:center; padding:130px var(--pad);}
.closing h2{font-size:clamp(3rem,8vw,6.6rem); max-width:14ch; margin:16px auto 22px; letter-spacing:-.035em; line-height:.92;}
.closing p{color:var(--muted); max-width:48ch; margin:0 auto 34px; font-size:1.05rem;}
.closing .hero-cta{justify-content:center;}
footer{padding:70px var(--pad) 30px; border-top:2px solid var(--black); background:#fff; color:var(--text);}
.foot-grid{display:grid; gap:34px;}
@media (min-width:860px){ .foot-grid{grid-template-columns:1.3fr 1fr 1fr;} }
.foot-grid h4{font-stretch:80%; font-weight:700; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:14px;}
.foot-links{display:flex; flex-direction:column; gap:8px; align-items:flex-start;}
footer a{text-decoration:none;} footer a:hover{color:var(--rouge);}
.foot-mast{font-family:var(--serif); font-weight:500; font-size:clamp(2.4rem,11.3vw,14rem); line-height:.8; letter-spacing:-.04em; text-align:center; margin:70px 0 22px; white-space:nowrap; overflow:hidden;}
.foot-base{display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; border-top:1px solid var(--black); padding-top:14px; font-size:.8rem; color:var(--muted);}

.sticky-actions{position:fixed; left:12px; right:12px; bottom:12px; z-index:35; display:none; gap:8px;}
.sticky-actions .btn{flex:1; box-shadow:0 14px 30px -12px rgba(0,0,0,.35);}
.sticky-actions .btn:not(.btn-solid){flex:0 0 auto; background:#fff; border-color:var(--black); color:var(--black);}
@media (max-width:860px){ .sticky-actions.show{display:flex;} }
.toast{position:fixed; left:16px; right:16px; bottom:16px; margin:auto; max-width:520px; background:var(--black); color:#fff; padding:18px 20px; z-index:70; border-left:4px solid #7FD1A6; box-shadow:0 20px 40px -15px rgba(0,0,0,.4);}

@media (prefers-reduced-motion: reduce){ *{transition:none !important; animation:none !important;} html{scroll-behavior:auto;} }

/* =====================================================================
   v7: "MORE THAN PHOTOS" LOOK (matches the approved mockup)
   Burgundy #7C021A is the ONE booking color. Cream cards, black film
   band, deep wine CTA panel, script accents.
   ===================================================================== */
:root{
  --rouge:#7C021A; --rouge-hover:#5E0114;
  --wine-deep:#2B0A10; --wine:#3C111A; --cream:#F5F1EB; --stone:#F3EEE8; --petal:#F3ECE6;
  --script:'Allura', 'Snell Roundhand', cursive;
}
body{background:#FDFBF8;}
.btn .arr{flex:none; transition:transform .2s ease;}
.btn:hover .arr{transform:translateX(3px);}
.btn-light{border-color:#fff; color:#fff;}
.btn-light:hover{background:#fff; color:var(--wine-deep);}

/* Nav: transparent over the homepage hero, solid everywhere else */
nav{position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:18px var(--pad); background:#fff; color:var(--text); border-bottom:1px solid var(--hair); grid-template-columns:none;}
nav .brand{text-align:left; font-size:1.75rem; letter-spacing:.01em;}
nav .brand span{font-size:.58rem; letter-spacing:.5em; padding-left:.5em; text-align:center; font-weight:500;}
nav ul{list-style:none; display:flex; gap:30px; margin:0 auto;}
nav ul a{font-stretch:95%; font-weight:500; font-size:.72rem; letter-spacing:.2em;}
.nav-right{display:flex; align-items:center; gap:22px;}
.btn-nav{padding:13px 26px; font-size:.7rem; letter-spacing:.2em; font-weight:600; background:transparent; border:1px solid var(--rouge); color:var(--rouge); box-shadow:none;}
.btn-nav:hover{background:var(--rouge); color:#fff; border-color:var(--rouge);}
.menu-btn{display:inline-flex; background:none; border:0; color:inherit; cursor:pointer; padding:8px;}
body.home nav{position:fixed; left:0; right:0; background:transparent; color:#fff; border-bottom:0; transition:background .3s ease, color .3s ease, padding .3s ease;}
body.home nav::after{content:''; position:absolute; left:var(--pad); right:var(--pad); bottom:0; height:1px; background:rgba(255,255,255,.35);}
body.home nav .btn-nav{background:var(--rouge); border-color:var(--rouge); color:#fff;}
body.home nav.scrolled{background:rgba(255,255,255,.97); color:var(--text); padding-top:12px; padding-bottom:12px; box-shadow:0 1px 0 var(--hair);}
body.home nav.scrolled::after{display:none;}
@media (max-width:1180px){ nav ul{display:none;} }
@media (max-width:600px){ nav .btn-nav{display:none;} nav .brand{font-size:1.35rem;} }
.drawer{background:var(--wine-deep); color:#fff;}
.drawer-top{border-bottom-color:rgba(255,255,255,.25);}
.drawer li a{border-bottom-color:rgba(255,255,255,.12); color:#fff;}
.drawer .btn:not(.btn-solid){border-color:#fff; color:#fff;}
@media (min-width:1181px){ .drawer{display:flex;} }

/* Hero */
.hx{position:relative; padding:0; min-height:min(80svh,760px); display:flex; align-items:center; overflow:hidden; color:#fff;
  background:linear-gradient(90deg, #120709 0%, #1d0a0f 38%, var(--wine) 100%);}
.hx-img{position:absolute; top:0; bottom:0; right:0; width:min(78%,1200px); height:100%; object-fit:cover; object-position:50% 18%;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 24%, #000 78%, transparent 100%); mask-image:linear-gradient(90deg, transparent 0%, #000 24%, #000 78%, transparent 100%);}
.hx::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(14,6,8,.82) 0%, rgba(14,6,8,.35) 42%, rgba(14,6,8,0) 62%), linear-gradient(0deg, rgba(14,6,8,.55), rgba(14,6,8,0) 30%); pointer-events:none;}
.hx-copy{position:relative; z-index:2; padding:130px var(--pad) 60px; max-width:980px;}
.hx-kicker{font-stretch:95%; font-weight:500; font-size:.78rem; letter-spacing:.32em; text-transform:uppercase; margin-bottom:18px;}
.hx h1{color:#fff; font-size:clamp(2.7rem,6.2vw,6.2rem); line-height:.9; letter-spacing:-.01em; font-weight:500;}
.hx h1 span{display:block; white-space:nowrap;}
.hx-script{font-family:var(--serif); font-style:italic; font-size:clamp(1.9rem,3.6vw,3.1rem); line-height:1.1; margin:10px 0 18px;}
.hx-note{font-size:clamp(1rem,1.3vw,1.18rem); line-height:1.55; color:rgba(255,255,255,.9); margin-bottom:26px;}
.hx .btn-solid{padding:16px 30px;}
.hx-words{position:absolute; z-index:2; right:var(--pad); top:50%; transform:translateY(-50%); list-style:none; font-stretch:95%; font-weight:500; font-size:.8rem; letter-spacing:.34em; text-transform:uppercase; line-height:2.3;}
@media (max-width:900px){
  .hx{min-height:auto; align-items:flex-end; padding-top:0;}
  .hx-img{width:100%; -webkit-mask-image:none; mask-image:none; object-position:62% 15%;}
  .hx::after{background:linear-gradient(0deg, rgba(14,6,8,.92) 0%, rgba(14,6,8,.55) 45%, rgba(14,6,8,.15) 75%);}
  .hx-copy{padding:48svh 20px 44px;}
  .hx-words{display:none;}
}

/* Service strip */
.svc{padding:8px; background:#fff; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(300px,1fr); gap:8px; overflow-x:auto; scroll-snap-type:x mandatory;}
.svc-card{scroll-snap-align:start; display:grid; grid-template-columns:1fr 1.05fr; background:var(--cream); text-decoration:none; color:var(--text); height:156px;}
.svc-text{padding:18px 16px 16px 20px; display:flex; flex-direction:column;}
.svc-no{font-family:var(--serif); font-size:.8rem;}
.svc-card h2{font-size:clamp(1.1rem,1.3vw,1.35rem); white-space:nowrap; letter-spacing:.01em; text-transform:uppercase; margin:10px 0 6px; font-weight:500;}
.svc-card p{font-size:.88rem; line-height:1.35; color:var(--grey);}
.svc-card .arr{margin-top:auto; padding-top:14px; width:22px; height:auto;}
.svc-card img{width:100%; height:156px; object-fit:cover; object-position:50% 22%; transition:transform .6s ease;}
.svc-card{overflow:hidden;}
.svc-card:hover img{transform:scale(1.04);}
.svc-card:hover h2{color:var(--rouge);}
.svc-card:focus-visible{outline:2px solid var(--rouge); outline-offset:-2px;}
@media (min-width:1400px){ .svc{grid-auto-columns:1fr; overflow:visible;} }

/* Cinematic + Meet Jon */
.duo{padding:0; display:grid; grid-template-columns:1fr; background:#0d0b0a;}
@media (min-width:1000px){ .duo{grid-template-columns:1.22fr 1fr;} }
.cine{position:relative; min-height:420px; overflow:hidden; color:#fff; display:flex; align-items:center;}
.cine > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:60% 40%; filter:saturate(.9);}
.cine::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,8,7,.9) 0%, rgba(10,8,7,.55) 38%, rgba(10,8,7,.1) 70%);}
.cine-copy{position:relative; z-index:2; padding:50px var(--pad); max-width:430px;}
.cine h2{color:#fff; font-size:clamp(2.4rem,3.6vw,3.3rem); line-height:.95; font-weight:500;}
.kick{font-stretch:95%; font-weight:500; font-size:.74rem; letter-spacing:.3em; text-transform:uppercase; margin:12px 0 14px;}
.kick.small{font-size:.66rem; letter-spacing:.22em;}
.cine p{color:rgba(255,255,255,.88); line-height:1.5;}
.play-link{all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:18px; margin-top:26px; font-stretch:95%; font-weight:600; font-size:.76rem; letter-spacing:.24em; text-transform:uppercase;}
.play-link:focus-visible{outline:2px solid #fff; outline-offset:6px;}
.play-circle{width:52px; height:52px; border-radius:50%; border:1.5px solid #fff; display:inline-flex; align-items:center; justify-content:center; transition:background .2s;}
.play-circle::before{content:''; margin-left:4px; border-left:13px solid #fff; border-top:8px solid transparent; border-bottom:8px solid transparent;}
.play-link:hover .play-circle{background:var(--rouge); border-color:var(--rouge);}
.cine-script{position:absolute; z-index:2; right:6%; bottom:14%; font-family:var(--script); font-size:clamp(2.4rem,4vw,3.8rem); line-height:1.05; transform:rotate(-12deg); color:rgba(255,255,255,.92);}
.meet{position:relative; background:var(--cream); display:grid; grid-template-columns:1fr; overflow:hidden;}
@media (min-width:640px){ .meet{grid-template-columns:1.05fr 1fr;} }
.meet-copy{padding:40px 30px 40px var(--pad); position:relative; z-index:2;}
@media (min-width:1000px){ .meet-copy{padding-left:40px;} }
.meet h2{font-size:clamp(3rem,4.4vw,4.2rem); line-height:.9; margin-top:-4px;}
.meet .kick{margin:0;} .meet .kick.small{margin:14px 0 16px;}
.meet p{font-size:.95rem; line-height:1.55; color:#3c3835; margin-bottom:22px; max-width:42ch;}
.meet .btn{padding:12px 20px; font-size:.7rem;}
.meet-photo{position:relative; min-height:320px; background:#d9d4ce;}
.meet-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05);}
.meet-photo.no-photo{background:linear-gradient(135deg,#e7e1da,#cfc8c0);}
.meet-words{position:absolute; top:34px; right:22px; text-align:center; font-stretch:95%; font-weight:500; font-size:.66rem; letter-spacing:.3em; text-transform:uppercase; line-height:1.9; color:#fff; mix-blend-mode:difference; z-index:2;}
.meet-photo.no-photo .meet-words{color:#1c1a18; mix-blend-mode:normal;}
.meet-sig{position:absolute; right:26px; bottom:12px; z-index:2; font-family:var(--script); font-size:4.4rem; line-height:1; color:#fff; transform:rotate(-8deg); mix-blend-mode:difference;}
.meet-photo.no-photo .meet-sig{color:#1c1a18; mix-blend-mode:normal; font-size:7rem; right:50%; transform:translateX(50%) rotate(-8deg); bottom:30%;}

/* Client stories row */
.stories{padding:8px; display:grid; gap:8px; grid-template-columns:1fr; background:#fff;}
@media (min-width:1000px){ .stories{grid-template-columns:1.05fr 1.45fr 1.6fr;} }
.stories-quote{background:#FBF9F6; padding:22px 30px 26px; position:relative; display:flex; flex-direction:column;}
.stories-quote .kick{margin:0 0 6px;}
.stories-quote h2{font-size:clamp(2.2rem,3vw,2.8rem); margin-bottom:14px;}
.stories-quote blockquote{font-family:var(--serif); font-style:italic; font-size:1.18rem; line-height:1.4; margin:0 0 14px;}
.story-by{font-stretch:95%; font-weight:600; font-size:.7rem; letter-spacing:.24em; text-transform:uppercase;}
.story-by::before{content:''; display:inline-block; width:18px; height:1px; background:currentColor; vertical-align:middle; margin-right:10px;}
.story-by span{display:block; font-weight:400; letter-spacing:.04em; text-transform:none; font-size:.82rem; color:var(--grey); margin:2px 0 0 28px;}
.story-nav{display:flex; gap:10px; justify-content:flex-end; margin-top:auto; padding-top:12px;}
.story-nav button{width:36px; height:36px; border:1px solid #cfc9c2; background:#fff; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;}
.story-nav button:hover{border-color:var(--text);}
.stories-pics{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; min-height:200px;}
.stories-pics img{width:100%; height:100%; object-fit:cover; object-position:50% 25%; aspect-ratio:auto;}
@media (max-width:999px){ .stories-pics img{aspect-ratio:3/4;} }
.ready{position:relative; color:#fff; text-align:center; padding:30px 24px 34px; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden;
  background:
    radial-gradient(ellipse 30% 45% at 10% 20%, rgba(120,20,34,.55), transparent 70%),
    radial-gradient(ellipse 25% 40% at 90% 85%, rgba(120,20,34,.5), transparent 70%),
    radial-gradient(circle at 85% 15%, rgba(0,0,0,.35), transparent 40%),
    var(--wine-deep);}
.ready::before{content:''; position:absolute; inset:0; opacity:.22; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23b3263b' stroke-width='1.2'%3E%3Cpath d='M80 20c14 16 14 34 0 50-14-16-14-34 0-50zM80 90c14 16 14 34 0 50-14-16-14-34 0-50zM20 80c16-14 34-14 50 0-16 14-34 14-50 0zM90 80c16-14 34-14 50 0-16 14-34 14-50 0z'/%3E%3Ccircle cx='80' cy='80' r='9'/%3E%3Cpath d='M0 0c20 10 30 30 20 50M160 160c-20-10-30-30-20-50M160 0c-10 20-30 30-50 20M0 160c10-20 30-30 50-20'/%3E%3C/g%3E%3C/svg%3E");}
.ready > *{position:relative;}
.ready .kick{margin:0 0 10px; font-size:.7rem;}
.ready h2{color:#fff; font-size:clamp(2.2rem,3.4vw,3rem); line-height:1; margin-bottom:22px;}
.ready-cta{display:flex; flex-wrap:wrap; gap:14px; justify-content:center;}
.ready-cta .btn{padding:14px 22px; font-size:.7rem;}

/* Films dialog */
dialog.films-dialog{border:0; padding:24px; background:#0d0b0a; width:min(1100px,94vw); max-height:92vh; margin:auto; color:#fff;}
dialog.films-dialog::backdrop{background:rgba(10,6,7,.9);}
dialog.films-dialog form{text-align:right; margin-bottom:10px;}
dialog.films-dialog .close{background:none; border:0; color:#fff; font:600 .74rem var(--sans); letter-spacing:.18em; text-transform:uppercase; cursor:pointer; padding:6px 0;}
dialog.films-dialog .film figcaption{border-top-color:rgba(255,255,255,.3);}
dialog.films-dialog .film figcaption b{color:#fff;}
dialog.films-dialog .play::before{border-left-color:var(--rouge);}

/* Wine CTA look for service-page closings */
.closing.petal{color:#fff; background:var(--wine-deep); position:relative; overflow:hidden;}
.closing.petal h2{color:#fff;} .closing.petal p{color:rgba(255,255,255,.8);}
.closing.petal .eyebrow{color:#fff;}
.closing.petal .btn:not(.btn-solid){border-color:#fff; color:#fff;}
.closing.petal .btn:not(.btn-solid):hover{background:#fff; color:var(--wine-deep);}
.cover-line .eyebrow.urgent, .mini-date .left.low{color:var(--rouge);}

/* Footer */
.site-foot{background:#FEFCFA; border-top:1px solid var(--hair); padding:26px var(--pad) 90px;}
.foot-row{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px 30px;}
.site-foot .brand{font-size:1.5rem; text-align:left;}
.site-foot .brand span{font-size:.5rem; letter-spacing:.5em; text-align:center; padding-left:.5em;}
.foot-mid{font-stretch:95%; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:#2a2725;}
.foot-mid i, .foot-motto i{font-style:normal; margin:0 12px; color:#9a948e;}
.foot-social{display:flex; align-items:center; gap:18px;}
.foot-social a{display:inline-flex; color:var(--text);}
.foot-social a:hover{color:var(--rouge);}
.foot-sep{width:1px; height:28px; background:#9a948e; margin:0 8px;}
.foot-motto{font-stretch:95%; font-size:.7rem; letter-spacing:.24em; text-transform:uppercase;}
.site-foot .foot-links{flex-direction:row; flex-wrap:wrap; gap:8px 22px; margin-top:18px; padding-top:14px; border-top:1px solid var(--hair); font-size:.8rem; color:var(--grey);}
.site-foot .foot-links a{color:var(--grey); text-decoration:none;}
.site-foot .foot-links a:hover{color:var(--rouge);}
@media (min-width:861px){ .site-foot{padding-bottom:26px;} }
@media (max-width:700px){
  .foot-social{flex-wrap:wrap; gap:14px;}
  .foot-sep{display:none;}
  .foot-motto{flex-basis:100%;}
  .foot-mid i{margin:0 6px;}
}
@media (max-width:860px){ .item .meta, .item .act{grid-column:1/-1; min-width:0;} .item{grid-template-columns:minmax(0,1fr) auto;} }
@media (max-width:999px){
  .cine{min-height:480px; align-items:flex-start;}
  .cine-script{font-size:2.3rem; right:20px; bottom:22px; top:auto;}
  .cine-copy{padding:44px 20px 110px;}
}
@media (max-width:639px){ .meet-photo.no-photo{display:none;} }
.meet-photo.no-photo .meet-words{display:none;}
/* Client stories photo slider */
.stories-pics{display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 16px) / 3); gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; min-height:200px;}
.stories-pics::-webkit-scrollbar{display:none;}
.stories-pics img{scroll-snap-align:start; height:100%; min-height:260px;}
.stories-pics:focus-visible{outline:2px solid var(--rouge); outline-offset:2px;}
@media (max-width:999px){ .stories-pics{grid-auto-columns:calc((100% - 8px) / 2);} }
.boudoir-detail{max-width:900px; margin:0 auto;}
.boudoir-detail img{width:100%; height:auto; aspect-ratio:73/43; object-fit:cover;}
.boudoir-detail figcaption{font-size:.8rem; color:var(--grey); text-align:center; margin-top:10px;}
