/* ============================================================
   ITINÉRAIRES — PRÉSENTATION COMMUNE
   Portée : anciennes pages portant la classe ve-itinerary-page.
   Les photographies restent entières ; aucune modification des diaporamas.
   ============================================================ */
body.ve-itinerary-page { background:#f4f8f9; color:#294453; font:400 17px/1.75 Arial,sans-serif; }
body.ve-itinerary-page #content { padding-bottom:56px; }
body.ve-itinerary-page #content *,body.ve-itinerary-page #content *::before,body.ve-itinerary-page #content *::after { box-sizing:border-box; }
body.ve-itinerary-page #content a { overflow-wrap:anywhere; text-underline-offset:4px; }
body.ve-itinerary-page #content :is(p,li) { font-size:17px; line-height:1.8; color:#536a77; }
body.ve-itinerary-page #content :is(h1,h2,h3,h4,h5,h6,h7,h8) { color:#087d97; text-transform:none; letter-spacing:-.02em; }
body.ve-itinerary-page #content :is(h2,h5,h6,h7,h8) { display:block; font:750 clamp(23px,2.1vw,34px)/1.25 Arial,sans-serif; margin:0 0 18px; }
body.ve-itinerary-page #content .caption { margin:0 0 18px; padding:0; text-align:left; }
body.ve-itinerary-page #content .caption:last-child { margin-bottom:0; }
body.ve-itinerary-page #content .thumbnail { padding:0; border:0; background:transparent; box-shadow:none; }
body.ve-itinerary-page #content img { display:block; max-width:100%; height:auto; }
body.ve-itinerary-page #content iframe { display:block; max-width:100%; margin:20px auto; border-radius:16px; }

/* En-tête : la carte, le titre et les actions sont chacun à leur place. */
body.ve-itinerary-page .ve-itinerary-hero {
 width:min(1740px,calc(100% - 40px)); padding:clamp(28px,3.3vw,56px);
 margin:0 auto 24px; gap:clamp(28px,4vw,64px); border-radius:0 0 32px 32px;
 background:linear-gradient(120deg,#eaf5f6,#fffaf1); box-shadow:0 16px 40px #173b4909;
}
body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-photo-heading h1 { font:800 clamp(28px,2.4vw,44px)/1.17 Arial,sans-serif!important; letter-spacing:-.035em; }
body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-photo-heading .ve-itinerary-subtitle { margin:16px 0 24px; color:#536a77; font:400 clamp(16px,1.2vw,19px)/1.65 Arial,sans-serif; }
/* Ordinateur : rapprocher le titre de sa courte présentation. */
@media (min-width:1024px) {
 body.ve-itinerary-page #content h1:has(+ .ve-itinerary-subtitle) { margin-bottom:0!important; padding-bottom:0!important; }
 body.ve-itinerary-page #content h1 + .ve-itinerary-subtitle { margin-top:10px!important; padding-top:0!important; }
}
/* Téléphone et tablette : titre et description forment un seul bloc de lecture. */
@media (max-width:1023px) {
 body.ve-itinerary-page #content h1:has(+ .ve-itinerary-subtitle) { margin-bottom:0!important; padding-bottom:0!important; }
 body.ve-itinerary-page #content h1 + .ve-itinerary-subtitle { margin-top:10px!important; padding-top:0!important; }
}
body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-first-photo { padding:10px; background:white; border-radius:24px; }
body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-first-photo img { max-height:440px!important; }
body.ve-itinerary-page .ve-itinerary-hero .ve-share-intro { padding:0!important; margin:0!important; background:none!important; border:0!important; box-shadow:none!important; }
body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-page-actions { gap:14px; }
body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-route-action { min-height:50px; border-radius:16px; font-size:15px; }

/* Accès direct : navigation courte et liste complète repliable. */
body.ve-itinerary-page .ve-itinerary-navigation { width:min(1740px,calc(100% - 40px)); margin:0 auto 28px; padding:24px 28px; border:1px solid #d6e5e9; border-radius:24px; background:white; box-shadow:0 8px 24px #173b4905; }
body.ve-itinerary-page .ve-itinerary-navigation .ve-itinerary-nav-title { display:block; margin:0 0 16px; color:#087d97; font:800 13px/1.5 Arial,sans-serif; text-transform:uppercase; letter-spacing:.09em; }
body.ve-itinerary-page .ve-itinerary-shortcuts { display:flex; gap:10px; flex-wrap:wrap; }
body.ve-itinerary-page .ve-itinerary-shortcuts a { display:inline-flex; align-items:center; min-height:44px; padding:10px 17px; border:1px solid #cddfe4; border-radius:12px; color:#087d97; background:#f1f8fa; text-decoration:none; font:700 15px/1.4 Arial,sans-serif; }
body.ve-itinerary-page .ve-itinerary-shortcuts a:first-child { background:#087d97; color:white; border-color:#087d97; }
body.ve-itinerary-page .ve-itinerary-index { margin-top:18px; border-top:1px solid #e0ebee; padding-top:16px; }
body.ve-itinerary-page .ve-itinerary-index summary { cursor:pointer; color:#087d97; font:700 15px/1.6 Arial,sans-serif; padding:4px 0; }
body.ve-itinerary-page .ve-itinerary-index ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 28px; max-height:360px; overflow:auto; margin:18px 0 0; padding:0 0 0 24px; }
body.ve-itinerary-page .ve-itinerary-index li { padding:0 8px 0 0; font-size:15px!important; }
body.ve-itinerary-page .ve-itinerary-index a { display:inline-block; padding:6px 0; color:#315b6c; }
body.ve-itinerary-page #content :focus-visible { outline:3px solid #ff7654; outline-offset:4px; }
body.ve-itinerary-page #content [id] { scroll-margin-top:calc(var(--ve2-header-height,76px) + 24px); }

/* Blocs de lecture et conseils pratiques. */
body.ve-itinerary-page #content .ve-itinerary-panel,
body.ve-itinerary-page #content .ve-itinerary-step { width:min(1740px,calc(100% - 40px))!important; margin:0 auto 24px!important; padding:clamp(24px,2.8vw,44px)!important; background:white; border:1px solid #d8e6e9; border-radius:26px; box-shadow:0 10px 30px #173b4905; }
body.ve-itinerary-page #content .ve-itinerary-panel > .container,
body.ve-itinerary-page #content .ve-itinerary-step > .container { width:100%!important; max-width:none!important; padding:0!important; margin:0!important; }
body.ve-itinerary-page #content .ve-itinerary-panel .row,
body.ve-itinerary-page #content .ve-itinerary-step .row { width:100%!important; margin:0!important; }
body.ve-itinerary-page #content .ve-itinerary-panel .row > [class*="grid_"] { min-width:0; }
body.ve-itinerary-page #content .ve-itinerary-introduction { border-left:4px solid #087d97; }
body.ve-itinerary-page #content .ve-itinerary-introduction p { max-width:105ch; font-size:18px; }
body.ve-itinerary-page #content .ve-itinerary-tip { background:#fffaf2; border-color:#eee2cf; }
body.ve-itinerary-page #content .ve-itinerary-tip p { font-size:16px; }
body.ve-itinerary-page #content .ve-itinerary-panel img { margin-inline:auto; max-height:540px; object-fit:contain; border-radius:16px; }

/* Étapes : photo complète, texte confortable et informations distinctes. */
body.ve-itinerary-page #content .ve-itinerary-step .row { display:grid!important; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; gap:clamp(24px,3vw,48px); }
body.ve-itinerary-page #content .ve-itinerary-step .row > [class*="grid_"] { width:100%!important; float:none!important; margin:0!important; padding:0!important; }
body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-step-media { padding:12px!important; background:#f0f6f7; border:1px solid #e0eaed; border-radius:20px; }
body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-step-media img { width:100%; max-height:520px; object-fit:contain; border-radius:12px; }
body.ve-itinerary-page #content .ve-itinerary-step h2.ve-itinerary-step-title { margin:0 0 20px; color:#087d97; font:800 clamp(24px,2vw,34px)/1.25 Arial,sans-serif; }
body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-fact { margin:12px 0 0; padding:12px 16px; border:1px solid #dce8eb; border-radius:12px; color:#355568; background:#f5f9fa; font:400 15px/1.65 Arial,sans-serif; }
body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-distance { border-color:#f0dfce; background:#fff8ef; color:#775537; }
body.ve-itinerary-page #content .cards-grid { gap:16px; }
body.ve-itinerary-page #content .cards-grid .card { padding:22px; border:1px solid #d6e5e9; border-radius:18px; background:#f3f9fa; box-shadow:none; }
body.ve-itinerary-page #content .cards-grid .card a { color:#087d97; font-weight:700; }
@media(max-width:1023px) {
 body.ve-itinerary-page { background:white; }
 body.ve-itinerary-page .ve-itinerary-hero { width:100%; margin-bottom:24px; padding:0; gap:0; background:#eff7f9; border-radius:0; }
 body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-first-photo { padding:0!important; border-radius:0; }
 body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-first-photo img { max-height:none!important; }
 body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-photo-heading { padding:24px!important; margin:20px auto!important; }
 body.ve-itinerary-page #content .ve-itinerary-panel .row { display:flex!important; flex-wrap:wrap; gap:20px; }
 body.ve-itinerary-page #content .ve-itinerary-panel .row > [class*="grid_"] { width:100%!important; float:none!important; margin:0!important; }
 body.ve-itinerary-page #content .ve-itinerary-step .row { grid-template-columns:minmax(0,1fr); gap:24px; }
 body.ve-itinerary-page .ve-itinerary-index ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 body.ve-itinerary-page #content :is(p,li) { font-size:16px; line-height:1.75; }
 body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-photo-heading h1 { font-size:28px!important; line-height:1.22!important; }
 body.ve-itinerary-page .ve-itinerary-hero .ve-legacy-photo-heading { width:calc(100% - 28px)!important; padding:24px 20px!important; }
 body.ve-itinerary-page .ve-itinerary-navigation,
 body.ve-itinerary-page #content .ve-itinerary-panel,
 body.ve-itinerary-page #content .ve-itinerary-step { width:calc(100% - 28px)!important; border-radius:22px; padding:22px 20px!important; margin-bottom:20px!important; }
 body.ve-itinerary-page #content .ve-itinerary-step { padding:12px 12px 24px!important; }
 body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-step-copy { padding:0 8px!important; }
 body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-step-media { padding:8px!important; border-radius:16px; }
 body.ve-itinerary-page .ve-itinerary-shortcuts { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
 body.ve-itinerary-page .ve-itinerary-shortcuts a { justify-content:center; min-height:46px; }
 body.ve-itinerary-page .ve-itinerary-index ol { grid-template-columns:minmax(0,1fr); }
 body.ve-itinerary-page #content .ve-itinerary-step .ve-itinerary-fact { padding:12px; font-size:14px; }
}
@media print {
 body.ve-itinerary-page { background:white; }
 body.ve-itinerary-page .ve-itinerary-navigation { display:none; }
 body.ve-itinerary-page #content .ve-itinerary-step { box-shadow:none; break-inside:avoid; }
}

/* Invitation au diaporama : une photographie réelle du parcours et une action visible. */
body.ve-itinerary-page #content .ve-itinerary-slideshow { padding:0!important; overflow:hidden; text-align:left; background:#f0f7f9; }
body.ve-itinerary-page #content .ve-itinerary-slideshow > .container { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:0; }
body.ve-itinerary-page #content .ve-itinerary-slideshow > .container::before,
body.ve-itinerary-page #content .ve-itinerary-slideshow > .container::after { content:none!important; display:none!important; }
body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-photo { grid-column:1; grid-row:1; float:none; margin:0; min-width:0; }
body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-copy { grid-column:2; grid-row:1; float:none; margin:0; }
body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-photo { display:flex; align-items:center; justify-content:center; height:100%; padding:22px; background:#e4eff2; }
body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-photo img { display:block; width:100%; height:auto; max-height:420px; object-fit:contain; border-radius:16px; }
body.ve-itinerary-page #content .ve-slideshow-copy { padding:clamp(24px,3vw,44px); min-width:0; }
body.ve-itinerary-page #content .ve-slideshow-copy .ve-slideshow-eyebrow { margin:0 0 14px; color:#087d97; font:800 12px/1.5 Arial,sans-serif; letter-spacing:.1em; }
body.ve-itinerary-page #content .ve-slideshow-copy h2 { margin:0 0 18px; font-size:clamp(24px,2.1vw,34px); line-height:1.25; }
body.ve-itinerary-page #content .ve-slideshow-copy p { margin:0 0 22px; }
body.ve-itinerary-page #content .ve-slideshow-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:14px 20px; border-radius:14px; background:#ff7657; color:white; font:700 15px/1.4 Arial,sans-serif; text-decoration:none; white-space:nowrap; }
body.ve-itinerary-page #content .ve-slideshow-button:focus-visible { outline:3px solid #087d97; outline-offset:4px; }

/* Ordinateur : photographie compacte, entière et centrée à côté du texte. */
@media (min-width:701px) {
 body.ve-itinerary-page #content .ve-itinerary-slideshow > .container { grid-template-columns:minmax(0,340px) minmax(0,1fr); }
 body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-photo { box-sizing:border-box; padding:20px; }
 body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-photo img { width:100%; max-width:300px; max-height:210px; }
 body.ve-itinerary-page #content .ve-slideshow-copy { padding:24px 28px; }
 body.ve-itinerary-page #content .ve-slideshow-copy h2 { font-size:clamp(22px,1.7vw,28px); margin-bottom:12px; }
 body.ve-itinerary-page #content .ve-slideshow-copy p { font-size:16px; line-height:1.6; margin-bottom:16px; }
}

@media(max-width:700px) {
 body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-copy { grid-column:1; grid-row:2; }
 body.ve-itinerary-page #content .ve-itinerary-slideshow > .container { grid-template-columns:minmax(0,1fr); }
 body.ve-itinerary-page #content .ve-itinerary-slideshow .ve-slideshow-photo { padding:12px; }
 body.ve-itinerary-page #content .ve-slideshow-copy { padding:24px 20px; }
 body.ve-itinerary-page #content .ve-slideshow-copy h2 { font-size:25px; }
 body.ve-itinerary-page #content .ve-slideshow-button { width:100%; }
}

/* Adresses des parcours : informations pratiques, distinctes des titres. */
body.ve-itinerary-page #content p.ve-itinerary-address { margin:8px 0 16px; color:#536a77; font:400 16px/1.65 Arial,sans-serif; letter-spacing:normal; text-transform:none; }
