﻿    /* Modals */
    .modal {
      position: fixed; inset: 0; background: rgba(5, 8, 15, 0.7); backdrop-filter: blur(6px);
      display: flex; align-items: center; justify-content: center; z-index: 10000;
      opacity: 0; visibility: hidden; transition: all 0.3s ease;
    }
    .modal.show { opacity: 1; visibility: visible; }
    .modal-content {
      background: var(--grad-soft); border: 1px solid var(--border); border-radius: 24px; padding: 32px;
      max-width: 400px; width: 90%; text-align: center; box-shadow: var(--shadow);
      transform: scale(0.9); transition: transform 0.3s ease; margin: 0 20px; position: relative;
    }
    .modal.show .modal-content { transform: scale(1); }
    .modal-icon { width: 64px; height: 64px; background: var(--grad-main); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; color: white; font-size: 28px; }
    .modal-content .h2 { font-size: 28px; line-height: 1.15; }
    .modal-content .h3 { font-size: 20px; line-height: 1.2; }
    .modal h3 { margin: 0 0 8px 0; color: var(--text); }
    .modal p { margin: 0 0 24px 0; color: var(--text-dim); font-size: 14px; line-height: 1.4; }
    
    .modal-close { background: var(--grad-main); color: white; border: none; padding: 12px 24px; border-radius: 12px; font-weight: 600; cursor: pointer; transition: filter 0.2s ease; }
    .modal-close:hover { filter: brightness(1.08); }

    .booking-city-modal__content {
      max-width: 460px;
      padding: 30px;
      text-align: left;
      background:
        radial-gradient(420px 180px at 100% 0%, rgba(139, 92, 246, .22), transparent 65%),
        linear-gradient(180deg, rgba(25, 31, 48, .98), rgba(14, 19, 31, .98));
    }
    .booking-city-modal__x {
      position: absolute;
      top: 14px;
      right: 14px;
      display: grid;
      place-items: center;
      width: 38px;
      height: 38px;
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 12px;
      background: rgba(255,255,255,.04);
      color: var(--text);
      font-size: 24px;
      line-height: 1;
      cursor: pointer;
      transition: background .18s ease, border-color .18s ease, color .18s ease;
    }
    .booking-city-modal__x:hover {
      background: rgba(255,255,255,.08);
      border-color: rgba(255,255,255,.2);
      color: #fff;
    }
    .booking-city-modal__icon {
      margin: 0 0 16px 0;
      width: 54px;
      height: 54px;
      font-size: 24px;
      box-shadow: 0 16px 34px rgba(91, 140, 255, .22);
    }
    .booking-city-modal h3 {
      margin-right: 44px;
    }
    .booking-city-modal p {
      margin-bottom: 18px;
    }
    .booking-city-modal__list {
      display: grid;
      gap: 10px;
    }
    .booking-city-modal__option {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 54px;
      padding: 0 18px;
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 16px;
      background: rgba(255,255,255,.045);
      color: var(--text);
      text-decoration: none;
      font-size: 16px;
      font-weight: 800;
      transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
    }
    .booking-city-modal__option::after {
      content: "→";
      color: #7da0ff;
      font-weight: 900;
      transition: transform .18s ease, color .18s ease;
    }
    .booking-city-modal__option:hover {
      transform: translateY(-1px);
      background: rgba(91, 140, 255, .14);
      border-color: rgba(91, 140, 255, .32);
      box-shadow: 0 14px 28px rgba(91, 140, 255, .12);
    }
    .booking-city-modal__option:hover::after {
      transform: translateX(2px);
      color: #fff;
    }

    @media (max-width: 520px) {
      .booking-city-modal__content {
        width: calc(100% - 28px);
        padding: 24px;
        margin: 0 14px;
        border-radius: 22px;
      }
      .booking-city-modal__option {
        min-height: 52px;
        padding: 0 15px;
        font-size: 15px;
      }
    }

