/* ==========================================================================
   Visite Paris — Feuille de style
   Guide conférencière diplômée d'État — Clémence Dumas
   Base : Bootstrap 5.3 + surcouche éditoriale
   ========================================================================== */

:root {
  --ink:        #33463c;   /* vert profond (Céladon)     */
  --ink-soft:   #52685d;
  --gold:       #6cae90;   /* vert céladon (accent)      */
  --gold-dark:  #4c8065;
  --cream:      #f6faf7;   /* fond crème verdi           */
  --cream-2:    #eaf2ec;
  --paper:      #ffffff;
  --text:       #2b352f;
  --muted:      #6d7671;
  --line:       #dde9e1;

  --serif: "Fraunces", "Playfair Display", Georgia, serif;
  --sans:  "Karla", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --shadow-sm: 0 2px 10px rgba(32, 38, 58, .06);
  --shadow-md: 0 10px 30px rgba(32, 38, 58, .10);
  --shadow-lg: 0 24px 60px rgba(32, 38, 58, .16);
}

/* ---------- Base ---------- */
* { box-sizing: border-box; }

body {
  font-family: var(--sans);
  color: var(--text);
  background: var(--cream);
  line-height: 1.7;
  font-size: 1.02rem;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .serif {
  font-family: var(--serif);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

a { color: var(--gold-dark); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--ink); }

img { max-width: 100%; height: auto; }

.section { padding: 5.5rem 0; }
.section-sm { padding: 3.5rem 0; }
.bg-cream  { background: var(--cream); }
.bg-cream2 { background: var(--cream-2); }
.bg-paper  { background: var(--paper); }
.bg-ink    { background: var(--ink); color: #e9e6df; }
.bg-ink h1, .bg-ink h2, .bg-ink h3 { color: #fff; }

/* ---------- Suréléments typographiques ---------- */
.eyebrow {
  display: inline-block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.08rem;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  color: var(--gold-dark);
  margin-bottom: .85rem;
}
.bg-ink .eyebrow { color: var(--gold); }

.section-title { font-size: clamp(1.9rem, 3.2vw, 2.7rem); margin-bottom: 1rem; }
.lead-muted { color: var(--muted); font-size: 1.08rem; max-width: 42rem; }

.divider-gold { display: none; }

/* ---------- Boutons ---------- */
.btn { border-radius: 2px; font-weight: 500; letter-spacing: .02em; padding: .7rem 1.6rem; transition: all .25s ease; }
.btn-gold {
  background: var(--gold); border: 1px solid var(--gold); color: #fff;
}
.btn-gold:hover { background: var(--gold-dark); border-color: var(--gold-dark); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn-outline-ink { background: transparent; border: 1px solid var(--ink); color: var(--ink); }
.btn-outline-ink:hover { background: var(--ink); color: #fff; }
.btn-outline-light { background: transparent; border: 1px solid rgba(255,255,255,.6); color: #fff; }
.btn-outline-light:hover { background: #fff; color: var(--ink); border-color:#fff; }
.btn-lg { padding: .9rem 2.1rem; font-size: 1.02rem; }

/* ---------- Navbar ---------- */
.navbar {
  background: rgba(250, 246, 239, .92);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid var(--line);
  padding: .9rem 0;
  transition: box-shadow .3s ease, padding .3s ease;
}
.navbar.scrolled { box-shadow: var(--shadow-sm); padding: .6rem 0; }
.navbar-brand { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; color: var(--ink) !important; letter-spacing: .01em; }
.navbar-brand span { color: var(--gold); }
.navbar-brand small { display: block; font-family: var(--sans); font-size: .58rem; letter-spacing: .28em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-top: -2px; }
.navbar .nav-link { color: var(--ink) !important; font-weight: 500; font-size: .95rem; padding: .5rem 1rem !important; position: relative; }
.navbar .nav-link::after {
  content: ""; position: absolute; left: 1rem; right: 1rem; bottom: .35rem; height: 1.5px;
  background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.navbar .nav-link:hover::after, .navbar .nav-link.active::after { transform: scaleX(1); }
.navbar .dropdown-menu { border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow-md); padding: .5rem; }
.navbar .dropdown-item { border-radius: 3px; font-size: .93rem; padding: .5rem .9rem; }
.navbar .dropdown-item:hover { background: var(--cream-2); color: var(--ink); }
.navbar .dropdown-item.active,
.navbar .dropdown-item:active { background: var(--gold); color: #fff; }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: center;
  color: #fff;
  background-color: var(--ink);
  background-size: cover; background-position: center; background-repeat: no-repeat;
  padding-bottom: 2.75rem; /* compense la courbe du bas */
}
.hero-inner { max-width: 44rem; }
.hero h1 { color: #fff; font-size: clamp(2.4rem, 5.2vw, 4.1rem); margin-bottom: 1.2rem; }
.hero p { font-size: 1.2rem; color: rgba(255,255,255,.9); margin-bottom: 2rem; }
.hero .eyebrow { color: var(--gold); }
/* Courbe douce et uniforme en bas des bandeaux (hero + pagehead) :
   la section suivante remonte en arc dans le bandeau, couleur héritée automatiquement
   (blanc sur bg-paper, crème sur bg-cream) → raccord parfait sur toutes les pages. */
.hero + section, .pagehead + section { position: relative; }
.hero + section::before, .pagehead + section::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: -43px;
  height: 44px;
  background-color: inherit;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 44' preserveAspectRatio='none'%3E%3Cpath d='M0,0 Q720,56 1440,0 L1440,44 L0,44 Z'/%3E%3C/svg%3E") no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 44' preserveAspectRatio='none'%3E%3Cpath d='M0,0 Q720,56 1440,0 L1440,44 L0,44 Z'/%3E%3C/svg%3E") no-repeat;
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  pointer-events: none;
}

/* Bandeau interne (pages secondaires) */
.pagehead {
  position: relative; color: #fff; padding: 6.5rem 0 6rem; /* bottom majoré pour compenser la courbe */
  background-color: var(--ink);
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
.pagehead h1 { color: #fff; font-size: clamp(2rem, 4vw, 3.1rem); }
.pagehead .breadcrumb { --bs-breadcrumb-divider-color: rgba(255,255,255,.5); margin: 0 0 1.5rem; }
.pagehead .breadcrumb a { color: rgba(255,255,255,.8); }
.pagehead .breadcrumb a:hover { color:#fff; }
.pagehead .breadcrumb-item.active { color: var(--gold); }
.pagehead .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.5); }
.pagehead-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; box-shadow: var(--shadow-lg); border: 1px solid rgba(255,255,255,.15); }

/* Sommaire à puces des fiches de visite (ancres vers chaque partie) */
.visite-nav { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0 0 2.2rem; }
.visite-nav a {
  display: inline-flex; align-items: center;
  font-family: var(--sans); font-weight: 600; font-size: .9rem; line-height: 1;
  color: var(--ink); background: var(--cream-2);
  border: 1px solid var(--line); border-radius: 999px;
  padding: .55rem 1.15rem; text-decoration: none;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.visite-nav a:hover, .visite-nav a:focus-visible { background: var(--gold); color: #fff; border-color: var(--gold); }
html { scroll-behavior: smooth; }
#la-visite, #infos-pratiques, #votre-guide, #faq { scroll-margin-top: 92px; }

/* ---------- Cartes catégories ---------- */

/* ===== Cartes catégories — PISTE A : texte sous la photo ===== */
.catA { display:flex; flex-direction:column; height:100%; background: var(--paper); border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow: var(--shadow-sm); text-decoration:none; transition: transform .3s ease, box-shadow .3s ease; }
.catA:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.catA .ph { height:190px; background-size:cover; background-position:center; }
.catA .bd { padding:1.3rem 1.4rem; flex:1; display:flex; flex-direction:column; }
.catA .cnt { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:.4rem; }
.catA h3 { font-family:var(--serif); font-size:1.4rem; color:var(--ink); margin:0 0 .4rem; }
.catA p { color:var(--muted); font-size:.92rem; line-height:1.5; margin:0 0 .9rem; }
.catA .arw { margin-top:auto; color:var(--gold); font-weight:600; font-size:.9rem; }
.catA.solid { background:var(--ink-soft); align-items:center; justify-content:center; text-align:center; padding:2rem 1.6rem; }
.catA.solid h3 { color:#fff; } .catA.solid p { color:rgba(255,255,255,.82); }

/* ---------- Cartes visites populaires ---------- */
.tour-card {
  background: var(--paper); border: 1px solid var(--line); border-radius: 6px; overflow: hidden;
  height: 100%; transition: transform .3s ease, box-shadow .3s ease;
}
.tour-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.tour-card .thumb { height: 210px; background-size: cover; background-position: center; }
.tour-card .tour-body { padding: 1.4rem 1.4rem 1.6rem; }
.tour-card .tag { font-size: .72rem; letter-spacing:.14em; text-transform:uppercase; color: var(--gold-dark); font-weight:600; }
.tour-card h3 { font-size: 1.25rem; margin: .4rem 0 .5rem; }
.tour-card p { color: var(--muted); font-size: .93rem; margin-bottom: 0; }

/* ---------- Liste de visites (pages catégories) ---------- */
.visit-list { list-style: none; padding: 0; margin: 0; }
.visit-item {
  display: flex; gap: 1.1rem; align-items: flex-start;
  background: var(--paper); border: 1px solid var(--line); border-radius: 6px;
  padding: 1.3rem 1.4rem; height: 100%; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.visit-item:hover { border-color: var(--gold); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.visit-item .num { font-family: var(--serif); font-size: 1.4rem; color: var(--gold); line-height: 1; min-width: 2.2rem; }
.visit-item h3 { font-size: 1.12rem; margin: 0 0 .3rem; }
.visit-item p { color: var(--muted); font-size: .9rem; margin: 0; }

/* ---------- Bloc guide / à propos ---------- */
.guide-photo { border-radius: 6px; box-shadow: var(--shadow-md); }
.guide-photo-wrap { position: relative; }
.guide-photo-wrap .badge-diplome {
  position: absolute; bottom: -18px; left: -18px;
  background: var(--gold); color:#fff; padding: 1rem 1.3rem; border-radius: 6px;
  box-shadow: var(--shadow-md); text-align:center; line-height:1.1;
}
.guide-photo-wrap .badge-diplome strong { font-family: var(--serif); font-size: 1.7rem; display:block; }
.guide-photo-wrap .badge-diplome span { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }

/* ---------- Chiffres clés ---------- */
.stat { text-align: center; }
.stat .num { font-family: var(--serif); font-size: 2.6rem; color: var(--gold); line-height: 1; }
.stat .lbl { font-size: .82rem; letter-spacing:.1em; text-transform:uppercase; color: var(--muted); margin-top:.4rem; }

/* ---------- Témoignages ---------- */
.testi {
  background: var(--paper); border: 1px solid var(--line); border-radius: 6px;
  padding: 2rem 1.8rem; height: 100%; position: relative;
}
.testi .quote-mark { font-family: var(--serif); font-size: 3.5rem; color: var(--gold); line-height: .5; opacity: .5; }
.testi p { font-style: italic; color: var(--ink-soft); }
.testi .stars { color: var(--gold); letter-spacing: 2px; margin-bottom:.6rem; }
.testi .author { font-weight: 600; color: var(--ink); font-family: var(--serif); }

/* ---------- FAQ / accordéon ---------- */
.accordion-item { background: var(--paper); border: 1px solid var(--line); margin-bottom: .75rem; border-radius: 6px !important; overflow: hidden; }
.accordion-button { font-family: var(--serif); font-size: 1.12rem; color: var(--ink); background: var(--paper); font-weight:600; padding: 1.15rem 1.3rem; }
.accordion-button:not(.collapsed) { background: var(--cream-2); color: var(--ink); box-shadow: none; }
.accordion-button:focus { box-shadow: none; border-color: var(--gold); }
.accordion-button::after { --bs-accordion-btn-active-icon-color: var(--gold); }
.accordion-body { color: var(--muted); padding: 0 1.3rem 1.3rem; }

/* ---------- Prestations / tarifs ---------- */
.price-card { background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 2.2rem 1.9rem; height:100%; transition: transform .3s ease, box-shadow .3s ease; }
.price-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.price-card.featured { border-color: var(--gold); box-shadow: var(--shadow-md); }
.price-card .ptitle { font-family: var(--serif); font-size: 1.4rem; color: var(--ink); }
.price-card .price { font-family: var(--serif); font-size: 2.2rem; color: var(--gold); margin: .6rem 0; }
.price-card .price small { font-size: .95rem; color: var(--muted); font-family: var(--sans); }
.price-card ul { list-style:none; padding:0; margin: 1.2rem 0; }
.price-card ul li { padding: .45rem 0; border-bottom: 1px dashed var(--line); font-size: .94rem; }
.price-card ul li::before { content:"—"; color: var(--gold); margin-right:.6rem; }
.ribbon { position:absolute; top:1rem; right:-2.4rem; transform: rotate(45deg); background: var(--gold); color:#fff; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; padding:.3rem 2.6rem; }

/* ---------- Bandeau CTA ---------- */
.cta-band { position: relative; color:#fff; padding: 5rem 0; background-color: var(--ink); background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed; }
.cta-band h2 { color:#fff; font-size: clamp(1.8rem, 3.5vw, 2.8rem); }

/* ---------- Contact ---------- */
.contact-card { background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 2rem; height:100%; }
.contact-icon { width: 54px; height:54px; border-radius:50%; background: var(--cream-2); color: var(--gold-dark); display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:1rem; }
.contact-big a { font-family: var(--serif); font-size: 1.5rem; color: var(--ink); }
.contact-big a:hover { color: var(--gold-dark); }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: #b4ada2; padding: 4rem 0 1.5rem; }
.site-footer h5 { color:#fff; font-family: var(--serif); font-size: 1.15rem; margin-bottom: 1.1rem; }
.site-footer a { color: #b4ada2; }
.site-footer a:hover { color: var(--gold); }
.site-footer .brand { font-family: var(--serif); font-size: 1.5rem; color:#fff; }
.site-footer .brand span { color: var(--gold); }
.footer-brand { display:inline-block; line-height:0; }
.footer-logo { height:56px; width:auto; display:block; filter: brightness(0) invert(1); }
@media (max-width:575px){ .footer-logo { height:48px; } }
.footer-links { list-style:none; padding:0; margin:0; }
.footer-links li { margin-bottom: .55rem; font-size: .93rem; }
.social-ico { display:inline-flex; width:40px; height:40px; border:1px solid rgba(255,255,255,.2); border-radius:50%; align-items:center; justify-content:center; color:#fff; margin-right:.5rem; transition: all .25s ease; }
.social-ico:hover { background: var(--gold); border-color: var(--gold); color:#fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 3rem; padding-top: 1.5rem; font-size: .85rem; color: #8f887c; }
.footer-bottom a { color:#8f887c; }

/* ---------- Utilitaires ---------- */
.text-gold { color: var(--gold) !important; }
.fade-up { opacity: 0; transform: translateY(22px); transition: opacity .5s ease, transform .5s ease; }
.fade-up.in { opacity: 1; transform: none; }
@media (scripting: none) { .fade-up { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fade-up { opacity: 1; transform: none; transition: none; } }

/* ---------- Intro éditoriale (accueil) ---------- */
.intro-lead { font-family: var(--serif); font-size: clamp(1.35rem, 2.4vw, 1.75rem); line-height: 1.5; color: var(--ink); font-weight: 500; }
.intro-facts { font-size: .92rem; color: var(--muted); margin-top: 1.1rem; }
.intro-facts .dot { color: var(--gold); margin: 0 .55rem; }

/* ---------- Timeline formation (à propos) ---------- */
.parcours { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.parcours li { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: baseline; padding: 1.15rem 0; border-bottom: 1px solid var(--line); }
.parcours .p-when { font-family: var(--serif); font-style: italic; color: var(--gold-dark); min-width: 8.5rem; }
.parcours .p-what { font-family: var(--serif); font-size: 1.15rem; color: var(--ink); min-width: 12rem; flex: 0 0 auto; }
.parcours .p-note { color: var(--muted); flex: 1; min-width: 14rem; }

/* Points numérotés sobres (remplace les pastilles à coches) */
.pts { list-style: none; padding: 0; margin: 0; }
.pts > li { display: flex; gap: 1.1rem; }
.pts .n { font-family: var(--serif); font-size: 1.35rem; color: var(--gold); line-height: 1.1; }
.pts h3 { font-size: 1.15rem; margin: 0 0 .3rem; }

/* ---------- Fiche de visite ---------- */
.fiche-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 1rem 1.75rem; padding: 0; margin: 1.6rem 0 0; }
.fiche-meta li { color: #fff; font-size: .96rem; display: flex; align-items: center; gap: .55rem; }
.fiche-meta i { color: var(--gold); font-size: 1.05rem; }

.prose { font-size: 1.06rem; }
.prose p { margin-bottom: 1.25rem; }
.prose h2 { font-family: var(--serif); font-size: clamp(1.5rem, 2.6vw, 1.9rem); margin: 2.4rem 0 1.1rem; }
.prose > h2:first-child { margin-top: 0; }
.prose .lead-first { font-family: var(--serif); font-size: 1.3rem; line-height: 1.55; color: var(--ink); }
.prose blockquote { border-left: 3px solid var(--gold); padding: .3rem 0 .3rem 1.4rem; margin: 2rem 0; font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--ink-soft); }
.prose-figure { margin: 2.4rem 0; }
.prose-figure img { width: 100%; border-radius: 8px; box-shadow: var(--shadow-md); display: block; }
.prose-figure figcaption { font-size: .85rem; color: var(--muted); margin-top: .65rem; font-style: italic; text-align: center; }

/* Galerie photos */
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 2.4rem 0 .8rem; }
.gallery-item { display: block; overflow: hidden; border-radius: 6px; aspect-ratio: 4 / 3; box-shadow: var(--shadow-sm); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.gallery-item:hover img { transform: scale(1.07); }
.gallery-caption { text-align: center; font-size: .85rem; color: var(--muted); font-style: italic; margin: 0 0 1rem; }
@media (max-width: 575px) { .gallery { grid-template-columns: repeat(2, 1fr); } }
.lightbox { position: fixed; inset: 0; background: rgba(20,17,13,.92); display: none; align-items: center; justify-content: center; z-index: 4000; padding: 2rem; cursor: zoom-out; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 92vw; max-height: 90vh; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }

/* Bloc réassurance guide (fiches) — carte blanche surélevée pour trancher avec l'encadré infos teinté */
.guide-reassure { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 1.8rem 1.9rem; margin: 2.4rem 0; box-shadow: var(--shadow-md); }
.gr-top { display: flex; gap: 1.5rem; align-items: center; }
.gr-photo { flex: 0 0 auto; }
.gr-photo img { width: 130px; height: 162px; object-fit: cover; object-position: center top; border-radius: 8px; box-shadow: var(--shadow-sm); display: block; }
.gr-text { flex: 1; min-width: 0; }
.gr-text .eyebrow { margin-bottom: .1rem; }
.gr-text h2 { margin: 0 0 .4rem; font-size: 1.4rem; }
.gr-text > p { margin: 0 0 .8rem; font-size: .93rem; line-height: 1.5; }
.gr-stats { display: flex; flex-wrap: wrap; gap: .8rem 1.8rem; margin: 0; }
.gr-reviews { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.gr-stats .n { display: block; font-family: var(--serif); font-size: 1.3rem; color: var(--gold); line-height: 1; }
.gr-stats .l { display: block; font-size: .78rem; color: var(--muted); margin-top: .25rem; }
@media (max-width: 575px) { .gr-top { flex-direction: column; align-items: flex-start; } }

/* Encart avis Google (fiches) */
.google-reviews { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 1.6rem 1.8rem; margin: 2.8rem 0; box-shadow: var(--shadow-sm); }
.grw-head { display: flex; align-items: center; gap: .6rem 1rem; flex-wrap: wrap; padding-bottom: .9rem; border-bottom: 1px solid var(--line); }
.grw-brand { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: var(--ink); font-size: 1.02rem; }
.grw-num { font-family: var(--serif); font-size: 1.6rem; color: var(--ink); line-height: 1; }
.grw-stars { color: #f5a623; letter-spacing: 1px; }
.grw-count { color: var(--muted); font-size: .9rem; }
.grw-link { margin-left: auto; font-weight: 600; font-size: .92rem; white-space: nowrap; }
.grw-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.6rem; margin-top: 1rem; }
.grw-card { margin: 0; padding-left: 1.1rem; }
.grw-card .grw-stars { font-size: .8rem; }
.grw-card p { font-style: italic; color: var(--ink-soft); margin: .25rem 0 .4rem; font-size: .89rem; line-height: 1.45; }
.grw-card cite { font-style: normal; font-weight: 600; color: var(--ink); font-size: .88rem; }
@media (max-width: 575px) { .grw-cards { grid-template-columns: 1fr; } .grw-link { margin-left: 0; } }

/* CTA fixe mobile + modale réservation (fiches) */
.mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040; background: var(--cream); border-top: 1px solid var(--line); padding: .7rem 1rem; padding-bottom: calc(.7rem + env(safe-area-inset-bottom)); transform: translateY(140%); transition: transform .28s ease; box-shadow: 0 -6px 20px rgba(0,0,0,.12); will-change: transform; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.mobile-cta.show { transform: none; }
.modal-x { position: absolute; top: .6rem; right: .6rem; z-index: 3; }
#reserveModalBody .price-card, #reserveModalBody .book-card { box-shadow: none; border: 0; margin: 0; padding: 0; }

/* Encadré infos pratiques */
.info-box { background: var(--cream); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 8px; padding: 1.8rem 1.9rem; margin: 2.6rem 0 1rem; }
.info-box h2 { margin: 0 0 1.4rem; font-size: clamp(1.35rem, 2.3vw, 1.7rem); }
.info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem 1.6rem; }
.info-cell { display: flex; gap: .8rem; align-items: flex-start; }
.info-cell > i { color: var(--gold-dark); font-size: 1.2rem; line-height: 1.2; margin-top: .1rem; flex: 0 0 auto; }
.info-cell .il { display: block; font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; color: var(--muted); }
.info-cell .iv { display: block; color: var(--ink); font-weight: 600; font-size: .98rem; }
.info-cell.wide { grid-column: 1 / -1; }
.info-note { margin: 1.4rem 0 0; font-size: .88rem; color: var(--muted); }
.info-note i { color: var(--gold-dark); margin-right: .35rem; }
@media (max-width: 575px) { .info-grid { grid-template-columns: 1fr; } }

.program-list { list-style: none; padding: 0; margin: 1.4rem 0 0; counter-reset: pg; }
.program-list li { position: relative; padding: .95rem 0 .95rem 3rem; border-bottom: 1px solid var(--line); }
.program-list li:first-child { border-top: 1px solid var(--line); }
.program-list li::before { counter-increment: pg; content: counter(pg, decimal-leading-zero); position: absolute; left: 0; top: 1rem; font-family: var(--serif); color: var(--gold); font-size: 1.05rem; }
.program-list strong { display: block; color: var(--ink); font-family: var(--serif); font-size: 1.12rem; }
.program-list span { color: var(--muted); font-size: .95rem; }

.book-card { position: sticky; top: 96px; }
.price-card.book-card { height: auto; }
.book-info { list-style: none; padding: 0; margin: 1.3rem 0; }
.book-info li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px dashed var(--line); font-size: .95rem; }
.book-card .book-info li::before { content: none; }
.book-info li .k { color: var(--muted); text-align: left; }
.book-info li .v { font-weight: 600; color: var(--ink); text-align: right; }
.book-price { font-family: var(--serif); font-size: 2rem; color: var(--gold); }
.book-price small { font-family: var(--sans); font-size: .9rem; color: var(--muted); }

/* ---------- Vidéo ---------- */
.video-frame { border-radius: 8px; overflow: hidden; box-shadow: var(--shadow-md); background: #000; }
.video-frame iframe { border: 0; }
.video-credit { font-size: .82rem; color: var(--muted); margin-top: .8rem; }
.yt-facade { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; padding: 0; margin: 0; cursor: pointer; background: #000 center/cover no-repeat; position: relative; }
.yt-facade::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(26,22,17,.12), rgba(26,22,17,.42)); transition: background .3s ease; }
.yt-facade:hover::before { background: linear-gradient(rgba(26,22,17,.04), rgba(26,22,17,.28)); }
.yt-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 78px; height: 54px; background: #f00; border-radius: 14px; z-index: 1; transition: transform .25s ease; }
.yt-facade:hover .yt-play { transform: translate(-50%,-50%) scale(1.07); }
.yt-play::after { content: ""; position: absolute; top: 50%; left: 53%; transform: translate(-50%,-50%); border-style: solid; border-width: 11px 0 11px 18px; border-color: transparent transparent transparent #fff; }

/* ---------- Arguments + chiffres (accueil) ---------- */
.argue-title { font-family: var(--serif); font-size: 1.4rem; color: var(--ink); position: relative; padding-top: 1.1rem; margin-bottom: .7rem; }
.argue-title::before { content: ""; position: absolute; top: 0; left: 0; width: 40px; height: 2px; background: var(--gold); }
.stat-band { border-top: 1px solid var(--line); }
.stat-band .stat { padding-top: .5rem; }

@media (max-width: 991px) {
  .section { padding: 4rem 0; }
  .hero { min-height: 78vh; }
  .navbar .nav-link::after { display:none; }
  .book-card { position: static; }
}


/* ===================== Recherche + filtres (visites) ===================== */
/* Bouton loupe dans le menu */
.vp-search-btn { display:inline-flex; align-items:center; gap:.4rem; border:0; background:transparent; color:var(--ink); font-family:var(--sans); font-weight:600; font-size:.95rem; padding:.5rem .9rem; cursor:pointer; }
.vp-search-btn:hover { color:var(--gold-dark); }
.vp-search-btn i { font-size:1.05rem; }
@media (min-width: 992px){ .vp-search-btn span { display:none; } .vp-search-btn { padding:.5rem .6rem; } }

/* Overlay de recherche */
body.vp-noscroll { overflow:hidden; }
.vp-search-ov { position:fixed; inset:0; z-index:2000; display:none; padding:7vh 1rem 1rem; background:rgba(20,26,23,.55); }
.vp-search-ov.open { display:block; }
.vp-search-box { max-width:640px; margin:0 auto; background:var(--paper); border-radius:14px; box-shadow:var(--shadow-lg); overflow:hidden; }
.vp-search-top { display:flex; align-items:center; gap:.6rem; padding:.85rem 1.1rem; border-bottom:1px solid var(--line); }
.vp-search-top > i { color:var(--gold); font-size:1.15rem; }
.vp-search-in { flex:1; min-width:0; border:0; outline:0; background:transparent; font-family:var(--sans); font-size:1.05rem; color:var(--ink); }
.vp-search-x { border:0; background:transparent; font-size:1.7rem; line-height:1; color:var(--muted); cursor:pointer; padding:0 .2rem; }
.vp-search-x:hover { color:var(--ink); }
.vp-search-res { max-height:64vh; overflow-y:auto; padding:.4rem; }
.vp-search-count { font-size:.75rem; color:var(--muted); padding:.5rem .8rem .1rem; margin:0; }
.vp-search-empty { padding:1.8rem 1rem; text-align:center; color:var(--muted); }
.vp-res { display:flex; align-items:center; gap:.9rem; padding:.55rem .7rem; border-radius:10px; text-decoration:none; }
.vp-res:hover { background:var(--cream-2); }
.vp-res-img { flex:0 0 auto; width:58px; height:46px; border-radius:7px; background-size:cover; background-position:center; }
.vp-res-t { flex:1; min-width:0; display:flex; flex-direction:column; }
.vp-res-c { font-size:.7rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold); font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vp-res-n { font-family:var(--serif); font-size:1.02rem; color:var(--ink); line-height:1.2; }
.vp-res > i { color:var(--muted); font-size:1.5rem; flex:0 0 auto; }

/* Barre de filtres (pages catégories) — menus déroulants compacts */
.vp-filter { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem .8rem; margin:0 0 2.2rem; }
.vp-filter-lbl { display:inline-flex; align-items:center; gap:.35rem; font-size:.8rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.vp-select { display:inline-flex; align-items:center; gap:.25rem; }
.vp-select select { appearance:none; -webkit-appearance:none; -moz-appearance:none; background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%238f7038' stroke-width='2' d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right .85rem center; border:1px solid var(--line); border-radius:999px; color:var(--ink); font-family:var(--sans); font-weight:600; font-size:.9rem; padding:.5rem 2.1rem .5rem 1rem; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.vp-select select:hover { border-color:var(--gold); }
.vp-select select:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(178,143,79,.16); }
.vp-select.on select { border-color:var(--ink); background-color:var(--cream-2); }
.vp-clear { border:0; background:transparent; color:#c0392b; font-size:1.3rem; line-height:1; width:1.6rem; height:1.6rem; border-radius:50%; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; flex:0 0 auto; transition:background .15s; }
.vp-clear:hover { background:rgba(192,57,43,.14); color:#e24b4a; }
.vp-filter-empty { text-align:center; color:var(--muted); padding:2.5rem 0; }

/* Encart « à redécouvrir » (fiches) */
.fiche-callout { display:flex; gap:1.15rem; align-items:flex-start; background:var(--cream-2); border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:10px; padding:1.5rem 1.6rem; margin:2.4rem 0; }
.fiche-callout .fc-icon { flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.35rem; }
.fiche-callout .fc-body { min-width:0; }
.fiche-callout .fc-body .eyebrow { margin-bottom:.15rem; }
.fiche-callout .fc-body h3 { font-family:var(--serif); font-size:1.35rem; color:var(--ink); margin:0 0 .5rem; }
.fiche-callout .fc-body p { margin:0; color:var(--text); font-size:.98rem; line-height:1.6; }
@media (max-width:575px){ .fiche-callout { flex-direction:column; gap:.8rem; } }

/* Note Google (page Votre guide) */
.google-note { color:var(--muted); font-size:1.02rem; margin-top:.6rem; }
.google-note strong { color:var(--ink); font-size:1.15rem; margin:0 .15rem; }
.google-note .stars { color:#f5a623; letter-spacing:1px; }
.google-note a { font-weight:600; }

/* Hero page « Votre guide » (photo de la guide, esprit du site original) */
.guide-hero { background: var(--cream); padding: 2.6rem 0 3.4rem; border-bottom: 1px solid var(--line); }
.guide-hero .breadcrumb { margin-bottom: 1.4rem; }
.guide-hero .breadcrumb a { color: var(--muted); }
.guide-hero .breadcrumb a:hover { color: var(--ink); }
.guide-hero .breadcrumb-item.active { color: var(--ink); }
.guide-hero h1 { font-size: clamp(2.2rem, 4.6vw, 3.4rem); margin: 0 0 .3rem; }
.guide-hero .guide-hero-sub { font-family: var(--serif); font-style: italic; color: var(--gold-dark); font-size: 1.2rem; margin: 0 0 1rem; }
.guide-hero p { color: var(--text); }

/* Hero guide : photo réduite et calée à gauche */
.guide-hero .guide-photo-wrap { max-width: 360px; margin: 0 auto 0 0; }
.guide-hero .guide-photo-wrap .guide-photo { display:block; width:100%; height:auto; }
@media (max-width: 991px){ .guide-hero .guide-photo-wrap { margin: 0 auto 1.6rem; } }

/* Stats page « Votre guide » — plus grandes, sans filet orphelin */
.guide-stats .stat .num { font-size: clamp(3rem, 5vw, 4rem); }
.guide-stats .stat .lbl { font-size: .92rem; margin-top:.55rem; }

/* Sous-menu « Visites guidées » ouvert au survol (desktop) */
@media (min-width: 992px) {
  .navbar .nav-item.dropdown:hover > .dropdown-menu { display: block; }
  .navbar .nav-item.dropdown > .dropdown-menu { margin-top: 0; }
  .navbar .nav-item.dropdown > .dropdown-menu::before { content: ""; position: absolute; top: -14px; left: 0; right: 0; height: 14px; }
}

/* Bloc atouts sous le hero (home) */
.intro-badges .ib { display:flex; align-items:center; gap:.9rem; justify-content:center; }
.intro-badges .ib-ic { flex:0 0 auto; width:54px; height:54px; border-radius:50%; background:var(--cream-2); color:var(--gold-dark); display:flex; align-items:center; justify-content:center; font-size:1.5rem; }
.intro-badges .ib-tx { text-align:left; }
.intro-badges .ib-tx strong { display:block; font-family:var(--serif); color:var(--ink); font-size:1.1rem; line-height:1.2; }
.intro-badges .ib-tx span { font-size:.86rem; color:var(--muted); }
@media (max-width:767px){ .intro-badges .ib { justify-content:flex-start; } }

/* Bande chiffres (home) — mise en valeur forte sur fond sombre */
.stats-strip { background: var(--ink); color:#fff; padding: 3.6rem 0; }
.stats-strip .ss-num { font-family: var(--serif); font-weight:600; font-size: clamp(3.2rem, 6vw, 5rem); line-height:1; color:#e7cf9e; }
.stats-strip .ss-lbl { font-size:.86rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.72); margin-top:.7rem; }
.stats-strip [class*="col-"] + [class*="col-"] .ss-num { position:relative; }
@media (min-width:768px){ .stats-strip [class*="col-"]:not(:first-child)::before { content:""; position:absolute; left:0; top:18%; height:64%; width:1px; background:rgba(255,255,255,.14); } .stats-strip [class*="col-"]{ position:relative; } }

/* Logo agrandi + tour Eiffel stylisée */
.navbar-brand { display:inline-flex; align-items:center; gap:.5rem; font-size:1.95rem; }
.navbar-brand .brand-word { display:inline-block; color:var(--ink); }
.brand-eiffel { height:2.5em; width:auto; color:var(--gold); flex:0 0 auto; }
.navbar.scrolled .brand-eiffel { height:2.2em; }

/* ==========================================================================
   BLOG (index + articles)
   ========================================================================== */
/* --- Prose article : titres, listes, tableaux --- */
.blog-prose h3 { font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.5rem); color: var(--ink); margin: 2rem 0 .8rem; }
.blog-prose h4 { font-family: var(--serif); font-size: 1.15rem; color: var(--ink); margin: 1.6rem 0 .6rem; }
.blog-prose ul, .blog-prose ol { margin: 0 0 1.4rem; padding-left: 1.3rem; }
.blog-prose li { margin-bottom: .5rem; }
.blog-prose ul li::marker { color: var(--gold); }
.blog-prose ol li::marker { color: var(--gold); font-weight: 700; }
.blog-prose a { color: var(--gold-dark); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.blog-prose a:hover { color: var(--ink); }
.blog-prose strong { color: var(--ink); }
.blog-prose img { max-width: 100%; height: auto; border-radius: 10px; box-shadow: var(--shadow-md); margin: 1.6rem 0; display: block; }
.blog-prose .table-wrap { overflow-x: auto; margin: 1.8rem 0; border: 1px solid var(--line); border-radius: 10px; }
.blog-prose table { width: 100%; border-collapse: collapse; font-size: .93rem; min-width: 520px; }
.blog-prose th, .blog-prose td { padding: .75rem .9rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.blog-prose thead th, .blog-prose tr:first-child th { background: var(--cream-2); color: var(--ink); font-family: var(--sans); font-weight: 700; }
.blog-prose tbody tr:nth-child(even) td { background: rgba(0,0,0,.015); }

/* --- Sommaire --- */
.blog-toc { background: var(--cream-2); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: 10px; padding: 1.2rem 1.4rem; margin: 0 0 2.2rem; }
.blog-toc-title { font-family: var(--sans); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: .82rem; color: var(--ink); margin: 0 0 .6rem; }
.blog-toc-title i { color: var(--gold); }
.blog-toc ol { margin: 0; padding-left: 1.2rem; }
.blog-toc li { margin-bottom: .35rem; }
.blog-toc a { color: var(--ink-soft); text-decoration: none; }
.blog-toc a:hover { color: var(--gold-dark); text-decoration: underline; }

/* --- Meta en tête d'article --- */
.blog-head-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 1.2rem; padding: 0; margin: 1.2rem 0 0; }

/* --- Encart autrice --- */
.blog-author { display: flex; gap: 1.6rem; align-items: center; background: var(--ink); color: #fdfbf6; border-radius: 14px; padding: 1.8rem 2rem; margin-top: 3rem; box-shadow: var(--shadow-md); }
.blog-author .ba-photo { flex: 0 0 96px; }
.blog-author .ba-photo img { width: 96px; height: 96px; object-fit: cover; border-radius: 50%; border: 2px solid var(--gold); }
.blog-author .eyebrow { color: var(--gold); }
.blog-author h2 { color: #fff; margin: .1rem 0 .5rem; font-size: 1.5rem; }
.blog-author p { color: #cfc9bd; margin-bottom: 1rem; }
.blog-author .btn-outline-ink { color: #fdfbf6; border-color: rgba(255,255,255,.4); }
.blog-author .btn-outline-ink:hover { background: #fff; color: var(--ink); border-color: #fff; }
@media (max-width: 575px){ .blog-author { flex-direction: column; text-align: center; padding: 1.6rem 1.3rem; } .blog-author .ba-text .btn { display: block; width: 100%; margin: .5rem 0 0 !important; } }

/* --- Carte blog (index) : la 1re en vedette (horizontale) --- */
.blog-card .cnt i { margin-right: .25rem; }
.blog-card-feat { flex-direction: row; }
.blog-card-feat .ph { height: auto; flex: 0 0 46%; min-height: 300px; }
.blog-card-feat .bd { justify-content: center; padding: 2rem 2.4rem; }
.blog-card-feat h3 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.blog-card-feat p { font-size: 1rem; }
@media (max-width: 767px){ .blog-card-feat { flex-direction: column; } .blog-card-feat .ph { flex: none; height: 200px; min-height: 0; } .blog-card-feat .bd { padding: 1.3rem 1.4rem; } }

/* Slider d'avis */
.testi-slider { position:relative; }
.testi-viewport { overflow:hidden; }
.testi-track { display:flex; gap:1.5rem; transition:transform .45s cubic-bezier(.4,0,.2,1); }
.testi-slide { flex:0 0 calc((100% - 3rem)/3); }
.testi-slide .testi { height:100%; }
@media (max-width:991px){ .testi-slide { flex-basis:calc((100% - 1.5rem)/2); } }
@media (max-width:575px){ .testi-slide { flex-basis:100%; } }
.testi-arrow { position:absolute; top:44%; transform:translateY(-50%); z-index:2; width:46px; height:46px; border-radius:50%; background:var(--paper); border:1px solid var(--line); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:1.2rem; cursor:pointer; box-shadow:var(--shadow-sm); transition:background .2s, border-color .2s, color .2s, opacity .2s; }
.testi-arrow:hover { background:var(--cream-2); border-color:var(--gold); color:var(--gold-dark); }
.testi-arrow.prev { left:-14px; } .testi-arrow.next { right:-14px; }
.testi-arrow:disabled { opacity:.32; cursor:default; }
.testi-dots { display:flex; justify-content:center; gap:.5rem; margin-top:1.6rem; }
.testi-dots button { width:9px; height:9px; border-radius:50%; border:0; background:var(--line); cursor:pointer; padding:0; transition:background .25s, width .25s; }
.testi-dots button.active { background:var(--gold); width:22px; border-radius:5px; }
@media (max-width:575px){ .testi-arrow { display:none; } }

/* --- Sidebar CTA (articles blog) : carte claire, compacte --- */
.blog-sidebar { position: sticky; top: 112px; }   /* fallback no-JS ; le JS prend le relais (sticky directionnel) */
.side-cta { background: var(--paper); color: var(--text); border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 14px; padding: 1.3rem 1.3rem; box-shadow: var(--shadow-sm); text-align: center; }
.side-cta .side-photo { width: 66px; height: 66px; margin: 0 auto .7rem; }
.side-cta .side-photo img { width: 66px; height: 66px; object-fit: cover; border-radius: 50%; border: 2px solid var(--gold); }
.side-cta .eyebrow { color: var(--gold-dark); }
.side-cta h2 { color: var(--ink); font-size: 1.25rem; margin: .15rem 0 .45rem; }
.side-cta > p { color: var(--muted); font-size: .88rem; line-height: 1.45; margin-bottom: .9rem; }
.side-cats { list-style: none; padding: 0; margin: 0 0 1rem; text-align: left; border-top: 1px solid var(--line); }
.side-cats li { border-bottom: 1px solid var(--line); }
.side-cats a { display: flex; align-items: center; gap: .55rem; padding: .52rem .2rem; color: var(--ink-soft); font-weight: 600; font-size: .92rem; text-decoration: none; transition: color .2s, padding .2s; }
.side-cats a i { color: var(--gold); font-size: 1.05rem; width: 1.2em; text-align: center; flex: 0 0 auto; }
.side-cats a:hover { color: var(--gold-dark); padding-left: .4rem; }
.side-note { color: var(--muted); font-size: .8rem; margin: .85rem 0 0; }
.side-note strong { color: var(--ink); }
@media (max-width: 991px){
  .blog-sidebar { position: static; margin-top: 2.5rem; transform: none !important; }
  .side-cta { max-width: 620px; margin: 0 auto; }
}

/* --- CTA mobile blog : barre fixe + modale contenant la carte visites --- */
@media (max-width: 991px){ body:has(.blog-mcta){ padding-bottom: 74px; } }
.modal .side-cta { border: 0; box-shadow: none; padding: .25rem 0 0; }
.modal .side-cta h2 { font-size: 1.35rem; }

/* --- Encart note dans les articles (ex : pourquoi Montmartre absent) --- */
.blog-note { display: flex; gap: 1rem; align-items: flex-start; background: var(--cream-2); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 10px; padding: 1.1rem 1.3rem; margin: 2rem 0; }
.blog-note .bn-ic { flex: 0 0 auto; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--gold); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.blog-note .bn-body > strong { display: block; font-family: var(--serif); font-size: 1.12rem; color: var(--ink); margin-bottom: .3rem; }
.blog-note .bn-body p strong { color: var(--ink); }
.blog-note .bn-body p { margin: 0; color: var(--ink-soft); font-size: .95rem; }

/* Logo image (navbar) */
.navbar-brand { padding:0; display:inline-flex; align-items:center; }
.brand-logo { height:58px; width:auto; display:block; transition:height .3s ease; }
.navbar.scrolled .brand-logo { height:48px; }
@media (max-width:575px){ .brand-logo { height:44px; } }

/* Sidebar réservation (pages catégories) */
.cat-sidebar { position: sticky; top: 100px; }
.cat-sidebar .book-info .v a { word-break: break-word; }

/* Bloc réassurance en sidebar (pages catégories) */
.side-reassure { background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:1.7rem 1.4rem 1.5rem; text-align:center; box-shadow:var(--shadow-sm); }
.side-reassure .sr-photo { width:100px; height:100px; border-radius:50%; object-fit:cover; object-position:center top; margin:0 auto .8rem; display:block; border:3px solid var(--cream-2); }
.side-reassure h3 { font-family:var(--serif); font-size:1.3rem; color:var(--ink); margin:0 0 .25rem; }
.side-reassure .sr-role { font-size:.84rem; color:var(--muted); line-height:1.4; margin:0 0 .9rem; }
.side-reassure .sr-google { font-size:.92rem; color:var(--ink); margin-bottom:.9rem; }
.side-reassure .sr-google strong { font-family:var(--serif); }
.side-reassure .sr-google .stars { color:#f5a623; letter-spacing:1px; }
.side-reassure .sr-quote { font-style:italic; font-size:.9rem; color:var(--ink-soft); border:0; margin:0 0 1.1rem; line-height:1.5; }

/* Macaron « Top visite » */
.top-badge { position:absolute; top:12px; left:12px; z-index:3; display:inline-flex; align-items:center; gap:.35rem; background:var(--gold); color:#fff; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; padding:.35rem .72rem; border-radius:999px; box-shadow:0 3px 10px rgba(0,0,0,.28); }
.top-badge i { font-size:.78rem; }
.catA { position:relative; }
.tour-card { position:relative; }
/* variante dans le hero de fiche */
.pagehead .top-badge { position:static; margin-bottom:1rem; box-shadow:none; font-size:.78rem; padding:.4rem .9rem; }

/* ===== Sélecteur de messagerie (clic mailto) ===== */
.mailchooser{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(35,32,27,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:mcFade .18s ease}
.mailchooser .mc-box{position:relative;width:100%;max-width:390px;background:var(--cream,#faf6ef);color:var(--text,#2b2822);border-radius:18px;padding:1.7rem 1.4rem 1.3rem;box-shadow:0 24px 60px rgba(0,0,0,.32)}
.mailchooser .mc-x{position:absolute;top:.5rem;right:.8rem;border:0;background:none;font-size:1.7rem;line-height:1;color:var(--muted,#6f6a60);cursor:pointer;padding:.2rem .4rem}
.mailchooser .mc-x:hover{color:var(--ink,#23201b)}
.mailchooser .mc-title{font-family:'Fraunces',Georgia,serif;font-size:1.35rem;font-weight:600;margin:0 0 .15rem}
.mailchooser .mc-sub{font-size:.9rem;color:var(--muted,#6f6a60);margin:0 0 1.1rem}
.mailchooser .mc-opt{display:flex;align-items:center;gap:.85rem;width:100%;text-align:left;border:1px solid rgba(0,0,0,.09);background:#fff;border-radius:12px;padding:.65rem .8rem;margin-bottom:.55rem;cursor:pointer;font-family:inherit;color:inherit;transition:border-color .15s,transform .06s,box-shadow .15s}
.mailchooser .mc-opt:hover{border-color:var(--gold,#b28f4f);transform:translateY(-1px);box-shadow:0 4px 14px rgba(178,143,79,.18)}
.mailchooser .mc-opt:last-child{margin-bottom:0}
.mailchooser .mc-ic{flex:0 0 36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:#fff}
.mailchooser .mc-ic-gmail{background:#EA4335}
.mailchooser .mc-ic-outlook{background:#0F6CBD}
.mailchooser .mc-ic-yahoo{background:#6001D2}
.mailchooser .mc-ic-default{background:var(--ink,#23201b)}
.mailchooser .mc-ic-copy{background:var(--gold,#b28f4f)}
.mailchooser .mc-tx{display:flex;flex-direction:column;min-width:0}
.mailchooser .mc-lb{font-weight:600;font-size:1rem}
.mailchooser .mc-hint{font-size:.78rem;color:var(--muted,#6f6a60);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-toast{position:fixed;left:50%;bottom:2rem;transform:translateX(-50%);background:var(--ink,#23201b);color:#fff;padding:.6rem 1.15rem;border-radius:999px;font-size:.9rem;z-index:3100;box-shadow:0 8px 24px rgba(0,0,0,.25);animation:mcFade .2s ease}
@keyframes mcFade{from{opacity:0}to{opacity:1}}

/* Lightbox : navigation flèches / fermeture / compteur */
.lightbox img { cursor: default; }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:54px; height:54px; border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:2.1rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.lb-nav:hover { background:rgba(255,255,255,.30); }
.lb-prev { left:2vw; } .lb-next { right:2vw; }
.lb-close { position:absolute; top:1.2rem; right:1.4rem; z-index:2; width:44px; height:44px; border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.lb-close:hover { background:rgba(255,255,255,.30); }
.lb-count { position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.85); font-size:.9rem; letter-spacing:.05em; }
@media (max-width:575px){ .lb-nav { width:42px; height:42px; font-size:1.6rem; } .lb-prev{ left:.4rem; } .lb-next{ right:.4rem; } }

/* --- Bloc SEO fin de page catégorie --- */
.seo-block { background: var(--paper); border-top: 1px solid var(--line); }
.seo-prose { max-width: 62rem; margin: 0 auto; }
.seo-prose h2 { font-family: var(--serif); font-weight: 600; font-size: clamp(1.6rem, 2.6vw, 2.15rem); color: var(--ink); margin-bottom: 1.15rem; line-height: 1.2; }
.seo-prose h3 { font-family: var(--serif); font-weight: 600; font-size: 1.35rem; color: var(--ink); margin: 2.4rem 0 1.1rem; }
.seo-prose p { color: var(--ink-soft); line-height: 1.78; margin-bottom: 1.15rem; font-size: 1.04rem; }
.seo-prose a { color: var(--gold-dark); text-decoration: underline; text-underline-offset: 2px; }
.seo-prose a:hover { color: var(--ink); }
.seo-prose strong { color: var(--text); font-weight: 600; }
.faq { margin-top: .5rem; }
.faq details { border: 1px solid var(--line); border-radius: 12px; padding: 0 1.15rem; margin-bottom: .8rem; background: var(--cream); }
.faq summary { list-style: none; cursor: pointer; padding: 1.05rem 0; font-weight: 600; color: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "\F282"; font-family: "bootstrap-icons"; font-weight: normal; color: var(--gold-dark); transition: transform .25s ease; flex: none; }
.faq details[open] summary::after { transform: rotate(180deg); }
.faq details > p { padding: 0 0 1.15rem; margin: 0; color: var(--ink-soft); line-height: 1.72; }
