.reservation-page{--wine:#8d101b;--gold:#b78336;--ink:#253040;background:#fbf8f0;color:var(--ink)}.reservation-page .container{width:min(1320px,calc(100% - 64px))}.reservation-hero{position:relative;background:#630912 url("/assets/images/reservations/hero.webp?v=07175478f74aa788bd629b2b28c5edd8b8d100a1") right 48%/65% auto no-repeat;min-height:388px;overflow:hidden;border-bottom:5px solid #c9a568}.reservation-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#790c14 0%,#790c14f2 33%,#790c14b8 46%,transparent 69%),url("/assets/images/thai-pattern.svg?v=1f5bdc1c4ae7877ad431301b0c071b0f1195b846") left top/420px;pointer-events:none}.reservation-hero-inner{position:relative;padding:44px 0 30px}.reservation-eyebrow{color:var(--gold);font-size:12px;font-weight:700;letter-spacing:2.5px;margin:0 0 7px}.reservation-hero .reservation-eyebrow{color:#f1cb82;letter-spacing:3px}.reservation-hero h1{font:700 clamp(38px,4.9vw,68px)/1.13 'Lora',serif;color:white;margin:10px 0}.reservation-hero h1 em{font-style:normal;color:#ffe8ab}.reservation-hero h2{font:500 25px 'Lora',serif;color:#fff5dc;margin:0 0 12px}.reservation-hero-copy>p:not(.reservation-eyebrow){font:18px/1.5 'Lora',serif;color:#fff3e5;margin:0}.hero-promises{display:flex;gap:46px;margin-top:23px;color:#fff1d5}.hero-promises>span{display:grid;text-align:center;font:15px 'Lora',serif;gap:7px}.hero-promises .icon{border:1px solid #efd58a;border-radius:50%;padding:12px;width:52px;height:52px;color:#ffe397;margin:auto}.hero-script{position:absolute;right:9%;top:45px;color:#fff7d9;font:27px/1.25 'Kaushan Script',cursive;transform:rotate(-8deg);text-shadow:0 2px 8px #000}.reservation-content{padding-top:20px}.booking-steps{display:flex;align-items:center;justify-content:center;gap:25px;padding:0 0 22px;font-size:14px;color:#795935}.booking-steps b{display:inline-grid;place-items:center;width:25px;height:25px;background:var(--wine);color:white;border-radius:50%;margin-right:8px}.booking-steps i{height:1px;flex:0 1 80px;background:#d8c6a6}.reservation-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}.reservation-card{background:linear-gradient(135deg,#fffffffa,#fffdf7f0);border:1px solid #e7d9bc;border-radius:10px;padding:28px 30px;box-shadow:0 7px 24px #5e43110a;min-width:0}.reservation-card h2,.reservation-welcome h2{font:700 34px/1.2 'Lora',serif;color:var(--wine);margin:0 0 9px}.section-intro{font-size:15px;color:#667078;line-height:1.5;margin:0 0 22px}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.booking-schedule{grid-template-columns:1.1fr 1fr .9fr;margin-top:0}.booking-fields label,.food-filters label{font-size:13px;font-weight:600;display:grid;gap:7px;min-width:0;position:relative}.booking-fields label>span{color:var(--wine);position:absolute;right:0}.booking-fields label small{font-weight:400;color:#77828a;position:absolute;left:110px}.booking-fields .full{grid-column:1/-1}.reservation-page input,.reservation-page select,.reservation-page textarea{width:100%;min-width:0;border:1px solid #d7d4cd;background:#fff;border-radius:5px;padding:11px 12px;color:var(--ink);font:15px 'Barlow',sans-serif;min-height:44px}.reservation-page input:focus,.reservation-page select:focus,.reservation-page textarea:focus{outline:2px solid #b7833680;outline-offset:2px;border-color:#b78336}.reservation-page textarea{resize:vertical}.field-note{font-size:12px;line-height:1.5;color:#737a80;margin:10px 0}.booking-calendar{margin:15px 0 7px;padding:13px 16px 5px;background:#fcf8ef;border:1px solid #ede1cc;border-radius:7px}.calendar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font:600 17px 'Lora',serif;color:#825d25}.calendar-heading button{background:white;border:1px solid #ddc7a2;border-radius:5px;font-size:24px;line-height:1;width:32px;height:30px;color:#926222;cursor:pointer}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-weekdays{font-size:11px;color:#92908a;margin-bottom:5px}.calendar-days button{border:1px solid transparent;background:transparent;display:grid;gap:1px;padding:5px 0;border-radius:5px;color:#293640;cursor:pointer;font:600 13px 'Barlow',sans-serif;min-height:34px}.calendar-days small{font-size:9px;font-weight:400;color:#84837f}.calendar-days button.selected{background:var(--wine);color:#fff}.calendar-days button.selected small{color:#fce1b5}.calendar-days button:disabled{opacity:.35;cursor:default}.calendar-days button:not(:disabled):hover{border-color:#bd8b3f}.hospitality-note{display:flex;gap:15px;background:#f7eddc;padding:15px 18px;border-radius:6px;margin-top:20px}.hospitality-note>.icon{color:#9d722e;width:29px;height:29px;flex-shrink:0;margin-top:5px}.hospitality-note strong{font:600 14px 'Lora',serif;color:#8d101b}.hospitality-note p{font-size:13px;line-height:1.5;margin:5px 0 0}.hospitality-note a{text-decoration:underline}.table-legend{display:flex;gap:18px;justify-content:center;font-size:12px;flex-wrap:wrap;margin:0 0 19px}.table-legend span{display:flex;align-items:center;gap:6px}.table-legend i{width:13px;height:13px;border-radius:50%;background:#497439}.table-legend .selected{background:#a71824}.table-legend .reserved{background:#959794}.table-legend .vip{background:#c59628}.dining-room{border:8px solid #d7c29d;border-radius:3px;background:repeating-linear-gradient(0deg,transparent 0 63px,#ab906112 64px 65px),linear-gradient(100deg,#f4e7d0,#fff9e8 45%,#ebd9b7);padding:17px 29px 14px;position:relative;box-shadow:inset 0 0 20px #74502b2b}.garden-label{display:flex;align-items:center;justify-content:space-between;font:600 10px 'Lora',serif;letter-spacing:2px;color:#626c3f;border-bottom:1px solid #a49b71;padding-bottom:13px;margin-bottom:18px}.garden-label>span{font-size:31px;line-height:20px;color:#49662c}.room-plants{position:absolute;inset:24px 3px 34px;pointer-events:none;background:radial-gradient(ellipse at center,#49753c 0 12%,#798642 14% 21%,transparent 23%) left top/18px 97px repeat-y,radial-gradient(ellipse at center,#49753c 0 12%,#798642 14% 21%,transparent 23%) right top/18px 107px repeat-y}.table-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:31px 26px;padding:9px 0 14px}.dining-table{--table:#547a38;position:relative;isolation:isolate;border:3px solid #ae8050;border-radius:6px;background:linear-gradient(130deg,#ffffff28,transparent 50%),var(--table);box-shadow:inset 0 0 0 2px #d2b16e60,0 3px 5px #34290733;min-width:0;aspect-ratio:1/1;cursor:pointer;color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;transition:transform .15s;font:700 19px 'Lora',serif}.dining-table:before,.dining-table:after{content:'';position:absolute;z-index:-1;background:linear-gradient(90deg,#96683e,#c89958,#8d6038);border:1px solid #83603e;border-radius:3px}.dining-table:before{width:60%;height:calc(100% + 20px);top:-10px;left:20%;z-index:-2}.dining-table:after{width:calc(100% + 16px);height:52%;left:-8px;top:24%;z-index:-2}.dining-table .table-surface{position:absolute;inset:0;background:linear-gradient(130deg,#ffffff24,transparent 65%),var(--table);border-radius:2px;z-index:-1}.dining-table small{font:9px 'Barlow',sans-serif;opacity:.95}.dining-table.vip{--table:#c1962b}.dining-table[aria-pressed=true]{--table:#a51924;outline:2px solid #a51924;outline-offset:5px}.dining-table.reserved{--table:#999b94}.dining-table.too_small,.dining-table.unavailable{--table:#c4baa7;color:#4c4b41}.dining-table:disabled{cursor:not-allowed}.dining-table:not(:disabled):hover{transform:translateY(-3px)}.room-entrance{display:flex;justify-content:space-between;color:#6e5e44;font-size:9px;letter-spacing:1px;margin-top:15px}.selected-table{border:1px solid #e6d5b9;border-radius:5px;margin-top:20px;padding:13px 12px;background:#fcf6e9;text-align:center;font-weight:600;color:#865c28}.text-action{background:none;border:0;color:var(--wine);font:600 14px 'Barlow',sans-serif;cursor:pointer;padding:7px 0;text-decoration:underline;text-underline-offset:4px}.preorder-section{margin-top:20px}.preorder-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.optional-badge{color:#a27633;font-size:10px;letter-spacing:1.5px;white-space:nowrap;padding:9px 12px;border:1px solid #deccac;border-radius:4px}.payment-notice{background:#fff5e0;padding:12px 16px;border-left:3px solid #b78336;font-size:14px;color:#715a36}.food-filters{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin:18px 0}.reservation-menu{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.preorder-dish{border:1px solid #e9e0d1;border-radius:6px;overflow:hidden;background:white;display:flex;flex-direction:column}.preorder-dish img{aspect-ratio:1.75;object-fit:cover;width:100%;display:block}.preorder-dish .dish-copy{padding:12px;flex:1;display:flex;flex-direction:column}.preorder-dish h3{font:600 16px 'Lora',serif;margin:0 0 4px;color:#3a3026}.preorder-dish p{font-size:12px;color:#7b7d7d;margin:0 0 10px;line-height:1.4}.preorder-dish .dish-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}.dish-bottom strong{font-size:17px;color:var(--wine)}.dish-bottom button{background:#fff7e9;border:1px solid #c9a56c;border-radius:4px;padding:7px 10px;color:#7c511e;cursor:pointer;font-weight:600}.checkout-section{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;margin-top:20px}.booking-summary{color:#667078;font-size:15px}.checkout-totals>div{display:flex;justify-content:space-between;padding:8px 0;font-size:15px}.checkout-totals .grand-total{border-top:1px solid #e4d7c3;margin-top:8px;padding-top:16px;font-size:22px;color:var(--wine);font-weight:600}.checkout-totals .button{width:100%;margin-top:10px;background:linear-gradient(100deg,#850f19,#a81421);justify-content:space-between;padding:15px 20px}.booking-consent{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.4;margin-top:15px}.booking-consent input{width:16px;min-height:16px;flex-shrink:0;accent-color:#8d101b;margin-top:2px}.secure-note{font-size:11px;color:#8d8c83;text-align:center}.cart-item{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px solid #eee4d6;padding:12px 0;font-size:14px}.cart-item small{display:block;color:#858279;font-size:12px}.quantity-controls{display:flex;align-items:center;gap:10px;margin-top:7px}.quantity-controls button{width:25px;height:25px;display:grid;place-items:center;border:1px solid #ddc9a7;background:#fffaf0;border-radius:4px;cursor:pointer;color:#8d101b}.quantity-controls .remove-dish{width:auto;background:none;border:none;font-size:11px;text-decoration:underline}.booking-error{padding:10px 12px;background:#fff0ef;color:#9c1320;border-radius:5px;font-size:14px}.reservation-welcome{text-align:center;padding:35px 0 25px}.reservation-welcome h2{font-size:29px}.welcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.welcome-grid article{background:#fffaf4aa;border:1px solid #e0c69f;border-radius:6px;padding:22px 16px}.welcome-grid .icon{color:#a37a38;width:29px;height:29px;margin-bottom:10px}.welcome-grid h3{font:600 17px 'Lora',serif;color:var(--wine);margin:0 0 10px}.welcome-grid p{font-size:14px;color:#707577;line-height:1.5;margin:3px 0}.welcome-script{font:25px 'Kaushan Script',cursive;color:#a78453;margin:22px 0 0}.food-options-dialog{border:1px solid #dec6a2;border-radius:12px;padding:28px;width:min(480px,calc(100% - 32px));max-height:90dvh;color:var(--ink);background:#fffdf8}.food-options-dialog::backdrop{background:#23180dcc;backdrop-filter:blur(4px)}.food-options-dialog h2{font:700 27px 'Lora',serif;color:var(--wine);padding-right:20px}.food-options-dialog fieldset{border:1px solid #e6d3b5;border-radius:6px;margin:20px 0;padding:15px}.food-options-dialog legend{font-weight:600;padding:0 5px}.food-options-dialog label{display:flex;gap:9px;padding:7px 0;align-items:center;font-size:15px}.food-options-dialog input{width:16px;min-height:16px;accent-color:#8d101b}.food-options-dialog .button{width:100%}.food-options-dialog .dialog-close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:29px;color:#8d101b;cursor:pointer}.booking-result{margin-bottom:20px;border:2px solid #b48b41;text-align:center;padding:30px}.booking-result .result-reference{letter-spacing:2px;color:#a67b36;font-weight:600}.booking-result .result-details{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;margin:20px 0}.booking-result .result-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:20px 0 0}.booking-result .result-actions button{cursor:pointer}.reservation-page [hidden]{display:none!important}#reserve-submit:disabled{opacity:.6;cursor:wait}#reservation-loading{padding:25px;text-align:center}.reservation-page button:focus-visible{outline:3px solid #ba892e;outline-offset:3px}

@media(max-width:1100px){.reservation-page .container{width:calc(100% - 36px)}.reservation-card{padding:22px}.table-map{gap:29px 23px}.dining-room{padding:16px 22px}.reservation-card h2{font-size:29px}.reservation-hero h1{font-size:48px}.hero-script{right:4%;font-size:23px}.hero-promises{gap:30px}}
@media(max-width:800px){.reservation-layout{grid-template-columns:1fr}.reservation-hero{background-size:cover;background-position:center;min-height:340px}.reservation-hero:before{background:linear-gradient(90deg,#790c14f5,#790c14bc 50%,#24110a55)}.hero-script{display:none}.reservation-hero-inner{padding:34px 0}.reservation-hero h1{font-size:46px}.reservation-hero h2{font-size:22px}.table-map{gap:33px 34px;max-width:460px;margin:auto}.dining-table{aspect-ratio:1.15}.dining-room{max-width:570px;margin:auto}.reservation-menu{grid-template-columns:repeat(3,minmax(0,1fr))}.checkout-section{grid-template-columns:1fr;gap:20px}.welcome-grid{gap:12px}.booking-steps{gap:12px;font-size:12px}.booking-steps i{flex-basis:20px}.optional-badge{display:none}}
@media(max-width:540px){.reservation-page .container{width:calc(100% - 24px)}.reservation-hero h1{font-size:39px}.reservation-hero h2{font-size:19px}.reservation-hero-copy>p:not(.reservation-eyebrow){font-size:15px}.reservation-hero .reservation-eyebrow{font-size:10px;letter-spacing:1.8px}.hero-promises{gap:28px}.hero-promises>span{font-size:12px}.hero-promises .icon{width:44px;height:44px;padding:10px}.reservation-card{padding:20px 16px}.reservation-card h2{font-size:29px}.booking-steps{align-items:flex-start;gap:12px;text-align:center}.booking-steps span{flex:1;display:grid;justify-items:center;gap:6px;line-height:1.3}.booking-steps b{margin:0}.booking-steps i{display:none}.booking-fields{gap:13px}.booking-schedule{grid-template-columns:1fr 1fr}.booking-schedule>label:first-child{grid-column:1/-1}.booking-fields:not(.booking-schedule)>label{grid-column:1/-1}.booking-calendar{padding:12px 8px 5px}.table-legend{gap:12px;font-size:11px}.table-map{gap:26px 20px;padding:5px 0 10px}.dining-room{padding:14px 14px 12px;border-width:6px}.dining-table{font-size:15px;aspect-ratio:1;border-width:2px}.dining-table small{font-size:8px}.garden-label{letter-spacing:1px;font-size:9px}.room-entrance{font-size:7px;letter-spacing:.5px}.reservation-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.preorder-dish .dish-copy{padding:10px}.preorder-dish h3{font-size:14px}.preorder-dish p{font-size:11px}.dish-bottom strong{font-size:15px}.dish-bottom button{padding:6px 8px;font-size:12px}.food-filters{gap:10px;grid-template-columns:1fr}.welcome-grid{grid-template-columns:1fr}.reservation-welcome h2{font-size:25px}.welcome-grid article{padding:20px}.welcome-script{font-size:21px}.calendar-days button{min-height:35px}.booking-result .result-details{gap:10px;flex-direction:column}}
@media(max-width:540px){.reservation-page .brand{min-width:0;flex:1}.reservation-page .brand span{min-width:0}.reservation-page .mobile-toggle{flex-shrink:0;margin-left:auto}.reservation-page .hero-promises{gap:24px}}
.dining-room-photo{margin:20px 0 24px;overflow:hidden;border:1px solid #dec6a2;border-radius:10px;background:#fff9ef}
.dining-room-photo img{display:block;width:100%;height:auto}
.dining-room-photo figcaption{padding:13px 17px;text-align:center;color:#8a623a;font-size:16px;line-height:1.5}
.dining-table-picker label{display:block;font-size:17px;color:var(--wine);margin-bottom:7px}
.dining-table-picker .field-note{margin:0 0 10px}
.dining-table-select{display:block;width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid #d8c6a7;border-radius:6px;background:#fffdf8;color:#3c3025;font:inherit;font-size:16px}
.dining-table-select:focus-visible{outline:3px solid #ba892e;outline-offset:3px}
.dining-table-select:disabled{opacity:.65;cursor:not-allowed}
@media(prefers-reduced-motion:reduce){.reservation-page *{scroll-behavior:auto!important;transition:none!important}}

/* Real restaurant photos and direct Clover ordering. */
.dining-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:20px; }
.dining-photos .dining-room-photo { margin:0; padding:5px; border-color:#bc8738; }
.dining-photos .dining-room-photo img { height:100%; min-height:150px; object-fit:cover; border-radius:5px; }
.reservation-clover-notice { background:#fff4df; border-left:4px solid #ad7437; padding:18px 20px; margin:20px 0; text-align:left; }
.reservation-clover-notice h3 { color:#871323; font-size:21px; margin:0 0 10px; }
.reservation-clover-notice p { font-size:16px; line-height:1.7; margin:8px 0; }
.reservation-clover-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.reservation-clover-actions .button { white-space:normal; text-align:center; }
.table-section { align-self:start; }
/* 1 to 5 photos: the first is wide, the rest sit in pairs, and a last photo left alone also spans the full width. */
.dining-photos .dining-room-photo:first-child, .dining-photos .dining-room-photo:last-child:nth-child(even) { grid-column:1 / -1; }
@media(min-width:801px) { .dining-photos .dining-room-photo img { aspect-ratio:4 / 3; } .dining-photos .dining-room-photo:first-child img, .dining-photos .dining-room-photo:last-child:nth-child(even) img { aspect-ratio:2.2; } }
@media(max-width:540px) { .dining-photos { gap:10px; } .dining-photos .dining-room-photo img { aspect-ratio:1; min-height:0; } .reservation-clover-actions .button { width:100%; } }
