:root{--ink:#202420;--muted:#868782;--line:#e3e3dc;--cream:#f6f6f1;--white:#fff;--green:#758c67;--deep:#5d6966;--accent:#d2dfc2;--beige:#ddd0ba;--shadow:0 24px 75px rgba(30,36,24,.045)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);font-family:Inter,'Noto Sans TC','PingFang TC','Microsoft JhengHei',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #91b77f;outline-offset:3px}.topbar{min-height:120px;max-width:1512px;margin:auto;padding:24px clamp(25px,5vw,88px);display:flex;align-items:center;justify-content:space-between;gap:25px}.wordmark{display:inline-flex;align-items:center}.logo-image{display:block;height:124px;width:auto;max-width:min(50vw,500px)}.topbar nav{display:flex;gap:35px;font-size:12px;font-weight:600;letter-spacing:.03em}.topbar nav a:hover{color:var(--green)}.kicker{font-size:11px;font-weight:800;letter-spacing:.22em;color:var(--green)}.booking-area{max-width:1400px;margin:auto;padding:28px clamp(24px,6vw,86px) 116px}.booking-entry{padding-top:6px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:35px;gap:20px}.section-head.compact{padding:0 0 6px;border-bottom:1px solid var(--line);margin-bottom:28px}.section-head h2{font-size:clamp(32px,4vw,46px);font-weight:550;letter-spacing:.035em;margin:18px 0 0}.section-head p{color:var(--muted);font-size:13px;line-height:1.9;margin:0}.booking-grid{display:grid;grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);gap:22px;align-items:start}.booking-card{background:white;box-shadow:var(--shadow);border:1px solid #e9e9e3;padding:37px 36px 40px;border-radius:3px}.step-title{display:flex;align-items:center;gap:15px;margin-bottom:30px}.step-num{width:43px;height:43px;border:1px solid #d6ddd0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--green);font-weight:750}.step-title h3{font-size:18px;font-weight:650;letter-spacing:.02em;margin:0 0 5px}.step-title p{font-size:12px;color:var(--muted);margin:0}.duration-label{display:flex;align-items:baseline;justify-content:space-between;font-size:13px;font-weight:650;margin-bottom:13px}.duration-label small{color:var(--muted);font-weight:400}.duration-buttons{display:flex;gap:8px;flex-wrap:wrap}.duration{background:var(--cream);border:1px solid transparent;color:#50574d;border-radius:4px;padding:12px 14px;font-size:12px;font-weight:550;flex:1;min-width:78px;transition:.15s}.duration:hover{border-color:var(--green)}.duration.selected{background:var(--deep);color:#fff}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-top:39px;margin-bottom:19px}.calendar-header strong{font-size:18px;letter-spacing:.03em}.month-controls{display:flex;gap:8px}.month-controls button{width:36px;height:36px;font-size:26px;line-height:1;border:1px solid var(--line);background:white;border-radius:50%;color:#42453e}.month-controls button:disabled{opacity:.3;cursor:not-allowed}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{margin-bottom:10px}.weekdays span{text-align:center;color:#93988d;font-size:11px;font-weight:650;padding:9px 0}.day{min-height:62px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px solid transparent;background:#f6f8f3;border-radius:3px;transition:background .15s,box-shadow .15s;position:relative}.day-number{font-size:15px;font-weight:620}.day small{color:#6e8b67;font-size:9px}.day.off{background:#f8f8f6;color:#bdbfba;cursor:default}.day.off small{color:#bdbfba}.day.other{background:transparent;cursor:default}.day:not(.off):hover{background:#e1eadb}.day.active{background:var(--deep);color:white}.day.active small{color:#d3e7c8}.day.loading{opacity:.6;cursor:wait}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;color:#8b8d85;font-size:10px;margin-top:18px}.calendar-legend span{display:flex;align-items:center;gap:7px}.legend{display:block;width:8px;height:8px;border-radius:50%}.legend.available{background:#8da97c}.legend.full{background:#d5d6ce}.legend.selected{background:#303d31}.date-selection{margin-top:35px;padding-top:24px;border-top:1px solid var(--line)}.slot-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.slot-head strong{font-size:14px}.slot-head span{color:var(--muted);font-size:12px}.time-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:20px}.time-slots .muted,.time-slots .loading-message{grid-column:1/-1}.muted{color:#8b8f84;font-size:12px;line-height:1.8}.time-slot{padding:13px 4px;background:#f6f8f3;border:1px solid #eef0e9;border-radius:3px;color:var(--ink);font-size:13px;font-weight:620}.time-slot:hover{border-color:#9eb38f}.time-slot.active{background:var(--deep);border-color:var(--deep);color:#fff}.right-col{display:flex;flex-direction:column;gap:22px}.summary{background:#f0f3e9;padding:21px 23px 15px;margin-bottom:25px}.summary-title{font-size:10px;letter-spacing:.15em;color:var(--green);font-weight:800;padding-bottom:13px;border-bottom:1px solid #d9dfd3}.summary-row{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;padding:12px 0}.summary-row span{color:#7e857a}.summary-row strong{font-weight:650;text-align:right}.contact-card label{display:block;font-size:12px;font-weight:600;margin:14px 0;color:#4f554d}.contact-card label>span:not(.optional){color:var(--green)}.contact-card input:not([type="checkbox"]),.contact-card textarea,.contact-card select{display:block;width:100%;border:1px solid #e2e5dc;background:#fbfcf9;margin-top:9px;padding:13px 12px;border-radius:2px;font-size:13px;color:var(--ink);outline-color:#a6c097}.contact-card input::placeholder,.contact-card textarea::placeholder{color:#a6aaa1}.contact-card .optional{color:var(--muted);font-weight:400}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-row{display:flex!important;gap:11px;align-items:flex-start;color:#818680!important;font-size:11px!important;line-height:1.75;margin:24px 0!important;font-weight:400!important}.check-row input{accent-color:#5f7954;margin-top:3px;flex:none}.primary-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:var(--deep);color:white;padding:18px 22px;border-radius:2px;font-size:13px;font-weight:650;letter-spacing:.06em}.primary-button:hover{background:#476046}.primary-button:disabled{background:#bac1b4;cursor:not-allowed}.primary-button span:last-child{font-size:18px}.form-note{font-size:11px;color:#979b92;line-height:1.8;margin:14px 0 0}.honey{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}.error-line{color:#a63735;background:#fff1f1;border:1px solid #f1cece;font-size:12px;padding:12px;line-height:1.65;margin-top:16px}.success-panel{padding:20px 0;text-align:center}.success-panel h3{font-size:23px;font-weight:600}.success-panel p{font-size:13px;line-height:1.8;color:#6e776b}.success-symbol{width:60px;height:60px;border-radius:50%;background:#e8f1e1;color:#4d7245;display:grid;place-items:center;font-size:28px;margin:0 auto 20px}.success-panel strong{display:block;font-size:22px;letter-spacing:.08em;margin:20px 0;padding:18px;border:1px solid #d5dfcd;background:#f8faf5;word-break:break-all}.outline-button{background:white;border:1px solid #9ea999;padding:13px 23px;font-size:12px}.help-card{background:#e7ece0;padding:34px 36px}.help-card h3{font-size:20px;font-weight:550;margin:15px 0}.help-card p{font-size:12px;color:#798274;line-height:1.8}.help-card a{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #aebca7;padding:13px 0 9px;margin-top:23px;font-size:12px;font-weight:750}.notes-strip{display:flex;justify-content:space-between;align-items:center;padding:30px clamp(24px,6vw,95px);border-top:1px solid var(--line);font-size:11px;letter-spacing:.15em;color:#889184}footer{background:#202820;color:#c4ccbe;padding:35px clamp(24px,6vw,95px);display:flex;justify-content:space-between;font-size:11px;gap:16px;letter-spacing:.04em}@media(max-width:1060px){.logo-image{height:104px}.booking-grid{grid-template-columns:1fr 1fr;gap:14px}.booking-card{padding:28px 22px}.time-slots{grid-template-columns:repeat(3,1fr)}.duration{min-width:70px}.booking-area{padding-left:3%;padding-right:3%}}@media(max-width:750px){.topbar{padding:18px 16px;min-height:auto;align-items:flex-start;flex-direction:column}.logo-image{height:86px;max-width:75vw}.topbar nav{gap:15px}.topbar nav a:first-child{display:none}.booking-area{padding:24px 17px 68px}.section-head{display:block}.section-head p{margin:15px 0 0}.booking-grid{grid-template-columns:1fr;gap:15px}.booking-card{padding:28px 20px}.time-slots{grid-template-columns:repeat(4,1fr)}.day{min-height:53px}.day-number{font-size:13px}.day small{font-size:8px}.notes-strip{font-size:9px;gap:15px}.notes-strip span:last-child{display:none}}@media(max-width:380px){.time-slots{grid-template-columns:repeat(3,1fr)}.form-row{grid-template-columns:1fr;gap:0}.duration{font-size:11px;min-width:60px;padding:11px 6px}.calendar-legend{gap:8px}.logo-image{height:72px}}

/* TRC v3: always-on booking & clear payment terms */
.booking-terms{background:#f1f3ee;border-left:4px solid #5d6966;padding:16px 18px;margin:22px 0 18px;color:#34423c}.booking-terms strong{display:block;font-size:13px;letter-spacing:.03em}.booking-terms p{font-size:12px;line-height:1.9;margin:8px 0 0}.booking-entry .section-head h2{margin-top:8px}.contact-card input[name="referrer"]{background:#fff}.summary-row:last-child{border-top:1px solid #d9dfd3}.time-slots{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:420px){.time-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Version 4: PDF catalog, variable length slider and price estimate */
.catalog-banner{display:flex;align-items:center;gap:22px;background:#56625e;color:#fff;padding:22px 27px;border-radius:4px;margin-bottom:27px;transition:background .18s;box-shadow:0 13px 31px rgba(25,41,33,.11)}.catalog-banner:hover{background:#45534e}.catalog-icon{width:55px;height:55px;display:grid;place-items:center;border:1px solid #c8cfca77;font-size:33px;font-weight:200;flex:none;color:#e7dbc6}.catalog-copy{display:flex;flex-direction:column;gap:5px;flex:1}.catalog-copy strong{font-size:17px;letter-spacing:.03em}.catalog-copy small{color:#d2dbd3;font-size:12px}.catalog-action{font-size:12px;border:1px solid #a7b7ab8f;padding:12px 17px;border-radius:2px;white-space:nowrap}
.duration-label{display:block!important}.duration-label label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:650}.duration-value{font-size:22px;color:#4f655a;font-weight:750;letter-spacing:-.02em}.duration-label small{display:block;margin-top:7px;font-size:11px}.duration-picker{display:flex;align-items:center;gap:13px;background:#f5f7f2;padding:16px 14px 12px;border-radius:6px}.duration-picker input[type=range]{appearance:none;-webkit-appearance:none;flex:1;height:7px;border-radius:999px;background:linear-gradient(to right,#667b6a 0%,#667b6a var(--range,0%),#d9dfd6 var(--range,0%),#d9dfd6 100%);cursor:pointer;min-width:0}.duration-picker input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#53675c;border:4px solid #eef1e9;box-shadow:0 1px 5px #24332455}.duration-picker input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#53675c;border:4px solid #eef1e9}.duration-adjust{width:36px;height:36px;border-radius:50%;border:1px solid #c7d1c7;background:white;color:#415c4c;font-size:19px;flex:none}.duration-adjust:disabled{opacity:.36;cursor:not-allowed}.duration-ruler{display:flex;justify-content:space-between;color:#858f83;font-size:10px;letter-spacing:.07em;margin:8px 4px 18px}
.price-panel{border:1px solid #d7dfd3;background:#fcfdf9;padding:21px 23px;margin:-10px 0 25px}.price-label{font-size:10px;font-weight:800;letter-spacing:.14em;color:#617462}.price-amount{display:block;font-size:28px;color:#384c3d;margin:11px 0 7px;letter-spacing:-.03em}.price-breakdown{font-size:12px;color:#58675d;white-space:pre-line;line-height:1.8}.price-disclaimer{font-size:10px;color:#858f85;line-height:1.8;margin:13px 0 0}.price-whatsapp{display:inline-block;margin-top:12px;font-size:12px;font-weight:700;border-bottom:1px solid #536957;padding-bottom:3px}.price-whatsapp[hidden]{display:none}
@media(max-width:750px){.catalog-banner{padding:16px;gap:11px;align-items:flex-start;flex-wrap:wrap}.catalog-icon{width:42px;height:42px;font-size:25px}.catalog-copy{flex:1;min-width:190px}.catalog-copy strong{font-size:14px}.catalog-copy small{font-size:11px}.catalog-action{margin-left:54px;padding:7px 10px}.duration-picker{padding:14px 10px}.price-panel{padding:18px}}

/* V5: full 24h status board and disabled-but-visible start times */
.day.full{background:#f0efeb;color:#6d726b;border:1px dashed #d9d9d2;cursor:pointer}
.day.full small{color:#9a968c}
.day.full:hover{background:#e8e9e2}
.day.active,.day.full.active{background:var(--deep);color:#fff;border-color:var(--deep)}
.day.full.active small{color:#f3eee1}
.day-schedule{margin-top:32px;padding:24px 0 0;border-top:1px solid var(--line)}
.schedule-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:15px;font-size:11px;color:#717970}
.schedule-legend span{display:inline-flex;align-items:center;gap:6px}
.hour-dot{width:10px;height:10px;display:inline-block;border-radius:2px}
.hour-dot.free{background:#dbead5}.hour-dot.busy{background:#a8adb0}.hour-dot.buffer{background:#e6ddc8}
.day-timeline{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;margin-top:16px}
.day-timeline .muted{grid-column:1/-1}
.hour-cell{border:1px solid #e1e7dd;border-radius:3px;padding:11px 2px;text-align:center;background:#e8f1e5;min-height:53px}
.hour-cell strong{font-size:11px;display:block;line-height:1.4;font-variant-numeric:tabular-nums}
.hour-cell small{display:block;font-size:9px;margin-top:4px}
.hour-cell.busy{background:#e7e8e8;color:#676d70;border-color:#d6d9da}
.hour-cell.buffer{background:#f2ead8;color:#887044;border-color:#e9dcc0}
.hour-cell.free{background:#eaf3e8;color:#3b6d45;border-color:#e0e9dd}
.schedule-note{font-size:11px;line-height:1.8;color:#7c8378;margin:12px 0 4px}
.slot-hint{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:7px;margin:13px 0 0;font-size:11px;color:#899084}
.refresh-availability{border:1px solid #c9d6c4;background:white;padding:7px 10px;color:#55725a;border-radius:3px;font-size:11px}
.time-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:58px;gap:4px}
.time-slot strong{font-size:13px;font-weight:650}
.time-slot small{font-size:10px;font-weight:450}
.time-slot.unavailable,.time-slot:disabled{background:#eff0ee;border-color:#e8e9e8;color:#9ba19a;cursor:not-allowed;opacity:1}
.time-slot.unavailable small{color:#a3a8a1}
.time-slot:not(:disabled):hover{border-color:#708e70}
.time-slot.active small{color:#dfeedd}
@media(max-width:1060px){.day-timeline{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:750px){.day-timeline{grid-template-columns:repeat(6,minmax(0,1fr))}.hour-cell{padding:9px 1px}}
@media(max-width:380px){.day-timeline{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* V5.1 — date, hours and start time grouped; timeline moved below selection */
.date-selection{margin-top:22px;padding-top:0;border-top:0}
.duration-nearby{border:1px solid #dce5da;background:#f6f8f4;border-radius:5px;padding:19px 21px 15px;margin:0 0 25px}
.inline-step{font-size:11px;font-weight:760;color:#617b66;letter-spacing:.06em;margin-bottom:13px}
.duration-nearby .duration-ruler{margin-bottom:2px}
.date-selection>.slot-head{margin-bottom:6px}
.day-schedule{margin-top:30px;padding-top:23px}
.phone-help{display:block;color:#858f85;font-size:11px;font-weight:400;line-height:1.7;margin-top:7px}
.contact-card input[name="phone"].phone-invalid{border-color:#b84949;background:#fff8f7}
@media(max-width:750px){.duration-nearby{padding:16px 13px 13px;margin-bottom:22px}.day-schedule{margin-top:25px}}

/* V5.2: show the whole rental range under the start hour. */
.time-slot .slot-end{font-size:10px;line-height:1.3;color:#7c8a78;white-space:nowrap}.time-slot.unavailable .slot-end{color:#9ba19a}.time-slot.active .slot-end{color:#d7e6d1}.time-slot{min-height:73px}.slot-hint{line-height:1.8}

/* V5.5 bilingual customer interface — booking page only; admin unchanged */
.section-head.compact{position:relative;padding-top:8px}
.language-switch{position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid #cbd4c7;border-radius:100px;background:#fff;color:#526259;box-shadow:0 2px 9px rgba(28,45,32,.055);z-index:3}
.language-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:5px}
.language-switch button{padding:7px 10px;background:transparent;border:0;border-radius:100px;color:#69766e;font-size:12px;font-weight:750;letter-spacing:.025em;white-space:nowrap}
.language-switch button:hover{color:#253a30}
.language-switch button.active{background:#53645a;color:#fff}
.language-switch button:focus-visible{outline:2px solid #53645a;outline-offset:2px}
.lang-sep{color:#a8b3a8;font-size:11px}
.section-head.compact>p{padding-top:36px;max-width:485px}
@media(max-width:850px){.section-head.compact{padding-top:56px}.section-head.compact>p{padding-top:0}.language-switch{top:0;right:0}}
@media(max-width:750px){.section-head.compact{padding-top:46px}.language-switch{right:0;top:0}.language-switch button{padding:7px 8px}.section-head h2{font-size:32px}}

/* V5.6 — advisory when Scene 2 is selected for 16+ guests */
.scene-capacity-notice{display:flex;gap:12px;align-items:flex-start;background:#f7f3e9;border:1px solid #e3d8bf;border-left:4px solid #a78953;border-radius:4px;padding:16px 18px;margin:0 0 18px;color:#534b3d}
.scene-capacity-notice[hidden]{display:none!important}
.scene-capacity-icon{font-size:20px;line-height:1.2;color:#94774a;flex:none}
.scene-capacity-copy{flex:1;min-width:0}
.scene-capacity-copy strong{font-size:13px;font-weight:750}
.scene-capacity-copy p{font-size:12px;line-height:1.8;margin:7px 0 10px}
.scene-capacity-copy button{background:transparent;border:0;border-bottom:1px solid #7f704e;color:#6d5a36;padding:3px 0;font-size:12px;font-weight:700;cursor:pointer}
.scene-capacity-copy button:hover{color:#352f23;border-color:#352f23}

/* V5.9: keep estimated price visible on successful booking, including overnight charges. */
.success-quote{margin:20px auto;padding:20px 22px;max-width:480px;background:#f1f5ed;border:1px solid #d7e0d0;text-align:left;}
.success-quote-label{display:block;font-weight:750;font-size:11px;color:#506a55;letter-spacing:.07em;}
.success-panel .success-quote-total{display:block;border:0;background:transparent;padding:0;margin:10px 0;font-size:28px;letter-spacing:-.02em;color:#354d3b;word-break:normal;}
.success-quote .success-quote-breakdown{white-space:pre-line;color:#435547;margin:0 0 10px;font-size:12px;line-height:1.9;}
.success-quote small{font-size:10px;color:#768478;line-height:1.7;display:block;}

/* V5.10 selected reservation range: single & next day, hour blocks only. */
.hour-dot.chosen{background:#246c80;border:1px solid #164958}
.hour-cell.chosen,.hour-cell.chosen.free,.hour-cell.chosen.buffer,.hour-cell.chosen.busy{background:#246c80;border-color:#194e5e;color:#fff;box-shadow:inset 0 0 0 1px #ffffff33}
.hour-cell.chosen small{color:#effaff;font-weight:650}
.next-day-schedule{margin-top:23px;padding-top:21px;border-top:1px dashed #c4d0c5}
.next-day-schedule .slot-head strong{color:#30596a}
.next-day-schedule .day-timeline{margin-top:14px}
