/* ==========================================================================
   Article de guide · Service VTC Reims (25/10/2026, étape 3 de la refonte)
   Gabarit mu-plugins/vtc-tpl/single-vtc_guide-pv.php, après pages-vitrine.css.
   Habille le texte existant des guides (briques svc-*) sans le réécrire.
   ========================================================================== */

/* ---------- Héros ---------- */
body.pv-on .gs-hero { min-height: clamp(460px, 64vh, 640px); padding-bottom: clamp(40px, 6vh, 72px); }
body.pv-on .gs-hero h1 { font-size: clamp(38px, 4.8vw, 64px) !important; line-height: 1.06 !important; max-width: 19ch; }
html[lang^="ja"] body.pv-on .gs-hero h1 { font-size: clamp(28px, 3.6vw, 46px) !important; line-height: 1.35 !important; max-width: 24em; }
body.pv-on .gs-crumbs { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 20px; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--pv-gold); font-weight: 500; }
body.pv-on .gs-crumbs a { color: var(--pv-gold) !important; border-bottom: 1px solid rgba(201,169,97,.4); }
body.pv-on .gs-crumbs a:hover { color: var(--pv-gold-2) !important; }
body.pv-on .gs-crumbs span[aria-hidden] { color: rgba(201,169,97,.5); }
body.pv-on .gs-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0 !important; padding: 18px 0 0 !important; border-top: 1px solid rgba(201,169,97,.28); max-width: 760px; }
body.pv-on .gs-meta li { margin: 0; font-size: 12.5px !important; letter-spacing: .08em; text-transform: uppercase; color: rgba(225,224,204,.75) !important; }
html[lang^="ja"] body.pv-on .gs-meta li { letter-spacing: .02em; }

/* ---------- Mise en page : article + sommaire collant ---------- */
body.pv-on .gs-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: clamp(28px, 4vw, 56px); padding-bottom: clamp(40px, 6vw, 72px); }
@media (min-width: 1100px) {
  body.pv-on .gs-layout { grid-template-columns: minmax(0, 760px) 280px; justify-content: space-between; gap: 64px; }
  body.pv-on .gs-aside { grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--pv-head) + 28px); align-self: start; max-height: calc(100vh - var(--pv-head) - 56px); overflow-y: auto; scrollbar-width: thin; }
  body.pv-on .gs-body { grid-column: 1; grid-row: 1; }
}
@media (max-width: 1099px) {
  body.pv-on .gs-aside { grid-row: 1; margin: 0 0 32px; }
  body.pv-on .gs-aside-cta { display: none; }
}

/* Sommaire */
body.pv-on .gs-toc { border: 1px solid var(--pv-line); border-radius: 14px; background: rgba(20,20,20,.6); padding: 16px 18px; }
body.pv-on .gs-toc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-family: var(--pv-sans); font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--pv-gold); font-weight: 500; min-height: 28px; }
body.pv-on .gs-toc summary::-webkit-details-marker { display: none; }
body.pv-on .gs-toc summary::after { content: ""; width: 9px; height: 9px; border-right: 1.5px solid var(--pv-gold); border-bottom: 1.5px solid var(--pv-gold); transform: rotate(45deg) translate(-2px, -2px); transition: transform .3s var(--pv-ease); }
body.pv-on .gs-toc[open] summary::after { transform: rotate(225deg) translate(-2px, -2px); }
body.pv-on .gs-toc ol { list-style: none; margin: 14px 0 0 !important; padding: 0 !important; counter-reset: gs; }
body.pv-on .gs-toc li { counter-increment: gs; margin: 0 !important; }
body.pv-on .gs-toc a { position: relative; display: block; padding: 7px 0 7px 32px; font-size: 14px !important; line-height: 1.45; color: rgba(225,224,204,.72) !important; border-left: 1px solid transparent; transition: color .2s; }
body.pv-on .gs-toc a::before { content: counter(gs, decimal-leading-zero); position: absolute; left: 0; top: 8px; font-size: 11px; letter-spacing: .04em; color: rgba(201,169,97,.65); }
body.pv-on .gs-toc a:hover { color: var(--pv-cream) !important; }
body.pv-on .gs-toc a[aria-current="true"] { color: var(--pv-gold-2) !important; }
body.pv-on .gs-toc a[aria-current="true"]::before { color: var(--pv-gold-2); }
@media (min-width: 1100px) {
  body.pv-on .gs-toc { border: 0; background: none; padding: 0; }
  body.pv-on .gs-toc summary { pointer-events: none; }
  body.pv-on .gs-toc summary::after { display: none; }
}
body.pv-on .gs-aside-cta { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--pv-line-soft); }
body.pv-on .gs-aside-cta p { font-family: var(--pv-serif) !important; font-size: 20px !important; line-height: 1.3 !important; color: var(--pv-cream) !important; margin: 0 0 14px !important; }
html[lang^="ja"] body.pv-on .gs-aside-cta p { font-size: 16px !important; }
body.pv-on .gs-aside-cta .pv-btn { width: 100%; padding: 12px 16px; font-size: 12px; }

/* ---------- En bref (verdict) ---------- */
body.pv-on .gs-bref { margin: 0 0 clamp(36px, 5vw, 56px); padding: 22px 24px; border: 1px solid var(--pv-line); border-radius: 16px; background: linear-gradient(135deg, rgba(201,169,97,.09), rgba(201,169,97,.02)); }
body.pv-on .gs-bref dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px 24px; margin: 14px 0 0; }
body.pv-on .gs-bref dt { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--pv-dim); margin: 0 0 4px; }
body.pv-on .gs-bref dd { overflow-wrap: anywhere; margin: 0; font-family: var(--pv-serif); font-size: 21px; line-height: 1.25; color: var(--pv-cream); }
body.pv-on .gs-bref dd.gs-or { color: var(--pv-gold-2); }
html[lang^="ja"] body.pv-on .gs-bref dd { font-size: 17px; }

/* ---------- Le texte du guide ---------- */
body.pv-on .gs-body { min-width: 0; }
body.pv-on .gs-body .vtc-guide { padding: 0 !important; margin: 0 !important; }
body.pv-on .gs-body section.svc-section { padding: 0 !important; margin: 0 0 clamp(44px, 5.5vw, 72px) !important; background: none !important; border: 0 !important; scroll-margin-top: calc(var(--pv-head) + 24px); }
body.pv-on .gs-body .svc-container { max-width: none !important; width: auto !important; padding: 0 !important; margin: 0 !important; text-align: left !important; }
body.pv-on .gs-body .svc-section-header { text-align: left !important; margin: 0 0 22px !important; max-width: none !important; }
body.pv-on .gs-body .svc-section-header::after, body.pv-on .gs-body h2::after, body.pv-on .gs-body h2::before { display: none !important; content: none !important; }
body.pv-on .gs-body .eyebrow { display: inline-block; margin: 0 0 12px !important; padding: 0 !important; background: none !important; border: 0 !important; font-family: var(--pv-sans) !important; font-size: 11px !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--pv-gold) !important; font-weight: 500; -webkit-text-fill-color: currentColor !important; }
body.pv-on .gs-body h2 { font-size: clamp(29px, 3vw, 40px) !important; line-height: 1.14 !important; margin: 0 0 18px !important; text-align: left !important; scroll-margin-top: calc(var(--pv-head) + 24px); border: 0 !important; padding: 0 !important; }
html[lang^="ja"] body.pv-on .gs-body h2 { font-size: clamp(23px, 2.4vw, 30px) !important; line-height: 1.45 !important; }
body.pv-on .gs-body h3 { font-size: clamp(21px, 2vw, 25px) !important; margin: 30px 0 10px !important; text-align: left !important; }
html[lang^="ja"] body.pv-on .gs-body h3 { font-size: 19px !important; line-height: 1.5 !important; }
body.pv-on .gs-body p, body.pv-on .gs-body li { font-size: 17px !important; line-height: 1.75 !important; color: var(--pv-text) !important; text-align: left; }
html[lang^="ja"] body.pv-on .gs-body p, html[lang^="ja"] body.pv-on .gs-body li { font-size: 16px !important; line-height: 1.95 !important; }
body.pv-on .gs-body p { margin: 0 0 18px !important; }
body.pv-on .gs-body .svc-section-header p { color: var(--pv-dim) !important; font-size: 16.5px !important; }
body.pv-on .gs-body strong { color: var(--pv-cream); font-weight: 600; }
body.pv-on .gs-body :is(p, li, td, dd, blockquote) a:not(.cta):not(.btn-outline):not(.pv-btn) { color: var(--pv-gold) !important; text-decoration: underline !important; text-decoration-color: rgba(201,169,97,.45) !important; text-decoration-thickness: 1px !important; text-underline-offset: 3px; transition: color .2s, text-decoration-color .2s; }
body.pv-on .gs-body :is(p, li, td, dd, blockquote) a:not(.cta):not(.btn-outline):not(.pv-btn):hover { color: var(--pv-gold-2) !important; text-decoration-color: currentColor !important; }
body.pv-on .gs-body ul, body.pv-on .gs-body ol { margin: 0 0 22px !important; padding: 0 0 0 22px !important; }
body.pv-on .gs-body ul { list-style: none; padding-left: 0 !important; }
body.pv-on .gs-body ul > li { position: relative; padding-left: 22px; margin: 0 0 10px !important; }
body.pv-on .gs-body ul > li::before { content: ""; position: absolute; left: 2px; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: var(--pv-gold); opacity: .8; }
body.pv-on .gs-body ol > li { margin: 0 0 10px !important; padding-left: 4px; }
body.pv-on .gs-body ol > li::marker { color: var(--pv-gold); font-weight: 500; }
body.pv-on .gs-body blockquote { margin: 28px 0 !important; padding: 4px 0 4px 22px !important; border-left: 2px solid var(--pv-gold); font-family: var(--pv-serif); font-size: 22px; line-height: 1.5; color: var(--pv-cream); font-style: italic; }

/* Chapô */
body.pv-on .gs-body .vtc-guide-lead { font-family: var(--pv-serif) !important; font-size: clamp(21px, 2vw, 24px) !important; line-height: 1.55 !important; color: var(--pv-cream) !important; margin: 0 0 clamp(36px, 5vw, 56px) !important; padding: 0 0 clamp(28px, 4vw, 40px) !important; border-bottom: 1px solid var(--pv-line-soft); text-align: left !important; max-width: none !important; }
html[lang^="ja"] body.pv-on .gs-body .vtc-guide-lead { font-size: 18px !important; line-height: 1.9 !important; }

/* Cartes du texte (adresses, maisons, conseils) */
body.pv-on .gs-body .svc-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important; gap: 16px !important; margin: 8px 0 24px !important; }
body.pv-on .gs-body .svc-grid-2 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important; }
body.pv-on .gs-body .svc-card { position: relative; display: flex !important; flex-direction: column; margin: 0 !important; padding: 20px 20px 18px !important; border: 1px solid var(--pv-line) !important; border-radius: 14px !important; background: linear-gradient(180deg, #1b1b1b, #141414) !important; box-shadow: none !important; transform: none; transition: border-color .3s, transform .45s var(--pv-ease); text-align: left !important; }
body.pv-on .gs-body .svc-card:hover { border-color: rgba(201,169,97,.45) !important; }
body.pv-on .gs-body .svc-card::before, body.pv-on .gs-body .svc-card::after { display: none !important; }
body.pv-on .gs-body .svc-card-icon { width: 38px; height: 38px; display: inline-flex !important; align-items: center; justify-content: center; margin: 0 0 14px !important; border-radius: 50%; border: 1px solid var(--pv-line); background: rgba(201,169,97,.07) !important; color: var(--pv-gold) !important; font-size: 13px !important; line-height: 1; letter-spacing: 0; }
body.pv-on .gs-body .svc-card-icon svg { width: 18px; height: 18px; }
body.pv-on .gs-body .svc-card h3 { font-size: 21px !important; line-height: 1.25 !important; margin: 0 0 8px !important; }
html[lang^="ja"] body.pv-on .gs-body .svc-card h3 { font-size: 17px !important; line-height: 1.5 !important; }
body.pv-on .gs-body .svc-card h3 a { color: var(--pv-cream) !important; text-decoration: none !important; }
body.pv-on .gs-body .svc-card h3 a:hover { color: var(--pv-gold-2) !important; }
body.pv-on .gs-body .svc-card p { font-size: 15px !important; line-height: 1.62 !important; color: var(--pv-dim) !important; margin: 0 0 10px !important; }
body.pv-on .gs-body .svc-card p:last-child { margin-bottom: 0 !important; }
body.pv-on .gs-body .svc-card-meta { font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--pv-gold) !important; margin: 0 0 8px !important; }
body.pv-on .gs-body a.svc-card { color: inherit !important; text-decoration: none !important; }
body.pv-on .gs-body a.svc-card .link { margin-top: auto; padding-top: 10px; color: var(--pv-gold); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; }

/* Parcours prêts à réserver : un bandeau à part, en fin d'article */
body.pv-on .gs-body section.vtc-guide-parcours { margin-top: clamp(56px, 7vw, 88px) !important; padding: clamp(26px, 3.5vw, 40px) !important; border: 1px solid var(--pv-line) !important; border-radius: 20px; background: linear-gradient(160deg, rgba(201,169,97,.08), rgba(20,20,20,.6) 55%) !important; }
body.pv-on .gs-body section.vtc-guide-parcours .svc-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important; }
body.pv-on .gs-body section.vtc-guide-parcours .svc-card { background: rgba(10,10,10,.55) !important; }
body.pv-on .gs-body section.vtc-guide-parcours .svc-card-icon { display: none !important; }
body.pv-on .gs-body section.vtc-guide-parcours .svc-card h3 a::after { content: ""; position: absolute; inset: 0; }

/* FAQ */
body.pv-on .gs-body .svc-faq { border-top: 1px solid var(--pv-line); margin: 0 !important; }
body.pv-on .gs-body .svc-container > details:first-of-type, body.pv-on .gs-body .svc-section-header ~ details:first-of-type { border-top: 1px solid var(--pv-line) !important; }
body.pv-on .gs-body details { border: 0 !important; border-bottom: 1px solid var(--pv-line) !important; border-radius: 0 !important; background: none !important; margin: 0 !important; padding: 0 !important; box-shadow: none !important; }
body.pv-on .gs-body .svc-section-header + details.svc-faq-item, body.pv-on .gs-body .svc-section-header + .svc-faq { border-top: 1px solid var(--pv-line) !important; }
body.pv-on .gs-body details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 4px !important; font-family: var(--pv-serif) !important; font-size: 20px !important; line-height: 1.35 !important; color: var(--pv-cream) !important; background: none !important; }
html[lang^="ja"] body.pv-on .gs-body details summary { font-size: 16.5px !important; line-height: 1.6 !important; }
body.pv-on .gs-body details summary::-webkit-details-marker { display: none; }
body.pv-on .gs-body details summary::before { display: none !important; }
body.pv-on .gs-body details summary::after { content: "" !important; flex: none; width: 11px; height: 11px; 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); background: none !important; position: static !important; }
body.pv-on .gs-body details[open] summary::after { transform: rotate(225deg) translate(-3px, -3px); }
body.pv-on .gs-body details > *:not(summary) { margin: 0 4px 20px !important; padding: 0 !important; }

/* Tableaux : défilent dans leur cadre sur téléphone */
body.pv-on .gs-body .gs-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 10px 0 22px !important; border: 1px solid var(--pv-line); border-radius: 14px; background: rgba(20,20,20,.55); }
body.pv-on .gs-body .gs-table table { width: 100%; min-width: 520px; border-collapse: collapse !important; margin: 0 !important; font-size: 15px !important; border: 0 !important; background: none !important; }
body.pv-on .gs-body .gs-table th, body.pv-on .gs-body .gs-table td { padding: 12px 14px !important; border: 0 !important; border-bottom: 1px solid var(--pv-line-soft) !important; vertical-align: top; color: var(--pv-text) !important; font-size: 15px !important; line-height: 1.5 !important; background: none !important; }
body.pv-on .gs-body .gs-table tr:last-child td { border-bottom: 0 !important; }
body.pv-on .gs-body .gs-table th, body.pv-on .gs-body .gs-table thead td, body.pv-on .gs-body .gs-table tr:first-child th { font-family: var(--pv-sans) !important; font-size: 11.5px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--pv-gold) !important; font-weight: 500 !important; background: rgba(201,169,97,.06) !important; border-bottom: 1px solid var(--pv-line) !important; }
html[lang^="ja"] body.pv-on .gs-body .gs-table th { letter-spacing: .02em; font-size: 12.5px !important; }
body.pv-on .gs-body .gs-table tr { border: 0 !important; }
body.pv-on .gs-body .gs-table td:first-child { color: var(--pv-cream) !important; }
body.pv-on .gs-body .gs-table em { font-style: normal; color: var(--pv-dim); }
body.pv-on .gs-body .svc-note { font-size: 13.5px !important; color: var(--pv-dim) !important; margin: -8px 0 22px !important; }

/* Encadrés propres à un guide */
body.pv-on .gs-body .vtc-ot-partner { margin: 24px 0 !important; padding: 18px 20px !important; border: 1px solid var(--pv-line) !important; border-radius: 14px; background: rgba(20,20,20,.55) !important; }
body.pv-on .gs-body .vtc-ot-partner img { max-width: 140px; height: auto; }
body.pv-on .gs-body .vtc-fun { background: none !important; }
body.pv-on .gs-body img { max-width: 100%; height: auto; }

/* Boutons restés dans le texte (rares) */
body.pv-on .gs-body a.cta, body.pv-on .gs-body a.btn-outline { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 12px 22px; border-radius: 999px; font-family: var(--pv-sans) !important; font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none !important; }
body.pv-on .gs-body a.cta { background: linear-gradient(135deg, #c9a961, #d4b87a); color: #0a0a0a !important; }
body.pv-on .gs-body a.btn-outline { border: 1px solid rgba(201,169,97,.45); color: var(--pv-cream) !important; }

/* ---------- Guides liés ---------- */
body.pv-on .gs-rel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
body.pv-on .gs-rel-grid .pv-card-body h3 { font-size: 22px !important; line-height: 1.22 !important; }
html[lang^="ja"] body.pv-on .gs-rel-grid .pv-card-body h3 { font-size: 17px !important; line-height: 1.55 !important; }
body.pv-on .gs-rel-all { margin: 30px 0 0 !important; text-align: center; }
@media (max-width: 1023px) { body.pv-on .gs-rel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.pv-on .gs-rel-grid > :nth-child(3) { display: none; } }
@media (max-width: 640px) { body.pv-on .gs-rel-grid { grid-template-columns: minmax(0, 1fr); } body.pv-on .gs-rel-grid > :nth-child(3) { display: flex; } }

/* ---------- Téléphone ---------- */
@media (max-width: 767px) {
  body.pv-on .gs-hero { min-height: 0; padding: 104px 0 34px; }
  body.pv-on .gs-hero h1 { font-size: clamp(31px, 8.4vw, 40px) !important; max-width: none; }
  html[lang^="ja"] body.pv-on .gs-hero h1 { font-size: clamp(24px, 6.6vw, 30px) !important; }
  body.pv-on .gs-hero .pv-hero-lede { font-size: 16px !important; margin-bottom: 22px !important; }
  body.pv-on .gs-body p, body.pv-on .gs-body li { font-size: 16.5px !important; }
  body.pv-on .gs-body .vtc-guide-lead { font-size: 20px !important; }
  body.pv-on .gs-body .svc-grid { grid-template-columns: minmax(0, 1fr) !important; }
  body.pv-on .gs-body section.vtc-guide-parcours { padding: 22px 18px !important; }
  body.pv-on .gs-bref { padding: 18px; }
}
