*{box-sizing:border-box} :root{color-scheme:light;--ink:#182128;--muted:#5f6870;--gold:#78542d;--paper:#faf7f2;--line:#e5ddd3}
body{margin:0;background:#c1ab8c;color:var(--ink);font-family:Arial,Helvetica,sans-serif}
button,input{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:wait;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ad773f;outline-offset:4px}
.shell{max-width:1100px;margin:auto}.hero{height:440px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 70% 15%,#bda180 0,transparent 45%),linear-gradient(120deg,#382b20,#806447 55%,#3b3026)}
.brand{position:absolute;top:24px;left:40px;color:white;letter-spacing:4px;font:24px Georgia,serif;text-align:center;z-index:2}
.brand small{display:block;font:10px Arial,sans-serif;letter-spacing:5px;margin-top:10px}.brand-mark{display:block;font-size:34px;line-height:1.2;margin-bottom:10px}
.language{position:absolute;right:32px;top:30px;color:white;letter-spacing:2px;font-size:15px}
.avatar-stage{position:absolute;left:50%;transform:translateX(-50%);bottom:52px;width:min(560px,90%);height:300px}
#avatar-placeholder{position:absolute;inset:0;color:#e5d7c3;text-align:center;width:100%;height:100%}#avatar-photo{display:block;width:100%;height:calc(100% - 32px);object-fit:contain;border-radius:15px}
#avatar-placeholder p{font-size:14px;letter-spacing:2px}#avatar-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:15px}#avatar-audio{display:none}


h2,h1,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400}h2{margin:0 0 14px;font-size:36px;line-height:1.1}
.avatar-controls{position:absolute;bottom:14px;left:32px;right:32px;display:flex;gap:10px;align-items:center;color:#fff;font-size:13px}
.avatar-controls button{border-radius:30px;padding:9px 16px;background:#f6f0e6;color:#30261c}.avatar-controls span{margin-right:auto}
.panel{background:var(--paper);border-radius:22px;padding:24px 40px 35px;margin:0 8px;min-height:660px;box-shadow:0 15px 60px #33271920;position:relative}
.demo-banner{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px;color:var(--gold);font-size:10px;letter-spacing:1.5px}.demo-banner span{color:var(--muted);letter-spacing:.4px}
.progress{display:flex;list-style:none;padding:0;margin:28px 0 38px}.progress li{flex:1;text-align:center;position:relative;font-size:13px;line-height:1.4;color:var(--muted)}
.progress li:before{content:"";position:absolute;top:20px;left:0;right:0;height:1px;background:var(--line)}.progress li:first-child:before{left:50%}.progress li:last-child:before{right:50%}
.progress b{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid #d2c5b6;border-radius:50%;margin:0 auto 10px;background:var(--paper);font-size:18px;font-weight:400}
.progress .current,.progress .done{color:var(--gold)}.progress .current b,.progress .done b{background:var(--gold);color:white;border-color:var(--gold)}.progress span{display:block;max-width:110px;margin:auto}.progress .current span{font-weight:600}
.title{text-align:center;font-size:40px;margin:0 0 14px;line-height:1.15}.subtitle{text-align:center;font-size:18px;line-height:1.5;color:var(--muted);margin:0 auto 28px;max-width:780px}
.grid-2{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card,.note{border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff4}.card h3{font-size:25px;margin:0 0 20px}.note{margin-top:20px;line-height:1.6;font-size:15px;color:var(--muted)}
.field{display:block;margin:0 0 18px}.field label{display:block;font-size:14px;color:var(--muted);margin-bottom:8px}
input{background:#fff;border:1px solid #d9cfc3;border-radius:10px;padding:13px 14px;width:100%;color:var(--ink)}input[readonly]{background:#f1ede6}
.primary,.secondary{border-radius:40px;padding:16px 30px;font-size:17px;min-width:155px}.primary{background:#1c2224;color:white}.secondary{background:#efebe4;color:var(--ink)}
.actions{display:flex;justify-content:space-between;gap:16px;margin-top:28px}#back:disabled{visibility:hidden}
.scanner{display:grid;place-items:center;min-height:245px;background:linear-gradient(130deg,#816449,#372c23);border-radius:20px;position:relative;color:white;text-align:center;padding:26px}
.scan-symbol{font-size:76px;line-height:1.2;font-family:Georgia,serif}.scanner p{font-size:15px;line-height:1.5}.scanner button{background:#fff;color:#372c23;border-radius:30px;padding:12px 18px}
table{width:100%;border-collapse:collapse;font-size:15px}td{border-bottom:1px solid var(--line);padding:12px 0;vertical-align:top}td:first-child{color:var(--muted);width:42%}td:last-child{padding-left:14px}tr:last-child td{border:0}
.amount{font-size:38px;color:var(--gold);font-weight:600;margin-top:8px}.small{font-size:13px;color:var(--muted);line-height:1.6}.success{text-align:center;margin-bottom:25px}
.success-icon{background:#60724f;color:white;border-radius:50%;width:65px;height:65px;margin:0 auto 16px;display:grid;place-items:center;font-size:35px}.success h1{font-size:50px;margin:0 0 10px}
.success p{line-height:1.6}.access-code{display:block;font-size:28px;letter-spacing:4px;margin:18px 0;color:var(--gold)}
#error{color:#92391f;line-height:1.5;font-size:15px;min-height:22px;margin:18px 0 0}
footer{text-align:center;padding:20px;color:#4b3d30;font-size:12px;letter-spacing:1px}
[hidden]{display:none!important}
@media(min-width:1400px){.shell{max-width:1300px}.hero{height:400px}.panel{min-height:600px}.avatar-stage{height:290px}}
@media(max-width:650px){.hero{height:340px}.brand{left:20px;font-size:15px;letter-spacing:2px;top:17px}.brand-mark{font-size:24px;margin-bottom:5px}.brand small{font-size:8px}.language{top:22px;right:20px;font-size:12px}.avatar-stage{width:90%;height:190px;bottom:70px}#avatar-placeholder p{font-size:10px;letter-spacing:.7px}.avatar-controls{left:16px;right:16px;font-size:10px;gap:6px;flex-wrap:wrap}.avatar-controls button{font-size:11px;padding:8px 11px}.panel{padding:18px 18px 24px;border-radius:18px;margin:0 6px}.demo-banner{font-size:8px;display:block}.demo-banner span{display:block;margin-top:6px}.progress{margin:22px 0 28px}.progress li{font-size:9px}.progress b{width:30px;height:30px;font-size:14px;margin-bottom:7px}.progress li:before{top:15px}.title{font-size:29px}.subtitle{font-size:15px}.grid-2,.grid-3{grid-template-columns:1fr;gap:16px}.card{padding:18px}td{font-size:14px}.primary,.secondary{padding:13px 21px;min-width:120px;font-size:15px}.success h1{font-size:40px}}

.hotel-questions{margin:18px 8px;padding:18px 28px;background:var(--paper);border-radius:18px}.hotel-questions:has(#hotel-question-form[hidden]){display:none}.hotel-questions label{display:block;font-size:14px;margin-bottom:10px}.question-row{display:flex;gap:12px}.question-row .primary{min-width:80px}#avatar-caption{line-height:1.6;margin:0 0 15px}#avatar-caption:empty{display:none}.avatar-controls{flex-wrap:wrap}@media(max-width:650px){.question-row{flex-direction:column}.avatar-controls{bottom:8px}.hero:has(#microphone-toggle:not([hidden])){height:370px}.hero:has(#microphone-toggle:not([hidden])) .avatar-stage{bottom:100px}}

.suggested-questions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.suggested-questions button{padding:10px 14px;border:1px solid #d9cfc3;border-radius:24px;background:#f6f0e6;color:var(--ink);font-size:14px}

.language{display:flex;align-items:center;gap:6px;z-index:3}.language select{max-width:150px;background:#382b20;color:white;border:1px solid #ffffff70;border-radius:8px;padding:8px;font:inherit;letter-spacing:0}select:focus-visible{outline:3px solid #ad773f;outline-offset:4px}
@media(max-width:600px){.language select{max-width:116px;font-size:12px}.avatar-controls{flex-wrap:wrap;gap:6px}.avatar-controls button{padding:8px;font-size:12px}}

.panel:has(#progress[hidden]){min-height:0}
.experience-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:32px 0 12px}.experience-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 18px;border:1px solid var(--line);border-radius:18px;background:#fff8;color:var(--ink);text-align:center}.experience-card:hover{border-color:var(--gold);background:#fff}.experience-card:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.experience-icon{color:var(--gold);font-size:34px}.experience-name{font:26px Georgia,serif}.experience-card>span:last-child{font-size:14px;color:var(--muted)}.checkout-card{max-width:650px;margin:0 auto}
@media(max-width:900px){.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:450px){.experience-grid{grid-template-columns:1fr}.experience-card{padding:24px 16px}}

.booking-review{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start}.reserved-room{margin:0 0 20px;border-radius:12px;overflow:hidden;background:#eee4d7}.reserved-room img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.reserved-room figcaption{padding:16px 18px}.reserved-room figcaption span,.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--gold)}.reserved-room h4,.room-offer h4{font:23px Georgia,serif;margin:8px 0}.reserved-room p{margin:0;font-size:13px;color:var(--muted)}.upgrade-card{background:#f3ece2;border-color:#d8c6b0}.upgrade-card h3{margin-bottom:12px}.eyebrow{margin:0 0 14px}.upgrade-intro{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 20px}.room-offer{display:grid;grid-template-columns:135px 1fr;gap:16px;padding:18px 0;border-top:1px solid #dfd0bd}.room-offer img{width:100%;height:145px;object-fit:cover;border-radius:10px}.room-offer h4{font-size:21px;margin:0 0 8px}.room-offer p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 12px}.upgrade-button{background:var(--gold);color:#fff;padding:10px 14px;border-radius:20px;font-size:12px}.upgrade-card .small{margin-bottom:0;line-height:1.6}@media(max-width:800px){.booking-review{grid-template-columns:1fr}}@media(max-width:420px){.room-offer{grid-template-columns:100px 1fr;gap:12px}.room-offer img{height:160px}}

.camera-guide{margin-top:22px;padding:16px;background:#f3ece2;border:1px solid var(--line);border-radius:14px;text-align:center}.camera-guide svg{display:block;width:100%;max-width:320px;height:180px;margin:auto}.camera-guide h4{font:20px Georgia,serif;margin:12px 0 8px}.camera-guide p{font-size:13px;color:var(--muted);line-height:1.6;margin:0}.camera-guide-id{transform-box:fill-box;transform-origin:center;animation:position-id 3s ease-in-out infinite}.camera-guide-scan{animation:scan-id 3s ease-in-out infinite}@keyframes position-id{0%,100%{transform:translate(-60px,18px) rotate(-10deg);opacity:.65}35%,70%{transform:translate(0,0) rotate(0);opacity:1}}@keyframes scan-id{0%,30%,90%,100%{opacity:0;transform:translateY(0)}45%{opacity:.8;transform:translateY(0)}75%{opacity:.8;transform:translateY(42px)}}@media(prefers-reduced-motion:reduce){.camera-guide .camera-guide-id,.camera-guide .camera-guide-scan{animation-duration:6s}}

.guest-scan-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;list-style:none;padding:0;margin:0 0 22px}.guest-scan-list li{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff4}.guest-scan-list li>span{display:grid;place-items:center;border-radius:50%;width:32px;height:32px;background:#e7ddd0;flex-shrink:0}.guest-scan-list .current{border-color:var(--gold)}.guest-scan-list .done>span{background:var(--gold);color:white}.guest-scan-list strong{font-size:13px}.guest-scan-list p{margin:5px 0;font-size:14px}.guest-scan-list small{color:var(--muted)}.scan-guest-name{font-size:20px}.guest-details-card{min-width:0;margin:0}.guest-details-card legend{color:var(--gold);font-size:14px;padding:0 8px}.guest-contact{margin-top:24px}.guest-contact>.field{max-width:500px}

.payment-options{border:0;padding:0;margin:0;min-width:0}.payment-options legend{font:24px Georgia,serif;margin-bottom:18px}.payment-options label{display:flex;gap:12px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;cursor:pointer}.payment-options label:has(:checked){border-color:var(--gold);background:#eee4d7}.payment-options input{width:20px;height:20px;accent-color:var(--gold);flex-shrink:0}.payment-options small{display:block;margin-top:8px;color:var(--muted);line-height:1.5}.payment-terminal{margin-top:24px}.payment-terminal .amount{color:white}

/* Portrait kiosk displays: keep the horizontal avatar uncropped and controls within reach. */
@media (orientation:portrait) and (min-width:651px) and (min-height:1000px){
  body{--tv-unit:clamp(1px,.0925926vw,2px);font-size:clamp(calc(22 * var(--tv-unit)),2.5vw,calc(28 * var(--tv-unit)))}
  .shell{max-width:calc(1200 * var(--tv-unit));min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
  .hero{height:auto;flex-shrink:0;display:grid;grid-template-columns:1fr auto;gap:calc(24 * var(--tv-unit));padding:clamp(calc(24 * var(--tv-unit)),3vw,calc(40 * var(--tv-unit)));overflow:visible}
  .brand{position:static;text-align:left;font-size:clamp(calc(24 * var(--tv-unit)),3vw,calc(34 * var(--tv-unit)));letter-spacing:calc(3 * var(--tv-unit));align-self:start}
  .brand-mark{font-size:calc(40 * var(--tv-unit));margin-bottom:calc(8 * var(--tv-unit))}.brand small{font-size:calc(13 * var(--tv-unit));margin-top:calc(8 * var(--tv-unit))}
  .language{position:static;align-self:start;font-size:clamp(calc(20 * var(--tv-unit)),2.3vw,calc(26 * var(--tv-unit)));letter-spacing:0}.language select{max-width:calc(220 * var(--tv-unit));padding:calc(12 * var(--tv-unit))}
  .avatar-stage{position:relative;left:auto;bottom:auto;transform:none;grid-column:1/-1;width:100%;height:auto;aspect-ratio:16/9}
  #avatar-photo{height:100%}#avatar-placeholder p{display:none}
  .avatar-controls{position:static;grid-column:1/-1;flex-wrap:wrap;gap:calc(12 * var(--tv-unit));font-size:clamp(calc(20 * var(--tv-unit)),2.3vw,calc(26 * var(--tv-unit)))}
  .avatar-controls span{flex:1;min-width:calc(180 * var(--tv-unit));line-height:1.4}.avatar-controls button{padding:calc(10 * var(--tv-unit)) calc(16 * var(--tv-unit));min-height:calc(44 * var(--tv-unit));font-size:calc(20 * var(--tv-unit))}
  .panel{flex:1;min-height:0;margin:calc(20 * var(--tv-unit)) calc(24 * var(--tv-unit)) 0;padding:calc(28 * var(--tv-unit));border-radius:calc(24 * var(--tv-unit))}
  .demo-banner{font-size:calc(13 * var(--tv-unit));letter-spacing:calc(1 * var(--tv-unit));line-height:1.5;flex-wrap:wrap}
  .title{font-size:clamp(calc(42 * var(--tv-unit)),5vw,calc(60 * var(--tv-unit)))}.subtitle{font-size:clamp(calc(22 * var(--tv-unit)),2.5vw,calc(28 * var(--tv-unit)));max-width:none;margin-bottom:calc(24 * var(--tv-unit))}
  .experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(18 * var(--tv-unit));margin:calc(24 * var(--tv-unit)) 0 0}.experience-card{min-height:0;padding:calc(14 * var(--tv-unit)) calc(16 * var(--tv-unit));gap:calc(6 * var(--tv-unit))}.experience-name{font-size:clamp(calc(30 * var(--tv-unit)),3.5vw,calc(40 * var(--tv-unit)))}.experience-card>span:last-child{font-size:calc(20 * var(--tv-unit))}.experience-icon{font-size:calc(36 * var(--tv-unit))}
  .hotel-questions{flex:1;display:flex;flex-direction:column;margin:calc(20 * var(--tv-unit)) calc(24 * var(--tv-unit)) 0;padding:calc(28 * var(--tv-unit))}.hotel-questions #hotel-question-form{margin-top:auto}.question-row{gap:calc(16 * var(--tv-unit))}.question-row input{font-size:inherit;min-width:0}
  #avatar-caption{font-size:inherit;line-height:1.6}.suggested-questions{gap:calc(12 * var(--tv-unit));margin-top:calc(20 * var(--tv-unit))}.suggested-questions button{font-size:calc(20 * var(--tv-unit));min-height:calc(44 * var(--tv-unit));padding:calc(12 * var(--tv-unit)) calc(16 * var(--tv-unit))}
  .primary,.secondary{font-size:calc(20 * var(--tv-unit));padding:calc(12 * var(--tv-unit)) calc(22 * var(--tv-unit));min-height:calc(48 * var(--tv-unit))}.field label{font-size:calc(20 * var(--tv-unit))}.field input{font-size:inherit;min-height:calc(58 * var(--tv-unit))}
  .progress{margin:calc(24 * var(--tv-unit)) 0 calc(32 * var(--tv-unit))}.progress li{font-size:calc(18 * var(--tv-unit))}.progress b{width:calc(48 * var(--tv-unit));height:calc(48 * var(--tv-unit));font-size:calc(24 * var(--tv-unit))}.progress li:before{top:calc(24 * var(--tv-unit))}.progress span{max-width:calc(150 * var(--tv-unit))}
  .grid-3{grid-template-columns:repeat(auto-fit,minmax(calc(280 * var(--tv-unit)),1fr))}.card{min-width:0;overflow-wrap:anywhere}
  .card h3{font-size:calc(30 * var(--tv-unit))}.card,.note{padding:calc(24 * var(--tv-unit))}.note,td,.scanner p,.small{font-size:calc(20 * var(--tv-unit));line-height:1.5}.scanner button{font-size:calc(22 * var(--tv-unit));padding:calc(16 * var(--tv-unit)) calc(20 * var(--tv-unit))}.amount{font-size:calc(44 * var(--tv-unit))}
  .guest-scan-list strong,.guest-scan-list p,.guest-scan-list small,.guest-details-card legend{font-size:calc(20 * var(--tv-unit))}.guest-scan-list li>span{width:calc(40 * var(--tv-unit));height:calc(40 * var(--tv-unit))}
  .payment-options legend{font-size:calc(30 * var(--tv-unit))}.payment-options small{font-size:calc(20 * var(--tv-unit))}.payment-options label{padding:calc(20 * var(--tv-unit))}.payment-options input{width:calc(26 * var(--tv-unit));height:calc(26 * var(--tv-unit))}.room-offer p,.upgrade-intro,.reserved-room p{font-size:calc(20 * var(--tv-unit))}.room-offer{grid-template-columns:calc(100 * var(--tv-unit)) minmax(0,1fr)}.upgrade-button{font-size:calc(20 * var(--tv-unit))}
  .camera-guide svg{max-width:calc(320 * var(--tv-unit));height:calc(180 * var(--tv-unit))}.camera-guide h4{font-size:calc(24 * var(--tv-unit))}.camera-guide p{font-size:calc(20 * var(--tv-unit))}.scan-symbol{font-size:calc(76 * var(--tv-unit))}
  .room-offer img{height:calc(145 * var(--tv-unit))}.room-offer h4,.reserved-room h4{font-size:calc(28 * var(--tv-unit))}.eyebrow,.reserved-room figcaption span{font-size:calc(13 * var(--tv-unit))}.guest-contact>.field{max-width:calc(500 * var(--tv-unit))}.checkout-card{max-width:calc(650 * var(--tv-unit))}.success h2{font-size:calc(36 * var(--tv-unit))}.access-code{font-size:calc(28 * var(--tv-unit))}
  footer{font-size:calc(14 * var(--tv-unit));padding:calc(20 * var(--tv-unit)) calc(24 * var(--tv-unit))}
}

.panel:has(.experience-grid){flex:0;min-height:0;padding-bottom:24px}#error:empty{display:none}.panel:has(.experience-grid) .subtitle{margin-bottom:18px}.panel:has(.experience-grid) .experience-grid{margin:18px 0 0}
.avatar-stage.is-floating{transform:none;left:0}.avatar-stage.is-floating #avatar-placeholder,.avatar-stage.is-floating #avatar-video{position:fixed;inset:auto;top:16px;right:16px;width:clamp(180px,24vw,480px);height:auto;aspect-ratio:16/9;z-index:20;background:#382b20;border-radius:14px;box-shadow:0 8px 30px #0005;pointer-events:none}.avatar-stage.is-floating #avatar-photo{height:100%;width:100%;object-fit:contain}.avatar-stage.is-floating #avatar-placeholder p{display:none}
@media(max-width:650px){.avatar-stage.is-floating #avatar-placeholder,.avatar-stage.is-floating #avatar-video{width:160px;top:10px;right:10px}}

.panel{flex:0;min-height:0;padding-bottom:24px}
@media(min-width:651px) and (max-width:900px) and (max-height:999px){.brand{top:16px;left:20px;font-size:18px;letter-spacing:2px;text-align:left}.brand-mark{font-size:24px;margin-bottom:5px}.brand small{font-size:8px;margin-top:5px}}

/* Keep the wizard compact without shrinking text or touch targets. */
.panel{padding:calc(20 * var(--tv-unit,1px))}.hotel-questions{flex:0;padding:calc(16 * var(--tv-unit,1px)) calc(20 * var(--tv-unit,1px))}
.progress{margin:calc(18 * var(--tv-unit,1px)) 0 calc(24 * var(--tv-unit,1px))}.subtitle{margin-bottom:calc(18 * var(--tv-unit,1px))}
.card,.note{padding:calc(18 * var(--tv-unit,1px))}.card h3{margin-bottom:calc(14 * var(--tv-unit,1px))}.note{margin-top:calc(14 * var(--tv-unit,1px))}.actions{margin-top:calc(20 * var(--tv-unit,1px))}
.room-offer{padding:calc(14 * var(--tv-unit,1px)) 0}.room-offer img{height:calc(110 * var(--tv-unit,1px))}#error:empty{display:none}

/* Compact document guidance keeps the scanner column from stretching. */
.grid-2:has(#simulate-document) .card>p{margin:calc(8 * var(--tv-unit,1px)) 0;line-height:1.4}
.grid-2:has(#simulate-document) .camera-guide{margin-top:calc(12 * var(--tv-unit,1px));padding:calc(10 * var(--tv-unit,1px))}
.grid-2:has(#simulate-document) .camera-guide svg{height:calc(100 * var(--tv-unit,1px))}
.grid-2:has(#simulate-document) .camera-guide h4{font-size:calc(18 * var(--tv-unit,1px));margin:calc(8 * var(--tv-unit,1px)) 0}

#guest-form .field{margin-bottom:calc(10 * var(--tv-unit,1px))}#guest-form .field:last-child{margin-bottom:0}#guest-form .field label{margin-bottom:calc(6 * var(--tv-unit,1px))}
#guest-form .guest-contact{margin-top:calc(14 * var(--tv-unit,1px))}#guest-form .guest-contact>.field{margin-bottom:0}
#guest-form .guest-contact .note{border:0;background:none;padding:0;margin-top:calc(10 * var(--tv-unit,1px));line-height:1.4}

.panel:has(.payment-options){padding-bottom:calc(16 * var(--tv-unit,1px))}.panel:has(.payment-options) .actions{margin-top:calc(12 * var(--tv-unit,1px))}
.grid-2:has(.payment-options) .card{padding:calc(14 * var(--tv-unit,1px))}.grid-2:has(.payment-options) td{padding-top:calc(8 * var(--tv-unit,1px));padding-bottom:calc(8 * var(--tv-unit,1px))}.grid-2:has(.payment-options) .card>p{margin:calc(10 * var(--tv-unit,1px)) 0}
.payment-options legend{margin-bottom:calc(12 * var(--tv-unit,1px))}.payment-options label{padding:calc(12 * var(--tv-unit,1px));margin-bottom:calc(8 * var(--tv-unit,1px))}.payment-options small{margin-top:calc(4 * var(--tv-unit,1px))}
.payment-terminal{min-height:0;margin-top:calc(16 * var(--tv-unit,1px));padding:calc(18 * var(--tv-unit,1px))}.payment-terminal .scan-symbol{font-size:calc(48 * var(--tv-unit,1px))}.payment-terminal h3,.payment-terminal p{margin:calc(10 * var(--tv-unit,1px)) 0}

.payment-terminal>div{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:calc(8 * var(--tv-unit,1px)) calc(16 * var(--tv-unit,1px));align-items:center;text-align:left}.payment-terminal .scan-symbol{grid-column:1;grid-row:1/4}.payment-terminal h3{grid-column:2;margin:0}.payment-terminal .amount{grid-column:3;grid-row:1;margin:0;font-size:calc(30 * var(--tv-unit,1px))}.payment-terminal p{grid-column:2/4;margin:0}.payment-terminal p:last-child{font-size:calc(13 * var(--tv-unit,1px))}
.panel:has(.success) .success{margin-bottom:calc(16 * var(--tv-unit,1px))}.panel:has(.success) .success-icon{width:calc(48 * var(--tv-unit,1px));height:calc(48 * var(--tv-unit,1px));font-size:calc(28 * var(--tv-unit,1px));margin-bottom:calc(10 * var(--tv-unit,1px))}.panel:has(.success) p{margin:calc(8 * var(--tv-unit,1px)) 0}.panel:has(.success) .card{padding:calc(14 * var(--tv-unit,1px))}.panel:has(.success) .card h3{font-size:calc(22 * var(--tv-unit,1px));margin-bottom:calc(10 * var(--tv-unit,1px))}.panel:has(.success) .access-code{font-size:calc(24 * var(--tv-unit,1px));letter-spacing:calc(2 * var(--tv-unit,1px));margin:calc(12 * var(--tv-unit,1px)) 0}.panel:has(.success) .actions{margin-top:calc(12 * var(--tv-unit,1px))}
@media(min-width:651px){.panel:has(.success) .grid-3{grid-template-columns:1fr 1fr 1.4fr}}
@media(max-width:450px){.payment-terminal>div{grid-template-columns:auto minmax(0,1fr)}.payment-terminal .amount{grid-column:2;grid-row:2}.payment-terminal p{grid-column:1/-1}.payment-terminal .scan-symbol{grid-row:1/3}}

/* Reuse the same chat form in the floating frame, preserving drafts and session. */
.shell{--floating-avatar-width:clamp(300px,30vw,600px);--floating-avatar-edge:16px}
.avatar-stage.is-floating #avatar-placeholder,.avatar-stage.is-floating #avatar-video{width:var(--floating-avatar-width);top:var(--floating-avatar-edge);right:var(--floating-avatar-edge)}
#floating-question-toggle{display:none}.hotel-questions.is-floating{position:fixed;top:calc(var(--floating-avatar-edge) + var(--floating-avatar-width) * .5625);right:var(--floating-avatar-edge);width:var(--floating-avatar-width);margin:0;padding:10px;z-index:20;border-radius:0 0 14px 14px;box-shadow:0 8px 30px #0005;font-size:14px}
.hotel-questions.is-floating #floating-question-toggle{display:block;width:100%;min-height:44px;padding:8px 12px;background:#f6f0e6;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:14px;text-align:left}.hotel-questions.is-floating #floating-question-toggle:after{content:" +";float:right}.hotel-questions.is-floating.is-expanded #floating-question-toggle:after{content:" −"}
.hotel-questions.is-floating:not(.is-expanded) #hotel-question-form{display:none}.hotel-questions.is-floating #hotel-question-form{margin-top:10px;max-height:min(50svh,380px);overflow:auto}.hotel-questions.is-floating .question-row{flex-direction:column;gap:8px}.hotel-questions.is-floating input{min-width:0;font-size:16px}.hotel-questions.is-floating .primary{min-height:44px;padding:10px 16px;font-size:14px}.hotel-questions.is-floating .suggested-questions{gap:6px;margin-top:10px}.hotel-questions.is-floating .suggested-questions button{min-height:44px;padding:8px 10px;font-size:14px}
@media(max-width:650px){.shell{--floating-avatar-width:min(300px,calc(100vw - 20px));--floating-avatar-edge:10px}}

/* Match the compact check-in spacing throughout check-out. */
.checkout-card{padding:calc(14 * var(--tv-unit,1px))}.checkout-card td{padding-top:calc(8 * var(--tv-unit,1px));padding-bottom:calc(8 * var(--tv-unit,1px))}.checkout-card p{margin:calc(8 * var(--tv-unit,1px)) 0}.checkout-card .amount{margin-top:calc(4 * var(--tv-unit,1px))}
#checkout-form .field{margin-bottom:calc(10 * var(--tv-unit,1px))}#checkout-form .field label{margin-bottom:calc(6 * var(--tv-unit,1px))}.panel:has(.checkout-card){padding-bottom:calc(16 * var(--tv-unit,1px))}.panel:has(.checkout-card) .actions{margin-top:calc(12 * var(--tv-unit,1px))}

.room-access-grid .card{padding:calc(16 * var(--tv-unit,1px));min-width:0;overflow-wrap:anywhere}.card-activation-animation,.card-return-animation{display:block;width:100%;max-width:calc(320 * var(--tv-unit,1px));height:calc(150 * var(--tv-unit,1px));margin:auto}.activation-card{animation:encode-room-card 3s ease-in-out infinite}.is-activating .activation-card{animation-duration:1.8s}.activation-light{animation:encoder-light 1.8s ease-in-out infinite}.is-active .activation-light{animation:none;fill:#60724f}.room-key-status{font-weight:bold;color:var(--gold);min-height:1.4em}.wallet-actions{display:flex;flex-wrap:wrap;gap:8px}.wallet-actions button{min-width:0;min-height:44px;padding:12px 16px;font-size:calc(16 * var(--tv-unit,1px))}.wallet-actions [aria-pressed="true"]{background:var(--gold);color:white}.wallet-pass-preview{margin-top:14px;border-radius:16px;background:linear-gradient(120deg,#eee4d7,#faf7f2);border:1px solid #d2c5b6;padding:16px}.wallet-pass-preview h3{font-size:calc(22 * var(--tv-unit,1px))}.wallet-pass-preview .access-code{font-size:calc(24 * var(--tv-unit,1px));letter-spacing:2px}.wallet-card p,.room-card-device p,.card-return p{margin:10px 0;line-height:1.4}.returning-card{animation:return-room-card 3s ease-in-out infinite}.card-return .primary,.room-access-grid .primary{max-width:100%;min-height:44px;white-space:normal}.panel:has(.room-access-grid) .actions,.panel:has(.card-return) .actions{margin-top:12px}
@keyframes encode-room-card{0%,15%,100%{transform:translateY(0)}40%,65%{transform:translateY(100px)}85%{transform:translateY(0)}}@keyframes encoder-light{0%,100%{opacity:.5}50%{opacity:1;fill:#60724f}}@keyframes return-room-card{0%,15%{transform:translateY(0);opacity:1}60%,85%{transform:translateY(110px);opacity:1}86%,100%{transform:translateY(110px);opacity:0}}
@media(prefers-reduced-motion:reduce){.activation-card,.returning-card,.is-activating .activation-card{animation-duration:6s}.activation-light{animation:none}}

.hero{border-radius:22px;margin-inline:8px}@media(max-width:650px){.hero{border-radius:18px;margin-inline:6px}}@media(orientation:portrait) and (min-width:651px) and (min-height:1000px){.hero{border-radius:calc(24 * var(--tv-unit));margin-inline:calc(24 * var(--tv-unit))}}
