#module-stage { position: relative; flex: 1; overflow: clip; }
#module-page { min-width: 0; min-height: calc(100vh - 96px); display: flex; flex-direction: column; }
#module-page > main { flex: 1; }
.module-outgoing { position: absolute; inset: 0; width: 100%; pointer-events: none; }
#module-status, #module-error { position: fixed; z-index: 45; top: 104px; left: 50%; transform: translateX(-50%); background: #fffdf9; color: #103e36; padding: 12px 20px; border: 1px solid #d0dbd1; border-radius: 10px; box-shadow: 0 4px 18px #103e3615; max-width: 90%; }
#module-error button { text-decoration: underline; margin-left: 10px; }
.module-price { margin: 8px 0; color: #075b48; font-weight: 800; font-size: 17px; }
.module-facts { margin-top: 9px; color: #626d65; font-size: 12px; line-height: 1.5; }
.module-card .shop-slide-body { min-width: 0; }
.module-card.shop-slot-compact .shop-rating small { display: inline; }
.module-card.shop-slot-compact .module-price { font-size: 13px; }
.module-card.shop-slot-compact .module-facts { font-size: 11px; }
.module-results { row-gap: 24px; }
.module-pagination { display: flex; justify-content: center; gap: 24px; margin: 30px 0; }
.module-detail-photo { width: 100%; max-height: 560px; object-fit: contain; border-radius: 14px; }
.module-hero { --hero-focus: 76%; }
.module-classifieds { --hero-focus: 80%; }
.module-real-estate { --hero-focus: 78%; }
.module-vehicles { --hero-focus: 76%; }
.module-hero .hero-description { max-width: 650px; }
.module-hero .hero-search { width: min(770px, 65%); }
#hero-title:focus { outline: none; }
@media (max-width: 1100px) {
  .desktop-header-inner { flex-wrap: wrap; gap: 12px; }
  .desktop-header-inner > div:first-child { min-width: 0; flex: 1; flex-wrap: wrap; }
  .desktop-module-nav { overflow-x: auto; max-width: 100%; }
  .shop-slot-grid-compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .desktop-header-inner { padding: 10px 16px; }
  .desktop-header-inner > div:first-child { display: contents; }
  .desktop-brand-image { width: 165px; height: 40px; }
  .desktop-brand-image img { width: 190px; top: -14px; left: -13px; }
  .header-tools { margin-left: auto; gap: 8px; }
  .header-tools > a { font-size: 11px; padding: 8px; }
  .desktop-module-nav { order: 3; flex-basis: 100%; width: 100%; gap: 2px; }
  .desktop-module-nav a { flex: 1; text-align: center; padding: 9px 6px; font-size: 12px; }
  .discovery-shell { width: calc(100% - 32px); }
  .luanda-hero { height: auto; min-height: 540px; }
  .luanda-hero-image { height: 245px; object-position: var(--hero-focus, 76%) center; }
  .luanda-hero-wash { background: linear-gradient(0deg, #fbf9f5 48%, #fbf9f5cc 58%, transparent 83%); }
  .hero-content { padding-top: 220px; padding-bottom: 25px; }
  .hero-eyebrow { font-size: 10px; margin-bottom: 12px; }
  .hero-content h1 { font-size: 38px; }
  .hero-description { margin: 15px 0 20px; font-size: 16px; }
  .hero-search, .module-hero .hero-search { width: 100%; flex-direction: column; }
  .hero-search-fields { flex: auto; min-height: 55px; }
  .hero-search label { padding: 0 10px; }
  .hero-search > button { min-height: 48px; justify-content: center; }
  .shop-slot-grid, .shop-slot-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .collection-heading { gap: 10px; align-items: start; }
  .collection-heading h2 { font-size: 23px; }
  .collection-actions { flex-direction: column; gap: 7px; align-items: end; }
  .shop-slide-body { padding: 12px; }
  .shop-slide h3 { font-size: 14px; white-space: normal; }
  .shop-rating { bottom: 5px; right: 5px; font-size: 11px; }
  #module-status, #module-error { top: 135px; }
}
@media (max-width: 380px) {
  .shop-slot-grid:not(.shop-slot-grid-compact) { grid-template-columns: 1fr; }
  .desktop-module-nav a { font-size: 11px; padding: 8px 4px; }
}
.module-meta { margin-top: 6px; color: #626d65; font-size: 12px; }
.classified-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 22px 0 6px; padding: 14px 16px; background: #fffdf9; border: 1px solid #dcded8; border-radius: 12px; }
.classified-filters label { display: flex; flex-direction: column; gap: 4px; flex: 1 1 150px; min-width: 0; font-size: 12px; color: #626d65; }
.classified-filters select, .classified-filters input[type="text"] { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid #dcded8; border-radius: 8px; background: #fff; color: #33403a; font-size: 14px; }
.classified-filters button { min-height: 40px; padding: 0 22px; border-radius: 8px; background: var(--mk-green); color: #fff; font-weight: 700; }
.classified-categories { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0 4px; }
.classified-categories h2 { flex: 0 0 100%; font-size: 15px; }
.classified-categories a, .filter-chip, .classified-neighbors a { display: inline-flex; gap: 6px; padding: 6px 12px; border: 1px solid #cbd7ce; border-radius: 999px; background: #fff; color: #075b48; font-size: 13px; }
.classified-active { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.classified-sort { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 10px; font-size: 13px; color: #626d65; }
.classified-sort a.is-active { color: #075b48; font-weight: 800; text-decoration: underline; }
.classified-errors { margin: 14px 0; padding: 12px 16px; border: 1px solid #e3b1a8; border-radius: 10px; background: #fff3f0; color: #8a2d1f; }
.classified-neighbors { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0; }
.classified-neighbors p { flex: 0 0 100%; color: #626d65; }
@media (max-width: 700px) {
  .classified-filters label { flex: 1 1 45%; }
  .classified-filters button { flex: 1 1 100%; }
}

/* Favourite heart on catalog cards (the card link stays a plain link; the heart is its sibling). */
.module-card-shell { position: relative; min-width: 0; display: flex; flex-direction: column; }
.module-card-shell > .shop-slot { flex: 1; }
.card-fav-form { position: absolute; top: 10px; right: 10px; z-index: 2; }
.card-fav-form form { margin: 0; }
.card-heart { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .94);
  color: #6e766f; display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 8px #103e3622;
  transition: transform .15s, color .15s; text-decoration: none; }
.card-heart svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.card-heart:hover { transform: scale(1.08); color: #d23c3c; }
.card-heart:focus-visible { outline: 2px solid var(--mk-green, #075b48); outline-offset: 2px; }
.card-heart.is-on { color: #d23c3c; }
.card-heart.is-on svg { fill: currentColor; }
.card-heart[disabled] { opacity: .6; cursor: progress; }
.shop-slot-compact + .card-fav-form { top: 6px; right: 6px; }
@media (max-width: 639px) { .card-fav-form { top: 6px; right: 6px; } .card-heart { width: 30px; height: 30px; } .card-heart svg { width: 16px; height: 16px; } }
@media (prefers-reduced-motion: reduce) { .card-heart { transition: none; } }
