/* =========================================================
   AAAF Moldova Park — home page polish
   Loads after style.css / pages.css and only nudges the
   home-page components; tokens and base rules stay in style.css.
   ========================================================= */

/* Screen-reader-only text (booking widget heading) */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Hero slide switcher: real buttons, so the slides are reachable from the keyboard */
.hero-slides li button{display:flex;align-items:center;gap:12px;width:100%;padding:3px 0;color:inherit;font:inherit}

/* Hover states that the base stylesheet leaves out */
.booking-tabs button:hover{color:var(--ink)}
.filter:hover{border-color:rgba(21,24,22,.32)}
.filter.is-active:hover{border-color:var(--green)}

/* Package cards: "On request" and the link sit on the same line in every card,
   whatever the length of the lead or the number of chips above them */
.pkg .pkg-request{margin:auto 0 0;font-size:14.5px;font-weight:600;color:var(--muted)}
.pkg .link-arrow{margin-top:12px}

/* Desktop stay strip: four cards in one row. style.css bundles the 2-column fallback with the
   header rules in its (max-width:1560px) block, which would stack the strip 2×2 on 1440px screens. */
@media (min-width:1281px){
  .stay-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .stay-card{min-height:440px}
}

/* Tablets: the celebrate photo spans the full width here, so give it a shallower crop */
@media (min-width:861px) and (max-width:1100px){
  .celebrate-media{aspect-ratio:16/10}
}

/* Phones ------------------------------------------------- */
@media (max-width:860px){
  /* 44px tap targets without moving anything: text links grow an invisible hit area,
     small buttons and filter chips grow in height, card titles pad inside their line box */
  .hero-ctas .link-arrow{min-height:44px;margin:0}
  .hero-ctas .link-arrow::after{content:none}
  .btn-sm{height:44px;min-width:56px}
  .filter{min-height:44px}
  .event-body h3 a,.stay-card h3 a{display:inline-block;padding:10px 0;margin:-10px 0}

  /* Small running text reads better at 14px on a phone (uppercase micro-labels keep their size) */
  .tags li,.pkg-inc li,.chips li,.qr-uses li,.filter,.stats dd,.sport-stats dd,.facts dd,.timeline span,.booking-notes,.stay-figure em,.hero-line{font-size:14px}
  .sold p,.blv-list em,.sport-mosaic figcaption,.celebrate-media figcaption,.today-date{font-size:13px}
}

@media (max-width:600px){
  /* Sport mosaic: one wide photo and two landscape tiles instead of a 188px-wide sliver of a landscape shot */
  .sport-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;height:auto;min-height:0;gap:10px}
  .sport-mosaic figure{aspect-ratio:4/3}
  .sport-mosaic .m1{grid-column:1/-1;grid-row:auto;aspect-ratio:16/10}

  /* Park-map preview: keep the illustration at a readable size and let it scroll sideways */
  .mapsec .map-canvas{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .mapsec .map-canvas::-webkit-scrollbar{display:none}
  .mapsec .map-canvas svg{width:640px;max-width:none}
}
