/* Hotel identity from cod_3/assets/foundation/rooms-foundation.css.
 * Scoped to guest templates; Foundation layout and status colours are retained.
 */
.guest-hotel {
  --guest-ink: #253d38;
  --guest-accent: #9a7445;
  --guest-paper: #faf8f4;
  --guest-border: #e3ded4;
  background: var(--guest-paper);
  color: #343a37;
  font-family: Arial, sans-serif;
  line-height: 1.6;
}
.guest-hotel .grid-container { max-width: 78rem; }
.guest-hotel h1, .guest-hotel h2, .guest-hotel h3,
.guest-hotel h4, .guest-hotel h5, .guest-hotel h6 {
  color: var(--guest-ink);
  font-family: Georgia, serif;
  font-weight: normal;
}
.guest-hotel h1 { font-size: clamp(1.8rem, 3vw, 2.75rem); }
.guest-hotel h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
.guest-hotel a { color: var(--guest-ink); }
.guest-hotel a:hover { color: #856239; }
.guest-hotel a:focus-visible, .guest-hotel button:focus-visible,
.guest-hotel input:focus-visible, .guest-hotel select:focus-visible,
.guest-hotel textarea:focus-visible {
  outline: 3px solid var(--guest-accent);
  outline-offset: 3px;
}
.guest-hotel .top-bar, .guest-hotel .top-bar ul { background: #fff; }
.guest-hotel .top-bar { padding: 1.25rem 0; border-bottom: 1px solid var(--guest-border); }
.guest-hotel .top-bar-left img { max-height: 80px; width: auto; }
.guest-hotel .dropdown.menu .submenu {
  border-color: var(--guest-border);
  box-shadow: 0 8px 30px #0002;
}
.guest-hotel .button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow) {
  background: var(--guest-ink);
  color: #fff;
}
.guest-hotel .button { border-radius: 3px; font-weight: bold; }
.guest-hotel .button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow):hover {
  background: #36564e;
}
.guest-hotel .button.hollow:not(.alert):not(.warning):not(.success):not(.secondary) {
  color: var(--guest-ink);
  border-color: var(--guest-ink);
}
.guest-hotel .button.hollow:hover { background: #f0ebe2; }
.guest-hotel label { color: #4c5650; font-size: .875rem; }
.guest-hotel input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):not([type=hidden]),
.guest-hotel select, .guest-hotel textarea {
  border-color: #d9ddd8;
  border-radius: 3px;
  box-shadow: none;
}
.guest-hotel input:disabled, .guest-hotel select:disabled,
.guest-hotel textarea:disabled { background-color: #f0ebe2; }
.guest-hotel .fieldset, .guest-hotel .mypanel, .guest-hotel .card {
  border: 1px solid var(--guest-border);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 3px 15px #27352f06;
}
.guest-hotel .fieldset { margin-top: 1.5rem; padding: 1.4rem; }
.guest-hotel .fieldset legend { color: var(--guest-ink); font-family: Georgia, serif; }
.guest-hotel .mypanel { margin-bottom: 1.5rem; padding: 1.25rem; }
.guest-hotel .mypaneltitle { color: var(--guest-ink); border-bottom: 1px solid var(--guest-border); padding-bottom: .75rem; }
.guest-hotel .progress-indicator { margin: 1.5rem auto 3rem; }
.guest-hotel .progress-indicator > li span { color: #687069; }
.guest-hotel .progress-indicator > li.is-current,
.guest-hotel .progress-indicator > li.is-current span,
.guest-hotel .progress-indicator > li.is-complete,
.guest-hotel .progress-indicator > li.is-complete span { color: var(--guest-ink); }
.guest-hotel .progress-indicator > li.is-current::before,
.guest-hotel .progress-indicator > li.is-complete::before,
.guest-hotel .progress-indicator > li.is-complete::after { background: var(--guest-ink); color: #fff; }
.guest-hotel footer {
  margin-top: 2rem;
  padding: 2rem 1.5rem;
  background: var(--guest-ink);
  color: #fff;
  font-size: .875rem;
}
.guest-hotel footer a { color: #eee7dc; }
.guest-hotel footer a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 639px) {
  .guest-hotel .top-bar { padding: 1rem 0; }
  .guest-hotel .expanded.button-group { flex-wrap: wrap; }
  .guest-hotel .expanded.button-group > .button { flex: 1 1 30%; }
  .guest-hotel .fieldset, .guest-hotel .mypanel { padding: 1rem; }
  .guest-hotel .progress-indicator > li { font-size: 1.1rem; }
  .guest-hotel .progress-indicator > li span { font-size: .7rem; }
}

/* Contemporary room cards; selection still uses the original booking fields. */
.guest-hotel .guest-room-card { padding:0; border:1px solid #e7e8e3; border-radius:16px; overflow:hidden; margin:0 0 1.5rem; background:white; box-shadow:0 8px 28px #253d3808; transition:border-color .2s,box-shadow .2s; }
.guest-hotel .room-modern-layout { display:grid; grid-template-columns:minmax(190px,.85fr) minmax(0,1.4fr); }
.guest-hotel .room-modern-photo { position:relative; min-height:330px; background:#eae6df; }
.guest-hotel .room-modern-photo img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; cursor:zoom-in; }
.guest-hotel .room-photo-hint { position:absolute; left:1rem; bottom:1rem; color:#fff; background:#172b25c9; padding:.4rem .7rem; border-radius:20px; font-size:.7rem; pointer-events:none; }
.guest-hotel .room-discount { position:absolute; top:1rem; left:1rem; background:#fff; color:#253d38; border-radius:20px; padding:.35rem .7rem; font-size:.75rem; font-weight:bold; pointer-events:none; }
.guest-hotel .room-modern-content { padding:1.5rem; min-width:0; }
.guest-hotel .room-modern-eyebrow { display:flex; align-items:center; justify-content:space-between; gap:.5rem; color:#727970; font-size:.7rem; }
.guest-hotel .room-availability { color:#48634e; }
.guest-hotel .room-availability::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:#6f8c66; margin-right:.4rem; }
.guest-hotel .room-availability.is-unavailable { color:#9c5041; }
.guest-hotel .room-availability.is-unavailable::before { background:#9c5041; }
.guest-hotel .room-modern-title { font-size:1.8rem; line-height:1.2; margin:1rem 0 .75rem; }
.guest-hotel .room-modern-description { color:#737970; font-size:.85rem; line-height:1.7; }
.guest-hotel .room-modern-description p { margin-bottom:.65rem; }
.guest-hotel .guest-room-details { font-size:.75rem; color:#253d38; cursor:pointer; padding:.25rem 0; }
.guest-hotel .guest-room-details span { margin-left:.4rem; }
.guest-hotel .room-modern-footer { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-top:1.5rem; padding-top:1.15rem; border-top:1px solid #edf0e9; }
.guest-hotel .room-nightly { font-size:1.75rem; font-weight:bold; color:#253d38; line-height:1.2; white-space:nowrap; }
.guest-hotel .room-nightly span { font-size:.7rem; font-weight:normal; color:#737970; }
.guest-hotel .room-modern-price del { font-size:.75rem; color:#8b8f87; }
.guest-hotel .room-stay-total { margin-top:.4rem; font-size:.7rem; color:#737970; }
.guest-hotel .room-stay-total strong { color:#343a37; }
.guest-hotel .room-modern-actions { text-align:right; }
.guest-hotel .room-choose.button { border-radius:8px; font-size:.8rem; padding:1rem; margin:0; white-space:nowrap; }
.guest-hotel .room-choose span { margin-left:.6rem; }
.guest-hotel .room-selected-controls { display:none; }
.guest-hotel .guest-room.is-selected .room-selected-controls { display:block; }
.guest-hotel .guest-room.is-selected .room-choose { display:none; }
.guest-hotel .guest-room.is-selected > .guest-room-card { border-color:#537664; box-shadow:0 0 0 1px #537664,0 8px 28px #253d3810; }
.guest-hotel .room-selected-label { display:block; color:#48634e; font-size:.7rem; margin-bottom:.5rem; }
.guest-hotel .guest-room-quantity { display:inline-flex; border:1px solid #dce2d9; border-radius:8px; overflow:hidden; }
.guest-hotel .guest-room-quantity select { width:3rem; height:2.5rem; padding:.4rem .8rem .4rem .4rem; margin:0; border:0; text-align:center; }
.guest-hotel .guest-room-step { width:2.3rem; background:#f3f5ef; cursor:pointer; color:#253d38; font-size:1.2rem; }
.guest-hotel .guest-room-step:disabled { color:#afb5ac; cursor:default; }
.guest-hotel .room-selected-controls [id^="book_bot_"] .button { margin:.5rem 0 0; width:100%; border-radius:8px; }
.guest-hotel .room-modern-actions .room-choose:disabled { opacity:.45; cursor:default; }
@media(max-width:1199px) {
 .guest-hotel .room-modern-layout { grid-template-columns:1fr; }
 .guest-hotel .room-modern-photo { height:245px; min-height:0; }
}
@media(max-width:639px) {
 .guest-hotel .room-modern-content { padding:1.15rem; }
 .guest-hotel .room-modern-photo { height:210px; }
 .guest-hotel .room-modern-title { font-size:1.7rem; }
 .guest-hotel .room-modern-footer { flex-wrap:wrap; }
 .guest-hotel .room-modern-actions { flex:1 0 100%; text-align:left; }
 .guest-hotel .room-choose.button { width:100%; }
 .guest-hotel .room-selected-controls { align-items:center; gap:.75rem; flex-wrap:wrap; }
 .guest-hotel .guest-room.is-selected .room-selected-controls { display:flex; }
 .guest-hotel .room-selected-label { flex:1 0 100%; margin:0; }
 .guest-hotel .room-selected-controls [id^="book_bot_"] { flex:1; }
 .guest-hotel .room-selected-controls [id^="book_bot_"] .button { margin:0; }
}
.guest-hotel #riepilogo { padding:1.25rem; background:#fff; border:1px solid #e7e8e3; border-radius:14px; font-size:.8rem; }
.guest-hotel #riepilogo .event-date { background:#f5f6f1; border:0; padding:.5rem; }
.guest-hotel #riepilogo .event-date p { background:transparent; margin:0; color:#253d38; }
.guest-hotel #riepilogo .event-title { font-size:.65rem; letter-spacing:.12em; }
.guest-hotel #riepilogo .event-day { font-size:1.8rem; }
.guest-hotel #riepilogo .event-month { font-size:.7rem; }
.guest-hotel #riepilogo .av-summary { border:0; background:transparent; padding:.75rem 0 0; }
.guest-hotel #riepilogo .room-summary { margin-bottom:.75rem; }
.guest-hotel #riepilogo .room-summary img { width:100%; max-height:110px; object-fit:cover; border-radius:7px; }
.guest-hotel #col_riepilogo { padding-left:1rem; }
.guest-hotel #riepilogo .event-date p { padding:.15rem .25rem; }
.guest-hotel #riepilogo .event-date { display:inline-block; width:49%; vertical-align:top; }
/* Editorial selection: room gallery and a single persistent checkout action. */
.guest-hotel .room-selection-experience #col_principale { width:100%; }
.guest-hotel .room-selection-experience #col_riepilogo { display:none; }
.guest-hotel .room-selection-experience { padding-bottom:7rem; }
.guest-hotel .room-selection-experience .progress-indicator { max-width:30rem; margin:1rem auto 1.5rem; font-size:.85rem; }
.guest-hotel .room-collection-intro { padding:1rem 0 2.5rem; }
.guest-hotel .room-collection-kicker { color:#8e704d; text-transform:uppercase; letter-spacing:.16em; font-size:.65rem; margin-bottom:1rem; }
.guest-hotel .room-collection-intro h1 { font-size:clamp(2.5rem,5vw,4rem); letter-spacing:-.045em; line-height:1.05; margin-bottom:1rem; }
.guest-hotel .room-collection-intro > p:last-child { color:#777e74; font-size:.9rem; }
.guest-hotel .room-selection-experience .guest-room-card { border-radius:6px; margin-bottom:2rem; box-shadow:none; border-color:#e4e1d9; }
.guest-hotel .room-selection-experience .room-modern-layout { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); }
.guest-hotel .room-selection-experience .room-modern-photo { min-height:380px; height:auto; overflow:hidden; }
.guest-hotel .room-modern-photo img { transition:transform .6s ease; }
.guest-hotel .room-modern-photo:hover img { transform:scale(1.035); }
.guest-hotel .room-selection-experience .room-modern-content { display:flex; flex-direction:column; padding:2rem; }
.guest-hotel .room-selection-experience .room-modern-title { font-size:2.5rem; letter-spacing:-.035em; margin:1.5rem 0 1rem; }
.guest-hotel .room-selection-experience .room-modern-description { max-width:27rem; line-height:1.85; }
.guest-hotel .room-selection-experience .guest-room-details { align-self:flex-start; margin-bottom:1.5rem; border-bottom:1px solid #baa68d; padding-bottom:.4rem; }
.guest-hotel .room-selection-experience .room-modern-footer { margin-top:auto; padding-top:1.5rem; }
.guest-hotel .room-selection-experience .room-nightly { font-size:2rem; letter-spacing:-.04em; }
.guest-hotel .room-selection-experience .room-choose.button { border-radius:4px; padding:1rem 1.2rem; }
.guest-hotel .room-selection-experience .room-selected-controls [id^="book_bot_"] { display:none; }
.guest-hotel .room-selection-experience .guest-room.is-selected > .guest-room-card { border-color:#537664; box-shadow:0 0 0 1px #537664; }
.guest-hotel .room-selection-dock { position:fixed; z-index:20; left:50%; bottom:1rem; transform:translateX(-50%); width:calc(100% - 2rem); max-width:76rem; display:flex; align-items:center; gap:1.5rem; background:#253d38; color:#fff; padding:1.15rem 1.5rem; border:1px solid #ffffff24; border-radius:10px; box-shadow:0 12px 50px #172b2540; }
.guest-hotel .room-dock-copy { min-width:0; flex:1; }
.guest-hotel .room-dock-eyebrow { display:block; text-transform:uppercase; font-size:.6rem; letter-spacing:.15em; color:#c6cdbf; margin-bottom:.25rem; }
.guest-hotel .room-dock-selection { display:block; font-family:Georgia,serif; font-weight:normal; font-size:1.2rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.guest-hotel .room-dock-price { text-align:right; }
.guest-hotel .room-dock-price[hidden] { display:none; }
.guest-hotel .room-dock-price strong { display:block; font-size:1.6rem; line-height:1.2; }
.guest-hotel .room-dock-price span { display:block; font-size:.6rem; color:#c6cdbf; }
.guest-hotel .room-selection-dock .room-dock-continue.button { margin:0; background:#eee4d3; color:#253d38; border-radius:5px; min-width:9rem; font-size:.85rem; padding:1rem; }
.guest-hotel .room-selection-dock .room-dock-continue.button:hover { background:#fff4e2; }
.guest-hotel .room-dock-continue:disabled { opacity:.45; cursor:default; }
.guest-hotel .room-dock-continue span { margin-left:1rem; }
@media(max-width:700px) {
 .guest-hotel .room-selection-experience .room-modern-layout { grid-template-columns:1fr; }
 .guest-hotel .room-selection-experience .room-modern-photo { min-height:0; height:260px; }
 .guest-hotel .room-selection-experience .room-modern-content { padding:1.4rem; }
 .guest-hotel .room-selection-experience .room-modern-title { font-size:2.1rem; margin:1rem 0; }
 .guest-hotel .room-selection-experience .room-modern-footer { margin-top:.5rem; }
 .guest-hotel .room-selection-experience .room-modern-actions { flex:initial; width:auto; }
 .guest-hotel .room-selection-dock { gap:.75rem; padding:1rem; bottom:.5rem; width:calc(100% - 1rem); flex-wrap:wrap; }
 .guest-hotel .room-dock-copy { flex:1 1 55%; }
 .guest-hotel .room-dock-selection { font-size:1rem; }
 .guest-hotel .room-dock-price strong { font-size:1.3rem; }
 .guest-hotel .room-dock-price span { max-width:8rem; }
 .guest-hotel .room-selection-dock .room-dock-continue.button { width:100%; }
 .guest-hotel .room-selection-experience { padding-bottom:10rem; }
}
@media(prefers-reduced-motion:reduce) { .guest-hotel .room-modern-photo img { transition:none; } }
.guest-hotel .room-selection-dock .room-dock-continue.button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow) { background:#eee4d3; color:#253d38; }
.guest-hotel .room-selection-dock .room-dock-continue.button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow):hover { background:#fff4e2; }
/* Gallery stays within the viewport and above the selection bar. */
.guest-hotel .room-selection-dock:not(.has-selection) { display:none; }
.guest-hotel.room-gallery-open { overflow:hidden; }
.guest-hotel .lbt-lightbox_imgs { position:fixed; inset:0; z-index:1050; width:100%; height:100dvh; padding:clamp(1rem,4vh,3rem) 1rem; background:#10201ded; overflow-y:auto; overscroll-behavior:contain; }
.guest-hotel .lbt-lightbox_imgs > .grid-container { position:relative; max-width:68rem; padding:1.5rem; border-radius:12px; background:#faf8f4; margin:auto; }
.guest-hotel .lbt-lightbox_imgs .grid-container .grid-container { background:transparent; }
.guest-hotel .lbt-lightbox_imgs h3 { font-size:1.6rem; padding-right:2rem; margin:0 0 1rem; }
.guest-hotel .room-gallery-close { position:absolute; z-index:3; top:.8rem; right:.8rem; width:2.75rem; height:2.75rem; border-radius:50%; color:#fff; background:#253d38; font-size:1.8rem; line-height:1; cursor:pointer; }
.guest-hotel .lbt-lightbox_imgs .orbit-container { height: min(70dvh,750px) !important; }
.guest-hotel .lbt-lightbox_imgs .orbit-slide { height:100%; }
.guest-hotel .lbt-lightbox_imgs .orbit-figure { height:100%; margin:0; }
.guest-hotel .lbt-lightbox_imgs .orbit-image { display:block; margin:0; width:100%; height:100%; object-fit:contain; }
.guest-hotel .lbt-lightbox_imgs .orbit-caption { display:none; }
.guest-hotel .lbt-lightbox_imgs .orbit-previous, .guest-hotel .lbt-lightbox_imgs .orbit-next { background:#253d38d9; border-radius:50%; width:2.75rem; height:2.75rem; padding:0; }
@media(max-width:639px) {
 .guest-hotel .lbt-lightbox_imgs { padding:1rem .5rem; }
 .guest-hotel .lbt-lightbox_imgs > .grid-container { padding:1rem .5rem; }
 .guest-hotel .lbt-lightbox_imgs .orbit-container { height:65dvh !important; }
}
.guest-hotel .lbt-lightbox_imgs > .grid-container { width:100%; flex:0 1 68rem; min-width:0; }
@media(max-width:639px) {
 .guest-hotel .lbt-lightbox_imgs .orbit-container { height:min(65dvh,85vw) !important; }
}
/* Details belong to the room card, including the original hotel content. */
.guest-hotel .guest-room-details-panel { margin:-2rem 0 2rem; padding:2rem; border:1px solid #e4e1d9; border-top:0; background:#faf9f6; border-radius:0 0 6px 6px; font-size:.9rem; color:#626b60; }
.guest-hotel .guest-room.has-open-details > .guest-room-card { border-radius:6px 6px 0 0; border-bottom-color:#eee9df; }
.guest-hotel .guest-room.is-selected .guest-room-details-panel { border-color:#537664; }
.guest-hotel .guest-room-details-panel > fieldset { border:0; margin:0; padding:0; min-width:0; }
.guest-hotel .room-details-heading { border-bottom:1px solid #e5e1d7; padding-bottom:1rem; margin-bottom:1.5rem; }
.guest-hotel .room-details-heading > span { text-transform:uppercase; color:#8e704d; letter-spacing:.14em; font-size:.65rem; }
.guest-hotel .room-details-heading h4 { font-size:1.6rem; margin:.5rem 0 0; }
.guest-hotel .guest-room-details-panel p { line-height:1.8; }
.guest-hotel .guest-room-details-panel ul { margin: .5rem 0 1.5rem 1.1rem; line-height:1.9; }
.guest-hotel .room-details-illustration { max-width:140px; display:block; margin:1rem auto; }
.guest-hotel .guest-room-details-panel table { margin:1.5rem 0; width:100%; border-collapse:collapse; table-layout:fixed; font-size:.8rem; }
.guest-hotel .guest-room-details-panel thead { background:#eaece4; color:#253d38; border:0; }
.guest-hotel .guest-room-details-panel th, .guest-hotel .guest-room-details-panel td { padding:.85rem .7rem; overflow-wrap:anywhere; border-bottom:1px solid #e5e6dd; }
.guest-hotel .guest-room-details-panel tbody { border:0; }
.guest-hotel .guest-room-details-panel tbody tr:nth-child(even) { background:#f0f1eb; }
.guest-hotel .guest-room-details-panel .label { border-radius:20px; font-size:.65rem; padding:.35rem .6rem; }
.guest-hotel .guest-room-details-panel .success.label { background:#e0eadd; color:#48634e; }
.guest-hotel .guest-room-details-panel .prezzo_offer { color:#253d38; font-weight:bold; }
.guest-hotel .guest-room-details-panel .rack_prezzo { font-size:.7rem; color:#8b8f87; }
.guest-hotel .room-details-close { color:#253d38; cursor:pointer; font-size:.8rem; padding:.5rem 0; border-bottom:1px solid #baa68d; }
.guest-hotel .room-details-close span { margin-left:.75rem; }
.guest-hotel .room-selection-experience [id^="panel_book_bot_"] { display:none; }
.guest-hotel .room-rate-mobile-label { display:none; }
@media(max-width:639px) {
 .guest-hotel .guest-room-details-panel { padding:1.2rem; }
 .guest-hotel .guest-room-details-panel th, .guest-hotel .guest-room-details-panel td { padding:.6rem .35rem; font-size:.7rem; }
 .guest-hotel .room-details-illustration { max-width:100px; }
}
/* Full frame desktop layout and persistent vertical selection summary. */
.guest-hotel.room-full-frame > .grid-container { max-width:none; }
.guest-hotel.room-full-frame .room-selection-experience { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:2rem; padding:0 1rem 3rem; }
.guest-hotel .room-selection-experience #col_riepilogo { display:block; width:100%; padding:0; position:sticky; top:1rem; align-self:start; }
.guest-hotel .room-selection-experience #riepilogo { display:none; }
.guest-hotel .room-selection-experience #col_principale { width:100%; min-width:0; }
.guest-hotel .room-selection-experience .room-collection-intro { padding:0 0 1.5rem; }
.guest-hotel .room-selection-experience .room-collection-intro h1 { font-size:2.1rem; }
.guest-hotel .room-selection-experience .room-modern-photo { min-height:260px; }
.guest-hotel .room-selection-experience .room-modern-title { font-size:2rem; }
.guest-hotel .room-selection-experience .room-modern-content { padding:1.25rem; }
.guest-hotel .room-selection-experience .room-modern-layout { grid-template-columns:minmax(0,.75fr) minmax(0,1fr); }
.guest-hotel .room-selection-dock, .guest-hotel .room-selection-dock:not(.has-selection) { display:flex; position:static; transform:none; width:100%; max-width:none; background:white; color:#253d38; border:1px solid #e3ded4; box-shadow:0 8px 28px #253d3808; border-radius:8px; padding:1.25rem; flex-direction:column; align-items:stretch; gap:1rem; max-height:calc(100dvh - 2rem); overflow-y:auto; }
.guest-hotel .room-sidebar-heading { display:flex; justify-content:space-between; align-items:center; }
.guest-hotel .room-sidebar-heading h2 { font-size:1.5rem; margin:0; }
.guest-hotel .room-summary-toggle { display:none; }
.guest-hotel .room-dock-copy { flex:initial; }
.guest-hotel .room-dock-eyebrow { color:#7d806f; }
.guest-hotel .room-dock-selection { white-space:normal; font: .85rem/1.6 Arial,sans-serif; }
.guest-hotel .room-side-content { width:100%; }
.guest-hotel .room-summary-dates { display:grid; grid-template-columns:1fr 1fr; gap:1rem; border-top:1px solid #e7e8e3; padding:1rem 0; }
.guest-hotel .room-summary-dates span { display:block; font-size:.65rem; color:#727970; text-transform:uppercase; }
.guest-hotel .room-summary-dates strong { font-size:.8rem; }
.guest-hotel .room-summary-item { background:#f3f5ef; padding:1rem; border-radius:6px; margin-bottom:.75rem; }
.guest-hotel .room-summary-item h3 { font: bold .9rem Arial,sans-serif; margin:0 0 .5rem; }
.guest-hotel .room-summary-item-price { font-size:1rem; }
.guest-hotel .room-summary-item-actions { display:flex; gap:1rem; margin:.65rem 0; }
.guest-hotel .room-summary-item-actions button, .guest-hotel .room-remove-all { font-size:.7rem; color:#546b5a; cursor:pointer; text-decoration:underline; }
.guest-hotel .room-summary-item summary { font-size:.7rem; cursor:pointer; padding:.5rem 0; border-top:1px solid #dde3d7; }
.guest-hotel .room-nightly-row { display:flex; justify-content:space-between; font-size:.7rem; margin:.3rem 0; }
.guest-hotel .room-dock-price { text-align:left; border-top:1px solid #e7e8e3; padding-top:1rem; }
.guest-hotel .room-dock-price strong { font-size:1.7rem; }
.guest-hotel .room-dock-price span { color:#727970; font-size:.7rem; }
.guest-hotel .room-selection-dock .room-dock-continue.button { width:100%; }
@media(max-width:1100px) and (min-width:901px) {
 .guest-hotel.room-full-frame .room-selection-experience { grid-template-columns:minmax(0,1fr) 300px; gap:1rem; }
 .guest-hotel .room-selection-experience .room-modern-layout { grid-template-columns:1fr; }
 .guest-hotel .room-selection-experience .room-modern-photo { height:220px; min-height:0; }
}
@media(max-width:900px) {
 .guest-hotel.room-full-frame .room-selection-experience { display:block; padding:0 0 9rem; }
 .guest-hotel .room-selection-experience #col_riepilogo { position:static; }
 .guest-hotel .room-selection-dock, .guest-hotel .room-selection-dock:not(.has-selection) { display:none; }
 .guest-hotel .room-selection-dock.has-selection { display:grid; grid-template-columns:minmax(0,1fr) auto; position:fixed; bottom:.5rem; left:.5rem; width:calc(100% - 1rem); max-height:80dvh; background:#fff; gap:.75rem; }
 .guest-hotel .room-sidebar-heading { grid-column:1/-1; }
 .guest-hotel .room-sidebar-heading h2 { font-size:1.1rem; }
 .guest-hotel .room-summary-toggle { display:block; font-size:.75rem; cursor:pointer; }
 .guest-hotel .room-dock-copy { display:none; }
 .guest-hotel .room-side-content { display:none; grid-column:1/-1; }
 .guest-hotel .room-selection-dock.is-expanded .room-side-content { display:block; }
 .guest-hotel .room-selection-dock .room-dock-continue.button { width:auto; min-width:8rem; }
 .guest-hotel .room-dock-price { padding:0; border:0; }
 .guest-hotel .room-dock-price strong { font-size:1.3rem; }
 .guest-hotel .room-selection-experience .room-modern-photo { height:250px; min-height:0; }
}
@media(max-width:700px) { .guest-hotel .room-selection-experience .room-modern-layout { grid-template-columns:1fr; } }
.room-summary-backdrop { display:none; }
.guest-hotel .room-summary-close { display:none; }
@media(max-width:900px) {
 .guest-hotel.room-summary-open { overflow:hidden; }
 .room-summary-backdrop:not([hidden]) { display:block; position:fixed; inset:0; background:#10201dbd; z-index:1030; }
 .guest-hotel .room-selection-dock.is-expanded { display:flex; position:fixed; top:50%; bottom:auto; left:50%; transform:translate(-50%,-50%); width:calc(100% - 1.5rem); max-width:28rem; max-height:90dvh; z-index:1040; padding:1.25rem; flex-direction:column; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-copy { display:block; }
 .guest-hotel .room-selection-dock.is-expanded .room-summary-close { display:block; font-size:1.8rem; cursor:pointer; color:#253d38; padding:.25rem; }
 .guest-hotel .room-selection-dock.is-expanded .room-summary-toggle { display:none; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-continue.button { width:100%; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-price { border-top:1px solid #e7e8e3; padding-top:1rem; }
}
.guest-hotel.room-checkout-frame > .grid-container { max-width:none; }
.guest-hotel .guest-checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; align-items:start; gap:2rem; }
.guest-hotel .guest-checkout-layout > form { min-width:0; }
.guest-hotel .guest-checkout-review { position:sticky; top:1rem; border:1px solid #e3ded4; border-radius:8px; background:#faf9f6; padding:1rem; max-height:calc(100dvh - 2rem); overflow:auto; }
.guest-hotel .guest-checkout-review > summary { font:1.4rem Georgia,serif; color:#253d38; cursor:pointer; }
.guest-hotel .guest-checkout-review .fieldset { background:transparent; padding:1rem 0; border:0; box-shadow:none; margin:.75rem 0 0; }
.guest-hotel .guest-checkout-review legend { font:1rem Georgia,serif; }
.guest-hotel .guest-checkout-review h4 { font-size:1.2rem; }
.guest-hotel .guest-checkout-review p, .guest-hotel .guest-checkout-review .cell { font-size:.8rem; }
.guest-hotel .guest-checkout-review .large-6, .guest-hotel .guest-checkout-review .large-9, .guest-hotel .guest-checkout-review .large-3 { width:100%; }
.guest-hotel .guest-checkout-review .thumbnail { max-height:100px; width:100%; object-fit:cover; border:0; }
.guest-hotel .guest-checkout-review .show-for-medium { display:none; }
.guest-hotel .guest-checkout-review .button { font-size:.75rem; }
.guest-hotel .guest-checkout-review table { font-size:.75rem; }
@media(max-width:900px) {
 .guest-hotel .guest-checkout-layout { display:flex; flex-direction:column-reverse; gap:1rem; }
 .guest-hotel .guest-checkout-review { position:static; width:100%; max-height:none; }
 .guest-hotel .guest-checkout-layout > form { width:100%; }
}
.guest-hotel .guest-checkout-review .grid-padding-x { margin-left:0; margin-right:0; }
.guest-hotel .guest-checkout-review .grid-padding-x > .cell { padding-left:0; padding-right:0; min-width:0; }
.guest-hotel .guest-checkout-review .thumbnail { max-width:100%; }
/* Shared hotel footer: public contacts and legal details. */
.guest-hotel .guest-site-footer { margin:2rem 0 0; padding:0; background:#253d38; color:#f4f0e7; font-size:.85rem; }
.guest-hotel .guest-footer-inner { width:100%; max-width:100rem; margin:0 auto; padding:3rem 2rem 1.4rem; }
.guest-hotel .guest-footer-main { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:2rem; padding-bottom:2.5rem; }
.guest-hotel .guest-footer-hotel { font:1.8rem/1.25 Georgia,serif; color:#fff9ec; display:inline-block; }
.guest-hotel .guest-footer-brand p { margin:.7rem 0 0; color:#c5cec1; font-size:.8rem; }
.guest-hotel .guest-footer-main h2 { font:600 .65rem Arial,sans-serif; text-transform:uppercase; letter-spacing:.16em; color:#d6c2a2; margin:0 0 1rem; }
.guest-hotel .guest-footer-main address { font-style:normal; color:#e2e5dc; line-height:1.8; font-size:.85rem; }
.guest-hotel .guest-footer-contact a { display:block; width:fit-content; }
.guest-hotel .guest-footer-phone { font-size:1rem; margin-bottom:.6rem; }
.guest-hotel .guest-footer-website { font-size:.8rem; }
.guest-hotel .guest-footer-website span { margin-left:.5rem; }
.guest-hotel .guest-footer-bottom { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem 1.5rem; border-top:1px solid #ffffff26; padding-top:1.2rem; color:#bdc8b8; font-size:.7rem; }
.guest-hotel .guest-footer-bottom > a { margin-left:auto; }
.guest-hotel .guest-footer-registration { color:#bdc8b8; }
.guest-hotel .guest-site-footer a:hover { color:#fff; text-underline-offset:4px; }
@media(max-width:700px) {
 .guest-hotel .guest-footer-inner { padding:2rem 1.25rem 1.4rem; }
 .guest-hotel .guest-footer-main { grid-template-columns:1fr 1fr; gap:1.75rem 1rem; padding-bottom:1.75rem; }
 .guest-hotel .guest-footer-brand { grid-column:1/-1; }
 .guest-hotel .guest-footer-hotel { font-size:1.6rem; }
 .guest-hotel .guest-footer-bottom { align-items:flex-start; flex-direction:column; gap:.6rem; }
 .guest-hotel .guest-footer-bottom > a { margin-left:0; }
}
@media(max-width:380px) { .guest-hotel .guest-footer-main { grid-template-columns:1fr; } }
@media(max-width:900px) { .guest-hotel.room-full-frame:has(.room-selection-dock.has-selection) .guest-site-footer { padding-bottom:8rem; } }
/* Hotel booking search band: compact controls, generous outer frame. */
.guest-hotel .guest-search { width:100%; margin:0 0 1.5rem; padding:1.5rem 2rem; border:0; border-bottom:1px solid #e9e5dc; border-radius:0; background:#fff; color:#253d38; }
.guest-hotel .guest-search-inner { display:grid; grid-template-columns:210px minmax(0,671px); justify-content:center; align-items:center; gap:2.5rem; max-width:1120px; margin:0 auto; }
.guest-hotel .guest-search-brand strong { display:block; font:1.45rem/1.2 Georgia,serif; color:#253d38; }
.guest-hotel .guest-search-brand > span { display:block; color:#7c664b; font-size:.7rem; margin-top:.6rem; letter-spacing:.1em; text-transform:uppercase; }
.guest-hotel .guest-search-fields { display:flex; flex-wrap:nowrap; gap:.75rem; align-items:end; }
.guest-hotel .guest-search-fields > label { flex:0 1 180px; min-width:0; font-size:.75rem; font-weight:bold; color:#4c5650; letter-spacing:.04em; }
.guest-hotel .guest-search-fields > label:nth-child(3) { flex-basis:140px; }
.guest-hotel .guest-search-fields input, .guest-hotel .guest-search-fields select { background-color:#fff; color:#253d38; margin:.4rem 0 0; height:3rem; border:1px solid #d9ddd8; border-radius:3px; box-shadow:none; font-size:.85rem; }
.guest-hotel .guest-search-submit.button { margin:0; height:3rem; width:135px; flex:0 0 135px; border-radius:3px; font-size:.8rem; padding:.8rem 1.1rem; }
.guest-hotel .guest-search .guest-search-submit.button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow) { background:#253d38; color:#fff; }
.guest-hotel .guest-search .guest-search-submit.button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow):hover { background:#36564d; }
.guest-hotel .guest-search-submit span { margin-left:.8rem; }
.guest-hotel .guest-search-options { display:flex; align-items:center; justify-content:flex-start; gap:1.5rem; margin-top:.65rem; position:relative; }
.guest-hotel .guest-search-options > details { position:relative; border:0; margin:0; padding:0; }
.guest-hotel .guest-search-options summary { width:fit-content; cursor:pointer; list-style:none; font-size:.7rem; color:#687069; padding:.2rem 0; }
.guest-hotel .guest-search-options summary::-webkit-details-marker { display:none; }
.guest-hotel .guest-search-options summary::after { content:'⌄'; margin-left:.45rem; }
.guest-hotel .guest-search-options summary > span { display:none; }
.guest-hotel .guest-search-options details[open] > summary { color:#253d38; text-decoration:underline; text-underline-offset:4px; }
.guest-hotel .guest-search-popover { position:absolute; top:calc(100% + .85rem); left:0; width:320px; z-index:1002; box-sizing:border-box; background:#fff; color:#626b60; border:1px solid #dddccd; border-radius:6px; box-shadow:0 12px 40px #10201d38; padding:1.5rem; }
.guest-hotel .guest-search-popover::before { content:''; position:absolute; top:-7px; left:1.3rem; width:12px; height:12px; background:#fff; border-top:1px solid #dddccd; border-left:1px solid #dddccd; transform:rotate(45deg); }
.guest-hotel .guest-search-popover-close { position:absolute; top:.3rem; right:.5rem; width:2rem; height:2rem; font-size:1.4rem; color:#253d38; cursor:pointer; }
.guest-hotel .guest-search-popover label { display:block; margin:.5rem 0 0; font-size:.7rem; color:#626b60; }
.guest-hotel .guest-search-popover input, .guest-hotel .guest-search-popover select { margin:.4rem 0 0; width:100%; }
.guest-hotel .guest-search-popover ul { margin:.5rem 0 1rem 1rem; font-size:.8rem; line-height:1.85; }
.guest-hotel .guest-search-popover p { font-size:.7rem; }
.guest-hotel .guest-search-loyalty { color:#253d38; cursor:pointer; border-bottom:1px solid #b6a183; font-size:.8rem; padding-bottom:.3rem; }
.guest-hotel .ui-datepicker { z-index:1100 !important; }
@media(max-width:1000px) {
 .guest-hotel .guest-search-inner { grid-template-columns:1fr; gap:1rem; max-width:650px; }
 .guest-hotel .guest-search-brand { display:flex; gap:1rem; align-items:baseline; }
 .guest-hotel .guest-search-brand strong { font-size:1.25rem; }
 .guest-hotel .guest-search-brand > span { margin:0; }
}
@media(max-width:600px) {
 .guest-hotel .guest-search { padding:1.25rem 1rem; }
 .guest-hotel .guest-search-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.7rem; }
 .guest-hotel .guest-search-submit.button { width:100%; }
 .guest-hotel .guest-search-fields input, .guest-hotel .guest-search-fields select { font-size:1rem; }
 .guest-hotel .guest-search-options { gap:1.1rem; }
 .guest-hotel .guest-search-options > details { position:static; }
 .guest-hotel .guest-search-popover { left:0; width:min(100%,360px); top:calc(100% + .6rem); }
}
@media(max-width:900px) { .guest-hotel.room-full-frame .room-selection-experience:not(:has(.room-selection-dock.has-selection)) { padding-bottom:1rem; } }

.guest-hotel .guest-search .booking-label-icon { width:15px; height:15px; vertical-align:middle; margin-right:.3rem; color:#9a7445; }

/* Clear stay totals and compact rate information. */
.guest-hotel .room-selection-experience .room-nightly { font-size:.8rem; letter-spacing:0; font-weight:normal; margin-top:.4rem; }
.guest-hotel .room-stay-total { margin-top:0; }
.guest-hotel .room-stay-total strong { display:block; font-size:1.75rem; line-height:1.2; color:#253d38; margin-bottom:.2rem; }
.guest-hotel .room-tax-note { font-size:.7rem; color:#737970; margin:.35rem 0; }
.guest-hotel .room-rate-conditions { font-size:.72rem; color:#4c5650; max-width:30rem; }
.guest-hotel .room-rate-conditions summary { cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.guest-hotel .room-rate-conditions ul { margin:.6rem 0 0 1rem; line-height:1.6; }
.guest-hotel .room-dock-selection { line-height:1.5; }

/* Quantity starts at zero and stays in the same place after selection. */
.guest-hotel .room-selection-experience .room-modern-actions { padding:.75rem 0 .25rem 1rem; min-width:150px; }
.guest-hotel .room-selection-experience .room-choose { display:none; }
.guest-hotel .room-selection-experience .room-selected-controls,
.guest-hotel .room-selection-experience .guest-room.is-selected .room-selected-controls { display:flex; flex-direction:column; align-items:flex-end; gap:.75rem; }
.guest-hotel .room-selection-experience .room-selected-label { margin:0; line-height:1.5; }
.guest-hotel .room-selection-experience .guest-room-quantity { flex-shrink:0; }
@media (max-width:600px) {
 .guest-hotel .room-selection-experience .room-modern-actions { padding:.75rem 0 .25rem; }
 .guest-hotel .room-selection-experience .room-selected-controls,
 .guest-hotel .room-selection-experience .guest-room.is-selected .room-selected-controls { align-items:flex-start; }
}

/* One consistent frame for hotel identity, search and booking steps. */
.guest-hotel.room-full-frame .top-bar { max-width:none; padding:.85rem 0; margin:0 1rem; }
.guest-hotel.room-full-frame .top-bar-left img { max-height:52px; }
.guest-hotel.room-full-frame .guest-search { padding:1rem 2rem; margin-bottom:1rem; }
.guest-hotel.room-full-frame .guest-search-inner { max-width:none; grid-template-columns:minmax(200px,1fr) minmax(0,671px) minmax(0,1fr); gap:2rem; justify-content:stretch; }
.guest-hotel.room-full-frame .guest-search-brand strong { font-size:1.25rem; }
.guest-hotel.room-full-frame .guest-search-brand > span { margin-top:.3rem; }
.guest-hotel .booking-stage-nav { padding:.25rem 0 1rem; margin:0; }
.guest-hotel .booking-stage-nav .progress-indicator { display:flex; align-items:center; justify-content:flex-start; gap:2rem; max-width:none; width:auto; margin:0; }
.guest-hotel .booking-stage-nav .progress-indicator > li { display:flex; align-items:center; gap:.6rem; font-size:.8rem; text-align:left; }
.guest-hotel .booking-stage-nav .progress-indicator > li::before { flex:0 0 26px; width:26px; height:26px; margin:0; line-height:26px; font-size:.85rem; z-index:auto; }
.guest-hotel .booking-stage-nav .progress-indicator > li::after { display:none; }
.guest-hotel .booking-stage-nav .progress-indicator > li span { position:static; transform:none; font-size:.72rem; text-transform:none; letter-spacing:0; }
@media (max-width:1100px) {
 .guest-hotel.room-full-frame .guest-search-inner { grid-template-columns:200px minmax(0,671px); gap:1.5rem; }
}
@media (max-width:1000px) {
 .guest-hotel.room-full-frame .guest-search-inner { grid-template-columns:1fr; gap:.75rem; }
 .guest-hotel.room-full-frame .guest-search-brand { display:none; }
 .guest-hotel.room-full-frame .guest-search { padding:1rem; }
 .guest-hotel .booking-stage-nav .progress-indicator { gap:1rem; justify-content:space-between; }
 .guest-hotel .booking-stage-nav .progress-indicator > li { gap:.4rem; }
 .guest-hotel .booking-stage-nav .progress-indicator > li span { font-size:.65rem; }
}

/* Booking steps sit above both room and summary columns. */
.guest-hotel.room-full-frame .booking-stage-nav { padding:.25rem 2rem 1.25rem; }
@media (max-width:600px) {
 .guest-hotel.room-full-frame .booking-stage-nav { padding:.25rem 1rem 1rem; }
}
.guest-hotel.room-full-frame .booking-stage-nav .progress-indicator { justify-content:center; }

/* Offer hierarchy uses actual rack-rate savings and online allotment. */
.guest-hotel .room-discount { display:flex; align-items:center; gap:.6rem; border-radius:4px; padding:.5rem .7rem; background:#253d38; color:white; font-size:.7rem; box-shadow:0 2px 10px #0002; }
.guest-hotel .room-discount strong { font-size:1rem; color:#fff; }
.guest-hotel .room-rate-highlights { display:flex; gap:.5rem .8rem; flex-wrap:wrap; margin:0 0 .75rem; font-size:.75rem; line-height:1.5; }
.guest-hotel .room-included { color:#326343; font-weight:bold; }
.guest-hotel .room-online-stock { color:#626b60; }
.guest-hotel .room-online-stock.is-limited { color:#89542c; font-weight:bold; }
.guest-hotel .room-reference-price { color:#737970; font-size:.7rem; margin-bottom:.3rem; }
.guest-hotel .room-reference-price del { display:inline; font-size:inherit; }
.guest-hotel .room-saving { display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .5rem; margin:.6rem 0 .35rem; font-size:.7rem; color:#626b60; }
.guest-hotel .room-saving strong { background:#edf5ed; color:#326343; padding:.25rem .5rem; border-radius:3px; font-size:.8rem; }
.guest-hotel .guest-room-quantity [data-room-step="1"]:not(:disabled) { background:#253d38; color:#fff; }
@media (min-width:701px) {
 .guest-hotel .room-selection-experience .room-modern-photo { height:auto; align-self:stretch; }
}

/* Availability and occupancy remain prominent at the top of each card. */
.guest-hotel .room-modern-eyebrow { flex-wrap:wrap; gap:.6rem; font-size:.82rem; font-weight:bold; line-height:1.4; }
.guest-hotel .room-availability,
.guest-hotel .room-occupancy { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .7rem; border-radius:4px; }
.guest-hotel .room-availability { background:#edf5ed; color:#2f633e; border:1px solid #d2e5d2; }
.guest-hotel .room-availability::before { width:8px; height:8px; margin:0; flex-shrink:0; background:#3f8050; }
.guest-hotel .room-availability.is-unavailable { background:#fcf0ed; border-color:#eccdc5; color:#903f30; }
.guest-hotel .room-occupancy { background:#f6f3ec; border:1px solid #e5ded0; color:#253d38; }
.guest-hotel .room-occupancy i { font-size:1rem; }

/* Rack and offer prices compare the same nightly unit. */
.guest-hotel .room-price-comparison { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; }
.guest-hotel .room-price-comparison .room-reference-price { display:flex; flex-direction:column; gap:.1rem; margin:0; font-size:.72rem; }
.guest-hotel .room-price-comparison .room-reference-price del { font-size:1.05rem; color:#8a736c; }
.guest-hotel .room-price-arrow { font-size:1.4rem; color:#9a7445; }
.guest-hotel .room-selection-experience .room-price-comparison .room-nightly { margin:0; font-size:1.85rem; line-height:1.25; font-weight:bold; color:#253d38; }
.guest-hotel .room-price-comparison .room-nightly span { font-size:.75rem; font-weight:normal; }
.guest-hotel .room-saving { margin:.7rem 0; }
.guest-hotel .room-saving strong { font-size:.9rem; padding:.35rem .6rem; }
.guest-hotel .room-stay-total { margin-top:.65rem; font-size:.75rem; }
.guest-hotel .room-stay-total strong { display:inline; font-size:.9rem; margin:0; }

/* Compact room comparison and keep quantity next to its rate. */
.guest-hotel .room-selection-experience .room-modern-content { padding:1rem 1.1rem; }
.guest-hotel .room-selection-experience .room-modern-title { font-size:1.7rem; margin:.5rem 0; }
.guest-hotel .room-selection-experience .room-modern-footer { margin-top:.75rem; padding-top:.8rem; align-items:flex-start; justify-content:flex-start; gap:1rem; }
.guest-hotel .room-selection-experience .room-modern-price { flex:0 1 auto; }
.guest-hotel .room-selection-experience .room-modern-actions { min-width:135px; padding:.25rem 0; }
.guest-hotel .room-selection-experience .room-selected-controls,
.guest-hotel .room-selection-experience .guest-room.is-selected .room-selected-controls { align-items:flex-start; }
.guest-hotel .room-online-stock { display:inline-flex; align-items:center; padding:.2rem .5rem; border:1px solid #e3ded4; border-radius:4px; background:#faf8f4; font-size:.72rem; }
.guest-hotel .room-online-stock.is-limited { background:#fff3e4; border-color:#e9c79d; color:#865020; }
@media (max-width:1100px) {
 .guest-hotel .room-selection-experience .room-modern-footer { flex-wrap:wrap; gap:.8rem 1.25rem; }
}
@media (max-width:600px) {
 .guest-hotel .room-selection-experience .room-modern-actions { flex:1 0 100%; }
}

/* The same progress component is used by selection, guest details and confirmation. */
.guest-hotel .booking-stage-nav { padding:.25rem 1rem 1.25rem; margin:0; }
.guest-hotel .booking-stage-nav .progress-indicator { display:flex; justify-content:center; align-items:center; gap:2rem; max-width:none; width:auto; margin:0; }
@media (max-width:600px) {
 .guest-hotel .booking-stage-nav .progress-indicator { gap:.8rem; }
}
/* White language selector in the shared hotel header. */
.guest-hotel .top-bar .dropdown.menu > li > a.button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow) {
  background:#fff;
  color:#253d38;
  border:1px solid #d9ddd8;
}
.guest-hotel .top-bar .dropdown.menu > li > a.button:not(.alert):not(.warning):not(.success):not(.secondary):not(.hollow):hover {
  background:#faf8f4;
  color:#253d38;
}
.guest-hotel .top-bar .dropdown.menu > li.is-dropdown-submenu-parent > a::after { border-top-color:#253d38; }

.guest-hotel .top-bar .menu > li > a.guest-login-link { display:flex; align-items:center; gap:.45rem; font-size:.85rem; font-weight:600; padding:.7rem .85rem; color:#253d38; }
.guest-hotel .guest-login-link i { font-size:1rem; }
/* Keep the quantity label and its three controls together without flex wrapping. */
.guest-hotel .room-selection-experience .room-modern-footer { display:grid; grid-template-columns:minmax(0,1fr) max-content; align-items:end; }
.guest-hotel .room-selection-experience .room-modern-actions { width:auto; min-width:0; padding:0 0 .25rem; justify-self:end; }
.guest-hotel .room-selection-experience .room-selected-controls,
.guest-hotel .room-selection-experience .guest-room.is-selected .room-selected-controls { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:flex-end; gap:.6rem; }
.guest-hotel .room-selection-experience .room-selected-label { flex:none; max-width:155px; text-align:right; }
.guest-hotel .room-selection-experience .guest-room-quantity { display:inline-flex; flex-wrap:nowrap; align-items:stretch; width:132px; }
.guest-hotel .room-selection-experience .guest-room-step { flex:0 0 37px; height:40px; }
.guest-hotel .room-selection-experience .guest-room-count {
 flex:0 0 56px; width:56px; min-width:0; height:40px;
 appearance:none; -webkit-appearance:none;
 padding:0 22px 0 8px; text-align:center; color:#253d38; cursor:pointer;
 background-color:#fff;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23253d38' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-origin:border-box; background-position:right 7px center; background-size:12px 8px; background-repeat:no-repeat;
}
.guest-hotel .room-selection-experience .guest-room-count:focus-visible { outline:2px solid #537664; outline-offset:-2px; }
@media (max-width:450px) {
 .guest-hotel .room-selection-experience .room-modern-footer { grid-template-columns:minmax(0,1fr); }
 .guest-hotel .room-selection-experience .room-modern-actions { justify-self:start; }
 .guest-hotel .room-selection-experience .room-selected-controls,
 .guest-hotel .room-selection-experience .guest-room.is-selected .room-selected-controls { align-items:flex-start; }
 .guest-hotel .room-selection-experience .room-selected-label { text-align:left; }
}

/* Quiet supporting details; keep room, price and quantity as the main reading order. */
.guest-hotel .room-selection-experience .room-modern-photo { min-height:240px; }
.guest-hotel .room-selection-experience .room-rate-highlights { gap:.4rem .65rem; margin-bottom:.45rem; font-size:.72rem; }
.guest-hotel .room-selection-experience .room-included { font-weight:normal; }
.guest-hotel .room-selection-experience .room-online-stock { background:transparent; border-color:transparent; padding:.1rem 0; font-size:.7rem; }
.guest-hotel .room-selection-experience .room-online-stock.is-limited { color:#865020; font-weight:600; }
.guest-hotel .room-selection-experience .room-modern-description { line-height:1.5; font-size:.75rem; }
.guest-hotel .room-selection-experience .room-saving { margin:.5rem 0; gap:.25rem .4rem; }
.guest-hotel .room-selection-experience .room-price-comparison { gap:.5rem; }
.guest-hotel .room-selection-experience .room-modern-actions { margin-left:.25rem; }
@media (max-width:700px) {
 .guest-hotel .room-selection-experience .room-modern-photo { height:210px; min-height:0; }
}

.guest-hotel .is-submitting { opacity:.6; cursor:wait; }

.guest-hotel .consent-server-error { display:block; color:#b23c2d; font-size:.8rem; margin:-.25rem 0 .75rem; }

/* Mobile booking summary: scroll only the details, keep the action in view. */
@media(max-width:900px) {
 .guest-hotel .room-selection-dock.has-selection { border:1px solid #b7c6bd; box-shadow:0 -5px 30px #10201d30; padding:1rem; }
 .guest-hotel .room-selection-dock.is-expanded { width:calc(100% - 1.25rem); max-height:calc(100dvh - 3rem); gap:0; padding:0; overflow:hidden; border-radius:8px; }
 .guest-hotel .room-selection-dock.is-expanded .room-sidebar-heading { flex:none; padding:1rem 1.25rem; border-bottom:1px solid #e3ded4; }
 .guest-hotel .room-selection-dock.is-expanded .room-summary-close { width:44px; height:44px; padding:0; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-copy { flex:none; padding:.75rem 1.25rem; }
 .guest-hotel .room-selection-dock.is-expanded .room-side-content { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 1.25rem .75rem; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-price { flex:none; display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:0; padding:1rem 1.25rem .75rem; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-price span { max-width:55%; }
 .guest-hotel .room-selection-dock.is-expanded .room-dock-continue.button { flex:none; width:calc(100% - 2.5rem); min-height:48px; margin:0 1.25rem 1.25rem; background:#253d38; color:white; font-weight:bold; }
}
