/* ============================================================
 *  aviso-reserva.css
 *
 *  Extraido de aviso.php, donde vivia como <style> inline.
 *  Al ser un archivo aparte el navegador lo cachea, en vez de
 *  recibir el mismo CSS en cada carga de la pagina.
 * ============================================================ */

          
            .reserva-modal-card {
              position: relative;
              clear: both;
              float: right;
              width: 100%;
              margin: 26px 0 0 auto;
              padding: 0;
              background: transparent;
              border: 0;
              border-radius: 0;
              box-shadow: none;
              box-sizing: border-box;
              font-family: Myriad Pro, Verdana, sans-serif;
            }
            .reserva-modal-cerrar {
              position: absolute;
              right: 14px;
              top: 12px;
              z-index: 10002;
              width: 36px;
              height: 36px;
              border: 0;
              background: transparent;
              color: #222;
              font-size: 30px;
              font-weight: bold;
              line-height: 32px;
              cursor: pointer;
              border-radius: 50%;
              text-align: center;
            }
            .reserva-modal-cerrar:hover {
              background: #f1f1f1;
            }
            .reserva-modal-top {
              display: block;
              position: relative;
              clear: both;
              width: 80%;
              margin: 0 0 9px auto;
            }
            .reserva-room-selected {
              display: none;
              margin: 0 0 10px auto;
              width: 80%;
              padding: 10px 12px;
              border: 1px solid #d8d8d8;
              border-radius: 7px;
              background: #fafafa;
              color: #444;
              font-size: 13px;
              line-height: 1.35;
              box-sizing: border-box;
            }
            .reserva-room-selected strong {
              color: #222;
            }
            .reserva-modal-total {
              font-size: 14px;
              color: #2b2b2b;
              font-weight: bold;
              line-height: 1.2;
            }
            .reserva-modal-total small {
              display: block;
              margin-top: 4px;
              color: #6b6b6b;
              font-size: 8px;
              font-weight: normal;
            }
            .reserva-price-line {
              display: none;
            }
            .reserva-price-line strong {
              color: #252525;
              text-decoration: underline;
            }
            .reserva-price-line small {
              display: inline-block;
              margin-left: 3px;
              color: #666;
              font-size: 11px;
              font-weight: normal;
            }
            .reserva-boxes {
              display: grid;
              grid-template-columns: 1fr 1fr;
              border: 1px solid #adadad;
              border-radius: 7px;
              overflow: hidden;
              background: transparent;
            }
            .reserva-box {
              min-height: 39px;
              padding: 7px 9px;
              border-right: 1px solid #d0d0d0;
              box-sizing: border-box;
              cursor: pointer;
            }
            .reserva-box:last-child {
              border-right: 0;
            }
            .reserva-viajeros-box {
              position: relative;
              min-height: 41px;
              margin-top: 16px;
              padding: 8px 10px;
              border: 1px solid #adadad;
              border-radius: 7px;
              box-sizing: border-box;
              color: #222;
              font-size: 10px;
              background: transparent;
              cursor: pointer;
            }
            .reserva-viajeros-box.open {
              border-color: #222;
              border-width: 2px;
              border-bottom-left-radius: 0;
              border-bottom-right-radius: 0;
            }
            .reserva-viajeros-head {
              position: relative;
              padding-right: 21px;
            }
            .reserva-viajeros-arrow {
              position: absolute;
              right: 2px;
              top: 7px;
              width: 7px;
              height: 7px;
              border-left: 2px solid #333;
              border-top: 2px solid #333;
              transform: rotate(45deg);
            }
            .reserva-viajeros-box.open .reserva-viajeros-arrow {
              top: 11px;
              transform: rotate(225deg);
            }
            .reserva-viajeros-panel {
              display: none;
              padding: 14px 12px 9px;
              border: 1px solid #d6d6d6;
              border-top: 0;
              background: rgba(255,255,255,0.98);
              box-sizing: border-box;
            }
            .reserva-viajeros-panel.open {
              display: block;
            }
            .reserva-viajero-row {
              display: grid;
              grid-template-columns: 1fr 75px;
              align-items: center;
              gap: 10px;
              margin-bottom: 15px;
            }
            .reserva-viajero-title {
              display: block;
              color: #333;
              font-size: 12px;
              font-weight: bold;
              line-height: 1.2;
            }
            .reserva-viajero-subtitle {
              display: block;
              margin-top: 3px;
              color: #333;
              font-size: 11px;
              line-height: 1.2;
            }
            .reserva-viajero-link {
              color: #333;
              text-decoration: underline;
            }
            .reserva-viajero-controls {
              display: grid;
              grid-template-columns: 23px 20px 23px;
              align-items: center;
              justify-items: center;
              gap: 4px;
            }
            .reserva-viajero-btn {
              width: 23px;
              height: 23px;
              border: 0;
              border-radius: 50%;
              background: #f1f1f1;
              color: #333;
              font-size: 14px;
              line-height: 23px;
              cursor: pointer;
            }
            .reserva-viajero-btn:disabled {
              color: #c9c9c9;
              cursor: default;
            }
            .reserva-viajero-count {
              color: #222;
              font-size: 12px;
              text-align: center;
            }
            .reserva-viajeros-help {
              margin: 5px 0 13px;
              color: #333;
              font-size: 10px;
              line-height: 1.22;
            }
            .reserva-viajeros-close {
              display: block;
              margin: 2px 0 0 auto;
              padding: 0;
              border: 0;
              background: transparent;
              color: #333;
              font-size: 11px;
              font-weight: bold;
              cursor: pointer;
            }
            .reserva-box-label {
              display: block;
              color: #333;
              font-size: 7px;
              font-weight: bold;
              text-transform: uppercase;
            }
            .reserva-box-value {
              display: block;
              margin-top: 3px;
              color: #222;
              font-size: 14px;
            }
            .reserva-modal-actions {
              display: block;
              margin-top: 18px;
              text-align: center;
            }
            .reserva-modal-note {
              display: block;
              margin-top: 14px;
              color: #666;
              font-size: 10px;
              line-height: 1.35;
            }
            .reserva-modal-note strong {
              color: #333;
            }
            .reserva-modal-note .reserva-total-final {
              display: block;
              margin-top: 6px;
              color: #2e7d32;
              font-size: 12px;
            }
            /* El precio sin descuento, tachado al lado del rebajado, y
               cuanto se ahorra. Mismos colores que la cinta de la promo
               en la ficha. */
            .reserva-modal-note .reserva-tachado {
              color: #6A7280;
              text-decoration: line-through;
            }
            .reserva-modal-note .reserva-ahorro {
              display: block;
              margin-top: 3px;
              color: #C4520D;
              font-size: 12px;
              font-weight: bold;
            }
            .reserva-modal-submit {
              width: 100%;
              min-height: 39px;
              border: 0;
              border-radius: 21px;
              background: #55b95b;
              color: #fff;
              font-family: Myriad Pro, Verdana, sans-serif;
              font-size: 15px;
              font-weight: bold;
              cursor: pointer;
            }
            .reserva-modal-submit:disabled {
              background: #9ecfa1;
              cursor: default;
            }
            .reserva-calendar-wrap {
              display: none;
              position: absolute;
              z-index: 10000;
              right: 0;
              top: 104px;
              width: 980px;
              max-width: calc(100vw - 40px);
              padding: 18px;
              background: rgba(255,255,255,0.98);
              border: 1px solid #dddddd;
              border-radius: 14px;
              box-shadow: 0 10px 24px rgba(0,0,0,0.14);
              box-sizing: border-box;
            }
            .reserva-calendar-wrap .tomate-calendar-toolbar {
              padding-right: 52px;
            }
            .reserva-calendar-wrap .tomate-calendar-nav {
              float: left;
              margin-right: 14px;
            }
            .reserva-calendar-wrap .tomate-calendar-title {
              float: left;
            }
            .reserva-calendar-wrap .tomate-calendar-months,
            .reserva-calendar-wrap .tomate-calendar-summary {
              clear: both;
            }
            #calendario_reserva_overlay {
              display: block;
              position: relative;
              clear: both;
              float: right;
              width: 100%;
              margin-top: 18px;
              text-align: left;
            }
            .hotel-reserva-top {
              display: none;
            }
            .hotel-room-card {
              position: relative;
              float: left;
              display: grid;
              grid-template-columns: minmax(220px, 260px) minmax(0, 1fr) 170px;
              gap: 18px;
              align-items: start;
              width: 100%;
              margin: 10px 0 14px 0;
              padding: 18px;
              border: 1px solid #e2e7db;
              border-radius: 22px;
              background: #fff;
              box-sizing: border-box;
              overflow: hidden;
              border-bottom: 1px solid #d9d9d9;
            }
            .hotel-room-card .slider {
              position: relative;
              float: none !important;
              width: 100% !important;
              max-width: 100%;
              height: 170px;
              overflow: hidden;
              border-radius: 18px;
              box-sizing: border-box;
            }
            .hotel-room-card .s_element,
            .hotel-room-card .s_element a,
            .hotel-room-card .s_element img {
              width: 100%;
              height: 100%;
            }
            .hotel-room-card .s_element img {
              object-fit: cover;
              display: block;
            }
            .hotel-room-info {
              min-width: 0;
              box-sizing: border-box;
            }
            .hotel-room-title {
              margin: 0 0 10px;
              color: #24344d;
              font-size: 25px;
              line-height: 1.08;
              font-family: Myriad Pro, Verdana, sans-serif;
            }
            .hotel-room-description {
              display: block;
              margin: 0 0 14px;
              color: #5c6672;
              font-size: 14px;
              line-height: 1.45;
              font-family: Myriad Pro, Verdana, sans-serif;
            }
            .hotel-room-beds {
              display: grid;
              grid-template-columns: repeat(3, minmax(0, 1fr));
              gap: 10px;
            }
            .hotel-room-beds .fset_label_1 {
              width: 100% !important;
              min-width: 0;
              margin: 0 !important;
              box-sizing: border-box;
            }
            .hotel-room-actions {
              position: relative;
              float: none;
              width: 100%;
              min-height: 170px;
              padding-left: 16px;
              border-left: 1px solid #c3c3c3;
              box-sizing: border-box;
              text-align: left;
            }
            .hotel-room-capacity {
              display: inline-block;
              margin: 2px 0 0;
              color: #666;
              font-size: 14px;
              font-family: Myriad Pro, Verdana, sans-serif;
            }
            .hotel-room-btn {
              display: block;
              width: 100%;
              min-height: 38px;
              margin: 14px 0 0;
              border: 0;
              border-radius: 6px;
              background: #55b95b;
              color: #fff;
              font-size: 15px;
              font-family: Myriad Pro, Verdana, sans-serif;
              font-weight: bold;
              cursor: pointer;
            }
            @media (max-width: 980px) {
              .hotel-room-card {
                grid-template-columns: 1fr;
              }
              .hotel-room-actions {
                min-height: 0;
                padding-left: 0;
                border-left: 0;
                border-top: 1px solid #c3c3c3;
                padding-top: 14px;
              }
              .hotel-room-beds {
                grid-template-columns: 1fr;
              }
            }
            .reserva-confirm-overlay {
              display: none;
              position: fixed;
              inset: 0;
              align-items: center;
              justify-content: center;
              padding: 15px;
              background: rgba(0,0,0,0.45);
              z-index: 20000;
              box-sizing: border-box;
            }
            .reserva-rooms-overlay {
              display: none;
              position: fixed;
              inset: 0;
              align-items: center;
              justify-content: center;
              padding: 15px;
              background: rgba(0,0,0,0.45);
              z-index: 19990;
              box-sizing: border-box;
            }
            .reserva-rooms-box {
              position: relative;
              width: 940px;
              max-width: 100%;
              max-height: 100%;
              padding: 22px;
              background: #fff;
              border-radius: 16px;
              box-shadow: 0 18px 40px rgba(0,0,0,0.24);
              box-sizing: border-box;
              font-family: Myriad Pro, Verdana, sans-serif;
              overflow-y: auto;
            }
            .reserva-rooms-head {
              padding-bottom: 14px;
              border-bottom: 1px solid #e3e3e3;
            }
            .reserva-rooms-title {
              display: block;
              color: #1f1f1f;
              font-size: 30px;
              font-weight: bold;
              line-height: 1.05;
            }
            .reserva-rooms-subtitle {
              display: block;
              margin-top: 6px;
              color: #666;
              font-size: 16px;
            }
            .reserva-rooms-loading,
            .reserva-rooms-empty {
              padding: 28px 0 10px;
              color: #555;
              font-size: 16px;
              text-align: center;
            }
            .reserva-rooms-list {
              margin-top: 18px;
            }
            .reserva-room-option {
              display: flex;
              gap: 16px;
              align-items: flex-start;
              margin-bottom: 16px;
              padding: 16px;
              border: 1px solid #e5e5e5;
              border-radius: 14px;
              background: #fff;
            }
            .reserva-room-option:last-child {
              margin-bottom: 0;
            }
            .reserva-room-option-media {
              position: relative;
              flex: 0 0 230px;
              width: 230px;
            }
            .reserva-room-option-media img {
              display: block;
              width: 100%;
              height: 170px;
              object-fit: cover;
              border-radius: 12px;
            }
            .reserva-room-option-info {
              flex: 1 1 auto;
              min-width: 0;
            }
            .reserva-room-option-name {
              display: block;
              color: #111;
              font-size: 30px;
              font-weight: bold;
              line-height: 1.05;
            }
            .reserva-room-option-desc {
              display: block;
              margin-top: 12px;
              color: #333;
              font-size: 16px;
              line-height: 1.35;
            }
            .reserva-room-option-beds {
              display: flex;
              flex-wrap: wrap;
              gap: 18px;
              margin-top: 18px;
            }
            .reserva-room-option-bed {
              display: flex;
              align-items: center;
              gap: 8px;
              color: #5f5f5f;
              font-size: 16px;
            }
            .reserva-room-option-bed img {
              width: 28px;
              height: 28px;
              object-fit: contain;
            }
            .reserva-room-option-side {
              flex: 0 0 170px;
              text-align: right;
              align-self: center;
            }
            .reserva-room-option-capacity {
              display: block;
              color: #666;
              font-size: 14px;
              margin-bottom: 14px;
            }
            .reserva-room-option-price {
              display: block;
              color: #f39a33;
              font-size: 40px;
              font-weight: bold;
              line-height: 1;
            }
            .reserva-room-option-night {
              display: block;
              margin-top: 4px;
              color: #8a8a8a;
              font-size: 15px;
            }
            .reserva-room-option-btn {
              display: inline-block;
              min-width: 160px;
              min-height: 42px;
              margin-top: 16px;
              padding: 0 16px;
              border: 0;
              border-radius: 8px;
              background: #55b95b;
              color: #fff;
              font-size: 16px;
              font-family: Myriad Pro, Verdana, sans-serif;
              font-weight: bold;
              cursor: pointer;
            }
            .reserva-confirm-box {
              position: relative;
              width: 760px;
              max-width: 100%;
              max-height: 100%;
              padding: 22px;
              background: #fff;
              border-radius: 16px;
              box-shadow: 0 18px 40px rgba(0,0,0,0.24);
              box-sizing: border-box;
              font-family: Myriad Pro, Verdana, sans-serif;
              overflow-y: auto;
            }
            .reserva-confirm-title {
              display: block;
              margin-bottom: 16px;
              color: #222;
              font-size: 28px;
              font-weight: bold;
            }
            .reserva-confirm-body {
              color: #4b4b4b;
              font-size: 15px;
              line-height: 1.45;
            }
            .reserva-confirm-body strong {
              color: #222;
            }
            .reserva-confirm-hotel {
              padding-bottom: 14px;
              border-bottom: 1px solid #e3e3e3;
            }
            .reserva-confirm-hotel-name {
              display: block;
              color: #1f1f1f;
              font-size: 34px;
              font-weight: bold;
              line-height: 1.05;
            }
            .reserva-confirm-stars {
              display: block;
              margin-top: 8px;
            }
            .reserva-confirm-location {
              display: block;
              margin-top: 8px;
              color: #666;
              font-size: 16px;
            }
            .reserva-confirm-trip {
              display: grid;
              grid-template-columns: 1fr 1fr;
              gap: 14px;
              margin-top: 16px;
            }
            .reserva-confirm-pill {
              padding: 12px 14px;
              border-radius: 12px;
              background: #f6f6f6;
            }
            .reserva-confirm-pill-label {
              display: block;
              color: #8a8a8a;
              font-size: 12px;
              font-weight: bold;
              text-transform: uppercase;
            }
            .reserva-confirm-pill-value {
              display: block;
              margin-top: 4px;
              color: #222;
              font-size: 18px;
              font-weight: bold;
            }
            .reserva-confirm-room {
              display: flex;
              gap: 16px;
              align-items: flex-start;
              margin-top: 20px;
              padding: 16px;
              border: 1px solid #e5e5e5;
              border-radius: 14px;
              background: #fff;
            }
            .reserva-confirm-room-media {
              position: relative;
              flex: 0 0 230px;
              width: 230px;
            }
            .reserva-confirm-room-media img {
              display: block;
              width: 100%;
              height: 170px;
              object-fit: cover;
              border-radius: 12px;
            }
            .reserva-confirm-room-info {
              flex: 1 1 auto;
              min-width: 0;
            }
            .reserva-confirm-room-name {
              display: block;
              color: #111;
              font-size: 30px;
              font-weight: bold;
              line-height: 1.05;
            }
            .reserva-confirm-room-desc {
              display: block;
              margin-top: 12px;
              color: #333;
              font-size: 16px;
              line-height: 1.35;
            }
            .reserva-confirm-room-beds {
              display: flex;
              flex-wrap: wrap;
              gap: 18px;
              margin-top: 18px;
            }
            .reserva-confirm-room-bed {
              display: flex;
              align-items: center;
              gap: 8px;
              color: #5f5f5f;
              font-size: 16px;
            }
            .reserva-confirm-room-bed img {
              width: 28px;
              height: 28px;
              object-fit: contain;
            }
            .reserva-confirm-price {
              margin-top: 20px;
              padding: 16px;
              border-radius: 14px;
              background: #faf8f2;
            }
            .reserva-confirm-price-row {
              display: flex;
              justify-content: space-between;
              gap: 12px;
              margin-bottom: 8px;
              color: #555;
              font-size: 16px;
            }
            .reserva-confirm-price-row:last-child {
              margin-bottom: 0;
            }
            .reserva-confirm-price-total {
              margin-top: 12px;
              padding-top: 12px;
              border-top: 1px solid #e4d8b8;
              color: #111;
              font-size: 22px;
              font-weight: bold;
            }
            .reserva-confirm-actions {
              margin-top: 18px;
              text-align: right;
            }
            .reserva-confirm-btn {
              min-width: 120px;
              min-height: 40px;
              margin-left: 8px;
              padding: 0 14px;
              border: 0;
              border-radius: 7px;
              font-size: 15px;
              font-family: Myriad Pro, Verdana, sans-serif;
              font-weight: bold;
              cursor: pointer;
            }
            .reserva-confirm-btn-cancel {
              background: #c6c6c6;
              color: #333;
            }
            .reserva-confirm-btn-ok {
              background: #55b95b;
              color: #fff;
            }
            @media (max-width: 767px) {
              .reserva-rooms-box {
                width: calc(100vw - 20px);
                padding: 16px;
              }
              .reserva-room-option {
                flex-direction: column;
              }
              .reserva-room-option-media {
                width: 100%;
                flex-basis: auto;
              }
              .reserva-room-option-media img {
                height: 210px;
              }
              .reserva-room-option-name {
                font-size: 24px;
              }
              .reserva-room-option-side {
                width: 100%;
                flex-basis: auto;
                text-align: left;
              }
              .reserva-confirm-box {
                width: calc(100vw - 20px);
                padding: 16px;
              }
              .reserva-confirm-hotel-name {
                font-size: 28px;
              }
              .reserva-confirm-trip {
                grid-template-columns: 1fr;
              }
              .reserva-confirm-room {
                flex-direction: column;
              }
              .reserva-confirm-room-media {
                width: 100%;
                flex-basis: auto;
              }
              .reserva-confirm-room-media img {
                height: 210px;
              }
              .reserva-confirm-room-name {
                font-size: 24px;
              }
            }
            #form_reserva {
              display: block;
              width: 100%;
            }
          
