body {
      margin: 0;
      color: var(--ink);
      background:
        radial-gradient(circle at 12% 8%, rgba(103, 232, 249, .18), transparent 28rem),
        radial-gradient(circle at 86% 12%, rgba(255, 111, 189, .14), transparent 32rem),
        linear-gradient(135deg, #05070d 0%, #0b1020 48%, #11131f 100%);
      min-height: 100vh;
    }

.hero-actions, .card-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.map-card {
      border: 1px solid rgba(255, 255, 255, .1);
      background: var(--panel);
      border-radius: 8px;
      overflow: hidden;
      box-shadow: var(--shadow);
      max-width: 640px;
    }

.map-embed { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }

.map-info { padding: 22px 24px 26px; }

.map-info h3 { margin: 0 0 12px; font-size: 24px; }

.map-info p { margin: 0 0 20px; color: var(--muted); line-height: 1.6; }

.map-actions { margin-top: 0; }

.map-actions .btn { text-align: center; }

/* ---------- Locations modal ---------- */
.locations-modal-overlay {
      position: fixed;
      inset: 0;
      z-index: 220;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(4, 6, 12, .82);
      backdrop-filter: blur(5px);
    }

.locations-modal-overlay.open { display: flex; }

.locations-modal {
      position: relative;
      width: min(920px, 100%);
      max-height: calc(100vh - 48px);
      overflow: auto;
      padding: 34px;
      border: 1px solid rgba(103, 232, 249, .3);
      border-radius: 22px;
      background:
        radial-gradient(circle at 95% 0%, rgba(199, 255, 107, .12), transparent 22rem),
        linear-gradient(145deg, #101726, #090d17);
      box-shadow: 0 34px 100px rgba(0, 0, 0, .65);
    }

.locations-modal-close {
      position: absolute;
      top: 16px;
      right: 16px;
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border: 1px solid rgba(255, 255, 255, .22);
      border-radius: 50%;
      background: rgba(5, 8, 15, .85);
      color: #fff;
      font-size: 26px;
      line-height: 1;
      cursor: pointer;
    }

.locations-modal-close:hover,
.locations-modal-close:focus-visible {
      color: #06101a;
      background: var(--cyan);
      outline: none;
    }

.locations-modal-head { max-width: 650px; padding-right: 48px; }

.locations-modal-head h2 { margin: 8px 0 10px; font-size: clamp(28px, 4vw, 42px); }

.locations-modal-head p { margin: 0; color: var(--muted); line-height: 1.6; }

.locations-list {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
      margin-top: 28px;
    }

.location-item {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      min-height: 250px;
      padding: 22px;
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 16px;
      background: rgba(255, 255, 255, .045);
    }

.location-item:first-child { border-color: rgba(199, 255, 107, .42); }

.location-type {
      display: inline-flex;
      padding: 6px 10px;
      border-radius: 999px;
      background: rgba(103, 232, 249, .12);
      color: var(--cyan);
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
    }

.location-item h3 { margin: 16px 0 8px; font-size: 24px; }

.location-item p { margin: 0 0 22px; color: var(--muted); line-height: 1.55; }

.location-item .btn { margin-top: auto; }

.bubble-cta { display: inline-flex; margin-top: 10px; padding: 8px 14px; min-height: auto; font-size: 13px; }

.home-service-panel {
      border-color: rgba(199, 255, 107, .38);
      background: linear-gradient(135deg, rgba(199, 255, 107, .11), rgba(103, 232, 249, .07));
      box-shadow: 0 24px 70px rgba(199, 255, 107, .08);
    }
.home-service-panel h2 { color: var(--lime); }

.alt-flag:hover,
    .alt-flag:focus-visible {
      width: 200px;
      box-shadow: 0 22px 55px rgba(199, 255, 107, .28);
    }

.alt-flag:hover .call-flag-text,
    .alt-flag:focus-visible .call-flag-text {
      flex-basis: 128px;
      width: 128px;
      white-space: normal;
      line-height: 1.15;
    }

.price-flag {
      top: calc(48% + 148px);
      background: linear-gradient(135deg, var(--rose), #ffd7ec);
    }

.price-flag:hover,
    .price-flag:focus-visible {
      width: 150px;
      box-shadow: 0 22px 55px rgba(255, 111, 189, .3);
    }

.price-flag:hover .call-flag-text,
    .price-flag:focus-visible .call-flag-text {
      flex-basis: 96px;
      width: 96px;
    }

/* ---------- Prices modal ---------- */
    .prices-modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(4, 6, 12, .78);
      backdrop-filter: blur(2px);
      z-index: 200;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

.prices-modal-overlay.open { display: flex; }

.prices-modal-wrap {
      position: relative;
      width: min(920px, 100%);
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 10px;
    }

.prices-modal {
      position: relative;
      width: 100%;
      height: min(82vh, 900px);
      background: var(--panel, #0c101c);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 18px;
      box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
      overflow: hidden;
    }

.prices-modal iframe {
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
      background: #05070d;
    }

.prices-modal-close {
      position: relative;
      width: 38px;
      height: 38px;
      flex: 0 0 auto;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, .3);
      background: rgba(6, 10, 18, .85);
      color: #f7fbff;
      font-size: 20px;
      line-height: 1;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 2;
    }

.prices-modal-close:hover,
    .prices-modal-close:focus-visible {
      background: rgba(255, 111, 189, .85);
      color: #06101a;
      outline: none;
    }

@media (max-width: 960px) {
      .hero-grid, .split, .assistant, .seo-grid { grid-template-columns: 1fr; }
      .locations-list { grid-template-columns: 1fr; }
      .location-item { min-height: 0; }
    }

@media (max-width: 640px) {
      .call-flag {
        top: auto;
        right: 0;
        bottom: 16px;
        width: auto;
        min-height: 52px;
        padding: 10px 14px;
        justify-content: flex-start;
        gap: 8px;
        border-radius: 999px 0 0 999px;
        border-right: 1px solid rgba(255, 255, 255, .35);
        transform: none;
      }
      .call-flag .call-flag-text {
        display: block;
        flex: 0 0 auto;
        width: auto;
        opacity: 1;
        visibility: visible;
        transform: none;
        white-space: nowrap;
      }
      .alt-flag {
        top: auto;
        bottom: 76px;
      }
      .price-flag {
        top: auto;
        bottom: 142px;
        width: auto;
        min-height: 52px;
        padding: 10px 14px;
        justify-content: flex-start;
        border-radius: 999px 0 0 999px;
        border-right: 1px solid rgba(255, 255, 255, .35);
        transform: none;
      }
      .price-flag .call-flag-text {
        display: block;
        opacity: 1;
        visibility: visible;
      }
      .prices-modal { height: 82vh; border-radius: 14px; }
      .prices-modal-overlay { padding: 16px; align-items: flex-end; }
      .prices-modal-wrap { align-items: flex-end; }
      .prices-modal-close { width: 34px; height: 34px; font-size: 18px; }
      .locations-modal-overlay { padding: 12px; align-items: flex-end; }
      .locations-modal { max-height: 88vh; padding: 26px 18px 20px; border-radius: 18px; }
      .locations-modal-head { padding-right: 42px; }
      .locations-modal-close { top: 12px; right: 12px; width: 36px; height: 36px; }
      .locations-list { gap: 12px; margin-top: 20px; }
      .location-item { padding: 18px; }
      .map-actions .btn { width: 100%; }
    }
