/* Identité 2iles : composants de la template d’origine, nouvelles couleurs. */
:root {
  --color-brand:#e84d0e;
  --color-orange:#e84d0e;
  --color-blue:#302b28; /* alias historique : texte foncé neutre */
  --color-blue-mid:#756a63;
  --color-lighter:#fff2eb;
  --color-action:#b43b09; /* petites actions blanches : contraste renforcé */
  --swiper-theme-color:#e84d0e;
}
[hidden] {display:none!important}
body {background:#e84d0e;color:#302b28}
button,input,select {font:inherit}
button,a,input,select {touch-action:manipulation}
button {cursor:pointer}
:focus-visible {outline:3px solid #88411e;outline-offset:4px}
.skipLink {position:fixed;left:15px;top:-100px;z-index:100001;background:white;color:#302b28;padding:15px}
.skipLink:focus {top:10px}
.navBar {background:#e84d0e}
.navBar .navBarContent:after {opacity:.45}
.navBar .topCenterLogoWrapper .logoHeaderLink {transform:none;padding-top:12px;padding-bottom:12px}
.brand2iles {display:inline-block;color:white;text-align:center;font-family:'lato',Arial,sans-serif;font-size:32px;font-weight:900;line-height:.85;letter-spacing:-2px}
.brand2iles>span {font-family:'lato-light',Arial,sans-serif;font-weight:300}
.brand2iles small {display:block;font-size:8px;line-height:1.7;letter-spacing:3px;padding-left:3px;margin-top:4px}
.menuTop .btn {background:transparent;color:#fff;font-size:13px;letter-spacing:0}
.menuWrapper {box-shadow:0 10px 30px #302b2820}
.menuWrapper>ul {padding:0 20px;max-width:1300px;gap:18px}
.menuWrapper>ul>li {min-width:0}
.menuWrapper li .menuGroupLabel {background:#fff2eb;color:#8f300b;font-weight:700}
.menuWrapper li ul a:hover {border-color:#e84d0e;color:#8f300b}
#menu-toggle.opened i,#menu-toggle.opened i:after {background:#302b28}
.heroPhoto {width:100%;height:100%;object-fit:cover}
.homeHeroSection:before {background:linear-gradient(180deg,#30251f65,#211c1930 50%,#211c1960)}
.homeHeroSection .sectionContentWrapper {min-height:min(780px,90svh);padding-top:160px}
.heroSection h1 {font-family:'lato-light',Arial,sans-serif;font-weight:300}
.sectionHeader {padding:45px 0 25px;margin-bottom:20px}
.titreFiletWrapper h2 {color:#e84d0e;font-size:clamp(23px,3vw,32px)}
.sectionIntro {font-size:17px;color:#655952;max-width:680px;margin:18px auto 0!important;line-height:1.5}
.titreFiletWrapper h2 strong:before,.titreFiletWrapper h2 strong:after {background:#e7c8b9}
.destinationsGridFour .formulaCard>a {padding-bottom:0;height:100%;overflow:hidden}
.formulaCard .cardTitle {font-size:20px;font-family:'lato',Arial,sans-serif;font-weight:700}
.formulaCard .cardTitleWrapper {padding:22px}
.formulaCard p {font-size:16px;line-height:1.4;margin:12px 0!important}
.formulaLink {display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:700;color:#94320b}
.formulaLink img {width:20px;height:20px;aspect-ratio:auto!important;object-fit:contain}
.formulaCard.card img {aspect-ratio:2/1}
.card>a {border-color:#d7cec8}
.cardSejour .cardImage:before {background:linear-gradient(0deg,#241a15bd,transparent 50%)}
.cardDetails {font-size:13px;line-height:1.5;margin-top:10px;color:#655952}
.cardTag {display:inline-block;border-top:1px solid #eddfd7;margin-top:10px;padding-top:8px;font-size:12px;color:#94320b;line-height:1.3}
.bestSellerBadge {position:absolute;z-index:2;left:12px;top:12px;background:#fff1e7;color:#87300e;padding:7px 10px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}
.yellowStars {color:#9e410e;letter-spacing:0;font-size:10px;padding-right:0}
.yellowStars:after {display:none}
.productsSection {padding-bottom:15px}
.productsSection:nth-of-type(even) {background:#fffaf7}
.allOffers {text-align:center;margin:55px 0 25px}
.allOffers .btn {font-size:13px;letter-spacing:1px;padding:13px 20px;color:#87300e;border-color:#dc865f}
.allOffers .btn:hover {background:#e84d0e;color:white}
.offerCount {font-size:12px;letter-spacing:0}
.productsSwiper {margin-left:30px;margin-right:30px}
.productsSwiper .swiper-button-next {right:-38px}
.productsSwiper .swiper-button-prev {left:-38px}
.productsSwiper button {border:0;background:none;color:#9a350d;padding:0}
.productsSwiper .swiper-pagination-bullet-active {background:#e84d0e}
.productsSwiper .swiper-button-disabled {visibility:hidden}
.listingHero {position:relative;background:#453a32;padding-top:85px;color:#fff;isolation:isolate}
.listingHero:before {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#251c17c9,#251c1750),var(--hero-image) center/cover}
.listingHero .sectionContentWrapper {padding-top:25px;padding-bottom:55px}
.listingHero h1 {font-size:clamp(28px,4vw,50px);font-family:'lato',Arial,sans-serif;font-weight:700;max-width:950px;line-height:1.1;margin-top:20px}
.listingHero p {max-width:740px;font-size:17px;line-height:1.6;margin-bottom:0}
.breadcrumbs {display:flex;flex-wrap:wrap;gap:10px;font-size:13px;line-height:1.5;margin-bottom:35px;color:#fff}
.breadcrumbs a {opacity:.85;text-underline-offset:4px}
.filtersSection {background:#fff2eb;border-bottom:1px solid #e8d5ca;padding:15px 0}
.filterToolbar {display:flex;align-items:center;justify-content:space-between;gap:18px}
.filterToggle {font-size:14px;letter-spacing:0;text-transform:none;padding:12px 18px;display:flex;gap:8px;align-items:center;background:white;border-color:#ca9e88;color:#81300d}
.filterToggle:hover {background:#fffaf7;color:#81300d;border-color:#b74112}
.filterIcon {font-size:25px;line-height:.5}
#results-status {font-size:14px;color:#5d4b41;text-align:right;line-height:1.4}
.filterColumns {display:grid;gap:25px;margin-top:28px;grid-template-columns:repeat(4,minmax(0,1fr))}
.filterColumns fieldset {min-width:0;border:0;padding:0}
.filterColumns legend {font-size:15px;font-weight:700;margin-bottom:18px}
.filterChoice {display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.4;margin-bottom:14px;cursor:pointer}
.filterChoice input {accent-color:#b43b09;width:18px;height:18px;flex-shrink:0}
.budgetLabel {font-size:14px;display:block;line-height:1.4;margin-bottom:18px}
#budget-max {width:100%;accent-color:#b43b09;cursor:pointer}
.budgetBounds {font-size:11px;color:#655952;display:flex;justify-content:space-between;margin-top:8px}
.filterBottom {display:flex;align-items:center;justify-content:space-between;margin:25px 0 10px;gap:18px}
.filterBottom .btn {font-size:13px;letter-spacing:0;padding:12px 20px}
.btn.orange {background:#b43b09;border-color:#b43b09;color:white}
.btn.orange:hover {color:#9a350d;background:white;border-color:#9a350d}
.resetFilters {border:0;background:none;font-size:13px;text-decoration:underline;color:#6f3b21;line-height:1.5}
.activeChips {display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.activeChips:empty {display:none}
.activeChips button {border:1px solid #dbb39c;background:white;color:#794022;border-radius:30px;font-size:12px;padding:8px 12px}
.activeChips button span {margin-left:8px;font-size:16px}
.listingToolbar {display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:30px;padding-bottom:15px;font-size:14px}
.listingToolbar p {margin:0}
.listingToolbar label {display:flex;align-items:center;gap:10px;white-space:nowrap}
.listingToolbar select {background:white;color:#302b28;border:1px solid #c6bcb6;border-radius:6px;padding:10px;font-size:13px;max-width:180px}
.combineListing .productsSection .sectionHeader {text-align:left;padding-top:25px}
.combineListing .sectionIntro {margin-left:0!important}
.combineListing .titreFiletWrapper h2 {text-align:left;font-size:24px}
.combineListing .titreFiletWrapper h2 strong:before {display:none}
.resultsGrid {padding-top:15px}
.resultsGrid .card>a {height:100%}
.combinePagination {display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:35px 0}
.combinePagination button {font-size:13px;border:1px solid #d5b29e;border-radius:6px;background:white;color:#87300e;padding:10px 14px}
.combinePagination button[aria-current] {background:#b43b09;color:white;border-color:#b43b09}
.combinePagination button:disabled {opacity:.4;cursor:default}
.emptyState {text-align:center;padding:60px 25px;line-height:1.5}
.emptyState h2 {font-size:24px;line-height:1.3}
.emptyState p {font-size:17px}
.emptyState .btn {font-size:14px;letter-spacing:0}
.unavailable {padding-top:100px}
.productSummary {display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:55px;padding-top:50px}
.productSummary h2 {font-size:30px;line-height:1.25}
.productSummary p {font-size:16px;line-height:1.6}
.demoNote {font-size:12px!important;color:#72645c;margin-top:0!important}
.productSummary h2 {margin-top:22px!important}
.itinerary {list-style:none;padding:0;margin:30px 0}
.itinerary li {display:flex;gap:18px;padding:20px 0;border-bottom:1px solid #e3d8d1}
.stepNumber {display:grid;place-items:center;border-radius:50%;width:40px;height:40px;flex-shrink:0;background:#fff0e6;color:#94320b;font-size:18px;font-weight:700}
.itinerary h3 {font-size:23px;margin:0;line-height:1.2}
.itinerary p {margin:9px 0 0!important}
.combinePrice {position:sticky;top:25px;align-self:start;border:1px solid #d3beb0;border-top:4px solid #e84d0e;border-radius:10px;padding:25px}
.combinePrice>strong {display:block;color:#b43b09;font-size:40px;line-height:1.3;margin-top:8px}
.combinePrice>.btn {display:block;width:100%;font-size:15px;letter-spacing:0;padding:15px 10px}
.combinePrice>a {display:block;font-size:13px;line-height:1.5;margin-top:20px}
.combinePrice #offer-feedback {font-size:13px;background:#fff2eb;padding:12px;border-radius:6px}
.productSummary details {margin:25px 0}
.productSummary details>summary {font-size:21px;color:#85350f}
.agenceWrapper {padding-top:65px;padding-bottom:65px}
.footer {background:#e84d0e;color:#302016;padding-bottom:30px}
.footer .brand2iles {color:#fff;font-size:58px;margin-bottom:25px}
.footerMainLine {border-color:#9e360b}
.footerMainLine a {color:#302016}
.footerMainLine .socialNetworkLinks a {color:#302016}
.footerLinks {font-weight:700;font-size:13px}
.footerLinksSep {color:#6d2f13}
.footerBottom {font-size:12px;line-height:1.5}
.noScript {background:white;color:#302b28;padding:30px}
.imageUnavailable {background:#f2e4d8;color:#6d3c20;font-size:14px}
@media(min-width:760px) {.menuWrapper>ul>li:not(:first-child){margin-left:0}.menuWrapper>ul>li{flex:1}.menuWrapper li ul a {font-size:14px}}
@media(max-width:991px) {.filterColumns{grid-template-columns:repeat(2,minmax(0,1fr))}.productsSwiper{margin:0}.productSummary{gap:25px}.homeHeroSection .sectionContentWrapper{min-height:72svh}}
@media(max-width:759px) {.navBar .navBarContent{justify-content:center}.navBar .logoHeaderLink{padding:13px}.brand2iles{font-size:28px}.menuWrapper>ul{padding:55px 15px 15px}.menuWrapper li ul a{padding:12px}.listingHero{padding-top:70px}.breadcrumbs{font-size:12px;margin-bottom:25px}.filterToolbar{align-items:flex-start}.filterToggle{font-size:12px;padding:11px 12px}.filterColumns{gap:25px 18px}.listingToolbar{flex-direction:column;align-items:flex-start}.listingToolbar label{width:100%;justify-content:space-between}.productSummary{grid-template-columns:1fr}.combinePrice{position:static;grid-row:1}.sectionHeader{padding-top:30px}.cardDestination.card img{aspect-ratio:2/1}.sectionIntro{font-size:15px}.homeHeroSection .sectionContentWrapper{min-height:75svh;padding:115px 0 95px}.productsSwiper .swiper-pagination{bottom:-28px}.allOffers{margin-top:45px}.footer{padding-top:40px}.footerMainLine p{line-height:1.7}}
@media(max-width:380px) {.filterColumns{grid-template-columns:1fr}.filterToolbar{flex-direction:column;gap:12px}.filterBottom{align-items:flex-start;flex-direction:column}.filterToggle{font-size:12px}.sectionContentWrapper{padding-left:18px;padding-right:18px}}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Retouches du header et du footer demandées. */
.navBar .logoHeaderLink,.navBar .logoHeaderLink:hover {text-decoration:none}
.navBar .navBarContent:after {display:none}
.footer,.footerMainLine,.footerMainLine a,.footerMainLine .socialNetworkLinks a,.footerLinksSep,.footerLinks a,.footerBottom {color:#fff}
.footerMainLine {border-color:#fff}
.footer .logoFooter {display:flex;justify-content:center;text-align:center}
.footer .logoFooter>a {display:inline-block;text-decoration:none}
.agenceLogo {object-fit:contain;height:auto}
/* Les contrôles des sliders restent cliquables hors du cadre des images. */
.productsSwiper>.swiper-button-prev,.productsSwiper>.swiper-button-next {z-index:10;pointer-events:auto}
.swiperContentProduct>button {border:0;background:transparent;color:var(--color-brand);padding:0}
/* La fiche utilise les tailles, graisses et polices des feuilles d’origine.
   Ces règles ne changent que les couleurs et l’habillage des nouveaux contenus. */
.combineProduct .yellowStars {font-size:.5rem;letter-spacing:-.7px;padding:0 12px 0 0;color:inherit}
.combineProduct .yellowStars:after {display:block}
.combineProduct h1 .yellowStars {bottom:.6rem}
.combineProduct .heroSection:before {background:linear-gradient(0deg,rgba(48,43,40,.1),rgba(48,43,40,.5))}
.combineProduct .shareWrapper svg path {fill:var(--color-brand)}
.combineLead {display:flow-root}
.combineSmallPhoto {display:block;float:left;width:240px;max-width:38%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:10px;margin:0 25px 15px 0}
.combineLead p:first-of-type {margin-top:0}
.combineHotelLead {display:flow-root}
.combineHotelLead h3 {line-height:1.4}
.combineHotel .product-rich-text h3 {margin-top:25px}
.combineProduct #demo-reservation {font-size:13px;line-height:1.4;margin-top:15px}
.affichetteFooterRight img {width:140px;height:auto}
@media(min-width:760px){.combineProduct h1 .yellowStars{font-size:1rem}}
@media(max-width:600px){.combineSmallPhoto{float:none;width:100%;max-width:100%;margin:0 0 20px}.combineProduct .sectionProductContentWrapper .sejourPriceColumn{margin-bottom:35px}}

/* Galeries de contenu compactes, sans la hauteur fixe des attributs HTML. */
.combineProduct .swiperContentProduct img {height:auto;aspect-ratio:16/10;max-height:240px;object-fit:cover}
.combineProduct .swiperContentProduct {margin-top:30px;margin-bottom:55px}
.combineProduct .shareWrapper ul a,.combineProduct .shareWrapper ul a:hover {color:#e84d0e}
.combineProduct .shareWrapper svg path {fill:#e84d0e;fill-opacity:1}
/* Une ligne de présentation par hôtel ; les informations détaillées sont repliées. */
.combineProduct .combineHotel {margin-top:0}
.combineProduct details.hotelAccordion {border:0;border-top:1px solid #e7c8b9;border-radius:0;margin:0}
.combineProduct .combineHotel:last-child details.hotelAccordion {border-bottom:1px solid #e7c8b9}
.combineProduct .hotelSummary {display:grid;grid-template-columns:170px minmax(0,1fr) auto;align-items:center;gap:20px;padding:25px 0;list-style:none;cursor:pointer;font-size:20px;font-weight:400;color:var(--color-blue)}
.combineProduct .hotelSummary::-webkit-details-marker {display:none}
.combineProduct .hotelSummary:after {display:none}
.combineProduct .hotelSummary:hover {background:transparent}
.combineProduct .hotelThumbnail {display:block;width:170px;height:108px;object-fit:cover;border-radius:10px}
.combineProduct .hotelSummaryInfo {display:flex;flex-direction:column;gap:12px;min-width:0}
.combineProduct .hotelStage {color:#b43b09;font-size:20px;line-height:1.25}
.combineProduct .hotelName {font-weight:700;line-height:1.3}
.combineProduct .hotelName .yellowStars {color:#e84d0e}
.combineProduct .hotelBoard {font-size:13px;line-height:1.4}
.combineProduct .hotelDescriptionToggle {border:1px solid #b43b09;border-radius:6px;background:#b43b09;color:#fff;padding:11px 13px;line-height:1.3;font-size:13px;font-family:'lato',Arial,sans-serif;white-space:nowrap}
.combineProduct .hotelDescriptionToggle:before {content:'⌄';display:inline-block;margin-right:8px;transition:transform .2s}
.combineProduct .hotelAccordion[open] .hotelDescriptionToggle:before {transform:rotate(180deg)}
.hotelAccordion .whenOpen,.hotelAccordion[open] .whenClosed {display:none}
.hotelAccordion[open] .whenOpen {display:inline}
.combineProduct .hotelAccordion>.detailsContentWrapper {padding:0 0 25px;border-top:0;font-size:20px;line-height:1.4}
.combineProduct .hotelAccordion>.detailsContentWrapper .product-rich-text h3:first-child {margin-top:0}
.combineProduct .hotelAccordion .swiperContentProduct {margin-left:35px;margin-right:35px}
/* Le QR reste dans l’affichette de partage/impression, sans cercle décoratif. */
.affichette .affichetteMidRowRight .stampWrapper {display:flex;align-items:center;justify-content:center;min-height:100px}
.affichette .stampWrapper .qrCodeWrapper {position:static;transform:none}
@media(max-width:1100px){.combineProduct .hotelSummary{grid-template-columns:140px minmax(0,1fr);gap:15px}.combineProduct .hotelThumbnail{width:140px;height:95px;grid-row:1 / 3}.combineProduct .hotelDescriptionToggle{grid-column:2;justify-self:start}.combineProduct .hotelSummaryInfo{gap:9px}}
@media(max-width:600px){.combineProduct .swiperContentProduct img{max-height:200px}.combineProduct .hotelSummary{grid-template-columns:105px minmax(0,1fr);gap:12px;padding:20px 0}.combineProduct .hotelThumbnail{width:105px;height:85px;grid-row:1}.combineProduct .hotelStage{font-size:16px}.combineProduct .hotelName{font-size:17px}.combineProduct .hotelDescriptionToggle{grid-column:1 / -1;justify-self:stretch;text-align:center}.combineProduct .hotelAccordion .swiperContentProduct{margin-left:0;margin-right:0}}

/* Repères par enseigne : filtres et index compact, sans sections de produits dédiées. */
.chainFilterOptions {display:flex;flex-wrap:wrap;gap:12px 30px}
.chainFilterOptions .filterChoice {margin-bottom:0}
.chainCount {font-size:12px;color:#756a63}
.chainFilterOptions .filterChoice:has(input:disabled) {opacity:.55;cursor:default}
.chainDirectorySection {padding-top:22px;padding-bottom:0}
.chainDirectory {border:1px solid #e7c8b9;border-radius:10px;margin:0;background:#fffaf7}
.chainDirectory>summary {display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:18px;font-weight:700;padding:17px 55px 17px 20px;color:#8f300b}
#chain-directory-count {font-size:12px;font-weight:400;color:#756a63}
.chainDirectoryContent {padding:0 20px 20px}
.chainDirectoryContent>p {font-size:14px;color:#655952;margin:15px 0!important;line-height:1.5}
.chainCategories {display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #ecd8cc;padding-top:18px}
.chainCategories button {border:1px solid #cfa88e;border-radius:30px;background:white;color:#87300e;padding:9px 15px;font-size:13px}
.chainCategories button[aria-pressed="true"] {background:#b43b09;border-color:#b43b09;color:white}
.chainDirectoryOptions {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.chainDirectoryOptions button {display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;border:1px solid #dec5b6;border-radius:8px;padding:15px;background:white;color:#593b29;text-align:left;font-size:14px;line-height:1.3}
.chainDirectoryOptions button[aria-pressed="true"] {border-color:#b43b09;background:#fff0e6;box-shadow:inset 0 0 0 1px #b43b09;color:#8f300b}
.chainOfferCount {font-size:12px;color:#756a63}
.chainDirectoryOptions button:disabled {opacity:.5;cursor:default}
@media(max-width:759px){.chainDirectoryOptions{grid-template-columns:repeat(2,minmax(0,1fr))}.chainFilterOptions{flex-direction:column;gap:14px}.chainDirectory>summary{font-size:16px}}
@media(max-width:380px){.chainDirectoryOptions{grid-template-columns:1fr}}

/* Choix du parcours : nombre d’îles et destinations incluses dans le combiné. */
.filterIslandCount,.filterDestinations {grid-column:1 / -1}
.facetChoices {display:flex;flex-wrap:wrap;gap:12px 28px}
.facetChoices .filterChoice {margin-bottom:0}
.filterDestinations legend {margin-bottom:4px}
.filterHelp {margin:0 0 18px!important;font-size:13px;color:#655952;line-height:1.5}
.destinationFilterGroups {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.destinationFilterGroup h3 {font-family:'lato',Arial,sans-serif;font-size:14px;font-weight:700;color:#94320b;line-height:1.4;margin:0 0 14px}
.destinationFilterGroup .filterChoice {align-items:flex-start;margin-bottom:12px}
.destinationFilterGroup .filterChoice input {margin-top:1px}
.facetChoices .filterChoice:has(input:disabled),.destinationFilterGroup .filterChoice:has(input:disabled) {opacity:.5;cursor:default}
@media(max-width:991px){.destinationFilterGroups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.destinationFilterGroups{grid-template-columns:1fr}.facetChoices{gap:12px 20px}}

/* Catégories de combinés : même largeur que les offres, présentation distincte des régions. */
.formulesSection {padding-bottom:30px}
.formulaSwiper .formulaCard {height:100%}
.formulaSwiper .formulaCard>a {display:flex;flex-direction:column;height:100%;padding:0;overflow:hidden;background:#fff;border-color:#dfc5b6;border-radius:10px}
.formulaSwiper .formulaCard .cardImage {flex:none}
.formulaSwiper .formulaCard .cardImage>img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.formulaSwiper .formulaCard .cardImage:before {background:linear-gradient(0deg,rgba(35,25,19,.68),transparent 50%)}
.formulaFormat {position:absolute;z-index:2;top:12px;left:12px;background:#fff2eb;color:#8f300b;border-radius:6px;padding:7px 10px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;line-height:1.25}
.formulaCount {position:absolute;z-index:2;bottom:13px;left:16px;right:16px;color:#fff;font-size:13px;line-height:1.3;font-weight:700}
.formulaSwiper .formulaCard .cardTitleWrapper {display:flex;flex-direction:column;flex:1;padding:17px}
.formulaSwiper .formulaCard .cardTitle {font-size:18px;line-height:1.25;font-weight:700;min-height:2.5em;margin:0}
.formulaSwiper .formulaCard p {font-size:14px;line-height:1.45;margin:9px 0 14px!important}
.formulaSwiper .formulaLink {margin-top:auto;border-top:1px solid #eddfd7;padding-top:12px;font-size:13px;line-height:1.3}
.formulaSwiper .formulaLink img {width:17px;height:17px;aspect-ratio:auto!important;transform:none}
.formulaSwiper .swiper-pagination {bottom:-28px}
@media(max-width:759px){.formulesSection{padding-bottom:45px}.formulaSwiper .formulaCard .cardTitle{font-size:17px}}

/* Meme structure et interaction que les accordeons de chambres du Meilleur. */
.combineProduct .voyageFacts {margin:0 0 20px;font-size:16px}
.combineProduct .combineHebergement details.hotelAccordion {border:1px solid var(--color-blue-mid);border-radius:10px;margin:18px 0;overflow:hidden}
.combineProduct .combineHebergement details>summary {display:block;padding:20px 52px 20px 20px;font-size:18px;line-height:1.4}
.combineProduct .combineHebergement .hotelStage {display:block;margin-bottom:5px;font-size:14px;font-weight:400}
.combineProduct .combineHebergement .hotelName {display:block;font-size:18px}
.combineProduct .combineHebergement .hotelBoard {display:block;margin-top:6px;font-size:14px;font-weight:400}
.combineProduct .combineHebergement .detailsContentWrapper {padding:20px;border-top:1px solid var(--color-blue-mid);font-size:16px;line-height:1.6}
.combineProduct .combineHebergement .detailsContentTxt {min-width:0}
.combineProduct .combineHebergement .detailsContentImg {display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.combineProduct .combineHebergement .detailsContentImg img {width:calc(50% - 6px);height:auto;object-fit:cover;align-self:flex-start}
/* Le fil d'Ariane appartient au bandeau, juste au-dessus du filet blanc. */
.combineProduct .sejourHeroSection {display:grid;grid-template-rows:1fr auto;min-height:400px;padding-bottom:60px}
.combineProduct .sejourHeroSection:after {content:'';left:var(--side-margin);right:var(--side-margin);bottom:60px;height:1px;background:#fff}
.combineProduct .sejourHeroSection>.productHeroContent {width:100%;min-height:0;flex-direction:column;align-items:stretch;justify-content:center;padding:90px 20px 25px;gap:18px}
.combineProduct .productHeroContent>.sectionContent {align-self:center;max-width:100%;min-width:0}
.combineProduct .productHeroBreadcrumb {position:relative;z-index:5;margin:0 var(--side-margin);padding:0 0 12px;border:0;min-width:0;text-align:left;justify-self:stretch}
.combineProduct .productHeroBreadcrumb .breadcrumbs {padding:0;margin:0;color:#fff;font-size:13px;gap:6px 10px;overflow-wrap:anywhere;justify-content:flex-start;text-align:left}
.combineProduct .productHeroBreadcrumb .breadcrumbs a,.combineProduct .productHeroBreadcrumb .breadcrumbs span {color:#fff;opacity:1}
.combineProduct .swiperHeroProduct,.combineProduct .swiperHeroProduct .swiper,.combineProduct .swiperHeroProduct .swiper-wrapper,.combineProduct .swiperHeroProduct .swiper-slide,.combineProduct .swiperHeroProduct img {height:100%}
@media(max-width:600px){.combineProduct .sejourHeroSection>.productHeroContent{padding:90px 16px 20px;gap:12px}.combineProduct .productHeroBreadcrumb .breadcrumbs{font-size:12px;gap:4px 8px}}
@media(max-width:600px){.combineProduct .combineHebergement details>summary{padding:16px 44px 16px 16px}.combineProduct .combineHebergement .hotelName{font-size:16px}.combineProduct .combineHebergement .detailsContentWrapper{padding:16px}.combineProduct .combineHebergement .detailsContentImg img{width:100%}}

/* Fiches des produits du voyage : meme ordre que le Meilleur des Iles. */
.combineProduct .voyageProductDetails {min-width:0}
.combineProduct .voyageDescriptionSection {margin:20px 0}
.combineProduct .voyageDescriptionSection h3,.combineProduct .voyageRooms>h3 {font-size:22px;line-height:1.3;margin:25px 0 14px;color:var(--color-orange)}
.combineProduct .voyageProductDetails .product-rich-text h2,.combineProduct .voyageProductDetails .product-rich-text h3 {font-size:22px;line-height:1.3;color:var(--color-orange)}
.combineProduct .voyageProductDetails .product-rich-text h4 {font-size:19px;line-height:1.3;color:var(--color-orange)}
.combineProduct .voyageProductDetails .product-rich-text p {margin:0 0 12px}
.combineProduct .voyageProductDetails .product-rich-text ul,.combineProduct .voyageProductDetails .product-rich-text ol {margin:10px 0 16px;padding-left:24px}
.combineProduct .voyageProductDetails .product-rich-text li {margin:4px 0}
.combineProduct .voyageProductDetails .product-rich-text li>p {margin:0}
.combineProduct .voyageDescriptionSection:first-child {margin-top:0}
.combineProduct .voyageDescriptionSection .product-rich-text>p:first-child {margin-top:0}
.combineProduct .voyageRooms {margin-top:25px}
.combineProduct .voyageRoomAccordions>details {margin:16px 0;border:1px solid var(--color-blue-mid);border-radius:10px;overflow:hidden}
.combineProduct .voyageRoomAccordions>details>summary {font-size:16px;font-weight:700;padding:16px 44px 16px 16px}
.combineProduct .voyageRoomAccordions>details>.detailsContentWrapper {padding:16px;font-size:16px;line-height:1.6}
.combineProduct .voyageGallery {margin:20px 0 26px;min-width:0;max-width:100%}
.combineProduct .voyageGallery .swiper {width:100%;overflow:hidden}
.combineProduct .voyageGallery .swiper-slide {min-width:0}
.combineProduct .voyageGallery .swiper-slide>a {display:block;text-decoration:none}
.combineProduct .voyageGallery .swiper-slide img {display:block;width:100%;height:auto;aspect-ratio:16/10;max-height:160px;object-fit:cover;border-radius:10px;align-self:start}
.combineProduct .voyageGalleryGrid .swiper-wrapper {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.combineProduct .voyageGalleryControls {display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px}
.combineProduct .voyageGalleryControls button {display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;padding:0;background:#fff;color:var(--color-brand);font-size:26px;line-height:1;cursor:pointer}
.combineProduct .voyageGalleryControls button.swiper-button-disabled {opacity:.35;cursor:default}
.combineProduct .voyageGalleryPagination {display:flex;justify-content:center;gap:5px;width:auto}
.combineProduct .voyageGalleryPagination .swiper-pagination-bullet {margin:0}
@media(min-width:760px){.combineProduct .sejourHeroSection{min-height:600px}}
@media(max-width:759px){.combineProduct .voyageGalleryGrid .swiper-wrapper{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:479px){.combineProduct .voyageGalleryGrid .swiper-wrapper{grid-template-columns:1fr}.combineProduct .voyageGallery .swiper-slide img{max-height:155px}}
/* La grille de chambres globale ne doit pas comprimer une fiche voyage complete. */
.combineProduct .combineHebergement>details.hotelAccordion>.detailsContentWrapper,
.combineProduct .voyageRoomAccordions>details>.detailsContentWrapper {display:block}
.combineProduct .voyageProductDetails {width:100%}

/* Presentation generale choisie pour le package, avant Votre voyage. */
.combineProduct .productGeneralDescription {margin:0 0 36px}
.combineProduct .generalDescriptionSection {margin:0 0 24px}
.combineProduct .generalDescriptionSection>h3,.combineProduct .productGeneralDescription .product-rich-text h2,.combineProduct .productGeneralDescription .product-rich-text h3 {font-size:22px;line-height:1.3;color:var(--color-orange);margin:20px 0 14px}
.combineProduct .productGeneralDescription .product-rich-text h4 {font-size:19px;line-height:1.3;color:var(--color-orange)}
.combineProduct .productGeneralDescription .product-rich-text p {margin:0 0 12px}
.combineProduct .productGeneralDescription .product-rich-text ul,.combineProduct .productGeneralDescription .product-rich-text ol {margin:10px 0 16px;padding-left:24px}
.combineProduct .productGeneralDescription .product-rich-text li {margin:4px 0}

/* Photo principale et titres de fiche dans l'esprit du Meilleur des Iles. */
.combineProduct .generalMainPhoto {display:block;width:min(100%,760px);margin:0 auto 24px;text-align:center}
.combineProduct .generalMainPhoto img {display:block;width:100%;height:auto;max-height:460px;object-fit:contain;object-position:center;border-radius:10px}
.combineProduct .generalDescriptionSection>.productSectionTitle {font-size:clamp(28px,3.4vw,48px);line-height:1.15;color:var(--color-orange);margin:35px 0 22px;overflow:hidden}
.combineProduct .voyageDescriptionSection>.productSectionTitle,.combineProduct .voyageRooms>.productSectionTitle {font-size:clamp(24px,2.5vw,34px);line-height:1.2;color:var(--color-orange);margin:30px 0 18px;overflow:hidden}
.combineProduct .productSectionTitle>strong,.combineProduct .sectionProductContentWrapper>.sectionContent>.txt>h2>strong {display:inline-block;position:relative;max-width:100%;font-family:'lato',Arial,sans-serif;font-weight:700}
.combineProduct .productSectionTitle>strong:after {content:'';position:absolute;left:calc(100% + 15px);top:50%;width:100vw;height:1px;background:var(--color-orange)}
.combineProduct .sectionProductContentWrapper>.sectionContent>.txt>h2 {color:var(--color-orange)}
.combineProduct .sectionProductContentWrapper>.sectionContent>.txt>h2>strong:after {background:var(--color-orange)}
.affichette .posterHighlights {list-style:disc outside;margin:0;padding:0 0 0 20px;font-size:16px;line-height:1.35;overflow-wrap:anywhere}
.affichette .posterHighlights li {margin:0 0 6px}
.affichette .posterSummary {overflow-wrap:anywhere}
@media print {
  #print-product-poster .posterHighlights {font-size:inherit;line-height:1.2;margin:0;padding-left:4mm}
  #print-product-poster .posterHighlights li {margin:0 0 1mm}
  #print-product-poster .posterSummary {margin:0}
}

/* Photo visible sur chaque etape, y compris quand sa description est repliee. */
.combineProduct .combineHebergement details.hotelAccordion>summary {display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:18px}
.combineProduct .hotelStagePhoto,.combineProduct .hotelStagePhotoPlaceholder {display:block;width:140px;height:100px;object-fit:cover;border-radius:8px}
.combineProduct .hotelSummaryContent {min-width:0}
@media(max-width:600px){
  .combineProduct .combineHebergement details.hotelAccordion>summary {grid-template-columns:90px minmax(0,1fr);gap:12px}
  .combineProduct .hotelStagePhoto,.combineProduct .hotelStagePhotoPlaceholder {width:90px;height:76px}
}

/* Affichette : structure du Meilleur des Iles, parcours a la place de la photo. */
.affichetteItinerary .affichetteTopRow {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:stretch}
.affichetteItinerary .affichetteTopRow>div {width:auto;min-width:0}
.affichetteItinerary {--stage-count:5;--stage-photo-width:160px;--stage-photo-height:115px}
.affichetteItinerary[data-stage-count="2"] {--stage-count:2;--stage-photo-width:220px;--stage-photo-height:165px}
.affichetteItinerary[data-stage-count="3"] {--stage-count:3;--stage-photo-width:195px;--stage-photo-height:140px}
.affichetteItinerary[data-stage-count="4"] {--stage-count:4;--stage-photo-width:178px;--stage-photo-height:128px}
.affichetteItinerary .affichetteJourney {height:100%}
.affichetteItinerary .posterItinerary {display:grid;height:100%;grid-template-rows:repeat(var(--stage-count),minmax(0,1fr));gap:18px}
.affichetteItinerary .posterStage {display:grid;grid-template-columns:var(--stage-photo-width) minmax(0,1fr);align-items:center;gap:16px;break-inside:avoid}
.affichetteItinerary .posterStagePhoto,.affichetteItinerary .posterStagePhotoPlaceholder {display:block;width:var(--stage-photo-width);height:var(--stage-photo-height);object-fit:cover;border-radius:8px}
.affichetteItinerary .posterStageText {min-width:0;overflow-wrap:anywhere}
.affichetteItinerary .posterStage .hotelStage {display:block;color:var(--color-orange);font:700 18px/1.25 'lato',Arial,sans-serif;margin-bottom:6px}
.affichetteItinerary .posterStage .hotelName {display:block;font:700 16px/1.3 'lato',Arial,sans-serif}
.affichetteItinerary .posterStage .hotelBoard {display:block;font-size:13px;line-height:1.4;margin-top:6px}
.affichetteItinerary .posterStage .yellowStars {color:var(--color-orange)}
.affichetteItinerary .affichetteOffer {display:grid;grid-template-rows:minmax(290px,1fr) auto;gap:28px}
.affichetteItinerary .affichetteHeader {width:auto;padding:34px;display:flex;align-items:center}
.affichetteItinerary .affichetteHeader h1 {font-size:clamp(26px,3vw,38px)}
.affichetteItinerary .affichetteMidRowRight {display:grid;width:auto;padding:0;grid-template-columns:minmax(0,1fr) 200px;align-items:center;gap:20px;min-height:220px}
.affichetteItinerary .affichetteMidRowRight>div {width:auto}
.affichetteItinerary .affichetteMidRowRight .price {font-size:72px}
.affichetteItinerary .affichetteMidRowRight .pricePriceBase {max-width:none}
.affichetteItinerary .affichetteMidRowRight .stamp2iles {--stamp-qr-x:50%;--stamp-qr-y:50%;--stamp-qr-size:50%;display:grid;place-items:center;position:relative;width:200px;max-width:none;min-height:0;aspect-ratio:1;margin:0 auto}
.affichetteItinerary .stamp2iles .stamp {display:block;width:100%;height:100%;max-width:none;object-fit:contain}
.affichetteItinerary .stamp2iles .qrCodeWrapper {position:absolute;top:var(--stamp-qr-y);left:var(--stamp-qr-x);transform:translate(-50%,-50%);width:var(--stamp-qr-size);aspect-ratio:1;display:grid;place-items:center;background:#fff;padding:3px;box-sizing:border-box}
.affichetteItinerary .stamp2iles .qrCodeWrapper a,.affichetteItinerary .stamp2iles .qrCode,.affichetteItinerary .stamp2iles .qrCode svg {display:block;width:100%;height:100%}
@media(max-width:759px){
  .affichetteItinerary .affichetteTopRow {grid-template-columns:1fr;gap:24px}
  .affichetteItinerary .affichetteJourney {height:auto}
  .affichetteItinerary .posterItinerary {height:auto;grid-template-rows:none}
  .affichetteItinerary .affichetteOffer {grid-template-rows:minmax(210px,auto) auto}
  .affichetteItinerary .affichetteMidRowRight {min-height:160px}
  .affichetteItinerary .affichetteMidRowRight .price {font-size:46px;white-space:nowrap}
  .affichetteItinerary .posterStage {grid-template-columns:125px minmax(0,1fr);gap:14px}
  .affichetteItinerary .posterStagePhoto,.affichetteItinerary .posterStagePhotoPlaceholder {width:125px;height:95px}
  .affichetteItinerary .posterStage .hotelStage {font-size:17px}
  .affichetteItinerary .posterStage .hotelName {font-size:14px}
  .affichetteItinerary .affichetteHeader {padding:20px}
  .affichetteItinerary .affichetteHeader h1 {font-size:25px}
  .affichetteItinerary .affichetteMidRowRight {grid-template-columns:minmax(0,1fr) 120px}
  .affichetteItinerary .affichetteMidRowRight .stamp2iles {width:120px}
}
@media print {
  #print-product-poster .affichette.affichetteItinerary {--stage-photo-width:38mm;--stage-photo-height:27mm;--stage-title-size:11pt;--stage-hotel-size:9pt;--stage-board-size:8pt;height:100vh;min-height:0;padding:8mm;grid-template-rows:minmax(0,1fr) auto auto;gap:1.5mm}
  #print-product-poster .affichetteItinerary[data-stage-count="2"] {--stage-photo-width:60mm;--stage-photo-height:48mm;--stage-title-size:15pt;--stage-hotel-size:12pt;--stage-board-size:10pt}
  #print-product-poster .affichetteItinerary[data-stage-count="3"] {--stage-photo-width:50mm;--stage-photo-height:36mm;--stage-title-size:13pt;--stage-hotel-size:11pt;--stage-board-size:9pt}
  #print-product-poster .affichetteItinerary[data-stage-count="4"] {--stage-photo-width:44mm;--stage-photo-height:32mm;--stage-title-size:12pt;--stage-hotel-size:10pt;--stage-board-size:8.5pt}
  #print-product-poster .affichetteItinerary .affichetteTopRow {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr;gap:6mm;min-height:0;align-items:stretch}
  #print-product-poster .affichetteItinerary .affichetteTopRow>div {width:auto;min-height:0}
  #print-product-poster .affichetteItinerary .posterItinerary {height:100%;grid-template-rows:repeat(var(--stage-count),minmax(0,1fr));gap:3mm}
  #print-product-poster .affichetteItinerary .posterStage {grid-template-columns:var(--stage-photo-width) minmax(0,1fr);gap:3mm;min-height:0}
  #print-product-poster .affichetteItinerary .posterStagePhoto,#print-product-poster .affichetteItinerary .posterStagePhotoPlaceholder {width:var(--stage-photo-width);height:var(--stage-photo-height);min-height:0;max-height:none;border-radius:2mm}
  #print-product-poster .affichetteItinerary .posterStage .hotelStage {font-size:var(--stage-title-size);line-height:1.2;margin-bottom:1mm}
  #print-product-poster .affichetteItinerary .posterStage .hotelName {font-size:var(--stage-hotel-size);line-height:1.2}
  #print-product-poster .affichetteItinerary .posterStage .hotelBoard {font-size:var(--stage-board-size);line-height:1.2;margin-top:1mm}
  #print-product-poster .affichetteItinerary .posterStage .yellowStars {font-size:7pt}
  #print-product-poster .affichetteItinerary .affichetteOffer {display:grid;height:100%;grid-template-rows:minmax(0,1.1fr) minmax(0,1fr);gap:6mm}
  #print-product-poster .affichetteItinerary .affichetteHeader {width:auto;display:flex;min-height:0;padding:8mm;align-items:center}
  #print-product-poster .affichetteItinerary .affichetteHeaderInfos {gap:4mm}
  #print-product-poster .affichetteItinerary .affichetteHeader h1 {font-size:30pt;line-height:1.1}
  #print-product-poster .affichetteItinerary .affichetteHeader .smallCaps {font-size:10pt}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight {display:grid;width:auto;min-height:0;padding:0 3mm;grid-template-columns:minmax(0,1fr) 54mm;align-items:center;gap:4mm}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight>div {width:auto}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight .price {font-size:44pt;line-height:1.05}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight .priceOptionWrapper,#print-product-poster .affichetteItinerary .affichetteMidRowRight .pricePriceBase {font-size:10pt;line-height:1.2}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight .stamp2iles {width:54mm;height:54mm;min-height:0;margin:0 auto}
  #print-product-poster .affichetteItinerary .stamp2iles .stamp {width:100%;height:100%;max-height:none;max-width:none}
  #print-product-poster .affichetteItinerary .stamp2iles .qrCodeWrapper {width:var(--stamp-qr-size);height:auto;padding:1mm}
  #print-product-poster .affichetteItinerary .stamp2iles .qrCodeWrapper .qrCode,#print-product-poster .affichetteItinerary .stamp2iles .qrCodeWrapper .qrCode svg {width:100%;height:100%}
  #print-product-poster .affichetteItinerary .affichetteBottomRow {display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:6mm}
  #print-product-poster .affichetteItinerary .affichetteBottomLeft,#print-product-poster .affichetteItinerary .affichetteBottomRight {width:auto;padding:0}
  #print-product-poster .affichetteItinerary .agenceWrapper {grid-template-columns:25mm minmax(0,1fr)}
  #print-product-poster .affichetteItinerary .agenceBlock>.agenceContent {padding:2mm;gap:3mm;font-size:8pt}
  #print-product-poster .affichetteItinerary .agenceLogo {width:20mm;height:20mm}
  #print-product-poster .affichetteItinerary .affichetteFooter img {display:block;height:auto}
  #print-product-poster .affichetteItinerary .affichetteFooter {padding:2mm 0 0;height:19mm;align-items:flex-start}
}
@media print and (orientation:portrait) {
  #print-product-poster .affichette.affichetteItinerary {--stage-photo-width:34mm;--stage-photo-height:25mm;--stage-title-size:10pt;--stage-hotel-size:8pt}
  #print-product-poster .affichetteItinerary[data-stage-count="2"] {--stage-title-size:14pt;--stage-hotel-size:11pt;--stage-board-size:9pt}
  #print-product-poster .affichetteItinerary[data-stage-count="3"] {--stage-title-size:12pt;--stage-hotel-size:10pt;--stage-board-size:9pt}
  #print-product-poster .affichetteItinerary[data-stage-count="4"] {--stage-photo-width:37mm;--stage-photo-height:28mm;--stage-title-size:11pt;--stage-hotel-size:9pt}
  #print-product-poster .affichetteItinerary[data-stage-count="2"] .posterStage,
  #print-product-poster .affichetteItinerary[data-stage-count="3"] .posterStage {grid-template-columns:minmax(0,1fr);align-content:center;gap:3mm}
  #print-product-poster .affichetteItinerary[data-stage-count="2"] .posterStagePhoto,
  #print-product-poster .affichetteItinerary[data-stage-count="2"] .posterStagePhotoPlaceholder {width:100%;height:55mm}
  #print-product-poster .affichetteItinerary[data-stage-count="3"] .posterStagePhoto,
  #print-product-poster .affichetteItinerary[data-stage-count="3"] .posterStagePhotoPlaceholder {width:100%;height:36mm}
  #print-product-poster .affichetteItinerary .affichetteHeader {padding:6mm}
  #print-product-poster .affichetteItinerary .affichetteHeader h1 {font-size:26pt}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight {grid-template-columns:1fr;padding:0 4mm;gap:5mm;align-content:center}
  #print-product-poster .affichetteItinerary .affichetteMidRowRight .stamp2iles {margin:0 auto}
}

/* Page 404 : presentation du Meilleur des Iles, identite 2Iles. */
.error404TwoIles .error404Shade {
  background:linear-gradient(90deg,rgba(48,43,40,.28),rgba(48,43,40,.08) 48%,rgba(48,43,40,.28)),linear-gradient(180deg,rgba(48,43,40,.12),rgba(48,43,40,.42));
}
.error404TwoIles .error404Panel {background:rgba(48,43,40,.94);box-shadow:0 28px 80px rgba(33,28,25,.4)}
.error404TwoIles .error404Eyebrow {color:#ffb18d}
.error404TwoIles .error404Home {background:var(--color-action);border-color:var(--color-action);color:#fff}
.error404TwoIles .error404Actions .btn:hover,.error404TwoIles .error404Actions .btn:focus-visible {background:#fff;border-color:#fff;color:#302b28}
