/* Borgo Punta Villa · Atelier Blu 6.5
   Repairs the Eagle Booking room gallery, and applies a restrained editorial polish.
   Loaded last; deliberately keeps the original logo, blue palette, Manrope/DM Sans.
*/
:root {
  --ink:#263440;
  --bpv62-ink:#263440;
  --bpv63-ink:#263440;
  --bpv64-ink:#263440;
}
body,body.bpv-editorial-interior {
  color:#263440;
}
body.bpv-editorial-interior {
  --bpv62-ink:#263440;
  --bpv63-ink:#263440;
}
/* Neutral charcoal rather than absolute black; leave intentional navy branding
   and white text in dark sections untouched. */
:is(.a-intro,.a-rooms,.a-gallery,.a-reviews,.apartment-title,.apartment-content,
   .bpv-detail-amenities,.bpv-residence-hero,.bpv-residence-history,
   .bpv-residence-essentials,.bpv-residence-story) :is(h1,h2,h3) {color:#263440}
/* The headings using deliberate blue/white accents remain as designed. */
.a-intro .a-heading em,.a-reviews .a-heading em{color:#2074bc}

/* Room photos: no max-height, no clipping, no forced aspect ratio.
   A masonry-like column flow respects each original image ratio. */
.gallery-wrap {padding:clamp(22px,3vw,44px) 0 clamp(42px,5vw,76px)}
.gallery-grid.apartment-gallery-grid {
  display:block!important;
  columns:3;
  column-gap:14px;
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
}
.apartment-gallery-grid .gallery-item,
.apartment-gallery-grid .gallery-item.main,
.apartment-gallery-grid .gallery-item:not(.main) {
  display:block;
  position:relative;
  min-height:0!important;
  height:auto!important;
  width:100%;
  margin:0 0 14px;
  padding:0;
  break-inside:avoid;
  border:0;
  background:transparent;
  border-radius:12px;
  overflow:hidden;
  cursor:zoom-in;
  box-shadow:none;
  line-height:0;
}
body.bpv-editorial-interior .apartment-gallery-grid .gallery-item img,
.apartment-gallery-grid .gallery-item img {
  display:block;
  width:100%;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center;
  border-radius:0;
  transition:filter .22s ease;
}
.apartment-gallery-grid .gallery-item:hover img {filter:brightness(.96)}
.apartment-gallery-grid .gallery-item:focus-visible {outline:3px solid #2074bc;outline-offset:3px}
.apartment-gallery-grid.bpv-gallery-without-photos {columns:initial;display:block!important}
.bpv-gallery-pending {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:270px;padding:60px 25px;border-radius:18px;
  background:#eef5fc;border:1px solid #d7e6f3;color:#315a7c;text-align:center;
}
.bpv-gallery-pending-mark {display:block;color:#8db2d2;font-size:28px;line-height:1;margin-bottom:23px}
.bpv-gallery-pending p{margin:0;font:500 clamp(20px,2vw,29px)/1.35 'Manrope',sans-serif;letter-spacing:-.035em;color:#274764}
.card-photo:has(>span){background:#eef5fc;padding:22px;display:grid;place-items:center}
.card-photo>span{font:600 14px/1.55 'DM Sans',sans-serif;color:#315a7c;text-align:center;max-width:20ch}

/* Reviews: normal roman text, a refined sans serif, no scripted italic quotes. */
.bpv64-review-card blockquote {
  font-family:'DM Sans','Helvetica Neue',Arial,sans-serif!important;
  font-style:normal!important;
  font-weight:450;
  font-size:clamp(19px,1.65vw,26px);
  line-height:1.57;
  letter-spacing:-.028em;
  color:#173b65;
}
.bpv64-review-card {min-height:248px;padding:clamp(26px,2.45vw,37px)}
.bpv64-review-card figcaption {margin-top:27px}

/* Homepage navigation: old light-button text was overridden by a generic
   "white on all primary buttons" rule. Use reliable navy button/white text. */
body .site-header.bpv-header-over-hero:not(.bpv-header-scrolled):not(.bpv-header-menu-open)
.desktop-menu a.button-primary.mini {
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  background:#0b3269!important;border:1px solid rgba(255,255,255,.7)!important;
  box-shadow:0 5px 20px rgba(5,24,48,.18);
}
body .site-header .desktop-menu a.button-primary.mini:hover,
body .site-header .desktop-menu a.button-primary.mini:focus-visible {
  background:#1355a1!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
}

/* The final quote invitation remains an immersive navy section; a pale divider
   visibly separates it from a shorter, slightly lighter blue footer. */
.site-footer {
  background:#0a2a4d;
  border-top:12px solid #e9f3fb;
  padding:clamp(36px,3.7vw,53px) 0 18px;
}
.site-footer .footer-grid {grid-template-columns:1.4fr .8fr 1fr;gap:clamp(25px,4vw,65px)}
.site-footer .footer-logo {width:154px;height:auto;margin-bottom:14px}
.site-footer strong {font-size:10px;letter-spacing:.17em;margin-bottom:10px}
.site-footer p {font-size:14px;line-height:1.65;margin-bottom:0}
.site-footer .footer-main p {max-width:390px}
.site-footer .footer-bottom {margin-top:28px;padding-top:15px;gap:15px;font-size:11px;line-height:1.5}
/* Avoid extra forced minimum height / scroll snapping for the site footer. */
body.bpv-at-home .site-footer {min-height:0;scroll-snap-align:none}

/* "Our Story" paragraph inserted on the Residence destination of the CTA. */
.bpv-residence-history {background:#f1f6fb;padding:clamp(57px,6.5vw,95px) 0;border-top:1px solid #e0eaf4;border-bottom:1px solid #e0eaf4}
.bpv-residence-history-inner{max-width:970px;margin-inline:auto}
.bpv-residence-history .kicker{margin-bottom:20px}
.bpv-residence-history h2{margin:0 0 24px;font-family:'Manrope',sans-serif!important;font-size:clamp(39px,4.5vw,64px);font-weight:500;line-height:1.17!important;letter-spacing:-.06em}
.bpv-residence-history p{font-family:'DM Sans',sans-serif;font-size:clamp(17px,1.5vw,20px);line-height:1.85;color:#445e73;max-width:850px;margin:0}

/* The Booking.com badge is fixed to the lower-right corner on some pages.
   Keep the footer's legal identifiers out of the badge's overlay area. */
@media(min-width:701px){.site-footer .footer-bottom{padding-right:105px}}
@media(max-width:1050px){
  .gallery-grid.apartment-gallery-grid{columns:2}
  .site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
  .site-footer .footer-main{grid-column:1/-1}
}
@media(max-width:700px){
  .gallery-grid.apartment-gallery-grid{columns:1;column-gap:0}
  .apartment-gallery-grid .gallery-item,
  .apartment-gallery-grid .gallery-item.main,
  .apartment-gallery-grid .gallery-item:not(.main){margin-bottom:13px;border-radius:10px}
  .bpv-gallery-pending{min-height:205px;padding:46px 18px}
  .site-footer{padding:39px 0 20px;border-top-width:9px}
  .site-footer .footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 18px}
  .site-footer .footer-main{grid-column:1/-1}
  .site-footer .footer-main p{max-width:560px}
  .site-footer .footer-logo{width:137px}
  .site-footer p{font-size:13px}
  .site-footer .footer-bottom{margin-top:24px;display:flex;flex-direction:column;gap:7px}
  .site-footer .footer-bottom span:last-child{max-width:calc(100% - 80px);overflow-wrap:anywhere}
  body.bpv-editorial-interior .bpv-residence-history-inner{width:calc(100% - 36px)}
}
/* Gallery keyboard and touch navigation; works with original ratios in full-view. */
.lightbox:has(.bpv-lightbox-count) img{max-width:min(88vw,1300px);max-height:85dvh}
.bpv-lightbox-prev,.bpv-lightbox-next{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  border:1px solid rgba(255,255,255,.28);border-radius:50%;
  background:rgba(4,21,45,.62);color:#fff;
  width:46px;height:46px;display:grid;place-items:center;
  font-size:26px;cursor:pointer
}
.bpv-lightbox-prev{left:clamp(8px,2vw,32px)}
.bpv-lightbox-next{right:clamp(8px,2vw,32px)}
.bpv-lightbox-prev:hover,.bpv-lightbox-next:hover{background:#1355a1}
.bpv-lightbox-count{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font:500 12px 'DM Sans',sans-serif;letter-spacing:.08em;color:#fff}
@media(max-width:700px){
  .bpv-lightbox-prev,.bpv-lightbox-next{width:37px;height:37px;font-size:23px}
  .lightbox:has(.bpv-lightbox-count) img{max-width:96vw;max-height:80dvh}
}
@media(max-width:380px){.site-footer .footer-grid{grid-template-columns:1fr}.site-footer .footer-main{grid-column:auto}}

@media(prefers-reduced-motion:reduce){.apartment-gallery-grid .gallery-item img{transition:none}}
