/* Shared reservation and media dialogs */
[hidden]{display:none!important}.reservation-dialog{width:min(530px,94vw);padding:36px 48px 28px;border-radius:24px;color:#253c35;max-height:92svh}.reservation-logo{width:100px;height:60px;object-fit:contain;margin:0 auto 14px}.reservation-dialog h2{font-size:17px;font-weight:500;line-height:1.6;letter-spacing:0;text-align:center;margin:0 0 23px;color:#65756e}.reservation-tabs{display:flex;border-bottom:1px solid #e6ebe7;margin-bottom:23px}.reservation-tabs button{width:50%;font-size:16px;color:#929b96;background:none;padding:13px 3px 15px;position:relative}.reservation-tabs button[aria-selected=true]{color:#344d3f;font-weight:700}.reservation-tabs button[aria-selected=true]:after{content:"";height:3px;position:absolute;bottom:-1px;left:0;right:0;background:#78a276;border-radius:3px}.field-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.reservation-input{display:flex;align-items:center;border:1px solid #e4e9e4;background:#f6f8f5;border-radius:10px;margin-bottom:14px;min-height:52px;overflow:hidden}.reservation-input:focus-within{border-color:#8dac89;box-shadow:0 0 0 3px #86a47d18}.reservation-input input{width:100%;min-width:0;font-size:15px;color:#273d31;background:transparent;border:0;padding:16px;outline:none}.reservation-input input::placeholder{color:#a2aaa4}.reservation-input input[aria-invalid=true]{background:#fff1ee}.phone-input>span{font-size:14px;color:#66756b;border-right:1px solid #dde4dc;line-height:20px;padding:0 15px}.code-input input{padding-right:8px}.code-input button{flex:none;font-size:14px;background:none;color:#638856;padding:8px 15px;border-left:1px solid #e0e7dc;white-space:nowrap}.code-input button:disabled{color:#99a393;cursor:default}.reservation-consent{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.9;color:#929b94;margin-top:19px;cursor:pointer}.reservation-consent input{width:16px;height:16px;flex:none;margin:3px 0 0;accent-color:#72956b}.reservation-consent a{color:#648d59}.reservation-consent a:hover{text-decoration:underline}.reservation-dialog .reservation-message{font-size:13px;line-height:1.6;color:#6d855e;min-height:23px;margin:8px 0;overflow-wrap:anywhere}.reservation-dialog .reservation-message.is-error{color:#ba5143}.reservation-submit{display:block;width:100%;padding:15px 20px;font-size:18px;line-height:1.4;font-weight:700;color:#4e4117;background:#ffe240;border-radius:10px;box-shadow:0 7px 19px #8c783e18;margin-top:8px}.reservation-submit:hover{background:#ffe968}.reservation-submit:disabled{opacity:.6;cursor:wait}.reservation-dialog .reservation-footnote{font-size:12px;line-height:1.7;text-align:center;color:#9ba49b;margin:20px 0 0}.mini-program-code{width:214px;height:214px;margin:32px auto 18px;border-radius:18px;border:1px solid #e8ece6;background:#fff;box-shadow:0 10px 27px #1f45230c;padding:15px;display:grid;place-items:center}.mini-program-code img{width:182px;height:182px;object-fit:contain}.mini-program-code #mini-program-unavailable{text-align:center;color:#8a9e87}.mini-program-symbol{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:15px;background:#f0f5ed;color:#7d9a73;font-size:30px}.mini-program-code p{font-size:15px;line-height:1.8;color:#6e8665}.mini-program-code p span{font-size:12px;color:#a1aca0}.reservation-dialog .scan-instruction{text-align:center;font-size:14px;line-height:1.8;color:#82907c}.open-mini-program{display:block;width:fit-content;margin:14px auto 0;font-size:14px;color:#648658}.reservation-success{text-align:center;padding:20px 0 8px}.success-check{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;margin:0 auto 22px;background:#edf5e9;color:#739a60;font-size:33px}.reservation-success h3{font-size:24px;color:#3e5b3c;margin:0 0 14px}.reservation-success p{font-size:15px;line-height:1.9}.reservation-success .reservation-submit{margin-top:26px}
/* PV 播放器 */
.pv-dialog{width:min(1150px,95vw);padding:0;border-radius:17px;overflow:hidden;background:#111c16;color:white;max-height:93svh}.pv-dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 22px}.pv-dialog-heading h2{font-size:16px;letter-spacing:.5px;margin:0;line-height:1.5}.pv-dialog-heading .dialog-close{position:static;background:#ffffff17;color:white;width:31px;height:31px;font-size:24px}.pv-dialog video{width:100%;max-height:76svh;display:block;background:#0c120d;aspect-ratio:16/9;object-fit:contain}.pv-dialog #pv-message:empty{display:none}.pv-dialog #pv-message{font-size:13px;color:#d0dbd1;padding:11px 22px;margin:0}
.pv-dialog video{aspect-ratio:2/1}.pv-dialog.portrait-video{width:min(550px,95vw)}.pv-dialog.portrait-video video{aspect-ratio:3/4;max-height:76svh;object-fit:contain}.reservation-consent{font-size:14px;line-height:1.8}.reservation-dialog .reservation-message{font-size:14px}.reservation-input input{font-size:16px}.reservation-tabs button{min-height:50px}
@media(max-width:780px){.reservation-dialog{width:min(480px,94vw);padding:30px 24px 24px;max-height:92svh}.reservation-logo{width:87px;height:52px}.reservation-dialog h2{font-size:15px;margin-bottom:16px}.reservation-tabs{margin-bottom:20px}.reservation-tabs button{font-size:15px}.reservation-input input{font-size:16px;padding:15px}.code-input button{font-size:14px;padding:8px 10px}.phone-input>span{padding:0 10px;font-size:14px}.reservation-consent{font-size:12px;gap:7px}.reservation-submit{font-size:17px}.reservation-dialog .reservation-footnote{font-size:12px;margin-top:17px}.pv-dialog-heading{padding:12px 15px}.pv-dialog-heading h2{font-size:14px}.mini-program-code{margin-top:27px}}
