/* Shared responsive rules for the exported page templates. */
@media (max-width: 760px) {
  .destination-map { display: none !important; }
  .destination-layout { display: block !important; min-height: 0 !important; }
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; }
img, video, iframe { max-width: 100%; }
button, input, select, textarea { font: inherit; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 3px solid #bda477; outline-offset: 5px; }
.mobile-menu-toggle { display: none; }
.mobile-navigation { display: none; }
@media (max-width: 1100px) {
  .site-nav { gap: 16px !important; padding: 16px 24px !important; flex-wrap: wrap; }
  .site-nav > div { gap: 14px !important; }
  .r-space { padding-left: 28px !important; padding-right: 28px !important; }
  .r-fluid { min-width: 0 !important; }
  .r-wrap { flex-wrap: wrap !important; }
  .r-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  h1.r-heading { font-size: clamp(44px, 7vw, 80px) !important; }
}
@media (max-width: 900px) {
  html { scroll-padding-top: 85px; }
  .r-space { padding-left: 20px !important; padding-right: 20px !important; }
  .r-fluid { width: 100% !important; flex-basis: 100% !important; }
  .r-wrap { gap: 24px !important; }
  .r-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .r-heading { font-size: clamp(28px, 7.8vw, 40px) !important; overflow-wrap: anywhere; }
  h1.r-heading { font-size: clamp(38px, 10vw, 58px) !important; }
  .r-hero { height: 680px !important; min-height: 580px; }
  .r-search { flex-direction: column !important; border-radius: 22px !important; max-width: 440px !important; }
  .r-search > span { width: auto !important; height: 1px !important; align-self: stretch !important; margin: 0 20px; }
  .r-search > div { flex: auto !important; padding: 13px 18px !important; }
  .r-search > a { min-height: 48px; border-radius: 16px; }
  .r-overlay { padding: 12px !important; align-items: flex-start !important; overflow-y: auto; }
  .r-overlay > div { padding: 24px 20px !important; max-height: calc(100dvh - 24px) !important; overflow-y: auto; margin: auto; }
  .site-nav { min-height: 74px; padding: 16px 20px !important; gap: 12px !important; flex-wrap: nowrap !important; background: #111 !important; }
  .site-nav img { max-width: 210px; height: auto !important; max-height: 42px; object-fit: contain; }
  .site-nav > div, .site-nav > span { display: none !important; }
  .mobile-menu-toggle { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; flex-shrink: 0; min-height: 44px; padding: 8px 12px; border: 1px solid #777; border-radius: 24px; background: transparent; color: white; cursor: pointer; font-size: 12px; }
  .mobile-navigation.is-open { display: flex; position: fixed; inset: 74px 0 0; z-index: 100; background: #111; color: white; padding: 28px 24px; flex-direction: column; gap: 8px; overflow-y: auto; }
  .mobile-navigation a, .mobile-navigation button { color: white; padding: 16px 0; border: 0; border-bottom: 1px solid #444; font-size: 18px; font-weight: 700; background: transparent; text-align: left; cursor: pointer; }
  input, select, textarea { font-size: 16px !important; max-width: 100%; }
}
@media (max-width: 600px) {
  .r-stats { flex-direction: column; }
  .r-stats > div { border-right: 0 !important; border-bottom: 1px solid #e5e5e5; padding-top: 24px !important; padding-bottom: 24px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

:root{--flagship-gold:#B89765}

/* Let exported pages occupy their full content height before the shared footer. */
#dc-root,#dc-root>.sc-host{height:auto!important;min-height:100vh}


@media(max-width:900px){.academy-main-gallery{min-height:340px!important}}
@media(max-width:600px){.academy-main-gallery{height:310px!important;min-height:310px!important;flex:0 0 100%!important}.academy-discover{margin-left:0!important;font-size:10px!important;letter-spacing:.07em!important;padding:11px 17px!important;min-height:40px;align-self:flex-start}.academy-main-gallery>span:last-child{padding:12px!important;gap:6px!important}.academy-main-gallery>span:last-child>span{height:44px!important}}


@media(max-width:760px){
.academy-program-actions{display:flex!important;flex-direction:column;gap:0!important;width:100%;border-top:1px solid #e5e1d8}
.academy-program-actions>a{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:58px;padding:16px 0!important;border:0!important;border-bottom:1px solid #e5e1d8!important;border-radius:0!important;background:transparent!important;color:#111!important;font-size:12px!important;letter-spacing:.04em!important;line-height:1.4}
.academy-program-actions>a::after{content:"⟶";display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:50%;background:#f2f0eb;font-size:18px;font-weight:400}
.academy-program-actions>a:active{background:#f4f2ee!important}
}


/* Keep the international CTA after the other content on desktop. */
.academy-discover-international{order:4;align-self:flex-start}
@media(max-width:760px){
.academy-info>.academy-discover{order:1;align-self:flex-start;margin:2px 0 6px!important;padding:10px 14px!important;font-size:9px!important;letter-spacing:.06em!important;gap:8px!important;min-height:38px}
.academy-info>.r-grid{order:2}
.academy-info>.academy-program-actions,.academy-info>.r-wrap{order:3}
}

/* French Riviera: keep the mobile hero title and badges readable. */
@media(max-width:900px){
 .riviera-hero{height:calc(100svh - 74px)!important;min-height:520px!important;max-height:760px;margin-top:74px}
 .riviera-hero> .r-wrap{left:22px!important;right:22px!important;bottom:30px!important;gap:0!important}
 .riviera-hero .r-fluid{gap:20px!important}
 .riviera-hero .r-fluid>div:first-child{display:flex!important;flex-wrap:wrap;gap:10px!important}
 .riviera-hero .r-fluid>div:first-child>span{white-space:nowrap;font-size:9px!important;letter-spacing:.08em!important}
 .riviera-hero .r-fluid>div:first-child>span:first-child{flex-basis:100%;font-size:10px!important;margin-bottom:3px}
 .riviera-hero h1.r-heading{font-size:clamp(23px,7.4vw,54px)!important;line-height:1.06!important;letter-spacing:-.035em!important;overflow-wrap:normal;word-break:normal}
 .riviera-hero h1 span{display:block;white-space:nowrap}
 .riviera-hero h1 br{display:none}
 .riviera-hero video{object-position:50% 50%}
 .riviera-hero>div:nth-child(2){background:linear-gradient(180deg,rgba(0,0,0,.08) 15%,rgba(0,0,0,.12) 35%,rgba(0,0,0,.8) 100%)!important}
}
.riviera-intro-gallery{flex:1;min-width:0;align-self:stretch}
.riviera-intro-gallery .gallery-thumbnails{padding-left:0;padding-right:0}
.riviera-intro-gallery button[aria-pressed="true"]{opacity:1;outline:2px solid #b89765;outline-offset:2px}
@media(max-width:900px){
 .riviera-intro{display:flex!important;flex-direction:column;gap:22px!important}
 .riviera-intro-copy{display:contents!important}
 .riviera-intro-copy>h2{order:0}
 .riviera-intro-gallery{order:1;width:100%;flex:auto!important}
 .riviera-intro-copy>p{order:2;max-width:none!important}
 .riviera-intro-copy>.r-grid{order:3;width:100%;max-width:none!important}
 .riviera-intro-gallery .gallery-main{height:auto;min-height:0;aspect-ratio:4/3;flex:auto}
 .riviera-intro-gallery .gallery-thumbnails{gap:7px;padding:12px 2px}
 .riviera-intro-gallery .gallery-thumbnails>button{height:44px}
}
.academy-desktop-labels{display:none!important}
@media(min-width:901px){
 .academy-desktop-labels{display:flex!important;flex-wrap:wrap;gap:8px;margin-top:4px}
 .academy-desktop-labels>span{display:inline-block;background:#eeeae2;color:#5f594e;padding:7px 10px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.09em;line-height:1.4}
 .academy-program-actions,.academy-existing-labels{display:none!important}
}
@media(max-width:900px){
 .academy-existing-labels{display:flex!important;flex-direction:column;gap:0!important;width:100%;border-top:1px solid #e5e1d8;margin-top:12px!important}
 .academy-existing-labels>span{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:58px;padding:16px 0!important;border:0!important;border-bottom:1px solid #e5e1d8!important;border-radius:0!important;background:transparent!important;color:#111!important;font-size:12px!important;letter-spacing:.04em!important;line-height:1.4}
 .academy-existing-labels>span::after{content:"⟶";display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:50%;background:#f2f0eb;font-size:18px;font-weight:400}
}
@media(max-width:900px){.academy-standard-photo{display:none!important}}
@media(max-width:900px){
 .home-destination-filters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%}
 .home-destination-filters>button{width:100%;min-height:46px;border-radius:8px!important;padding:12px 8px!important;font-size:10px!important;letter-spacing:.06em!important;text-align:center;border-color:#ded9cf!important}
 .home-destination-filters>button[aria-pressed="true"]{border-color:#111!important}
 .home-destination-filters>button:last-child{grid-column:1/-1}
}
@media(max-width:900px){
 .home-destination-filters::before{content:"FILTERS";grid-column:1/-1;color:#8b8880;font-size:10px;font-weight:700;letter-spacing:.14em;margin-bottom:4px}
}
@media(max-width:900px){
 .methodology-section{display:flex!important;flex-direction:column;gap:24px!important;background:#000;color:#fff;padding:40px 20px}
 .methodology-copy{display:contents!important}
 .methodology-copy>h2{order:0}
 .methodology-section>.methodology-photo{order:1;flex:none!important;width:100%!important;min-width:0!important;min-height:0!important;height:auto!important;aspect-ratio:1/1;overflow:hidden;border-radius:8px}
 .methodology-photo img{object-fit:cover;object-position:center 30%}
 .methodology-copy>p,.methodology-copy>div,.methodology-copy>a{order:2}
}
.unified-mobile-filters{display:contents}.unified-mobile-filters>.mobile-filter-bar{display:none}
@media(min-width:901px){.unified-mobile-filters:not([open])>div{display:flex}}
@media(max-width:900px){
 .unified-mobile-filters{display:block;width:100%;border-top:1px solid #e5e1d8}
 .mobile-filter-bar,.filter-panel>summary.mobile-filter-bar{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:20px 0!important;list-style:none;cursor:pointer;font-size:10px!important;font-weight:700;letter-spacing:.1em;background:transparent!important;border:0!important;border-radius:0!important}
 .mobile-filter-bar::-webkit-details-marker{display:none}
 .mobile-filter-bar>span{display:flex;align-items:center;gap:10px;color:#111}
 .mobile-filter-bar button{padding:8px 0;border:0;background:transparent;color:#8b8880;font-size:9px!important;font-weight:700;letter-spacing:.1em;cursor:pointer}
 .filter-chevron{display:inline-block;font-size:14px;line-height:1}
 details[open]>.mobile-filter-bar .filter-chevron{transform:rotate(180deg)}
 .home-destination-filters::before{display:none!important}
 .filter-panel-heading{display:none!important}
 .sports-filter-toolbar>a{display:none!important}
 .sports-filter-toolbar{min-height:48px}
 .sports-filter-toolbar>span{font-size:9px!important}
 .unified-mobile-filters:not([open])>div{display:none!important}
}
@media(max-width:900px){.home-hero-content{padding-top:48px!important}}
@media(max-width:900px){
 .mobile-navigation a,.mobile-navigation button{text-transform:uppercase;font-size:clamp(22px,6vw,28px)!important;font-weight:900;line-height:1.15;padding:17px 0;letter-spacing:-.02em}
 .mobile-menu-toggle{text-transform:uppercase}
}
.mobile-header-actions{display:none}
@media(max-width:900px){
 .site-nav>.mobile-header-actions{display:flex!important;align-items:center;gap:6px!important;margin-left:auto;flex:none}
 .mobile-header-actions button{display:flex;align-items:center;justify-content:center;min-height:40px;padding:10px;border:1px solid #777;border-radius:999px;background:transparent;color:#fff;font-size:9px;font-weight:700;letter-spacing:.02em;cursor:pointer}
 .mobile-header-actions button:last-child{background:white;border-color:white;color:#111}
 .site-nav:has(.mobile-header-actions){padding:14px 12px!important;gap:8px!important}
 .site-nav:has(.mobile-header-actions)>a{min-width:0;flex:0 1 150px}
 .site-nav:has(.mobile-header-actions)>a img{width:100%!important;max-width:150px!important;max-height:36px!important;height:auto!important}
 .site-nav:has(.mobile-header-actions)>.mobile-menu-toggle{margin-left:0;font-size:9px;padding:8px;min-height:40px}
}
@media(max-width:900px){
 .mobile-navigation a,.mobile-navigation button{font-family:Geometria,Arial,sans-serif!important;font-weight:700!important;text-transform:uppercase}
}
@media(max-width:900px){
 .site-nav>.mobile-header-actions{position:fixed!important;top:auto!important;bottom:0;left:0;right:0;z-index:120;display:flex!important;gap:10px!important;margin:0!important;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#111;border-top:1px solid #333;box-shadow:0 -4px 20px #0002}
 .mobile-header-actions button{flex:1;min-height:46px;font-size:11px;letter-spacing:.08em}
 .site-nav:has(.mobile-header-actions)>a{flex:0 1 210px}
 .site-nav:has(.mobile-header-actions)>a img{max-width:210px!important}
 .site-nav:has(.mobile-header-actions)>.mobile-menu-toggle{margin-left:auto}
 body:has(.mobile-header-actions){padding-bottom:calc(70px + env(safe-area-inset-bottom))}
 .mobile-navigation.is-open{bottom:calc(70px + env(safe-area-inset-bottom))}
 .center-page .center-actions{position:fixed;bottom:0;left:0;right:0;z-index:120;width:100%;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#111;color:#fff;gap:10px;margin:0;border-top:1px solid #333}
 .center-page .center-actions>a{display:none}
 .center-page .center-actions>button{flex:1;min-height:46px;font-size:11px}
 .center-page .center-actions>button[data-dialog="contact-dialog"]{order:0}
 .center-page .center-actions>button[data-dialog="book-dialog"]{order:1;color:#111}
 body.center-page{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
}
@media(max-width:900px){body>.mobile-header-actions{position:fixed!important;bottom:0;left:0;right:0;z-index:120;display:flex!important;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#111;border-top:1px solid #333;box-shadow:0 -4px 20px #0002}body:has(.mobile-header-actions) .site-nav{backdrop-filter:none!important}}
.reviews-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.reviews-heading>span{font-size:11px;font-weight:700;letter-spacing:.18em;color:#8b8880}.reviews-heading>div{display:flex;gap:8px}.reviews-heading button{width:42px;height:42px;border:1px solid #dcd8d0;background:transparent;border-radius:50%;cursor:pointer;font-size:20px}.reviews-carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.reviews-carousel::-webkit-scrollbar{display:none}.reviews-carousel>div{flex:0 0 calc((100% - 16px)/2);scroll-snap-align:start;border:1px solid #e5e1d8;border-radius:12px}.reviews-carousel>div>span:last-child{margin-top:auto}@media(max-width:900px){.reviews-carousel>div{flex-basis:100%;padding:28px 24px!important}}
@media(max-width:900px){.site-nav>a img{max-width:180px!important;width:auto!important;max-height:36px!important}.site-nav>a{min-width:0}}
.filter-chevron{display:inline-flex!important;align-items:center;justify-content:center;width:16px;height:16px;transition:transform .18s}
.filter-chevron svg{display:block;flex:none}
.academy-standard-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;color:#b89765}
.academy-standard-intro{margin:0;font-size:16px;line-height:1.75;color:#c6c4bf;max-width:560px}
.academy-standard-points{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
.academy-standard-points>div{border-top:1px solid #42403b;padding-top:18px}
.academy-standard-points h3{margin:0 0 8px;font-size:17px;line-height:1.3;font-weight:700;color:white}
.academy-standard-points p{margin:0;font-size:14px;line-height:1.6;color:#bdbbb6}
@media(max-width:600px){.academy-standard-points{grid-template-columns:1fr;gap:20px}.academy-standard-intro{font-size:15px}.academy-standard-points h3{font-size:18px}}
.filter-chevron.filter-long-arrow{width:22px;height:22px;font-size:20px;line-height:1;transform:rotate(90deg)}
details[open]>.mobile-filter-bar .filter-chevron.filter-long-arrow{transform:rotate(-90deg)}
.stays-filter-panel[open] .filter-chevron.filter-long-arrow{transform:rotate(-90deg)}
.sports-filter-toggle>span{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:20px!important;line-height:1;transform:rotate(90deg)}
.sports-filter-toggle[aria-expanded="true"]>span{transform:rotate(-90deg)}
@media(max-width:900px){
 .site-nav>a:has(img[src*="Logo MA I French Riviera"]){display:block!important;flex:0 0 160px!important;width:160px!important;min-width:160px!important}
 .site-nav>a img[src*="Logo MA I French Riviera"]{display:block!important;width:160px!important;height:56px!important;max-width:160px!important;max-height:56px!important;object-fit:contain;filter:brightness(0) invert(1)!important}
}
/* Consistent solid black mobile navigation and sticky actions. */
@media(max-width:900px){
 .site-nav,.generic-header,.mobile-navigation,.mobile-navigation.is-open,body>.mobile-header-actions,.site-nav>.mobile-header-actions,.center-page .center-actions{background:#000!important;background-color:#000!important;backdrop-filter:none!important;opacity:1}
}
@media(min-width:901px){
 .site-nav,.site-nav a,.site-nav button,.site-nav span,.generic-header-links,.generic-header-actions{font-family:'Geometria',Arial,sans-serif!important}
}
@media(min-width:901px){
 .site-nav a,.site-nav button,.site-nav>div>span,.generic-header a{font-size:13px!important}
 .generic-header-links{gap:24px}
}
@media(min-width:901px) and (max-width:1200px){
 .site-nav a,.site-nav button,.site-nav>div>span,.generic-header a{font-size:12px!important}
 .generic-header-links{gap:14px}
 .generic-header{gap:14px}
}
/* Always-visible mobile navigation: centered brand and horizontal links. */
@media(max-width:900px){
 html{scroll-padding-top:140px}
 .site-nav{height:124px!important;min-height:124px!important;justify-content:center!important;padding:8px 16px 60px!important;gap:0!important}
 .site-nav>a,.site-nav>a:has(img[src*="Logo MA I French Riviera"]){margin:0 auto!important;flex:0 0 auto!important;align-self:center!important}
 .mobile-menu-toggle{display:none!important}
 .site-nav .mobile-navigation,.site-nav .mobile-navigation.is-open{display:flex!important;position:absolute!important;inset:70px 0 auto!important;height:54px;z-index:1;flex-direction:row;align-items:center;gap:8px;padding:4px 16px 12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#000!important;overscroll-behavior-x:contain}
 .mobile-navigation::-webkit-scrollbar{display:none}
 .site-nav .mobile-navigation a{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:36px;padding:8px 16px!important;border:1px solid #555;border-radius:999px;background:#171717;color:#fff;font-family:Geometria,Arial,sans-serif!important;font-size:11px!important;font-weight:700!important;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-decoration:none}
 .site-nav .mobile-navigation a[aria-current="page"]{background:#fff;color:#111;border-color:#fff}
 .site-nav .mobile-navigation a:focus-visible{outline-offset:-3px}
}
/* Compact mobile header and frosted search panel. */
@media(max-width:900px){
 html{scroll-padding-top:118px}
 .site-nav{height:104px!important;min-height:104px!important;padding:6px 16px 46px!important}
 .site-nav>a img{max-width:160px!important;max-height:32px!important}
 .site-nav>a:has(img[src*="Logo MA I French Riviera"]){width:145px!important;min-width:145px!important}
 .site-nav>a img[src*="Logo MA I French Riviera"]{width:145px!important;max-width:145px!important;height:48px!important;max-height:48px!important}
 .site-nav .mobile-navigation,.site-nav .mobile-navigation.is-open{inset:60px 0 auto!important;height:44px;padding:2px 16px 6px}
 .site-nav .mobile-navigation a{min-height:32px;padding:6px 15px!important}
 .r-search{background:linear-gradient(160deg,rgba(255,255,255,.64),rgba(255,255,255,.88) 55%,rgba(255,255,255,.97))!important;-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%);border:1px solid rgba(255,255,255,.7);box-shadow:0 12px 36px rgba(0,0,0,.16)!important}
 .r-search>div>span{color:#66635c!important}
}

@media(max-width:900px){.academies-hero-copy{bottom:120px!important}}
