:root {
      --purple: #573bff;
      --purple-deep: #3d28c9;
      --purple-soft: #7b6aff;
      --green: #09ef8d;
      --green-dark: #07c472;
      --ink: #0f0f1b;
      --ink-2: #19181f;
      --ink-3: #24242f;
      --mist: #e8e8ec;
      --fog: #f4f4f7;
      --white: #ffffff;
      --gold: #e8b84a;
      --radius: 22px;
      --radius-sm: 14px;
      --nav-h: 76px;
      --font-display: "Nunito", system-ui, sans-serif;
      --font-body: "Outfit", system-ui, sans-serif;
      --shadow: 0 18px 50px rgba(15, 15, 27, 0.28);
      --ease: cubic-bezier(0.22, 1, 0.36, 1);
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: var(--font-body);
      background: var(--ink);
      color: var(--white);
      line-height: 1.5;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
    }
    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; }
    button { font: inherit; border: none; cursor: pointer; background: none; color: inherit; }
    .sr-only {
      position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
      overflow: hidden; clip: rect(0,0,0,0); border: 0;
    }

    /* —— Logo —— */
    .logo {
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 1.45rem;
      letter-spacing: -0.03em;
      line-height: 1;
    }
    .logo-mark {
      width: 36px;
      height: 36px;
      flex-shrink: 0;
    }
    .logo-mark svg { width: 100%; height: 100%; display: block; }

    /* —— Desktop Nav —— */
    .site-header {
      position: sticky;
      top: 0;
      z-index: 100;
      height: var(--nav-h);
      display: flex;
      align-items: center;
      backdrop-filter: blur(18px);
      background: rgba(15, 15, 27, 0.82);
      border-bottom: 1px solid rgba(255,255,255,0.06);
    }
    .site-header .wrap {
      width: min(1280px, calc(100% - 3rem));
      margin-inline: auto;
      display: flex;
      align-items: center;
      gap: 1.5rem;
    }
    .nav-cats {
      display: flex;
      align-items: center;
      gap: 0.15rem;
      margin-left: 0.5rem;
      background: rgba(255,255,255,0.06);
      padding: 0.3rem;
      border-radius: 999px;
      overflow-x: auto;
      max-width: min(720px, 52vw);
      scrollbar-width: none;
    }
    .nav-cats::-webkit-scrollbar { display: none; }
    .nav-cats button,
    .nav-cat-link {
      padding: 0.55rem 1.05rem;
      border-radius: 999px;
      font-size: 0.88rem;
      font-weight: 500;
      color: rgba(255,255,255,0.72);
      white-space: nowrap;
      transition: background 0.25s var(--ease), color 0.25s var(--ease);
    }
    .nav-cats button:hover,
    .nav-cat-link:hover { color: var(--white); }
    .nav-cats button.active,
    .nav-cat-link.active {
      background: var(--purple);
      color: var(--white);
      font-weight: 600;
    }
    .btn-nav {
      padding: 0.55rem 1rem;
      font-size: 0.85rem;
      border-radius: 12px;
      white-space: nowrap;
    }
    .btn-block { width: 100%; }

    /* Mobile / tablet category strip (shown when desktop nav-cats hide) */
    .cat-scroll {
      display: none;
      position: sticky;
      top: var(--nav-h);
      z-index: 90;
      background: rgba(15, 15, 27, 0.92);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(255,255,255,0.06);
      padding: 0.55rem 0;
    }
    .cat-scroll-track {
      display: flex;
      gap: 0.45rem;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 0 0.85rem;
      width: min(1280px, 100%);
      margin-inline: auto;
    }
    .cat-scroll-track::-webkit-scrollbar { display: none; }
    .cat-chip {
      flex: 0 0 auto;
      padding: 0.45rem 0.9rem;
      border-radius: 999px;
      font-size: 0.78rem;
      font-weight: 600;
      color: rgba(255,255,255,0.72);
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.08);
      white-space: nowrap;
    }
    .cat-chip.active {
      background: var(--purple);
      color: #fff;
      border-color: transparent;
    }
    .nav-actions {
      margin-left: auto;
      display: flex;
      align-items: center;
      gap: 0.75rem;
    }
    .dates-btn {
      display: flex;
      align-items: center;
      gap: 0.55rem;
      padding: 0.45rem 0.85rem 0.45rem 0.55rem;
      border-radius: 999px;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.08);
      transition: border-color 0.2s, background 0.2s;
    }
    .dates-btn:hover { border-color: var(--purple-soft); background: rgba(87,59,255,0.15); }
    .dates-btn .cal {
      width: 34px; height: 34px;
      border-radius: 10px;
      background: var(--purple);
      display: grid; place-items: center;
      position: relative;
    }
    .dates-btn .cal .check {
      position: absolute;
      right: -3px; bottom: -3px;
      width: 14px; height: 14px;
      background: var(--green);
      border-radius: 50%;
      display: grid; place-items: center;
      color: var(--ink);
      font-size: 9px;
      font-weight: 800;
    }
    .dates-btn span { font-size: 0.86rem; font-weight: 500; color: rgba(255,255,255,0.85); }
    .icon-btn {
      width: 42px; height: 42px;
      border-radius: 12px;
      background: rgba(255,255,255,0.06);
      display: grid; place-items: center;
      position: relative;
      transition: background 0.2s;
    }
    .icon-btn:hover { background: rgba(87,59,255,0.25); }
    .icon-btn .badge {
      position: absolute;
      top: -4px; right: -4px;
      min-width: 18px; height: 18px;
      padding: 0 4px;
      border-radius: 999px;
      background: var(--green);
      color: var(--ink);
      font-size: 0.68rem;
      font-weight: 800;
      display: grid; place-items: center;
    }
    .profile-chip {
      display: flex;
      align-items: center;
      gap: 0.55rem;
      padding: 0.3rem 0.7rem 0.3rem 0.3rem;
      border-radius: 999px;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.08);
    }
    .profile-chip img, .avatar {
      width: 34px; height: 34px;
      border-radius: 50%;
      background: var(--green);
      object-fit: cover;
    }
    .avatar {
      display: grid; place-items: center;
      overflow: hidden;
    }
    .avatar svg { width: 22px; height: 22px; }
    .profile-chip strong { font-size: 0.86rem; font-weight: 600; }

    /* —— Hero —— */
    .hero {
      position: relative;
      width: min(1280px, calc(100% - 3rem));
      margin: 1.25rem auto 0;
      display: grid;
      grid-template-columns: 1.15fr 0.85fr;
      grid-template-rows: auto 1fr;
      gap: 1rem;
      min-height: calc(100vh - var(--nav-h) - 2.5rem);
      animation: fadeUp 0.8s var(--ease) both;
    }
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(18px); }
      to { opacity: 1; transform: none; }
    }
    .hero-brand {
      grid-column: 1;
      grid-row: 1;
      background: var(--ink-2);
      border-radius: var(--radius);
      padding: 1.1rem 1.35rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border: 1px solid rgba(255,255,255,0.05);
    }
    .hero-brand .tag {
      font-size: 0.75rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.5);
      font-weight: 500;
    }
    .hero-main {
      grid-column: 1;
      grid-row: 2;
      background: var(--purple);
      border-radius: var(--radius);
      padding: clamp(1.75rem, 4vw, 3rem);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      position: relative;
      overflow: hidden;
      min-height: 420px;
    }
    .hero-main::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 70% 50% at 85% 15%, rgba(255,255,255,0.18), transparent 55%),
        url("data:image/svg+xml,%3Csvg width='60' height='52' viewBox='0 0 60 52' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 2 L56 17 L56 47 L30 62 L4 47 L4 17 Z' fill='none' stroke='rgba(255,255,255,0.06)' stroke-width='1' transform='scale(0.55)'/%3E%3C/svg%3E");
      background-size: auto, 42px 36px;
      pointer-events: none;
    }
    .hero-main > * { position: relative; z-index: 1; }
    .hero-kicker {
      font-size: 0.9rem;
      font-weight: 500;
      color: rgba(255,255,255,0.78);
      margin-bottom: 0.85rem;
      max-width: 28ch;
    }
    .hero-kicker em {
      font-style: normal;
      color: var(--green);
      font-weight: 700;
    }
    .hero-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(2.4rem, 5.2vw, 4.2rem);
      line-height: 0.98;
      letter-spacing: -0.03em;
      text-transform: uppercase;
      max-width: 10ch;
      margin-bottom: 1.75rem;
    }
    .hero-cta-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.4rem;
      padding: 0.9rem 1.45rem;
      border-radius: 14px;
      font-weight: 700;
      font-size: 0.95rem;
      letter-spacing: 0.01em;
      transition: transform 0.2s var(--ease), box-shadow 0.2s, background 0.2s;
    }
    .btn:hover { transform: translateY(-2px); }
    .btn:active { transform: translateY(0); }
    .btn-green {
      background: var(--green);
      color: var(--ink);
      box-shadow: 0 8px 28px rgba(9, 239, 141, 0.35);
    }
    .btn-green:hover { background: #2ff5a0; }
    .btn-purple {
      background: var(--purple);
      color: var(--white);
      box-shadow: 0 8px 28px rgba(87, 59, 255, 0.35);
    }
    .btn-ghost {
      background: rgba(255,255,255,0.12);
      color: var(--white);
      border: 1px solid rgba(255,255,255,0.2);
    }
    .btn-outline {
      background: transparent;
      color: var(--white);
      border: 1.5px solid rgba(255,255,255,0.35);
    }

    .hero-promo {
      grid-column: 2;
      grid-row: 1;
      background: var(--green);
      color: var(--ink);
      border-radius: var(--radius);
      padding: 1.25rem 1.4rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 0.25rem;
      position: relative;
      overflow: hidden;
      animation: fadeUp 0.8s var(--ease) 0.1s both;
      transition: transform 0.3s var(--ease);
    }
    .hero-promo:hover { transform: translateY(-3px); }
    .hero-promo .house {
      position: absolute;
      top: 1rem; right: 1.1rem;
      opacity: 0.35;
    }
    .hero-promo h2 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(1.15rem, 1.8vw, 1.45rem);
      line-height: 1.15;
      text-transform: uppercase;
      letter-spacing: -0.02em;
      max-width: 14ch;
    }
    .hero-promo p {
      font-size: 0.95rem;
      font-weight: 600;
      opacity: 0.75;
    }

    .hero-media {
      grid-column: 2;
      grid-row: 2;
      border-radius: var(--radius);
      overflow: hidden;
      position: relative;
      min-height: 320px;
      animation: fadeUp 0.8s var(--ease) 0.18s both;
    }
    .hero-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      position: absolute;
      inset: 0;
      transition: transform 6s var(--ease), opacity 0.5s;
    }
    .hero-media:hover img { transform: scale(1.04); }
    .hero-media .overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(15,15,27,0.75) 0%, transparent 50%);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      align-items: stretch;
      padding: 1.5rem;
      gap: 0.85rem;
    }
    .hero-media .overlay > div { min-width: 0; }
    .hero-media .place-name {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 1.35rem;
      text-transform: uppercase;
      letter-spacing: -0.02em;
      line-height: 1.1;
    }
    .hero-media .place-sub {
      font-size: 0.85rem;
      opacity: 0.8;
      margin-top: 0.15rem;
    }
    .carousel-arrows {
      position: absolute;
      top: 50%;
      left: 0.75rem; right: 0.75rem;
      transform: translateY(-50%);
      display: flex;
      justify-content: space-between;
      pointer-events: none;
      z-index: 2;
    }
    .carousel-arrows button {
      pointer-events: auto;
      width: 40px; height: 40px;
      border-radius: 50%;
      background: rgba(15,15,27,0.45);
      backdrop-filter: blur(8px);
      display: grid; place-items: center;
      border: 1px solid rgba(255,255,255,0.2);
      transition: background 0.2s;
    }
    .carousel-arrows button:hover { background: rgba(87,59,255,0.8); }

    /* —— Sections —— */
    .section {
      width: min(1280px, calc(100% - 3rem));
      margin: 3.5rem auto;
    }
    .section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 1rem;
      margin-bottom: 1.5rem;
    }
    .section-head h2 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(1.5rem, 2.5vw, 2rem);
      letter-spacing: -0.02em;
      text-transform: uppercase;
    }
    .section-head p {
      color: rgba(255,255,255,0.55);
      font-size: 0.95rem;
      max-width: 36ch;
    }
    .link-green {
      color: var(--green);
      font-weight: 700;
      font-size: 0.95rem;
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
    }
    .link-green:hover { text-decoration: underline; }

    /* —— Listings —— */
    .listings {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1rem;
    }
    .listing-card {
      background: var(--ink-2);
      border-radius: var(--radius);
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.05);
      transition: transform 0.3s var(--ease), border-color 0.3s;
      animation: fadeUp 0.7s var(--ease) both;
    }
    .listing-card:nth-child(2) { animation-delay: 0.08s; }
    .listing-card:nth-child(3) { animation-delay: 0.16s; }
    .listing-card:hover {
      transform: translateY(-4px);
      border-color: rgba(87,59,255,0.45);
    }
    .listing-card .thumb {
      aspect-ratio: 16 / 11;
      position: relative;
      overflow: hidden;
    }
    .listing-card .thumb img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform 0.5s var(--ease);
    }
    .listing-card:hover .thumb img { transform: scale(1.05); }
    .listing-card .rating {
      position: absolute;
      top: 0.85rem; left: 0.85rem;
      background: rgba(15,15,27,0.75);
      backdrop-filter: blur(8px);
      padding: 0.3rem 0.65rem;
      border-radius: 999px;
      font-size: 0.78rem;
      font-weight: 700;
    }
    .listing-card .rating span { color: var(--green); }
    .listing-card .body {
      padding: 1.15rem 1.2rem 1.3rem;
    }
    .listing-card h3 {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 1.15rem;
      letter-spacing: -0.02em;
      margin-bottom: 0.55rem;
    }
    .amenities {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem;
      margin-bottom: 1rem;
    }
    .amenities span {
      font-size: 0.72rem;
      padding: 0.28rem 0.55rem;
      border-radius: 8px;
      background: rgba(255,255,255,0.06);
      color: rgba(255,255,255,0.7);
      font-weight: 500;
    }
    .listing-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      flex-wrap: wrap;
    }
    .price {
      font-weight: 800;
      font-size: 1.05rem;
    }
    .price small {
      font-weight: 500;
      font-size: 0.78rem;
      color: rgba(255,255,255,0.5);
    }
    .listing-meta .btn {
      padding: 0.55rem 0.95rem;
      font-size: 0.82rem;
      border-radius: 10px;
    }

    /* —— Transport band —— */
    .transport {
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: 1rem;
      border-radius: var(--radius);
      overflow: hidden;
      min-height: 340px;
    }
    .transport-visual {
      position: relative;
      background: var(--ink-3);
    }
    .transport-visual img {
      width: 100%; height: 100%;
      object-fit: cover;
      position: absolute;
      inset: 0;
    }
    .transport-visual .cap {
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, rgba(15,15,27,0.7), transparent 60%);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 2rem;
    }
    .transport-visual h3 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      text-transform: uppercase;
      letter-spacing: -0.03em;
      line-height: 1;
    }
    .transport-visual p {
      margin-top: 0.35rem;
      opacity: 0.8;
      font-size: 1rem;
    }
    .transport-side {
      background: var(--ink-2);
      padding: 2rem;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: 1.5rem;
      border: 1px solid rgba(255,255,255,0.05);
      border-radius: 0 var(--radius) var(--radius) 0;
    }
    .transport-side h4 {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 1.25rem;
      text-transform: uppercase;
      letter-spacing: -0.02em;
      margin-bottom: 0.5rem;
    }
    .transport-side .desc {
      color: rgba(255,255,255,0.6);
      font-size: 0.95rem;
      margin-bottom: 1.25rem;
    }
    .feature-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 0.65rem;
    }
    .feature-list li {
      display: flex;
      align-items: center;
      gap: 0.65rem;
      font-size: 0.92rem;
      font-weight: 500;
    }
    .feature-list .dot {
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--green);
      flex-shrink: 0;
    }

    /* —— Dual promo —— */
    .dual {
      display: grid;
      grid-template-columns: 1.2fr 0.8fr;
      gap: 1rem;
    }
    .promo-purple {
      background: var(--purple);
      border-radius: var(--radius);
      padding: clamp(1.5rem, 3vw, 2.25rem);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      min-height: 240px;
      position: relative;
      overflow: hidden;
      transition: transform 0.3s var(--ease);
    }
    .promo-purple:hover { transform: translateY(-3px); }
    .promo-purple::after {
      content: "";
      position: absolute;
      right: -40px; bottom: -40px;
      width: 180px; height: 180px;
      border-radius: 50%;
      background: rgba(255,255,255,0.08);
    }
    .promo-purple h3 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(1.4rem, 2.4vw, 1.9rem);
      text-transform: uppercase;
      letter-spacing: -0.02em;
      line-height: 1.1;
      max-width: 16ch;
      position: relative;
      z-index: 1;
    }
    .promo-purple p {
      margin-top: 0.5rem;
      opacity: 0.8;
      position: relative;
      z-index: 1;
    }
    .promo-explore {
      background: var(--ink-2);
      border-radius: var(--radius);
      padding: clamp(1.5rem, 3vw, 2.25rem);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      min-height: 240px;
      border: 1px solid rgba(255,255,255,0.05);
      transition: transform 0.3s var(--ease), border-color 0.3s;
    }
    .promo-explore:hover {
      transform: translateY(-3px);
      border-color: var(--green);
    }
    .promo-explore .map-ico {
      width: 48px; height: 48px;
      opacity: 0.9;
    }
    .promo-explore p {
      font-size: 1.15rem;
      font-weight: 600;
      margin-top: 1rem;
    }
    .promo-explore p em {
      font-style: normal;
      color: var(--green);
      font-weight: 800;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    /* —— Offer strip —— */
    .offer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1.5rem;
      flex-wrap: wrap;
      background: linear-gradient(105deg, var(--ink-2), #1f1a3a);
      border: 1px solid rgba(87,59,255,0.35);
      border-radius: var(--radius);
      padding: 1.35rem 1.75rem;
    }
    .offer p {
      font-size: 1.05rem;
      font-weight: 500;
    }
    .offer p strong { color: var(--purple-soft); }

    /* —— Support / Chat preview —— */
    .support {
      display: grid;
      grid-template-columns: 1fr 1.15fr;
      gap: 1rem;
      align-items: stretch;
    }
    .support-copy {
      background: var(--fog);
      color: var(--ink);
      border-radius: var(--radius);
      padding: clamp(1.75rem, 3vw, 2.5rem);
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .support-copy h2 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(1.6rem, 2.5vw, 2.1rem);
      text-transform: uppercase;
      letter-spacing: -0.02em;
      line-height: 1.1;
      margin-bottom: 0.75rem;
    }
    .support-copy p {
      color: rgba(15,15,27,0.65);
      margin-bottom: 1.5rem;
      max-width: 36ch;
    }
    .chat-preview {
      background: var(--ink-2);
      border-radius: var(--radius);
      padding: 1.5rem;
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
      border: 1px solid rgba(255,255,255,0.05);
      min-height: 300px;
    }
    .chat-preview .status {
      font-size: 0.78rem;
      color: var(--green);
      font-weight: 600;
      display: flex;
      align-items: center;
      gap: 0.4rem;
    }
    .chat-preview .status::before {
      content: "";
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--green);
      box-shadow: 0 0 0 3px rgba(9,239,141,0.25);
    }
    .bubble {
      max-width: 85%;
      padding: 0.75rem 1rem;
      border-radius: 16px;
      font-size: 0.9rem;
      line-height: 1.4;
      animation: fadeUp 0.5s var(--ease) both;
    }
    .bubble.bot {
      background: #2a2550;
      align-self: flex-start;
      border-bottom-left-radius: 4px;
    }
    .bubble.user {
      background: var(--purple);
      align-self: flex-end;
      border-bottom-right-radius: 4px;
    }
    .bubble a { color: #8ec8ff; text-decoration: underline; }

    /* —— Footer —— */
    .site-footer {
      margin-top: 4rem;
      border-top: 1px solid rgba(255,255,255,0.06);
      background: var(--ink-2);
    }
    .footer-inner {
      width: min(1280px, calc(100% - 3rem));
      margin: 0 auto;
      padding: 2.5rem 0 2rem;
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr 1fr;
      gap: 2rem;
    }
    .footer-brand p {
      margin-top: 0.75rem;
      color: rgba(255,255,255,0.5);
      font-size: 0.9rem;
      max-width: 28ch;
    }
    .footer-col h4 {
      font-size: 0.75rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.4);
      margin-bottom: 0.9rem;
      font-weight: 600;
    }
    .footer-col a {
      display: block;
      font-size: 0.92rem;
      color: rgba(255,255,255,0.75);
      padding: 0.25rem 0;
      transition: color 0.2s;
    }
    .footer-col a:hover { color: var(--green); }
    .footer-bar {
      width: min(1280px, calc(100% - 3rem));
      margin: 0 auto;
      padding: 1.1rem 0 1.5rem;
      border-top: 1px solid rgba(255,255,255,0.06);
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 0.75rem;
      font-size: 0.8rem;
      color: rgba(255,255,255,0.4);
    }

    /* —— Mobile bottom nav —— */
    .mobile-nav {
      display: none;
      position: fixed;
      bottom: 0; left: 0; right: 0;
      z-index: 110;
      background: var(--white);
      color: var(--ink);
      padding: 0.65rem 1.25rem calc(0.65rem + env(safe-area-inset-bottom));
      border-radius: 22px 22px 0 0;
      box-shadow: 0 -8px 32px rgba(15,15,27,0.18);
      align-items: center;
      justify-content: space-between;
    }
    .mobile-nav .mn-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.2rem;
      font-size: 0.65rem;
      font-weight: 600;
      color: var(--purple);
      min-width: 72px;
    }
    .mobile-nav .mn-home {
      width: 52px; height: 52px;
      border-radius: 50%;
      background: var(--purple);
      display: grid; place-items: center;
      margin-top: -1.4rem;
      box-shadow: 0 8px 24px rgba(87,59,255,0.45);
    }
    .mobile-nav .mn-home svg { width: 26px; height: 26px; }

    /* —— Auth modal —— */
    .modal-backdrop {
      position: fixed;
      inset: 0;
      background: rgba(15,15,27,0.72);
      backdrop-filter: blur(6px);
      z-index: 200;
      display: none;
      align-items: flex-end;
      justify-content: center;
      padding: 1rem;
    }
    .modal-backdrop.open { display: flex; }
    .modal {
      width: min(420px, 100%);
      background: var(--white);
      color: var(--ink);
      border-radius: 28px 28px 18px 18px;
      padding: 2rem 1.5rem 1.5rem;
      animation: slideUp 0.4s var(--ease);
    }
    @keyframes slideUp {
      from { opacity: 0; transform: translateY(40px); }
      to { opacity: 1; transform: none; }
    }
    .modal-top {
      background: var(--purple);
      color: var(--white);
      margin: -2rem -1.5rem 1.5rem;
      padding: 2rem 1.5rem 1.5rem;
      border-radius: 28px 28px 0 0;
      position: relative;
    }
    .modal-top h2 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 1.75rem;
      text-transform: uppercase;
      letter-spacing: -0.02em;
    }
    .modal-close {
      position: absolute;
      top: 1rem; right: 1rem;
      width: 36px; height: 36px;
      border-radius: 50%;
      background: rgba(255,255,255,0.15);
      display: grid; place-items: center;
      font-size: 1.2rem;
    }
    .field {
      display: flex;
      align-items: center;
      gap: 0.65rem;
      background: var(--fog);
      border-radius: 12px;
      padding: 0.85rem 1rem;
      margin-bottom: 0.65rem;
    }
    .field input {
      border: none;
      background: transparent;
      outline: none;
      width: 100%;
      font: inherit;
      font-size: 0.95rem;
    }
    .modal .btn { width: 100%; margin-top: 0.35rem; }
    .modal .btn + .btn { margin-top: 0.55rem; }

    /* —— Calendar popover —— */
    .cal-panel {
      position: absolute;
      top: calc(100% + 0.5rem);
      right: 0;
      width: 300px;
      background: var(--white);
      color: var(--ink);
      border-radius: 18px;
      padding: 1.1rem;
      box-shadow: var(--shadow);
      display: none;
      z-index: 120;
    }
    .cal-panel.open { display: block; animation: fadeUp 0.25s var(--ease); }
    .cal-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 0.75rem;
      font-weight: 700;
      color: var(--purple);
    }
    .cal-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 0.25rem;
      text-align: center;
      font-size: 0.82rem;
    }
    .cal-grid .dow {
      color: rgba(15,15,27,0.4);
      font-weight: 600;
      font-size: 0.7rem;
      padding: 0.35rem 0;
    }
    .cal-grid .day {
      aspect-ratio: 1;
      display: grid; place-items: center;
      border-radius: 8px;
      font-weight: 600;
      color: var(--purple-deep);
      cursor: pointer;
    }
    .cal-grid .day:hover { background: rgba(87,59,255,0.1); }
    .cal-grid .day.in-range {
      background: var(--purple);
      color: var(--white);
      border-radius: 0;
    }
    .cal-grid .day.range-start { border-radius: 8px 0 0 8px; }
    .cal-grid .day.range-end { border-radius: 0 8px 8px 0; }
    .dates-wrap { position: relative; }

    /* —— Notify panel —— */
    .notify-panel {
      position: absolute;
      top: calc(100% + 0.5rem);
      right: 0;
      width: 320px;
      background: var(--white);
      color: var(--ink);
      border-radius: 18px;
      padding: 1.15rem;
      box-shadow: var(--shadow);
      display: none;
      z-index: 120;
    }
    .notify-panel.open { display: block; animation: fadeUp 0.25s var(--ease); }
    .notify-panel h3 {
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      color: var(--purple);
      margin-bottom: 0.75rem;
    }
    .notify-item {
      padding: 0.65rem 0;
      border-bottom: 1px solid rgba(15,15,27,0.06);
      font-size: 0.88rem;
      line-height: 1.4;
    }
    .notify-item:last-of-type { border-bottom: none; }
    .notify-item strong { font-weight: 700; }
    .notify-item .gold { color: var(--gold); font-weight: 700; }
    .notify-wrap { position: relative; }

    /* —— Listing detail —— */
    .listing-detail {
      display: grid;
      grid-template-columns: 1.4fr 0.9fr;
      gap: 1rem;
      align-items: start;
    }
    .listing-hero {
      position: relative;
      min-height: 380px;
      aspect-ratio: 16 / 11;
      border-radius: var(--radius);
      overflow: hidden;
      background: var(--ink-3);
    }
    .listing-hero img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .listing-copy { margin-top: 1.25rem; }
    .listing-copy h1 {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(1.45rem, 3vw, 2.2rem);
      text-transform: uppercase;
      letter-spacing: -.02em;
      line-height: 1.1;
      overflow-wrap: anywhere;
    }
    .listing-sub {
      color: rgba(255,255,255,.6);
      margin: .35rem 0 1rem;
      font-size: .95rem;
    }
    .listing-desc {
      color: rgba(255,255,255,.8);
      max-width: 60ch;
    }
    .listing-book {
      position: sticky;
      top: calc(var(--nav-h) + 1rem);
    }
    .listing-book-price {
      font-size: 1.4rem;
      margin-bottom: .25rem;
    }
    .listing-book-meta {
      color: rgba(255,255,255,.5);
      font-size: .85rem;
      margin-bottom: 1rem;
    }

    /* —— Responsive —— */
    @media (max-width: 1024px) {
      .hero {
        grid-template-columns: 1fr 1fr;
        min-height: auto;
      }
      .listings { grid-template-columns: repeat(2, 1fr); }
      .footer-inner { grid-template-columns: 1fr 1fr; }
      .nav-cats { display: none; }
      .cat-scroll { display: block; }
      .listing-detail { grid-template-columns: 1fr; }
      .listing-book { position: static; }
      .listing-hero { min-height: 260px; }
    }

    @media (max-width: 768px) {
      :root { --nav-h: 64px; }
      .site-header .wrap { width: calc(100% - 1rem); gap: 0.5rem; }
      .dates-btn span, .profile-chip strong { display: none; }
      .icon-btn { width: 38px; height: 38px; }
      .btn-nav { padding: 0.45rem 0.75rem; font-size: 0.78rem; }
      .nav-actions { gap: 0.4rem; }
      .hero {
        width: calc(100% - 1rem);
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 0.75rem;
        margin-top: 0.85rem;
      }
      .hero-brand {
        grid-column: 1;
        grid-row: auto;
        flex-wrap: wrap;
        gap: 0.5rem;
      }
      .hero-main {
        grid-column: 1;
        grid-row: auto;
        min-height: 300px;
        order: 2;
        padding: 1.5rem;
      }
      .hero-promo { grid-column: 1; grid-row: auto; order: 3; }
      .hero-media {
        grid-column: 1;
        grid-row: auto;
        min-height: 220px;
        order: 1;
        aspect-ratio: 16 / 11;
      }
      .hero-media .overlay {
        padding: 1rem;
      }
      .hero-media .overlay .btn {
        width: 100%;
      }
      .section { width: calc(100% - 1rem); margin: 2rem auto; }
      .listings { grid-template-columns: 1fr; }
      .listing-card .body { padding: 1rem 1.05rem 1.15rem; }
      .listing-meta .btn { flex: 1 1 auto; min-width: 7.5rem; }
      .transport { grid-template-columns: 1fr; min-height: 0; }
      .transport-side {
        border-radius: 0 0 var(--radius) var(--radius);
        padding: 1.35rem;
      }
      .transport-visual { min-height: 200px; aspect-ratio: 16 / 10; }
      .transport-visual .cap { padding: 1.25rem; }
      .dual { grid-template-columns: 1fr; }
      .support { grid-template-columns: 1fr; }
      .footer-inner {
        width: calc(100% - 1rem);
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2rem 0 1.5rem;
      }
      .footer-bar { width: calc(100% - 1rem); }
      .mobile-nav { display: flex; }
      body { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
      .section-head { flex-direction: column; align-items: start; }
      .offer { flex-direction: column; align-items: stretch; padding: 1.1rem 1.15rem; }
      .offer .btn { width: 100%; }
      .cat-scroll-track { padding: 0 0.65rem; }
      .public-gallery { grid-template-columns: repeat(3, 1fr); gap: .45rem; }
      .listing-hero { min-height: 220px; }
      .panel-shell {
        width: calc(100% - 1rem);
        margin: 0.85rem auto 2rem;
        gap: 0.75rem;
      }
      .panel-main { padding: 1.1rem; border-radius: 18px; }
      .panel-main h1 { font-size: 1.3rem; }
      .panel-nav { padding: 0.85rem; border-radius: 18px; overflow-x: auto; flex-wrap: nowrap; }
      .panel-nav a { white-space: nowrap; font-size: .85rem; padding: .55rem .7rem; }
      .stats { grid-template-columns: repeat(2, 1fr); }
      .table-wrap { margin: 0 -.25rem; }
      table.data { min-width: 560px; }
      .media-thumb { width: 110px; height: 80px; }
      .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); }
      .pagination, .pager, nav[role="navigation"] {
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem;
        overflow-x: auto;
      }
    }

    @media (max-width: 480px) {
      .hero-title { font-size: 2rem; max-width: none; }
      .hero-main { min-height: 280px; }
      .hero-cta-row .btn { flex: 1 1 auto; }
      .logo { font-size: 1.15rem; }
      .logo-mark { width: 28px; height: 28px; }
      .nav-actions .btn-ghost.btn-nav { display: none; }
      .listings { gap: 0.85rem; }
      .public-gallery { grid-template-columns: repeat(2, 1fr); }
      .stats { grid-template-columns: 1fr 1fr; }
      .stat .value { font-size: 1.25rem; }
      .offer-card-footer { flex-direction: column; align-items: stretch; }
      .offer-card-actions { width: 100%; justify-content: space-between; }
    }

/* —— Panel / dashboard —— */
.panel-shell { display: grid; grid-template-columns: 260px 1fr; min-height: calc(100vh - var(--nav-h)); width: min(1280px, calc(100% - 3rem)); margin: 1.25rem auto 3rem; gap: 1rem; }
.panel-nav { background: var(--ink-2); border-radius: var(--radius); padding: 1.25rem; border: 1px solid rgba(255,255,255,.06); height: fit-content; position: sticky; top: calc(var(--nav-h) + 1rem); }
.panel-nav a { display: flex; align-items: center; gap: .6rem; padding: .7rem .85rem; border-radius: 12px; color: rgba(255,255,255,.7); font-weight: 500; font-size: .92rem; margin-bottom: .25rem; transition: background .2s, color .2s; }
.panel-nav a:hover, .panel-nav a.active { background: rgba(87,59,255,.25); color: #fff; }
.panel-nav .nav-label { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.35); margin: 1rem 0 .5rem; font-weight: 600; }
.panel-main { background: var(--ink-2); border-radius: var(--radius); padding: 1.5rem; border: 1px solid rgba(255,255,255,.05); min-width: 0; }
.panel-main h1 { font-family: var(--font-display); font-weight: 900; font-size: 1.6rem; text-transform: uppercase; letter-spacing: -.02em; margin-bottom: 1rem; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin-bottom: 1.5rem; }
.stat { background: var(--ink-3); border-radius: 16px; padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.04); }
.stat .label { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.45); }
.stat .value { font-family: var(--font-display); font-weight: 800; font-size: 1.45rem; margin-top: .25rem; }
.stat .value.green { color: var(--green); }
.table-wrap { overflow-x: auto; }
table.data { width: 100%; border-collapse: collapse; font-size: .9rem; }
table.data th, table.data td { text-align: left; padding: .75rem .5rem; border-bottom: 1px solid rgba(255,255,255,.06); }
table.data th { color: rgba(255,255,255,.45); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.badge-soft { display: inline-block; padding: .2rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 700; background: rgba(87,59,255,.25); color: #cfc8ff; }
.badge-green { background: rgba(9,239,141,.15); color: var(--green); }
.badge-gold { background: rgba(232,184,74,.15); color: var(--gold); }
.form-grid { display: grid; gap: .85rem; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.form-field label { display: block; font-size: .78rem; color: rgba(255,255,255,.55); margin-bottom: .35rem; font-weight: 600; }
.form-field input, .form-field select, .form-field textarea {
  width: 100%; background: var(--ink); border: 1px solid rgba(255,255,255,.1); border-radius: 12px;
  padding: .75rem .9rem; color: #fff; font: inherit;
}
.form-field textarea { min-height: 110px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: none; border-color: var(--purple); }
.alert { padding: .85rem 1rem; border-radius: 12px; margin-bottom: 1rem; font-size: .9rem; }
.alert-success { background: rgba(9,239,141,.12); color: var(--green); border: 1px solid rgba(9,239,141,.25); }
.alert-error { background: rgba(255,80,80,.12); color: #ff8e8e; border: 1px solid rgba(255,80,80,.25); }
.ticket { background: #fff; color: var(--ink); border-radius: 22px; overflow: hidden; max-width: 420px; }
.ticket-img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.ticket-body { padding: 1.25rem; }
.ticket-body h2 { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; font-size: 1.2rem; }
.ticket-meta { margin-top: .75rem; font-size: .9rem; color: rgba(15,15,27,.65); display: grid; gap: .35rem; }
.ticket-code { margin-top: 1rem; padding-top: 1rem; border-top: 2px dashed rgba(15,15,27,.15); font-family: monospace; font-weight: 700; letter-spacing: .08em; }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; background: var(--purple); background-image: radial-gradient(ellipse 70% 50% at 85% 15%, rgba(255,255,255,.18), transparent 55%); }
.auth-card { width: min(420px, 100%); background: #fff; color: var(--ink); border-radius: 28px; overflow: hidden; }
.auth-card .top { background: var(--purple); color: #fff; padding: 1.75rem 1.5rem 1.25rem; }
.auth-card .top h1 { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; font-size: 1.6rem; }
.auth-card .body { padding: 1.5rem; }
.auth-card .field { display: flex; align-items: center; gap: .65rem; background: var(--fog); border-radius: 12px; padding: .85rem 1rem; margin-bottom: .65rem; }
.auth-card .field input { border: none; background: transparent; outline: none; width: 100%; font: inherit; }
.check-row { display: flex; align-items: center; gap: .5rem; font-size: .85rem; margin: .5rem 0 1rem; color: rgba(15,15,27,.65); }
@media (max-width: 900px) {
  .panel-shell { grid-template-columns: 1fr; width: min(1280px, calc(100% - 1.5rem)); }
  .panel-nav {
    position: static;
    display: flex;
    flex-wrap: nowrap;
    gap: .35rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .panel-nav::-webkit-scrollbar { display: none; }
  .panel-nav .nav-label { display: none; }
  .panel-nav a { margin: 0; flex: 0 0 auto; white-space: nowrap; }
  .form-grid.two { grid-template-columns: 1fr; }
  .listing-book { position: static; }
}

@media (max-width: 480px) {
  .panel-shell { width: calc(100% - 1rem); }
  .media-row { flex-direction: column; align-items: stretch; }
  .media-actions { min-width: 0; }
}

/* —— Media uploads —— */
.media-block { margin: .25rem 0 .5rem; }
.media-row { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.media-thumb {
  width: 140px; height: 100px; border-radius: 14px; overflow: hidden;
  background: var(--ink); border: 1px solid rgba(255,255,255,.1);
  display: grid; place-items: center; flex-shrink: 0;
}
.media-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.media-thumb.is-empty { color: rgba(255,255,255,.35); font-size: .8rem; }
.media-actions { flex: 1; min-width: 180px; }
.media-actions input[type=file] {
  width: 100%; padding: .65rem; background: var(--ink);
  border: 1px dashed rgba(255,255,255,.2); border-radius: 12px; color: rgba(255,255,255,.8);
}
.media-hint { font-size: .75rem; color: rgba(255,255,255,.4); margin-top: .4rem; }
.gallery-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: .65rem; margin-bottom: .75rem;
}
.gallery-item {
  position: relative; border-radius: 12px; overflow: hidden;
  aspect-ratio: 1; background: var(--ink); border: 1px solid rgba(255,255,255,.1);
  cursor: pointer; display: block;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-item .gallery-check {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: rgba(15,15,27,.72); color: #fff; font-size: .68rem;
  padding: .35rem .4rem; display: flex; align-items: center; gap: .35rem;
}
.gallery-item.is-new .gallery-check { background: rgba(9,239,141,.75); color: var(--ink); font-weight: 700; }
.public-gallery {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .65rem; margin-top: 1rem;
}
.public-gallery button {
  border: none; padding: 0; border-radius: 14px; overflow: hidden;
  aspect-ratio: 1.2; cursor: pointer; background: var(--ink-3);
}
.public-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s var(--ease); }
.public-gallery button:hover img { transform: scale(1.05); }

/* —— Offers management —— */
.offer-create {
  margin-bottom: 2rem;
  padding: 1.1rem 1.15rem;
  background: var(--ink-3);
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.05);
}
.offer-list-heading {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(255,255,255,.55);
  margin: 0 0 1rem;
}
.offer-list {
  display: grid;
  gap: 1rem;
}
.offer-card {
  padding: 1.1rem 1.15rem;
  background: var(--ink-3);
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.05);
}
.offer-card .form-grid { margin: 0; }
.offer-active-label {
  color: rgba(255,255,255,.7);
  width: fit-content;
}
.offer-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: .15rem;
}
.offer-card-actions {
  display: flex;
  align-items: center;
  gap: .65rem;
}
.btn-ghost-danger {
  background: transparent;
  color: #ff8e8e;
  border: 1px solid rgba(255,142,142,.35);
  border-radius: 999px;
  padding: .55rem 1rem;
  font-weight: 700;
  cursor: pointer;
}
.btn-ghost-danger:hover {
  background: rgba(255,142,142,.1);
}
.offer-empty {
  color: rgba(255,255,255,.45);
  font-size: .9rem;
  margin: 0;
}
