.booking{padding-block:clamp(2rem,1.5rem + 3vw,4rem)}.book-wrap{max-width:40rem}.book-head{text-align:center;margin-bottom:1.5rem}.book-head h1,.message h1{font-size:var(--step-3);letter-spacing:.06em;text-wrap:balance;margin:0}.lang-th .book-head h1,.lang-th .message h1,.lang-th .step-title,.lang-th .cal-title,.lang-th .summary-title{letter-spacing:0;font-family:Noto Serif Thai,serif;font-weight:500;line-height:1.5}.progress{margin-bottom:1.5rem}.progress-text{color:var(--cream-faint);font-size:var(--step--1);text-align:center;margin:0 0 .6rem}.progress ol{counter-reset:none;grid-template-columns:repeat(5,1fr);margin:0;padding:0;list-style:none;display:grid}.progress li{color:var(--cream-faint);text-align:center;flex-direction:column;align-items:center;gap:.3rem;font-size:.75rem;display:flex;position:relative}.progress li+li:before{content:"";background:var(--line);z-index:-1;width:100%;height:1px;position:absolute;top:.85rem;right:50%}.progress li.done+li:before,.progress li.done+li.current:before{background:var(--gold-500)}.progress .dot{border:1px solid var(--line);background:var(--emerald-900);border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;font-weight:700;display:grid}.progress li.done .dot{border-color:var(--gold-500);color:var(--gold-200)}.progress li.current{color:var(--gold-200);font-weight:700}.progress li.current .dot{background:var(--gold-gradient);color:var(--emerald-900);border-color:#0000;box-shadow:0 0 0 4px #c9a44c2e}.summary{margin-bottom:1.75rem;padding:1rem 1.15rem .6rem}.summary-title{color:var(--gold-500);font-size:var(--step--1);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin:0 0 .5rem}.summary dl,.booking-card{margin:0}.summary .row,.booking-card .row{border-top:1px solid #c9a44c26;grid-template-columns:minmax(5.5rem,auto) 1fr;align-items:baseline;gap:.75rem;padding:.55rem 0;display:grid}.summary .row:first-child,.booking-card .row:first-child{border-top:0}.summary dt,.booking-card dt{color:var(--cream-faint);font-size:var(--step--1)}.summary dd,.booking-card dd{color:var(--cream);justify-content:space-between;gap:.75rem;margin:0;display:flex}.summary dd>span{min-width:0}.summary dd a{min-height:44px;font-size:var(--step--1);flex:none;align-items:center;margin-block:-.7rem;display:inline-flex}.summary .price,.booking-card .price{font-family:var(--font-display);font-size:var(--step-1);font-weight:600}.step-title{color:var(--gold-200);font-size:var(--step-2);text-align:center;margin:0 0 1rem}.notice{border-left:3px solid var(--gold-500);background:#c9a44c1f;border-radius:6px;margin:0 0 1rem;padding:.75rem 1rem}.hint,.cal-hint{color:var(--cream-soft);font-size:var(--step--1);text-align:center;margin:0 0 1rem}.choices{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.choice{min-height:4.5rem;color:var(--cream);align-items:center;gap:1rem;padding:1.1rem 1.1rem 1.1rem 1.2rem;text-decoration:none;transition:border-color .2s,transform .2s,background .2s;display:flex}.choice:hover,.choice[aria-current]{border-color:var(--gold-500);color:var(--cream)}.choice:active{transform:scale(.99)}.choice-icon{flex:none}.choice-body{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.choice-title{color:var(--gold-200);font-family:var(--font-display);font-size:var(--step-1);line-height:1.25}.lang-th .choice-title{font-family:Noto Serif Thai,serif;font-weight:500}.choice-desc{color:var(--cream-soft);font-size:var(--step--1);line-height:1.5}.choice-meta{color:var(--gold-500);font-size:var(--step--1)}.choice .price{font-family:var(--font-display);font-size:var(--step-2);flex:none;font-weight:600}.chevron{border-top:2px solid var(--gold-500);border-right:2px solid var(--gold-500);flex:none;width:.6rem;height:.6rem;transform:rotate(45deg)}.cal{padding:.85rem .6rem 1rem}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.cal-title{color:var(--gold-200);font-size:var(--step-1);text-transform:capitalize;margin:0}.cal-arrow{border:1px solid var(--line);width:44px;height:44px;color:var(--gold-200);border-radius:50%;place-items:center;font-size:1.5rem;line-height:1;text-decoration:none;display:grid}.cal-arrow:hover{border-color:var(--gold-500)}.cal-arrow.is-disabled{opacity:.25}.cal-grid{border-collapse:separate;border-spacing:3px;table-layout:fixed;width:100%}.cal-grid th{color:var(--cream-faint);text-transform:uppercase;padding-bottom:.3rem;font-size:.75rem;font-weight:700}.cal-grid abbr{text-decoration:none}.cal-grid td{padding:0}.day{aspect-ratio:1;min-height:44px;color:var(--cream-faint);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:flex;position:relative}.day .num{line-height:1}.day .mark{border-radius:50%;width:.4rem;height:.4rem;margin-top:.3rem}.day.s-available{border:1px solid var(--gold-500);color:var(--cream);background:#c9a44c29}.day.s-available .mark{background:var(--gold-200)}.day.s-almost_full{border:1px dashed var(--gold-500);color:var(--cream);background:#c9a44c12}.day.s-almost_full .mark{border:1px solid var(--gold-200);background:linear-gradient(90deg, var(--gold-200) 50%, transparent 50%)}a.day:hover{color:var(--cream);background:#c9a44c4d}.day.s-full .num{text-decoration:line-through;-webkit-text-decoration-color:var(--gold-500);text-decoration-color:var(--gold-500)}.day.s-full{color:var(--cream-faint)}.day.s-closed,.day.s-unavailable{color:#f3ead74d;font-weight:400}.day.today .num{text-underline-offset:.2em;text-decoration:underline}.day.s-full.today .num{text-decoration:underline line-through}.cal-hint{margin-top:.75rem}.legend ul{color:var(--cream-soft);font-size:var(--step--1);grid-template-columns:repeat(2,max-content);justify-content:center;gap:.5rem 1.5rem;margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:.45rem;display:flex}.day.sample{border-radius:6px;width:1.9rem;min-height:0;font-size:.7rem}.day.sample .mark{width:.3rem;height:.3rem;margin-top:.15rem}.times{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.time{border:1px solid var(--gold-500);min-height:3.5rem;color:var(--cream);background:#c9a44c1f;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:.5rem;text-decoration:none;display:flex}.time:hover,.time[aria-current]{background:var(--gold-gradient);color:var(--emerald-900)}.time-start{font-size:var(--step-1);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2}.time-end{opacity:.8;font-size:.75rem}.empty-day{text-align:center;padding:1.5rem 1.25rem}.alert{background:#781e1459;border:1px solid #e0857a;border-left-width:4px;border-radius:10px;margin-bottom:1.25rem;padding:1rem 1.15rem}.alert:focus{outline:none}.alert-title{color:#ffd0c8;margin:0 0 .35rem;font-weight:700}.alert p{margin:0 0 .5rem}.alert ul{margin:0 0 .5rem;padding-left:1.2rem}.alert a:not(.btn){color:#ffd0c8}.alert .btn{margin-top:.4rem}.details{gap:1.15rem;display:grid}.field{gap:.35rem;display:grid}.field label{color:var(--gold-200);font-weight:700}.field .opt{color:var(--cream-faint);font-weight:400}.field input[type=text],.field input[type=tel],.field input[type=email],.field textarea{border:1px solid var(--line);width:100%;min-height:48px;color:var(--cream);font:inherit;background:#071d13b3;border-radius:10px;padding:.7rem .85rem;font-size:1rem}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--gold-200);outline-offset:0;outline:2px solid #e9d38c59}.field.invalid input,.field.invalid textarea{border-color:#e0857a}.field-hint{color:var(--cream-faint);font-size:var(--step--1);margin:0}.field-error{color:#ffb4a8;font-size:var(--step--1);margin:0;font-weight:700}.field.check{grid-template-columns:auto 1fr;align-items:start;column-gap:.75rem}.field.check input{width:1.4rem;height:1.4rem;accent-color:var(--gold-500);margin:.15rem 0 0}.field.check label{color:var(--cream);font-weight:400}.field.check .field-error{grid-column:1/-1}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.request-info{border:1px solid var(--line);color:var(--cream-soft);font-size:var(--step--1);border-radius:10px;margin:0;padding:.8rem 1rem}.btn.submit{width:100%;min-height:52px;font-size:var(--step-0)}.book-foot{border-top:1px solid #c9a44c26;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-top:2rem;padding-top:1rem;display:flex}.back{align-items:center;gap:.4rem;min-height:44px;font-weight:700;text-decoration:none;display:inline-flex}.call{color:var(--cream-soft);font-size:var(--step--1);margin:0 0 0 auto}.call a{white-space:nowrap;padding-block:.6rem;display:inline-block}.message{padding-block:clamp(2.5rem,2rem + 4vw,5rem)}.message-wrap{text-align:center;flex-direction:column;align-items:center;gap:.75rem;max-width:36rem;display:flex}.message .kicker{margin:.5rem 0 0}.message-body{width:100%;color:var(--cream-soft);margin-top:.75rem}.message-body>p{margin:0 0 1rem}.callout{border:1px solid var(--line);color:var(--cream);background:#c9a44c1a;border-radius:10px;padding:.9rem 1rem}.muted{color:var(--cream-faint);font-size:var(--step--1)}.muted a{white-space:nowrap}.booking-card{text-align:left;margin:.5rem 0 1.5rem;padding:.6rem 1.15rem}.booking-card.cancelled dd{color:var(--cream-faint);-webkit-text-decoration:line-through #c9a44c99;text-decoration:line-through #c9a44c99}.msg-actions{flex-direction:column;align-items:center;gap:.75rem;margin:.5rem 0 1.25rem;display:flex}.msg-actions form{display:contents}.msg-actions .btn{width:min(100%,22rem);min-height:52px}.btn-danger{background:linear-gradient(100deg,#f1c9a8,#e9d38c)}.btn-ghost{border:1px solid var(--line);width:min(100%,22rem);min-height:48px;color:var(--gold-200);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:.6em 1.4em;font-weight:700;text-decoration:none;display:inline-flex}.btn-ghost:hover{border-color:var(--gold-500)}.lang-th .btn-ghost{letter-spacing:.02em}@media (width>=560px){.progress li{font-size:var(--step--1)}.cal{padding:1.1rem 1.1rem 1.25rem}.cal-grid{border-spacing:5px}.legend ul{grid-template-columns:repeat(4,max-content)}}
