/* Independent corrections from the page-by-page comparative measurements. */
:root{--ink:#10395d}
.hero h1,.hero-sub{color:#1d3f63}
.asso-hero h1,.asso-hero .hero-sub,.page-emploi .hero h1,.page-emploi .hero-sub,.faq-hero h1,.faq-hero .hero-sub{color:white}
strong,b{font-weight:700}
.stay h4{font-family:OswaldOriginal,'Arial Narrow',sans-serif;font-weight:400}
.price{font-family:BarlowOriginal,Arial,sans-serif}
.stay-section-title{font-family:BarlowOriginal,Arial,sans-serif;font-size:22px;font-weight:400}
.choose{font-size:24px;font-weight:700}
.stay-copy{background:rgba(40,153,193,.44);backdrop-filter:blur(4px);box-shadow:0 1px 4px #0009}
.pink .stay-copy{background:rgba(26,177,171,.49)}
.red .stay-copy{background:rgba(197,18,175,.28);backdrop-filter:blur(3px)}
.stay-conclusion{color:#f8c853!important}.pink .stay-conclusion{color:#ff4040!important}.red .stay-conclusion{color:#c512af!important}
.location-band h2{font-size:32px;color:#30b5b3}
.rental-hero h1{font-size:32px;line-height:1.4}
.rental-intro h2,.group-intro h2{font-size:22px;font-weight:400;line-height:30.8px}
.page-classedemer .hero h1{font-size:32px;line-height:44.8px}
.page-classedemer .hero-sub{font-size:22px;line-height:30.8px}
.page-classedemer .hero .ribbon{font-size:20px;line-height:28px}
.class-content{color:#10395d}
.class-content li a{font-weight:400}.class-content li a strong{font-weight:700}
.slide-copy{display:grid;grid-template-columns:276px minmax(0,505px);column-gap:13px;align-items:center;width:100%}
.text-slides{padding:45px 86px 45px 99px}
.slide-copy h2{grid-column:1;grid-row:1/span 8;font-size:28px;line-height:33.6px;color:#2db2c0;margin:0;text-align:left;font-weight:400}
.slide-copy p{grid-column:2;font-size:14px;line-height:20.59375px;margin:0;color:white;text-align:justify}
.contact h2{color:#10385c}
.contact address{font-size:16px}
.page-index .reply{font-size:20px;font-weight:700;font-style:italic;line-height:28px}
.page-locations .reply{font-size:16px;font-weight:700;line-height:22.4px}
.page-asso .anniversary h2{color:#10395d}
.page-asso .center-info{color:#072d3e}
.association-partners h2{color:#1d3f63}
.page-emploi .jobs-nav h2{color:#28a6c1}
.legal-surface{color:#10395d}
.legal-surface h2{font-size:22px;line-height:30.8px}
.result-count{color:#2899c1}
.confirmation h1{font-size:47px}
.confirmation h2{font-size:29px;font-weight:700}
.confirmation p{font-weight:700;color:#10395d}
@media(max-width:760px){
.rental-hero h1,.page-classedemer .hero h1{font-size:28px}
.rental-intro h2,.group-intro h2{font-size:21px}
.text-slides{padding:35px 40px}
.slide-copy{display:block}.slide-copy h2{font-size:24px;line-height:31px;margin-bottom:24px}
.slide-copy p{font-size:14px;line-height:21px;margin-bottom:15px}
.contact address{font-size:15px}
}
.stays .stay-section-title{font-size:22px;font-weight:700}
.class-content ul ul li{font-weight:400}
.class-content li strong a{font-weight:700}
.legal-surface h1,.confirmation h1{color:#1d3f63}
.search .result-count{color:#2899c1}
/* Gallery mosaic measured on the original desktop view. */
@media(min-width:761px){.gallery-item:nth-child(n){grid-row:auto;grid-column:auto}.gallery-item:nth-child(5n+1){grid-row:span 2;grid-column:span 2}.page-locations .gallery{padding-top:10px;padding-bottom:0}.page-locations .gallery-track{grid-template-rows:repeat(2,272.5px)}}
@media(min-width:1000px){
.group-intro{height:663.75px;padding-top:18.4px;padding-bottom:0}.group-intro>.location-grid{position:relative;width:932px;grid-template-columns:656px 224px;gap:52px}.group-intro h2{width:509px;line-height:32.8px;margin:0 0 15px;font-size:22px}.group-intro p{line-height:23.40625px;margin-bottom:23.40625px}.group-intro .map-small{margin:18px auto 0;height:260px;width:174px}
.contact:not(.application)>.contact-grid{width:980px;grid-template-columns:475px 429px;gap:57px}.contact:not(.application) .contact-grid>div:first-child>h2{width:327px;margin-left:24px;line-height:30px}.contact:not(.application) address p{padding-left:85px}.contact:not(.application) address span{left:22px}.page-index .contact{padding-top:72px}.page-locations .contact{padding-top:92px}.page-classedemer .contact{padding-top:47px}.page-index .contact>.contact-grid{grid-template-columns:475px 421px;gap:47px}.page-classedemer .contact>.contact-grid{grid-template-columns:475px 421px;gap:41px}.page-classedemer .contact-grid>div+div{padding-top:14px}.page-locations .contact .form-row{gap:26px}.contact:not(.application) input{height:37px;min-height:37px;padding:7px 10px;color:black}.contact:not(.application) input[type=tel]{width:220px}.contact:not(.application) input[type=date]{width:186px}.contact:not(.application) .field{margin-bottom:14px}.contact:not(.application) .field>input,.contact:not(.application) .field>textarea{margin-top:5px}.contact:not(.application) .choice input{width:13px;height:13px;min-height:13px}.contact:not(.application) .choice{font-size:16px}.contact:not(.application) .contact-grid>div+div>h2{min-height:0;line-height:30px;margin-bottom:14px}.contact:not(.application) .reply{width:236px;min-height:50px;margin:0 auto 20px;padding:8px 10px;background:#f15fbd;clip-path:polygon(3% 0,100% 5%,96% 100%,0 93%);transform:rotate(2deg);font-style:italic}.page-index .contact .reply{width:220px;min-height:48px;transform:rotate(-4.5deg);margin-bottom:16px}.page-classedemer .contact .reply{visibility:hidden;height:42px;min-height:42px;margin:0}.page-classedemer .contact textarea{height:189px}
}
@media(min-width:1000px){.group-intro{height:653.75px}.page-locations .availability{min-height:854px}.contact:not(.application) .reply{clip-path:none;background:url('/assets/cartouche-reponse.svg') center/100% 100% no-repeat;font-style:normal}.page-index .contact .reply{font-style:italic}.group-intro .download{position:absolute;left:695px;top:300px;width:222px;text-align:center;transform:rotate(-5deg)}}
/* Independent entrance keyframes, matching the observed effect parameters. */
.motion-enabled [data-motion=reference-grow].has-entered{animation-name:reference-grow}
.motion-enabled [data-motion=reference-tilt].has-entered{animation-name:reference-tilt}
.motion-enabled [data-motion=reference-bounce].has-entered{animation-name:reference-bounce}
.motion-enabled [data-motion=reference-bounce-top].has-entered{animation-name:reference-bounce-top}
.motion-enabled [data-motion=reference-arc-left].has-entered{animation-name:reference-arc-left;transform-origin:50% 100%}
.motion-enabled [data-motion=reference-arc-right].has-entered{animation-name:reference-arc-right;transform-origin:50% 100%}
.motion-enabled [data-motion=reference-arc-top].has-entered{animation-name:reference-arc-top;transform-origin:50% 100%}
.motion-enabled [data-motion=reference-flip].has-entered{animation-name:reference-flip}
@keyframes reference-grow{from{opacity:0;transform:var(--rest-transform) scale(.85)}to{opacity:1;transform:var(--rest-transform)}}
@keyframes reference-tilt{from{opacity:0;transform:var(--rest-transform) translateX(-35px) rotate(-12deg)}to{opacity:1;transform:var(--rest-transform)}}
@keyframes reference-bounce{0%{opacity:0;transform:var(--rest-transform) scale(.3)}55%{opacity:1;transform:var(--rest-transform) scale(1.08)}75%{transform:var(--rest-transform) scale(.96)}100%{transform:var(--rest-transform)}}
@keyframes reference-bounce-top{0%{opacity:0;transform:var(--rest-transform) translateY(-55px)}55%{opacity:1;transform:var(--rest-transform) translateY(9px)}75%{transform:var(--rest-transform) translateY(-4px)}100%{transform:var(--rest-transform)}}
@keyframes reference-arc-left{from{opacity:0;transform:perspective(900px) rotateY(-65deg) rotateZ(-12deg) translateX(-80px)}to{opacity:1;transform:var(--rest-transform)}}
@keyframes reference-arc-right{from{opacity:0;transform:perspective(900px) rotateY(65deg) rotateZ(12deg) translateX(80px)}to{opacity:1;transform:var(--rest-transform)}}
@keyframes reference-arc-top{from{opacity:0;transform:perspective(900px) rotateX(65deg) translateY(-70px)}to{opacity:1;transform:var(--rest-transform)}}
@keyframes reference-flip{from{opacity:0;transform:var(--rest-transform) perspective(700px) rotateX(-60deg)}to{opacity:1;transform:var(--rest-transform)}}
.class-content li a{font-weight:700}
.error-surface{height:850px;padding:263px 24px 0;background:url('/assets/plage-dunes-confirmation.webp') center/cover no-repeat}.error-card{width:min(750px,100%);height:305px;border-radius:15px;background:#ffffff30;backdrop-filter:blur(10px);margin:auto;padding:59px 20px 30px;text-align:center}.error-card h1{font-size:47px;color:#1d3f63;line-height:65.8px;margin:0 0 34px}.error-card p{font-size:18px;line-height:25.2px;color:#10395d;margin:0 0 35px}.error-card .button{display:inline-block;width:200px;font-size:14px;font-weight:400;padding:10px;background:#143d5f;color:white;text-decoration:none}
@media(max-width:760px){.error-surface{height:650px;padding:150px 18px 0}.error-card{height:auto;min-height:305px;padding:40px 18px}.error-card h1{font-size:32px;line-height:1.4}.error-card p{font-size:16px}}
.group-brochure{display:flex;flex-direction:column;align-items:center;text-decoration:none;font:400 14px/1.4 Montserrat,Arial,sans-serif}.group-brochure img{width:198px;height:198px;object-fit:contain}.group-brochure span{display:block;text-align:center}
@media(max-width:999px){.group-brochure{margin:25px auto;width:222px}}
.text-slides{background:#193f61}.slide-prev,.slide-next{font-size:0;width:40px;height:50px;left:26px;top:calc(50% - 25px);padding:0}.slide-next{left:auto;right:26px}.slide-prev:before,.slide-next:before{content:'';display:block;width:25px;height:25px;border-top:2px solid #ffffffa6;border-right:2px solid #ffffffa6;transform:rotate(-135deg);margin:auto}.slide-next:before{transform:rotate(45deg)}.slide-copy{transition:opacity .6s ease}.slide-copy.is-changing{transform:none}.review-slide{animation-duration:1.2s}
@media(min-width:761px){.class-photo{margin-top:66.8125px;margin-bottom:79px}.text-slides{margin-bottom:91px}}

/* The beach label has separate graphic and text rotations in the reference.
   Its anchor belongs to the whole section, independently of paragraph height. */
.location-beach-sticker{position:absolute;left:calc(50% + 57px);bottom:15px;width:291px;height:84px;z-index:2;color:white}
.location-beach-sticker:before{content:"";position:absolute;left:28px;top:0;width:235px;height:84px;background:url('/assets/cartouche-plage.svg') center/100% 100% no-repeat;transform:rotate(1deg);filter:drop-shadow(2px 2px 7px rgb(0 0 0 / .82))}

.location-beach-sticker-text{position:absolute;left:0;top:9px;width:291px;height:65.59375px;transform:rotate(2deg);text-align:center;font:italic 700 22px/32.796875px Montserrat,Arial,sans-serif}
.location-beach-sticker-text span{display:block}
@media(max-width:999px){.location-beach-sticker{position:relative;left:auto;bottom:auto;width:min(291px,calc(100% - 36px));margin:18px auto 0}.location-beach-sticker:before{left:50%;transform:translateX(-50%) rotate(1deg);max-width:100%}.location-beach-sticker-text{width:100%}}
