/* Departamento Bella — Resort Premium v2 */
:root{--v2-ink:#0d3439;--v2-gold:#c49152;--v2-soft:#f7f1e8;--v2-line:rgba(13,52,57,.12);--v2-shadow:0 24px 70px rgba(10,44,49,.11)}

/* Reserva tipo resort */
.booking-v2-shell{max-width:1180px;margin:0 auto 2rem;background:#fff;border:1px solid var(--v2-line);border-radius:30px;padding:clamp(20px,4vw,36px);box-shadow:var(--v2-shadow)}
.booking-v2-top{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(22px,4vw,54px);align-items:center;margin-bottom:28px}
.booking-v2-copy h3{font:700 clamp(2rem,4vw,3.2rem)/1.05 "Playfair Display",serif;color:var(--v2-ink);margin:.35rem 0 1rem}
.booking-v2-copy p{color:#667577;line-height:1.7;margin:0;max-width:620px}
.stay-search{display:grid;grid-template-columns:1fr 1fr .72fr;gap:10px;padding:12px;background:#f7f5f0;border:1px solid rgba(13,52,57,.09);border-radius:22px}
.stay-search label{display:grid;gap:6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:#68777a}
.stay-search input,.stay-search select{border:1px solid #d9dfdd;background:#fff;color:#17383d;border-radius:13px;padding:12px 11px;font:600 .92rem "DM Sans",sans-serif;min-width:0}
.stay-search-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.stay-search-actions a{min-height:48px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.88rem;text-decoration:none}
.stay-airbnb{background:var(--v2-ink);color:#fff}.stay-whatsapp{background:#d9aa68;color:#0b3034}
.stay-helper{grid-column:1/-1;margin:0!important;font-size:.78rem!important;color:#748184!important;text-align:center}
.availability-panel{margin-top:0!important;background:linear-gradient(180deg,#fff,#fcfaf6)!important;border:1px solid var(--v2-line)!important}
.calendar-day.available:not(.past){cursor:pointer;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}
.calendar-day.available:not(.past):hover{transform:translateY(-1px);background:#eef6f2!important;box-shadow:inset 0 0 0 1px rgba(13,52,57,.12)}
.calendar-day.selected-start,.calendar-day.selected-end{background:var(--v2-ink)!important;color:#fff!important;text-decoration:none!important;font-weight:800}
.calendar-day.in-range{background:#e9f1ed!important}
.booking-status-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:#edf5f0;color:#34574f;font-size:.78rem;font-weight:800;margin-top:9px}
.booking-status-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:#4e8a70}

/* Opiniones estilo hotel */
.airbnb-reviews-luxury{padding-block:clamp(80px,9vw,120px)!important}
.airbnb-reviews-wrap.v2{display:block!important;max-width:1180px!important;padding:0!important;background:transparent!important;box-shadow:none!important;border:0!important}
.review-hotel-panel{background:#fff;border:1px solid var(--v2-line);border-radius:30px;box-shadow:var(--v2-shadow);overflow:hidden}
.review-summary{display:grid;grid-template-columns:280px 1fr;gap:34px;padding:clamp(24px,4vw,42px);align-items:center;border-bottom:1px solid var(--v2-line)}
.review-score{text-align:center;padding:24px;border-radius:24px;background:linear-gradient(145deg,#0f3a3f,#0a292d);color:#fff}
.review-score strong{display:block;font:700 clamp(3.7rem,7vw,5.5rem)/.9 "Playfair Display",serif;margin:.35rem 0}
.review-score .stars{font-size:1.15rem;color:#efc787;letter-spacing:.11em}
.review-score span{font-size:.86rem;color:rgba(255,255,255,.78)}
.review-summary-copy h2{font:700 clamp(2.2rem,4.5vw,4rem)/1.04 "Playfair Display",serif;color:var(--v2-ink);margin:.4rem 0 1rem}
.review-summary-copy p{color:#657477;line-height:1.7;margin:0}
.review-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px}
.review-metric{background:#f7f3eb;border-radius:15px;padding:13px;text-align:center}
.review-metric strong{display:block;color:var(--v2-ink);font-size:1.05rem}.review-metric span{font-size:.72rem;color:#738083}
.review-highlights{padding:clamp(24px,4vw,42px)}
.review-highlights-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}
.review-highlights-head h3{font:700 clamp(1.5rem,3vw,2.2rem) "Playfair Display",serif;color:var(--v2-ink);margin:.2rem 0 0}
.review-theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.review-theme{padding:22px;border:1px solid var(--v2-line);border-radius:20px;background:#fcfbf8}
.review-theme .theme-icon{font-size:1.4rem}.review-theme h4{margin:.7rem 0 .35rem;color:var(--v2-ink)}.review-theme p{margin:0;color:#6c797b;line-height:1.55;font-size:.9rem}
.review-source-note{margin:20px 0 0;color:#7a8587;font-size:.78rem}.review-source-note a{color:#91612a;font-weight:800}

/* Momentos como feed social */
.guest-moments-inner{max-width:1180px!important}
#guest-approved-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin-top:26px!important}
.guest-approved-card{position:relative!important;aspect-ratio:1/1!important;border-radius:16px!important;background:#e9ece8!important;box-shadow:none!important;border:0!important;overflow:hidden!important}
.guest-approved-card>img{width:100%!important;height:100%!important;object-fit:cover!important;transition:transform .5s ease!important}
.guest-approved-card:hover>img{transform:scale(1.025)}
.guest-approved-card .meta{position:absolute!important;inset:auto 0 0!important;padding:42px 14px 13px!important;background:linear-gradient(transparent,rgba(5,28,31,.82))!important;color:#fff!important;opacity:0;transform:translateY(8px);transition:.25s ease}
.guest-approved-card:hover .meta,.guest-approved-card:focus-within .meta{opacity:1;transform:none}
.guest-approved-card .meta strong,.guest-approved-card .meta span{color:#fff!important}.guest-like-row{margin-top:8px!important}.guest-like-btn{background:rgba(255,255,255,.16)!important;color:#fff!important;border-color:rgba(255,255,255,.25)!important}.guest-like-count{color:rgba(255,255,255,.85)!important}
.guest-gallery-more{border-radius:999px!important;padding:13px 22px!important;background:var(--v2-ink)!important;color:#fff!important;border:0!important;box-shadow:0 10px 28px rgba(13,52,57,.14)}
.guest-upload-card{margin-top:34px!important}

/* Mapa turístico interactivo */
.location-explore.v2{max-width:1180px;margin:46px auto 0;padding:0!important}
.tour-map-shell{display:grid;grid-template-columns:360px 1fr;gap:18px;background:#fff;border:1px solid var(--v2-line);border-radius:28px;padding:14px;box-shadow:var(--v2-shadow);overflow:hidden}
.tour-place-list{display:grid;gap:7px;align-content:start;padding:8px}
.tour-place{appearance:none;width:100%;border:1px solid transparent;background:transparent;border-radius:16px;padding:13px 14px;text-align:left;cursor:pointer;display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;font:inherit;color:#17383d;transition:.2s ease}
.tour-place:hover{background:#f7f3eb}.tour-place.is-active{background:#eef3ef;border-color:rgba(13,52,57,.1)}
.tour-place-icon{width:42px;height:42px;border-radius:13px;background:#f3e5d2;display:grid;place-items:center;font-size:1.2rem}.tour-place-copy strong{display:block;font-size:.9rem}.tour-place-copy small{display:block;color:#718083;margin-top:3px}.tour-place-time{font-size:.72rem;font-weight:900;color:#9a682f;white-space:nowrap}
.tour-map-view{position:relative;min-height:510px;border-radius:20px;overflow:hidden;background:#e7ece8}.tour-map-view iframe{width:100%;height:100%;min-height:510px;border:0;display:block}.tour-map-caption{position:absolute;left:14px;right:14px;bottom:14px;background:rgba(8,37,41,.92);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:17px;padding:13px 15px;display:flex;justify-content:space-between;gap:16px;align-items:center;backdrop-filter:blur(10px)}.tour-map-caption strong{display:block}.tour-map-caption span{display:block;color:rgba(255,255,255,.72);font-size:.8rem;margin-top:2px}.tour-map-caption a{white-space:nowrap;color:#f0ca91;font-size:.82rem;font-weight:800}

/* Movimiento más fino y sobrio */
.section.reveal{transition-duration:.9s!important;transition-timing-function:cubic-bezier(.21,.72,.23,1)!important}
.photo img,.intro-img img,.destination-card,.booking-card,.review-theme,.tour-place{will-change:transform}

@media(max-width:900px){
 .booking-v2-top{grid-template-columns:1fr}.review-summary{grid-template-columns:1fr}.review-score{max-width:330px}.review-metrics{grid-template-columns:repeat(3,1fr)}.review-theme-grid{grid-template-columns:1fr}.tour-map-shell{grid-template-columns:1fr}.tour-place-list{grid-template-columns:repeat(2,1fr)}.tour-map-view,.tour-map-view iframe{min-height:430px}
}
@media(max-width:620px){
 .stay-search{grid-template-columns:1fr 1fr}.stay-search label:nth-child(3){grid-column:1/-1}.stay-search-actions{grid-template-columns:1fr}.review-metrics{grid-template-columns:repeat(2,1fr)}#guest-approved-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}.guest-approved-card .meta{opacity:1;transform:none;padding:34px 10px 9px!important}.guest-approved-card .meta span{font-size:.72rem!important}.guest-like-row{display:none!important}.tour-place-list{grid-template-columns:1fr}.tour-map-view,.tour-map-view iframe{min-height:390px}.tour-map-caption{position:static;border-radius:0;background:#0d3439}.tour-map-view{display:flex;flex-direction:column}.review-summary,.review-highlights{padding:20px}
}
@media(prefers-reduced-motion:reduce){.guest-approved-card>img,.guest-approved-card .meta,.tour-place{transition:none!important}}


/* AJUSTE MÓVIL/TABLET: sin línea residual del header y sin etiquetas en galería */
@media (max-width: 1100px){
  header, .site-header, .navbar, .nav, .topbar,
  header::before, header::after,
  .site-header::before, .site-header::after,
  .navbar::before, .navbar::after{
    border-bottom:0 !important;
    border-top:0 !important;
    box-shadow:none !important;
    outline:none !important;
  }

  #galeria #official-gallery-grid > .bella-space-photo > span,
  #galeria #official-gallery-grid > .official-managed-card > span,
  #galeria #official-gallery-grid .photo-label,
  #galeria .bella-space-photo .photo-label,
  #galeria .official-managed-card .photo-label{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    height:0 !important;
    min-height:0 !important;
    max-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    overflow:hidden !important;
  }
}
