/* ==========================================================================
   Pages vitrine · Service VTC Reims (25/10/2026)
   Transferts & aéroports, Visites en Champagne, Chauffeur à disposition,
   Histoire & mémoire, Guides. Chargée par mu-plugins/vtc-reims-pages-vitrine.php
   seulement sur ces pages (classe body.pv-on).
   Les règles portent « body.pv-on » : les pages EN/JA ont des règles
   :is(body.page-id-…) h2 { … !important } qu'il faut dépasser.
   ========================================================================== */

body.pv-on {
  --pv-bg: #0a0a0a;
  --pv-surface: #141414;
  --pv-surface-2: #1b1b1b;
  --pv-line: rgba(201, 169, 97, .22);
  --pv-line-soft: rgba(201, 169, 97, .12);
  --pv-gold: #c9a961;
  --pv-gold-2: #d4b87a;
  --pv-cream: #E1E0CC;
  --pv-text: rgba(225, 224, 204, .86);
  --pv-dim: rgba(225, 224, 204, .68);
  --pv-ease: cubic-bezier(.16, 1, .3, 1);
  --pv-head: 75px;
  --pv-serif: 'Cormorant Garamond', Georgia, serif;
  --pv-sans: 'Inter', system-ui, sans-serif;
}
html[lang^="ja"] body.pv-on {
  --pv-serif: 'Noto Serif JP', 'Cormorant Garamond', serif;
  --pv-sans: 'Noto Sans JP', 'Inter', sans-serif;
}
@media (max-width: 767px) { body.pv-on { --pv-head: 0px; } }

/* Surfaces du navigateur */
body.pv-on ::selection { background: rgba(201, 169, 97, .85); color: #0a0a0a; }
body.pv-on .pv a:focus-visible,
body.pv-on .pv button:focus-visible,
body.pv-on .pv input:focus-visible,
body.pv-on .pv summary:focus-visible { outline: 2px solid var(--pv-gold-2); outline-offset: 3px; border-radius: 8px; }
html:has(body.pv-on) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(body.pv-on) { scroll-behavior: auto; } }

/* --------------------------------------------------------------------------
   Base des sections
   -------------------------------------------------------------------------- */
body.pv-on .pv { color: var(--pv-text); font-family: var(--pv-sans); position: relative; z-index: 2; }
body.pv-on .vtc-bubbles { z-index: 0 !important; }
/* les bulles décoratives du site (.vtc-bubbles, fixe, z-index 1) passent derrière le contenu, plus jamais sur un prix ou un texte */
body.pv-on .pv-sec { padding: clamp(56px, 8vw, 104px) 0; position: relative; scroll-margin-top: calc(var(--pv-head) + 64px); }
body.pv-on .pv-sec.pv-tight { padding-top: clamp(32px, 4vw, 56px); }
body.pv-on .pv-sec.pv-alt { background: linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.008)); border-top: 1px solid rgba(201,169,97,.08); border-bottom: 1px solid rgba(201,169,97,.08); }
body.pv-on .pv-wrap { max-width: 1180px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px); }
body.pv-on .pv-wrap.pv-narrow { max-width: 880px; }

body.pv-on .pv h2,
body.pv-on .pv h3,
body.pv-on .pv h4 { font-family: var(--pv-serif) !important; color: var(--pv-cream) !important; font-weight: 500 !important; letter-spacing: -.005em; text-wrap: balance; }
body.pv-on .pv h2 { font-size: clamp(30px, 3.6vw, 46px) !important; line-height: 1.12 !important; margin: 0 0 .45em !important; }
body.pv-on .pv h2 em, body.pv-on .pv h3 em { color: var(--pv-gold) !important; font-style: italic; }
body.pv-on .pv h3 { font-size: clamp(21px, 2vw, 25px) !important; line-height: 1.2 !important; margin: 0 0 .4em !important; }
body.pv-on .pv p,
body.pv-on .pv li { color: var(--pv-text) !important; font-family: var(--pv-sans) !important; font-size: 15.5px; line-height: 1.7; }
body.pv-on .pv a { text-decoration: none !important; }
body.pv-on .pv-head { max-width: 760px; margin: 0 0 clamp(28px, 4vw, 48px); }
body.pv-on .pv-head.pv-center { margin-left: auto; margin-right: auto; text-align: center; }
body.pv-on .pv-head p { color: var(--pv-dim) !important; font-size: 16.5px !important; margin: 0 !important; max-width: 64ch; }
body.pv-on .pv-head.pv-center p { margin: 0 auto !important; }
body.pv-on .pv-label { display: inline-block; font-family: var(--pv-sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--pv-gold); font-weight: 500; }

/* Boutons */
body.pv-on .pv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 14px 26px; border-radius: 999px; font-family: var(--pv-sans) !important; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2; text-decoration: none !important; transition: transform .25s var(--pv-ease), box-shadow .25s var(--pv-ease), background-color .25s, color .25s, border-color .25s; cursor: pointer; }
body.pv-on .pv-btn-gold { background: linear-gradient(135deg, #c9a961, #d4b87a); color: #0a0a0a !important; border: 1px solid #c9a961; box-shadow: 0 10px 26px -14px rgba(201,169,97,.7); }
body.pv-on .pv-btn-gold:hover { color: #0a0a0a !important; transform: translateY(-1px); box-shadow: 0 16px 34px -14px rgba(201,169,97,.8); }
body.pv-on .pv-btn-line { background: transparent; color: var(--pv-cream) !important; border: 1px solid rgba(201,169,97,.45); }
body.pv-on .pv-btn-line:hover { border-color: var(--pv-gold); color: var(--pv-gold-2) !important; }
body.pv-on .pv-btn svg { width: 16px; height: 16px; flex: none; }
body.pv-on .pv-link { color: var(--pv-gold) !important; font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; }
body.pv-on .pv-link::after { content: ""; width: 18px; height: 1px; background: currentColor; transition: width .3s var(--pv-ease); }
body.pv-on .pv-link:hover::after { width: 28px; }
body.pv-on .pv-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* --------------------------------------------------------------------------
   Sommaire collant
   -------------------------------------------------------------------------- */
body.pv-on .pv-subnav { position: sticky; top: var(--pv-head); z-index: 90; background: rgba(10,10,10,.9); border-bottom: 1px solid var(--pv-line-soft); }
@supports (backdrop-filter: blur(8px)) { body.pv-on .pv-subnav { background: rgba(10,10,10,.74); backdrop-filter: blur(12px) saturate(1.2); -webkit-backdrop-filter: blur(12px) saturate(1.2); } }
body.pv-on .pv-subnav-in { max-width: 1180px; margin: 0 auto; padding: 0 clamp(8px, 3vw, 24px); position: relative; }
body.pv-on .pv-subnav ol { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%); }
body.pv-on .pv-subnav ol::-webkit-scrollbar { display: none; }
body.pv-on .pv-subnav li { flex: none; scroll-snap-align: start; margin: 0; font-size: inherit !important; }
body.pv-on .pv-subnav a { display: block; padding: 17px 14px 16px; font-family: var(--pv-sans) !important; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(225,224,204,.7) !important; white-space: nowrap; transition: color .2s; }
body.pv-on .pv-subnav a:hover { color: var(--pv-cream) !important; }
body.pv-on .pv-subnav a[aria-current="true"] { color: var(--pv-gold-2) !important; }
body.pv-on .pv-subnav-bar { position: absolute; bottom: -1px; left: 0; height: 2px; width: 0; background: linear-gradient(90deg, #c9a961, #e6cf98); border-radius: 2px; transition: transform .45s var(--pv-ease), width .45s var(--pv-ease), opacity .2s; opacity: 0; pointer-events: none; }
@media (max-width: 767px) { body.pv-on .pv-subnav a { padding: 15px 12px 14px; font-size: 11.5px; } }

/* --------------------------------------------------------------------------
   Révélations (le contenu reste visible sans script)
   -------------------------------------------------------------------------- */
html.pv-motion.pv-ready body.pv-on [data-pv-r] > * { opacity: 0; transform: translateY(18px); }
html.pv-motion.pv-ready body.pv-on [data-pv-r].pv-in > * { opacity: 1; transform: none; transition: opacity .7s var(--pv-ease), transform .8s var(--pv-ease); transition-delay: calc(min(var(--pv-i, 0), 6) * 70ms); }
html.pv-motion.pv-ready body.pv-on [data-pv-r].pv-now > * { transition: none; }

/* --------------------------------------------------------------------------
   Héros commun (pages refaites)
   -------------------------------------------------------------------------- */
body.pv-on .pv-hero { position: relative; isolation: isolate; min-height: clamp(520px, 78vh, 760px); display: flex; align-items: flex-end; padding: clamp(120px, 18vh, 200px) 0 clamp(48px, 8vh, 88px); overflow: hidden; background: #0a0a0a; }
body.pv-on .pv-hero-media { position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; transform: scale(1.04); }
html.pv-motion body.pv-on .pv-hero-media { animation: pvHeroIn 2.4s var(--pv-ease) both; }
@keyframes pvHeroIn { from { transform: scale(1.12); filter: brightness(.6); } to { transform: scale(1.04); filter: none; } }
body.pv-on .pv-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.18) 32%, rgba(10,10,10,.62) 68%, #0a0a0a 100%), linear-gradient(90deg, rgba(10,10,10,.82) 0%, rgba(10,10,10,.35) 55%, rgba(10,10,10,.1) 100%); }
body.pv-on .pv-hero .pv-wrap { width: 100%; }
body.pv-on .pv-hero h1 { font-family: var(--pv-serif) !important; color: var(--pv-cream) !important; font-weight: 500 !important; font-size: clamp(42px, 6.4vw, 84px) !important; line-height: 1.02 !important; letter-spacing: -.02em; margin: 0 0 22px !important; max-width: 15ch; text-wrap: balance; text-shadow: 0 2px 24px rgba(0,0,0,.45); }
html[lang^="ja"] body.pv-on .pv-hero h1 { font-size: clamp(32px, 4.6vw, 58px) !important; line-height: 1.3 !important; max-width: 22em; letter-spacing: 0; }
html[lang^="ja"] body.pv-on .pv :is(h1, h2, h3, p, li, summary) { word-break: auto-phrase; line-break: strict; }
html[lang^="ja"] body.pv-on .pv :is(h1, h2, h3) em, html[lang^="ja"] body.pv-on .gd-hero h1 em { font-style: normal; }
body.pv-on .pv-hero h1 em { color: var(--pv-gold) !important; font-style: italic; }
body.pv-on .pv-hero-lede { font-size: clamp(16px, 1.5vw, 19px) !important; line-height: 1.6 !important; color: rgba(240,233,216,.9) !important; max-width: 56ch; margin: 0 0 30px !important; text-shadow: 0 1px 14px rgba(0,0,0,.5); }
body.pv-on .pv-hero-facts { list-style: none; margin: 34px 0 0 !important; padding: 22px 0 0 !important; border-top: 1px solid rgba(201,169,97,.28); display: flex; flex-wrap: wrap; gap: 14px 40px; max-width: 760px; }
body.pv-on .pv-hero-facts li { margin: 0; font-size: 13px !important; color: rgba(225,224,204,.82) !important; line-height: 1.4 !important; display: flex; align-items: baseline; gap: 10px; }
body.pv-on .pv-hero-facts strong { font-family: var(--pv-serif); font-size: 26px; font-weight: 500; color: var(--pv-gold-2); line-height: 1; white-space: nowrap; }
@media (max-width: 767px) {
  body.pv-on .pv-hero { min-height: 0; padding: 96px 0 40px; }
  body.pv-on .pv-hero::after { background: linear-gradient(180deg, rgba(10,10,10,.58) 0%, rgba(10,10,10,.66) 45%, rgba(10,10,10,.9) 80%, #0a0a0a 100%); }
  body.pv-on .pv-hero-facts { gap: 12px 22px; }
  body.pv-on .pv-hero-facts strong { font-size: 22px; }
}

/* --------------------------------------------------------------------------
   Recherche de trajet (Transferts)
   -------------------------------------------------------------------------- */
body.pv-on .pv-finder { border: 1px solid var(--pv-line); border-radius: 18px; background: linear-gradient(180deg, #171717, #111); box-shadow: 0 30px 70px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.04); overflow: hidden; }
body.pv-on .pv-f-tools { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: center; justify-content: space-between; padding: 18px clamp(16px, 2.4vw, 26px); border-bottom: 1px solid var(--pv-line-soft); }
body.pv-on .pv-f-search { position: relative; flex: 1 1 280px; max-width: 420px; display: block; margin: 0; }
body.pv-on .pv-f-search svg { position: absolute; left: 16px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: var(--pv-gold); pointer-events: none; }
body.pv-on .pv-f-search input { width: 100%; height: 48px; padding: 0 16px 0 44px; border-radius: 999px; border: 1px solid rgba(201,169,97,.3); background: rgba(255,255,255,.035); color: var(--pv-cream); font-family: var(--pv-sans); font-size: 16px; caret-color: var(--pv-gold); transition: border-color .2s, background-color .2s; -webkit-appearance: none; appearance: none; }
body.pv-on .pv-f-search input::placeholder { color: rgba(225,224,204,.55); }
body.pv-on .pv-f-search input:focus { outline: none; border-color: var(--pv-gold); background: rgba(255,255,255,.06); }
body.pv-on .pv-f-search input::-webkit-search-cancel-button { filter: sepia(1) saturate(3) hue-rotate(5deg); }
body.pv-on .pv-f-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -4px; padding: 2px 4px; }
body.pv-on .pv-f-tabs::-webkit-scrollbar { display: none; }
body.pv-on .pv-f-tab { flex: none; height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(201,169,97,.22); background: transparent; color: rgba(225,224,204,.75); font-family: var(--pv-sans); font-size: 12.5px; letter-spacing: .06em; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: background-color .25s, color .25s, border-color .25s; }
body.pv-on .pv-f-tab span { font-size: 11px; color: rgba(225,224,204,.5); font-variant-numeric: tabular-nums; }
body.pv-on .pv-f-tab:hover { color: var(--pv-cream); border-color: rgba(201,169,97,.5); }
body.pv-on .pv-f-tab[aria-selected="true"] { background: linear-gradient(135deg, #c9a961, #d4b87a); color: #0a0a0a; border-color: #c9a961; font-weight: 600; }
body.pv-on .pv-f-tab[aria-selected="true"] span { color: rgba(10,10,10,.6); }
body.pv-on .pv-f-body { display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { body.pv-on .pv-js .pv-f-body, html.pv-js body.pv-on .pv-f-body { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
body.pv-on .pv-f-list { list-style: none; margin: 0 !important; padding: 8px !important; max-height: none; }
html.pv-js body.pv-on .pv-f-list { max-height: 740px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(201,169,97,.4) transparent; }
body.pv-on .pv-f-list::-webkit-scrollbar { width: 8px; }
body.pv-on .pv-f-list::-webkit-scrollbar-thumb { background: rgba(201,169,97,.35); border-radius: 8px; }
body.pv-on .pv-f-group { margin: 0 !important; padding: 0 !important; list-style: none; }
body.pv-on .pv-f-group-title { display: block; padding: 16px 14px 6px; font-family: var(--pv-sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--pv-gold); }
body.pv-on .pv-f-item { margin: 0 !important; padding: 0 !important; list-style: none; }
body.pv-on .pv-f-item[hidden], body.pv-on .pv-f-group[hidden] { display: none !important; }
body.pv-on .pv-f-row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; padding: 13px 14px; border: 0; border-radius: 12px; background: transparent; color: inherit; text-align: left; cursor: pointer; font: inherit; transition: background-color .2s; position: relative; }
body.pv-on .pv-f-row:hover { background: rgba(201,169,97,.06); }
body.pv-on .pv-f-row[aria-expanded="true"], body.pv-on .pv-f-row[aria-pressed="true"] { background: rgba(201,169,97,.11); }
body.pv-on .pv-f-row[aria-pressed="true"]::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 2px; border-radius: 2px; background: var(--pv-gold); }
body.pv-on .pv-f-name { font-family: var(--pv-serif); font-size: 20px; color: var(--pv-cream); line-height: 1.2; }
html[lang^="ja"] body.pv-on .pv-f-name { font-size: 17px; }
body.pv-on .pv-f-meta { grid-column: 1; font-size: 12.5px; color: var(--pv-dim); letter-spacing: .02em; }
body.pv-on .pv-f-from { grid-column: 2; grid-row: 1 / span 2; text-align: right; font-size: 12px; color: var(--pv-dim); white-space: nowrap; }
body.pv-on .pv-f-from b { display: block; font-family: var(--pv-serif); font-size: 22px; font-weight: 500; color: var(--pv-gold-2); line-height: 1.1; font-variant-numeric: lining-nums; }
body.pv-on .pv-f-from i { font-style: normal; font-size: 12px; color: var(--pv-dim); }
body.pv-on .pv-f-empty { padding: 28px 16px; color: var(--pv-dim) !important; text-align: center; }
/* Détail : dans la liste sans script et sur téléphone ; dans le panneau à droite à partir de 900 px */
body.pv-on .pv-f-detail { padding: 4px 14px 22px; }
html.pv-js body.pv-on .pv-f-item .pv-f-detail { display: grid; grid-template-rows: 0fr; padding: 0 14px; transition: grid-template-rows .45s var(--pv-ease), padding .45s var(--pv-ease); }
html.pv-js body.pv-on .pv-f-item .pv-f-detail > div { overflow: hidden; min-height: 0; }
html.pv-js body.pv-on .pv-f-item.pv-open .pv-f-detail { grid-template-rows: 1fr; padding: 4px 14px 22px; }
@media (min-width: 900px) { html.pv-js body.pv-on .pv-f-item .pv-f-detail { display: none; } }
body.pv-on .pv-f-panel { display: none; }
@media (min-width: 900px) {
  html.pv-js body.pv-on .pv-f-panel { display: block; border-left: 1px solid var(--pv-line-soft); position: relative; min-height: 100%; }
  html.pv-js body.pv-on .pv-f-panel-in { position: sticky; top: calc(var(--pv-head) + 72px); padding: 22px 26px 26px; }
}
body.pv-on .pv-fd-photo { aspect-ratio: 16 / 9; border-radius: 12px; background-size: cover; background-position: center; background-color: #1d1d1d; margin: 0 0 18px; box-shadow: 0 18px 40px -26px rgba(0,0,0,.9); }
body.pv-on .pv-f-item .pv-fd-photo { aspect-ratio: 16 / 8; margin-top: 6px; }
body.pv-on .pv-fd-title { font-family: var(--pv-serif) !important; font-size: clamp(24px, 2.4vw, 30px) !important; color: var(--pv-cream) !important; margin: 0 0 6px !important; line-height: 1.15 !important; font-weight: 500 !important; }
body.pv-on .pv-f-item .pv-fd-title { display: none; }
body.pv-on .pv-fd-meta { font-size: 13px !important; color: var(--pv-gold) !important; letter-spacing: .04em; margin: 0 0 10px !important; }
body.pv-on .pv-fd-text { font-size: 15px !important; color: var(--pv-text) !important; margin: 0 0 18px !important; }
body.pv-on .pv-fd-prices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 14px; }
body.pv-on .pv-fd-price { border: 1px solid var(--pv-line); border-radius: 12px; padding: 12px 14px; background: rgba(255,255,255,.02); }
body.pv-on .pv-fd-price span { display: block; font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--pv-dim); margin-bottom: 4px; }
body.pv-on .pv-fd-price b { font-family: var(--pv-serif); font-size: 28px; font-weight: 500; color: var(--pv-cream); line-height: 1.1; font-variant-numeric: lining-nums; }
body.pv-on .pv-fd-price.pv-solo { grid-column: 1 / -1; }
body.pv-on .pv-fd-note { font-size: 12.5px !important; color: var(--pv-dim) !important; margin: 0 0 18px !important; line-height: 1.55 !important; }
body.pv-on .pv-fd-actions { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; }
html.pv-motion body.pv-on .pv-f-panel-in.pv-swap > * { animation: pvSwap .5s var(--pv-ease) both; }
html.pv-motion body.pv-on .pv-f-panel-in.pv-swap > *:nth-child(2) { animation-delay: .04s; }
html.pv-motion body.pv-on .pv-f-panel-in.pv-swap > *:nth-child(3) { animation-delay: .08s; }
html.pv-motion body.pv-on .pv-f-panel-in.pv-swap > *:nth-child(n+4) { animation-delay: .12s; }
@keyframes pvSwap { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
html.pv-motion body.pv-on .pv-f-panel-in.pv-swap .pv-fd-photo { animation-name: pvSwapPhoto; animation-duration: .7s; }
@keyframes pvSwapPhoto { from { opacity: 0; clip-path: inset(0 0 0 100% round 12px); } to { opacity: 1; clip-path: inset(0 0 0 0 round 12px); } }
@media (max-width: 899px) {
  body.pv-on .pv-f-tools { padding: 14px; }
  body.pv-on .pv-f-search { max-width: none; flex-basis: 100%; }
  body.pv-on .pv-f-tabs { width: 100%; flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; gap: 8px; }
  body.pv-on .pv-f-tab { height: 38px; padding: 0 14px; }
  html.pv-js body.pv-on .pv-f-list { max-height: none; overflow: visible; }
  body.pv-on .pv-f-name { font-size: 19px; }
}

/* --------------------------------------------------------------------------
   Étapes (comment ça se passe)
   -------------------------------------------------------------------------- */
body.pv-on .pv-steps { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(var(--pv-n, 4), minmax(0, 1fr)); gap: 0; position: relative; counter-reset: pvs; }
body.pv-on .pv-steps::before { content: ""; position: absolute; left: 0; right: 0; top: 23px; height: 1px; background: linear-gradient(90deg, transparent, rgba(201,169,97,.45) 8%, rgba(201,169,97,.45) 92%, transparent); transform-origin: left; }
html.pv-motion.pv-ready body.pv-on .pv-steps[data-pv-r]::before { transform: scaleX(0); transition: transform 1.4s var(--pv-ease) .1s; }
html.pv-motion.pv-ready body.pv-on .pv-steps[data-pv-r].pv-in::before { transform: scaleX(1); }
html.pv-motion.pv-ready body.pv-on .pv-steps[data-pv-r].pv-now::before { transition: none; }
body.pv-on .pv-steps > li { margin: 0 !important; padding: 0 18px 0 0 !important; position: relative; counter-increment: pvs; }
body.pv-on .pv-step-dot { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #121212; border: 1px solid rgba(201,169,97,.5); color: var(--pv-gold); margin-bottom: 20px; position: relative; z-index: 1; box-shadow: 0 0 0 6px #0a0a0a; }
body.pv-on .pv-sec.pv-alt .pv-step-dot { box-shadow: 0 0 0 6px #0d0d0d; }
body.pv-on .pv-step-dot svg { width: 20px; height: 20px; }
body.pv-on .pv-steps h3 { font-size: 22px !important; margin-bottom: 8px !important; }
body.pv-on .pv-steps p { font-size: 14.5px !important; color: var(--pv-dim) !important; margin: 0 !important; }
@media (max-width: 899px) {
  body.pv-on .pv-steps { grid-template-columns: 1fr; gap: 26px; padding-left: 0 !important; }
  body.pv-on .pv-steps::before { left: 23px; right: auto; top: 10px; bottom: 10px; width: 1px; height: auto; background: linear-gradient(180deg, rgba(201,169,97,.5), rgba(201,169,97,.2)); transform-origin: top; }
  html.pv-motion.pv-ready body.pv-on .pv-steps[data-pv-r]::before { transform: scaleY(0); }
  html.pv-motion.pv-ready body.pv-on .pv-steps[data-pv-r].pv-in::before { transform: scaleY(1); }
  body.pv-on .pv-steps > li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 0 18px; padding: 0 !important; }
  body.pv-on .pv-step-dot { margin: 0; grid-row: 1 / span 2; }
}

/* --------------------------------------------------------------------------
   Frise (journée type, époques)
   -------------------------------------------------------------------------- */
body.pv-on .pv-tl { --pv-tl-w: 96px; position: relative; list-style: none; margin: 0 !important; padding: 0 !important; }
body.pv-on .pv-tl.pv-tl-wide { --pv-tl-w: 150px; }
body.pv-on .pv-tl::before, body.pv-on .pv-tl-progress { content: ""; position: absolute; left: calc(var(--pv-tl-w) + 23px); top: 8px; bottom: 8px; width: 1px; background: rgba(201,169,97,.2); }
body.pv-on .pv-tl-progress { background: linear-gradient(180deg, #e6cf98, #c9a961); width: 2px; margin-left: -.5px; bottom: auto; height: 0; box-shadow: 0 0 14px rgba(230,207,152,.45); }
body.pv-on .pv-tl > li { position: relative; display: grid; grid-template-columns: var(--pv-tl-w) minmax(0, 1fr); gap: 0 46px; margin: 0 !important; padding: 0 0 clamp(30px, 4vw, 48px) !important; }
body.pv-on .pv-tl > li:last-child { padding-bottom: 0 !important; }
body.pv-on .pv-tl-when { text-align: right; white-space: nowrap; font-family: var(--pv-serif); font-size: 26px; color: var(--pv-gold-2); line-height: 1.1; padding-top: 2px; font-variant-numeric: lining-nums; }
body.pv-on .pv-tl-when small { display: block; white-space: normal; font-family: var(--pv-sans); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--pv-dim); margin-top: 6px; }
body.pv-on .pv-tl.pv-tl-wide .pv-tl-when { font-size: 24px; }
body.pv-on .pv-tl > li::before { content: ""; position: absolute; left: calc(var(--pv-tl-w) + 17px); top: 9px; width: 13px; height: 13px; border-radius: 50%; background: #0a0a0a; border: 1px solid rgba(201,169,97,.6); transition: background-color .4s, box-shadow .4s, border-color .4s; z-index: 1; }
body.pv-on .pv-tl > li.pv-lit::before { background: #d4b87a; border-color: #e6cf98; box-shadow: 0 0 0 5px rgba(201,169,97,.14), 0 0 18px rgba(230,207,152,.55); }
body.pv-on .pv-tl-body h3 { margin-bottom: 8px !important; }
body.pv-on .pv-tl-body p { margin: 0 0 10px !important; color: var(--pv-text) !important; max-width: 62ch; }
body.pv-on .pv-tl-body .pv-link { margin-top: 6px; }
body.pv-on .pv-tl-price { font-family: var(--pv-serif) !important; font-size: 19px !important; color: var(--pv-gold-2) !important; margin: 2px 0 12px !important; }
body.pv-on .pv-tl-card { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 26px; align-items: start; }
body.pv-on .pv-tl-photo { aspect-ratio: 4 / 3; border-radius: 12px; background-size: cover; background-position: center; background-color: #1d1d1d; box-shadow: 0 20px 44px -28px rgba(0,0,0,.9); }
html.pv-motion body.pv-on .pv-tl > li .pv-tl-body, html.pv-motion body.pv-on .pv-tl > li .pv-tl-when { opacity: .6; transform: translateY(8px); transition: opacity .7s var(--pv-ease), transform .7s var(--pv-ease); }
html.pv-motion body.pv-on .pv-tl > li.pv-lit .pv-tl-body, html.pv-motion body.pv-on .pv-tl > li.pv-lit .pv-tl-when { opacity: 1; transform: none; }
@media (max-width: 767px) {
  body.pv-on .pv-tl::before, body.pv-on .pv-tl-progress { left: 6px; }
  body.pv-on .pv-tl > li { grid-template-columns: minmax(0, 1fr); padding-left: 34px !important; }
  body.pv-on .pv-tl > li::before { left: 0; top: 5px; }
  body.pv-on .pv-tl-when { text-align: left; font-size: 22px; margin-bottom: 8px; }
  body.pv-on .pv-tl-when small { display: inline; margin-left: 10px; }
  body.pv-on .pv-tl-card { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  body.pv-on .pv-tl-photo { aspect-ratio: 16 / 9; order: -1; }
}

/* --------------------------------------------------------------------------
   Cartes photo (grille ; défilement horizontal sur téléphone)
   -------------------------------------------------------------------------- */
body.pv-on .pv-cards { display: grid; grid-template-columns: repeat(var(--pv-cols, 3), minmax(0, 1fr)); gap: 20px; list-style: none; margin: 0 !important; padding: 0 !important; }
body.pv-on .pv-card { position: relative; display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid var(--pv-line); background: linear-gradient(180deg, #1c1c1c, #141414); color: inherit; transition: transform .45s var(--pv-ease), border-color .3s, box-shadow .45s var(--pv-ease); box-shadow: 0 24px 50px -36px rgba(0,0,0,.95); margin: 0 !important; }
body.pv-on a.pv-card:hover { transform: translateY(-3px); border-color: rgba(201,169,97,.5); box-shadow: 0 30px 60px -34px rgba(0,0,0,1); }
body.pv-on .pv-card-photo { aspect-ratio: 16 / 10; background-size: cover; background-position: center; background-color: #1d1d1d; transition: transform 1.1s var(--pv-ease); }
body.pv-on a.pv-card:hover .pv-card-photo { transform: scale(1.04); }
body.pv-on .pv-card-photo-wrap { overflow: hidden; }
body.pv-on .pv-card-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
body.pv-on .pv-card-body h3 { font-size: 23px !important; margin-bottom: 8px !important; }
body.pv-on .pv-card-body p { font-size: 14.5px !important; color: var(--pv-dim) !important; margin: 0 0 16px !important; flex: 1; }
body.pv-on .pv-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--pv-line-soft); font-size: 13px; color: var(--pv-dim); }
body.pv-on .pv-card-foot b { font-family: var(--pv-serif); font-size: 20px; font-weight: 500; color: var(--pv-gold-2); }
body.pv-on .pv-card .pv-label { margin-bottom: 10px; }
@media (max-width: 1023px) { body.pv-on .pv-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  body.pv-on .pv-cards.pv-scroll { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: clamp(16px, 4vw, 32px); gap: 14px; margin: 0 calc(-1 * clamp(16px, 4vw, 32px)) !important; padding: 0 clamp(16px, 4vw, 32px) 8px !important; scrollbar-width: none; }
  body.pv-on .pv-cards.pv-scroll::-webkit-scrollbar { display: none; }
  body.pv-on .pv-cards.pv-scroll > * { flex: 0 0 82%; scroll-snap-align: start; }
  body.pv-on .pv-cards:not(.pv-scroll) { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   Tarifs (tuiles)
   -------------------------------------------------------------------------- */
body.pv-on .pv-prices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
body.pv-on .pv-price { border: 1px solid var(--pv-line); border-radius: 16px; padding: 24px 24px 22px; background: linear-gradient(180deg, #1b1b1b, #131313); position: relative; }
body.pv-on .pv-price.pv-feat { border-color: rgba(201,169,97,.55); background: linear-gradient(180deg, #211d14, #15130f); }
body.pv-on .pv-price h3 { font-size: 24px !important; margin-bottom: 2px !important; }
body.pv-on .pv-price .pv-sub { font-size: 13px !important; color: var(--pv-dim) !important; margin: 0 0 18px !important; }
body.pv-on .pv-price dl { margin: 0; display: grid; gap: 10px; }
body.pv-on .pv-price dl div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 10px; border-top: 1px solid var(--pv-line-soft); }
body.pv-on .pv-price dt { font-size: 13.5px; color: var(--pv-dim); }
body.pv-on .pv-price dd { margin: 0; font-family: var(--pv-serif); font-size: 30px; color: var(--pv-cream); line-height: 1; font-variant-numeric: lining-nums; }
body.pv-on .pv-price dd.pv-quote { font-size: 22px; color: var(--pv-gold-2); }
body.pv-on .pv-note { font-size: 13px !important; color: var(--pv-dim) !important; margin: 18px 0 0 !important; }
@media (max-width: 899px) { body.pv-on .pv-prices { grid-template-columns: minmax(0, 1fr); } }

/* --------------------------------------------------------------------------
   Deux colonnes, listes, puces de liens
   -------------------------------------------------------------------------- */
body.pv-on .pv-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.pv-on .pv-split.pv-top { align-items: start; }
body.pv-on .pv-split-photo { aspect-ratio: 4 / 3; border-radius: 18px; background-size: cover; background-position: center; background-color: #1d1d1d; box-shadow: 0 30px 70px -40px rgba(0,0,0,1); }
@media (max-width: 899px) { body.pv-on .pv-split { grid-template-columns: minmax(0, 1fr); } }
body.pv-on .pv-checks { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 12px; }
body.pv-on .pv-checks li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; }
body.pv-on .pv-checks svg { width: 22px; height: 22px; color: var(--pv-gold); margin-top: 1px; }
body.pv-on .pv-checks.pv-plus svg { color: rgba(225,224,204,.55); }
body.pv-on .pv-box { border: 1px solid var(--pv-line); border-radius: 16px; padding: clamp(22px, 3vw, 30px); background: linear-gradient(180deg, #191919, #121212); }
body.pv-on .pv-box h3 { margin-bottom: 18px !important; }
body.pv-on .pv-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0 !important; padding: 0 !important; }
body.pv-on .pv-chips li { margin: 0 !important; }
body.pv-on .pv-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; border-radius: 999px; border: 1px solid rgba(201,169,97,.26); color: var(--pv-cream) !important; font-size: 14px; transition: border-color .2s, color .2s, background-color .2s; }
body.pv-on .pv-chips a:hover { border-color: var(--pv-gold); color: var(--pv-gold-2) !important; background: rgba(201,169,97,.06); }
body.pv-on .pv-zones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
body.pv-on .pv-zones h3 { font-size: 22px !important; margin-bottom: 14px !important; }
@media (max-width: 899px) { body.pv-on .pv-zones { grid-template-columns: minmax(0, 1fr); } }

/* Bandeau d'information sous le héros */
body.pv-on .pv-callout { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 14px; align-items: start; margin: clamp(-28px, -3vw, -16px) 0 0 !important; padding: 18px 22px !important; border: 1px solid var(--pv-line); border-radius: 14px; background: linear-gradient(135deg, rgba(201,169,97,.10), rgba(201,169,97,.03)); font-size: 14.5px !important; line-height: 1.6 !important; color: var(--pv-text) !important; position: relative; z-index: 3; }
body.pv-on .pv-callout svg { width: 24px; height: 24px; color: var(--pv-gold); margin-top: 1px; }
/* Formules : trois lignes prix */
body.pv-on .pv-formats { margin: 0; display: grid; gap: 0; }
body.pv-on .pv-formats div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-top: 1px solid var(--pv-line-soft); }
body.pv-on .pv-formats dt { font-size: 15px; color: var(--pv-text); }
body.pv-on .pv-formats dd { margin: 0; font-family: var(--pv-serif); font-size: 26px; color: var(--pv-gold-2); white-space: nowrap; font-variant-numeric: lining-nums; }
@media (max-width: 599px) { body.pv-on .pv-formats div { flex-direction: column; gap: 2px; } }
/* Sélecteur de la page Champagne (vx-chooser) : derrière les bulles plus jamais, prix lisibles, carte « sur mesure » */
body.pv-on #choisir { position: relative; z-index: 2; }
body.pv-on #choisir .vx-row strong { font: 500 26px/1.15 var(--pv-serif) !important; color: var(--pv-cream) !important; }
body.pv-on #choisir .vx-row > span { font-size: 12px; }
/* Prix convertis en dollars (EN) ou en yens (JA) : les deux prix l'un sous l'autre, ils sortaient de la carte sur ordinateur (Cyril 25/10/2026) */
html[lang^="en"] body.pv-on #choisir .vx-row, html[lang^="ja"] body.pv-on #choisir .vx-row { grid-template-columns: minmax(0, 1fr) !important; }
html[lang^="en"] body.pv-on #choisir .vx-row strong, html[lang^="ja"] body.pv-on #choisir .vx-row strong { white-space: normal !important; }
body.pv-on #choisir .vx-row .vtc-price-eur-ref { font: 400 13px/1.3 var(--pv-sans) !important; color: var(--pv-dim) !important; }
body.pv-on #choisir .vx-note { font-size: 13px; }
body.pv-on #choisir .svc-card h3 > span { font-size: .72em !important; opacity: .8 !important; white-space: nowrap; }
body.pv-on #choisir .vx-advice .vx-advice-title { font-size: 24px !important; line-height: 1.2 !important; }
body.pv-on #choisir .vx-advice { justify-content: flex-start !important; gap: 6px; }
body.pv-on #choisir .vx-advice p { flex: 0 0 auto !important; }
body.pv-on #choisir .vx-advice .link { margin-top: auto; }
@media (min-width: 1024px) { body.pv-on #choisir #premiere-visite .svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
body.pv-on .vtc-spoke-links { position: relative; z-index: 2; }

/* Capacités de la flotte */
body.pv-on .pv-fleet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 26px 0 0; border-top: 1px solid var(--pv-line); }
body.pv-on .pv-fleet div { padding: 16px 14px 0 0; }
body.pv-on .pv-fleet dt { font-family: var(--pv-serif); font-size: 24px; color: var(--pv-cream); line-height: 1.1; }
body.pv-on .pv-fleet dd { margin: 4px 0 0; font-size: 13.5px; color: var(--pv-dim); }
body.pv-on .pv-f-group ul { list-style: none; margin: 0 !important; padding: 0 !important; }

/* Engagements : rangée en ligne, sans cartes */
body.pv-on .pv-promises { display: grid; grid-template-columns: repeat(var(--pv-n, 4), minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--pv-line); border-bottom: 1px solid var(--pv-line); list-style: none; margin: 0 !important; padding: 0 !important; }
body.pv-on .pv-promises > li { padding: 26px 22px !important; margin: 0 !important; border-left: 1px solid var(--pv-line-soft); }
body.pv-on .pv-promises > li:first-child { border-left: 0; }
@media (min-width: 900px) {
  body.pv-on .pv-promises.pv-n3 > li:nth-child(3n+1) { border-left: 0; }
  body.pv-on .pv-promises.pv-n3 > li:nth-child(n+4) { border-top: 1px solid var(--pv-line-soft); }
}
body.pv-on .pv-promises svg { width: 24px; height: 24px; color: var(--pv-gold); margin-bottom: 14px; }
body.pv-on .pv-promises h3 { font-size: 21px !important; margin-bottom: 6px !important; }
body.pv-on .pv-promises p { font-size: 14px !important; color: var(--pv-dim) !important; margin: 0 !important; }
@media (max-width: 899px) {
  body.pv-on .pv-promises { grid-template-columns: minmax(0, 1fr); }
  body.pv-on .pv-promises > li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 2px 14px; border-left: 0; padding: 18px 4px !important; }
  body.pv-on .pv-promises > li:nth-child(n+2) { border-top: 1px solid var(--pv-line-soft); }
  body.pv-on .pv-promises svg { grid-row: 1 / span 2; margin: 2px 0 0; }
}

/* Appel final */
body.pv-on .pv-route .pv-actions { justify-content: flex-end; }
@media (max-width: 899px) { body.pv-on .pv-route .pv-actions { justify-content: flex-start; } }
body.pv-on .pv-final { text-align: center; padding: clamp(64px, 9vw, 110px) 0; position: relative; overflow: hidden; }
body.pv-on .pv-final::before { content: ""; position: absolute; left: 50%; top: 0; width: min(560px, 80%); height: 1px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, rgba(201,169,97,.6), transparent); }
body.pv-on .pv-final h2 { margin-bottom: 14px !important; }
body.pv-on .pv-final p { color: var(--pv-dim) !important; max-width: 56ch; margin: 0 auto 28px !important; }
body.pv-on .pv-final .pv-actions { justify-content: center; }

/* FAQ */
body.pv-on .pv-faq { max-width: 860px; margin: 0 auto; border-top: 1px solid var(--pv-line); }
body.pv-on .pv-faq details { border-bottom: 1px solid var(--pv-line); }
body.pv-on .pv-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 4px; font-family: var(--pv-serif); font-size: 21px; color: var(--pv-cream); line-height: 1.3; }
html[lang^="ja"] body.pv-on .pv-faq summary { font-size: 17px; }
body.pv-on .pv-faq summary::-webkit-details-marker { display: none; }
body.pv-on .pv-faq summary::after { content: ""; flex: none; width: 12px; height: 12px; border-right: 1.5px solid var(--pv-gold); border-bottom: 1.5px solid var(--pv-gold); transform: rotate(45deg) translate(-3px, -3px); transition: transform .35s var(--pv-ease); }
body.pv-on .pv-faq details[open] summary::after { transform: rotate(225deg) translate(-3px, -3px); }
body.pv-on .pv-faq details p { margin: 0 4px 22px !important; color: var(--pv-text) !important; max-width: 70ch; }
body.pv-on .pv-faq details p a, body.pv-on .pv a.pv-inline { color: var(--pv-gold) !important; text-decoration: underline !important; text-decoration-color: rgba(201,169,97,.5) !important; text-underline-offset: 3px; }
body.pv-on .pv-faq details p a:hover, body.pv-on .pv a.pv-inline:hover { color: var(--pv-gold-2) !important; }

/* --------------------------------------------------------------------------
   Guides
   -------------------------------------------------------------------------- */
body.pv-on .gd-hero { padding: clamp(40px, 6vw, 72px) 0 clamp(20px, 3vw, 32px); }
body.pv-on .gd-hero h1 { font-family: var(--pv-serif) !important; color: var(--pv-cream) !important; font-weight: 500 !important; font-size: clamp(44px, 6vw, 76px) !important; line-height: 1.02 !important; letter-spacing: -.02em; margin: 0 0 18px !important; }
html[lang^="ja"] body.pv-on .gd-hero h1 { font-size: clamp(32px, 4.4vw, 52px) !important; line-height: 1.3 !important; letter-spacing: 0; }
body.pv-on .gd-hero h1 em { color: var(--pv-gold) !important; font-style: italic; }
body.pv-on .gd-hero p { font-size: 17.5px !important; color: var(--pv-dim) !important; max-width: 60ch; margin: 0 !important; }
body.pv-on .gd-feature { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); border: 1px solid var(--pv-line); border-radius: 20px; overflow: hidden; background: linear-gradient(180deg, #191919, #111); color: inherit; margin: 28px 0 0; box-shadow: 0 40px 80px -50px rgba(0,0,0,1); transition: border-color .3s; }
body.pv-on .gd-feature:hover { border-color: rgba(201,169,97,.5); }
body.pv-on .gd-feature-photo { min-height: 340px; background-size: cover; background-position: center; transition: transform 1.2s var(--pv-ease); }
body.pv-on .gd-feature:hover .gd-feature-photo { transform: scale(1.03); }
body.pv-on .gd-feature-photo-wrap { overflow: hidden; }
body.pv-on .gd-feature-body { padding: clamp(26px, 4vw, 44px); display: flex; flex-direction: column; justify-content: center; }
body.pv-on .gd-feature-body h2 { font-size: clamp(28px, 3vw, 40px) !important; margin: 12px 0 14px !important; }
body.pv-on .gd-feature-body p { color: var(--pv-dim) !important; margin: 0 0 22px !important; }
@media (max-width: 899px) { body.pv-on .gd-feature { grid-template-columns: minmax(0, 1fr); } body.pv-on .gd-feature-photo { min-height: 220px; } }

body.pv-on .gd-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; list-style: none; margin: 0 !important; padding: 0 !important; }
body.pv-on .gd-paths li { margin: 0 !important; }
body.pv-on .gd-path { width: 100%; height: 100%; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--pv-line); background: rgba(255,255,255,.02); color: var(--pv-cream); text-align: left; cursor: pointer; font: inherit; transition: border-color .25s, background-color .25s, transform .35s var(--pv-ease); }
body.pv-on .gd-path:hover { border-color: rgba(201,169,97,.55); background: rgba(201,169,97,.05); }
body.pv-on .gd-path[aria-pressed="true"] { border-color: var(--pv-gold); background: linear-gradient(135deg, rgba(201,169,97,.2), rgba(201,169,97,.08)); }
body.pv-on .gd-path svg { width: 22px; height: 22px; color: var(--pv-gold); justify-self: center; }
body.pv-on .gd-path-txt { display: flex; flex-direction: column; gap: 2px; }
body.pv-on .gd-path-txt b { font-family: var(--pv-serif); font-weight: 500; font-size: 19px; line-height: 1.2; color: var(--pv-cream); }
html[lang^="ja"] body.pv-on .gd-path-txt b { font-size: 16px; }
body.pv-on .gd-path-txt span { font-size: 13px; color: var(--pv-dim); line-height: 1.4; }
body.pv-on .gd-path-n { font-size: 12px; color: var(--pv-dim); font-variant-numeric: tabular-nums; border: 1px solid var(--pv-line-soft); border-radius: 999px; padding: 3px 9px; }
@media (max-width: 1023px) { body.pv-on .gd-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  body.pv-on .gd-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  body.pv-on .gd-path { grid-template-columns: 20px minmax(0, 1fr); gap: 10px; padding: 12px 12px; min-height: 58px; }
  body.pv-on .gd-path svg { width: 19px; height: 19px; }
  body.pv-on .gd-path-txt span, body.pv-on .gd-path-n { display: none; }
  body.pv-on .gd-path-txt b { font-size: 16.5px; line-height: 1.2; }
}

body.pv-on .gd-bar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin: 34px 0 22px; }
body.pv-on .gd-count { font-size: 14px !important; color: var(--pv-dim) !important; margin: 0 !important; }
body.pv-on .gd-count button { background: none; border: 0; color: var(--pv-gold); font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; padding: 0 0 0 8px; }
body.pv-on .gd-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; list-style: none; margin: 0 !important; padding: 0 !important; }
body.pv-on .gd-grid > li { margin: 0 !important; }
body.pv-on .gd-grid > li[hidden] { display: none !important; }
body.pv-on .gd-card { height: 100%; display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid var(--pv-line); background: linear-gradient(180deg, #1b1b1b, #131313); color: inherit; transition: transform .45s var(--pv-ease), border-color .3s, box-shadow .45s var(--pv-ease); box-shadow: 0 24px 50px -36px rgba(0,0,0,.95); }
body.pv-on .gd-card:hover { transform: translateY(-3px); border-color: rgba(201,169,97,.5); box-shadow: 0 30px 60px -34px rgba(0,0,0,1); }
body.pv-on .gd-card-photo-wrap { overflow: hidden; position: relative; }
body.pv-on .gd-card-photo { aspect-ratio: 16 / 10; background-size: cover; background-position: center; background-color: #1d1d1d; transition: transform 1.1s var(--pv-ease); }
body.pv-on .gd-card:hover .gd-card-photo { transform: scale(1.05); }
body.pv-on .gd-card-time { position: absolute; right: 12px; bottom: 12px; font-size: 11.5px; letter-spacing: .06em; color: #f0e9d8; background: rgba(10,10,10,.72); border: 1px solid rgba(201,169,97,.3); border-radius: 999px; padding: 5px 11px; }
body.pv-on .gd-card-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
body.pv-on .gd-card-body h3 { font-size: 22px !important; line-height: 1.2 !important; margin: 10px 0 10px !important; }
html[lang^="ja"] body.pv-on .gd-card-body h3 { font-size: 18px !important; line-height: 1.5 !important; }
body.pv-on .gd-card-body p { font-size: 14.5px !important; color: var(--pv-dim) !important; margin: 0 0 16px !important; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
body.pv-on .gd-card-cta { color: var(--pv-gold); font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 500; }
body.pv-on .gd-empty { padding: 40px 0; text-align: center; color: var(--pv-dim) !important; }
body.pv-on .gd-empty a { color: var(--pv-gold) !important; text-decoration: underline !important; text-underline-offset: 3px; }
body.pv-on .gd-grid { grid-auto-flow: dense; }
@media (min-width: 600px) {
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide { grid-column: span 2; }
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide .gd-card { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide .gd-card-photo-wrap { height: 100%; }
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide .gd-card-photo { aspect-ratio: auto; height: 100%; min-height: 300px; }
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide .gd-card-body { justify-content: center; padding: clamp(24px, 3vw, 36px); }
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide .gd-card-body h3 { font-size: clamp(24px, 2.2vw, 30px) !important; }
  body.pv-on .gd-grid:not(.gd-filtered) > li.gd-wide .gd-card-body p { flex: 0 0 auto; -webkit-line-clamp: 4; }
}
@media (max-width: 1023px) { body.pv-on .gd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  body.pv-on .gd-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  body.pv-on .gd-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
  body.pv-on .gd-card-photo-wrap { height: 100%; }
  body.pv-on .gd-card-photo { aspect-ratio: auto; height: 100%; min-height: 132px; }
  body.pv-on .gd-card-time { left: 8px; right: auto; bottom: 8px; font-size: 11px; padding: 3px 8px; white-space: nowrap; }
  body.pv-on .gd-card-body { padding: 14px 14px 14px 16px; }
  body.pv-on .gd-card-body h3 { font-size: 19px !important; margin: 6px 0 6px !important; }
  html[lang^="ja"] body.pv-on .gd-card-body h3 { font-size: 16px !important; }
  body.pv-on .gd-card-body p { -webkit-line-clamp: 3; font-size: 13.5px !important; margin-bottom: 8px !important; }
  body.pv-on .gd-card .pv-label { font-size: 11.5px; }
}

/* Réduction des animations : rien ne bouge, tout reste lisible */
@media (prefers-reduced-motion: reduce) {
  body.pv-on .pv-card, body.pv-on .gd-card, body.pv-on .pv-card-photo, body.pv-on .gd-card-photo, body.pv-on .gd-feature-photo { transition: none !important; }
  body.pv-on a.pv-card:hover, body.pv-on .gd-card:hover { transform: none; }
  body.pv-on a.pv-card:hover .pv-card-photo, body.pv-on .gd-card:hover .gd-card-photo, body.pv-on .gd-feature:hover .gd-feature-photo { transform: none; }
}

/* --------------------------------------------------------------------------
   Pages JA : le thème habille tous les <button> en pilule dorée (règle !important) ;
   nos boutons gardent leur dessin. Pages JA : le <main> a 16 px de marge intérieure,
   le contenu repasse pleine largeur.
   -------------------------------------------------------------------------- */
body.pv-on { overflow-x: clip; }
:is(html[lang^="ja"], html[lang^="en"]) body.pv-on .pv:not(main) { margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
:is(html[lang^="ja"], html[lang^="en"]) body.pv-on main#vtc-contenu { padding-top: 0 !important; }
:is(html[lang^="ja"], html[lang^="en"]) body.pv-on #choisir { margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; padding-left: clamp(16px, 4vw, 32px); padding-right: clamp(16px, 4vw, 32px); }
body.pv-on .pv button.pv-f-row { background: transparent !important; color: inherit !important; border: 0 !important; padding: 13px 14px !important; border-radius: 12px !important; font-weight: inherit !important; letter-spacing: normal !important; font-family: inherit !important; text-transform: none !important; }
body.pv-on .pv button.pv-f-row:hover { background: rgba(201,169,97,.06) !important; }
body.pv-on .pv button.pv-f-row[aria-expanded="true"], body.pv-on .pv button.pv-f-row[aria-pressed="true"] { background: rgba(201,169,97,.11) !important; }
body.pv-on .pv button.pv-f-tab { background: transparent !important; color: rgba(225,224,204,.75) !important; border: 1px solid rgba(201,169,97,.22) !important; padding: 0 16px !important; border-radius: 999px !important; font-weight: 400 !important; letter-spacing: .06em !important; font-family: var(--pv-sans) !important; text-transform: none !important; }
body.pv-on .pv button.pv-f-tab:hover { color: var(--pv-cream) !important; border-color: rgba(201,169,97,.5) !important; }
body.pv-on .pv button.pv-f-tab[aria-selected="true"] { background: linear-gradient(135deg, #c9a961, #d4b87a) !important; color: #0a0a0a !important; border-color: #c9a961 !important; font-weight: 600 !important; }
body.pv-on .pv button.gd-path { background: rgba(255,255,255,.02) !important; color: var(--pv-cream) !important; border: 1px solid var(--pv-line) !important; padding: 16px 18px !important; border-radius: 14px !important; font-weight: inherit !important; letter-spacing: normal !important; font-family: inherit !important; text-transform: none !important; }
body.pv-on .pv button.gd-path:hover { border-color: rgba(201,169,97,.55) !important; background: rgba(201,169,97,.05) !important; }
body.pv-on .pv button.gd-path[aria-pressed="true"] { background: linear-gradient(135deg, rgba(201,169,97,.2), rgba(201,169,97,.08)) !important; border-color: var(--pv-gold) !important; }
body.pv-on .pv button.gd-reset { background: none !important; color: var(--pv-gold) !important; border: 0 !important; padding: 0 0 0 8px !important; border-radius: 0 !important; letter-spacing: normal !important; font-weight: inherit !important; }
@media (max-width: 899px) { body.pv-on .pv button.pv-f-tab { padding: 0 14px !important; } }
@media (max-width: 599px) { body.pv-on .pv button.gd-path { padding: 12px !important; } }
html[lang^="ja"] body.pv-on .pv h1, html[lang^="ja"] body.pv-on .pv h2, html[lang^="ja"] body.pv-on .pv h3 { font-variant-numeric: lining-nums; }

/* Prix convertis : le yen (JA) et le dollar (EN) passent sous le prix en euros, en petit */
body.pv-on .pv :is(.pv-price dd, .pv-fd-price b, .pv-f-from b, .pv-formats dd, .pv-hero-facts strong) :is(.vtc-price-eur-ref, .pv-usd) { display: block; font-family: var(--pv-sans) !important; font-size: 11.5px !important; letter-spacing: .02em; line-height: 1.3; margin: 4px 0 0 !important; opacity: .72 !important; font-weight: 400; color: var(--pv-dim); white-space: nowrap; }
body.pv-on .pv .pv-f-from :is(.vtc-price-eur-ref, .pv-usd) { text-align: right; }
html[lang^="ja"] body.pv-on .pv .pv-price dd, html[lang^="ja"] body.pv-on .pv .pv-fd-price b { font-size: 26px; }

/* Barre basse « Appeler / Demander un devis » (téléphone), même dessin que celle des accueils */
body.pv-on .pv-mbar { display: none; }
@media (max-width: 767px) {
  body.pv-on .pv-mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(10,10,10,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid rgba(201,169,97,.28); transform: translateY(110%); visibility: hidden; transition: transform .35s cubic-bezier(.2,.7,.2,1), visibility 0s linear .35s; }
  body.pv-on .pv-mbar.show { transform: none; visibility: visible; transition: transform .35s cubic-bezier(.2,.7,.2,1); }
  body.pv-on .pv-mbar a { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: 999px; font: 600 14px/1 var(--pv-sans); letter-spacing: .02em; text-decoration: none !important; }
  body.pv-on .pv-mbar .mbar-tel { border: 1px solid rgba(225,224,204,.38); color: #E1E0CC !important; }
  body.pv-on .pv-mbar .mbar-devis { background: linear-gradient(135deg, #c9a961, #d9bd80); color: #0a0a0a !important; }
  body.pv-on .pv-mbar svg { width: 16px; height: 16px; flex: 0 0 auto; }
  body.pv-on.vtc-mbar-on .whatsapp-fab { bottom: 86px !important; }
  body.pv-on.vtc-mbar-on { padding-bottom: 72px; }
}
@media (prefers-reduced-motion: reduce) { body.pv-on .pv-mbar, body.pv-on .pv-mbar.show { transition: none !important; } }

/* Texte pour lecteurs d'écran et moteurs (nom du trajet dans « Voir la page »), ancre de l'ancien lien « Destinations » */
body.pv-on .pv-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
body.pv-on .pv-anchor { display: block; position: relative; top: 0; height: 0; scroll-margin-top: calc(var(--pv-head) + 64px); }

/* ===== Relecture « rendu et ergonomie » du 25/10/2026 ===== */
/* Sélecteur Champagne sur tablette (761-1100 px) : photo à gauche, texte puis prix à droite, rien de coupé */
@media (min-width: 761px) and (max-width: 1100px) {
  body.pv-on #choisir .vx-panel-head { grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); }
  body.pv-on #choisir .vxm-photo { grid-row: 1 / span 2; }
  body.pv-on #choisir .vx-panel-aside { grid-column: 2; }
}
/* Focus clavier : visible dans les bandes qui défilent, et sur le sélecteur et le bandeau des maisons */
body.pv-on .pv-f-tab:focus-visible, body.pv-on .pv-subnav a:focus-visible { outline-offset: -3px !important; }
body.pv-on #choisir a:focus-visible, body.pv-on #choisir button:focus-visible, body.pv-on #choisir [role="tab"]:focus-visible,
body.pv-on .vtc-spoke-links a:focus-visible { outline: 2px solid var(--pv-gold-2); outline-offset: 3px; border-radius: 8px; }
/* Lien direct #trajet-… : le bloc s'arrête sous l'en-tête et le sommaire */
body.pv-on [data-pv-finder], body.pv-on .pv-f-item { scroll-margin-top: calc(var(--pv-head) + 72px); }
/* Guide à la une : la photo remplit sa colonne */
body.pv-on .gd-feature-photo-wrap { display: flex; }
body.pv-on .gd-feature-photo { flex: 1 1 auto; }
/* Titres sur photo : une ombre douce sous le texte doré et le chapô */
body.pv-on .pv-hero h1, body.pv-on .pv-hero h1 em, body.pv-on .pv-hero .pv-hero-lede { text-shadow: 0 1px 16px rgba(0,0,0,.55); }
/* Téléphone : cibles tactiles de 44 px */
@media (max-width: 767px) {
  body.pv-on .pv-hero h1, body.pv-on .pv-hero h1 em, body.pv-on .pv-hero .pv-hero-lede { text-shadow: 0 2px 18px rgba(0,0,0,.72); }
  body.pv-on .pv-tl .pv-link, body.pv-on .pv-fd-actions .pv-link { display: inline-flex; align-items: center; min-height: 44px; }
  body.pv-on .pv button.pv-f-tab, body.pv-on .pv-f-tab { height: 44px !important; }
  body.pv-on .pv-chips a { min-height: 44px; }
  body.pv-on #choisir .vx-cta, body.pv-on #choisir .vx-help { display: inline-flex; align-items: center; min-height: 44px; }
}

/* ---------- Pages aéroports (étape 1, 25/10/2026) : tableau comparatif et repères du trajet ---------- */
body.pv-on .pv-compare-wrap { border: 1px solid var(--pv-line); border-radius: 16px; overflow: hidden; background: linear-gradient(180deg, #181818, #121212); }
body.pv-on table.pv-compare { width: 100%; border-collapse: collapse; margin: 0 !important; border: 0 !important; font-size: 15px; }
body.pv-on table.pv-compare th, body.pv-on table.pv-compare td { padding: 14px 18px !important; text-align: left; vertical-align: top; border: 0 !important; border-bottom: 1px solid var(--pv-line-soft) !important; background: none !important; color: var(--pv-cream) !important; line-height: 1.45 !important; }
body.pv-on table.pv-compare thead th { font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--pv-dim) !important; font-weight: 500 !important; }
body.pv-on table.pv-compare tbody th { font-family: var(--pv-serif); font-size: 19px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; }
body.pv-on table.pv-compare tr:last-child > * { border-bottom: 0 !important; }
body.pv-on table.pv-compare tr.pv-us > * { background: rgba(201,169,97,.08) !important; }
body.pv-on table.pv-compare tr.pv-us th { color: var(--pv-gold-2) !important; }
body.pv-on .pv-compare small { display: block; font-size: 12.5px; color: var(--pv-dim); margin-top: 2px; }
@media (max-width: 759px) {
  body.pv-on table.pv-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  body.pv-on table.pv-compare, body.pv-on table.pv-compare tbody, body.pv-on table.pv-compare tr { display: block; width: 100%; }
  body.pv-on table.pv-compare tr { padding: 14px 16px; border-bottom: 1px solid var(--pv-line-soft); }
  body.pv-on table.pv-compare tr:last-child { border-bottom: 0; }
  body.pv-on table.pv-compare th, body.pv-on table.pv-compare td { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0 !important; border: 0 !important; }
  body.pv-on table.pv-compare tbody th { padding-bottom: 8px !important; }
  body.pv-on table.pv-compare td::before { content: attr(data-l); color: var(--pv-dim); font-size: 13px; flex: 0 0 auto; }
  body.pv-on table.pv-compare td > span { text-align: right; }
  body.pv-on table.pv-compare td:last-child { display: block; padding-top: 8px !important; }
  body.pv-on table.pv-compare td:last-child::before { display: block; margin-bottom: 2px; }
  body.pv-on table.pv-compare td:last-child > span { display: block; text-align: left; color: var(--pv-dim); font-size: 14px; }
  body.pv-on table.pv-compare tr.pv-us { background: rgba(201,169,97,.08); }
  body.pv-on table.pv-compare tr.pv-us > * { background: none !important; }
}
body.pv-on .pv-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin: 0 0 28px; border: 1px solid var(--pv-line); border-radius: 16px; overflow: hidden; }
body.pv-on .pv-facts div { padding: 18px 20px; border-right: 1px solid var(--pv-line-soft); }
body.pv-on .pv-facts div:last-child { border-right: 0; }
body.pv-on .pv-facts dt { font-size: 12.5px; color: var(--pv-dim); margin: 0 0 6px; }
body.pv-on .pv-facts dd { margin: 0; font-family: var(--pv-serif); font-size: 26px; color: var(--pv-cream); line-height: 1.1; }
@media (max-width: 599px) { body.pv-on .pv-facts { grid-template-columns: 1fr 1fr; } body.pv-on .pv-facts div { border-bottom: 1px solid var(--pv-line-soft); } body.pv-on .pv-facts div:nth-child(2n) { border-right: 0; } }
body.pv-on .pv-prose p { margin: 0 0 14px !important; color: var(--pv-cream); line-height: 1.7 !important; }
body.pv-on .pv-prose p:last-child { margin-bottom: 0 !important; }

/* Pages maison (étape 2, 25/10/2026) : fiche de la maison, libellé à gauche et valeur en texte courant. */
body.pv-on .pv-fiche { margin: 0; border: 1px solid var(--pv-line); border-radius: 16px; padding: 6px 22px; align-self: start; }
body.pv-on .pv-fiche div { display: grid; grid-template-columns: 9.5em 1fr; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--pv-line-soft); }
body.pv-on .pv-fiche div:last-child { border-bottom: 0; }
body.pv-on .pv-fiche dt { margin: 0; font-size: 12.5px; letter-spacing: .04em; color: var(--pv-dim); padding-top: 2px; }
body.pv-on .pv-fiche dd { margin: 0; font-size: 15px; line-height: 1.5; color: var(--pv-cream); }
@media (max-width: 599px) { body.pv-on .pv-fiche { padding: 4px 16px; } body.pv-on .pv-fiche div { grid-template-columns: 1fr; gap: 3px; } }
