/* ==========================================================================
   Pickvinto — design system (fr-CA, hôtel & casino)
   Préfixe BEM : pv-
   Palette : crème papier / pin profond / bordeaux / laiton
   ========================================================================== */

:root {
  --pv-cream: #f4efe4;
  --pv-paper: #faf6ec;
  --pv-pine: #102e28;
  --pv-pine-2: #1a423a;
  --pv-pine-3: #0a201b;
  --pv-wine: #5a2130;
  --pv-wine-2: #73304a;
  --pv-brass: #bf9158;
  --pv-brass-2: #d9b176;
  --pv-ink: #1c1813;
  --pv-muted: #6f675c;
  --pv-line: rgba(28, 24, 19, .14);
  --pv-line-light: rgba(244, 239, 228, .18);
  --pv-serif: "Fraunces", Georgia, serif;
  --pv-sans: "Inter", -apple-system, "Segoe UI", sans-serif;
  --pv-shadow: 0 24px 60px -24px rgba(16, 46, 40, .35);
  --pv-shadow-sm: 0 12px 32px -16px rgba(16, 46, 40, .28);
  --pv-radius: 1.25rem;
  --pv-sec: clamp(4.5rem, 9vw, 8.5rem);
}

/* ---------- base ---------- */

html { scroll-behavior: smooth; }

body,html {
  font-family: var(--pv-sans);
  color: var(--pv-ink);
  background: var(--pv-cream);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::selection { background: var(--pv-brass); color: var(--pv-pine-3); }

img { max-width: 100%; }

a { color: var(--pv-pine); text-decoration: none; transition: color .25s ease; }
a:hover { color: var(--pv-wine); }

h1, h2, h3, .pv-serif { font-family: var(--pv-serif); font-weight: 400; letter-spacing: -.01em; }

p { line-height: 1.75; }

/* Lien souligné animé, utilisé partout dans le texte */
.pv-link {
  color: var(--pv-wine);
  font-weight: 600;
  background-image: linear-gradient(var(--pv-brass), var(--pv-brass));
  background-size: 100% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size .3s ease, color .3s ease;
}
.pv-link:hover { background-size: 0 1px; color: var(--pv-pine); }

/* ---------- typographie ---------- */

.pv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--pv-brass);
}
.pv-eyebrow::before {
  content: "";
  width: 2.2rem;
  height: 1px;
  background: var(--pv-brass);
}
.pv-eyebrow--center::after {
  content: "";
  width: 2.2rem;
  height: 1px;
  background: var(--pv-brass);
}

.pv-title {
  font-size: clamp(2.1rem, 4.6vw, 3.6rem);
  line-height: 1.08;
  margin: 0;
}
.pv-title em { font-style: italic; color: var(--pv-wine); }
.pv-title--light em { color: var(--pv-brass-2); }

.pv-lead {
  font-size: clamp(1.02rem, 1.5vw, 1.2rem);
  color: var(--pv-muted);
  max-width: 38rem;
}

.pv-num {
  font-family: var(--pv-serif);
  font-size: clamp(.9rem, 1.4vw, 1.1rem);
  color: var(--pv-brass);
  letter-spacing: .1em;
}

/* ---------- boutons ---------- */

.pv-btn {
  --pv-btn-bg: var(--pv-pine);
  --pv-btn-fg: var(--pv-cream);
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  padding: .95rem 2rem;
  border-radius: 999px;
  border: 1px solid var(--pv-btn-bg);
  background: var(--pv-btn-bg);
  color: var(--pv-btn-fg);
  font-weight: 600;
  font-size: .92rem;
  letter-spacing: .04em;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
}
.pv-btn i { font-size: .8em; transition: transform .3s ease; }
.pv-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--pv-shadow-sm);
  background: var(--pv-wine);
  border-color: var(--pv-wine);
  color: var(--pv-cream);
}
.pv-btn:hover i { transform: translateX(4px); }

.pv-btn--brass { --pv-btn-bg: var(--pv-brass); --pv-btn-fg: var(--pv-pine-3); }
.pv-btn--brass:hover { background: var(--pv-brass-2); border-color: var(--pv-brass-2); color: var(--pv-pine-3); }

.pv-btn--ghost {
  --pv-btn-bg: transparent;
  --pv-btn-fg: var(--pv-pine);
  background: transparent;
  border-color: var(--pv-line);
  color: var(--pv-pine);
}
.pv-btn--ghost:hover { background: var(--pv-pine); border-color: var(--pv-pine); color: var(--pv-cream); }

.pv-btn--ghost-light {
  --pv-btn-bg: transparent;
  --pv-btn-fg: var(--pv-cream);
  background: transparent;
  border-color: var(--pv-line-light);
  color: var(--pv-cream);
}
.pv-btn--ghost-light:hover { background: var(--pv-cream); border-color: var(--pv-cream); color: var(--pv-pine); }

/* variante pin plein : déjà la base de .pv-btn, mais le nom explicite aide à lire le markup */
.pv-btn--pine { --pv-btn-bg: var(--pv-pine); --pv-btn-fg: var(--pv-cream); }
.pv-btn--pine:hover { background: var(--pv-pine-2); border-color: var(--pv-pine-2); color: var(--pv-cream); }

/* ---------- sections ---------- */

.pv-section { padding-block: var(--pv-sec); position: relative; }
.pv-section--tight { padding-block: clamp(3rem, 6vw, 5rem); }

.pv-section--paper { background: var(--pv-paper); }
.pv-section--dark { background: var(--pv-pine); color: var(--pv-cream); }
.pv-section--dark .pv-lead,
.pv-section--dark p { color: rgba(244, 239, 228, .72); }
.pv-section--wine { background: var(--pv-wine); color: var(--pv-cream); }
.pv-section--wine .pv-lead,
.pv-section--wine p { color: rgba(244, 239, 228, .78); }

/* Section photo : le url(../images/pickvinto_b3db2d3761ed5.96908145.webp) reste vide, le script d'images le remplit */
.pv-section--photo {
  background-size: cover;
  background-position: center;
  color: var(--pv-cream);
}
.pv-section--photo .pv-lead,
.pv-section--photo p { color: rgba(244, 239, 228, .8); }

.pv-rule {
  border: 0;
  height: 1px;
  background: var(--pv-line);
  margin: 0;
}
.pv-section--dark .pv-rule,
.pv-section--photo .pv-rule { background: var(--pv-line-light); }

/* ---------- décor : cadre photo, tampon, anneau ---------- */

.pv-frame { position: relative; }
.pv-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--pv-radius);
}
.pv-frame::before {
  content: "";
  position: absolute;
  inset: -1rem -1rem auto auto;
  width: 60%;
  height: 60%;
  border: 1px solid var(--pv-brass);
  border-radius: var(--pv-radius);
  z-index: -1;
}
.pv-frame--offset::before { inset: auto auto -1rem -1rem; }

.pv-stamp {
  position: absolute;
  z-index: 3;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-align: center;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pv-pine-3);
  background: var(--pv-brass-2);
  border: 1px dashed rgba(16, 46, 40, .5);
  transform: rotate(-8deg);
  box-shadow: var(--pv-shadow-sm);
  padding: .8rem;
  line-height: 1.4;
}

.pv-badge-18 {
  display: inline-grid;
  place-items: center;
  min-width: 2.6rem;
  height: 2.6rem;
  padding: 0 .4rem;
  border-radius: 50%;
  background: var(--pv-wine);
  color: var(--pv-cream);
  font-weight: 800;
  font-size: .85rem;
  border: 2px solid var(--pv-brass);
  flex: none;
}

/* pastille "live" avec point pulsé */
.pv-live {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pv-live::before {
  content: "";
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #67d39b;
  box-shadow: 0 0 0 0 rgba(103, 211, 155, .6);
  animation: pv-pulse 2s infinite;
}
@keyframes pv-pulse {
  70% { box-shadow: 0 0 0 .6rem rgba(103, 211, 155, 0); }
  100% { box-shadow: 0 0 0 0 rgba(103, 211, 155, 0); }
}

/* ---------- header ---------- */

.pv-topbar {
  background: var(--pv-pine-3);
  color: rgba(244, 239, 228, .82);
  font-size: .8rem;
  padding-block: .45rem;
}
.pv-topbar a { color: var(--pv-brass-2); }
.pv-topbar .pv-topbar__item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-right: 1.4rem;
  white-space: nowrap;
}
.pv-topbar i { color: var(--pv-brass); font-size: .75rem; }

.pv-navbar {
  background: rgba(244, 239, 228, .92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--pv-line);
  transition: box-shadow .3s ease, background .3s ease;
}
.pv-navbar.is-scrolled { box-shadow: 0 10px 40px -18px rgba(16, 46, 40, .35); background: rgba(250, 246, 236, .97); }

.pv-brand {
  font-family: var(--pv-serif);
  font-size: 1.55rem;
  letter-spacing: .02em;
  color: var(--pv-pine);
  display: inline-flex;
  align-items: baseline;
  gap: .5rem;
}
.pv-brand small {
  font-family: var(--pv-sans);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--pv-brass);
}
/* logo image : le fichier a déjà son fond foncé — on le cadre doucement */
.pv-brand__img {
  height: clamp(2.6rem, 4.5vw, 3.4rem);
  width: auto;
  display: block;
  border-radius: .6rem;
}
.pv-brand__img--footer { height: clamp(3.2rem, 5vw, 4.2rem); }

.pv-nav .nav-link {
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .05em;
  color: var(--pv-ink);
  padding: .5rem .7rem;
  position: relative;
}
.pv-nav .nav-link::after {
  content: "";
  position: absolute;
  left: .7rem;
  right: .7rem;
  bottom: .15rem;
  height: 2px;
  background: var(--pv-brass);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.pv-nav .nav-link:hover::after { transform: scaleX(1); }

.pv-offcanvas {
  background: var(--pv-pine);
  color: var(--pv-cream);
}
.pv-offcanvas .nav-link { color: var(--pv-cream); font-size: 1.1rem; padding: .7rem 0; border-bottom: 1px solid var(--pv-line-light); }
.pv-offcanvas .nav-link:hover { color: var(--pv-brass-2); }

/* ---------- hero ---------- */

.pv-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: flex-end;
  color: var(--pv-cream);
  overflow: hidden;
}
.pv-hero .carousel,
.pv-hero .carousel-inner,
.pv-hero .carousel-item { position: absolute; inset: 0; height: 100%; }
.pv-hero .carousel-item {
  background-size: cover;
  background-position: center;
}
.pv-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 32, 27, .55) 0%, rgba(10, 32, 27, .45) 45%, rgba(10, 32, 27, .9) 100%);
}
.pv-hero__body { position: relative; z-index: 2; width: 100%; }

/* le texte du hero pose directement sur la photo : voile + ombre pour le contraste */
.pv-hero h1,
.pv-hero .pv-lead,
.pv-hero__meta,
.pv-hero__body .pv-eyebrow { text-shadow: 0 2px 18px rgba(10, 32, 27, .65), 0 1px 4px rgba(10, 32, 27, .8); }
.pv-hero .pv-lead { color: rgba(244, 239, 228, .92); }

.pv-hero h1 {
  font-size: clamp(2.6rem, 7vw, 5.4rem);
  line-height: 1.02;
  font-weight: 400;
  text-wrap: balance;
}
.pv-hero h1 em { color: var(--pv-brass-2); }

.pv-hero__meta {
  border-top: 1px solid var(--pv-line-light);
  margin-top: 2.5rem;
  padding-top: 1.2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(244, 239, 228, .75);
}
.pv-hero__meta strong { display: block; color: var(--pv-brass-2); font-size: .95rem; }

.pv-hero .carousel-indicators { z-index: 3; margin-bottom: 1rem; }
.pv-hero .carousel-indicators [data-bs-target] {
  width: 2.4rem;
  height: 3px;
  border-radius: 0;
  background-color: rgba(244, 239, 228, .4);
}
.pv-hero .carousel-indicators .active { background-color: var(--pv-brass-2); }

.pv-scroll-hint {
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .6rem;
  font-size: .65rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  color: rgba(244, 239, 228, .7);
}
.pv-scroll-hint::after {
  content: "";
  width: 1px;
  height: 3.5rem;
  background: linear-gradient(var(--pv-brass), transparent);
  animation: pv-drop 1.8s ease-in-out infinite;
}
@keyframes pv-drop {
  0% { transform: scaleY(0); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ---------- blocs éditoriaux ---------- */

.pv-split { display: grid; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
@media (min-width: 992px) {
  .pv-split--45 { grid-template-columns: 5fr 7fr; }
  .pv-split--54 { grid-template-columns: 7fr 5fr; }
  .pv-split--even { grid-template-columns: 1fr 1fr; }
}

.pv-caption {
  position: absolute;
  left: 1.2rem;
  bottom: 1.2rem;
  z-index: 2;
  background: rgba(10, 32, 27, .78);
  backdrop-filter: blur(6px);
  color: var(--pv-cream);
  border-left: 2px solid var(--pv-brass);
  padding: .8rem 1.1rem;
  border-radius: .5rem;
  font-size: .8rem;
  max-width: 70%;
}
.pv-caption strong { display: block; font-family: var(--pv-serif); font-size: 1rem; font-weight: 500; }

.pv-side-note {
  font-size: .7rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--pv-brass);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

/* Liste de specs avec lignes fines */
.pv-specs { list-style: none; margin: 0; padding: 0; }
.pv-specs li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--pv-line);
  font-size: .92rem;
}
.pv-specs li span:first-child { color: var(--pv-muted); }
.pv-specs li strong { font-weight: 600; text-align: right; }
.pv-section--dark .pv-specs li,
.pv-section--photo .pv-specs li { border-color: var(--pv-line-light); }
.pv-section--dark .pv-specs li span:first-child,
.pv-section--photo .pv-specs li span:first-child { color: rgba(244, 239, 228, .6); }

/* ---------- sélecteur d'expériences (3 panneaux) ---------- */

.pv-panels { display: grid; gap: 1rem; }
@media (min-width: 992px) { .pv-panels { grid-template-columns: 1.2fr 1fr 1fr; } }

.pv-panel {
  position: relative;
  min-height: 26rem;
  border-radius: var(--pv-radius);
  overflow: hidden;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  color: var(--pv-cream);
  isolation: isolate;
}
.pv-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(200deg, rgba(10, 32, 27, .05) 30%, rgba(10, 32, 27, .88) 100%);
  transition: background .4s ease;
  z-index: -1;
}
.pv-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--pv-pine-3);
  opacity: 0;
  transition: opacity .4s ease;
  z-index: -1;
}
.pv-panels:hover .pv-panel:not(:hover)::after { opacity: .45; }
.pv-panel__body { padding: 2rem; transform: translateY(.6rem); transition: transform .4s ease; }
.pv-panel:hover .pv-panel__body { transform: translateY(0); }
.pv-panel__body h3 { font-size: clamp(1.6rem, 2.4vw, 2.2rem); margin-bottom: .4rem; }
.pv-panel__body p { font-size: .92rem; margin-bottom: 1rem; max-width: 22rem; }
.pv-panel .pv-num { position: absolute; top: 1.4rem; left: 1.6rem; }

/* ---------- cartes ---------- */

.pv-card {
  background: var(--pv-paper);
  border: 1px solid var(--pv-line);
  border-radius: var(--pv-radius);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: transform .35s ease, box-shadow .35s ease;
}
.pv-card:hover { transform: translateY(-6px); box-shadow: var(--pv-shadow); }
.pv-card__img { overflow: hidden; position: relative; }
.pv-card__img img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; transition: transform .6s ease; }
.pv-card:hover .pv-card__img img { transform: scale(1.06); }
.pv-card__body { padding: 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.pv-card__body h3 { font-size: 1.45rem; }
.pv-card__foot {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--pv-line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .85rem;
}
.pv-card__price { font-family: var(--pv-serif); font-size: 1.3rem; color: var(--pv-wine); }
.pv-card__price small { font-family: var(--pv-sans); font-size: .72rem; color: var(--pv-muted); }

.pv-tag {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pv-pine);
  background: rgba(191, 145, 88, .18);
  border: 1px solid rgba(191, 145, 88, .5);
  padding: .3rem .7rem;
  border-radius: 999px;
}

/* ---------- rail photo horizontal ---------- */

.pv-rail {
  display: flex;
  gap: 1.2rem;
  overflow-x: auto;
  padding: .5rem .2rem 1.5rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.pv-rail::-webkit-scrollbar { height: 4px; }
.pv-rail::-webkit-scrollbar-thumb { background: var(--pv-brass); border-radius: 2px; }
.pv-rail::-webkit-scrollbar-track { background: var(--pv-line); }
.pv-rail__item {
  flex: 0 0 clamp(15rem, 30vw, 24rem);
  scroll-snap-align: start;
  border-radius: var(--pv-radius);
  overflow: hidden;
  position: relative;
}
.pv-rail__item img { width: 100%; height: clamp(18rem, 34vw, 26rem); object-fit: cover; display: block; }

/* ---------- grille asymétrique (jeux / chambres) ---------- */

.pv-mosaic { display: grid; gap: 1.2rem; }
@media (min-width: 992px) {
  .pv-mosaic { grid-template-columns: 7fr 5fr; grid-template-rows: auto auto; }
  .pv-mosaic__wide { grid-column: 1 / -1; }
}

.pv-tile {
  position: relative;
  border-radius: var(--pv-radius);
  overflow: hidden;
  min-height: 15rem;
  display: flex;
  align-items: flex-end;
  color: var(--pv-cream);
  background-size: cover;
  background-position: center;
}
.pv-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 32, 27, 0) 40%, rgba(10, 32, 27, .85) 100%);
}
.pv-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pv-tile__body { position: relative; padding: 1.6rem; width: 100%; }
.pv-tile__body h3 { font-size: 1.5rem; margin-bottom: .2rem; }
.pv-tile__body p { font-size: .85rem; color: rgba(244, 239, 228, .75); margin: 0; }
.pv-tile--tall { min-height: 24rem; }

/* ---------- timeline ---------- */

.pv-timeline { position: relative; padding-left: 2.2rem; }
.pv-timeline::before {
  content: "";
  position: absolute;
  left: .45rem;
  top: .5rem;
  bottom: .5rem;
  width: 1px;
  background: var(--pv-line);
}
.pv-section--dark .pv-timeline::before,
.pv-section--photo .pv-timeline::before { background: var(--pv-line-light); }
.pv-timeline__item { position: relative; padding-bottom: 2.4rem; }
.pv-timeline__item:last-child { padding-bottom: 0; }
.pv-timeline__item::before {
  content: "";
  position: absolute;
  left: -2.2rem;
  top: .4rem;
  width: .9rem;
  height: .9rem;
  border-radius: 50%;
  background: var(--pv-cream);
  border: 2px solid var(--pv-brass);
}
.pv-section--dark .pv-timeline__item::before,
.pv-section--photo .pv-timeline__item::before { background: var(--pv-pine); }
.pv-timeline__time {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--pv-brass);
}
.pv-timeline__item h3 { font-size: 1.4rem; margin: .3rem 0 .4rem; }
.pv-timeline__item p { font-size: .92rem; margin: 0; max-width: 34rem; }

/* ---------- compteurs ---------- */

.pv-stat { text-align: center; padding: 1rem; }
.pv-stat__num {
  font-family: var(--pv-serif);
  font-size: clamp(2.6rem, 5vw, 4.2rem);
  line-height: 1;
  color: var(--pv-brass-2);
}
.pv-stat__num sup { font-size: .45em; color: var(--pv-brass); }
.pv-stat__label {
  margin-top: .6rem;
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(244, 239, 228, .65);
}

/* ---------- citations / témoignages ---------- */

.pv-quote blockquote {
  font-family: var(--pv-serif);
  font-size: clamp(1.5rem, 3vw, 2.4rem);
  line-height: 1.3;
  font-style: italic;
  margin: 0;
}
.pv-quote blockquote::before {
  content: "«";
  display: block;
  font-size: 3.5rem;
  line-height: .6;
  color: var(--pv-brass);
  margin-bottom: 1rem;
}
.pv-quote__who {
  margin-top: 1.4rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  font-size: .85rem;
  color: var(--pv-muted);
}
.pv-quote__who i { color: var(--pv-brass); }

/* ---------- FAQ / accordéon ---------- */

.pv-faq .accordion { --bs-accordion-bg: transparent; }
.pv-faq .accordion-item {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--pv-line);
}
.pv-faq .accordion-button {
  background: transparent;
  font-family: var(--pv-serif);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  color: var(--pv-ink);
  padding: 1.3rem .2rem;
  box-shadow: none;
}
.pv-faq .accordion-button:not(.collapsed) { color: var(--pv-wine); }
.pv-faq .accordion-button::after {
  background-image: none;
  content: "\f067";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .85rem;
  color: var(--pv-brass);
  transform: none;
  transition: transform .3s ease;
}
.pv-faq .accordion-button:not(.collapsed)::after { transform: rotate(45deg); }
.pv-faq .accordion-body { padding: 0 .2rem 1.5rem; color: var(--pv-muted); max-width: 44rem; }
.pv-faq--dark .accordion-item { border-color: var(--pv-line-light); }
.pv-faq--dark .accordion-button { color: var(--pv-cream); }
.pv-faq--dark .accordion-button:not(.collapsed) { color: var(--pv-brass-2); }
.pv-faq--dark .accordion-body { color: rgba(244, 239, 228, .7); }

/* ---------- jeu responsable / disclaimers ---------- */

.pv-disclaimer {
  border: 1px solid var(--pv-line-light);
  border-radius: var(--pv-radius);
  padding: clamp(1.6rem, 4vw, 3rem);
  background: rgba(10, 32, 27, .35);
}
.pv-disclaimer h3 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.pv-disclaimer p { font-size: .92rem; }

/* ---------- tables (tarifs / comparaison) ---------- */

.pv-table-wrap { overflow-x: auto; border-radius: var(--pv-radius); border: 1px solid var(--pv-line); }
.pv-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--pv-paper);
  font-size: .92rem;
  min-width: 40rem;
}
.pv-table th {
  font-family: var(--pv-serif);
  font-weight: 500;
  font-size: 1.05rem;
  background: var(--pv-pine);
  color: var(--pv-cream);
  padding: 1.1rem 1.3rem;
  text-align: left;
}
.pv-table td { padding: 1rem 1.3rem; border-bottom: 1px solid var(--pv-line); vertical-align: top; }
.pv-table tr:last-child td { border-bottom: 0; }
.pv-table tbody tr:hover { background: rgba(191, 145, 88, .08); }
.pv-table .pv-price { font-family: var(--pv-serif); font-size: 1.15rem; color: var(--pv-wine); white-space: nowrap; }

/* ---------- formulaires ---------- */

.pv-form .form-control,
.pv-form .form-select {
  border: 1px solid var(--pv-line);
  border-radius: .8rem;
  padding: .85rem 1.1rem;
  font-size: .95rem;
  background: var(--pv-paper);
}
.pv-form .form-control:focus,
.pv-form .form-select:focus {
  border-color: var(--pv-brass);
  box-shadow: 0 0 0 .2rem rgba(191, 145, 88, .18);
}
.pv-form label { font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--pv-muted); }

.pv-form--dark .form-control,
.pv-form--dark .form-select {
  background: rgba(244, 239, 228, .06);
  border-color: var(--pv-line-light);
  color: var(--pv-cream);
}
.pv-form--dark .form-control::placeholder { color: rgba(244, 239, 228, .4); }
.pv-form--dark label { color: rgba(244, 239, 228, .6); }
.pv-form--dark .form-control:focus { background: rgba(244, 239, 228, .1); }

/* ---------- bandeau newsletter ---------- */

.pv-news { border-radius: var(--pv-radius); }
.pv-news .input-group { max-width: 30rem; }

/* ---------- cookie ---------- */

.pv-cookie {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  background: var(--pv-pine-3);
  color: var(--pv-cream);
  border: 1px solid var(--pv-line-light);
  border-radius: 1rem;
  padding: 1.1rem 1.4rem;
  box-shadow: var(--pv-shadow);
  display: none;
}
.pv-cookie.is-visible { display: block; }
@media (min-width: 768px) { .pv-cookie { left: auto; max-width: 26rem; } }
.pv-cookie p { font-size: .82rem; margin: 0 0 .8rem; color: rgba(244, 239, 228, .75); }

/* ---------- toast ---------- */

.pv-toast-zone {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 1090;
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.pv-toast-zone .toast {
  background: var(--pv-pine);
  color: var(--pv-cream);
  border: 1px solid var(--pv-line-light);
  border-radius: .8rem;
}

/* ---------- footer ---------- */

.pv-footer {
  background: var(--pv-pine-3);
  color: rgba(244, 239, 228, .72);
  padding-top: clamp(3.5rem, 7vw, 6rem);
  font-size: .9rem;
}
.pv-footer .pv-brand { color: var(--pv-cream); font-size: 1.8rem; }
.pv-footer h4 {
  font-size: .72rem;
  font-family: var(--pv-sans);
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--pv-brass);
  margin-bottom: 1.1rem;
}
.pv-footer ul { list-style: none; padding: 0; margin: 0; }
.pv-footer ul li { margin-bottom: .55rem; }
.pv-footer a { color: rgba(244, 239, 228, .72); }
.pv-footer a:hover { color: var(--pv-brass-2); }
.pv-footer__social a {
  display: inline-grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--pv-line-light);
  border-radius: 50%;
  margin-right: .6rem;
  font-size: .95rem;
  transition: background .3s ease, transform .3s ease;
}
.pv-footer__social a:hover { background: var(--pv-brass); border-color: var(--pv-brass); color: var(--pv-pine-3); transform: translateY(-3px); }
.pv-footer__legal {
  border-top: 1px solid var(--pv-line-light);
  margin-top: 3rem;
  padding: 1.4rem 0;
  font-size: .78rem;
  color: rgba(244, 239, 228, .45);
}
.pv-footer__legal a { color: rgba(244, 239, 228, .6); }

/* ---------- divers ---------- */

.pv-icon-chip {
  display: inline-grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  border: 1px solid var(--pv-brass);
  color: var(--pv-brass);
  font-size: 1rem;
  margin-bottom: 1rem;
}

.pv-checklist { list-style: none; padding: 0; margin: 0; }
.pv-checklist li { padding: .45rem 0 .45rem 1.9rem; position: relative; }
.pv-checklist li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: .7rem;
  color: var(--pv-brass);
  font-size: .8rem;
}

/* étapes numérotées (merci, processus) — pastille + texte reliés par une ligne */
.pv-steps { list-style: none; padding: 0; margin: 0; counter-reset: pv-step; }
.pv-steps li {
  display: flex;
  gap: 1.25rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--pv-line);
}
.pv-steps li:last-child { border-bottom: 0; }
.pv-steps__n {
  flex: 0 0 auto;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--pv-serif);
  font-size: 1.05rem;
  color: var(--pv-cream);
  background: var(--pv-pine);
  border: 2px solid var(--pv-brass);
}

.pv-dropcap::first-letter {
  font-family: var(--pv-serif);
  font-size: 3.4em;
  line-height: .85;
  float: left;
  padding: .15em .12em 0 0;
  color: var(--pv-wine);
}

.pv-map {
  border-radius: var(--pv-radius);
  overflow: hidden;
  border: 1px solid var(--pv-line);
  min-height: 22rem;
}
.pv-map iframe { width: 100%; height: 100%; min-height: 22rem; border: 0; display: block; }

.pv-big-quote {
  font-family: var(--pv-serif);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  line-height: 1.15;
}

/* image qui "respire" au survol */
.pv-zoom { overflow: hidden; border-radius: var(--pv-radius); }
.pv-zoom img { transition: transform .7s ease; display: block; width: 100%; }
.pv-zoom:hover img { transform: scale(1.05); }

/* ---------- responsive ---------- */

@media (max-width: 991.98px) {
  .pv-hero { min-height: 78vh; }
  .pv-hero__meta { gap: 1.2rem; font-size: .72rem; }
  .pv-scroll-hint { display: none; }
  .pv-side-note { display: none; }
  .pv-panel { min-height: 19rem; }
  .pv-stamp { width: 5.2rem; height: 5.2rem; font-size: .52rem; }
  .pv-topbar .pv-topbar__item { margin-right: .9rem; }
  .pv-topbar .pv-topbar__hide-sm { display: none; }
}

@media (max-width: 575.98px) {
  :root { --pv-sec: 3.8rem; }
  .pv-hero { min-height: 70vh; }
  .pv-btn { padding: .85rem 1.5rem; font-size: .85rem; }
  .pv-specs li { font-size: .85rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  html { scroll-behavior: auto; }
}
