:root{
  --alabaster:#F5F2EC;--paper:#FBF9F5;--ink:#211E1A;--stone:#EAE4DA;--taupe:#6E6556;--gold:#8C6E43;
  --hair:rgba(33,30,26,.15);--hair-soft:rgba(33,30,26,.09);--measure:42rem;
  --display:"Bodoni Moda",Georgia,serif;--body:"EB Garamond",Georgia,serif;--util:"Jost",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--alabaster);color:var(--ink);font-family:var(--body);font-size:1.2rem;line-height:1.72;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
picture{display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.eyebrow{font-family:var(--util);font-weight:400;font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--taupe)}
.masthead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1.15rem clamp(1.1rem,4vw,2.4rem);border-bottom:1px solid var(--hair)}
.masthead .side{font-family:var(--util);font-weight:400;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--taupe)}
.masthead .side.right{text-align:right}
.masthead .logo-link{justify-self:center;display:block}
.masthead .logo{height:19px;width:auto;opacity:.92}
@media(max-width:640px){.masthead{grid-template-columns:1fr}.masthead .side{display:none}.masthead .logo{height:17px}}
.hero{position:relative;width:100%;height:min(90vh,52rem);overflow:hidden;background:#19120d}
.hero picture,.hero img{width:100%;height:100%}
.hero img{object-fit:cover;object-position:50% 42%}
.hero .scrim{position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(to top,rgba(25,18,13,.5),rgba(25,18,13,0))}
.hero .kicker{position:absolute;left:0;right:0;bottom:1.7rem;text-align:center;padding:0 1rem;color:#F5F2EC;font-family:var(--util);font-weight:300;font-size:.72rem;letter-spacing:.4em;text-transform:uppercase}
.hero .kicker::before,.hero .kicker::after{content:"";display:inline-block;width:2.2rem;height:1px;background:rgba(245,242,236,.6);vertical-align:middle;margin:0 1rem 3px}
@media(max-width:640px){.hero{height:min(80vh,40rem)}.hero .kicker{letter-spacing:.3em;font-size:.66rem}.hero .kicker::before,.hero .kicker::after{width:1.1rem;margin:0 .55rem 3px}}
.titleblock{max-width:52rem;margin:0 auto;padding:clamp(2.6rem,8vw,5.5rem) 1.4rem clamp(1.4rem,4vw,2.6rem);text-align:center}
.titleblock .eyebrow{display:block;margin-bottom:1.5rem}
.titleblock h1{font-family:var(--display);font-optical-sizing:auto;font-weight:400;font-size:clamp(2.15rem,6.2vw,4.35rem);line-height:1.05;letter-spacing:.005em;margin:0;text-wrap:balance}
.byline{margin-top:1.7rem;font-family:var(--util);font-weight:300;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--taupe)}
.byline::before{content:"";display:block;width:44px;height:1px;background:var(--gold);margin:0 auto 1.4rem;opacity:.85}
.dateline{margin-top:.9rem;font-family:var(--util);font-weight:300;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--taupe)}
.post{max-width:var(--measure);margin:0 auto;padding:0 1.4rem}
.post > p{margin:0 0 1.5rem}
.lede{font-size:1.32rem;line-height:1.66}
.lede::first-letter{font-family:var(--display);font-weight:500;float:left;font-size:4.4rem;line-height:.82;padding:.32rem .55rem 0 0;color:var(--ink)}
.sec-head{text-align:center;margin:3.4rem 0 2rem}
.sec-head .mark{display:block;width:6px;height:6px;transform:rotate(45deg);background:var(--gold);margin:0 auto 1.15rem}
.sec-head h2{font-family:var(--display);font-weight:400;font-size:clamp(1.7rem,4vw,2.25rem);line-height:1.1;margin:0;letter-spacing:.01em;text-wrap:balance}
.glance{margin:2.6rem auto;max-width:34rem;padding:1.7rem 1.4rem;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);text-align:center}
.glance .ttl{font-family:var(--util);font-weight:400;font-size:.68rem;letter-spacing:.34em;text-transform:uppercase;color:var(--taupe);margin-bottom:1.2rem}
.glance dl{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.05rem 2.2rem;text-align:left}
.glance .row{display:flex;flex-direction:column;gap:.18rem}
.glance dt{font-family:var(--util);font-weight:400;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}
.glance dd{margin:0;font-family:var(--display);font-size:1.14rem;font-style:italic;line-height:1.3}
.glance .full{grid-column:1 / -1}
@media(max-width:520px){.glance dl{grid-template-columns:1fr}}
figure{margin:2.6rem 0}
.fig-wide{width:min(66rem,92vw);position:relative;left:50%;transform:translateX(-50%)}
figure img{width:100%}
.diptych{width:min(66rem,92vw);position:relative;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:2.6rem 0}
.diptych figure{margin:0}
.diptych picture,.diptych img{width:100%;height:100%}
.diptych img{object-fit:cover}
@media(max-width:600px){.diptych{grid-template-columns:1fr}}
.fill{display:block;margin:1.5rem 0;padding:.85rem 1.05rem;border:1px dashed var(--gold);border-radius:2px;background:rgba(140,110,67,.07);font-family:var(--util);font-weight:300;font-size:.82rem;line-height:1.55;letter-spacing:.02em;color:#7a5f38}
.fill b{font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:.64rem;display:block;margin-bottom:.25rem}
.vendors{margin:1rem auto 0}
.vendors dl{margin:1rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--hair)}
.vendor{display:flex;flex-direction:column;gap:.15rem;padding:1rem .4rem;border-bottom:1px solid var(--hair-soft)}
.vendor:nth-child(odd){padding-right:1.6rem;border-right:1px solid var(--hair-soft)}
.vendor:nth-child(even){padding-left:1.6rem}
.vendor dt{font-family:var(--util);font-weight:400;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}
.vendor dd{margin:0;font-family:var(--display);font-size:1.16rem}
.vendor dd a{text-decoration:none;background-image:linear-gradient(var(--gold),var(--gold));background-size:100% 1px;background-position:0 1.12em;background-repeat:no-repeat;padding-bottom:2px}
@media(max-width:560px){.vendors dl{grid-template-columns:1fr}.vendor:nth-child(odd){padding-right:.4rem;border-right:none}.vendor:nth-child(even){padding-left:.4rem}}
.press{max-width:40rem;margin:3.2rem auto;text-align:center;font-style:italic;font-size:1.14rem;line-height:1.6;color:#3d382f}
.press .stars{display:block;font-family:var(--util);font-weight:300;font-style:normal;font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;color:var(--taupe);margin-bottom:1rem}
.post a{color:inherit;text-decoration:none;background-image:linear-gradient(var(--gold),var(--gold));background-size:100% 1px;background-position:0 1.15em;background-repeat:no-repeat}
.cta{margin-top:4rem;background:var(--stone);border-top:1px solid var(--hair);padding:clamp(3rem,7vw,5rem) 1.4rem;text-align:center}
.cta .eyebrow{display:block;margin-bottom:1.2rem}
.cta h2{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,4.6vw,2.8rem);line-height:1.12;margin:0 auto;max-width:24ch;text-wrap:balance}
.cta p{max-width:34rem;margin:1.3rem auto 2rem;color:#453f35}
.btn{display:inline-block;font-family:var(--util);font-weight:400;font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);text-decoration:none;border:1px solid var(--ink);padding:1rem 2.4rem;transition:background .25s,color .25s}
.btn:hover{background:var(--ink);color:var(--alabaster)}
.cta .close{margin-top:2.4rem;font-family:var(--display);font-style:italic;font-size:1.2rem;color:var(--taupe)}
.sitefoot{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:2.8rem 1.4rem 3.4rem}
.sitefoot img{height:15px;width:auto;opacity:.55}
.sitefoot .social{font-family:var(--util);font-weight:300;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe)}
.sitefoot .social a{color:var(--taupe)}
.sitefoot .fn{color:var(--taupe);font-family:var(--util);font-weight:300;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase}
@media(max-width:600px){body{font-size:1.08rem}.lede{font-size:1.18rem}}
@media(min-width:1500px){:root{--measure:44rem}body{font-size:1.3rem}.lede{font-size:1.46rem}.hub-intro{font-size:1.34rem}}
@media(min-width:2000px){body{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- index / hub pages ---------- */
.pagehead{max-width:60rem;margin:0 auto;padding:clamp(3rem,8vw,5.5rem) 1.4rem clamp(1.6rem,4vw,2.4rem);text-align:center}
.pagehead .eyebrow{display:block;margin-bottom:1.3rem}
.pagehead h1{font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,6vw,3.9rem);line-height:1.06;margin:0;text-wrap:balance}
.pagehead p{max-width:44rem;margin:1.4rem auto 0;color:#4a4438;font-size:1.16rem;line-height:1.62}
.wrap{max-width:74rem;margin:0 auto;padding:0 1.4rem 2rem}
.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:1.8rem 1.4rem;margin:2rem 0 3rem}
.card{flex:0 1 22rem;display:block;text-decoration:none;color:inherit;background:none}
.card .ph{aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card:hover .ph img{transform:scale(1.03)}
.card .cap{padding:.9rem .1rem 0}
.card .couple{font-family:var(--display);font-size:1.32rem;line-height:1.15}
.card .venue{font-family:var(--util);font-weight:300;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe);margin-top:.4rem}
@media(max-width:520px){.card{flex:1 1 100%}}
/* venue hub hero */
.vhero{position:relative;width:100%;height:min(68vh,40rem);overflow:hidden;background:#19120d}
.vhero img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.vhero .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(25,18,13,.62) 0%,rgba(25,18,13,.26) 28%,rgba(25,18,13,0) 56%)}
.vhero .cap{position:absolute;left:0;right:0;bottom:clamp(2rem,6vw,4rem);text-align:center;color:#F5F2EC;padding:0 1.4rem;text-shadow:0 1px 20px rgba(20,13,8,.5)}
.vhero .eyebrow{color:rgba(245,242,236,.82);display:block;margin-bottom:1rem}
.vhero h1{font-family:var(--display);font-weight:400;font-size:clamp(2rem,6vw,3.8rem);line-height:1.05;margin:0;color:#fff;text-wrap:balance}
.vhero .sub{margin-top:1rem;font-family:var(--util);font-weight:300;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(245,242,236,.85)}
.hub-intro{max-width:var(--measure);margin:clamp(2.6rem,6vw,4rem) auto 0;padding:0 1.4rem;font-size:1.22rem;line-height:1.7}
.hub-intro p{margin:0 0 1.4rem}
.gallery{width:min(72rem,94vw);margin:3rem auto;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover}
@media(max-width:600px){.gallery{grid-template-columns:repeat(2,1fr)}}
.faq{max-width:var(--measure);margin:3rem auto;padding:0 1.4rem}
.faq details{border-top:1px solid var(--hair);padding:1.1rem 0}
.faq summary{font-family:var(--display);font-size:1.24rem;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";color:var(--gold);margin-right:.7rem}
.faq details[open] summary::before{content:"–"}
.faq p{margin:.8rem 0 0;color:#4a4438}
.crumb{max-width:66rem;margin:0 auto;padding:1.4rem;font-family:var(--util);font-weight:300;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe)}
.crumb a{color:var(--taupe)}
.uplink{text-align:center;margin:2.6rem auto;font-family:var(--util);font-weight:400;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}
.uplink a{color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:2px;text-decoration:none}

/* Full-screen hero on phones + tablets: masthead (55px) + hero = one screen.
   svh keeps it correct under the mobile browser's address bar (vh fallback). */
@media(max-width:1024px){
  .hero,.vhero{height:calc(100vh - 3.44rem);height:calc(100svh - 3.44rem)}
  .vhero .cap{bottom:clamp(2.4rem,8vw,4rem)}
}
