/* FerryEU Hotels — index.html template adaptation */
.hotel-page{background:#fff}

/* Bare Trip.com search at the top of the Hotels hero. */
.hotel-page .hotel-hero-bare-search{
  position:relative;
  min-height:590px!important;
  height:auto!important;
  overflow:hidden;
}
.hotel-page .hotel-hero-bare-search .hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%!important;
  object-fit:cover!important;
  object-position:center;
}
.hotel-page .hotel-hero-bare-search .hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
}
.hotel-hero-stack{
  position:relative;
  z-index:2;
  padding-top:0;
  padding-bottom:52px;
}
.hotel-bare-trip-search{
  width:100vw;
  max-width:none;
  margin:0 0 30px calc(50% - 50vw);
}
.trip-widget{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:visible;
}
.trip-widget iframe{
  display:block;
  border:0;
  margin:0 auto;
}
.trip-widget-desktop{
  display:flex;
  width:100%;
  max-width:none;
}
.trip-widget-desktop iframe{
  width:100%!important;
  max-width:none!important;
  height:200px!important;
}
.trip-widget-mobile{
  display:none;
}
.hotel-hero-heading{
  max-width:780px;
}
.hotel-hero-heading h1{
  margin:7px 0 14px;
  color:#062b4f;
  font-size:clamp(2.6rem,5vw,4.7rem);
  line-height:.98;
  letter-spacing:-.035em;
  text-shadow:0 1px 2px rgba(255,255,255,.55);
}
.hotel-hero-heading>p{
  max-width:700px;
  margin:0 0 10px;
  color:#16344f;
  font-size:1rem;
  line-height:1.55;
  text-shadow:0 1px 2px rgba(255,255,255,.50);
}
.hotel-hero-heading .hotel-trip-disclosure{
  max-width:700px;
  margin:12px 0 0;
  padding-top:10px;
  border-top:1px solid rgba(6,43,79,.24);
  color:#29445c;
  font-size:.82rem;
  line-height:1.45;
  text-align:left;
}

/* Keep the area immediately below the hero compact. */
.hotel-page .home-shortcuts{
  margin-top:0!important;
  padding-top:14px!important;
  padding-bottom:12px!important;
}
.hotel-page .home-shortcuts .shortcut-grid{
  margin-top:0!important;
  margin-bottom:0!important;
}
.hotel-page .home-shortcuts + .split-section{
  padding-top:18px!important;
}

@media (max-width:940px){
  .hotel-page .hotel-hero-bare-search{
    min-height:0!important;
  }
  .hotel-hero-stack{
    padding-top:0;
    padding-bottom:38px;
  }
  .trip-widget-desktop{
    display:none;
  }
  .trip-widget-mobile{
    display:flex;
  }
  .trip-widget-mobile iframe{
    width:100%!important;
    max-width:none!important;
    height:399px!important;
  }
  .hotel-bare-trip-search{
    margin-bottom:22px;
  }
}

@media (max-width:700px){
  .hotel-hero-stack{
    padding-top:0;
    padding-bottom:30px;
  }
  .hotel-bare-trip-search{
    margin-bottom:18px;
  }
  .hotel-hero-heading h1{
    font-size:clamp(2.25rem,11vw,3.2rem);
  }
  .hotel-page .home-shortcuts{
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
}


/* Compact the remainder of the Hotels page without changing its layout. */
.hotel-page .split-section.section,
.hotel-page .routes-section.section,
.hotel-page .travel-types.section,
.hotel-page .family-section.section,
.hotel-page .seo-content.section,
.hotel-page .hotel-faq.section{
  padding-top:38px!important;
  padding-bottom:38px!important;
}
.hotel-page .section-heading{
  margin-bottom:22px!important;
}
.hotel-page .split-grid{
  row-gap:30px;
}
.hotel-page .hotel-cashback-section .split-grid{
  gap:34px;
}
.hotel-page .final-cta{
  padding-top:34px!important;
  padding-bottom:34px!important;
}

/* Route-tag component reused as non-clickable hotel planning chips. */
.hotel-planning-tags span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 12px;
  border-radius:999px;
  background:#eef4f8;
  color:#173b59;
  font-size:.88rem;
  font-weight:700;
}

/* TopCashback inline section reuses the homepage split-section rhythm. */
.hotel-cashback-section .split-grid{
  align-items:center;
}
.cashback-visual{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:360px;
  padding:30px;
  border:1px solid #dce7e5;
  border-radius:20px;
  background:linear-gradient(135deg,#f4fffd 0%,#fff 70%);
  box-shadow:0 10px 28px rgba(6,43,79,.06);
}
.cashback-logo{
  width:min(380px,88%);
  height:auto;
  margin-bottom:20px;
}
.cashback-qr{
  width:180px;
  height:180px;
  object-fit:contain;
  margin-bottom:8px;
}
.cashback-visual small{
  max-width:280px;
  color:#6c7c8c;
  line-height:1.4;
  text-align:center;
}
.member-tip-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  margin-top:18px;
}
.text-button{
  border:0;
  background:none;
  padding:8px 0;
  color:#075e86;
  text-decoration:underline;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.small-disclosure{
  font-size:.8rem;
  line-height:1.45!important;
  color:#718095!important;
}

/* Compact FAQ treatment retained from the hotel version. */
.hotel-faq{padding-top:38px!important;padding-bottom:38px!important}
.hotel-faq .faq-list details{border-bottom:1px solid #dfe6ec}
.hotel-faq .faq-list summary{padding:12px 42px 12px 0;line-height:1.2}
.hotel-faq .faq-list details>div{padding-bottom:12px}
.hotel-faq .faq-list p{line-height:1.45}

@media (max-width:700px){
  .cashback-visual{min-height:0;padding:22px}
  .cashback-qr{width:160px;height:160px}
}


@media (max-width:940px){
  .hotel-bare-trip-search{
    width:100vw;
    max-width:none;
    margin-left:calc(50% - 50vw);
  }
}




/* Single TopCashback offer shown shortly after hotels.html loads. */
.load-cashback-layer[hidden]{display:none!important}
.load-cashback-layer{
  position:fixed;
  inset:0;
  z-index:100100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.load-cashback-backdrop{
  position:absolute;
  inset:0;
  background:rgba(3,20,36,.70);
  backdrop-filter:blur(3px);
}
.load-cashback-panel{
  position:relative;
  z-index:1;
  width:min(820px,100%);
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:28px;
  align-items:center;
  padding:28px 34px 28px 26px;
  background:#fff;
  border:3px solid #0b4f78;
  border-radius:22px;
  box-shadow:0 30px 90px rgba(0,0,0,.36);
}
.load-cashback-close{
  position:absolute;
  top:10px;
  right:12px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#edf3f6;
  color:#062b4f;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.load-cashback-close:hover,
.load-cashback-close:focus-visible{
  background:#dce7ed;
}
.load-cashback-stop{
  display:block;
  width:180px;
  max-width:100%;
  height:auto;
}
.load-cashback-copy .section-kicker{
  display:block;
  margin-bottom:7px;
  color:#0a8b82;
}
.load-cashback-copy h2{
  margin:0 0 18px;
  padding-right:22px;
  color:#062b4f;
  font-size:clamp(1.55rem,3.2vw,2.25rem);
  line-height:1.08;
  letter-spacing:-.02em;
}
.load-cashback-cta{
  display:inline-flex;
  justify-content:center;
  text-align:center;
}
.load-cashback-terms{
  margin:14px 0 0;
  color:#6b7b89;
  font-size:.78rem;
  line-height:1.45;
}
body.load-cashback-open{
  overflow:hidden;
}
@media (max-width:700px){
  .load-cashback-layer{padding:12px}
  .load-cashback-panel{
    width:min(520px,100%);
    grid-template-columns:1fr;
    gap:14px;
    padding:22px 18px 20px;
    text-align:center;
  }
  .load-cashback-stop{
    width:128px;
    margin:0 auto;
  }
  .load-cashback-copy h2{
    padding-right:0;
    font-size:1.55rem;
  }
  .load-cashback-copy .section-kicker{
    margin-top:0;
  }
  .load-cashback-cta{
    width:100%;
  }
}


@media (max-width:940px){
  .trip-widget-mobile{
    width:100vw!important;
    max-width:none!important;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
  }
}

/* No-popup edition: cashback details control is a normal external link. */
.text-button{
  display:inline-block;
}


/* Hotels booking-form distinction */
.trip-widget iframe{
  border:2px solid #000!important;
  box-sizing:border-box;
}


/* Hero refinement — match the approved homepage/destinations overlay treatment */
.hotel-page .hotel-hero-bare-search .hero-overlay{
  background:linear-gradient(90deg,rgba(3,31,59,.92) 0%,rgba(6,43,79,.78) 48%,rgba(6,43,79,.30) 78%,rgba(6,43,79,.12) 100%);
}
.hotel-hero-heading h1{
  color:#fff;
  text-shadow:none;
}
.hotel-hero-heading>p{
  color:#edf5fa;
  text-shadow:none;
}
.hotel-hero-heading .hotel-trip-disclosure{
  color:#e5eef6;
  border-top:1px solid rgba(255,255,255,.28);
}
.hotel-hero-heading .section-kicker{margin-bottom:12px;}
/* trains.html uses hotels-page.css with .train-hero-compact-specific inline rules */
.hotel-page .train-hero-compact .hero-overlay{
  background:linear-gradient(90deg,rgba(3,31,59,.92) 0%,rgba(6,43,79,.78) 48%,rgba(6,43,79,.30) 78%,rgba(6,43,79,.12) 100%) !important;
}
.hotel-page .train-hero-compact .hotel-hero-heading h1{
  color:#fff !important;
  text-shadow:none !important;
}
.hotel-page .train-hero-compact .hotel-hero-heading>p{
  max-width:760px !important;
  margin:0 !important;
  padding:0 !important;
  color:#edf5fa !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  font-size:1.02rem !important;
  font-weight:500 !important;
  line-height:1.48 !important;
  text-shadow:none !important;
}
@media(max-width:760px){
  .hotel-page .hotel-hero-bare-search .hero-overlay{background:linear-gradient(90deg,rgba(3,31,59,.94) 0%,rgba(6,43,79,.84) 62%,rgba(6,43,79,.56) 100%);}
}
