/* Clip the photograph itself; blended black layers can disappear while a
   mobile browser composites a pinned section during touch scrolling. */
.block-hero-banner.hero-direct-mask,
.pin-spacer .block-hero-banner.hero-direct-mask { overflow: hidden; }
.block-hero-banner.hero-direct-mask .bg-gate { visibility: hidden; }
.block-hero-banner.hero-direct-mask .bg-wrapper {
  mix-blend-mode: normal;
  z-index: 0;
}
.block-hero-banner.hero-direct-mask .content-wrapper { z-index: 1; }
.block-scrolljacking .scrolljack-item__text-content > .custom-logo {
  display: block;
  margin: 0 auto 1.5rem;
  object-position: center;
}
/* Long client copy and browser zoom can make the footer taller than a screen.
   Keep every link in the document's scroll range instead of a hidden inner scroller. */
body .site-footer {
  position: relative;
  bottom: auto;
  z-index: 0;
  max-height: none;
  overflow: visible;
}
.site-footer .menu-wrapper { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
.site-footer .menu-wrapper ul,
.site-footer .legal-menu li { text-wrap: wrap; }
@media (orientation: portrait) and (hover: none) {
  .block-hero-banner { height: 100svh; }
}
/* Native sticky keeps touch scrolling in the browser's compositor. */
.pin-spacer.hero-mobile-track {
  position: relative;
  display: block;
  width: 100%;
  height: 150svh;
  padding: 0;
  margin: 0;
  overflow: visible;
}
.hero-mobile-track > .block-hero-banner.hero-mobile-sticky {
  position: sticky !important;
  top: 0 !important;
  height: 100svh !important;
  width: 100%;
  transform: none !important;
  margin: 0;
  overflow: hidden;
}

/* Keep the initial headline inside the narrowest part of the photographed arch. */
body .block-hero-banner .text-content { max-width: min(40rem, 56svh); }
body .block-hero-banner .text-content h1 { font-size: clamp(2rem, 6svh, 4rem); }
body .block-hero-banner .text-content p { margin-block: 2.25rem; }
.block-feature-cards .feature-card__icons img { object-fit: contain; padding: 5px; background: #fff; }
/* Client landscape photographs must fill the same editorial grid as portraits. */
@media (min-width:621px) {
  .block-highlight-section .highlight-items { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); gap: 2rem; align-items: start; }
  .block-highlight-section .highlight-item--text-content { grid-column: 1; grid-row: 1; padding-bottom: 0; align-self: center; }
  .block-highlight-section .highlight-item--polaroid { grid-column: 2; grid-row: 1; }
  .block-highlight-section .highlight-item--large-image { grid-column: 1; grid-row: 2; align-self: stretch; z-index: 0; overflow: hidden; }
  .block-highlight-section .highlight-item--large-image img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; transform: none !important; }
  .block-highlight-section .highlight-item--waves-and-small-image { grid-column: 2; grid-row: 2; transform: none !important; }
  .block-text-image .content-wrapper { align-items: stretch; }
  .block-text-image .image-content { position: relative; align-self: stretch; }
  .block-text-image .image-content img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; }
  .block-text-image .text-content { padding-block: 6rem 4rem; }
}
@media (max-width:620px) {
  body .block-hero-banner .text-content { max-width: calc(100% - 3rem); }
  body .block-hero-banner .text-content h1 { font-size: clamp(2rem,8vw,3.25rem); }
}

/* Ibiza: text-only navigation and a single-line footer signature. */
.site-header .menu-btn > svg,
.site-navigation .menu-btn > svg { display:none!important; }
.site-header .menu-btn,
.site-navigation .menu-btn { gap:0; }
.site-footer .footer__text-content--main .cursive {
  width:calc(100% - 4rem);
  max-width:none;
  min-width:0;
  white-space:nowrap;
  font-size:var(--ws-footer-script-size,var(--fs))!important;
}
.site-footer .footer__text-content--main .cursive br { display:none; }
.site-footer .footer__text-content--main .cursive.ws-signature-wrap { white-space:normal;overflow-wrap:anywhere; }
@media(max-width:620px){.site-footer .footer__text-content--main .cursive{width:100%}}

