@font-face{font-family:'Geometria Figures';src:url('fonts/Geometria-Heavy.otf') format('opentype');font-weight:100 900;font-style:normal;font-display:swap;size-adjust:70%}
/* Shared brand typography: display headings / readable body copy. */
@font-face{font-family:'BeniM';src:url('fonts/BeniM-Black.otf') format('opentype');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Geometria';src:url('fonts/Geometria-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap;ascent-override:98%;descent-override:28%}
@font-face{font-family:'Geometria';src:url('fonts/Geometria-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap;ascent-override:98%;descent-override:28%}
body,p,li,blockquote,figcaption,input,textarea,select,button{font-family:'Geometria',Helvetica,Arial,sans-serif!important}
h1,h2,h3,h4,h5,h6,.r-heading,.brand-display-title,.academy-program-title,.study-campus-name,.destination-card-title,.sports-center-name,.sports-comparison-name,.camp-list-copy>span:nth-child(2),.home-center-card h3,.camp-baseline span{font-family:'Geometria Figures',Impact,sans-serif!important;font-weight:900!important;text-transform:uppercase;letter-spacing:0!important;line-height:1!important}
h1>span,h2>span,h3>span,.study-campus-name>span{font-family:inherit}
p,[class*="description"],[class*="blurb"],.methodology-copy>p,.academy-program-accommodation,.destination-card-location,.sports-center-location{font-family:'Geometria',Helvetica,Arial,sans-serif!important}
.center-camps-subtitle,.riviera-program-heading>p{font-family:'Geometria',Helvetica,Arial,sans-serif!important;font-weight:400!important;text-transform:none}

/* Program card names need a readable text face at compact sizes. */
.academy-program-title,.camp-list-copy>span:nth-child(2),.program-card h3,.sports-program-row h3,.sports-program-row strong{font-family:'Geometria',Helvetica,Arial,sans-serif!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important;line-height:1.2!important}

@font-face{font-family:'Geometria';src:url('fonts/Geometria-Heavy.otf') format('opentype');font-weight:900;font-style:normal;font-display:swap;ascent-override:98%;descent-override:28%}
.academy-program-title,.camp-list-copy>span:nth-child(2),.program-card h3,.sports-program-row h3,.sports-program-row strong{font-weight:900!important;letter-spacing:-.035em!important;line-height:1.12!important}

/* Readable labels alongside the French Riviera key figures. */
.riviera-key-facts .reassurance-item h2{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:700!important;line-height:1.2!important;letter-spacing:-.02em!important}
@media(max-width:760px){.riviera-key-facts .reassurance-item h2{font-size:20px}}

/* French Riviera only: heavy Geometria headings with condensed spacing. */
body.riviera-center-page h2,body.riviera-center-page h2.r-heading{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.055em!important;line-height:1.05!important}

/* Smaller section headings for the Geometria treatment. */
body.riviera-center-page h2.r-heading{font-size:clamp(32px,3vw,44px)!important}
@media(max-width:900px){body.riviera-center-page h2.r-heading{font-size:clamp(28px,8vw,40px)!important}}

/* Site-wide key-figure labels use readable Geometria. */
.home-reassurance .reassurance-item h2,body.riviera-center-page .reassurance-item h2{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:700!important;letter-spacing:-.02em!important;line-height:1.2!important}
@media(max-width:760px){.home-reassurance .reassurance-item h2{font-size:20px}}

/* Homepage search picker titles match the Geometria heading style. */
.home-search-picker .r-heading{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.055em!important;line-height:1.05!important;font-size:30px!important}
@media(max-width:900px){.home-search-picker .r-heading{font-size:28px!important}}

/* Sports page: larger display heading and compact Geometria card names. */
body.sports-page h1.r-heading{font-size:clamp(72px,7vw,104px)!important;line-height:1!important}
body.sports-page h2,body.sports-page h3,body.sports-page .sports-center-name,body.sports-page .sports-comparison-name{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.055em!important;line-height:1.1!important;text-transform:none!important}
@media(max-width:900px){body.sports-page h1.r-heading{font-size:clamp(60px,16vw,88px)!important}}

/* French Riviera hero: larger heading on desktop. */
@media(min-width:901px){body.riviera-center-page .riviera-hero h1.r-heading{font-size:clamp(80px,7vw,104px)!important;line-height:.96!important}}

/* Campus options: Sand text panels and Geometria descriptions. */
.riviera-campus-options>a>span:last-child{background:#001937;color:#fff;flex:1}
.riviera-campus-options>a>span:last-child>span:last-child{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:400!important;color:#fff!important}

/* Camp pages: Geometria section titles and the two-blue brand palette. */
[data-camp-page="true"] h1.r-heading{font-size:clamp(40px,3.9vw,72px)!important}
[data-camp-page="true"] h2,[data-camp-page="true"] h3{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.04em!important;line-height:1.1!important;text-transform:none!important}
[data-camp-page="true"] .performance-schedule,[data-camp-page="true"] .camp-options{background:#00349D;color:#1F92F0}
[data-camp-page="true"] .performance-schedule>h2,[data-camp-page="true"] .camp-options-heading h2,[data-camp-page="true"] .camp-options-heading p,[data-camp-page="true"] .performance-schedule>.performance-label,[data-camp-page="true"] .performance-schedule .schedule-swipe-hint{color:#1F92F0}
[data-camp-page="true"] .performance-schedule-grid>li,[data-camp-page="true"] .camp-options-grid article{background:#1F92F0;color:#00349D;border-color:#1F92F0}
[data-camp-page="true"] .performance-schedule-grid h3,[data-camp-page="true"] .performance-schedule-grid p,[data-camp-page="true"] .performance-schedule-grid span,[data-camp-page="true"] .performance-schedule-grid summary,[data-camp-page="true"] .camp-options-grid h3,[data-camp-page="true"] .camp-options-grid p,[data-camp-page="true"] .camp-options-grid summary{color:#00349D!important}
[data-camp-page="true"] .camp-options-grid,[data-camp-page="true"] .performance-schedule-grid{scrollbar-color:#1F92F0 #00349D}
[data-camp-page="true"] .camp-options-navigation button,[data-camp-page="true"] .schedule-controls button{border-color:#1F92F0;color:#1F92F0;background:#00349D}
[data-camp-page="true"] .camp-options-navigation button:hover,[data-camp-page="true"] .schedule-controls button:hover{background:#1F92F0;color:#00349D}
@media(max-width:900px){[data-camp-page] .camp-split-hero h1.r-heading{font-size:42px!important}}

/* Camp programme and extras: Sand sections with dark-blue cards. */
[data-camp-page="true"] .performance-schedule,[data-camp-page="true"] .camp-options{background:#FFE9B8;color:#00349D}
[data-camp-page="true"] .performance-schedule>h2,[data-camp-page="true"] .camp-options-heading h2,[data-camp-page="true"] .camp-options-heading p,[data-camp-page="true"] .performance-schedule>.performance-label,[data-camp-page="true"] .performance-schedule .schedule-swipe-hint{color:#00349D}
[data-camp-page="true"] .performance-schedule-grid>li,[data-camp-page="true"] .camp-options-grid article{background:#00349D;color:#fff;border-color:#00349D}
[data-camp-page="true"] .performance-schedule-grid h3,[data-camp-page="true"] .performance-schedule-grid p,[data-camp-page="true"] .performance-schedule-grid span,[data-camp-page="true"] .performance-schedule-grid summary,[data-camp-page="true"] .camp-options-grid h3,[data-camp-page="true"] .camp-options-grid p,[data-camp-page="true"] .camp-options-grid summary{color:#fff!important}
[data-camp-page="true"] .performance-schedule-grid h3,[data-camp-page="true"] .camp-options-grid h3{font-size:26px;overflow-wrap:normal}
[data-camp-page="true"] .performance-schedule .schedule-time{flex-wrap:nowrap;gap:8px;margin-bottom:12px;white-space:nowrap}
[data-camp-page="true"] .camp-options-heading{max-width:none;margin-bottom:16px}
[data-camp-page="true"] .camp-options-grid,[data-camp-page="true"] .performance-schedule-grid{scrollbar-color:#00349D #FFE9B8}
[data-camp-page="true"] .camp-options-navigation button,[data-camp-page="true"] .schedule-controls button{border-color:#00349D;color:#00349D;background:transparent}
@media(min-width:901px){[data-camp-page="true"] #daily-program-title br{display:none}[data-camp-page="true"] #daily-program-title{font-size:clamp(30px,3.2vw,48px)}}

/* Camp options: flush left rail, controls below, header navy. */
[data-camp-page="true"] .camp-options{padding-left:0;color:#001937}
[data-camp-page="true"] .camp-options-heading h2,[data-camp-page="true"] .camp-options-heading p{color:#001937}
[data-camp-page="true"] .camp-options-grid{margin-left:0;padding-left:0;margin-bottom:12px;scrollbar-color:#001937 #FFE9B8}
[data-camp-page="true"] .camp-options-grid article{background:#001937;border-color:#001937;color:#fff}
[data-camp-page="true"] .camp-options-navigation{justify-content:flex-end;margin:0}
[data-camp-page="true"] .camp-options-navigation button{border-color:#001937;color:#001937;background:transparent}
[data-camp-page="true"] .camp-options-navigation button:hover{background:#001937;color:#fff}

/* Patterned camp enquiry banner. */
[data-camp-page="true"] .performance-enquiry{position:relative;isolation:isolate;overflow:hidden;background:#001937;color:#fff;border:0;border-radius:16px;padding:48px 40px}
[data-camp-page="true"] .performance-enquiry::before{content:"";position:absolute;inset:0;z-index:-1;background:url('uploads/pattern-level-sky-blue.svg') repeat center/280px auto;opacity:.22;pointer-events:none}
[data-camp-page="true"] .performance-enquiry h2,[data-camp-page="true"] .performance-enquiry .performance-label{color:#fff}
[data-camp-page="true"] .performance-enquiry button{background:#1F92F0;color:#fff;box-shadow:0 0 0 2px #001937}
[data-camp-page="true"] .performance-enquiry button:hover{background:#fff;color:#001937}
[data-camp-page="true"] .performance-enquiry button:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(max-width:600px){[data-camp-page="true"] .performance-enquiry{padding:32px 24px}[data-camp-page="true"] .performance-enquiry button{width:100%;justify-content:space-between}}

/* Full-width Sand backdrop without widening the options content. */
[data-camp-page="true"] .camp-options{background:transparent;border-radius:0;box-shadow:none;clip-path:none}
[data-camp-page="true"] .camp-options-grid{scrollbar-color:#001937 transparent}

/* Included services occupy the row after removing practical extras. */
[data-camp-page="true"] .performance-details{grid-template-columns:minmax(0,1fr)}

/* Compact included-services overview, immediately before the daily programme. */
[data-camp-page="true"] .camp-included{padding:0 0 88px;gap:0}
[data-camp-page="true"] .camp-included h2{font-size:32px;margin-bottom:22px}
[data-camp-page="true"] .camp-included ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
[data-camp-page="true"] .camp-included li{position:relative;align-content:start;border:1px solid #ded9cf;border-radius:10px;background:#fff;padding:18px 18px 18px 42px;gap:7px}
[data-camp-page="true"] .camp-included li::before{content:"✓";position:absolute;left:16px;top:18px;color:#1F92F0;font-weight:900}
[data-camp-page="true"] .camp-included li strong{font-size:15px;line-height:1.3}
[data-camp-page="true"] .camp-included li span{font-size:13px;line-height:1.5;color:#536174}
@media(max-width:900px){[data-camp-page="true"] .camp-included ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){[data-camp-page="true"] .camp-included ul{grid-template-columns:1fr}[data-camp-page="true"] .camp-included{padding-bottom:60px}}


/* Breathing room between the Game Report and the Sand options section. */
[data-camp-page="true"] .performance-report + .camp-options{margin-top:64px}
@media(max-width:600px){[data-camp-page="true"] .performance-report + .camp-options{margin-top:40px}}

/* Camp enquiry banner: plain Sand background. */
[data-camp-page="true"] .performance-enquiry{background:#FFE9B8;color:#001937}
[data-camp-page="true"] .performance-enquiry::before{content:none}
[data-camp-page="true"] .performance-enquiry h2,[data-camp-page="true"] .performance-enquiry .performance-label{color:#001937}
[data-camp-page="true"] .performance-enquiry button{box-shadow:none}

/* Additional breathing room below the daily programme. */
[data-camp-page="true"] .performance-schedule{margin-bottom:88px}
@media(max-width:600px){[data-camp-page="true"] .performance-schedule{margin-bottom:60px}}

/* Larger mobile section titles for equivalent school programme pages. */
@media(max-width:900px){[data-camp-page="false"] h2.r-heading{font-size:clamp(36px,10vw,44px)!important;line-height:1.05!important}}

/* School programme pages: Geometria section headings on all screens. */
[data-camp-page="false"] h2{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.04em!important;line-height:1.1!important}

@media(max-width:900px){[data-camp-page] .camp-split-hero[data-program-title="FLEXIBLE-SCHEDULE SCHOOL"] h1.r-heading{font-size:50px!important}}

/* Larger Sky Blue destinations heading on the homepage. */
.home-places-title{font-size:clamp(76px,7vw,104px)!important;color:#1F92F0;line-height:.98!important}
@media(max-width:900px){.home-places-title{font-size:clamp(52px,14vw,76px)!important}}

/* Homepage methodology copy in Sky Blue with Sand step numbers. */
.home-methodology-copy{color:#1F92F0!important}
.home-methodology-copy>h2,.home-methodology-copy>p{color:#1F92F0!important}
.home-methodology-copy>div>div>span:first-child{color:#FFE9B8!important}

/* Larger Destinations page hero heading on desktop. */
@media(min-width:901px){h1.destinations-page-title{font-size:clamp(80px,7vw,104px)!important;line-height:.98!important}}

@media(max-width:900px){h1.destinations-page-title{font-size:clamp(52px,14vw,76px)!important;line-height:.98!important}}

/* Destination center cards match the Geometria card typography. */
.destination-card-title{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.12!important;text-transform:none!important}

/* Contact dialog titles use readable Geometria. */
#contact-heading{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.1!important;text-transform:uppercase!important}

/* Single mobile H1 scale, matching Destinations across all page templates.
   ID specificity intentionally supersedes earlier page-specific hero rules. */
@media(max-width:900px){
  :root{--mobile-h1-size:clamp(52px,14vw,76px)}
  body :is(h1,#mobile-h1-size-override){font-size:var(--mobile-h1-size)!important;line-height:.98!important}
  .home-hero-content h1 .home-hero-subtitle{font-size:1em;line-height:inherit}
}

/* Schooling campus card names match other center cards on mobile. */
.study-campus-name{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.12!important;text-transform:none!important}

/* Academies page section headings use Geometria. */
body.academies-page h2,body.academies-page h3{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.1!important}

/* More prominent homepage methodology title. */
.home-methodology-copy>h2.r-heading{font-size:clamp(64px,5vw,84px)!important;line-height:1!important}
@media(max-width:900px){.home-methodology-copy>h2.r-heading{font-size:clamp(54px,14vw,76px)!important}}

/* Schooling introduction uses the Geometria H2 style. */
h2.study-intro-heading{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;font-size:44px!important;letter-spacing:-.04em!important;line-height:1.1!important}
@media(max-width:900px){h2.study-intro-heading{font-size:clamp(28px,8vw,36px)!important}}

/* Academy center names: readable Geometria with a slightly larger mobile size. */
.academies-page .academy-center-title{font-family:Geometria,Helvetica,Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.12!important;text-transform:none!important}
@media(max-width:900px){.academies-page .academy-center-title{font-size:36px!important}}

/* Camp hero titles match the BOOK CTA Sky Blue. */
[data-camp-page="true"] .program-hero h1.r-heading{color:#1F92F0!important}

/* Larger camp hero titles on desktop. */
@media(min-width:901px){[data-camp-page="true"] .program-hero h1.r-heading{font-size:clamp(52px,4.8vw,88px)!important}}

/* Split heroes: photo fills the full height determined by the text column. */
@media(min-width:901px){.r-hero.camp-split-hero>img{position:absolute!important;inset:0 auto 0 0!important;width:50%!important;height:100%!important;min-height:0!important;max-height:none!important;object-fit:cover}}

/* Membership plan titles */
.membership-shop .shop-heading h2,
.plan-card .plan-name-row h3 {
  font-family: "Geometria", Arial, sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  line-height: 1.12 !important;
  text-transform: none !important;
}

/* Larger membership tier names */
.plan-card .plan-name-row h3 { font-size: 44px; }
@media (max-width: 900px) {
  .plan-card .plan-name-row h3 { font-size: 36px; }
}

/* Membership secondary headings use Geometria. */
.membership-page :is(h2,h3,h4,h5,h6){font-family:"Geometria",Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.12!important;text-transform:none!important}

/* Camp discovery and stacked mobile options. */
.camp-discovery{padding:64px 48px;max-width:1600px;margin:auto;color:#001937}
.camp-discovery>h2{font-size:clamp(30px,3vw,46px);margin:16px 0 32px}
.camp-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.camp-related-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #ded9cf;border-radius:14px;background:#fff;color:inherit;text-decoration:none}
.camp-related-card>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.camp-related-card>div{padding:24px;display:flex;flex-direction:column;flex:1;gap:14px}
.camp-related-card h3{font-size:24px;margin:0}.camp-related-card p{margin:0;line-height:1.5}.camp-related-cta{margin-top:auto;padding-top:12px;font-size:12px;font-weight:700;color:#1F92F0}

@media(max-width:900px){
 [data-camp-page="true"] .camp-options{padding-right:0}
 [data-camp-page="true"] .camp-options-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;overflow:visible;scroll-snap-type:none;padding-bottom:0}
 [data-camp-page="true"] .camp-options-grid article{display:grid;grid-template-columns:36% minmax(0,1fr);align-items:stretch;width:100%;min-width:0}
 [data-camp-page="true"] .camp-options-grid img{height:100%;min-height:180px;aspect-ratio:auto;object-fit:cover}
 [data-camp-page="true"] .camp-options-grid article>div{padding:20px 16px;min-width:0}
 [data-camp-page="true"] .camp-options-grid h3{font-size:20px;overflow-wrap:break-word}
 [data-camp-page="true"] .camp-options .option-format{font-size:9px;line-height:1.5}
 [data-camp-page="true"] .camp-options-navigation{display:none}
 .camp-discovery{padding:48px 20px}.camp-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){.camp-related-grid{grid-template-columns:1fr}}



/* Country flags were removed from the visual system site-wide. */
img[src*="flagcdn.com"],
.center-country-flag,
.center-name-flag,
.home-center-flag,
.academy-country-flag,
.study-campus-flag,
.center-camps-flag,
.center-hero-flag{display:none!important}
/* Shared Stay & Play badge treatment across cards, heroes and result lists. */
.stay-play-label,
.home-center-stay,
.stay-play-badge,
.sports-mobile-stay,
.destination-mobile-hotel,
.destination-hotel,
.destination-desktop-stay{
  width:fit-content;
  box-sizing:border-box;
  padding:6px 10px!important;
  border:1px solid #1f92f0!important;
  border-radius:6px!important;
  background:transparent!important;
  color:#1f92f0!important;
  font-family:'Geometria',Arial,sans-serif!important;
  font-size:10px!important;
  font-weight:700!important;
  line-height:1.2!important;
  letter-spacing:.06em!important;
  box-shadow:none!important;
}
