/* Borgo Punta Villa Atelier Blu v6.8.0
   Final targeted contrast and layout corrections. Loaded after v6.7.
   Light sections remain charcoal, dark sections use white and delicate sky blue.
*/
:root {--bpv68-navy: #061d3f; --bpv68-sky: #c7e5fa;}

/* Footer: preserve the lighter rounded shell; unify its outer background
   exactly with the navy invitation immediately above it. */
body .site-footer {
  background: var(--bpv68-navy) !important;
  border-top: 0 !important;
}
body .site-footer .footer-shell {
  background: linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.029));
}

/* Explicitly scope light typography to the actually DARK blocks.  Previous
   global editorial h1/h2/p rules were overwriting inherited light colours. */
body.bpv-editorial-interior :is(
  .bpv-residence-island, .bpv-residence-final, .bpv-photo-final,
  .bpv-stay-closing, .bpv-pool-page-cta, .places-index-cta,
  .places-index-hero, .place-card-media, .where-parking-section,
  .bpv62-cta, .bpv-residence-gallery-quote, .ferry-discount-mark,
  .bpv-parking-feature--dark, .where-story-section--dark,
  .page-hero.bpv-archive-hero-has-photo,
  .place-hero-v36
) :is(h1,h2,h3,h4,strong,.a-heading,.place-card-copy h2,.place-card-copy h3) {
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
body.bpv-editorial-interior :is(
  .bpv-residence-island, .bpv-residence-final, .bpv-photo-final,
  .bpv-stay-closing, .bpv-pool-page-cta, .places-index-cta,
  .places-index-hero, .place-card-media, .where-parking-section,
  .bpv62-cta, .bpv-residence-gallery-quote, .ferry-discount-mark,
  .bpv-parking-feature--dark, .where-story-section--dark,
  .page-hero.bpv-archive-hero-has-photo, .place-hero-v36
) :is(p,li,.lead,.bpv-residence-island-copy p,.place-card-copy p) {
  color:#e3edf6 !important;
  -webkit-text-fill-color:#e3edf6 !important;
  opacity:1;
}
body.bpv-editorial-interior :is(
  .bpv-residence-island, .bpv-residence-final, .bpv-photo-final,
  .bpv-stay-closing, .bpv-pool-page-cta, .places-index-cta,
  .places-index-hero, .place-card-media, .where-parking-section,
  .bpv62-cta, .bpv-residence-gallery-quote, .ferry-discount-mark,
  .bpv-parking-feature--dark, .where-story-section--dark,
  .page-hero.bpv-archive-hero-has-photo, .place-hero-v36
) :is(.kicker,.kicker.light,.a-section-index,.bpv62-cta-eyebrow,.place-card-kicker) {
  color:var(--bpv68-sky) !important;
  -webkit-text-fill-color:var(--bpv68-sky) !important;
  opacity:1;
}
body.bpv-editorial-interior :is(
  .bpv-residence-island, .bpv-residence-final, .bpv-photo-final,
  .bpv-stay-closing, .bpv-pool-page-cta, .places-index-cta,
  .places-index-hero, .place-card-media, .where-parking-section,
  .bpv62-cta, .bpv-residence-gallery-quote,
  .page-hero.bpv-archive-hero-has-photo, .place-hero-v36
) :is(h1,h2,h3,.a-heading) :is(em,.bpv-accent,.bpv-v63-italic) {
  color:var(--bpv68-sky) !important;
  -webkit-text-fill-color:var(--bpv68-sky) !important;
}
body.bpv-editorial-interior .place-card-media :is(a,.place-card-link,.place-card-link span),
body.bpv-editorial-interior .bpv-residence-gallery-quote :is(a,.bpv-gallery-inline-link) {
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* White buttons must always have a dark navy label in default, hover and
   keyboard-focus states.  Avoid relying on inherited colour rules. */
body.bpv-editorial-interior :is(
  .bpv-residence-island, .bpv-residence-final, .bpv-photo-final,
  .bpv-stay-closing, .bpv-pool-page-cta, .places-index-cta,
  .where-parking-section, .bpv62-cta
) a.button-primary.light,
body.bpv-editorial-interior .bpv-residence-island a.button-primary.light,
body.bpv-editorial-interior .bpv62-cta a.bpv62-white-button {
  background:#fff !important;
  border-color:#fff !important;
  color:#0b3269 !important;
  -webkit-text-fill-color:#0b3269 !important;
}
body.bpv-editorial-interior :is(
  .bpv-residence-island, .bpv-residence-final, .bpv-photo-final,
  .bpv-stay-closing, .bpv-pool-page-cta, .places-index-cta,
  .where-parking-section, .bpv62-cta
) a.button-primary.light:is(:hover,:focus-visible),
body.bpv-editorial-interior .bpv62-cta a.bpv62-white-button:is(:hover,:focus-visible){
  background:#dfeefa !important;
  border-color:#dfeefa !important;
  color:#0b3269 !important;
  -webkit-text-fill-color:#0b3269 !important;
}
body.bpv-editorial-interior :is(.bpv-residence-island,.bpv62-cta) a.button-primary.light *,
body.bpv-editorial-interior .bpv62-cta a.bpv62-white-button *{
  color:#0b3269 !important;
  -webkit-text-fill-color:#0b3269 !important;
}
/* Existing blue primary CTAs retain white text, including their hover state. */
body.bpv-editorial-interior :is(.bpv-residence-final,.bpv-photo-final,.bpv-stay-closing,.where-parking-section,.places-index-cta)
 a.button-primary:not(.light){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#0b3269 !important;
  border-color:#0b3269 !important;
}
body.bpv-editorial-interior :is(.bpv-residence-final,.bpv-photo-final,.bpv-stay-closing,.where-parking-section,.places-index-cta)
 a.button-primary:not(.light):is(:hover,:focus-visible){
  color:#fff !important;-webkit-text-fill-color:#fff !important;
  background:#1856a0 !important;border-color:#1856a0 !important;
}
body.bpv-editorial-interior .bpv62-cta a.bpv62-outline-button{
  color:#fff !important;-webkit-text-fill-color:#fff !important;
}

/* The church image: no constrained container, no clipped top or blue vertical
   strip at right. Show original aspect ratio and make the photo flush to edge. */
body.bpv-editorial-interior .bpv-residence-island-grid{
  width:100%; max-width:none; padding:0; margin:0;
  display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:0; align-items:center;
}
body.bpv-editorial-interior .bpv-residence-island-photo{
  position:relative; align-self:center; width:100%; min-width:0;
  height:auto; min-height:0; padding:0; margin:0;
  background:transparent; border-radius:0 !important; overflow:visible;
}
body.bpv-editorial-interior .bpv-residence-island-photo img{
  display:block; width:100%; max-width:100%; height:auto;
  min-height:0 !important; border-radius:0 !important;
  object-fit:contain; object-position:center;
}
body.bpv-editorial-interior .bpv-residence-island-photo::after{display:none}
body.bpv-editorial-interior .bpv-residence-island-copy{min-width:0}

/* History: two simple editorial columns, only the story and the photograph. */
body.bpv-editorial-interior .bpv-residence-history-grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:clamp(30px,5vw,82px); align-items:center;
}
body.bpv-editorial-interior .bpv-residence-history-aside{display:block;min-width:0}
body.bpv-editorial-interior .bpv-residence-history-photo{margin:0;}
body.bpv-editorial-interior .bpv-residence-history-photo img{
  width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;display:block;
}
/* In case a cached template still has cards, hide them visually. */
body.bpv-editorial-interior .bpv-residence-history-facts{display:none !important}

/* A descender and italic overhang need real breathing room, not a clipped box. */
body.bpv-editorial-interior .bpv-stay-practical-heading,
body.bpv-editorial-interior .bpv-stay-practical-heading h2{
  overflow:visible !important;
}
body.bpv-editorial-interior .bpv-stay-practical-heading h2{
  padding-left:.13em !important;
  padding-bottom:.22em !important;
  margin-left:0 !important;
  line-height:1.2 !important;
}
body.bpv-editorial-interior .bpv-stay-practical-heading h2 em{
  line-height:1.23 !important;
  padding-bottom:.2em !important;
  overflow:visible !important;
}
@media(max-width:980px){
  body.bpv-editorial-interior .bpv-residence-history-grid{grid-template-columns:1fr;gap:32px}
  body.bpv-editorial-interior .bpv-residence-island-grid{grid-template-columns:1fr}
  body.bpv-editorial-interior .bpv-residence-island-photo{order:-1}
}
@media(max-width:700px){
  body.bpv-editorial-interior .bpv-residence-island-photo img{width:100%;height:auto;min-height:0}
  body.bpv-editorial-interior .bpv-residence-history-photo{border-radius:22px}
}
