:root { --ink:#183d31; --cream:#f7f2e7; --sand:#e9dfcf; --coral:#c95d41; --gold:#eca94b; --line:rgba(24,61,49,.18); }
* { box-sizing:border-box; } body { margin:0; font-family:Manrope,Arial,sans-serif; color:var(--ink); background:var(--cream); } button { font:inherit; cursor:pointer; } .eyebrow { margin:0 0 18px; font:600 10px/1.3 "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }.demo-back { color:inherit; text-decoration:none; font:600 10px/1 "DM Mono",monospace; letter-spacing:.09em; }.wedding-nav { height:72px; padding:0 clamp(22px,5vw,72px); display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }.wedding-nav>span { font:600 10px/1 "DM Mono",monospace; letter-spacing:.12em; }.ink-button { border:1px solid var(--ink); color:var(--cream); background:var(--ink); padding:13px 18px; font-size:12px; transition:.2s; }.ink-button:hover { background:var(--coral); border-color:var(--coral); }.wedding-hero { min-height:650px; display:grid; grid-template-columns:1fr 1fr; }.hero-wedding-copy { padding:clamp(70px,12vw,166px) clamp(28px,10vw,150px) 60px; display:flex; flex-direction:column; align-items:flex-start; }.wedding-hero h1,.wedding-page h2,.digital-menu-page h1,.digital-menu-page h2 { font:500 clamp(56px,7.5vw,118px)/.84 "Playfair Display",Georgia,serif; letter-spacing:-.07em; margin:0; }.wedding-hero h1 em,.wedding-page h2 em,.digital-menu-page h1 em,.digital-menu-page h2 em { font-weight:500; }.wedding-hero h1 em { display:block; font-size:.52em; margin:11px 0 4px 25%; }.hero-date { margin:32px 0 30px; font-size:13px; line-height:1.75; }.text-link { border:0; border-bottom:1px solid currentColor; color:var(--ink); padding:0 0 7px; background:transparent; font-size:12px; }.text-link b { margin-left:22px; }.feature-badge { display:flex; align-items:center; gap:7px; width:max-content; max-width:100%; margin:24px 0 0; padding:8px 13px; border:1px solid var(--line); border-radius:99px; font:500 11px "DM Mono",monospace; letter-spacing:.03em; color:#53665d; }.feature-badge:before { content:'✓'; color:var(--coral); }.wedding-image { margin:0; min-height:650px; overflow:hidden; }.wedding-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.75); }.intro-note { padding:130px max(22px,17vw); text-align:center; background:#eee5d6; }.intro-note .eyebrow { margin-bottom:28px; }.large-serif { max-width:750px; margin:0 auto 30px; font:500 clamp(28px,4vw,55px)/1.12 "Playfair Display",Georgia,serif; letter-spacing:-.045em; }.story-detail { max-width:560px; margin:0 auto 30px; font-size:14px; line-height:1.8; color:#53665d; }.intro-note span { font:italic 19px "Playfair Display",Georgia,serif; }.wedding-details { padding:clamp(70px,10vw,150px) clamp(22px,12vw,180px); display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }.wedding-details h2,.venue-copy h2 { font-size:clamp(44px,5vw,78px); }.timeline { border-top:1px solid var(--line); }.timeline article { display:grid; grid-template-columns:100px 1fr; padding:26px 0; border-bottom:1px solid var(--line); }.timeline time { font:500 11px "DM Mono",monospace; }.timeline h3 { margin:0 0 8px; font-size:16px; }.timeline p,.venue-copy>p { margin:0; color:#53665d; font-size:13px; line-height:1.7; }.wedding-faq { padding:clamp(70px,10vw,150px) clamp(22px,12vw,180px); background:#eee5d6; }.faq-heading { margin-bottom:50px; }.faq-heading h2 { font-size:clamp(44px,5vw,66px); }.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px 60px; }.faq-item h3 { margin:0 0 10px; font-size:16px; }.faq-item p { margin:0; color:#53665d; font-size:13px; line-height:1.7; }.venue-section { display:grid; grid-template-columns:1fr 1fr; min-height:510px; }.venue-map { position:relative; overflow:hidden; color:#f7f2e7; background:#315644; }.venue-map:before,.venue-map:after { content:""; position:absolute; border:1px solid rgba(247,242,231,.34); border-radius:50%; }.venue-map:before { width:510px; height:510px; top:-180px; left:-120px; }.venue-map:after { width:390px; height:390px; right:-125px; bottom:-165px; }.map-line { position:absolute; width:150%; height:1px; background:rgba(247,242,231,.3); transform:rotate(-29deg); }.line-one { left:-22%; top:36%; }.line-two { left:-20%; top:68%; transform:rotate(42deg); }.map-pin { position:absolute; z-index:2; top:43%; left:49%; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:var(--ink); background:var(--gold); font-size:26px; }.venue-map small { position:absolute; left:12%; bottom:11%; z-index:2; font:11px/1.7 "DM Mono",monospace; letter-spacing:.08em; }.venue-copy { padding:clamp(55px,10vw,135px) clamp(28px,10vw,130px); background:#e4d7c4; }.venue-copy>p { margin:25px 0; }.outline-button { padding:12px 17px; background:transparent; color:var(--ink); border:1px solid var(--ink); font-size:12px; }.wedding-footer { padding:90px 22px; display:flex; flex-direction:column; align-items:center; gap:26px; text-align:center; }.wedding-footer p { margin:0; font:italic clamp(23px,3vw,40px) "Playfair Display",Georgia,serif; }.rsvp-modal { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:20px; opacity:0; pointer-events:none; background:rgba(17,37,30,.58); transition:.25s; }.rsvp-modal.open { opacity:1; pointer-events:auto; }.rsvp-panel { position:relative; width:min(520px,100%); padding:50px; background:var(--cream); transform:translateY(16px); transition:.25s; }.rsvp-modal.open .rsvp-panel { transform:translateY(0); }.rsvp-panel h2 { font-size:48px; }.close-modal,.drawer-close { position:absolute; top:16px; right:18px; border:0; color:var(--ink); background:transparent; font-size:28px; }.rsvp-form { margin-top:28px; }.rsvp-form label,.form-label { display:block; margin:18px 0 8px; font:600 10px "DM Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }.rsvp-form input,.rsvp-form textarea { width:100%; padding:12px 0; border:0; border-bottom:1px solid var(--line); outline:0; color:var(--ink); background:transparent; font:13px Manrope,sans-serif; }.rsvp-form textarea { min-height:70px; resize:vertical; }.attendance-options { display:flex; gap:8px; }.attendance { padding:10px; border:1px solid var(--line); background:transparent; font-size:12px; }.attendance.is-selected { color:var(--cream); border-color:var(--ink); background:var(--ink); }.rsvp-form .ink-button { width:100%; margin-top:22px; }.rsvp-success { min-height:18px; margin:15px 0 0; color:var(--coral); font-size:12px; }.demo-toast { position:fixed; z-index:25; left:50%; bottom:28px; padding:12px 18px; color:white; background:var(--ink); transform:translate(-50%,100px); transition:.25s; font-size:12px; }.demo-toast.visible { transform:translate(-50%,0); }

/* Digital restaurant menu */
.digital-menu-page { background:#163d31; }.menu-shell { width:min(1100px,100%); min-height:100vh; margin:auto; background:#f8f1e4; }.menu-header { height:68px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(20px,4vw,50px); border-bottom:1px solid rgba(24,61,49,.15); }.cart-button { border:0; color:var(--ink); background:transparent; font:600 10px "DM Mono",monospace; letter-spacing:.07em; text-transform:uppercase; }.cart-count { display:inline-grid; place-items:center; width:19px; height:19px; margin-left:7px; border-radius:50%; color:var(--cream); background:var(--coral); }.menu-hero { min-height:365px; position:relative; padding:62px clamp(22px,7vw,85px); overflow:hidden; color:#fff9ed; background:#183d31; }.menu-hero>div { position:relative; z-index:2; max-width:390px; }.menu-hero .eyebrow { color:#f3c567; }.menu-hero h1 { font-size:clamp(65px,9vw,110px); }.menu-hero h1 em { display:block; margin-left:18%; }.menu-hero p:last-child { width:255px; margin-top:22px; font-size:13px; line-height:1.7; }.menu-hero .feature-badge { border-color:rgba(247,242,231,.28); color:#c8d6cd; }.menu-hero .feature-badge:before { color:var(--gold); }.menu-hero img { position:absolute; width:53%; height:100%; top:0; right:0; object-fit:cover; opacity:.75; mix-blend-mode:screen; filter:saturate(1.05); }.menu-content { padding:clamp(52px,8vw,90px) clamp(22px,7vw,85px) 75px; }.menu-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }.menu-intro h2 { font-size:clamp(49px,6vw,78px); }.allergen-note { margin:0 0 10px; text-align:right; color:#597167; font:10px/1.7 "DM Mono",monospace; }.menu-tabs { display:flex; gap:8px; overflow:auto; margin:50px 0 15px; padding-bottom:5px; }.menu-tabs button { flex:0 0 auto; padding:10px 14px; border:1px solid rgba(24,61,49,.24); border-radius:100px; color:var(--ink); background:transparent; font-size:12px; }.menu-tabs button.active { color:#fff9ed; background:var(--ink); }.menu-grid { border-top:1px solid var(--line); }.dish { display:grid; grid-template-columns:1fr auto; gap:20px; padding:25px 0; border-bottom:1px solid var(--line); transition:.25s; }.dish.hidden { display:none; }.dish-index { display:block; margin-bottom:10px; color:#b58b51; font:10px "DM Mono",monospace; }.dish h3 { margin:0; font:500 clamp(20px,2.6vw,29px)/1.1 "Playfair Display",Georgia,serif; letter-spacing:-.03em; }.dish h3 b { display:inline-block; margin-left:7px; padding:3px 5px; vertical-align:middle; border:1px solid #aeb9a5; border-radius:2px; color:#58705d; font:8px "DM Mono",monospace; }.dish p { max-width:510px; margin:8px 0 0; color:#5e7168; font-size:12px; line-height:1.65; }.dish-action { display:flex; align-items:center; gap:15px; }.dish-action strong { font:600 12px "DM Mono",monospace; }.dish-action button { width:31px; height:31px; border:1px solid var(--ink); border-radius:50%; color:var(--ink); background:transparent; font-size:20px; transition:.2s; }.dish-action button:hover { color:#fff9ed; background:var(--coral); border-color:var(--coral); }.menu-about { padding:clamp(60px,8vw,90px) clamp(22px,7vw,85px); background:#eee5d3; text-align:center; }.menu-about p:first-child { font:600 10px "DM Mono",monospace; letter-spacing:.12em; color:#a37a3f; margin:0 0 22px; text-transform:uppercase; }.menu-about p:last-child { max-width:620px; margin:0 auto; font-size:14px; line-height:1.8; color:#4a5850; }.menu-reviews { padding:clamp(60px,8vw,90px) clamp(22px,7vw,85px); background:#f8f1e4; }.menu-reviews-head { margin-bottom:45px; }.menu-reviews-head h2 { font-size:clamp(40px,5vw,60px); }.menu-reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }.menu-review { padding:24px; background:#eee5d3; border:1px solid var(--line); }.menu-review .stars { color:var(--gold); font-size:13px; letter-spacing:2px; margin:0 0 14px; }.menu-review p:not(.stars) { font-size:13px; line-height:1.65; margin:0 0 14px; color:var(--ink); }.menu-review span { font:10px "DM Mono",monospace; color:#7a8d80; letter-spacing:.05em; }.menu-footer { display:flex; justify-content:space-between; padding:22px clamp(22px,7vw,85px); color:#dcd4c6; background:#183d31; font:10px "DM Mono",monospace; letter-spacing:.06em; }.order-drawer { position:fixed; z-index:30; top:0; right:0; width:min(420px,100%); height:100%; display:flex; flex-direction:column; padding:31px; color:var(--ink); background:#f8f1e4; transform:translateX(105%); transition:.3s; }.order-drawer.open { transform:translateX(0); }.drawer-head { position:relative; display:flex; justify-content:space-between; padding-bottom:24px; border-bottom:1px solid var(--line); }.drawer-head h2 { font-size:45px; }.drawer-close { position:static; align-self:flex-start; }.cart-list { flex:1; padding:22px 0; overflow:auto; }.empty-cart { color:#62746c; font-size:13px; }.cart-row { display:flex; justify-content:space-between; gap:12px; margin-bottom:16px; font-size:13px; }.cart-row span { color:#63756d; font:11px "DM Mono",monospace; }.cart-total { display:flex; justify-content:space-between; padding:20px 0; border-top:1px solid var(--line); font:600 13px "DM Mono",monospace; }.order-button { width:100%; padding:15px; border:0; color:#fff9ed; background:var(--coral); font-size:12px; }.order-button b { margin-left:20px; }.order-message { min-height:18px; margin:14px 0 0; text-align:center; color:#597167; font-size:12px; }.drawer-backdrop { position:fixed; z-index:25; inset:0; opacity:0; pointer-events:none; background:rgba(10,28,22,.48); transition:.3s; }.drawer-backdrop.open { opacity:1; pointer-events:auto; }
@media (max-width:700px) { .wedding-nav>span { display:none; }.wedding-hero,.venue-section,.wedding-details { grid-template-columns:1fr; }.wedding-hero { min-height:0; }.hero-wedding-copy { min-height:500px; }.wedding-image { min-height:410px; }.intro-note { padding:85px 25px; }.wedding-details { gap:40px; }.timeline article { grid-template-columns:70px 1fr; }.wedding-faq { padding:70px 22px; }.faq-grid { grid-template-columns:1fr; gap:28px; }.venue-map { min-height:330px; }.menu-hero { min-height:405px; }.menu-hero img { width:80%; opacity:.45; }.menu-intro { align-items:flex-start; flex-direction:column; }.allergen-note { text-align:left; }.menu-footer { gap:12px; flex-direction:column; }.menu-about { padding:65px 22px; }.menu-reviews { padding:65px 22px; }.menu-reviews-grid { grid-template-columns:1fr; }.rsvp-panel { padding:42px 25px 28px; } }
.wedding-page a.ink-button { display:inline-block; text-decoration:none; }
.wedding-page a.text-link { display:inline-block; text-decoration:none; }
.menu-status { font:600 10px "DM Mono", monospace; letter-spacing:.1em; }
.dish > strong { align-self:center; font:600 12px "DM Mono", monospace; white-space:nowrap; }
