/* Bessans, charte Bleu altitude (validée par le client le 13/09/2026), révisée le 18/10/2026.
   On garde l'identité validée : hero baigné de bleu qui se fond dans le bleu nuit, panneau arrondi
   des activités, cartes et blocs bleus, boutons vert-jaune, textes blancs sur bleu.
   Seule correction demandée par Laurent : le fond général entre les blocs devient clair (le bleu uni
   avec les ciels bleus des photos rendait le tout « plat » sur smartphone) et les textes grossissent.
   Mêmes couleurs l'été et l'hiver ; la saison change les photos et les contenus. */

@font-face{font-family:"Archivo";src:url(../fonts/archivo-latin.woff2) format("woff2");font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

body.bessans{
	/* Bleus de la charte validée */
	--bs-navy:#082d43;--bs-navy-2:#103d56;--bs-navy-3:#14455e;--bs-navy-line:#355e75;--bs-navy-deep:#061e30;
	--bs-on-navy:#f5fafc;--bs-on-navy-2:#bed4e1;--bs-sky:#81c8e5;
	--bs-accent:#dbea87;--bs-accent-hover:#ebf5b1;--bs-on-accent:#082d43;
	--bs-gradient:linear-gradient(155deg,#14455e 0%,#103d56 42%,#082d43 100%);
	--bs-shade:6 30 48;
	--bs-veil:12 15 18;--bs-navy-3-rgb:20 69 94;
	--bs-navy-rgb:8 45 67;--bs-navy-2-rgb:16 61 86;
	/* Été : fond clair légèrement chaud entre les blocs (seul changement de fond demandé) */
	--bs-bg:#f3f6f0;--bs-ink:#082d43;--bs-ink-2:#3d5d70;--bs-line:#d3ded6;--bs-link:#1b5f86;
	--bs-font:"Archivo",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
	--bs-gutter:clamp(20px,5vw,56px);--bs-radius:14px;--bs-radius-lg:28px;--bs-ease:cubic-bezier(.23,1,.32,1);
	--bs-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M200,64V168a8,8,0,0,1-16,0V83.31L69.66,197.66a8,8,0,0,1-11.32-11.32L172.69,72H88a8,8,0,0,1,0-16H192A8,8,0,0,1,200,64Z'/%3E%3C/svg%3E");
	background:var(--bs-bg);color:var(--bs-ink);font-family:var(--bs-font);font-size:17px;line-height:1.6;
	-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
	--wp--preset--color--base:var(--bs-bg);--wp--preset--color--base-2:var(--bs-navy-2);
	--wp--preset--color--contrast:var(--bs-ink);--wp--preset--color--contrast-2:var(--bs-ink-2);
	--wp--preset--color--primary:var(--bs-link);--wp--preset--color--accent:var(--bs-accent)
}

/* Hiver : même charte, version glacée. Bleus plus froids, accent bleu glace à la place du
   vert-jaune, fond clair glacé. La différence se voit sur les boutons, la pastille du sélecteur,
   les flèches et le fond, sans quitter la famille Bleu altitude. */
body.bessans.esdi-saison-hiver{
	--bs-navy:#0a2438;--bs-navy-2:#123350;--bs-navy-3:#173f60;--bs-navy-line:#2f5576;--bs-navy-deep:#06182a;
	--bs-navy-rgb:10 36 56;--bs-navy-2-rgb:18 51 80;--bs-navy-3-rgb:23 63 96;--bs-shade:6 24 42;
	--bs-on-navy-2:#c3d6e6;--bs-sky:#a9dcf3;
	--bs-accent:#bfe6f7;--bs-accent-hover:#dff3fb;--bs-on-accent:#0a2438;
	--bs-gradient:linear-gradient(155deg,#173f60 0%,#123350 42%,#0a2438 100%);
	--bs-bg:#e8f1f7;--bs-ink:#0a2438;--bs-ink-2:#3e5a70;--bs-line:#c9dae6;--bs-link:#1b5f86
}

/* Basculement de saison : révélation circulaire depuis le sélecteur (View Transitions). */
@view-transition{navigation:auto}
html.bs-season-vt::view-transition-old(root),html.bs-season-vt::view-transition-new(root){animation:none;mix-blend-mode:normal}
html.bs-season-vt::view-transition-old(root){z-index:1}
html.bs-season-vt::view-transition-new(root){z-index:2}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* Remises à zéro limitées à nos blocs, en spécificité basse (0,1,1) : elles battent le flux
   WordPress (0,1,0) sans écraser les marges propres aux composants. */
.bessans *{box-sizing:border-box}
.bessans .wp-site-blocks{padding:0}
body.bessans :where(.wp-site-blocks,.bs-main,[class^="bs-"],[class*=" bs-"])>*{margin-block-start:0}
.bessans [id]{scroll-margin-top:96px}
.bessans p{margin:0 0 1em}
.bessans figure{margin:0}
.bessans img{display:block;max-width:100%;height:auto}
.bessans a{color:inherit;font-size:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
.bessans :focus-visible{outline:3px solid var(--bs-link);outline-offset:3px}
.bessans :is(.bs-header,.bs-hero,.bs-navy,.bs-card,.bs-story,.bs-contact-inner,.bs-footer,.esdi-sticky,.esdi-rail-card) :focus-visible{outline-color:var(--bs-accent)}
.bessans .bs-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Typographie : sans empattement, titres affirmés en capitales comme la charte validée */
.bessans h1,.bessans h2,.bessans h3{font-family:var(--bs-font)!important;color:inherit;letter-spacing:-.015em;text-wrap:balance}
.bessans h1{font-size:clamp(40px,10.5vw,84px);font-stretch:94%;font-weight:760;line-height:1.02;text-transform:uppercase;margin:0 0 20px}
.bessans h2{font-size:clamp(30px,4vw,46px);font-stretch:96%;font-weight:720;line-height:1.08;margin:0 0 26px;max-width:24ch}
.bessans h3{font-size:clamp(21px,1.9vw,24px);font-stretch:100%;font-weight:680;line-height:1.2;margin:0}
.bessans .bs-eyebrow{font-size:15px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;color:var(--bs-sky)}
.bessans .bs-lead{font-size:clamp(18px,1.6vw,20px);line-height:1.55;max-width:40ch;margin:0}

/* Boutons : vert-jaune et contour bleu clair (charte validée) */
.bessans .wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 0}
.bessans .wp-block-button{margin:0}
.bessans .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 26px!important;border-radius:999px!important;border:1.5px solid var(--bs-accent)!important;background:var(--bs-accent)!important;color:var(--bs-on-accent)!important;font:650 16px/1.2 var(--bs-font)!important;text-decoration:none;white-space:nowrap;box-shadow:none!important;transition:transform 140ms var(--bs-ease),background-color 180ms ease,border-color 180ms ease}
.bessans .wp-block-button__link:active{transform:scale(.97)}
.bessans .is-style-outline .wp-block-button__link{background:transparent!important;color:var(--bs-ink)!important;border-color:var(--bs-ink)!important}
.bessans :is(.bs-hero,.bs-contact-inner,.bs-story,.bs-sheet) .is-style-outline .wp-block-button__link{background:rgb(var(--bs-shade)/.35)!important;color:var(--bs-on-navy)!important;border-color:var(--bs-sky)!important}

/* En-tête : blanc sur la photo, bleu nuit opaque dès que la photo est passée (fixe grâce au JS). */
.bessans .wp-site-blocks>header{position:absolute;top:0;left:0;right:0;z-index:30;background:none}
.bessans.admin-bar .wp-site-blocks>header{top:var(--wp-admin--admin-bar--height,32px)}
html.bs-js-header .bessans .wp-site-blocks>header{position:fixed;transition:background-color 220ms ease,box-shadow 220ms ease}
html.bs-solid .bessans .wp-site-blocks>header{background:rgb(var(--bs-navy-2-rgb)/.96);box-shadow:0 1px 0 var(--bs-navy-line),0 10px 30px rgb(var(--bs-shade)/.18)}
html.bs-menu-open .bessans .wp-site-blocks>header{background:var(--bs-navy);box-shadow:none}
html.bs-solid .bessans .bs-header,html.bs-menu-open .bessans .bs-header{padding-top:10px;padding-bottom:10px}
html.bs-menu-open{overflow:hidden}
.bessans .bs-header{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:16px var(--bs-gutter);color:var(--bs-on-navy)}
/* Nom « Ski Montagne Aventure » (demande du client du 19/10), en texte en attendant le fichier de son affiche. */
.bessans .bs-brand{display:block;flex-shrink:1;min-width:0;margin-right:auto;color:inherit;text-decoration:none;font-size:18px;font-stretch:90%;font-weight:800;line-height:1.02;letter-spacing:.05em;text-transform:uppercase;text-shadow:0 1px 10px rgb(var(--bs-veil)/.45)}
.bessans .bs-brand span{display:block}
html.bs-solid .bessans .bs-brand,html.bs-menu-open .bessans .bs-brand{text-shadow:none}
/* Logo du client (reçu le 02/11, vectorisé, version inversée pour fond foncé). Lisible dès 48 px de haut ; réduit quand l'en-tête devient opaque. */
.bessans .bs-brand img{display:block;height:52px;width:auto;max-width:none;filter:drop-shadow(0 1px 8px rgb(var(--bs-veil)/.45));transition:height 220ms var(--bs-ease,ease)}
html.bs-solid .bessans .bs-brand img,html.bs-menu-open .bessans .bs-brand img{height:48px;filter:none}
.bessans .bs-nav{display:none}
.bessans .bs-call{display:none}
/* Pas de backdrop-filter : il rognerait la feuille du menu mobile à la hauteur de l'en-tête. */
.bessans .bs-glass{background:rgb(var(--bs-navy-2-rgb)/.72);border:1px solid var(--bs-navy-line)}
.bessans .bs-season{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:999px;flex-shrink:0}
.bessans .bs-season::before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;background:var(--bs-accent);transition:transform 460ms cubic-bezier(.65,0,.35,1)}
.bessans.esdi-saison-hiver .bs-season::before{transform:translateX(100%)}
.bessans .bs-season a{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:0 12px;border-radius:999px;color:var(--bs-on-navy);font-size:15px;font-weight:650;text-decoration:none;transition:color 320ms ease}
.bessans .bs-season svg{width:20px;height:20px;flex-shrink:0;transition:transform 460ms cubic-bezier(.65,0,.35,1)}
.bessans .bs-season span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bessans.esdi-saison-ete .bs-season [data-season="ete"],.bessans.esdi-saison-hiver .bs-season [data-season="hiver"]{color:var(--bs-on-accent)}
.bessans.esdi-saison-ete .bs-season [data-season="ete"] svg{transform:rotate(45deg)}
.bessans.esdi-saison-hiver .bs-season [data-season="hiver"] svg{transform:rotate(60deg)}

/* Listes d'activités par saison : panneau « Activités » et menu mobile, sur bleu */
.bessans .bs-col ul{list-style:none;margin:0;padding:0}
.bessans .bs-col-title{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bs-sky)}
.bessans .bs-col-icon{width:18px;height:18px;flex-shrink:0}
.bessans .bs-col-main a{display:block;padding:7px 0;font-size:20px;font-weight:650;text-decoration:none;color:var(--bs-on-navy)}
/* « Sommets et séjours » / « Séjours » : même typo que le titre de saison au-dessus (demande de Laurent du 23/10). */
.bessans .bs-col-sub{margin:20px 0 6px;padding-top:16px;border-top:1px solid var(--bs-navy-line);font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bs-sky)}
/* Deux colonnes seulement si chaque nom tient sur une ligne ; sinon une seule (« Week-end aventures »). */
.bessans .bs-col-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,9em),1fr));gap:0 16px}
.bessans .bs-col-more a{display:block;padding:7px 0;font-size:16px;text-decoration:none;color:var(--bs-on-navy)}
.bessans .bs-col-all{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-size:16px;font-weight:650;text-decoration:underline;text-decoration-color:var(--bs-navy-line);color:var(--bs-accent)}
.bessans.esdi-saison-hiver .bs-col[data-col="hiver"]{order:-1}

.bessans .bs-menu summary{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:999px;cursor:pointer;list-style:none;color:var(--bs-on-navy)}
.bessans .bs-menu summary::-webkit-details-marker{display:none}
.bessans .bs-menu summary svg{width:22px;height:22px}
.bessans .bs-menu .bs-menu-close{display:none}
.bessans .bs-menu[open] .bs-menu-open{display:none}
.bessans .bs-menu[open] .bs-menu-close{display:block}
.bessans .bs-sheet{display:none}
.bessans .bs-menu[open] .bs-sheet{display:block;position:fixed;inset:0;z-index:-1;overflow-y:auto;overscroll-behavior:contain;background:var(--bs-navy);color:var(--bs-on-navy);padding:84px var(--bs-gutter) 32px;animation:bs-menu-in 240ms var(--bs-ease)}
.bessans .bs-sheet-inner{display:flex;flex-direction:column;gap:26px;max-width:560px;margin:0 auto}
.bessans .bs-sheet .bs-col{padding-top:18px;border-top:1px solid var(--bs-navy-line)}
.bessans .bs-sheet-links{display:flex;flex-direction:column;border-top:1px solid var(--bs-navy-line)}
.bessans .bs-sheet-links a{padding:14px 0;font-size:19px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--bs-navy-line)}
.bessans .bs-sheet-call{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border-radius:999px;background:var(--bs-accent);color:var(--bs-on-accent);font-size:17px;font-weight:650;text-decoration:none}
.bessans .bs-sheet-call svg{width:20px;height:20px}

.bessans .bs-drop{position:relative}
.bessans .bs-drop summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;list-style:none;font-size:16px;font-weight:600}
.bessans .bs-drop summary::-webkit-details-marker{display:none}
.bessans .bs-caret{width:14px;height:14px;transition:transform 220ms var(--bs-ease)}
.bessans .bs-drop[open] .bs-caret{transform:rotate(180deg)}
.bessans .bs-drop-panel{position:absolute;top:calc(100% + 12px);left:-28px;width:min(660px,70vw);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:0 36px;padding:28px 30px 20px;border-radius:var(--bs-radius);background:var(--bs-navy-2);color:var(--bs-on-navy);border:1px solid var(--bs-navy-line);box-shadow:0 24px 60px rgb(var(--bs-shade)/.35);animation:bs-menu-in 200ms var(--bs-ease)}
.bessans.esdi-saison-hiver .bs-drop-panel{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}
.bessans .bs-drop-panel .bs-col+.bs-col{padding-left:36px;border-left:1px solid var(--bs-navy-line)}
.bessans.esdi-saison-hiver .bs-drop-panel .bs-col[data-col="hiver"]{padding-left:0;border-left:0}
.bessans.esdi-saison-hiver .bs-drop-panel .bs-col[data-col="ete"]{padding-left:36px;border-left:1px solid var(--bs-navy-line)}
/* Pas d'opacité dans les entrées : si l'animation ne démarre pas, le panneau reste lisible. */
@keyframes bs-menu-in{from{transform:translateY(-8px)}}

/* Hero : bloc bleu nuit à bas arrondi, photo voilée de bleu qui se fond dans le bleu (charte validée).
   Mobile : photo en haut, texte dessous sur le bleu, pour ne pas cacher le pratiquant. */
.bessans .bs-main{max-width:none!important;width:100%;padding:0!important}
.bessans .bs-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;background:var(--bs-navy-3);color:var(--bs-on-navy);border-radius:0 0 var(--bs-radius-lg) var(--bs-radius-lg)}
.bessans .bs-hero-photo{position:relative!important;z-index:-2;width:100%!important;max-width:none!important;height:52svh;min-height:300px;max-height:560px;margin:0!important}
.bessans .bs-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--bs-focus-pos,center 45%)}
.bessans .bs-hero-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgb(var(--bs-veil)/.5) 0%,rgb(var(--bs-veil)/0) 26%),linear-gradient(0deg,var(--bs-navy-3) 0%,rgb(var(--bs-navy-3-rgb)/0) 22%)}
.bessans .bs-hero-copy{position:relative;max-width:1400px;width:100%;margin:-36px auto 0;padding:0 var(--bs-gutter) 44px}
.bessans .bs-hero .bs-lead{color:var(--bs-on-navy)}
.bessans .bs-breadcrumb{font-size:15px;margin:0 0 14px;color:var(--bs-on-navy-2)}
.bessans .bs-breadcrumb a{text-decoration:underline;text-decoration-color:var(--bs-navy-line)}
.bessans .bs-hero-canyon{--bs-focus-pos:center 58%}
/* Panneau arrondi des activités (ordinateur), repris de la charte validée */
.bessans .bs-hero-panel{display:none}
.bessans .bs-hero-panel p{margin:0 0 14px;font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.bessans .bs-hero-panel a{display:flex;align-items:center;gap:14px;padding:13px 0;font-size:18px;line-height:1.35;text-decoration:none;border-top:1px solid rgb(53 94 117/.6)}
.bessans .bs-hero-panel a>span:last-child{margin-left:auto;color:var(--bs-sky)}
.bessans .bs-icon{width:28px;height:28px;flex-shrink:0;color:var(--bs-sky);display:block}

/* Sections sur fond clair */
.bessans .bs-section{max-width:1400px;margin:0 auto;padding:56px var(--bs-gutter)}
.bessans .bs-more{margin:28px 0 0;font-size:17px;font-weight:650}
.bessans .bs-more a{color:var(--bs-link);text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:44px}
.bessans .bs-more a::after{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--bs-arrow) center/contain no-repeat;mask:var(--bs-arrow) center/contain no-repeat;transition:transform 200ms var(--bs-ease)}
.bessans :is(.bs-story,.bs-contact-inner) .bs-more a{color:var(--bs-accent)}

/* Cartes d'activités bleues (charte validée) : une phare, les autres en lignes */
.bessans .bs-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.bessans .bs-card{position:relative;display:grid;grid-template-columns:clamp(118px,28vw,190px) minmax(0,1fr);align-items:center;background:var(--bs-navy-2);color:var(--bs-on-navy);border:1px solid var(--bs-navy-line);border-radius:var(--bs-radius);overflow:hidden;min-height:112px}
.bessans .bs-card>.wp-block-image{height:100%;min-height:112px;overflow:hidden}
/* Photo à fleur du cadre : pas d'arrondi propre (les coins arrondis de la carte suffisent). */
.bessans .bs-card>.wp-block-image,.bessans .bs-card img{border-radius:0!important}
.bessans .bs-card img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--bs-ease)}
/* Vignette étroite : garder la grimpeuse et le rocher (en bas à gauche de la photo), pas le lac sombre. */
.bessans .bs-card img[src*="card-escalade"]{object-position:30% 80%}
.bessans .bs-card-text{padding:16px 18px;width:100%;max-width:none!important;margin:0!important}
.bessans .bs-card-text p{margin:6px 0 0;font-size:16px;line-height:1.4;color:var(--bs-on-navy-2)}
.bessans .bs-card h3 a{text-decoration:none}
.bessans .bs-card h3 a::before{content:"";position:absolute;inset:0;z-index:1}
.bessans .bs-card h3 a::after{content:"";display:inline-block;margin-left:.35em;vertical-align:-.04em;width:.72em;height:.72em;background:var(--bs-sky);-webkit-mask:var(--bs-arrow) center/contain no-repeat;mask:var(--bs-arrow) center/contain no-repeat;transition:transform 220ms var(--bs-ease)}
.bessans .bs-card-feature{display:block}
.bessans .bs-card-feature>.wp-block-image{aspect-ratio:4/3;height:auto;min-height:0}
.bessans .bs-card-feature .bs-card-text{padding:20px 22px 24px}
.bessans .bs-card-feature h3{font-size:clamp(26px,2.6vw,32px)}

/* Récit : bloc bleu en dégradé, arrondi (charte validée) */
.bessans .bs-story{display:grid;gap:26px;align-items:center;max-width:calc(1400px - 2*var(--bs-gutter));margin:24px var(--bs-gutter);padding:24px 24px 32px;background:var(--bs-gradient);color:var(--bs-on-navy);border-radius:16px}
.bessans .bs-story-photo{border-radius:10px;overflow:hidden;aspect-ratio:4/3}
.bessans .bs-story-photo img{width:100%;height:100%;object-fit:cover}
.bessans .bs-story-copy p{font-size:18px;line-height:1.7;max-width:60ch;color:var(--bs-on-navy-2)}

/* Grands sommets / séjours : affiches photo, légende dessous */
.bessans .bs-posters{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,340px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--bs-gutter));padding:0 var(--bs-gutter) 6px;scrollbar-width:none;scroll-padding-inline:var(--bs-gutter)}
.bessans .bs-posters::-webkit-scrollbar{display:none}
.bessans .bs-poster{position:relative;scroll-snap-align:start}
.bessans .bs-poster>.wp-block-image{aspect-ratio:4/5;border-radius:var(--bs-radius);overflow:hidden}
.bessans .bs-poster img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--bs-ease)}
.bessans .bs-poster h3{margin-top:16px}
.bessans .bs-poster h3 a{text-decoration:none}
.bessans .bs-poster h3 a::before{content:"";position:absolute;inset:0}
.bessans .bs-poster p{margin:6px 0 0;font-size:16px;line-height:1.45;color:var(--bs-ink-2)}

/* Contact : bloc bleu en dégradé, arrondi, téléphone en grand */
.bessans .bs-contact{padding:16px var(--bs-gutter) 64px}
.bessans .bs-contact-inner{max-width:calc(1400px - 2*var(--bs-gutter));margin:0 auto;padding:32px 24px;display:grid;gap:20px;align-items:end;background:var(--bs-gradient);color:var(--bs-on-navy);border:1px solid var(--bs-navy-line);border-radius:var(--bs-radius)}
.bessans .bs-contact h2{margin-bottom:12px}
.bessans .bs-contact p{font-size:18px;color:var(--bs-on-navy-2);max-width:46ch;margin:0}
.bessans .bs-contact .bs-phone{margin:0;font-size:clamp(36px,8vw,64px);font-weight:760;line-height:1;letter-spacing:-.01em;color:var(--bs-on-navy);max-width:none}
.bessans .bs-contact .bs-phone a{text-decoration:none;white-space:nowrap}
.bessans .bs-contact .wp-block-buttons{margin-top:20px}

/* Pied de page bleu nuit */
.bessans .bs-footer{background:var(--bs-navy-deep);color:var(--bs-on-navy);padding:56px var(--bs-gutter) 28px}
.bessans .bs-footer-inner{max-width:calc(1400px - 2*var(--bs-gutter));margin:0 auto;display:grid;gap:32px}
.bessans .bs-footer-brand img{display:block;height:96px;width:auto}
.bessans .bs-footer-brand{display:inline-block;color:var(--bs-on-navy);text-decoration:none;font-size:24px;font-stretch:90%;font-weight:800;line-height:1.05;letter-spacing:.05em;text-transform:uppercase}
.bessans .bs-footer p,.bessans .bs-footer a{font-size:16px;line-height:1.7;color:var(--bs-on-navy)}
.bessans .bs-footer p{margin:14px 0 0;color:var(--bs-on-navy-2)}
.bessans .bs-footer h2{font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;color:var(--bs-on-navy)}
.bessans .bs-footer-bottom{max-width:calc(1400px - 2*var(--bs-gutter));margin:40px auto 0;padding-top:20px;border-top:1px solid var(--bs-navy-line);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:15px;color:var(--bs-on-navy-2)}

/* Pages d'activité (gabarits page-canyoning-a et page-activite-bessans) : contenu existant en base, habillé sans le modifier */
.bessans .bs-activity{padding-top:56px}
.bessans .bs-activity .wp-block-post-content>*{max-width:none;margin-left:0;margin-right:0}
.bessans .bs-activity .wp-block-post-content>.esdi-kicker{display:none}
.bessans .bs-activity .wp-block-columns{display:flex;flex-direction:column;gap:32px;margin:0 0 56px}
.bessans .bs-activity .wp-block-column{min-width:0;flex-basis:auto!important}
.bessans .bs-activity .wp-block-column p{font-size:18px;line-height:1.7;max-width:64ch}
.bessans .bs-activity h2{font-size:clamp(26px,3vw,34px);margin:40px 0 16px}
.bessans .bs-activity .wp-block-column:first-child>h2:first-child{margin-top:0}
.bessans .bs-activity .esdi-sticky{position:static;background:var(--bs-gradient)!important;color:var(--bs-on-navy)!important;border:1px solid var(--bs-navy-line);border-top:3px solid var(--bs-sky);border-radius:var(--bs-radius)!important;padding:26px!important;box-shadow:none}
.bessans .bs-activity .esdi-sticky>*,.bessans .bs-activity .has-contrast-background-color>*{max-width:none!important;margin-left:0!important;margin-right:0!important}
.bessans .bs-activity .esdi-sticky h2{font-size:30px;margin:0 0 12px;color:var(--bs-on-navy)}
.bessans .bs-activity .esdi-sticky .has-contrast-2-color{color:var(--bs-on-navy-2)!important;font-size:15px!important;margin:16px 0 0}
.bessans .bs-activity .esdi-sticky .wp-block-buttons{margin-top:20px}
.bessans .bs-activity .esdi-sticky .wp-block-button__link{width:100%;white-space:normal;text-align:center}
.bessans .bs-activity .wp-block-table{margin:0;overflow-x:auto}
.bessans .bs-activity .wp-block-table table{width:100%;border-collapse:collapse;font-size:17px;line-height:1.45}
.bessans .bs-activity .wp-block-table tr{background:transparent!important}
.bessans .bs-activity .wp-block-table td{padding:14px 16px 14px 0;border:0;background:transparent!important;color:var(--bs-ink);vertical-align:top}
.bessans .bs-activity .wp-block-table td:last-child{padding-left:16px}
/* En-têtes alignés sur leur colonne (ils étaient centrés au-dessus de valeurs alignées à gauche). */
.bessans .bs-activity .wp-block-table th{padding:10px 16px 10px 0;text-align:left!important;vertical-align:bottom}
.bessans .bs-activity .wp-block-table th:last-child{padding-left:16px}
.bessans .bs-activity .wp-block-table tr+tr td{border-top:1px solid var(--bs-line)}
.bessans .bs-activity .wp-block-table strong{font-size:22px;font-weight:720;color:var(--bs-link)}
/* Dans la carte bleue des tarifs : texte clair (les grands tableaux du texte restent sur le fond clair). */
.bessans .bs-activity .esdi-sticky .wp-block-table td{color:var(--bs-on-navy)}
.bessans .bs-activity .esdi-sticky .wp-block-table tr+tr td{border-top-color:var(--bs-navy-line)}
.bessans .bs-activity .esdi-sticky .wp-block-table strong{color:var(--bs-sky)}
/* Pas de coupure lettre par lettre : une colonne ne descend pas sous la largeur de son mot le plus long.
   La case prix est en nowrap dans le contenu ; on la laisse revenir à la ligne pour « voir tableau ci-dessous ». */
.bessans .bs-activity .wp-block-table :is(td,th){word-break:normal;overflow-wrap:normal}
/* Colonnes à la largeur de leur contenu (le contenu impose has-fixed-layout) ; si le tableau dépasse, il défile dans son cadre. */
.bessans .bs-activity .wp-block-table table{table-layout:auto!important}
@media(max-width:699px){.bessans .bs-activity .wp-block-table:not(.esdi-sticky *) table{font-size:15px}}
.bessans .bs-activity .esdi-sticky .wp-block-table td:last-child{white-space:normal!important;min-width:5.5em}
.bessans .bs-activity .wp-block-gallery.has-nested-images{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px;gap:10px!important;margin:0 0 56px}
.bessans .bs-activity .wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;height:100%!important;margin:0!important;border-radius:10px;overflow:hidden}
.bessans .bs-activity .wp-block-gallery.has-nested-images figure.wp-block-image:first-child{grid-column:span 2;grid-row:span 2}
/* Pas de case vide en fin de galerie, quel que soit le nombre de photos : la dernière s'élargit.
   Mobile (2 colonnes, la 1re photo en occupe 2) : nombre pair de photos = une orpheline. */
@media(max-width:699px){.bessans .bs-activity .wp-block-gallery.has-nested-images figure.wp-block-image:last-child:nth-child(2n):not(:first-child){grid-column:span 2;grid-row:span 2}}
.bessans .bs-activity .wp-block-gallery img{width:100%!important;height:100%!important;object-fit:cover}
.bessans .bs-activity .esdi-stagger>*{opacity:1!important;transform:none!important}
.bessans .bs-activity .wp-block-post-content>.has-contrast-background-color{background:transparent!important;color:var(--bs-ink)!important;padding:8px 0 0!important}
.bessans .bs-activity .has-contrast-background-color h2{text-align:left!important;color:var(--bs-ink)!important;font-size:clamp(26px,3vw,34px)!important}
.bessans .bs-activity .esdi-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;max-width:none!important;margin-top:20px!important}
/* Le groupe est en mise en page « flux » : WordPress ajoute une marge haute à chaque carte sauf la première,
   ce qui décalait la 2e carte de 20 px. La grille gère seule l'espacement. */
.bessans .bs-activity .esdi-grid>*{margin-block:0!important}
.bessans .bs-activity .esdi-rail-card{position:relative;display:block;min-height:0!important;padding:0!important;background:var(--bs-navy-2);border:1px solid var(--bs-navy-line);border-radius:var(--bs-radius);overflow:hidden;color:var(--bs-on-navy)}
.bessans .bs-activity .esdi-rail-card>.wp-block-cover__image-background{position:relative!important;inset:auto;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:transform 600ms var(--bs-ease)}
.bessans .bs-activity .esdi-rail-card>.wp-block-cover__background{display:none}
.bessans .bs-activity .esdi-rail-card>.wp-block-cover__inner-container{position:static;width:100%;max-width:none;padding:18px 20px 20px;color:var(--bs-on-navy)}
.bessans .bs-activity .esdi-rail-card h3{font-size:24px!important;color:var(--bs-on-navy)!important;margin:0}
.bessans .bs-activity .esdi-rail-card h3 a{text-decoration:none}
.bessans .bs-activity .esdi-rail-card h3 a::before{content:"";position:absolute;inset:0;z-index:1}
.bessans .bs-activity .esdi-badge{background:none;padding:0;margin:0 0 6px;font:600 15px/1.4 var(--bs-font);letter-spacing:0;text-transform:none;color:var(--bs-on-navy-2)}

/* Pages simples (gabarit page-bessans : portails Été et Hiver, Contact, Liens utiles). Sans photo à la une,
   le hero se réduit au fil d'Ariane et au titre, sous l'en-tête fixe. */
.bessans .bs-hero:not(:has(.bs-hero-photo)) .bs-hero-copy{margin-top:0;padding-top:112px}
.bessans .bs-page .wp-block-post-content>:is(p,ul,ol,h2,h3){max-width:64ch}
.bessans .bs-page .wp-block-post-content>:is(p,ul,ol){font-size:18px;line-height:1.7}
.bessans .bs-page .wp-block-post-content>.alignfull{padding:0!important;margin-top:40px}
.bessans .bs-page h2.has-text-align-center{text-align:left}
.bessans .bs-page .wp-block-post-content>.alignfull>*{max-width:none!important;margin-left:0!important;margin-right:0!important}
.bessans .bs-page .wp-block-list{padding-left:1.2em;margin:0 0 1.4em}
.bessans .bs-page .wp-block-list li{margin:0 0 .45em}
.bessans .bs-page .wp-block-list a{color:var(--bs-link)}

/* Boutons d'appel : l'émoji ☎ du contenu est remplacé au rendu par l'icône téléphone de l'en-tête. */
.bessans .wp-block-button__link:has(.bs-icon-tel){display:inline-flex;align-items:center;justify-content:center;gap:8px}
.bessans .bs-icon-tel{width:18px;height:18px;flex:none}

/* Survol : uniquement souris */
@media(hover:hover) and (pointer:fine){
	.bessans .wp-block-button__link:hover{background:var(--bs-accent-hover)!important;border-color:var(--bs-accent-hover)!important}
	.bessans .is-style-outline .wp-block-button__link:hover{background:var(--bs-ink)!important;color:var(--bs-on-navy)!important}
	.bessans :is(.bs-hero,.bs-contact-inner,.bs-story) .is-style-outline .wp-block-button__link:hover{background:var(--bs-navy-2)!important;border-color:var(--bs-on-navy)!important}
	.bessans .bs-card:hover img,.bessans .bs-poster:hover img,.bessans .bs-activity .esdi-rail-card:hover>.wp-block-cover__image-background{transform:scale(1.04)}
	.bessans .bs-card:hover h3 a::after,.bessans .bs-more a:hover::after{transform:translate(2px,-2px)}
	.bessans .bs-nav a:hover,.bessans .bs-drop summary:hover{color:var(--bs-accent)}
	.bessans .bs-hero-panel a:hover,.bessans .bs-col a:hover{color:var(--bs-accent)}
	.bessans .bs-season a:not([aria-current]):hover{background:rgb(255 255 255/.1)}
}

/* Tant que texte et tarifs sont empilés (sous 960 px), la carte tarifs passe en tête. Le starter ne le faisait
   que sous 782 px : entre 782 et 959 px, elle tombait sous tout le texte. */
@media(max-width:959px){.bessans .bs-activity .esdi-tarifs-col{order:-1}}

/* Responsive (24/10) : petits téléphones, le nom tient sur deux lignes à côté du sélecteur et du menu. */
@media(max-width:379px){
	.bessans .bs-header{gap:8px}
	.bessans .bs-brand{font-size:15px;letter-spacing:.035em}
	.bessans .bs-brand span{white-space:nowrap}
}

@media(min-width:700px){
	.bessans .bs-season span{position:static;width:auto;height:auto;overflow:visible;clip:auto}
	.bessans .bs-brand{font-size:22px}
	.bessans .bs-brand img{height:68px}
	html.bs-solid .bessans .bs-brand img{height:54px}
	.bessans .bs-brand span{display:inline}
	.bessans .bs-season a{padding:0 16px}
	/* Plein cadre : voiles bleus de la charte validée (latéral, haut, fondu vers le bleu en bas). */
	/* Marges calées sur la grille de l'en-tête (conteneur 1400 px) : copie et panneau alignés sur le logo et le téléphone. */
	.bessans .bs-hero{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;min-height:min(100svh,880px);padding:140px max(var(--bs-gutter),calc((100% - 1400px)/2 + var(--bs-gutter))) 80px}
	.bessans .bs-hero-photo{position:absolute!important;inset:0;height:100%;min-height:0;max-height:none}
	.bessans .bs-hero-photo::after{background:linear-gradient(0deg,var(--bs-navy-3) 0%,rgb(var(--bs-navy-3-rgb)/0) 14%),linear-gradient(0deg,rgb(var(--bs-veil)/.38) 0%,rgb(var(--bs-veil)/0) 52%),linear-gradient(90deg,rgb(var(--bs-veil)/.5) 0%,rgb(var(--bs-veil)/.18) 45%,rgb(var(--bs-veil)/0) 68%),linear-gradient(180deg,rgb(var(--bs-veil)/.42),rgb(var(--bs-veil)/0) 22%)}
	.bessans .bs-hero-copy{margin:0;padding:0;max-width:none}
	.bessans .bs-hero:not(:has(.bs-hero-photo)){min-height:0;padding-top:150px;padding-bottom:64px}
	.bessans .bs-hero:not(:has(.bs-hero-photo)) .bs-hero-copy{padding-top:0}
	.bessans .bs-hero h1{max-width:14ch;text-shadow:0 2px 22px rgb(var(--bs-veil)/.45)}
	.bessans .bs-lead{text-shadow:0 1px 10px rgb(var(--bs-veil)/.7)}
	/* Sans voile bleu, le bleu clair manque de contraste sur la roche : petit titre en blanc sur la photo. */
	.bessans .bs-hero .bs-eyebrow{color:var(--bs-on-navy)}
	.bessans .bs-hero .bs-eyebrow,.bessans .bs-breadcrumb{text-shadow:0 1px 8px rgb(var(--bs-veil)/.85),0 0 2px rgb(var(--bs-veil)/.6)}
	.bessans .bs-contact-inner{padding:40px 44px}
	.bessans .bs-footer-inner{grid-template-columns:1.4fr 1fr 1fr}
	/* Récit : photo et texte côte à côte dès la tablette. */
	.bessans .bs-story{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:28px 32px 28px 28px}
	.bessans .bs-activity .wp-block-gallery.has-nested-images{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:210px;gap:14px!important}
	/* Ordinateur (3 colonnes, 1re photo sur 2 × 2, puis 2 à sa droite) : la dernière rangée est complétée. */
	.bessans .bs-activity .wp-block-gallery.has-nested-images figure.wp-block-image:last-child:nth-child(3n+1):nth-child(n+4){grid-column:span 3;grid-row:span 2}
	.bessans .bs-activity .wp-block-gallery.has-nested-images figure.wp-block-image:last-child:nth-child(3n+2):nth-child(n+5){grid-column:span 2}
	.bessans .bs-activity .wp-block-gallery.has-nested-images figure.wp-block-image:nth-child(2):last-child{grid-row:span 2}
	.bessans .bs-activity .esdi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
}
/* Tablette (700-959 px) : la carte phare sur toute la largeur, les trois autres en colonnes (photo au-dessus) ;
   affiches toutes visibles, sans défilement. */
@media(min-width:700px) and (max-width:959px){
	.bessans .bs-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
	.bessans .bs-card-feature{grid-column:1/-1}
	.bessans .bs-card-feature>.wp-block-image{aspect-ratio:16/9}
	.bessans .bs-card:not(.bs-card-feature){display:flex;flex-direction:column;align-items:stretch;min-height:0}
	.bessans .bs-card:not(.bs-card-feature)>.wp-block-image{height:auto;min-height:0;aspect-ratio:4/3}
	.bessans .bs-card:not(.bs-card-feature) .bs-card-text{flex:1}
	.bessans .bs-posters{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;margin:0;padding:0;gap:16px}
	.bessans .bs-posters-2{grid-template-columns:repeat(2,minmax(0,1fr))}
	/* Récit : la photo occupe toute la hauteur du texte au lieu de flotter au milieu. */
	.bessans .bs-story{align-items:stretch}
	.bessans .bs-story-photo{aspect-ratio:auto;min-height:260px}
}
/* Écrans bas (téléphone à l'horizontale) : hero plein cadre moins haut. */
@media(min-width:700px) and (max-height:560px){
	.bessans .bs-hero{padding-top:84px;padding-bottom:32px}
	.bessans .bs-hero h1{font-size:clamp(32px,10svh,60px);margin-bottom:12px}
	.bessans .bs-hero .bs-eyebrow,.bessans .bs-breadcrumb{margin-bottom:8px}
	.bessans .bs-hero .wp-block-buttons{margin-top:14px}
	/* Logo (02/11) : à 68 px, l'en-tête recouvrait le petit titre du hero. */
	.bessans .bs-header{padding-top:14px}
	.bessans .bs-brand img,html.bs-solid .bessans .bs-brand img{height:44px}
}
@media(min-width:960px){
	.bessans .bs-contact-inner{grid-template-columns:minmax(0,1fr) auto;gap:40px;padding:44px 48px}
	.bessans .bs-contact-side{text-align:right}
	.bessans .bs-contact .wp-block-buttons{justify-content:flex-end}
	/* Panneau Activités : défile s'il est plus haut que l'écran. */
	.bessans .bs-drop-panel{max-height:calc(100svh - 112px);overflow-y:auto;overscroll-behavior:contain}
	.bessans .bs-header{gap:28px;padding-top:22px}
	.bessans .bs-nav{display:flex;align-items:center;gap:26px;margin-left:auto}
	.bessans .bs-brand{margin-right:0}
	.bessans .bs-nav>a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:600;text-decoration:none}
	.bessans .bs-menu{display:none}
	.bessans .bs-section{padding:80px var(--bs-gutter)}
	.bessans .bs-hero.esdi-ete,.bessans .bs-hero-canyon{--bs-focus-pos:center 68%}
	/* Copie à gauche, panneau arrondi des activités à droite, alignés sur la grille de l'en-tête */
	.bessans .bs-hero:has(.bs-hero-panel){grid-template-columns:minmax(0,1fr) 320px;column-gap:6vw;align-items:center}
	.bessans .bs-hero:has(.bs-hero-panel) .bs-hero-copy{margin:0;max-width:none}
	/* Avec le panneau à droite, le titre garde 3 ou 4 lignes sur les petits portables (5 à 1024 px auparavant). */
	.bessans .bs-hero:has(.bs-hero-panel) h1{font-size:clamp(48px,6.2vw,84px)}
	.bessans .bs-hero-panel{display:block;position:relative;width:320px;padding:24px 26px 14px;background:rgb(var(--bs-navy-2-rgb)/.9);border:1px solid var(--bs-navy-line);border-radius:var(--bs-radius);color:var(--bs-on-navy)}
	/* Trois lignes égales : les cartes de droite ont la même hauteur et finissent au ras de la carte phare. */
	.bessans .bs-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:20px}
	.bessans .bs-card-feature{grid-row:1/span 3;display:flex;flex-direction:column}
	.bessans .bs-card-feature>.wp-block-image{flex:1;aspect-ratio:auto;min-height:340px}
	.bessans .bs-card{grid-template-columns:200px minmax(0,1fr);min-height:150px}
	.bessans .bs-card-text{padding:22px 26px}
	.bessans .bs-card-feature .bs-card-text{padding:24px 28px 28px}
	/* Largeur limitée par les marges latérales : entre 960 et 1399 px, le bloc touchait les bords de l'écran. */
	.bessans .bs-story{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;padding:40px 56px 40px 40px;margin:24px auto;width:calc(100% - 2*var(--bs-gutter))}
	.bessans .bs-story-photo{aspect-ratio:4/3;max-height:480px}
	.bessans .bs-posters{grid-auto-flow:row;grid-template-columns:1.35fr 1fr 1fr;grid-auto-columns:auto;overflow:visible;margin:0;padding:0;gap:24px;align-items:start}
	.bessans .bs-posters-2{grid-template-columns:1.35fr 1fr}
	/* Même hauteur de photo pour toutes les affiches : les titres partent sur la même ligne. */
	.bessans .bs-poster>.wp-block-image{aspect-ratio:auto;height:clamp(340px,30vw,440px)}
	.bessans .bs-activity .wp-block-columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:64px;align-items:start}
	.bessans .bs-activity .esdi-sticky{position:sticky;top:96px;padding:30px!important}
	/* Posée par bessans.js quand la carte est plus haute que l'écran. */
	.bessans .bs-activity .esdi-sticky.bs-sticky-off{position:static}
}
/* 960-1179 px : le panneau Activités, ancré sous « Activités », sortait de l'écran à droite. Il s'aligne sur la marge droite de l'en-tête. */
@media(min-width:960px) and (max-width:1179px){
	.bessans .bs-header{position:relative}
	.bessans .bs-drop{position:static}
	.bessans .bs-drop-panel{left:auto;right:var(--bs-gutter);top:calc(100% - 6px);width:min(660px,calc(100% - 2*var(--bs-gutter)))}
}
@media(min-width:1180px){
	.bessans .bs-call{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;font-size:16px;font-weight:650;text-decoration:none;color:var(--bs-on-navy);white-space:nowrap}
	.bessans .bs-call svg{width:18px;height:18px}
	html.bs-solid .bessans .bs-call{background:var(--bs-accent);border-color:var(--bs-accent);color:var(--bs-on-accent)}
}

@media(prefers-reduced-motion:reduce){
	.bessans *,.bessans *::before,.bessans *::after{transition-duration:1ms!important;animation-duration:1ms!important}
}
