:root{--paper:#FDFCF9;--ink:#2B2620;--wine:#472129;--wine-d:#34171D;--mist:#E1E9EC;--butter:#F9EFC5;--muted:#6F6660;--muted2:#625A55;--body:#3B332D;--line:#B5ADA6;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Now','Jost',system-ui,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.5}
::selection{background:var(--butter);color:var(--ink)}
img{max-width:100%;display:block}
a{color:var(--wine)}a:hover{color:var(--wine-d)}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}
h1 em,h2 em,h3 em,.h em{color:var(--wine)}
p{margin:0}
.wrap{max-width:1320px;margin:0 auto;padding:0 40px}
.narrow{max-width:1100px}
.center{text-align:center;align-items:center}
.stack{display:flex;flex-direction:column;gap:22px}
.row{display:flex;flex-wrap:wrap;gap:48px 80px}
.row>*{flex:1 1 420px;min-width:0}
.end{align-items:flex-end}
.mid{align-items:center}
.sec{padding-top:130px;padding-bottom:130px}
.sec-b{padding-bottom:140px}
.tint{background:var(--mist)}
.band-wine{background:var(--wine);color:var(--paper)}
.band-wine .quote{color:var(--paper)}
.band-wine .cap,.band-wine .link{color:var(--butter)}
.band-wine .link:hover{color:var(--paper)}
.tint .eyebrow,.tint .cap{color:var(--muted2)}
.eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.cap{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.h-xl{font-size:clamp(58px,10vw,150px);line-height:.92}
.h-l{font-size:clamp(50px,7vw,104px);line-height:.96}
.h-m{font-size:clamp(40px,5vw,72px);line-height:1}
.h-s{font-size:clamp(32px,3.6vw,52px);line-height:1.08}
.lead{font-size:18px;line-height:1.8;color:var(--body)}
.txt{font-size:17px;line-height:1.8;color:var(--body)}
.small{font-size:13px;line-height:1.6;color:var(--muted)}
.serif-p{font-family:var(--serif);font-size:clamp(23px,2.2vw,28px);line-height:1.4}
.serif-p em,.lead-in{color:var(--wine);font-style:italic}
.quote{font-family:var(--serif);font-style:italic;color:var(--wine);font-size:clamp(34px,4.4vw,60px);line-height:1.12;margin:0}
.quote-s{font-family:var(--serif);font-style:italic;color:var(--wine);font-size:clamp(28px,3vw,44px);line-height:1.12;margin:0}
.num{font-family:var(--serif);font-style:italic;color:var(--wine);font-size:30px}
.link{align-self:flex-start;font-size:13px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px}
.center .link{align-self:center}
.ph{background:var(--mist);display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted2);text-align:center;padding:20px}
.cover{width:100%;object-fit:cover}
.full{width:100%;height:clamp(380px,45vw,640px);object-fit:cover}
/* header */
.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;padding-bottom:20px}
.logo img{height:76px;width:auto}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.nav a{color:var(--ink);text-decoration:none;padding-bottom:4px;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current=page]{color:var(--wine);border-bottom-color:var(--wine)}
.nav .cta{color:var(--wine);border-bottom-color:var(--wine)}
.lang{color:var(--muted)}.lang a{color:var(--muted);border:0}.lang b{font-weight:400;color:var(--ink)}
/* hero */
.hero{min-height:min(860px,100svh);color:var(--paper);display:flex;flex-direction:column;background:var(--ink);position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(43,38,32,.4),rgba(43,38,32,.6)),var(--hero-img,none) var(--hero-pos,center)/cover;opacity:0;transition:opacity .9s ease}
.hero.ready::before{opacity:1}
img[data-photo]{opacity:0;transition:opacity .6s ease}
img[data-photo].ready{opacity:1}
.hero .nav a,.hero .lang,.hero .lang a,.hero .lang b{color:var(--paper)}
.hero .nav a:hover,.hero .nav .cta{border-bottom-color:var(--paper)}
.hero .logo img{height:84px}
.hero-body{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:22px;padding-top:40px;padding-bottom:72px;width:100%}
.hero-body .eyebrow{color:var(--butter);letter-spacing:.32em}
.hero h1{font-size:clamp(54px,7.5vw,96px);line-height:.98;max-width:900px}
.hero h1 em{color:var(--paper)}
.hero a{color:var(--paper)}
/* press line */
.press-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:16px 56px;text-align:center;padding-top:64px;padding-bottom:64px}
.press-line a{font-family:var(--serif);font-style:italic;font-size:clamp(30px,3vw,40px);text-decoration:none}
/* grids */
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:start}
.trio>:nth-child(2){margin-top:120px}.trio>:nth-child(3){margin-top:40px}
.card{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--ink)}
.card .ph,.card img{height:clamp(320px,34vw,520px)}
.card-t{font-family:var(--serif);font-size:32px;line-height:1.1}
.card-t em{font-size:20px;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:48px;list-style:none;margin:0;padding:0}
.steps li{display:flex;flex-direction:column;gap:12px}
.steps .num{font-size:64px;line-height:1}
.steps b{font-family:var(--serif);font-weight:400;font-size:30px}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:40px}
.list li{display:flex;gap:28px;align-items:baseline}
.list .num{flex:0 0 56px;font-size:44px}
.list b{display:block;font-family:var(--serif);font-weight:400;font-size:32px;margin-bottom:6px}
.regions{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:40px 56px}
.regions b{display:block;font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.05}
.regions span{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--wine)}
.day{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px;align-items:end}
.day .media{grid-column:1/span 7;height:clamp(380px,45vw,640px)}
.day .text{grid-column:8/span 5}
.day.flip .media{grid-column:6/span 7;grid-row:1}
.day.flip .text{grid-column:1/span 5;grid-row:1;align-self:start;padding-top:120px}
.figures{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}
.figures b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(64px,7vw,96px);line-height:1;color:var(--wine)}
.figures span{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--muted)}
.press-list{display:flex;flex-direction:column;gap:44px}
.press-list>div{display:flex;flex-wrap:wrap;gap:12px 56px;align-items:baseline}
.press-list a{flex:0 1 460px;font-family:var(--serif);font-style:italic;font-size:clamp(36px,4vw,52px);line-height:1;text-decoration:none}
.press-list span{flex:1 1 360px;font-size:17px;line-height:1.7;color:var(--body)}
/* weddings */
.w-item{display:flex;flex-wrap:wrap;gap:48px 80px;align-items:flex-end;padding-bottom:140px}
.w-item:nth-child(even){flex-direction:row-reverse}
.w-item .w-media{flex:1 1 560px;min-width:0;text-decoration:none}
.w-item .w-media img,.w-item .w-media .ph{height:clamp(320px,38vw,560px)}
.w-item .w-text{flex:1 1 380px;min-width:0}
.gallery{columns:4;column-gap:16px}
.gallery .g{display:block;break-inside:avoid;margin:0 0 16px;cursor:zoom-in}
.gallery img{width:100%;height:auto;display:block;transition:opacity .3s}
.gallery .g:hover img{opacity:.88}
.g-day{border-top:1px solid var(--line);padding-top:56px;margin-top:24px;padding-bottom:72px}
.g-head{display:flex;align-items:baseline;gap:18px;margin-bottom:36px}
.g-num{font-family:var(--serif);font-style:italic;color:var(--wine);font-size:clamp(28px,3vw,40px);line-height:1}
.g-head .h-s{margin:0}
.lb{position:fixed;inset:0;z-index:100;background:rgba(43,38,32,.95);display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:86vh;width:auto;height:auto;display:block}
.lb button{position:absolute;background:none;border:0;color:var(--paper);font-size:44px;line-height:1;cursor:pointer;padding:12px 18px;font-family:var(--serif)}
.lb button:hover{color:var(--butter)}
.lb-x{top:12px;right:12px}
.lb-p{left:8px;top:50%;transform:translateY(-50%)}
.lb-n{right:8px;top:50%;transform:translateY(-50%)}
.lb-c{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:var(--butter);font-size:12px;letter-spacing:.2em}
@media (max-width:1100px){.gallery{columns:3}}
.rich p{margin:0 0 1em}.rich{font-size:18px;line-height:1.8;color:var(--body)}
details.more summary{cursor:pointer;list-style:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid currentColor;display:inline-block;padding-bottom:4px}details.more summary::-webkit-details-marker{display:none}details.more[open] summary{display:none}
.pic{position:relative;margin:0}.pic>img,.pic>video{width:100%;height:100%;object-fit:cover;display:block}video{max-width:100%;display:block}
.credit{position:absolute;right:12px;bottom:10px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.55);pointer-events:none}
.hero{position:relative}
.back{font-size:12px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
/* testimonials */
.t-list{display:flex;flex-direction:column;gap:120px}
.t-item{display:flex;flex-direction:column;gap:22px;max-width:900px}
.t-item:nth-child(even){align-self:flex-end}
/* form */
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px 48px}
.form label{display:flex;flex-direction:column;gap:4px}
.form .full-w{grid-column:1/-1}
.form .lbl{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.field{font:inherit;font-size:17px;padding:10px 0 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);outline:none;width:100%}
.field:focus{border-bottom-color:var(--wine)}
.field::placeholder{color:#A39B95}
textarea.field{resize:vertical;min-height:120px}
.err{font-size:13px;color:var(--wine);min-height:0}
.send{grid-column:1/-1;justify-self:start;font:inherit;font-size:13px;letter-spacing:.18em;text-transform:uppercase;background:none;color:var(--wine);border:0;border-bottom:1px solid currentColor;padding:0 0 6px;cursor:pointer}
.send:disabled{opacity:.5;cursor:default}
.thanks{font-family:var(--serif);font-style:italic;color:var(--wine);font-size:clamp(28px,3vw,40px);line-height:1.2}
.skel{background:var(--mist);height:56px;opacity:.6}
.busy{opacity:.6}
/* footer */
.site-footer{background:var(--wine);color:var(--paper)}
.site-footer .wrap{padding-top:72px;padding-bottom:32px;display:flex;flex-direction:column;gap:48px}
.f-cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}
.f-col{display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.5;max-width:340px}
.f-col a{color:var(--paper);text-decoration:none}
.f-col a:hover{text-decoration:underline;color:var(--paper)}
.f-lbl{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--butter)}
.f-tag{font-family:var(--serif);font-style:italic;font-size:24px}
.f-base{border-top:1px solid #6B3D49;padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12px;color:var(--butter)}
img[data-photo="about-name"]{object-fit:contain}
@media (max-width:760px){
.wrap{padding:0 20px}
.sec{padding-top:90px;padding-bottom:90px}
.trio>:nth-child(n){margin-top:0}
.day{display:flex;flex-direction:column;align-items:stretch;gap:28px}
.day .media{height:380px}
.day.flip .text{padding-top:0}
.gallery{columns:2;column-gap:10px}
.gallery .g{margin-bottom:10px}
.g-day{padding-top:40px;padding-bottom:48px}
.g-head{margin-bottom:24px}
.lb-p,.lb-n{top:auto;bottom:6px;transform:none}
.logo img,.hero .logo img{height:64px}
.t-list{gap:80px}
}
