.hotel-trigger { position:absolute; inset:0; z-index:5; width:100%; height:100%; border:0; padding:0; background:transparent; cursor:pointer; border-radius:inherit; color:var(--ink); }
.hotel-trigger:focus-visible { outline:3px solid #fff; outline-offset:-7px; }
#hotel-dialog { width:min(620px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:24px 28px 28px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
#hotel-dialog [hidden] { display:none !important; }
.hotel-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.hotel-header .eyebrow { margin:0; font-size:11px; }
#hotel-close { width:44px; height:44px; flex-shrink:0; border:0; background:transparent; color:var(--ink); border-radius:50%; font:inherit; font-size:30px; cursor:pointer; }
#hotel-dialog h2 { font-size:36px; margin:12px 0; line-height:1.1; }
#hotel-dialog h3 { margin:22px 0 16px; font-size:20px; letter-spacing:-.03em; }
#hotel-progress { margin:16px 0 10px; font-size:14px; }
.hotel-progress-track { height:3px; background:#e8dfd0; border-radius:3px; overflow:hidden; margin-bottom:24px; }
.hotel-progress-track span { display:block; height:100%; background:#b69a70; transform:scaleX(.25); transform-origin:left; transition:transform .25s; }
#hotel-dialog label { display:block; min-width:0; margin:16px 0; font-size:14px; font-weight:600; line-height:1.55; }
#hotel-dialog input:not([type=radio]),#hotel-dialog select,#hotel-dialog textarea { display:block; width:100%; max-width:100%; min-width:0; margin-top:8px; min-height:48px; border:1px solid #c8bbab; border-radius:12px; background:#fff; color:#121211; padding:10px 12px; font:inherit; font-size:16px; }
#hotel-dialog input[type=date] { min-height:48px; }
#hotel-dialog textarea { resize:vertical; }
#hotel-dialog fieldset { min-width:0; margin:20px 0; padding:10px 16px; border:1px solid #ded5c8; border-radius:16px; }
#hotel-dialog legend { font-weight:600; font-size:14px; padding:0 6px; line-height:1.5; }
#hotel-dialog .hotel-profile { border:0; padding:0; }
#hotel-dialog .hotel-profile legend { padding:0; }
.hotel-profile-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
#hotel-dialog .hotel-profile-options label { display:flex; align-items:flex-start; gap:10px; border:1px solid #c8bbab; border-radius:16px; padding:14px 12px; margin:0; cursor:pointer; }
#hotel-dialog .hotel-profile-options label:has(input:checked) { background:#f1e8d7; border-color:#a28558; }
.hotel-profile-options input { margin:4px 0 0; width:18px; height:18px; flex-shrink:0; accent-color:#8b704c; }
.hotel-profile-options small { display:block; font-size:12px; font-weight:400; color:#676159; margin-top:5px; }
.hotel-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
#hotel-dialog .hotel-hint { margin:8px 0 16px; font-size:12px; line-height:1.6; }
#hotel-dialog .hotel-info { padding:15px 17px; border-radius:14px; background:#f1ebe1; font-size:13px; line-height:1.7; }
.hotel-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
#hotel-next,#hotel-whatsapp { flex:1 1 180px; border:0; cursor:pointer; min-height:52px; text-align:center; line-height:1.5; padding:15px 20px; }
#hotel-back { border:1px solid #c8bbab; border-radius:28px; padding:12px 18px; background:transparent; color:var(--ink); font:inherit; font-size:14px; cursor:pointer; min-height:48px; }
.hotel-actions.is-review { flex-direction:column-reverse; }
.hotel-actions.is-review #hotel-whatsapp { flex-basis:auto; }
#hotel-summary { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:14px; line-height:1.75; background:#f1ebe1; padding:18px; border-radius:16px; }
@media(max-width:480px) { #hotel-dialog { padding:16px 18px 22px; border-radius:24px; } #hotel-dialog h2 { font-size:29px; } .hotel-columns,.hotel-profile-options { grid-template-columns:minmax(0,1fr); gap:0; } .hotel-profile-options { gap:10px; } #hotel-dialog fieldset { padding:8px 12px; } #hotel-dialog .hotel-profile { padding:0; } #hotel-dialog .hotel-columns label { margin:10px 0; } #hotel-dialog .hotel-header .eyebrow { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .hotel-progress-track span { transition:none; } }
