:root{
  --linen:#F6F1EA; --paper:#FBF8F3; --ink:#2B2620; --mu:#7A7066; --line:#E4DBCF; --sage:#7C8B6F; --sage2:#5F6E54; --terra:#B8673E; --blush:#EAD8CB;
  --serif:'Fraunces',Georgia,serif; --sans:'Karla',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{width:min(1240px,100% - 32px);margin-inline:auto}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.08;letter-spacing:-.01em;font-variation-settings:"SOFT" 100}
h1 em,h2 em,h3 em{font-style:italic;color:var(--terra)}
h2{font-size:clamp(34px,4.4vw,58px)}
.ey{display:block;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--sage2);margin-bottom:16px;font-weight:600}
.mu{color:var(--mu)}
.lead{font-size:19px;color:var(--mu);max-width:600px}
.c{text-align:center}.c .lead{margin-inline:auto}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 14px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:16px 28px;border:1px solid var(--ink);background:transparent;cursor:pointer;transition:.25s;border-radius:999px}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-t{background:var(--terra);border-color:var(--terra);color:#fff}
.btn-t:hover{background:#9E5432;border-color:#9E5432}
.btn-w{border-color:#fff;color:#fff}
.btn-w:hover{background:#fff;color:var(--ink)}
section{padding:120px 0}
.linen{background:var(--linen)}
.sage{background:var(--sage2);color:#F4F1EA}
.sage .ey{color:#DCE3D3}.sage .lead,.sage .mu{color:#DCE3D3}
.sage h2 em{color:#F1D6C4}

header{position:sticky;top:0;z-index:60;background:rgba(251,248,243,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:92px;gap:20px}
nav.l,nav.r{display:flex;gap:22px;font-size:13px;letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;font-weight:600}
nav.r{justify-content:flex-end;align-items:center}
nav a:hover,nav a.on{color:var(--terra)}
.logo{text-align:center;font-family:var(--serif);font-size:28px;line-height:1;font-style:italic}
.logo small{display:block;font-family:var(--sans);font-style:normal;font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--mu);margin-top:6px}
.burger{display:none;background:none;border:0;font-size:26px;cursor:pointer;justify-self:end}

/* hero */
.hero{display:grid;grid-template-columns:1.15fr 1fr;min-height:calc(100svh - 92px)}
.hero .im{position:relative;overflow:hidden}
.hero .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .im .stamp{position:absolute;right:28px;bottom:28px;width:130px;height:130px;border-radius:50%;background:var(--paper);display:grid;place-items:center;text-align:center;font:italic 300 17px/1.2 var(--serif);padding:16px;transform:rotate(-8deg)}
.hero .tx{background:var(--linen);display:flex;flex-direction:column;justify-content:center;padding:70px 64px}
.hero h1{font-size:clamp(46px,5.6vw,84px)}
.hero p{font-size:19px;color:var(--mu);margin:22px 0 34px;max-width:460px}
.dcheck{display:flex;gap:0;border:1px solid var(--ink);border-radius:999px;overflow:hidden;max-width:460px;background:var(--paper)}
.dcheck input{flex:1;min-width:0;font:inherit;font-size:16px;border:0;background:none;padding:14px 22px;color:var(--ink)}
.dcheck button{border-radius:0;border:0;border-left:1px solid var(--ink)}
.hstats{display:flex;gap:34px;margin-top:40px;flex-wrap:wrap}
.hstats b{display:block;font:300 38px var(--serif);line-height:1}
.hstats span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--mu)}

/* intro */
.intro{display:grid;grid-template-columns:1fr 1.2fr;gap:90px;align-items:center}
.intro .pics{position:relative;height:620px}
.intro .pics img{position:absolute;object-fit:cover;border-radius:300px 300px 0 0}
.intro .pics .a{left:0;top:0;width:62%;height:82%}
.intro .pics .b{right:0;bottom:0;width:50%;height:56%;border-radius:0;border:10px solid var(--paper)}
.intro p{color:var(--mu);margin-top:18px;font-size:18px}
.sig{font:italic 300 30px var(--serif);color:var(--terra);margin-top:26px}

/* timeline */
.tl{display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative;margin-top:60px}
.tl::before{content:"";position:absolute;left:0;right:0;top:30px;height:1px;background:rgba(244,241,234,.4)}
.tl div{padding-right:18px;position:relative}
.tl b{display:block;font:300 34px var(--serif);margin-bottom:22px;background:var(--sage2);width:max-content;padding-right:10px;position:relative}
.tl h3{font-size:22px;margin-bottom:6px}
.tl p{font-size:15px;color:#DCE3D3}

/* spaces */
.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.sp img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:220px 220px 0 0;margin-bottom:22px}
.sp:nth-child(2) img{border-radius:0}
.sp h3{font-size:32px}
.sp small{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage2);font-weight:600}
.sp p{color:var(--mu);margin-top:8px;font-size:16px}

/* calculator */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--paper);border:1px solid var(--line)}
.calc .in{padding:50px}
.calc .out{background:var(--blush);padding:50px;display:flex;flex-direction:column;justify-content:space-between}
.seg{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 26px}
.seg button{font:600 14px var(--sans);padding:11px 18px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink)}
.seg button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.calc label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;display:flex;justify-content:space-between}
.calc input[type=range]{width:100%;accent-color:var(--terra);margin:12px 0 26px}
.calc .big{font:300 clamp(58px,6vw,86px) var(--serif);line-height:1}
.calc dl{display:grid;grid-template-columns:1fr auto;gap:10px;margin:28px 0;font-size:16px;border-top:1px solid rgba(43,38,32,.15);padding-top:18px}
.calc dd{font-weight:700;text-align:right}

/* real weddings */
.rw{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:26px}
.rwc img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:18px}
.rwc:first-child img{aspect-ratio:auto;height:calc(100% - 110px);min-height:420px}
.rwc h3{font-size:28px}
.rwc small{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mu)}

.rw.two{grid-template-columns:1fr 1fr}.rw.two .rwc:first-child img{height:auto;aspect-ratio:4/5;min-height:0}
.strip.four{grid-template-columns:repeat(4,1fr)}
/* quote */
.bq{max-width:940px;margin:0 auto;text-align:center}
.bq p{font:300 clamp(28px,3.4vw,44px)/1.3 var(--serif)}
.bq p em{color:var(--terra)}
.bq cite{display:block;margin-top:26px;font-style:normal;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--mu)}
.bq .st{color:var(--terra);letter-spacing:4px;margin-bottom:18px}
.qnav{display:flex;gap:10px;justify-content:center;margin-top:30px}
.qnav button{width:10px;height:10px;border-radius:50%;border:1px solid var(--ink);background:none;cursor:pointer;padding:0}
.qnav button.on{background:var(--ink)}

/* calendar */
.cal-wrap{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.cal-head button{width:46px;height:46px;border-radius:50%;border:1px solid var(--ink);background:none;cursor:pointer;font-size:18px}
.cal-head h3{font-size:34px}
.months{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.mo{background:#fff;border:1px solid var(--line);padding:22px}
.mo h4{font:400 22px var(--serif);margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:13.5px;text-align:center}
.grid .dw{font-size:11px;letter-spacing:.1em;color:var(--mu);font-weight:700;padding-bottom:6px}
.grid button{aspect-ratio:1;border:0;border-radius:50%;font:600 13.5px var(--sans);cursor:pointer;background:none;color:var(--ink)}
.grid .av{background:#E3EADB;color:var(--sage2)}
.grid .av:hover,.grid .sel{background:var(--sage2);color:#fff}
.grid .bk{color:#C5BBAE;text-decoration:line-through;cursor:not-allowed}
.grid .hd{background:var(--blush);color:var(--terra)}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin-top:20px}
.legend span::before{content:"";display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:-1px}
.legend .a::before{background:#E3EADB}.legend .h::before{background:var(--blush)}.legend .b::before{background:#E4DBCF}
.side{position:sticky;top:120px;background:var(--linen);padding:32px;border:1px solid var(--line)}
.side h3{font-size:28px;margin-bottom:6px}
.chosen{font:italic 300 26px var(--serif);color:var(--terra);margin:14px 0}

/* open days */
.od{display:grid;gap:0;border-top:1px solid var(--line)}
.odr{display:grid;grid-template-columns:140px 1fr auto;gap:30px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line)}
.odr .d{font:300 46px var(--serif);line-height:1}
.odr .d small{display:block;font:600 13px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mu)}
.odr h3{font-size:26px}
.odr p{color:var(--mu);font-size:16px}

/* gallery strip */
.strip{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.strip img{width:100%;aspect-ratio:1;object-fit:cover}

.form{display:grid;gap:14px}
.form .r{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form input,.form select,.form textarea{font:inherit;font-size:16px;padding:15px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);width:100%;border-radius:0}
.form textarea{min-height:90px}
.form button{justify-self:start;margin-top:10px}
.bro{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--linen)}
.bro img{width:100%;height:100%;object-fit:cover;min-height:560px}
.bro .t{padding:70px 60px}

/* inner */
.ph{position:relative;height:72vh;min-height:500px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(30,25,20,.65))}
.ph .wrap{position:relative;z-index:2;padding-bottom:70px}
.ph .ey{color:#F1E6DA}
.ph h1{font-size:clamp(46px,6vw,92px);max-width:900px}
.ph h1 em{color:#F1D6C4}
.crumbs{font-size:14px;margin-bottom:14px;opacity:.85}
.crumbs a{text-decoration:underline}
.story{max-width:760px;margin:0 auto}
.story p{font-size:19px;color:#4A433B;margin-bottom:20px}
.story p:first-of-type::first-letter{font:300 76px/0.8 var(--serif);float:left;margin:8px 12px 0 0;color:var(--terra)}
.story .pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:36px 0}
.story .pair img{width:100%;aspect-ratio:3/4;object-fit:cover}
.credits{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px;border-top:1px solid var(--line);padding-top:24px;margin-top:30px;font-size:15px}
.credits dt{color:var(--mu)}
.sup{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.sup div{padding:26px 26px 26px 0;border-bottom:1px solid var(--line)}
.sup small{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage2);font-weight:700}
.sup h3{font-size:24px;margin:4px 0}
.sup p{color:var(--mu);font-size:15px}
.faq details{border-bottom:1px solid var(--line);padding:22px 0}
.faq summary{font:300 23px var(--serif);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::after{content:"+";color:var(--terra)}
.faq details[open] summary::after{content:"−"}
.faq p{color:var(--mu);margin-top:10px}

footer{background:var(--ink);color:#B7AC9F;padding:90px 0 30px;font-size:15px}
footer .top{text-align:center;padding-bottom:60px;border-bottom:1px solid #423A31;margin-bottom:50px}
footer .top .logo{color:#F6F1EA;font-size:42px}
footer .cols{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
footer h4{color:#F6F1EA;font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
footer ul{list-style:none;display:grid;gap:8px}
footer a:hover{color:#fff}
footer .legal{border-top:1px solid #423A31;margin-top:50px;padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px}
.note{font-size:12px;margin-top:14px;color:#857A6E}

@media (max-width:1200px){
  nav.l,nav.r a:not(.btn){display:none}
  header .wrap{grid-template-columns:auto 1fr auto}
  .logo{text-align:left}
  nav.r{gap:10px}
  .burger{display:block}
  header.open nav.l{display:flex;flex-direction:column;position:absolute;top:92px;left:0;right:0;background:var(--paper);padding:16px 16px 24px;border-bottom:1px solid var(--line);gap:14px}
  .hero,.intro,.calc,.cal-wrap,.bro{grid-template-columns:1fr}
  .hero .im{min-height:56vh}
  .hero .tx{padding:50px 24px}
  .intro{gap:50px}.intro .pics{height:480px}
  .tl{grid-template-columns:repeat(3,1fr);gap:40px 0}.tl::before{display:none}
  .spaces,.rw{grid-template-columns:1fr 1fr}
  .rwc:first-child{grid-column:1/-1}.rwc:first-child img{height:auto;aspect-ratio:16/10;min-height:0}
  .side{position:static}
  .sup{grid-template-columns:1fr 1fr}
  footer .cols{grid-template-columns:1fr 1fr}
  section{padding:84px 0}
}
@media (max-width:640px){
  nav.r .btn{display:none}
  .logo{font-size:23px}
  .tl{grid-template-columns:1fr 1fr}
  .spaces,.rw,.months,.sup{grid-template-columns:1fr}
  .calc .in,.calc .out,.bro .t{padding:30px 22px}
  .odr{grid-template-columns:1fr;gap:10px}
  .strip,.strip.four{grid-template-columns:repeat(2,1fr)}
  .rw.two{grid-template-columns:1fr}
  .form .r,.story .pair,.credits{grid-template-columns:1fr}
  .intro .pics{height:380px}
  .bro img{min-height:300px}
  footer .cols{grid-template-columns:1fr}
}
[hidden]{display:none!important}
.wrap > *,.hero > *{min-width:0}
.hero,.ph{padding:0}
