/* BANÚS FINAL DESIGN V4 — selective owner-approved repairs.
   Preserves V3 editorial, typography hierarchy, animations worth keeping,
   visual assets, price and event data. All rules scoped, no layout reset. */

/* Header: original translucent premium scene + smooth, Safari-safe fade to solid navy.
   Never animate backdrop-filter, height, gradient values or grid sizing. */
.header,.header.scrolled{
  height:79px!important;
  background:linear-gradient(180deg,rgba(8,19,27,.65),rgba(8,19,27,.28))!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  transition:none!important;isolation:isolate;
}
.header::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:#0c212d;opacity:0;transition:opacity .65s cubic-bezier(.22,1,.36,1);
  will-change:opacity;
}
.header.scrolled::before,body.subpage .header::before{opacity:1}
.header>.nav,.header>.brand,.header>.mobile-toggle{position:relative;z-index:1}
.header .nav a,.header .nav .nav-cta{transition:color .24s ease,background-color .3s ease,opacity .25s ease}
@media(max-width:1220px){.header,.header.scrolled{height:73px!important}}
@media(prefers-reduced-motion:reduce){.header::before{transition:none}}

/* Restore readable photography behind the footer. Keep existing approved artwork. */
.footer{background:#0d2531!important}
.footer-image{opacity:.85!important;filter:brightness(.67) saturate(.86)!important;
  background-position:center 64%!important}
.footer-shade{background:linear-gradient(90deg,rgba(9,26,36,.77),rgba(9,26,36,.59) 65%,rgba(9,26,36,.66)),
 linear-gradient(0deg,rgba(8,23,32,.50),rgba(8,23,32,.10) 75%)!important}
.footer-bottom{grid-template-columns:minmax(235px,1.05fr) minmax(0,1.95fr) minmax(185px,.9fr);gap:22px}
.footer-logo{width:min(285px,100%)!important;max-width:285px}
.footer-logo img{width:100%;height:auto;max-height:none;object-fit:contain}
.footer-links{column-gap:17px;row-gap:12px}
.footer-links a{color:#f3f3ed!important;text-shadow:0 1px 5px rgba(0,0,0,.2)}
.footer-contact a{color:#f1f1eb}
@media(max-width:1000px){.footer-bottom{grid-template-columns:minmax(180px,.9fr) 1.8fr;gap:20px}
 .footer-contact{grid-column:2}.footer-logo{width:min(245px,100%)!important}}
@media(max-width:700px){.footer-bottom{grid-template-columns:1fr;gap:23px}
 .footer-contact{grid-column:1}.footer-logo{width:min(235px,100%)!important}}

/* Load full-size images early; keep tasteful reveal for words, NEVER hide the actual imagery.
   IntersectionObserver anticipates text reveals ahead of viewport. */
.reveal{transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1.0s cubic-bezier(.22,1,.36,1)}
.course-visual,.facility-visual,.booking-shell,.map-side{opacity:1!important;transform:none!important}
.hero-image{animation:heroFloat 16s ease-out both}
.services-gallery .experience-card img{transition:transform 1.05s cubic-bezier(.22,1,.36,1)!important}

/* Facilities: real preloaded frames, gently crossfade; no rapid source replacement. */
.facility-photo{position:relative;overflow:hidden}
.facility-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:1;transform:scale(1.025);will-change:opacity,transform;
  transition:opacity .64s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1)!important}
.facility-photo>img.facility-next{opacity:0;transform:scale(1.05);z-index:1;pointer-events:none}
.facility-photo>img.facility-next.is-visible{opacity:1;transform:scale(1.025)}
.facility-photo.is-changing img{opacity:1;transform:scale(1.025)}
.facility-photo.is-changing img.facility-next{opacity:0}
.facility-photo.is-changing img.facility-next.is-visible{opacity:1}
.facility-photo:after{z-index:2}
.facility-photo-shade{z-index:3;pointer-events:none}
.facility-photo .placeholder-image{z-index:2}
.facility-tabs button{transition:color .35s ease,background .35s ease,padding .35s ease}
@media(prefers-reduced-motion:reduce){.facility-photo>img,.services-gallery .experience-card img{transition:none!important}}

/* Course Map — elegant editorial split. No oversized navy rectangle. */
.subpage .subpage-intro.course-intro-v4{padding-bottom:21px!important}
.course-page-v2.course-page-refined{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
 column-gap:clamp(28px,4.2vw,69px);align-items:start;row-gap:18px}
.course-page-refined .course-map-showcase{grid-column:1;grid-row:1 / span 2;width:100%;max-width:none;
 margin:0;padding:0;background:transparent!important;border:0!important;
 box-shadow:none!important;outline-offset:5px;overflow:visible;cursor:zoom-in;position:relative}
.course-page-refined .course-map-showcase img{max-height:none;width:100%;height:auto;
 display:block;object-fit:contain;filter:drop-shadow(0 10px 22px rgba(24,43,47,.055))}
.course-page-refined .course-zoom-label{right:10px;bottom:8px;background:#102e3b;color:#f4f2ed;
 border:1px solid rgba(14,40,53,.16);font-size:11px!important;padding:11px 13px}
.course-page-refined .course-page-heading{grid-column:2;grid-row:1;margin:0;align-self:start}
.course-page-refined .course-page-heading h2{margin:0 0 10px}
.course-page-refined .course-page-heading p{margin:0 0 11px}
.course-page-refined .course-page-texts{grid-column:2;grid-row:2;margin-top:0;
 display:grid;grid-template-columns:1fr;gap:0;align-self:start}
.course-page-refined .course-page-texts section{padding:12px 0 11px;border-top:1px solid #d1d8d5}
.course-page-refined .course-page-texts h2{font-size:clamp(17px,1.28vw,21px)!important;margin:0 0 5px}
.course-page-refined .course-page-texts p{font-size:13.7px!important;line-height:1.63}
.course-page-refined .course-page-actions{grid-column:2;grid-row:3;margin:4px 0 0;align-self:start}
.course-page-refined .course-map-caption{display:block;font-size:11.5px;color:#566b73}
.course-page-refined .course-page-heading{display:block}
.course-page-refined .course-map-showcase:hover img{transform:scale(1.014)}
@media(max-width:900px){.course-page-v2.course-page-refined{grid-template-columns:1fr;row-gap:15px}
 .course-page-refined .course-page-heading{grid-column:1;grid-row:1}
 .course-page-refined .course-map-showcase{grid-column:1;grid-row:2;margin:0}
 .course-page-refined .course-page-texts{grid-column:1;grid-row:3}
 .course-page-refined .course-page-actions{grid-column:1;grid-row:4}
 .course-page-refined .course-page-texts h2{font-size:19px!important}}

/* Calendar: one clearly recognizable CTA, programme remains approved. */
.event-feature-copy .event-cta{display:none!important}

/* Visit: the postal address and directions are a single aligned horizontal row. */
.map-address.map-address-v4{display:flex;gap:15px;align-items:center;justify-content:space-between;
 flex-wrap:wrap;padding-top:13px}
.map-address-v4 .map-address-plain{margin:0;flex:1 1 300px;min-width:0}
.map-address-v4 .directions{display:flex;gap:15px;align-items:center;flex:0 0 auto;margin:0}
@media(max-width:700px){.map-address.map-address-v4{align-items:flex-start;gap:9px}
 .map-address-v4 .map-address-plain{flex-basis:100%}}

/* Correct contrast for descriptive text on dark facility picture. */
.facility-visual-caption p{color:#e6efeb!important;opacity:1!important;text-shadow:0 1px 8px rgba(0,0,0,.22)}
