/* Borgo Punta Villa · V6.4 — typography, accessibility and editorial consistency.
 * Source of truth: Atelier Blu 6.3. Intentionally no palette or logo replacement.
 */
:root{--bpv64-navy:#0b3269;--bpv64-blue:#2074bc;--bpv64-ink:#101820;--bpv64-fog:#eef5fc;--bpv64-grey:#54718b}
/* Instrument Serif descenders (g, j, p, q, y) must never be cropped. */
:is(.a-heading,.a-display,.a-reviews .a-heading,.a-cta .a-heading,.bpv-stay-copy h2,.ferry-hero h1,.ferry-editorial h2,.bpv-residence-story-copy h2,.where-story-copy h2,.page-hero h1,.bpv-pool-page-lead h1,.bpv-stay-hero h1,.bpv62-cta h2,.a-archive-hero h1){
  line-height:1.17!important; padding-bottom:.105em!important; overflow:visible!important;
  text-wrap:balance;
}
:is(.a-heading,.a-display,h1,h2,h3) em,
body.bpv-editorial-interior :is(h1,h2,h3) em,
body.bpv-editorial-interior .bpv-v63-italic{
  font-family:'Instrument Serif',Georgia,serif!important;font-style:italic!important;
  line-height:1.17!important; padding-bottom:.07em!important;letter-spacing:-.025em!important;
  font-weight:400!important;
}
/* Prevent collisions between sticky header and typographic ascenders. */
.bpv-editorial-interior :is(.bpv-stay-hero,.bpv-residence-hero,.where-hero,.bpv-photo-hero,.ferry-hero,.quote-page-hero,.places-index-hero){overflow:visible}
.bpv-editorial-interior .bpv-stay-copy h2,.bpv-editorial-interior .bpv-residence-story-copy h2,
.bpv-editorial-interior .where-story-copy h2{overflow-wrap:normal;word-break:normal}
/* Consistent blue and italic in every editorial block, while preserving V6.3 layout. */
.bpv-editorial-interior :is(.ferry-hero,.ferry-editorial,.ferry-discount-mark,.bpv-parking-feature,.where-story-section,.places-index-intro,.quote-page-intro,.bpv-stay-practical,.bpv-pool-rules) :is(h1,h2){font-family:'Manrope',Arial,sans-serif!important;letter-spacing:-.064em}
.bpv-editorial-interior :is(.ferry-hero,.ferry-editorial,.bpv-parking-feature,.where-story-section,.places-index-intro,.quote-page-intro,.bpv-stay-practical,.bpv-pool-rules) h2 em{color:var(--bpv64-blue)}
.bpv-editorial-interior :is(.bpv-parking-feature--dark,.bpv-residence-island,.bpv62-cta,.bpv-stay-closing,.bpv-residence-final,.bpv-photo-final,.places-index-cta,.ferry-discount-mark) :is(h1,h2) em{color:#b9def8}
/* Buttons: visible labels in normal, hover, active, keyboard and touchscreen states. */
body :is(a.button-primary,button.button-primary,a.a-button:not(.a-button-outline):not(.a-button-white),button.a-filter.is-active){color:#fff!important;-webkit-text-fill-color:#fff!important}
body :is(a.button-primary,button.button-primary,a.a-button:not(.a-button-outline):not(.a-button-white)):is(:hover,:active,:focus-visible){color:#fff!important;-webkit-text-fill-color:#fff!important;background:#1355a1!important}
body a.button-primary.light,body .a-button-white{background:#fff!important;color:#0b3269!important;-webkit-text-fill-color:#0b3269!important}
body :is(a.button-primary.light,.a-button-white):is(:hover,:focus-visible){background:#eaf5ff!important;color:#0b3269!important;-webkit-text-fill-color:#0b3269!important}
body :is(.button-outline,.a-button-outline,.bpv62-outline-button,.bpv62-white-button,.a-inline-link,.text-link,.bpv-stay-text-link){opacity:1;visibility:visible}
body :is(a.button-outline.dark,a.bpv62-white-button){color:#0b3269!important;-webkit-text-fill-color:#0b3269!important;background:#fff;border-color:#d3e4f2}
body :is(a.button-outline.dark,a.bpv62-white-button):is(:hover,:focus-visible){color:#fff!important;-webkit-text-fill-color:#fff!important;background:#1355a1;border-color:#1355a1}
body :is(.bpv-photo-final,.bpv-stay-closing,.places-index-cta,.bpv-residence-final,.bpv62-cta,.bpv-pool-page-cta) a.button-outline.dark{color:#fff!important;-webkit-text-fill-color:#fff!important;background:transparent;border-color:rgba(255,255,255,.65)}
body :is(.bpv-photo-final,.bpv-stay-closing,.places-index-cta,.bpv-residence-final,.bpv62-cta,.bpv-pool-page-cta) a.button-outline.dark:is(:hover,:focus-visible){background:#fff;color:#0b3269!important;-webkit-text-fill-color:#0b3269!important}
body :is(a,button,input,select,textarea):focus-visible{outline:2px solid #2074bc;outline-offset:3px}
/* Avoid invisible content when initial scroll reveal is delayed or blocked. Keep one-shot enter animation. */
.a-js [data-a-reveal]{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:no-preference){.a-js [data-a-reveal].a-visible{animation:bpv64-reveal .68s cubic-bezier(.19,1,.22,1) both}}
@keyframes bpv64-reveal{from{opacity:.8;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
/* Guest stories: editorial quotes instead of an empty sparse announcement. */
.a-reviews.bpv64-reviews{background:#edf4f9;color:var(--bpv64-ink);padding:clamp(88px,9vw,150px) 0;min-height:auto}
.bpv64-reviews .bpv64-reviews-inner{display:block;max-width:1440px;margin-inline:auto}
.bpv64-reviews .a-section-index{font-size:12px;letter-spacing:.2em;color:#1761a8;margin-bottom:25px}
.bpv64-reviews .a-heading{font-size:clamp(50px,6.5vw,106px);max-width:950px;margin-bottom:23px;line-height:1.16}
.bpv64-reviews .a-heading em{color:#2074bc}
.bpv64-reviews .bpv64-reviews-lead{color:#526f88;max-width:740px;line-height:1.7;font-size:clamp(16px,1.35vw,20px);margin-bottom:clamp(34px,5vw,70px)}
.bpv64-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0 0 46px}
.bpv64-review-card{margin:0;padding:clamp(27px,3vw,42px);background:#fff;min-height:290px;border-radius:18px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 12px 45px rgba(6,34,70,.055);border:1px solid #dceaf5}
.bpv64-review-card blockquote{margin:0;font-family:'Instrument Serif',Georgia,serif;font-size:clamp(29px,2.5vw,39px);line-height:1.3;font-style:italic;color:#0b3269;letter-spacing:-.018em}
.bpv64-review-card figcaption{display:flex;flex-direction:column;gap:5px;border-top:1px solid #e0eaf1;padding-top:19px;margin-top:25px;font:500 14px 'DM Sans',Arial,sans-serif;color:#132e51}
.bpv64-review-card figcaption span{color:#647f93;font-size:12px}
.bpv64-review-link{color:#0b3269!important;-webkit-text-fill-color:#0b3269!important;font-weight:700}
/* Archive: evenly aligned cards, softer separation, unified image frames and footers. */
body.bpv-editorial-interior .a-apartment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
body.bpv-editorial-interior .a-apartment-grid>.a-filter-item{min-width:0;display:flex;align-items:stretch}
body.bpv-editorial-interior .a-apartment-grid .card{height:100%;width:100%;display:flex;flex-direction:column;background:#fff;border:0!important;border-radius:18px!important;box-shadow:0 16px 52px rgba(8,42,80,.08);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}
body.bpv-editorial-interior .a-apartment-grid .card:hover{transform:translateY(-4px);box-shadow:0 22px 58px rgba(8,42,80,.13)}
body.bpv-editorial-interior .a-apartment-grid .card-photo{width:100%;aspect-ratio:1.42/1;flex-shrink:0;overflow:hidden;border-radius:0!important;background:#e7eff6}
body.bpv-editorial-interior .a-apartment-grid .card-photo img{width:100%;height:100%;object-fit:cover}
body.bpv-editorial-interior .a-apartment-grid .card-body{padding:26px 27px 29px;flex:1;display:flex;flex-direction:column;min-width:0}
body.bpv-editorial-interior .a-apartment-grid .card h3{font-size:clamp(22px,2.05vw,30px);letter-spacing:-.05em;line-height:1.23;min-height:3.65em;margin-bottom:18px;overflow-wrap:break-word;text-wrap:pretty}
body.bpv-editorial-interior .a-apartment-grid .card .amenities-list{margin-top:auto}
body.bpv-editorial-interior .a-apartment-grid .card .card-detail-link{margin-top:auto;padding-top:26px}
body.bpv-editorial-interior .a-apartment-grid .card-topline{min-height:24px;margin-bottom:14px}
/* Place/location Caprera icon: a leaf, harmonized with the other cards. */
.bpv64-nature-icon svg{display:block;width:30px;height:30px;margin:auto}
/* Pet question is in the first step, always shown before contact details. */
.bpv-form .bpv64-pet-intro{grid-column:1/-1;font-size:15px;font-weight:700;color:#0b3269;margin-top:12px;padding-top:17px;border-top:1px solid #dfebf5}
.bpv-form .pet-note{font-size:13px;color:#53758f;line-height:1.55}
.bpv-form .pet-field-muted{opacity:1}
.bpv-form select[name=con_animali]{border:1px solid #a7c7e1!important;background:#fff!important;color:#112d50!important}
/* Always preserve contrast for CTA eyebrow labels on dark backgrounds. */
body.bpv-editorial-interior :is(.bpv62-cta,.bpv-residence-final,.bpv-photo-final,.bpv-stay-closing,.places-index-cta,.bpv-residence-island,.bpv-parking-feature--dark) :is(.kicker,.a-section-index,.bpv62-cta-eyebrow){color:#b9def8!important}
@media(max-width:1100px){body.bpv-editorial-interior .a-apartment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bpv64-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body.bpv-editorial-interior .a-apartment-grid{grid-template-columns:1fr;gap:19px}body.bpv-editorial-interior .a-apartment-grid .card h3{min-height:0;font-size:27px}.bpv64-review-grid{grid-template-columns:1fr;gap:15px}.bpv64-review-card{min-height:215px}.bpv64-reviews .a-heading{font-size:clamp(45px,11vw,65px)}:is(.a-heading,.a-display,.page-hero h1){padding-bottom:.16em!important;line-height:1.2!important}}
@media(prefers-reduced-motion:reduce){.a-js [data-a-reveal].a-visible{animation:none!important}body.bpv-editorial-interior .a-apartment-grid .card{transition:none!important}}
