.hero-banner-stage { overflow: hidden; }

.hero-banner-stage .hero-banner {
  border-radius: 180px 180px 10px 10px;
  height: 100%;
  inset: 0;
  min-height: 425px;
  object-fit: cover;
  opacity: 0;
  position: absolute;
  transition: opacity 1.8s ease-in-out, transform 6s ease-in-out;
  transform: scale(1.03);
  width: 100%;
}

.hero-banner-stage .hero-banner.active { opacity: .92; transform: scale(1); }
.hero-banner-stage .hero-banner { animation: banner-fade 36s infinite; }
.hero-banner-stage .hero-banner:nth-of-type(2) { animation-delay: -30s; }
.hero-banner-stage .hero-banner:nth-of-type(3) { animation-delay: -24s; }
.hero-banner-stage .hero-banner:nth-of-type(4) { animation-delay: -18s; }
.hero-banner-stage .hero-banner:nth-of-type(5) { animation-delay: -12s; }
.hero-banner-stage .hero-banner:nth-of-type(6) { animation-delay: -6s; }
@keyframes banner-fade { 0%, 14% { opacity: .92; transform: scale(1); } 17%, 100% { opacity: 0; transform: scale(1.03); } }
.hero-banner-stage .hero-note { z-index: 2; }

.banner-dialog, .payment-dialog, .admin-login-dialog { background: #fffdf9; padding: 42px; width: min(680px, 94vw); }
.banner-dialog h2, .payment-dialog h2, .admin-login-dialog h2 { color: var(--purple); font: 600 35px "Playfair Display"; letter-spacing: -1px; margin: 3px 0 10px; }
.banner-slots { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin-top: 22px; }
.banner-slot { background: white; border: 1px solid var(--line); padding: 8px; }
.banner-slot img { display: block; height: 115px; object-fit: cover; width: 100%; }
.banner-slot label { color: var(--purple); display: block; font-size: 10px; font-weight: 700; margin: 10px 0 5px; }
.banner-slot input { font-size: 10px; max-width: 100%; }
.payment-summary { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; margin: 22px 0 17px; padding: 15px 0; }
.payment-summary div + div { border-left: 1px solid var(--line); padding-left: 18px; }
.payment-summary small { color: var(--muted); display: block; font-size: 10px; margin-bottom: 4px; }
.payment-summary strong { color: var(--purple); font: 600 21px "Playfair Display"; }
.payment-label { color: var(--purple); display: grid; font-size: 11px; font-weight: 600; gap: 6px; margin-top: 14px; }
.payment-label input { border: 1px solid #ddd4ca; font: 12px "DM Sans"; outline-color: var(--gold); padding: 11px; }
.payment-label textarea { border: 1px solid #ddd4ca; font: 12px "DM Sans"; outline-color: var(--gold); padding: 11px; resize: vertical; }
.payment-divider { align-items: center; color: var(--muted); display: flex; font-size: 10px; gap: 10px; margin: 16px 0 0; }
.payment-divider:before, .payment-divider:after { background: var(--line); content: ""; height: 1px; flex: 1; }
.payment-status { background: #f3e8c6; color: #5c4a5e; font-size: 11px; line-height: 1.5; margin: 16px 0 0; padding: 10px 12px; }
.till-card { background: var(--purple); color: white; display: grid; margin: 0 0 18px; padding: 18px; text-align: center; }
.till-card small { color: var(--gold-light); font-size: 9px; font-weight: 700; letter-spacing: 1.2px; }
.till-card strong { color: var(--gold); font: 700 32px "Playfair Display"; letter-spacing: 2px; margin: 4px 0; }
.till-card span { font-size: 10px; font-weight: 700; letter-spacing: .8px; }
.login-error { color: #a02f44; font-size: 11px; min-height: 16px; }
.enquiry-dialog { background: #fffdf9; padding: 42px; width: min(580px, 94vw); }
.enquiry-dialog h2 { color: var(--purple); font: 600 35px "Playfair Display"; letter-spacing: -1px; margin: 3px 0 10px; }
.enquiry-dialog .form-intro a, .footer-contact a { color: var(--gold); font-weight: 700; }
.footer-contact { display: flex; gap: 14px; }

@media (max-width: 800px) {
  .hero-banner-stage .hero-banner { min-height: 280px; }
  .banner-dialog, .payment-dialog, .enquiry-dialog, .admin-login-dialog { padding: 32px 20px; }
  .banner-slots { grid-template-columns: 1fr; }
}

/* Compact homepage banner and card layout. */
.hero-banner-stage .hero-banner { border-radius: 110px 110px 8px 8px; min-height: 0; }
.banner-slot img { aspect-ratio: 2 / 1; height: auto; }

@media (max-width: 800px) {
  .hero-banner-stage .hero-banner { min-height: 0; }
}

.hero { min-height: 330px; padding: 35px clamp(24px, 7.6vw, 117px); gap: 34px; }
.hero h1 { font-size: clamp(34px, 3.8vw, 51px); letter-spacing: -2px; margin-bottom: 13px; }
.hero-text { font-size: 13px; line-height: 1.55; margin-bottom: 17px; }
.hero-image { aspect-ratio: 2 / 1; min-height: 0; }
.hero-image img { border-radius: 110px 110px 8px 8px; min-height: 0; }
.search-bar .gold-button { padding: 11px 15px; }
.trust-row { gap: 14px; margin-top: 15px; font-size: 10px; }
.hero-note { bottom: 15px; left: -22px; padding: 10px 14px; }
.featured-section { padding-top: 28px; padding-bottom: 48px; }
.section-heading { margin-bottom: 14px; }
.tier-filter { margin-bottom: 14px; }
.featured-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; min-height: 0; }
.profile-card, .platinum-card { aspect-ratio: 1; min-height: 0; }
.profile-card-info, .platinum-card .profile-card-info { padding: 10px; }
.profile-card-info h3, .platinum-card .profile-card-info h3 { font-size: clamp(14px, 1.25vw, 18px); }
.profile-card-info p { font-size: 8px; }
.card-meta { margin-top: 7px; padding-top: 6px; font-size: 7px; }
.tier-marker { top: 8px; padding: 5px 7px 5px 9px; font-size: 7px; }
.mini-gallery { bottom: 7px; right: 7px; width: 38px; gap: 2px; }
.mini-gallery img { height: 24px; border-width: 1px; }

@media (max-width: 1100px) {
  .featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
  .hero { padding: 42px 24px 32px; }
  .hero-image { min-height: 0; width: 100%; }
  .hero-image img { min-height: 0; }
  .featured-grid { grid-template-columns: 1fr; }
  .profile-card, .platinum-card { aspect-ratio: 1; min-height: 0; }
  .featured-grid .profile-card:nth-child(n+4) { display: block; }
}

.advertise-menu { position: relative; }
.advertise-options { background: #fffdf9; border: 1px solid var(--line); box-shadow: 0 12px 28px rgba(35, 18, 47, .16); display: none; min-width: 180px; padding: 6px; position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; }
.advertise-menu.open .advertise-options { display: grid; }
.advertise-options button { background: transparent; border: 0; color: var(--purple); cursor: pointer; font: 600 12px "DM Sans", sans-serif; padding: 10px; text-align: left; }
.advertise-options button:hover { background: #f3ecf8; }
.archive-gallery { border-top: 1px solid var(--line); display: grid; gap: 10px; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 25px; padding-top: 20px; }
.archive-title { color: var(--purple); font: 600 19px "Playfair Display", serif; grid-column: 1 / -1; margin: 0; }
.archive-gallery article { align-items: center; background: rgba(255, 253, 249, .72); border: 1px solid var(--line); display: grid; gap: 8px; grid-template-columns: 1fr auto; justify-content: space-between; min-height: 82px; padding: 12px; transition: .2s; }
.archive-card.tier-vip { border-left: 4px solid #987e91; min-height: 96px; }.archive-card.tier-gold { border-left: 5px solid var(--gold); min-height: 112px; }.archive-card.tier-platinum { background: #f3ecf8; border: 2px solid var(--purple); min-height: 132px; }
.archive-gallery strong { color: var(--purple); font-size: 12px; }.archive-gallery span { color: var(--muted); font-size: 10px; }.archive-elevate { background: var(--purple); border: 0; color: white; cursor: pointer; font: 700 9px "DM Sans", sans-serif; padding: 7px 9px; }
.archive-gallery select { border: 1px solid var(--line); color: var(--purple); font: 600 10px "DM Sans", sans-serif; padding: 6px; }
.contact-section { background: #fffdf9; padding: 62px clamp(24px, 7.6vw, 117px); }.contact-section h2 { color: var(--purple); font: 600 clamp(31px, 3.3vw, 45px) "Playfair Display", serif; margin: 0; }.contact-section > p:not(.eyebrow) { color: var(--muted); font-size: 13px; }.contact-form { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }.contact-form input, .contact-form textarea { border: 1px solid #ddd4ca; font: 12px "DM Sans", sans-serif; padding: 12px; width: 100%; }.contact-form textarea, .contact-form button { grid-column: 1 / -1; }.contact-form button { justify-self: start; }
.agency-models { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 16px; }.agency-models p { color: var(--muted); font-size: 11px; margin: 5px 0 12px; }.agency-model-card { border: 1px solid var(--line); margin: 12px 0; padding: 14px; }.agency-model-card legend { color: var(--purple); font-weight: 700; padding: 0 6px; }.agency-model-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }.agency-model-grid label { color: var(--purple); display: grid; font-size: 10px; font-weight: 700; gap: 4px; }.agency-model-grid input, .agency-model-grid select { border: 1px solid var(--line); padding: 8px; }
.admin-archive { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; }.admin-archive h3 { color: var(--purple); font-size: 22px; margin: 0; }.admin-archive > p { color: var(--muted); font-size: 11px; }.admin-archive article { align-items: center; border: 1px solid var(--line); display: grid; gap: 10px; grid-template-columns: 1fr auto auto; margin-top: 8px; padding: 10px; }.admin-archive strong { color: var(--purple); font-size: 12px; }.admin-archive select { border: 1px solid var(--line); padding: 7px; }
.visit-dashboard { align-items: end; background: #fffdf9; border: 1px solid var(--line); display: grid; gap: 20px; grid-template-columns: 150px 1fr; margin: 20px 0; padding: 16px; }.visit-dashboard h3 { color: var(--purple); font-size: 18px; margin: 0; }.visit-dashboard strong { color: var(--purple); display: block; font: 600 31px "Playfair Display", serif; }.visit-dashboard small { color: var(--muted); font-size: 9px; }.visit-dashboard .eyebrow { margin-bottom: 5px; }.visit-chart { align-items: end; display: grid; gap: 3px; grid-template-columns: repeat(31, minmax(0, 1fr)); height: 105px; }.visit-chart span { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: end; }.visit-chart i { background: linear-gradient(var(--gold), var(--purple)); min-height: 3px; width: 100%; }.visit-chart small { font-size: 7px; margin-top: 3px; }
#archiveGallery { display: none; }
.gallery-section { gap: 22px; padding-block: 38px; }
.category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.category-card { height: auto; min-height: 78px; padding: 12px; }
.category-card span { margin-bottom: 8px; }.category-card strong { font-size: 14px; }.category-card small { font-size: 9px; }
.tiara-mark { color: var(--gold-light); font: 28px/1 Georgia, serif; }.concierge-plan { background: #21112e; color: white; border-top: 4px solid var(--gold); position: relative; }.concierge-plan h3 { color: white; }.concierge-plan > p:not(.tier-label), .concierge-plan ul { color: #eadff0; }.concierge-plan > .tiara-mark { position: absolute; right: 14px; top: 12px; }
.tiers-section { padding-block: 42px; }.tier-plans { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: none; }.tier-plan { min-height: 250px; padding: 20px 16px; }.tier-plan h3 { font-size: 21px; }.tier-plan ul { min-height: 72px; margin: 12px 0; line-height: 1.65; }
@media (max-width: 1000px) { .category-grid, .tier-plans { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 800px) { .archive-gallery, .contact-form { grid-template-columns: 1fr; }.archive-gallery article { align-items: flex-start; flex-direction: column; }.topbar-actions { gap: 10px; } }
.visit-chart b { color: var(--purple); font-size: 8px; }

/* Corrected hero: full executive background, clean borderless rotating advert banners. */
.hero {
  background:
    linear-gradient(90deg, rgba(25, 5, 38, .9) 0%, rgba(43, 13, 64, .74) 43%, rgba(20, 7, 29, .18) 100%),
    url("/marketplace/assets/executive-lounge-hero.png") center / cover no-repeat;
  grid-template-columns: minmax(420px, .9fr) minmax(360px, .72fr);
  min-height: 520px;
  overflow: hidden;
}
.hero:after,
.hero-orbit,
.hero-note,
.hero-banner-copy { display: none; }
.hero-copy { position: relative; z-index: 3; }
.hero-image.hero-banner-stage {
  align-self: end;
  aspect-ratio: 2 / 1;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  min-height: 0;
  overflow: visible;
}
.hero-banner-stage .hero-banner {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  filter: drop-shadow(0 20px 35px rgba(0, 0, 0, .34));
  height: 100%;
  min-height: 0;
  object-fit: contain;
  opacity: 0;
  transform: translateY(10px) scale(.985);
  transition: opacity 2s ease-in-out, transform 6s ease-in-out;
  width: 100%;
}
.hero-banner-stage .hero-banner.active {
  opacity: .96;
  transform: translateY(0) scale(1);
}
@media (max-width: 900px) {
  .hero {
    grid-template-columns: 1fr;
    min-height: 620px;
  }
  .hero-image.hero-banner-stage {
    width: min(100%, 560px);
  }
}
