/* Vitrines Perystyl : compléments de mise en page, au-dessus du kit (perystyl.css). Jetons du kit uniquement. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; }
[id] { scroll-margin-top: 24px; }
.vs-skip { position: absolute; left: 8px; top: -48px; padding: 8px 12px; background: var(--surface); color: var(--ink); border-radius: var(--radius-1); z-index: 10; }
.vs-skip:focus { top: 8px; }
.vs-status { justify-self: start; }
.py-hero__text .py-eyebrow .py-tile { width: 20px; height: 20px; }
.py-stage { margin: 0; }
.vs-chip { left: 36px; bottom: 20px; }
.vs-shot__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.vs-shot__text { margin: 0; font-size: 14px; line-height: 21px; color: var(--ink-2); }

.vs-section { padding: var(--space-8) 0; }
.vs-h2 { margin: 0 0 var(--space-6); }
.vs-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
.vs-feature { display: grid; align-content: start; gap: var(--space-3); border-top: 4px solid var(--app-tile); border-radius: var(--radius-3); padding: var(--space-6); }
.vs-feature h3 { margin: 0; }
.vs-feature p { margin: 0; color: var(--ink-2); font-size: 16px; line-height: 26px; }
.vs-num { font: 500 14px/20px var(--font-mono); color: var(--app); }

.vs-section--split { padding-top: 0; }
.vs-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-7); align-items: start; }
.vs-split h2 { margin: 0 0 var(--space-4); }
.vs-targets { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-2); }
.vs-targets li { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); background: var(--sunk); border-radius: var(--radius-2); font-weight: 500; }
.vs-targets li::before { content: ""; width: 8px; height: 8px; border-radius: var(--radius-dot); background: var(--app-tile); flex: none; }
.vs-price { display: grid; gap: var(--space-3); border-radius: var(--radius-3); padding: var(--space-6); box-shadow: var(--shadow-card); }
.vs-price h2 { margin: 0; }
.vs-price__line { margin: 0; font: 600 20px/28px var(--font-display); color: var(--ink); }
.vs-price p { margin: 0; }
.vs-price .py-hero__actions { align-items: center; margin-top: var(--space-2); }

@media (max-width: 880px) {
  .vs-features, .vs-split { grid-template-columns: 1fr; }
  .vs-section { padding: var(--space-7) 0; }
  .vs-section--split { padding-top: 0; }
  .vs-h2 { font-size: 30px; line-height: 36px; }
}
@media (max-width: 560px) {
  .py-site__wrap { padding: 0 var(--space-4); }
  .py-partof__inner { padding: var(--space-7) var(--space-4); }
  .py-site__header .py-site__wrap { gap: var(--space-3); }
  .vs-header-cta { display: none; }
  .py-hero { padding: var(--space-6) 0; }
  .py-stage { padding: 28px 16px 84px; }
  .vs-chip { left: 16px; right: 16px; }
  .py-partof__apps { grid-template-columns: 1fr; }
  .py-footer__cols { grid-template-columns: 1fr; }
  .py-shot__row { flex-wrap: wrap; }
}

/* perystyl.com */
.vs-suite-grid { display: grid; gap: var(--space-7); }
.vs-suite-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); align-items: end; }
.vs-suite-title { font-size: 68px; line-height: 70px; }
.vs-suite-hero { padding-bottom: var(--space-7); }
.vs-room-link { margin-top: var(--space-2); font-size: 14px; }
.vs-band { background: var(--sunk); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.vs-pricing { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--space-7); align-items: start; margin-bottom: var(--space-7); }
.vs-pricing h2 { margin: var(--space-2) 0 var(--space-4); }
.vs-muted-lead { color: var(--ink-2); margin: 0 0 var(--space-5); max-width: 36em; }
.vs-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0 0 var(--space-4); padding: 0; list-style: none; }
.vs-steps li { display: grid; gap: var(--space-1); padding: var(--space-4) var(--space-5); background: var(--surface); border: 1px solid var(--line); border-top: 4px solid var(--entablature); border-radius: var(--radius-2); }
.vs-step__n { font-size: 14px; color: var(--ink-2); }
.vs-step__v { font: 700 30px/36px var(--font-display); letter-spacing: -.02em; color: var(--ink); }
.vs-from { border-radius: var(--radius-3); }
.vs-from h3 { margin: 0 0 var(--space-3); }
.vs-from ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-3); }
.vs-from li { display: flex; align-items: center; gap: var(--space-3); font-size: 14px; line-height: 20px; color: var(--ink-2); }
.vs-from li .py-tile { width: 28px; height: 28px; }
.vs-from li strong { display: block; color: var(--ink); font-weight: 600; }
.vs-orders-title { margin: 0 0 var(--space-4); }
.vs-sec { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin: 0 0 var(--space-5); padding: 0; list-style: none; }
.vs-sec li { border-radius: var(--radius-3); }
.vs-sec h2, .vs-sec h3 { margin: 0 0 var(--space-2); }
.vs-sec p { margin: 0; color: var(--ink-2); }
.vs-origin { background: var(--app-soft, var(--sunk)); border-top: 1px solid var(--line); }
.vs-origin__inner { display: grid; gap: var(--space-4); max-width: 880px; }
.vs-origin h2, .vs-origin .lead { margin: 0; }
.vs-origin .lead { color: var(--ink-2); }
.vs-back { margin-top: var(--space-5); }
@media (max-width: 880px) {
  .vs-suite-top, .vs-pricing, .vs-sec { grid-template-columns: 1fr; }
  .vs-suite-title { font-size: 42px; line-height: 46px; }
  .py-orders { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .vs-steps { grid-template-columns: 1fr; } .py-portico__cols { grid-template-columns: 1fr; } .py-portico__col { min-height: 0; } }

/* Questions fréquentes (référencement et moteurs de réponse IA, 20/10/2026) */
.vs-faq > :not(h2) { max-width: 52rem; }
.vs-faq__item { border-top: 1px solid var(--line); padding: 1rem 0; }
.vs-faq__item:last-of-type { border-bottom: 1px solid var(--line); }
.vs-faq__item summary { cursor: pointer; list-style-position: inside; }
.vs-faq__item p { margin: .75rem 0 0; }
.vs-faq__meta { margin-top: 1.25rem; }
/* Remplace le style en ligne du bloc « fait partie de Perystyl » du kit, refusé par la CSP des vitrines */
.py-partof__apps a > span { font: inherit; color: inherit; }
.vs-notfound { list-style: none; padding: 0; display: flex; gap: 1.5rem; }

/* Navigation complémentaire statique : conserve le composant d'en-tête du kit. */
.vs-navigation, .vs-languages, .vs-mobile-nav { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
.vs-navigation { padding-top: var(--space-3); padding-bottom: var(--space-3); }
.vs-languages { margin-right: auto; }
.vs-navigation a, .vs-footer-note a { display: inline-flex; min-height: 44px; align-items: center; padding: 4px; }
.vs-languages [aria-current] { font-weight: 700; text-decoration: underline; }
.vs-languages details { position: relative; }
.vs-languages summary { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; min-width: 44px; padding: 4px; cursor: pointer; list-style: none; }
.vs-languages summary::-webkit-details-marker { display: none; }
.vs-languages summary::after { content: ''; width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); margin: 0 var(--space-2); }
.vs-language-globe { flex: none; }
.vs-language-list { position: absolute; inset-inline-start: 0; top: 100%; z-index: 4; display: grid; min-width: 10rem; max-width: calc(100vw - 2 * var(--space-4)); padding: var(--space-2); background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius-2); box-shadow: var(--shadow-card); }
.vs-language-list a { color: var(--ink); min-width: 44px; overflow-wrap: anywhere; }
.vs-footer-note .vs-language-list { top: auto; bottom: 100%; }
.vs-language-suggestion { background: var(--sunk); color: var(--ink); border-block: 1px solid var(--line); }
.vs-language-message { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding-block: var(--space-3); }
.vs-language-message p { margin: 0; }
.vs-language-message a, .vs-language-message button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 4px 8px; color: var(--ink); }
.vs-language-message button { font: inherit; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-1); cursor: pointer; }
.vs-language-suggestion[hidden], .vs-language-message[hidden] { display: none; }
.vs-languages summary:focus-visible, .vs-languages a:focus-visible, .vs-language-message a:focus-visible, .vs-language-message button:focus-visible { outline: 2px solid var(--action); outline-offset: 3px; }
.vs-languages--footer summary:focus-visible, .vs-languages--footer a:focus-visible { outline-color: currentColor; }
.vs-mobile-nav { display: none; }
.vs-footer-note { padding-bottom: var(--space-5); }
.vs-caption { margin-top: var(--space-5); color: var(--ink-2); font-size: 14px; line-height: 1.5; }
.py-stage:has(.vs-caption) { padding-bottom: 24px; }
.py-stage .vs-chip { position: static; margin-top: var(--space-4); }
.vs-sec dd { margin: 0; overflow-wrap: anywhere; }
.vs-sec code { font-size: .875em; }
@media (max-width: 880px) {
  .vs-mobile-nav { display: flex; flex-basis: 100%; }
}
@media (max-width: 560px) {
  .vs-notfound { flex-wrap: wrap; }
  .vs-shot__head { flex-wrap: wrap; }
  .py-shot__row > * { min-width: 0; overflow-wrap: anywhere; }
}

/* Commercial comparison: natural reading order and no fixed-width table. */
.vs-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.vs-plan { padding: 1.5rem; overflow-wrap: anywhere; }
.vs-conditions li, .vs-addons li { margin-block: .75rem; }
.vs-choice { display: flex; flex-direction: column; gap: .75rem; padding: 1.5rem; min-height: 44px; }
.vs-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 880px) {
  .vs-plans { grid-template-columns: 1fr; }
}

/* Enhanced menu: the static navigation remains usable without JavaScript. */
.vs-burger { display: none; min-height: 44px; gap: var(--space-2); }
.vs-mobile-nav[hidden] { display: none; }
.py-site__header { position: sticky; top: 0; z-index: 5; background: var(--surface); }
.py-site__header.vs-header--compact { padding-block: var(--space-1); }
.py-site__header.vs-header--compact .py-site__wrap { height: 48px; }
.vs-header--compact .py-tile { width: 28px; height: 28px; }
.vs-burger:focus-visible { outline: 2px solid var(--action); outline-offset: 3px; }
@media (max-width: 880px) {
  .vs-js .vs-burger { display: inline-flex; }
  .py-site__nav { display: none; }
  .vs-navigation { align-items: start; }
  .vs-mobile-nav { order: 3; flex-direction: column; align-items: stretch; }
  .py-site__cta { min-width: 0; }
  .py-site__cta .py-btn { white-space: normal; text-align: center; }
}
@media (min-width: 881px) {
  .py-site__nav { display: flex; }
}
/* Bandeau initial compact : au plus 20 % de la hauteur (360x640), defilement interne.
   L'etat preferences (classe posee par le script de consentement) peut depasser. */
.py-consent { max-height: 20vh; max-height: 20dvh; overflow: auto; box-sizing: border-box; }
.py-consent--preferences { max-height: calc(100vh - 2 * var(--space-4)); max-height: calc(100dvh - 2 * var(--space-4)); overflow: auto; }
.vs-screenshot { display: block; max-width: 100%; height: auto; border-radius: var(--radius-2); }
/* Meme rendu que les h3 du kit pour les titres de colonnes passes en h2. */
.py-footer h2 { margin: 0 0 var(--space-3); font: 600 13px/18px var(--font-text); color: var(--on-stylobate-muted); }
.py-footer ul a, .vs-notfound a, .vs-section ul > li > a:not(.vs-choice) { display: inline-flex; align-items: center; }
