﻿@import url("./main-foundation.css");
@import url("./main-home-sections.css");
@import url("./main-about.css");
@import url("./main-rooms.css");
@import url("./main-events.css");
@import url("./main-contact.css");
@import url("./main-day-tour.css");
@import url("./main-team.css");
@import url("./main-dining-cafe.css");
@import url("./main-restaurant.css");
@import url("./main-spa.css");
@import url("./main-services-gallery.css");
@import url("./main-blog.css");

:root {
  --page-hero-heading-size: 76px;
  --page-main-heading-size: 48px;
  --page-panel-heading-size: 34px;
}

.media-orientation-fix--ccw {
  transform: rotate(-90deg) scale(1.8);
  transform-origin: center;
}

/* Keep editorial headings wide enough to avoid narrow stacked line breaks. */
.about-hero-title,
.about-heading,
.amenities-heading,
.blog-hero-copy h1,
.blog-detail-hero .blog-hero-copy h1,
.blog-index-title,
.blog-related h2,
.blog-article-header h2,
.breakfast-page .restaurant-hero-title,
.breakfast-overview-heading h2,
.breakfast-discover h2,
.breakfast-location .restaurant-directions-grid > div:first-child h2,
.cafe-hero-title,
.cafe-intro-heading,
.cafe-highlights-heading,
.cafe-info-panel-heading,
.cafe-more-heading,
.cafe-reviews-heading,
.cafe-brew-cta-heading,
.contact-intro h1,
.contact-assistance h2,
.day-tour-hero-title,
.day-tour-heading,
.day-tour-cta .day-tour-heading,
.day-tour-faq .day-tour-heading,
.day-tour-topics .day-tour-heading,
.daytour-title,
.dining-hero-title,
.dining-title,
.dining-intro-heading,
.dining-venues-heading,
.dining-menu-heading,
.dining-offers-heading,
.dining-venue-title,
.events-page-hero-title,
.events-page-copy h2,
.events-page-other h2,
.events-page-testimonials h2,
.events-page-faq h2,
.events-page-cta-copy h2,
.events-page-inclusions .events-page-copy h2,
.events-title,
.events-heading,
.gallery-hero-copy h1,
.gallery-section-title,
.gallery-collection-heading h2,
.restaurant-hero-title,
.restaurant-promotions h2,
.restaurant-reviews .restaurant-reviews-header h2,
.bar-page .restaurant-hero-title,
.rooms-hero-title,
.rooms-section-heading,
.resort-carousel-title,
.reviews-title,
.rooms-amenities .rooms-section-heading,
.rooms-card h2,
.rooms-card--featured h2,
.room-detail-hero-title,
.room-detail-page .room-detail-title,
.room-detail-panel h2,
.services-hero-title,
.services-page .services-hero-title,
.services-intro-copy h2,
.services-page .services-intro-copy h2,
.services-section-title,
.services-page .services-section-title,
.services-status-card h3,
.services-resort-card h3,
.services-page .services-status-card h3,
.services-page .services-resort-card h3,
.spa-hero h1,
.spa-section-header h2,
.spa-info h2,
.spa-closing h2,
.spa-faq h2,
.stay-cta-title,
.team-page-hero-title,
.team-page-catalog-header .team-page-heading,
.team-page-terms-copy .team-page-heading,
.team-page-testimonials .team-page-heading,
.team-page-cta .team-page-heading,
.team-page-faq .team-page-heading,
.team-page-stay-cta .stay-cta-title {
  max-width: min(90vw, 1120px);
  line-height: 1;
}

.about-hero-title,
.blog-hero-copy h1,
.blog-detail-hero .blog-hero-copy h1,
.cafe-hero-title,
.contact-intro h1,
.day-tour-hero-title,
.dining-hero-title,
.events-page-hero-title,
.gallery-hero-copy h1,
.restaurant-hero-title,
.bar-page .restaurant-hero-title,
.breakfast-page .restaurant-hero-title,
.rooms-hero-title,
.room-detail-hero-title,
.services-hero-title,
.services-page .services-hero-title,
.spa-hero h1,
.stay-cta-title,
.team-page-hero-title,
.team-page-stay-cta .stay-cta-title {
  font-size: var(--page-hero-heading-size);
}

.about-heading,
.amenities-heading,
.blog-index-title,
.blog-related h2,
.blog-article-header h2,
.breakfast-overview-heading h2,
.breakfast-discover h2,
.breakfast-location .restaurant-directions-grid > div:first-child h2,
.cafe-intro-heading,
.cafe-highlights-heading,
.cafe-more-heading,
.cafe-reviews-heading,
.cafe-brew-cta-heading,
.contact-assistance h2,
.day-tour-heading,
.day-tour-cta .day-tour-heading,
.day-tour-faq .day-tour-heading,
.day-tour-topics .day-tour-heading,
.daytour-title,
.dining-intro-heading,
.dining-venues-heading,
.dining-menu-heading,
.dining-offers-heading,
.dining-title,
.dining-venue-title,
.events-page-copy h2,
.events-page-other h2,
.events-page-testimonials h2,
.events-page-faq h2,
.events-page-cta-copy h2,
.events-page-inclusions .events-page-copy h2,
.events-title,
.events-heading,
.gallery-section-title,
.gallery-collection-heading h2,
.restaurant-section-header h2,
.restaurant-menu-highlight .restaurant-section-header h2,
.restaurant-promotions h2,
.restaurant-reviews h2,
.restaurant-reviews .restaurant-reviews-header h2,
.restaurant-closing h2,
.restaurant-faq h2,
.restaurant-faq.events-page-faq h2,
.restaurant-hours h2,
.restaurant-feature h2,
.restaurant-feature-copy h2,
.restaurant-directions h2,
.resort-carousel-title,
.reviews-title,
.rooms-section-heading,
.rooms-amenities .rooms-section-heading,
.rooms-card h2,
.rooms-card--featured h2,
.room-detail-page .room-detail-title,
.services-page .services-intro-copy h2,
.services-intro-copy h2,
.services-section-title,
.services-page .services-section-title,
.spa-section-header h2,
.spa-info h2,
.spa-closing h2,
.spa-faq h2,
.team-page-catalog-header .team-page-heading,
.team-page-terms-copy .team-page-heading,
.team-page-testimonials .team-page-heading,
.team-page-cta .team-page-heading,
.team-page-faq .team-page-heading,
.team-page-heading {
  font-size: var(--page-main-heading-size);
}

.cafe-info-panel-heading,
.room-detail-panel h2,
.spa-treatment-card h3 {
  font-size: var(--page-panel-heading-size);
}

@media (max-width: 960px) {
  :root {
    --page-hero-heading-size: 64px;
    --page-main-heading-size: 42px;
    --page-panel-heading-size: 30px;
  }
}

@media (max-width: 640px) {
  :root {
    --page-hero-heading-size: 48px;
    --page-main-heading-size: 34px;
    --page-panel-heading-size: 28px;
  }
}

/* Shared corner-system adoption
   Full-bleed heroes and structural page sections intentionally remain square. */
.resort-carousel {
  border-radius: var(--radius-section) var(--radius-section) 0 0;
}

/* Repeated content cards and information panels */
.blog-featured-card,
.blog-card,
.daytour-card,
.events-copy,
.review-card,
.events-page-copy,
.events-page-card,
.events-page-other-card,
.events-page-testimonial,
.events-page-faq details,
.team-page-faq.events-page-faq details,
.day-tour-accordion.events-page-faq details,
.day-tour-faq.events-page-faq details,
.rooms-card,
.rooms-amenity-card,
.room-detail-panel,
.services-status-card,
.services-resort-card,
.team-page-activity-card,
.team-page-detail-card,
.team-page-terms-body,
.spa-treatment-card,
.spa-closing-panel,
.restaurant-menu-card,
.restaurant-promo-card,
.restaurant-closing-panel,
.dining-offer-card,
.cafe-info-panel,
.cafe-review-card,
.contact-assistance-panel,
.breakfast-location-card,
.day-tour-topic-card,
.day-tour-cta-panel {
  border-radius: var(--radius-card);
}

/* Large galleries and image-led wrappers */
.resort-carousel-media,
.amenities-viewport,
.daytour-section .daytour-gallery,
.events-stage,
.dining-venue-stage,
.events-page-gallery,
.room-detail-gallery,
.gallery-album-card,
.gallery-lightbox-dialog:not(.is-fullscreen):not(:fullscreen),
.spa-page .spa-intro-grid {
  overflow: hidden;
  border-radius: var(--radius-gallery);
}

/* Media frames and thumbnails */
.dining-image,
.daytour-section .daytour-viewport,
.events-media,
.events-page-reel-media,
.events-gallery-stage,
.events-gallery-thumb,
.events-page-cta-media,
.location-map-wrap,
.blog-article-image,
.rooms-intro-media,
.spa-page .spa-gallery-item,
.restaurant-intro-media,
.restaurant-feature-media,
.cafe-intro-media,
.cafe-info-media,
.cafe-more-media,
.day-tour-editorial-media,
.services-intro-media-main,
.services-intro-media-accent,
.gallery-photo {
  overflow: hidden;
  border-radius: var(--radius-media);
}

/* Nested media inherits the wrapper curve instead of creating double corners. */
.daytour-section .daytour-viewport {
  border-radius: inherit;
}

/* Image-led cards clip their child media to the shared outer curve. */
.blog-featured-card,
.blog-card,
.events-page-other-card,
.rooms-card,
.team-page-activity-card,
.restaurant-menu-card,
.restaurant-promo-card,
.dining-offer-card,
.day-tour-topic-card,
.gallery-album-card {
  overflow: hidden;
}

@media (max-width: 760px) {
  .events-stage,
  .daytour-section .daytour-gallery {
    border-radius: var(--radius-xl);
  }
}

/* Image-specific focal points preserve guests and service details under cover crops. */
img.media-focus--pool-guests {
  object-position: 50% 56%;
}

img.media-focus--beach-guests {
  object-position: 58% 54%;
}

img.media-focus--bar-service {
  object-position: 54% 58%;
}

/* Cross-page corner refinement for compound panels and missed media frames. */
.events-page-inclusions .events-page-card,
.spa-page .spa-treatment-card,
.services-amenity-card,
.cafe-menu-cat,
.contact-form {
  border-radius: var(--radius-card);
}

.contact-form {
  overflow: hidden;
}

.contact-form input,
.contact-form textarea {
  border-radius: var(--radius-control);
}

.cafe-info-grid,
.restaurant-hours-grid,
.breakfast-location .restaurant-directions-grid,
.spa-page .spa-info-grid {
  overflow: hidden;
  border-radius: var(--radius-gallery);
}

/* Compound containers own their exterior curve; their children stay flush. */
.cafe-info-grid > .cafe-info-panel,
.cafe-info-grid > .cafe-info-media,
.breakfast-location .restaurant-directions-grid > div,
.breakfast-location .restaurant-directions-grid .breakfast-location-card,
.spa-page .spa-info-grid article {
  border-radius: 0;
}

.dining-venue-figure,
.cafe-menu-visual,
.cafe-more-visual,
.restaurant-directions figure,
.services-amenity-media {
  overflow: hidden;
  border-radius: var(--radius-media);
}
