/* ═══════════════════════════════════════════════════════════════════════════
   ADAPT-LAYOUT — Présentation visiteur, tous supports
   Les positions CMS restent en mode édition. Ici : reflow, pas de chevauchement.
═══════════════════════════════════════════════════════════════════════════ */

body.edit-mode #page-canvas .canvas-element,
body.edit-mode[data-canvas-mode="design"] #page-canvas .canvas-element {
  position: absolute !important;
}
body.edit-mode .canvas-stage {
  max-width: none !important;
}

html, body {
  overflow-x: clip;
  max-width: 100%;
}

body:not(.edit-mode) #app-main,
body:not(.edit-mode) #page-canvas,
body:not(.edit-mode) .canvas-stage,
body:not(.edit-mode) .site-footer,
body:not(.edit-mode) .ip-home-sections {
  max-width: 100%;
  box-sizing: border-box;
}

/* ── Visiteur composé : les positions Planche sont affichées telles quelles ─ */
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  overflow-y: visible;
}
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas .canvas-stage {
  display: block !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  padding: 0 !important;
  gap: 0 !important;
  box-sizing: border-box;
}
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas .canvas-element {
  position: absolute !important;
  right: auto !important;
  bottom: auto !important;
  max-width: none !important;
  float: none !important;
  margin: 0 !important;
}
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas .el-text-inner[data-has-style],
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas .el-text-inner[data-has-style] :is(h1,h2,h3,h4,h5,h6,p,em,span,b,strong,li,font) {
  font-size: var(--el-size, inherit) !important;
  color: var(--el-color, inherit) !important;
  font-weight: var(--el-weight, inherit) !important;
  letter-spacing: var(--el-ls, inherit) !important;
  line-height: var(--el-lh, inherit) !important;
}
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas .el-text-inner[data-has-font],
body:not(.edit-mode)[data-canvas-mode="composed"] #page-canvas .el-text-inner[data-has-font] :is(h1,h2,h3,h4,h5,h6,p,em,span,b,strong,li,font) {
  font-family: var(--el-font), Georgia, serif !important;
}

/* ── Géométrie : plus d’absolu en visiteur ──────────────────────────────── */
body:not(.edit-mode)[data-canvas-mode="hero"] #page-canvas .canvas-element,
body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  max-width: 100% !important;
  height: auto !important;
  float: none !important;
  box-sizing: border-box;
  overflow: visible;
}

body:not(.edit-mode) .el-text-inner,
body:not(.edit-mode) .el-text-inner *,
body:not(.edit-mode) .el-btn,
body:not(.edit-mode) .ip-portal__title,
body:not(.edit-mode) .ip-portal__sub,
body:not(.edit-mode) .footer-text,
body:not(.edit-mode) .footer-link,
body:not(.edit-mode) .software-card__title,
body:not(.edit-mode) .software-card__desc,
body:not(.edit-mode) .contact-info-card p,
body:not(.edit-mode) .gallery-block-title {
  white-space: normal !important;
  overflow-wrap: break-word;
  word-break: normal;
  max-width: 100%;
}

body:not(.edit-mode) .el-text-inner a,
body:not(.edit-mode) .footer-link,
body:not(.edit-mode) .software-card a {
  overflow-wrap: anywhere;
}

.ip-portal,
.footer-column,
.software-card,
.contact-info-card,
.gallery-block {
  min-width: 0;
}

body:not(.edit-mode) .el-btn {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  text-align: center;
  max-width: 100%;
}

/* ── Accueil : colonne centrée (téléphone / mode hero uniquement) ─────────── */
body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) #page-canvas .canvas-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100% !important;
  min-height: min(88svh, 900px);
  padding: calc(var(--r-nav-h, 72px) + 1.75rem) max(1.25rem, env(safe-area-inset-left, 0px)) 3.5rem max(1.25rem, env(safe-area-inset-right, 0px));
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) #page-canvas .canvas-element.el-text {
  width: min(40rem, 100%) !important;
  margin: 0 auto;
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) #page-canvas .canvas-element.el-separator {
  width: min(5rem, 28%) !important;
  margin: 0.45rem auto 0.65rem;
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) #page-canvas .canvas-element.el-button {
  width: auto !important;
  margin: 0.5rem auto 0;
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .el-text-inner {
  text-shadow: none;
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .el-text-inner h1,
body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .canvas-element[data-typo="title"] .el-text-inner,
body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .canvas-element[data-typo="title"] .el-text-inner h1 {
  font-size: clamp(1.75rem, 4vw, 3rem) !important;
  letter-spacing: 0.02em !important;
  line-height: 1.18 !important;
  text-transform: none !important;
  text-wrap: balance;
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .canvas-element[data-typo="label"] .el-text-inner,
body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .canvas-element[data-typo="label"] .el-text-inner p {
  letter-spacing: 0.12em !important;
  font-size: clamp(0.75rem, 1.4vw, 0.875rem) !important;
}

body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .canvas-element[data-typo="intro"] .el-text-inner,
body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) .canvas-element[data-typo="intro"] .el-text-inner p {
  max-width: 36rem;
  margin-inline: auto;
  font-size: clamp(1rem, 1.4vw, 1.125rem) !important;
  letter-spacing: 0.01em !important;
}

body[data-page="home"]:not(.edit-mode) #scroll-hint {
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
}

@media (max-height: 620px) {
  body[data-page="home"]:not(.edit-mode) #scroll-hint { display: none; }
  body[data-page="home"]:not(.edit-mode):not([data-canvas-mode="composed"]) #page-canvas .canvas-stage {
    min-height: 0;
    padding-top: calc(var(--r-nav-h, 64px) + 1rem);
    padding-bottom: 2rem;
  }
}

/* ── Pages fluides : pile de lecture centrée ─────────────────────────────── */
body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-stage {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 0.55rem;
  padding-top: 1.6rem;
  padding-bottom: 2.25rem;
  padding-left: max(var(--page-margin-x, 1.25rem), env(safe-area-inset-left, 0px));
  padding-right: max(var(--page-margin-x, 1.25rem), env(safe-area-inset-right, 0px));
}

body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-text,
body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-button {
  width: min(42rem, 100%) !important;
  margin-inline: auto;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-separator {
  width: min(5rem, 28%) !important;
  margin: 0.35rem auto 0.55rem;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-image,
body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-video {
  width: min(16rem, 100%) !important;
  margin-inline: auto;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-image img,
body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-video video {
  width: 100%;
  height: auto;
  max-height: min(18rem, 42vh);
  object-fit: cover;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] .el-text-inner,
body:not(.edit-mode)[data-canvas-mode="fluid"] .el-text-inner h1,
body:not(.edit-mode)[data-canvas-mode="fluid"] .el-text-inner h2,
body:not(.edit-mode)[data-canvas-mode="fluid"] .el-text-inner p {
  text-align: center !important;
  letter-spacing: 0.02em !important;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="legal"] .el-text-inner,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="legal"] .el-text-inner p,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="legal"] .el-text-inner li,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="legal"] .el-text-inner h3 {
  text-align: left !important;
  letter-spacing: 0.01em !important;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] .el-text-inner h1,
body:not(.edit-mode)[data-canvas-mode="fluid"] .el-text-inner h2,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="title"] .el-text-inner,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="title"] .el-text-inner h1,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="title"] .el-text-inner h2 {
  font-size: clamp(1.55rem, 3.6vw, 2.75rem) !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
  text-wrap: balance;
}

body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="label"] .el-text-inner,
body:not(.edit-mode)[data-canvas-mode="fluid"] .canvas-element[data-typo="label"] .el-text-inner p {
  letter-spacing: 0.12em !important;
}

/* ── Navigation : pas de collision ─────────────────────────────────────── */
#admin-bar {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 10px;
}

.admin-brand {
  min-width: 0;
  flex: 0 1 auto;
}

#site-name-display {
  max-width: min(34vw, 14rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body:not(.edit-mode) .nav-link,
[data-theme="papier-baryte"] body:not(.edit-mode) .nav-link {
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  font-size: 0.9rem !important;
  white-space: nowrap;
}

.ip-portal__title,
.ip-portal__cta {
  letter-spacing: 0.12em;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.ip-portal__sub {
  max-width: min(16rem, 100%);
}

.nav-mobile-link {
  white-space: normal;
  line-height: 1.35;
  padding: 14px 18px;
  min-height: 44px;
}

@media (max-width: 1240px) {
  body:not(.edit-mode) .admin-nav { display: none !important; }
  body:not(.edit-mode) .nav-hamburger { display: flex !important; }
}

@media (max-width: 1480px) {
  body.admin-mode:not(.edit-mode) .admin-nav { display: none !important; }
  body.admin-mode:not(.edit-mode) .nav-hamburger { display: flex !important; }
}

@media (max-width: 640px) {
  #site-name-display { max-width: 42vw; }
  body[data-page="home"]:not(.edit-mode) .canvas-element[data-typo="title"] .el-text-inner h1 {
    font-size: clamp(1.4rem, 7.4vw, 2.1rem) !important;
    letter-spacing: 0.04em !important;
  }
  body[data-page="home"]:not(.edit-mode) .canvas-element[data-typo="label"] .el-text-inner p {
    letter-spacing: 0.1em !important;
  }
  body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-image,
  body:not(.edit-mode)[data-canvas-mode="fluid"] #page-canvas .canvas-element.el-video {
    width: 100% !important;
  }
}

/* ── Pied de page ─────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .footer-content {
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem;
  }
  .footer-about { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .footer-content {
    grid-template-columns: 1fr !important;
    gap: 1.35rem;
  }
}

/* ── Cookies : contraste et pile ────────────────────────────────────────── */
#cookie-consent-banner .cookie-consent__text p,
#cookie-consent-banner .cookie-consent__text {
  color: #efe9dc !important;
}
#cookie-consent-banner .cookie-consent__links a,
#cookie-consent-banner .cookie-inline-link {
  color: #e4c56a !important;
}
#cookie-consent-banner .cookie-consent__inner {
  align-items: stretch;
}
@media (max-width: 720px) {
  #cookie-consent-banner .cookie-consent__inner {
    flex-direction: column;
  }
  #cookie-consent-banner .cookie-consent__actions {
    width: 100%;
    display: flex;
    flex-direction: column;
  }
  #cookie-consent-banner .cookie-btn {
    width: 100%;
    min-height: 44px;
  }
}

/* ── Portails accueil ─────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .ip-portals {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ip-portal { min-height: 260px; }
}

@media (max-width: 640px) {
  .ip-portals { grid-template-columns: 1fr; }
  .ip-portal { min-height: 240px; padding: 1.5rem 1.1rem; }
  .ip-portal__title { letter-spacing: 0.08em; font-size: 0.95rem; }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.edit-mode) * {
    scroll-behavior: auto !important;
  }
}

/* ── Image collée au bandeau + police du bandeau identique partout ─────── */
body:not(.edit-mode) {
  padding-top: 0 !important;
}
body:not(.edit-mode) #app-main {
  margin-top: var(--r-nav-h, 64px) !important;
}
body:not(.edit-mode) #page-canvas,
body:not(.edit-mode) #page-canvas.page-entering {
  margin-top: 0 !important;
  transform: none !important;
  animation: none !important;
}
body:not(.edit-mode) #admin-bar {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
}
body:not(.edit-mode) #admin-bar .nav-link,
body:not(.edit-mode) #admin-bar .nav-mobile-link {
  font-family: var(--site-font-body, 'Newsreader', Georgia, serif) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  white-space: nowrap;
}
body:not(.edit-mode) #admin-bar #site-name-display {
  font-family: var(--site-font-body, 'Newsreader', Georgia, serif) !important;
  font-style: italic;
}

/* ── Copyright photo/vidéo — modèle 2026 ©www.pixelsphotos.com ───────────── */
html[data-theme] .media-copyright,
.gallery-item .media-copyright,
.lb-media .media-copyright,
#page-canvas .media-copyright {
  position: absolute;
  right: 1.6%;
  bottom: 1.35%;
  z-index: 6;
  margin: 0;
  padding: 0;
  font-family: 'Newsreader', Georgia, 'Times New Roman', serif !important;
  font-weight: 300 !important;
  font-size: clamp(9px, 1.15vh, 12px);
  line-height: 1;
  letter-spacing: 0.02em;
  color: #ffffff !important;
  opacity: 0.82;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.85),
    0 0 8px rgba(0, 0, 0, 0.45);
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  white-space: nowrap;
}
.gallery-item .media-copyright {
  font-size: clamp(7px, 1.35vw, 10px);
  right: 2%;
  bottom: 1.8%;
}
.lb-media {
  position: relative;
  display: inline-block;
  line-height: 0;
  max-width: 100%;
}
.lb-media img,
.lb-media video {
  max-width: 100%;
  max-height: calc(100vh - 180px);
  display: block;
}
.lb-media .media-copyright {
  font-size: clamp(10px, 1.25vh, 13px);
  right: 1.5%;
  bottom: 1.4%;
}
