/* Homepage refresh; loaded only on the front page while HEADER_REFRESH is enabled. */
.home-refresh { --home-ink:var(--dark); --home-muted:var(--secondary); --home-green:var(--primary); --home-soft:color-mix(in srgb,var(--primary) 6%,var(--white)); --home-icon:color-mix(in srgb,var(--primary) 86%,#000); max-width:1180px; width:calc(100% - 48px); margin:48px auto 0; color:var(--home-ink); }
.home-refresh * { box-sizing:border-box; }
.home-refresh__hero { --home-dot-step:8px; position:relative; z-index:1; isolation:isolate; padding:26px 28px 28px; border-radius:20px; background:radial-gradient(ellipse at 8% 0%,#ffffff12,transparent 65%),linear-gradient(112deg,transparent 30%,color-mix(in srgb,var(--dark) 11%,transparent)),var(--home-green); color:var(--white); }
/* Keep the texture behind content without clipping the calendar or guest panel. */
.home-refresh__hero::before { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; pointer-events:none; background-image:radial-gradient(circle,#ffffff42 .8px,transparent 1.15px); background-size:var(--home-dot-step) var(--home-dot-step); background-position:7px 7px; -webkit-mask-image:linear-gradient(110deg,#0004,#0009 50%,#000); mask-image:linear-gradient(110deg,#0004,#0009 50%,#000); }
/* Low-opacity layers read as a fine raster; waves stay static and understated. */
.home-refresh__hero::before,.home-refresh__texture { opacity:.25; }
.home-refresh__texture { position:absolute; inset:0; z-index:-1; border-radius:inherit; overflow:hidden; pointer-events:none; -webkit-mask-image:linear-gradient(110deg,#0004,#0009 50%,#000); mask-image:linear-gradient(110deg,#0004,#0009 50%,#000); }
.home-refresh__wave { position:absolute; inset:0; background-image:radial-gradient(circle,#ffffff54 1.1px,transparent 1.5px); background-size:var(--home-dot-step) var(--home-dot-step); background-position:7px 7px; -webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 5%,#000b 28%,transparent 65%); mask-image:radial-gradient(ellipse at 50% 50%,#000 5%,#000b 28%,transparent 65%); -webkit-mask-size:150% 230%; mask-size:150% 230%; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; opacity:.62; }
.home-refresh__wave--one { opacity:.48; -webkit-mask-position:8% 25%; mask-position:8% 25%; }
.home-refresh__wave--two { background-image:radial-gradient(circle,#ffffff42 .95px,transparent 1.35px); -webkit-mask-position:84% 65%; mask-position:84% 65%; }
.home-refresh__hero h1 { color:var(--white); }
.home-refresh__hero>p { margin:0; color:var(--white); }
.home-refresh-search { margin-top:20px; }
.home-refresh-search #bookingContainer { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr; gap:11px; align-items:end; position:relative; }
.home-refresh-search #bookingDate { display:contents; }
.home-refresh-search #bookingDate input { border-radius:9px; text-align:left; }
.home-refresh-search__field { min-width:0; }
.home-refresh-search__field>label,.home-refresh-search__label { display:block; color:var(--white); font-size:14px; line-height:1.4; margin:0 0 7px; }
.home-refresh-search .form-control,.home-refresh-search__guests>summary { width:100%; min-width:0; height:44px; border:1px solid var(--white); border-radius:9px; padding:0 10px; background:var(--white); color:var(--home-ink); font-size:16px; line-height:1.4; }
.home-refresh-search__submit { display:flex; align-items:center; justify-content:center; gap:12px; height:44px; white-space:nowrap; }
.home-refresh-search__submit:focus-visible,.home-refresh-search__guests>summary:focus-visible { outline:2px solid var(--white); outline-offset:4px; }
.home-refresh-search__guest-field { position:relative; }
.home-refresh-search__guests>summary { display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer; list-style:none; }
.home-refresh-search__guests>summary>i { flex:none; font-size:10px; }
.home-refresh-search__guests>summary::-webkit-details-marker { display:none; }
.home-refresh-search__guests>summary>span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-refresh-search__guest-panel { position:absolute; z-index:30; right:0; top:calc(100% + 8px); width:300px; max-width:calc(100vw - 48px); padding:20px; border-radius:14px; background:var(--white); color:var(--home-ink); box-shadow:0 8px 28px #0003; }
.home-refresh-search__guest-panel label { display:block; font-size:14px; margin:12px 0 6px; }
.home-refresh-search__guest-panel>label:first-child { margin-top:0; }
.home-refresh-search__guest-panel .form-control { border-color:color-mix(in srgb,var(--dark) 15%,var(--white)); }
.home-refresh-search__done { display:block; width:100%; margin-top:16px; }
.home-refresh-search .datepicker { z-index:40!important; color:var(--home-ink); }
.home-refresh__references a { display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; color:var(--white); text-decoration:none; }
.home-refresh__references-cta { text-decoration:underline; text-underline-offset:2px; }
.home-refresh__references a:focus-visible { outline:2px solid var(--white); outline-offset:4px; border-radius:4px; }
.home-refresh__benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:24px; }
.home-refresh__benefit { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.home-refresh__benefit>i { flex:none; width:20px; font-size:18px; color:var(--home-icon); margin-top:1px; }
.home-refresh__benefit strong { display:block; font-size:14px; line-height:1.4; font-weight:600; }
.home-refresh__benefit p { margin:5px 0 0; font-size:12px; line-height:1.5; color:var(--home-muted); }
.home-refresh__seasonal { margin-top:48px; }
.home-refresh__seasonal>h2 { margin:0 0 16px; font-size:25px; line-height:1.2; }
.home-refresh__offers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-refresh__offer { overflow:hidden; min-width:0; display:flex; flex-direction:column; border-radius:16px; background:var(--home-soft); }
.home-refresh__media { display:block; position:relative; height:185px; flex:none; overflow:hidden; }
.home-refresh__media img { display:block; width:100%; height:100%; object-fit:cover; }
.home-refresh__badge { position:absolute; top:12px; left:12px; padding:6px 9px; border-radius:6px; background:var(--white); color:var(--home-ink); font-size:12px; font-weight:600; line-height:1.4; }
.home-refresh__offer-copy { display:flex; flex-direction:column; flex:1; padding:20px; }
.home-refresh__offer-copy .home-refresh__season { display:flex; flex-wrap:wrap; gap:6px 10px; margin:0 0 8px; font-size:11px; line-height:1.4; letter-spacing:1px; text-transform:uppercase; color:var(--home-muted); }
.home-refresh__offer h3 { margin:0 0 10px; font-size:21px; line-height:1.25; }
.home-refresh__offer h3 a { color:inherit; text-decoration:none; }
.home-refresh__offer-copy>p { margin:0 0 16px; line-height:1.6; color:var(--home-muted); }
.home-refresh__offer-link { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding:4px 0; color:var(--home-ink); font-size:14px; font-weight:700; text-decoration:none; }
.home-refresh__offer-link>i { color:var(--home-icon); }
.home-refresh__legacy-offers { margin-top:48px; }
@media(min-width:1024px) {
  .home-refresh__benefit strong,.home-refresh__benefit p { font-size:inherit; }
}
@media(max-width:1023px) {
  .home-refresh__hero { padding:24px; }
  .home-refresh-search #bookingContainer { grid-template-columns:1.2fr 1fr 1fr; }
  .home-refresh-search__submit { grid-column:span 2; }
  .home-refresh-search__guest-panel { left:0; right:auto; }
}
@media(max-width:700px) {
  .home-refresh__benefits { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; margin-top:22px; }
  .home-refresh__offers { grid-template-columns:1fr; gap:20px; }
}
@media(max-width:600px) {
  .home-refresh__references-separator { display:none; }
  .home-refresh { width:calc(100% - 32px); margin-top:32px; }
  .home-refresh__hero { --home-dot-step:7px; padding:23px 18px; border-radius:18px; }
  .home-refresh__hero::before,.home-refresh__texture { opacity:.2; }
  .home-refresh__hero h1 { font-size:1.75rem; }
  .home-refresh-search { margin-top:18px; }
  .home-refresh-search #bookingContainer { grid-template-columns:1fr 1fr; gap:14px 9px; }
  .home-refresh-search #bookingContainer>.home-refresh-search__field:first-child { grid-column:span 2; }
  .home-refresh-search .form-control,.home-refresh-search__guests>summary { height:46px; padding-inline:6px; }
  .home-refresh-search__submit { grid-column:auto; height:46px; }
  .home-refresh-search__guest-panel { width:280px; }
  .home-refresh__seasonal,.home-refresh__legacy-offers { margin-top:40px; }
}
@media(max-width:420px) {
  .home-refresh__benefit { display:block; }
  .home-refresh__benefit>i { display:block; margin:0 0 7px; }
}
@media(max-width:370px) {
  .home-refresh__hero { padding:22px 15px; }
  .home-refresh__hero h1 { font-size:1.625rem; }
  .home-refresh-search #bookingDate>.home-refresh-search__field,.home-refresh-search__guest-field,.home-refresh-search__submit { grid-column:span 2; }
}
