/*
 * BeaMiiLocal - Front page layout contract
 * Version: 2.2.0
 *
 * One scoped home-page foundation for rails/cards. Visual section chrome lives
 * in pages/home-section-chrome.css, which is loaded last on the front page.
 */

body.app--home{
  overflow-x:hidden;
  overflow-y:auto;
  min-height:100%;
  -webkit-overflow-scrolling:touch;
}

.app--home .beamii-home,
.app--home .beamii-home *,
.app--home .beamii-home *::before,
.app--home .beamii-home *::after{
  box-sizing:border-box;
}

.app.app--home > .beamii-home,
.app--home .beamii-home{
  width:100%;
  max-width:min(860px, calc(100vw - 28px));
  min-width:0;
  margin-inline:auto;
  padding-top:calc(var(--beamii-shell-safe-top, env(safe-area-inset-top, 0px)) + var(--beamii-shell-topbar-row-h, 58px) + 12px) !important;
  overflow:visible;
}

.app--home .beamii-home__section,
.app--home .beamii-home__sectionshell,
.app--home .beamii-home__sectionshell > div{
  min-width:0;
  max-width:100%;
}

.app--home .beamii-home__sectionshell{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

/* One rail behaviour everywhere: one clear card and a controlled peek. */
.app--home .beamii-home__places-quick-rail,
.app--home .beamii-home__nearby-slider,
.app--home .beamii-home__association-slider,
.app--home .beamii-home__event-slider,
.app--home .beamii-home__place-slider,
.app--home .beamii-home__promo-slider,
.app--home .beamii-place2__reco-slider{
  /* Legacy app.css contains mobile grid rules with !important. This file is
   * the canonical, last-mile home rail contract, so explicitly neutralize
   * that old grid layout instead of letting both models compete. */
  display:flex !important;
  flex-flow:row nowrap !important;
  grid-auto-flow:unset !important;
  grid-template-columns:none !important;
  grid-auto-columns:unset !important;
  align-items:stretch !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  gap:12px !important;
  margin:0 !important;
  padding:2px 2px 10px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory !important;
  scroll-padding-inline:2px !important;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.app--home .beamii-home__places-quick-rail::-webkit-scrollbar,
.app--home .beamii-home__nearby-slider::-webkit-scrollbar,
.app--home .beamii-home__association-slider::-webkit-scrollbar,
.app--home .beamii-home__event-slider::-webkit-scrollbar,
.app--home .beamii-home__place-slider::-webkit-scrollbar,
.app--home .beamii-home__promo-slider::-webkit-scrollbar,
.app--home .beamii-place2__reco-slider::-webkit-scrollbar{
  display:none;
}

.app--home .beamii-home__places-quick-rail > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__nearby-slider > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__event-slider > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__place-slider > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__association-slider > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__promo-slider > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__quick-slider > .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-place2__reco-slider > *{
  flex:0 0 min(82vw, 324px) !important;
  width:min(82vw, 324px) !important;
  min-width:min(82vw, 324px) !important;
  max-width:calc(100vw - 48px) !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

/* Shared app card language. */
.app--home .beamii-places-quick__card:not(.beamii-entity-card),
.app--home .beamii-home__event-card,
.app--home .beamii-home__place-card,
.app--home .beamii-place2__reco-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  height:auto;
  overflow:hidden;
  border:1px solid rgba(27,65,94,.08);
  border-radius:20px;
  background:#fff;
  color:#17324d;
  box-shadow:0 8px 22px rgba(20,50,73,.08);
  text-decoration:none;
  transform:translateZ(0);
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__thumb,
.app--home .beamii-home__event-image,
.app--home .beamii-home__place-card-media,
.app--home .beamii-place2__reco-media{
  position:relative;
  display:block;
  width:100%;
  min-width:0;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#e9f1f6;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__thumb::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(8,27,42,.12), transparent 44%, rgba(8,27,42,.10));
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__thumb img,
.app--home .beamii-home__event-image img,
.app--home .beamii-home__place-card-media img,
.app--home .beamii-place2__reco-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__body,
.app--home .beamii-home__event-body,
.app--home .beamii-home__place-card-body,
.app--home .beamii-place2__reco-body{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-width:0;
  padding:12px 13px 13px;
  background:#fff;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__name,
.app--home .beamii-home__event-title,
.app--home .beamii-home__place-card-title,
.app--home .beamii-place2__reco-title{
  display:-webkit-box;
  margin:0;
  overflow:hidden;
  color:#17324d;
  font-size:.98rem;
  line-height:1.18;
  font-weight:900;
  letter-spacing:-.018em;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__excerpt,
.app--home .beamii-home__event-excerpt,
.app--home .beamii-home__place-card-text,
.app--home .beamii-place2__reco-text{
  display:-webkit-box;
  margin:7px 0 0;
  overflow:hidden;
  color:#667b8f;
  font-size:.78rem;
  line-height:1.42;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-width:0;
  margin-top:auto;
  padding-top:10px;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__meta{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:#587086;
  font-size:.75rem;
  line-height:1.3;
  font-weight:700;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__meta > span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.app--home .beamii-places-quick__card:not(.beamii-entity-card) .beamii-places-quick__meta i{
  flex:0 0 auto;
  color:#2085b8;
  font-size:.76rem;
}

/* Events use the same shared image/meta/content/bottom card contract as all other rails. */

/* Slider dots are deliberately quiet. */
.app--home .beamii-home__nearby-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:12px;
  margin:3px 0 0;
  padding:0;
}

.app--home .beamii-home__nearby-dot,
.app--home .beamii-home__nearby-dotbtn,
.app--home .beamii-place2__slider-dot{
  width:6px;
  height:6px;
  min-width:6px;
  padding:0;
  border:0;
  border-radius:999px;
  background:#bfd1dc;
  box-shadow:none;
}

.app--home .beamii-home__nearby-dot.is-active,
.app--home .beamii-home__nearby-dotbtn.is-active,
.app--home .beamii-place2__slider-dot.is-active{
  width:18px;
  background:#2187b8;
}

@media (max-width:380px){
  .app.app--home > .beamii-home,
  .app--home .beamii-home{
    max-width:calc(100vw - 20px);
  }

  .app--home .beamii-home__places-quick-rail > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__nearby-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__event-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__place-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__association-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__promo-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__quick-slider > .beamii-places-quick__card:not(.beamii-entity-card){
    flex-basis:calc(100vw - 54px) !important;
    width:calc(100vw - 54px) !important;
    min-width:calc(100vw - 54px) !important;
  }
}

@media (min-width:760px){
  .app--home .beamii-home__places-quick-rail > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__nearby-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__event-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__place-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__association-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__promo-slider > .beamii-places-quick__card:not(.beamii-entity-card),
  .app--home .beamii-home__quick-slider > .beamii-places-quick__card:not(.beamii-entity-card){
    flex-basis:300px !important;
    width:300px !important;
    min-width:300px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .app--home .beamii-home *,
  .app--home .beamii-home *::before,
  .app--home .beamii-home *::after{
    scroll-behavior:auto !important;
    transition:none !important;
  }
}
