/* HERO PLEIN ÉCRAN – override global */
html, body { min-height:100%; }

.home #hero,
.home .block-carousel-hero,
.home .carousel-hero,
.home .carousel-hero .swiper,
.home .carousel-hero .swiper-wrapper,
.home .carousel-hero .swiper-slide {
  height: 100dvh !important;
  height: 100svh !important;
  height: 100vh !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

.home .carousel-hero img,
.home .carousel-hero video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}
/* Force white/beige in the Thank You Paris section (overrides any global red) */
.section-thank-you-paris,
.section-thank-you-paris .section-title,
.section-thank-you-paris .expander-summary .teaser,
.section-thank-you-paris .expander-content,
.section-thank-you-paris .expander-content p,
.section-thank-you-paris .expander-content em,
.section-thank-you-paris .expander-content strong {
  color: #fef8f0 !important;
}
/* Force neutral (white/beige) text for all “Thank You Paris” / Film Vivant sections */
.section-thank-you-paris,
.section-thank-you-paris *,
.section-film-vivant,
.section-film-vivant * {
  color: #fef8f0 !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
/* --- Carousel subtitle override --- */
.carousel-block-subtitle {
  color: #fef8f0 !important;      /* restore beige-white tone */
  font-family: Georgia, serif !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  text-align: left !important;
  line-height: 1.6 !important;
  opacity: 0.95 !important;
  margin-top: 0.4em !important;
  margin-bottom: 0.6em !important;
}
/* --- Remove rounded corners from all carousel images --- */
.block-carousel-standard-v1 img,
.block-carousel-universal-v1 img,
.block-carousel-universal-v1-2per-row img,
.swiper-slide img {
  border-radius: 0 !important;
}
.swiper-slide,
.block-carousel-standard-v1 .swiper-slide,
.block-carousel-universal-v1 .swiper-slide {
  border-radius: 0 !important;
  overflow: visible !important;
}
/* Remove any rounded corners on all carousel cards/images (desktop + mobile) */
.section-template-flex .swiper-slide,
.section-template-flex .swiper-slide > *,
.section-template-flex .swiper-slide .thumb,
.section-template-flex .swiper-slide .thumb img,
.block-carousel-standard-v1 .swiper-slide,
.block-carousel-standard-v1 .swiper-slide .thumb,
.block-carousel-standard-v1 .swiper-slide .thumb img,
.block-carousel-universal-v1 .swiper-slide,
.block-carousel-universal-v1 .swiper-slide .thumb,
.block-carousel-universal-v1 .swiper-slide .thumb img,
.block-carousel-universal-v1-2per-row .swiper-slide,
.block-carousel-universal-v1-2per-row .swiper-slide .thumb,
.block-carousel-universal-v1-2per-row .swiper-slide .thumb img {
  border-radius: 0 !important;
}

/* If rounding is on the slide/container, stop the clipping on iOS/Android */
.section-template-flex .swiper-slide,
.block-carousel-standard-v1 .swiper-slide,
.block-carousel-universal-v1 .swiper-slide,
.block-carousel-universal-v1-2per-row .swiper-slide {
  overflow: visible !important;
  -webkit-mask-image: none !important; /* iOS Safari sometimes applies masks */
  mask-image: none !important;
  clip-path: none !important;
}

/* Some builds add radius on generic `img` inside carousel blocks on small screens */
@media (max-width: 768px) {
  [class*="carousel"] img,
  [class*="carousel"] .thumb,
  [class*="carousel"] .thumb img {
    border-radius: 0 !important;
  }
}
/* Signature block — quiet, accountable */
.section-template-flex#signature .section-title { display:none; }
.section-template-flex#signature details { border: 0; padding: 0; }
.section-template-flex#signature .expander-summary { display: none; }

.pta-signature-quote {
  text-align: center;
  font-style: italic;
  font-size: clamp(18px, 2.2vw, 24px);
  color: #f2efe9; /* warm white */
  margin: 16px 0 8px;
}
.pta-signature-name {
  text-align: center;
  letter-spacing: 0.02em;
  color: #e7e3dc;
  margin: 0 0 8px;
}
.pta-signature-note {
  text-align: center;
  color: #cfcac1;
  max-width: 780px;
  margin: 0 auto 8px;
}
/* Declaration section — cinematic finale */
#declaration {
  background: linear-gradient(180deg, #03001E 0%, #000000 100%);
}
#declaration .section-title {
  color: #fef8f0;
  text-align: center;
  font-weight: 600;
  margin-bottom: 1rem;
}
#declaration .expander-content p {
  color: #e8e3dc;
  text-align: center;
  max-width: 760px;
  margin: 0 auto 0.8rem;
}
/* Force all carousel subtitles & section subtitles left-aligned */
.carousel-block-subtitle,
.block-carousel-standard-v1 .carousel-block-subtitle,
.block-carousel-universal-v1 .carousel-block-subtitle,
.section-template-flex .expander-content p,
.bif-copy p {
  text-align: left !important;
}
/* ───────────────────────────────────────────────
   MOBILE OPTIMISATION – PARIS T’AIME (Nov 2025)
   ─────────────────────────────────────────────── */
@media (max-width: 640px){
  /* Alignement gauche pour titres et textes */
  .section-template-flex .section-title,
  .section-template-flex .carousel-block-title,
  .section-template-flex .carousel-block-subtitle,
  .block-invisible-fraternity .bif-title,
  .block-invisible-fraternity .bif-copy {
    text-align:left;
  }

  /* Échelle typographique plus douce */
  .section-template-flex .section-title { font-size:1.5rem; line-height:1.25; }
  .section-template-flex .expander-summary .teaser { font-size:1.05rem; }
  .carousel-block-title { font-size:1.25rem; }
  .carousel-block-subtitle { font-size:1.05rem; opacity:.9; }

  /* Espacement vertical respirant */
  .section-template-flex{ padding:1.25rem 0 1.75rem; }
  .section-template-flex .expander{ margin-bottom:1rem; }
  .block-carousel-standard-v1,
  .block-carousel-universal-v1{ margin-top:.5rem; margin-bottom:1.5rem; }

  /* CTA ergonomiques et élégants */
  .expander-summary .expander-cta,
  .bif-button,
  .cta .btn,
  .section-template-flex .cta .btn{
    border-radius: 2rem;
    padding: .6rem 1rem;
    font-size: 1rem;
  }

  /* Carrousels : bords propres & gouttières */
  .carousel .slide,
  .carousel .swiper-slide{
    border-radius: 12px; 
    overflow: hidden;
    margin-right: .75rem;
  }
  .carousel img{
    display:block;
    width:100%;
    height:auto;
  }

  /* Suppression des débordements horizontaux */
  html, body { overflow-x:hidden; }
  .section-template-flex, .block-invisible-fraternity { max-width:100%; }

  /* Zones tactiles et marges intérieures */
  .language-selector a img{ width:28px; height:auto; }
  .language-selector a{ padding: .25rem; }
  .section-template-flex .stf-inner,
  .block-invisible-fraternity .bif-inner{
    padding-left:1rem;
    padding-right:1rem;
  }
}

/* Thème couleur global */
:root{
  --pta-bg: #0a0b28;
  --pta-text: #f1f3f8;
  --pta-muted: #c9cede;
  --pta-accent: #c5332f;
}
body{ background: var(--pta-bg); color: var(--pta-text); }
.section-template-flex .carousel-block-subtitle,
.block-invisible-fraternity .bif-copy{ color: var(--pta-muted); }


/* Utility: hide internal carousel titles when wrapped */
.hide-internal-carousel-title .block-carousel-standard .carousel-block-header,
.hide-internal-carousel-title .block-carousel-universal .carousel-block-header,
.hide-internal-carousel-title .block-carousel-standard header.block-header,
.hide-internal-carousel-title .block-carousel-universal header.block-header,
.hide-internal-carousel-title .block-carousel-standard .block-header,
.hide-internal-carousel-title .block-carousel-universal .block-header,
.hide-internal-carousel-title .block-carousel-standard h3.block-title,
.hide-internal-carousel-title .block-carousel-universal h3.block-title,
.hide-internal-carousel-title .block-carousel-standard .block-subtitle,
.hide-internal-carousel-title .block-carousel-universal .block-subtitle {
  display: none !important;
}
/* ===== Carousels — policy site-wide =====
   Par défaut: on cache les titres internes générés dans les composants,
   car chaque section gère ses propres titres visibles.
   Classes touchées : .carousel-block-header, .block-header, .block-title, .block-subtitle
===================================================== */
/* --- Section: Thank you, Paris (id=merci-paris) ---
   Masquer UNIQUEMENT les titres internes du composant (dans le carrousel)  */
#merci-paris .block-carousel-standard > header.carousel-block-header,
#merci-paris .block-carousel-standard > div.carousel-block-header,
#merci-paris .block-carousel-universal > header.carousel-block-header,
#merci-paris .block-carousel-universal > div.carousel-block-header,
#merci-paris .block-carousel-standard header.block-header,
#merci-paris .block-carousel-universal header.block-header,
#merci-paris .block-carousel-standard .block-header,
#merci-paris .block-carousel-universal .block-header,
#merci-paris .block-carousel-standard h3.block-title,
#merci-paris .block-carousel-universal h3.block-title,
#merci-paris .block-carousel-standard .block-subtitle,
#merci-paris .block-carousel-universal .block-subtitle {
  display: none !important;
}

/* Laisser visibles tes titres de SECTION écrits hors composant */
#merci-paris > .stf-inner > header.carousel-block-header,
#merci-paris > .stf-inner > header.carousel-block-header .carousel-block-title,
#merci-paris > .stf-inner > header.carousel-block-header .carousel-block-subtitle {
  display: block !important;
}
/* Hide any internal header/title printed INSIDE a wrapper flagged with data-strip="headers" */
.carousel-shell[data-strip="headers"] .carousel-block-header,
.carousel-shell[data-strip="headers"] header.block-header,
.carousel-shell[data-strip="headers"] .block-header,
.carousel-shell[data-strip="headers"] h1.block-title,
.carousel-shell[data-strip="headers"] h2.block-title,
.carousel-shell[data-strip="headers"] h3.block-title,
.carousel-shell[data-strip="headers"] .block-title,
.carousel-shell[data-strip="headers"] .block-subtitle {
  display: none !important;
}

.section-closure {
  border-top: 1px solid rgba(255,255,255,0.15);
  padding-top: 2em;
  margin-top: 2em;
}
.section-closure header h2 {
  color: #fef8f0;
  letter-spacing: 0.02em;
}
/* Paris T'aime — bandeau "version en construction" */
.pt-beta-banner1 {
  background: #001944;
  color: #fef8f0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  line-height: 1.4;
  border-bottom: 1px solid rgba(254, 248, 240, 0.15);
}

.pt-beta-inner1 {
  max-width: 1200px;
  margin: 0 auto;
  padding: 6px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pt-beta-inner1 strong {
  font-weight: 600;
}

.pt-beta-inner1 span {
  opacity: 0.9;
}

/* Paris T'aime — main navigation
   -------------------------------------------------- */
.pt-main-header {
  background: #001944; /* bleu profond de ta charte */
  color: #fef8f0;      /* beige clair */
  border-bottom: 1px solid rgba(254, 248, 240, 0.1);
}

.pt-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* Logo / titre */
.pt-logo {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.pt-logo-main {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: 20px;
  letter-spacing: 0.04em;
}

.pt-logo-sub {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  opacity: 0.8;
}

/* Liens de navigation */
.pt-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
}

.pt-nav-link {
  text-decoration: none;
  color: #fef8f0;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.pt-nav-link:hover,
.pt-nav-link:focus-visible {
  background: #fef8f0;
  color: #001944;
  border-color: #fef8f0;
  outline: none;
}

/* Mobile : logo et menu empilés */
@media (max-width: 700px) {
  .pt-header-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .pt-nav {
    justify-content: flex-start;
  }
}
/* Bouton hamburger — caché par défaut (desktop) */
.pt-nav-toggle {
  display: none;
  background: transparent;
  border: 1px solid rgba(254, 248, 240, 0.5);
  border-radius: 999px;
  padding: 4px 8px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.pt-nav-bar {
  display: block;
  width: 14px;
  height: 2px;
  background: #fef8f0;
  border-radius: 999px;
}
@media (max-width: 700px) {
  .pt-header-inner {
    max-width: 100%;
    padding: 8px 10px;
    flex-direction: row;
    align-items: center;
  }

  /* Logo un peu plus compact sur mobile */
  .pt-logo-main {
    font-size: 18px;
  }

  .pt-logo-sub {
    font-size: 10px;
  }

  /* Afficher le hamburger, cacher la nav par défaut */
  .pt-nav-toggle {
    display: inline-flex;
  }

  .pt-nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 8px;
  }

  /* Quand le header a la classe pt-nav-open → afficher la nav */
  .pt-main-header.pt-nav-open .pt-nav {
    display: flex;
  }

  .pt-nav-link {
    width: 100%;
    text-align: left;
    padding: 6px 8px;
  }

  /* Empiler header + nav */
  .pt-main-header.pt-nav-open .pt-header-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* Paris T'aime — Pop-up d'accès privé
   ---------------------------------------- */
.pt-access-overlay {
  position: fixed;
  inset: 0;
  background: rgba(3, 0, 30, 0.85); /* fond sombre, cohérent avec le site */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.pt-access-modal {
  background: #fef8f0;
  color: #001944;
  max-width: 420px;
  width: 90%;
  padding: 24px 20px 20px;
  border-radius: 9px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.35);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: left;
}

.pt-access-title {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: 20px;
  margin: 0 0 8px;
}

.pt-access-intro {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 16px;
  color: #333;
}

.pt-access-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pt-access-label {
  font-size: 13px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.pt-access-input {
  padding: 6px 10px;
  border-radius: 9px;
  border: 1px solid #001944;
  font-size: 14px;
  background: #ffffff;
  color: #001944;
}

.pt-access-input:focus {
  outline: none;
  border-color: #8B0000;
  box-shadow: 0 0 0 1px rgba(139, 0, 0, 0.15);
}

/* Zone boutons dans le pop-up */
.pt-access-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 12px;
  flex-wrap: wrap;
}

/* Bouton principal (Valider) */
.pt-access-button {
  border-radius: 9px;
  border: none;
  background: #8B0000;
  color: #fef8f0;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.pt-access-button:hover {
  opacity: 0.95;
}

/* Bouton secondaire (Fermer) */
.pt-access-button-secondary,
.pt-access-button-secondary:link,
.pt-access-button-secondary:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  border: 1px solid #001944;
  background: transparent;
  color: #001944;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  text-decoration: none;
}

.pt-access-button-secondary:hover {
  background: rgba(0, 0, 0, 0.05);
}

.pt-access-error {
  font-size: 12px;
  color: #b30000;
  margin-top: 4px;
}

/* Verrou local sur la section "80 quartiers"
   ----------------------------------------- */

/* La section entière sert de conteneur à l'overlay */
#feuilletons-80 {
  position: relative;
}

/* Le bouton couvre toute la section et déclenche le pop-up global */
#feuilletons-80 .pta-section-lock {
  position: absolute;
  inset: 0;
  z-index: 20;
  border: none;
  padding: 0;
  margin: 0;
  background: rgba(3, 0, 30, 0.86); /* fond sombre */
  color: #fef8f0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Contenu du message dans le voile */
#feuilletons-80 .pta-section-lock-inner {
  max-width: 520px;
  padding: 18px 20px;
  border-radius: 16px;
  background: rgba(254, 248, 240, 0.96);
  color: #001944;
  text-align: left;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

#feuilletons-80 .pta-section-lock-inner h3 {
  margin: 0 0 8px;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: 18px;
}

#feuilletons-80 .pta-section-lock-inner p {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

/* Zone boutons dans le pop-up */
.pt-access-actions {
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 12px;
  flex-wrap: wrap;
}

/* Bouton principal (VALIDER) */
.pt-access-button {
  border-radius: 9px;
  border: none;
  background: #8B0000;      /* rouge label Paris T'aime */
  color: #fef8f0;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.pt-access-button:hover {
  opacity: 0.95;
}

/* Bouton secondaire (FERMER) – négatif bleu */
.pt-access-button-secondary,
.pt-access-button-secondary:link,
.pt-access-button-secondary:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  border: 1px solid #001944;   /* bleu profond */
  background: transparent;
  color: #001944;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  text-decoration: none;
}

.pt-access-button-secondary:hover {
  background: rgba(0, 25, 68, 0.06);  /* léger voile bleu au survol */
}
