/* Shared type scale across all eight pages; locally hosted for consistency. */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/outfit-variable.ttf') format('truetype');
}
:root {
  --font-body: 'Outfit', 'Avenir Next', Avenir, sans-serif;
  --text-body: 1rem;
  --text-label: .875rem;
  --text-lead: 1.125rem;
}
body { font-family: var(--font-body); font-size: var(--text-body); font-weight: 400; line-height: 1.75; }
body p, body address, body li { font-family: var(--font-body); font-size: var(--text-body); font-weight: 400; line-height: 1.75; }
body .eyebrow, body .room .eyebrow, body .detail-copy .eyebrow, body .hero-copy .eyebrow {
  font-family: var(--font-body); font-size: var(--text-label); font-weight: 500; letter-spacing: .12em; line-height: 1.5;
}
body .hero-copy > p:not(.eyebrow), body .section-heading > p,
body .intro p:not(.eyebrow), body .service-grid p, body .event-grid p,
body .dining-copy > p:not(.eyebrow):not(.caption), body .small-experiences p:not(.eyebrow),
body .village-copy > p:not(.eyebrow), body .welcome-strip p {
  font-size: var(--text-body); line-height: 1.75;
}
body .detail-lead { font-family: var(--font-body); font-size: var(--text-lead); font-weight: 400; line-height: 1.65; }
body .room-note, body .detail-note, body .caption, body .photo-grid figcaption,
body .viewer-figure figcaption, body .copyright, body .footer-credit {
  font-family: var(--font-body); font-size: var(--text-label); font-weight: 400; line-height: 1.65; letter-spacing: normal;
}
body button, body input, body select, body textarea { font-family: var(--font-body); }
body .button, body .text-link, body .reserve, body .welcome-strip a,
body .detail-actions .button, body .contact-info .whatsapp, body .floating-whatsapp,
body .slideshow-controls button, body .photo-viewer button, body .slide-status,
body .viewer-controls [role=status], body .photo-open-hint, body .social-links a,
body .breadcrumb, body .amenities li {
  font-family: var(--font-body); font-size: var(--text-label); line-height: 1.5; letter-spacing: .01em;
}
body header nav { font-family: var(--font-body); font-size: var(--text-body); font-weight: 500; letter-spacing: .01em; }
body .footer-contact, body .contact-info > a:not(.button):not(.text-link), body .contact-info > p {
  font-family: var(--font-body); font-size: var(--text-body); line-height: 1.65;
}
body .hero-bottom { font-family: var(--font-body); font-size: var(--text-label); line-height: 1.5; letter-spacing: .12em; }
body .room h3, body .event-grid h3, body .service-grid h3, body .small-experiences h3, body .enquiry h3 { font-size: 1.625rem; line-height: 1.3; }
@media (max-width:1100px) { body header nav { font-size: var(--text-lead); } }
@media (max-width:550px) {
  body .service-grid { grid-template-columns: 1fr; }
  body .hero-copy .eyebrow { max-width: 100%; }
  body .room h3, body .event-grid h3, body .service-grid h3, body .small-experiences h3, body .enquiry h3 { font-size: 1.5rem; }
}
