@font-face{font-family:Cormorant;src:url('/fonts/cormorant-garamond-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('/fonts/cormorant-garamond-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/fonts/dm-sans-latin.woff2') format('woff2');font-weight:100 1000;font-style:normal;font-display:swap}

:root{--cream:#f7f3e9;--paper:#eee8da;--wine:#54252f;--ink:#302b26;--muted:#6e695e;--olive:#727455;--gold:#c2aa77;--line:#d7d0c0;--serif:Cormorant,Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:32px}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
img{display:block;width:100%;height:auto}
svg{display:block}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400}
h2{font-size:clamp(46px,4.8vw,70px);line-height:1.04;letter-spacing:-1.8px}
h2 em{font-weight:400}
a:focus-visible{outline:2px solid var(--olive);outline-offset:7px}
.skip-link{position:absolute;top:-100px;left:20px;padding:10px 18px;background:var(--cream);color:var(--wine);z-index:100}
.skip-link:focus{top:12px}
.section-shell{width:min(1280px,calc(100% - 128px));margin-inline:auto}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:1.8px;text-transform:uppercase;line-height:1.6}

.site-header{height:106px;display:flex;align-items:center;justify-content:space-between;padding-inline:64px;max-width:1600px;margin:auto}
.wordmark{display:inline-flex;flex-direction:column;align-items:center;line-height:1;color:var(--wine)}
.wordmark-name{font-family:var(--serif);font-size:47px;letter-spacing:-2.8px;position:relative;padding-right:10px}
.wordmark-leaf{font-size:13px;position:absolute;right:-5px;top:9px;color:var(--olive)}
.wordmark-detail{font-size:9px;text-transform:uppercase;letter-spacing:3.5px;margin-top:5px;margin-left:2px}
.main-nav{display:flex;align-items:center;gap:36px;font-size:14px}
.main-nav>a:not(.nav-visit){text-underline-offset:6px}
.main-nav>a:not(.nav-visit):hover{text-decoration:underline}
.nav-visit{border:1px solid #b8aa9b;padding:11px 21px;transition:background .2s,border-color .2s}
.nav-visit:hover{background:var(--paper);border-color:var(--wine)}
.nav-visit span{display:inline-block;margin-left:25px;font-size:18px;line-height:1}

.hero{height:min(760px,calc(100svh - 106px));min-height:610px;position:relative;overflow:hidden;background:#e9dfbd;color:var(--wine)}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-image{object-position:60% 55%}
.hero-shade{background:linear-gradient(90deg,rgba(247,243,233,.55),rgba(247,243,233,.26) 35%,rgba(247,243,233,0) 70%)}
.hero-content{position:relative;margin-left:max(64px,calc((100% - 1280px)/2));padding-block:104px 85px;width:660px;max-width:calc(100% - 128px)}
.hero .eyebrow{color:#5d4a39;letter-spacing:2px}
.hero h1{font-size:clamp(78px,7.65vw,116px);line-height:.92;letter-spacing:-4px;margin:29px 0 28px}
.hero h1 em{color:var(--wine);font-weight:400;display:inline-block;white-space:nowrap}
.hero-description{font-size:17px;line-height:1.75;color:#4d3935}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:16px 23px;font-size:14px;font-weight:500;min-height:56px;transition:background .2s,transform .2s}
.button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.2}
.button-cream{background:var(--cream);color:var(--wine)}
.button-cream:hover{background:#e7ddc9;transform:translateY(-2px)}
.hero .button{margin-top:31px;background:var(--wine);color:var(--cream)}
.hero .button:hover{background:#40202a}

.welcome{display:grid;grid-template-columns:.8fr 1.2fr;gap:95px;align-items:center;padding-block:112px 80px}
.welcome-copy{max-width:380px}
.welcome .eyebrow{color:var(--olive);margin-bottom:25px}
.welcome h2{color:var(--wine);margin-bottom:26px;font-size:clamp(44px,4.7vw,66px)}
.welcome-copy>p:last-child{color:var(--muted);font-size:16px;line-height:1.85;max-width:350px}
.welcome-image{position:relative;background:var(--paper);padding:11px;border:1px solid #d1c6b0}
.welcome-image img{aspect-ratio:1;object-fit:cover}

.moments{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-block:12px 108px;align-items:start}
.moments figure{min-width:0}
.moments img{aspect-ratio:3/2;object-fit:cover;background:var(--paper)}
.moments figcaption{font-family:var(--serif);font-size:36px;line-height:1.3;color:var(--wine);margin-top:19px}
.moment-evening{margin-top:82px}

.visit{background:var(--wine);color:var(--cream)}
.visit-inner{display:grid;grid-template-columns:1fr 1.05fr;gap:85px;padding-block:86px;align-items:center}
.visit-image{padding:11px;background:var(--cream);transform:rotate(-2deg);box-shadow:4px 10px 25px #21061125}
.visit-image img{aspect-ratio:3/2;object-fit:cover}
.visit h2{font-size:clamp(46px,4.5vw,66px)}
.visit h2 em{color:#e8d0a5}
.visit-details{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:31px}
.visit-details h3{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:#dfc5a7;margin-bottom:13px}
.visit address{font-style:normal;font-size:14px;line-height:1.8;color:#eee4d9}
.phone-link{display:inline-block;font-size:14px;color:#eee4d9;border-bottom:1px solid #a7807c;margin-top:12px;padding-block:3px}
.hours{margin:0;font-size:14px;color:#eee4d9;line-height:1.65}
.hours>div{margin-bottom:10px}
.hours dt,.hours dd{margin:0}
.hours dd{white-space:nowrap}
.hours-note{font-size:12px;color:#d8c0ba;line-height:1.6;margin-top:14px}
.directions-button{margin-top:30px}

.site-footer{padding-block:31px 28px;font-size:12px;color:var(--muted)}
.footer-main,.footer-note{display:flex;justify-content:space-between;align-items:center;gap:20px}
.footer-main{color:var(--wine);font-size:13px}
.footer-main a{padding-block:5px;text-underline-offset:5px}
.footer-main a:hover{text-decoration:underline}
.footer-main a span{margin-left:8px}
.footer-note{margin-top:14px;font-size:11px}

@media(min-width:1600px){.hero{height:780px}.hero-content{padding-top:122px}}
@media(max-width:1150px){
  .section-shell{width:calc(100% - 88px)}
  .site-header{padding-inline:44px}
  .hero-content{margin-left:44px;max-width:calc(100% - 88px);padding-top:76px}
  .hero h1{font-size:clamp(72px,7.65vw,92px)}
  .welcome{gap:54px;padding-block:90px 65px}
  .welcome h2{font-size:50px}
  .welcome-copy>p:last-child{font-size:15px}
  .moments{gap:30px;padding-bottom:88px}
  .moment-evening{margin-top:65px}
  .visit-inner{gap:48px}
  .visit h2{font-size:49px}
  .visit-details{gap:22px}
  .visit address,.phone-link,.hours{font-size:13px}
}
@media(max-width:800px){
  .section-shell{width:calc(100% - 48px)}
  .site-header{height:92px;padding-inline:24px}
  .wordmark-name{font-size:43px}
  .main-nav{gap:25px;font-size:13px}
  .nav-visit{padding:10px 15px}
  .nav-visit span{margin-left:18px}
  .hero{height:670px;min-height:0}
  .hero-content{margin-left:32px;max-width:calc(100% - 64px);padding-top:54px}
  .hero h1{font-size:clamp(62px,9vw,76px)}
  .hero .eyebrow{font-size:11px}
  .hero-shade{background:linear-gradient(90deg,rgba(247,243,233,.55),rgba(247,243,233,.26) 52%,rgba(247,243,233,0))}
  .welcome{gap:35px;grid-template-columns:.9fr 1.1fr;padding-block:75px 56px}
  .welcome h2{font-size:45px}
  .welcome .eyebrow{font-size:11px;margin-bottom:19px}
  .welcome-copy>p:last-child{font-size:14px}
  .welcome-image{padding:8px}
  .moments{gap:24px;padding-bottom:75px}
  .moments figcaption{font-size:30px;margin-top:14px}
  .moment-evening{margin-top:52px}
  .visit-inner{gap:36px;padding-block:64px;grid-template-columns:.85fr 1.15fr}
  .visit h2{font-size:44px}
  .visit-details{grid-template-columns:1fr;gap:23px;margin-top:26px}
  .visit address,.phone-link,.hours{font-size:14px}
  .hours>div{display:flex;justify-content:space-between;gap:12px}
  .hours-note{margin-top:8px}
}
@media(max-width:600px){
  .section-shell{width:calc(100% - 40px)}
  .site-header{height:86px;padding-inline:21px}
  .wordmark-name{font-size:40px}
  .wordmark-detail{font-size:8px;letter-spacing:2.9px}
  .main-nav{gap:20px;font-size:13px}
  .nav-visit{padding:9px 12px}
  .nav-visit span{margin-left:10px}
  .hero{height:max(625px,162.5vw);background:#e9dfbd;color:var(--wine)}
  .hero-content{margin-left:25px;max-width:calc(100% - 46px);padding-top:42px}
  .hero-image{object-position:center bottom}
  .hero-shade{background:linear-gradient(180deg,rgba(247,243,233,.5),rgba(247,243,233,.18) 43%,rgba(247,243,233,0) 64%)}
  .hero .eyebrow{font-size:10px;letter-spacing:1.5px;color:#5d4a39}
  .hero h1{font-size:clamp(40px,16vw,85px);letter-spacing:-2.5px;margin-block:19px 18px;line-height:.95}
  .hero h1 em{color:var(--wine)}
  .hero-description{font-size:15px;line-height:1.6;color:#4d3935}
  .hero .button{margin-top:18px;background:var(--wine);color:var(--cream)}
  .hero .button:hover{background:#40202a}
  .button{padding:15px 20px;font-size:14px;gap:30px;min-height:54px}
  .welcome{grid-template-columns:1fr;gap:32px;padding-block:57px 35px}
  .welcome-copy{max-width:420px;padding-inline:4px}
  .welcome .eyebrow{font-size:11px;letter-spacing:1.6px;margin-bottom:20px}
  .welcome h2{font-size:clamp(43px,12.2vw,60px);letter-spacing:-1.5px;margin-bottom:21px}
  .welcome-copy>p:last-child{font-size:16px;line-height:1.8;max-width:none}
  .welcome-image{padding:8px}
  .moments{grid-template-columns:1fr;gap:35px;padding-block:0 55px}
  .moments figcaption{font-size:31px;margin-top:13px}
  .moment-evening{margin-top:0}
  .visit-inner{grid-template-columns:1fr;gap:39px;padding-block:53px 48px}
  .visit-copy{grid-row:1;padding-inline:4px}
  .visit h2{font-size:clamp(43px,12.4vw,60px);letter-spacing:-1.6px}
  .visit-details{grid-template-columns:1fr 1fr;gap:19px;margin-top:29px}
  .visit-details h3{font-size:11px;margin-bottom:12px}
  .visit address,.phone-link{font-size:13px}
  .hours{font-size:13px}
  .hours>div{display:block;margin-bottom:10px}
  .hours-note{font-size:11px;margin-top:11px}
  .directions-button{margin-top:27px}
  .visit-image{padding:9px;margin-inline:5px;transform:rotate(-1.5deg)}
  .site-footer{padding-block:23px 24px}
  .footer-main{font-size:12px;gap:15px}
  .footer-note{font-size:10px;gap:15px;margin-top:13px;align-items:flex-start}
  .footer-note>span:last-child{text-align:right}
}
@media(max-width:360px){
  .site-header{padding-inline:18px}
  .main-nav{gap:13px;font-size:12px}
  .nav-visit{padding:8px 10px}
  .nav-visit span{margin-left:7px}
  .hero-content{margin-left:22px;max-width:calc(100% - 44px)}
  .hero .eyebrow{font-size:9px;letter-spacing:1.2px}
  .visit-details{grid-template-columns:1fr;gap:22px}
  .hours>div{display:flex;gap:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.button:hover{transform:none}}
