/* Requested copy and menu refinements; retain the existing visual system. */
.banda-layout .hero-copy { inline-size: min(calc(100% - 2.5rem), 76rem); }
.hero-copy h1 { line-height: 1.2; }
.hero-title-line { display: block; }

/* Restore the title's prominence, allowing natural word breaks on narrow screens. */
.hero-copy h1 { font-size: clamp(2.25rem, 4.7vw, 5.25rem); line-height: 1.2; }
.hero-title-line { text-wrap: balance; }
@media (max-width: 47.9375rem) {
  .hero-copy h1 { font-size: clamp(1.65rem, 7.8vw, 3.6rem); letter-spacing: .055em; line-height: 1.2; }
}

.site-footer .footer-imagery-note {
  max-width: 62rem;
  margin: 1.5rem 0 0;
  font-size: .8125rem;
  font-weight: 300;
  line-height: 1.7;
  letter-spacing: .025em;
}


/* The reference keeps its links at 16px and on a 60px vertical rhythm. */
.menu-navigation { padding: 0; align-items: center; }
.menu-view {
  position: relative;
  inset: auto;
  inline-size: 100%;
  padding: 6rem 0 6rem 1rem;
  margin-block: auto;
  translate: none;
}
.menu-list { gap: 1rem; align-items: flex-end; }
.menu-list a, .menu-list button {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .03125em;
  padding: .625rem 0;
  min-block-size: 2.75rem;
}
.menu-list li, .menu-list li:nth-child(n) { width: 100%; padding-right: 6.125rem; opacity: 1; transform: none; transition: none; }
.menu-dim { position: absolute; inset: 0; background: rgba(0,0,0,.5); opacity: 0; pointer-events: none; }
.explore-panel.is-visible .menu-dim { opacity: .8; }
.explore-panel.is-closing .menu-dim { opacity: 0; }
.menu-panel {
  -webkit-backdrop-filter: blur(150px) saturate(1.8);
  backdrop-filter: blur(150px) saturate(1.8);
  background: rgba(0, 0, 0, .002);
  box-shadow: none;
  transition: none;
}
.menu-header { opacity: 1; transition: none; }
.explore-panel:not(.is-visible) .menu-header { opacity: 1; }
.explore-panel::backdrop, .explore-panel.is-visible::backdrop { background: transparent; opacity: 1; transition: none; }
.menu-glass-wash { display: none; }
.contact-page .menu-shell::before, .contact-page .menu-shell::after { content: none; }
.close-menu { opacity: 1; }
.close-menu .close-icon i { transition-duration: 500ms; }
.menu-open > .site-header .explore-trigger { visibility: hidden; }
.explore-panel.is-closing .motion-toggle { opacity: 0; transition-delay: 0s; }
@media (min-width: 48rem) and (max-width: 64rem) {
  .menu-view { padding-inline: 1rem 0; }
  .menu-list li, .menu-list li:nth-child(n) { padding-right: 2.5rem; }
}
@media (max-width: 47.9375rem) {
  .menu-view { padding-inline: 1rem; }
  .menu-list li, .menu-list li:nth-child(n) { padding-right: 1rem; }
}
@media (max-height: 30rem) {
  .menu-navigation { align-items: flex-start; }
  .menu-view { margin-block: 0; padding-block: 6rem 4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .explore-panel::backdrop { transition: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .menu-panel { -webkit-backdrop-filter: none; backdrop-filter: none; background: #151619; }
}

/* Contact details follow the reference footer rhythm in our own typeface. */
.site-footer .footer-enquiry p { font-style: normal; font-size: 14px; line-height: 1.8; font-weight: 300; }
.site-footer .footer-address { margin-top: 24px; }
.site-footer .footer-imagery-note { margin-top: 36px; font-weight: 300; }
.contact-page .contact-details { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2.5rem; }
.contact-page .contact-details > div:first-child { grid-column: auto; }
@media (max-width: 24rem) {
  .contact-page .contact-details { gap: 1rem; }
}
/* Keep the contact photography continuous beneath the header at every scroll state. */
.contact-page .contact-header,
.contact-page .contact-header.is-scrolled {
  background: transparent;
  box-shadow: none;
}

/* One overlay header owns the rule; the page's star cannot bleed through it. */
body.menu-open > .site-header,
.banda-layout.menu-open.menu-over-hero > .editorial-header { opacity: 0; pointer-events: none; }
.menu-header .brand-mark { display: none; }
.menu-header { min-block-size: 0; }
.menu-header::before {
  content: ""; display: block; position: absolute;
  inset-inline-start: var(--menu-panel-size); inset-inline-end: var(--content-gutter);
  bottom: 0; height: 1px; background: rgba(244,241,233,.26);
}
@media (max-width: 47.9375rem) {
  .menu-header::before { display: none; }
}

/* Full-width hover rules share a single origin and never persist on touch screens. */
.header-action::after, .close-menu:hover::after, .close-menu:focus-visible::after,
.menu-list a::after, .menu-list button::after, .firm-contact::after,
.site-footer .footer-navigation a::after, .service-index a::after {
  content: ""; position: absolute; left: 0; inset-inline-start: 0;
  width: 100%; inline-size: 100%; height: 1px; block-size: 1px;
  background: currentColor; transform: scaleX(0); animation: none;
}
.firm-contact { position: relative; text-decoration: none; }
.firm-contact::after { bottom: -.2rem; }
@media (hover:hover) and (pointer:fine) and (min-width:48rem) {
  .header-action:hover::after, .header-action:focus-visible::after,
  .close-menu:hover::after, .close-menu:focus-visible::after,
  .menu-list a:hover::after, .menu-list button:hover::after,
  .firm-contact:hover::after, .firm-contact:focus-visible::after,
  .site-footer .footer-navigation a:hover::after, .service-index a:hover::after {
    transform: scaleX(1); width: 100%; inline-size: 100%; inset-inline-start: 0;
  }
}
@media (hover:none), (pointer:coarse), (max-width:47.9375rem) {
  a, a:hover, a:focus-visible { text-decoration: none !important; }
  .header-action::after, .header-action:hover::after, .header-action:focus-visible::after,
  .menu-list a::after, .menu-list button::after, .firm-contact::after,
  .site-footer a::after, .service-index a::after { content: none !important; }
  .close-menu:focus-visible .close-icon { border: 0; }
  a:focus-visible, button:focus-visible { outline: 1px solid currentColor !important; outline-offset: 4px; }
}
.contact-page .contact-details dd { white-space: normal; overflow-wrap: anywhere; }
.contact-page .contact-details > div { min-width: 0; }

/* Trophy Assets identity: selected TA monogram and Riviera Nights wordmark. */
.brand-mark {
  gap: .72rem;
  min-inline-size: 0;
  text-decoration: none;
  white-space: nowrap;
}
.brand-mark svg.ta-monogram,
.footer-symbol svg.ta-monogram {
  fill: none;
  overflow: visible;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 2.15;
  vector-effect: non-scaling-stroke;
}
.brand-mark svg.ta-monogram {
  block-size: 2.55rem;
  inline-size: 2.7rem;
  transition: opacity 240ms ease;
}
.brand-mark:hover svg.ta-monogram { transform: none; opacity: .72; }
.brand-wordmark {
  font-family: var(--font-brand);
  font-weight: 300;
  letter-spacing: .18em;
  line-height: 1;
  text-transform: uppercase;
}
.brand-wordmark { font-size: .72rem; }
.site-footer .footer-symbol {
  color: #303526;
  display: block;
  inline-size: 130px;
  margin: 0;
  max-inline-size: 100%;
  text-decoration: none;
  width: 130px;
  filter: none;
}
.site-footer .footer-symbol svg.ta-monogram {
  block-size: auto;
  inline-size: 100%;
}
@media (max-width: 64rem) {
  .brand-wordmark { display: none; }
}
@media (max-width: 47.9375rem) {
  .brand-mark svg.ta-monogram { block-size: 2.1rem; inline-size: 2.2rem; }
  .site-footer .footer-symbol { inline-size: 80px; margin-block-end: 2.5rem; width: 80px; }
}

/* Privacy page follows the existing editorial scale and spacing. */
.privacy-main { padding-block: clamp(8.5rem, 13vw, 13rem) clamp(5rem, 9vw, 9rem); }
.privacy-intro { border-bottom: 1px solid rgba(24, 28, 20, .25); margin-block-end: clamp(2.5rem, 5vw, 4.5rem); padding-block-end: clamp(2rem, 4vw, 3.5rem); }
.privacy-kicker { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; }
.privacy-intro h1 { font-family: var(--font-brand); font-size: clamp(2.6rem, 6vw, 5.8rem); font-weight: 300; letter-spacing: -.025em; line-height: .95; margin: 1rem 0 1.5rem; text-transform: uppercase; }
.privacy-copy { max-inline-size: 52rem; }
.privacy-copy section { margin-block-start: clamp(2.5rem, 5vw, 4rem); }
.privacy-copy h2 { font-family: var(--font-brand); font-size: clamp(1.35rem, 2.4vw, 2rem); font-weight: 300; letter-spacing: .08em; margin-block-end: 1rem; text-transform: uppercase; }
.privacy-copy p, .privacy-copy address { font-style: normal; line-height: 1.75; margin: 0 0 1.15rem; }
.privacy-copy a, .site-footer .footer-enquiry a { color: inherit; overflow-wrap: anywhere; text-underline-offset: .25em; }
.privacy-copy code { font: inherit; }
