/* Conne Infos visual components — 0.6.0 */
:root {
  --cdi-component-gap: clamp(16px, 2vw, 26px);
  --cdi-component-border: #e3dde1;
  --cdi-component-soft: #f7f3f5;
  --cdi-component-muted: #69676e;
}
.cdi-kicker {
  display: inline-block;
  color: #8f3f6c;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.cdi-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 11px 18px;
  border: 1px solid var(--cdi-primary, #cf86b0);
  border-radius: 0;
  background: var(--cdi-primary, #cf86b0);
  color: #2d2d32;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}
.cdi-button:hover,
.cdi-button:focus-visible {
  transform: translateY(-1px);
  background: #8f3f6c;
  border-color: #8f3f6c;
  color: #fff;
}
.cdi-button--outline { background: transparent; color: var(--cdi-ink, #2d2d32); }
.cdi-button--dark { background: var(--cdi-ink, #2d2d32); border-color: var(--cdi-ink, #2d2d32); color: #fff; }
.cdi-text-link { color: var(--cdi-link, #cd291e); font-weight: 800; }
.cdi-section-action { display: flex; justify-content: center; margin-top: 30px; }
.cdi-empty-state,
.cdi-editor-placeholder {
  border: 1px dashed #b8adb4;
  background: #fff;
  padding: 22px;
  color: #605d64;
}
.cdi-editor-placeholder { display: grid; gap: 4px; }
.cdi-editor-placeholder strong { color: var(--cdi-ink, #2d2d32); }
.cdi-media-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 70% 30%, rgba(211,197,73,.7), transparent 23%),
    radial-gradient(circle at 25% 72%, rgba(91,161,62,.55), transparent 25%),
    linear-gradient(135deg, rgba(207,134,176,.85), #f3e4ec 55%, #d9e9d4);
}

/* Home village introduction. */
.cdi-village-intro {
  position: relative;
  display: grid;
  grid-template-columns: 5px minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(20px, 3vw, 42px);
  padding: clamp(28px, 4vw, 54px);
  border: 1px solid var(--cdi-component-border);
  background: #fff;
}
.cdi-village-intro__line { align-self: stretch; background: linear-gradient(var(--cdi-primary), var(--cdi-secondary), var(--cdi-tertiary)); }
.cdi-village-intro h1 { margin: 7px 0 12px; font-size: clamp(28px, 3vw, 46px); line-height: 1.06; }
.cdi-village-intro p { max-width: 900px; margin: 0; color: var(--cdi-component-muted); font-size: 17px; }

/* News. */
.cdi-news-feed { display: grid; gap: 24px; }
.cdi-last-minute {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  background: #fff0ee;
  border-left: 5px solid #cd291e;
}
.cdi-last-minute span { flex: none; color: #a51e16; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .09em; }
.cdi-last-minute a { color: var(--cdi-ink, #2d2d32); font-weight: 800; text-decoration: none; }
.cdi-featured-slider { position: relative; border: 1px solid var(--cdi-component-border); background: #fff; overflow: hidden; }
.cdi-featured-slider__viewport { min-height: clamp(410px, 37vw, 570px); }
.cdi-featured-slider__slide { min-height: inherit; }
.cdi-featured-slider__slide[hidden] { display: none !important; }
.cdi-featured-slider__controls {
  position: absolute;
  right: 18px;
  bottom: 18px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  background: rgba(250,250,250,.94);
  box-shadow: 0 8px 24px rgba(45,45,50,.14);
}
.cdi-featured-slider__controls button {
  width: 36px;
  height: 36px;
  border: 1px solid var(--cdi-component-border);
  background: #fff;
  color: var(--cdi-ink, #2d2d32);
  cursor: pointer;
}
.cdi-featured-slider__controls button:hover,
.cdi-featured-slider__controls button:focus-visible { border-color: var(--cdi-primary); color: #8f3f6c; }
.cdi-featured-slider__controls span { min-width: 50px; text-align: center; font-size: 12px; font-weight: 800; }
.cdi-news-card,
.cdi-heart-card { border: 1px solid var(--cdi-component-border); background: #fff; overflow: hidden; }
.cdi-news-card > a,
.cdi-heart-card > a { display: block; height: 100%; color: inherit; text-decoration: none; }
.cdi-news-card__media,
.cdi-heart-card__media { overflow: hidden; background: #eee; }
.cdi-news-card img,
.cdi-heart-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.cdi-news-card a:hover img,
.cdi-heart-card a:hover img { transform: scale(1.025); }
.cdi-news-card__body,
.cdi-heart-card__body { padding: clamp(18px, 2vw, 28px); }
.cdi-news-card h3,
.cdi-heart-card h3 { margin: 7px 0 10px; line-height: 1.08; }
.cdi-news-card p,
.cdi-heart-card p { color: var(--cdi-component-muted); }
.cdi-card-meta { margin-bottom: 10px; color: #7a777e; font-size: 13px; }
.cdi-news-card--featured > a {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(330px, .85fr);
  min-height: clamp(410px, 37vw, 570px);
}
.cdi-news-card--featured .cdi-news-card__media { min-height: inherit; }
.cdi-news-card--featured .cdi-news-card__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 60px); }
.cdi-news-card--featured h3 { font-size: clamp(30px, 3.6vw, 58px); }
.cdi-news-card--featured p { font-size: 17px; }
.cdi-news-grid { display: grid; gap: var(--cdi-component-gap); }
.cdi-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cdi-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cdi-news-grid .cdi-news-card__media { height: 220px; }
.cdi-news-grid .cdi-news-card h3 { font-size: clamp(20px, 2vw, 27px); }


/* 0.11.6 — full Actualités page: one true lead story, compact archive and pagination. */
.cdi-news-feed--archive { gap: clamp(22px, 2.5vw, 34px); }
.cdi-news-feed--archive .cdi-featured-slider { margin-bottom: 2px; }
.cdi-news-grid--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.cdi-news-card--compact > a {
  display: grid;
  grid-template-columns: minmax(150px, 34%) minmax(0, 1fr);
  min-height: 178px;
}
.cdi-news-card--compact .cdi-news-card__media { min-height: 178px; }
.cdi-news-card--compact .cdi-news-card__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 18px 20px;
}
.cdi-news-card--compact .cdi-kicker { font-size: 10px; }
.cdi-news-card--compact h3 {
  display: -webkit-box;
  margin: 5px 0 7px;
  overflow: hidden;
  font-size: clamp(19px, 1.65vw, 24px);
  line-height: 1.12;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.cdi-news-card--compact .cdi-card-meta { margin-bottom: 7px; font-size: 12px; }
.cdi-news-card--compact p {
  display: -webkit-box;
  margin: 0 0 8px;
  overflow: hidden;
  font-size: 14px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.cdi-news-card--compact .cdi-text-link { margin-top: auto; font-size: 12px; }
.cdi-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 8px;
  border-top: 1px solid var(--cdi-component-border);
}
.cdi-pagination__summary { color: var(--cdi-component-muted); font-size: 13px; font-weight: 700; }
.cdi-pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cdi-pagination .page-numbers li { margin: 0; }
.cdi-pagination a.page-numbers,
.cdi-pagination span.page-numbers {
  display: inline-flex;
  min-width: 40px;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  border: 1px solid var(--cdi-component-border);
  background: #fff;
  color: var(--cdi-ink, #2d2d32);
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
}
.cdi-pagination a.page-numbers:hover,
.cdi-pagination a.page-numbers:focus-visible { border-color: var(--cdi-primary); color: #8f3f6c; }
.cdi-pagination span.page-numbers.current { border-color: var(--cdi-ink, #2d2d32); background: var(--cdi-ink, #2d2d32); color: #fff; }

/* Editorial hearts. */
.cdi-heart-feed { display: grid; gap: 22px; }
.cdi-heart-card--primary > a { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(340px, .8fr); min-height: clamp(440px, 48vh, 520px); }
.cdi-heart-card--primary .cdi-heart-card__media { min-height: inherit; }
.cdi-heart-card--primary .cdi-heart-card__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(30px, 4vw, 58px); }
.cdi-heart-card--primary h3 { font-size: clamp(34px, 4vw, 62px); }
.cdi-heart-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.cdi-heart-card--secondary > a { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: 300px; }
.cdi-heart-card--secondary .cdi-heart-card__media { min-height: inherit; }
.cdi-heart-card--secondary h3 { font-size: clamp(25px, 2.8vw, 38px); }
.cdi-heart-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.cdi-heart-grid .cdi-heart-card__media { height: 190px; }
.cdi-heart-grid .cdi-heart-card h3 { font-size: 21px; }

/* External modules. */
.cdi-external-module,
.cdi-module-host { width: 100%; }
.cdi-split-modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.cdi-split-module { min-width: 0; padding: clamp(24px, 3vw, 42px); border: 1px solid var(--cdi-component-border); background: #fff; }
.cdi-split-module h2 { margin: 8px 0 20px; font-size: clamp(28px, 3vw, 43px); }

/* Weather. */
.cdi-weather {
  padding: clamp(28px, 4vw, 52px);
  background:
    radial-gradient(circle at 95% 0%, rgba(211,197,73,.28), transparent 29%),
    radial-gradient(circle at 0% 100%, rgba(91,161,62,.18), transparent 31%),
    linear-gradient(135deg, #eef6fb, #f8f2e6);
  border: 1px solid #dce5e7;
}
.cdi-weather__header { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 24px; }
.cdi-weather__header h2 { margin: 7px 0 0; font-size: clamp(30px, 3.5vw, 52px); }
.cdi-weather__header p { max-width: 430px; margin: 0; color: #5f6870; text-align: right; }
.cdi-weather__alert { display: flex; gap: 14px; align-items: center; margin: 0 0 18px; padding: 13px 16px; background: #fff0ee; border-left: 5px solid #cd291e; }
.cdi-weather__days { display: grid; grid-template-columns: repeat(7, minmax(130px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 4px; }
.cdi-weather-day { min-width: 130px; padding: 18px 14px; background: rgba(255,255,255,.84); border: 1px solid rgba(100,110,116,.16); text-align: center; }
.cdi-weather-day time { display: block; font-weight: 850; text-transform: capitalize; }
.cdi-weather-day__icon { width: 58px; height: 58px; margin: 13px auto 8px; color: #496d81; }
.cdi-weather-day__icon svg { width: 100%; height: 100%; }
.cdi-weather-day > strong { display: block; min-height: 40px; font-size: 13px; }
.cdi-weather-day__temp { display: flex; justify-content: center; align-items: baseline; gap: 8px; margin: 10px 0 14px; }
.cdi-weather-day__temp span { font-size: 27px; font-weight: 900; }
.cdi-weather-day__temp small { color: #777; font-size: 15px; }
.cdi-weather-day dl { margin: 0; display: grid; gap: 5px; font-size: 11px; }
.cdi-weather-day dl div { display: flex; justify-content: space-between; gap: 7px; }
.cdi-weather-day dt { color: #6a6a70; }
.cdi-weather-day dd { margin: 0; font-weight: 800; }
.cdi-weather__source { margin-top: 12px; color: #6b7378; font-size: 11px; text-align: right; }

/* Participation, newsletter and social. */
.cdi-participation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.cdi-participation-card { padding: clamp(28px, 4vw, 52px); border: 1px solid var(--cdi-component-border); }
.cdi-participation-card--support { background: #f8f1e5; }
.cdi-participation-card--contribute { background: #eef5eb; }
.cdi-participation-card h2 { margin: 8px 0 14px; font-size: clamp(28px, 3vw, 44px); }
.cdi-participation-card p { color: #5f5e64; }
.cdi-social-follow,
.cdi-newsletter-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: clamp(24px, 3vw, 40px); border: 1px solid var(--cdi-component-border); background: #fff; }
.cdi-social-follow h2,
.cdi-newsletter-cta h2 { margin: 7px 0 5px; }
.cdi-social-follow__links { display: flex; flex-wrap: wrap; gap: 8px; }
.cdi-social-follow__links a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid var(--cdi-component-border); color: inherit; text-decoration: none; font-weight: 800; }
.cdi-social-follow__links a:hover { border-color: var(--cdi-primary); color: #8f3f6c; }
.cdi-social-follow__links span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--cdi-ink, #2d2d32); color: #fff; font-size: 11px; }
.cdi-newsletter-cta { background: var(--cdi-ink, #2d2d32); color: #fff; }
.cdi-newsletter-cta p { margin: 0; color: #dddbe0; }
.cdi-panneaupocket-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 20px; padding: 20px; border: 1px solid var(--cdi-component-border); color: inherit; text-decoration: none; background: #fff; }
.cdi-panneaupocket-card__phone { position: relative; display: grid; place-items: center; width: 54px; height: 82px; border: 3px solid #2d2d32; border-radius: 10px; }
.cdi-panneaupocket-card__phone i { position: absolute; top: 5px; width: 16px; height: 3px; background: #2d2d32; }
.cdi-panneaupocket-card__phone b { color: #8f3f6c; }
.cdi-panneaupocket-card small,
.cdi-panneaupocket-card strong,
.cdi-panneaupocket-card em { display: block; }
.cdi-panneaupocket-card small { color: #777; }
.cdi-panneaupocket-card strong { font-size: 20px; }
.cdi-panneaupocket-card em { color: #777; font-size: 12px; font-style: normal; }

/* Ads. */

@media (max-width: 1024px) {
  .cdi-news-card--featured > a,
  .cdi-heart-card--primary > a { grid-template-columns: 1fr; }
  .cdi-news-card--featured .cdi-news-card__media,
  .cdi-heart-card--primary .cdi-heart-card__media { height: 360px; min-height: 0; }
  .cdi-featured-slider__viewport,
  .cdi-featured-slider__slide { min-height: 0; }
  .cdi-heart-card--secondary > a { grid-template-columns: 1fr; }
  .cdi-heart-card--secondary .cdi-heart-card__media { height: 260px; min-height: 0; }
  .cdi-heart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdi-weather__days { grid-template-columns: repeat(7, minmax(145px, 1fr)); }
}
@media (max-width: 767px) {
  .cdi-village-intro { grid-template-columns: 4px 1fr; padding: 24px; }
  .cdi-village-intro .cdi-button { grid-column: 2; justify-self: start; }
  .cdi-news-card--featured .cdi-news-card__media,
  .cdi-heart-card--primary .cdi-heart-card__media { height: 260px; }
  .cdi-news-card--featured .cdi-news-card__body,
  .cdi-heart-card--primary .cdi-heart-card__body { padding: 24px; }
  .cdi-featured-slider__controls { right: 10px; bottom: 10px; }
  .cdi-news-grid,
  .cdi-grid-cols-2,
  .cdi-grid-cols-3,
  .cdi-heart-secondary,
  .cdi-heart-grid,
  .cdi-split-modules,
  .cdi-participation-grid { grid-template-columns: 1fr; }
  .cdi-heart-card--primary > a { min-height: 0; }
  .cdi-heart-card--secondary .cdi-heart-card__media,
  .cdi-heart-grid .cdi-heart-card__media,
  .cdi-news-grid .cdi-news-card__media { height: 230px; }
  .cdi-weather { padding: 24px 14px; }
  .cdi-weather__header,
  .cdi-social-follow,
  .cdi-newsletter-cta { align-items: flex-start; flex-direction: column; }
  .cdi-weather__header p { text-align: left; }
  .cdi-news-card--compact > a { grid-template-columns: 112px minmax(0, 1fr); min-height: 128px; }
  .cdi-news-card--compact .cdi-news-card__media { min-height: 128px; }
  .cdi-news-card--compact .cdi-news-card__body { padding: 13px 14px; }
  .cdi-news-card--compact h3 { font-size: 18px; }
  .cdi-news-card--compact p { display: none; }
  .cdi-news-card--compact .cdi-text-link { display: none; }
  .cdi-pagination { align-items: flex-start; flex-direction: column; }
  .cdi-pagination .page-numbers { justify-content: flex-start; }
  .cdi-pagination a.page-numbers,
  .cdi-pagination span.page-numbers { min-width: 38px; min-height: 38px; padding: 7px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .cdi-news-card img,
  .cdi-heart-card img,
  .cdi-button { transition: none !important; }
}

/* 0.7.0 — component-side safeguards for final Elementor widths and colours. */
.cdi-site .cdi-home-village .cdi-village-intro,
.cdi-site .cdi-home-news .cdi-news-feed,
.cdi-site .cdi-home-hearts .cdi-heart-feed,
.cdi-site .cdi-home-weather .cdi-weather,
.cdi-site .cdi-home-participation .cdi-participation-grid,
.cdi-site .cdi-home-social .cdi-social-follow,
.cdi-site .cdi-home-follow .cdi-newsletter-cta,
.cdi-site .cdi-home-follow .cdi-panneaupocket-card {
  width: 100%;
  max-width: none;
}
.cdi-site .cdi-section-heading .elementor-heading-title { color: var(--cdi-ink, #2d2d32) !important; }

/* 0.8.0 — final palette guard against Elementor global colours. */
.cdi-section-heading .elementor-heading-title,
.cdi-section-heading h2,
.cdi-starter-section .elementor-widget-heading h1,
.cdi-starter-section .elementor-widget-heading h2,
.cdi-starter-section .elementor-widget-heading h3 {
  color: var(--cdi-ink, #2d2d32) !important;
}
.cdi-section-heading .cdi-kicker { color: #8f3f6c !important; }

/* 0.9.2 — extensible business-module adapters and resilient homepage cards. */
.ci-module-host,
.cdi-module-host {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: var(--ci-module-min-height, 0);
  overflow: visible;
}
.ci-module-host--boxed {
  width: min(var(--ci-module-max-width, 1240px), 100%);
  margin-inline: auto;
}
.ci-module-host > *,
.cdi-module-host > * {
  max-width: 100%;
  min-width: 0;
}
.ci-module-host img,
.ci-module-host video,
.ci-module-host iframe,
.ci-module-host canvas,
.ci-module-host svg,
.cdi-module-host img,
.cdi-module-host video,
.cdi-module-host iframe,
.cdi-module-host canvas,
.cdi-module-host svg {
  max-width: 100%;
}
.ci-module-host table,
.cdi-module-host table { max-width: 100%; }
.ci-module-host .table-responsive,
.ci-module-host .cdi-table-scroll,
.cdi-module-host .table-responsive,
.cdi-module-host .cdi-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.ci-module-host .rd-app,
.cdi-module-host .rd-app { width: 100%; max-width: 100%; margin-inline: 0; }
.ci-module-host .rd-map,
.cdi-module-host .rd-map { max-width: 100%; }
.cdi-split-modules--1 { grid-template-columns: minmax(0, 1fr); }
.cdi-split-module__content { min-width: 0; max-width: 100%; }

.cdi-follow-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 32px);
  align-items: stretch;
}
.cdi-follow-cards--1 { grid-template-columns: minmax(0, 1fr); }
.cdi-follow-cards > * { min-width: 0; height: 100%; }
.cdi-panneaupocket-card {
  display: grid;
  grid-template-columns: minmax(100px, .34fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--cdi-component-border);
  color: inherit;
  text-decoration: none;
  background: #fff;
}
.cdi-panneaupocket-card__media {
  display: grid;
  place-items: center;
  min-height: 100%;
  background: linear-gradient(135deg, #f7edf3, #f3f0d7);
}
.cdi-panneaupocket-card__media img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.cdi-panneaupocket-card__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; padding: clamp(24px, 4vw, 42px); }
.cdi-panneaupocket-card__copy small { color: #8f3f6c; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cdi-panneaupocket-card__copy strong { font-size: clamp(24px, 3vw, 38px); line-height: 1.08; }
.cdi-panneaupocket-card__copy em { color: #8f3f6c; font-size: 14px; font-style: normal; font-weight: 800; }
.cdi-panneaupocket-card__text p { margin: 0; color: #68676e; }

.cdi-module-contact-cta,
.ci-module-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(20px, 4vw, 54px);
  width: 100%;
  margin-top: clamp(28px, 4vw, 52px);
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--cdi-component-border);
  background: #fff;
}
.cdi-module-contact-cta h2,
.ci-module-contact h2 { margin: 5px 0 6px; font-size: clamp(24px, 3vw, 38px); }
.cdi-module-contact-cta p,
.ci-module-contact p,
.cdi-module-contact-cta__text p { margin: 0; color: #68676e; }
.cdi-module-contact-cta .cdi-button,
.ci-module-contact .cdi-button { flex: 0 0 auto; }

@media (max-width: 767px) {
  .cdi-follow-cards { grid-template-columns: 1fr; }
  .cdi-panneaupocket-card { grid-template-columns: 1fr; }
  .cdi-panneaupocket-card__media { min-height: 180px; }
  .cdi-panneaupocket-card__media img { min-height: 180px; max-height: 260px; }
  .cdi-module-contact-cta,
  .ci-module-contact { align-items: flex-start; flex-direction: column; }
}

/* Close controls use an SVG cross so the glyph cannot drift with the active font. */
.ci-close-control {
  display: grid !important;
  place-items: center !important;
  min-width: 36px;
  min-height: 36px;
  padding: 0 !important;
  line-height: 1 !important;
  text-indent: 0 !important;
}
.ci-close-control__icon {
  display: block;
  width: 18px;
  height: 18px;
  margin: 0;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

/* Fluid module hosts: the outer page never becomes a horizontal scroller. */
.ci-module-host,
.cdi-module-host,
.ci-module-host *,
.cdi-module-host * { box-sizing: border-box; }
.ci-module-host iframe,
.cdi-module-host iframe { width: 100%; border: 0; }
.ci-module-host .leaflet-container,
.cdi-module-host .leaflet-container,
.ci-module-host [class*="map"],
.cdi-module-host [class*="map"] { max-width: 100%; }
.ci-module-host--home,
.cdi-module-host--home { overflow: hidden; }
.ci-module-placeholder { display: grid; gap: 5px; }

/* Legacy GAB-01 follow row: one available card must occupy the full row. */
.cdi-home-follow--single > .elementor-container > .elementor-column:not([hidden]) {
  width: 100% !important;
  max-width: 100% !important;
}
.cdi-home-follow .elementor-column[hidden] { display: none !important; }

/* Restaurants Dordogne can be used as a compact editorial source on the home
 * page: only its editorial selection is retained by the adapter. */
.ci-module-host--home.ci-module-host--restaurants .rd-hero,
.ci-module-host--home.ci-module-host--restaurants .rd-finder,
.ci-module-host--home.ci-module-host--restaurants .rd-results-section {
  display: none !important;
}
.ci-module-host--home.ci-module-host--restaurants .rd-app,
.ci-module-host--home.ci-module-host--restaurants .rd-featured {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}
.ci-module-host--home.ci-module-host--restaurants .rd-section-heading { display: none; }
.ci-module-host--home.ci-module-host--restaurants .rd-featured-grid {
  display: grid;
  grid-template-columns: repeat(var(--ci-home-columns, 2), minmax(0, 1fr));
  gap: clamp(16px, 2vw, 26px);
}
.ci-module-host--home[data-columns="1"] { --ci-home-columns: 1; }
.ci-module-host--home[data-columns="2"] { --ci-home-columns: 2; }
.ci-module-host--home[data-columns="3"] { --ci-home-columns: 3; }
.ci-module-host--home[data-columns="4"] { --ci-home-columns: 4; }
.ci-module-rotation-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 14px;
}
.ci-module-rotation-controls button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--cdi-component-border);
  border-radius: 0;
  background: #fff;
  color: var(--cdi-component-ink);
  cursor: pointer;
}
.ci-module-rotation-controls button:hover,
.ci-module-rotation-controls button:focus-visible { border-color: #8f3f6c; color: #8f3f6c; }
.ci-module-rotation-controls span { min-width: 48px; text-align: center; font-size: 13px; font-weight: 800; }
@media (max-width: 767px) {
  .ci-module-host--home.ci-module-host--restaurants .rd-featured-grid { grid-template-columns: 1fr; }
}

/* 0.11.1 — compact, BO-controlled homepage editorial highlights. */
.cdi-news-feed--home .cdi-featured-slider__viewport {
  height: var(--cdi-home-news-featured-height, 400px);
  max-height: var(--cdi-home-news-featured-height, 400px);
  min-height: 0;
}
.cdi-news-feed--home .cdi-featured-slider__slide,
.cdi-news-feed--home .cdi-news-card--featured,
.cdi-news-feed--home .cdi-news-card--featured > a {
  height: 100%;
  max-height: 100%;
  min-height: 0;
}
.cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__media {
  height: 100%;
  min-height: 0;
}
.cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__body,
.cdi-heart-feed--home .cdi-heart-card__body {
  min-width: 0;
  overflow: hidden;
}
.cdi-news-feed--home .cdi-news-card--featured h3 {
  display: -webkit-box;
  overflow: hidden;
  font-size: var(--cdi-home-news-title-size, 36px);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.cdi-news-feed--home .cdi-news-card--featured p,
.cdi-heart-feed--home .cdi-heart-card--primary p,
.cdi-heart-feed--home .cdi-heart-card--secondary p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.cdi-heart-feed--home .cdi-heart-primary,
.cdi-heart-feed--home .cdi-heart-card--primary,
.cdi-heart-feed--home .cdi-heart-card--primary > a {
  height: var(--cdi-home-heart-featured-height, 400px);
  max-height: var(--cdi-home-heart-featured-height, 400px);
  min-height: 0;
}
.cdi-heart-feed--home .cdi-heart-card--primary .cdi-heart-card__media {
  height: 100%;
  min-height: 0;
}
.cdi-heart-feed--home .cdi-heart-card--primary h3,
.cdi-heart-feed--home .cdi-heart-card--secondary h3 {
  display: -webkit-box;
  overflow: hidden;
  font-size: var(--cdi-home-heart-title-size, 32px);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

@media (max-width: 1024px) {
  .cdi-news-feed--home .cdi-featured-slider__viewport,
  .cdi-news-feed--home .cdi-featured-slider__slide,
  .cdi-news-feed--home .cdi-news-card--featured,
  .cdi-news-feed--home .cdi-news-card--featured > a,
  .cdi-heart-feed--home .cdi-heart-primary,
  .cdi-heart-feed--home .cdi-heart-card--primary,
  .cdi-heart-feed--home .cdi-heart-card--primary > a {
    height: auto;
    max-height: none;
  }
  .cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__media {
    height: 320px;
  }
  .cdi-heart-feed--home .cdi-heart-card--primary .cdi-heart-card__media {
    height: 320px;
  }
  .cdi-news-feed--home .cdi-news-card--featured h3 {
    font-size: clamp(24px, 4vw, var(--cdi-home-news-title-size, 36px));
  }
  .cdi-heart-feed--home .cdi-heart-card--primary h3,
  .cdi-heart-feed--home .cdi-heart-card--secondary h3 {
    font-size: clamp(24px, 4vw, var(--cdi-home-heart-title-size, 32px));
  }
}

@media (max-width: 767px) {
  .cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__media,
  .cdi-heart-feed--home .cdi-heart-card--primary .cdi-heart-card__media {
    height: 240px;
  }
  .cdi-news-feed--home .cdi-news-card--featured h3 {
    font-size: clamp(22px, 7vw, var(--cdi-home-news-title-size, 36px));
  }
  .cdi-heart-feed--home .cdi-heart-card--primary h3,
  .cdi-heart-feed--home .cdi-heart-card--secondary h3 {
    font-size: clamp(22px, 7vw, var(--cdi-home-heart-title-size, 32px));
  }
}


/* 0.11.2 — title-safe editorial cards and legacy heart-category routing. */
.cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__body,
.cdi-heart-feed--home .cdi-heart-card--primary .cdi-heart-card__body {
  justify-content: center;
  padding: clamp(22px, 3vw, 40px);
}
.cdi-news-feed--home .cdi-news-card--featured h3,
.cdi-heart-feed--home .cdi-heart-card--primary h3,
.cdi-heart-feed--home .cdi-heart-card--secondary h3 {
  margin: 6px 0 8px;
  padding: 0 0 .14em;
  line-height: 1.16;
  overflow-wrap: anywhere;
}
.cdi-news-feed--home .cdi-news-card--featured .cdi-card-meta {
  margin-bottom: 7px;
  line-height: 1.35;
}
.cdi-news-feed--home .cdi-news-card--featured p,
.cdi-heart-feed--home .cdi-heart-card--primary p,
.cdi-heart-feed--home .cdi-heart-card--secondary p {
  margin: 0 0 10px;
  line-height: 1.42;
  -webkit-line-clamp: 2;
}
.cdi-news-feed--home .cdi-news-card--featured .cdi-text-link,
.cdi-heart-feed--home .cdi-heart-card--primary .cdi-text-link,
.cdi-heart-feed--home .cdi-heart-card--secondary .cdi-text-link {
  flex: 0 0 auto;
  line-height: 1.3;
}

@media (max-width: 1024px) {
  .cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__body,
  .cdi-heart-feed--home .cdi-heart-card--primary .cdi-heart-card__body {
    padding: 28px;
  }
}

@media (max-width: 767px) {
  .cdi-news-feed--home .cdi-news-card--featured .cdi-news-card__body,
  .cdi-heart-feed--home .cdi-heart-card--primary .cdi-heart-card__body {
    padding: 22px;
  }
  .cdi-news-feed--home .cdi-news-card--featured h3,
  .cdi-heart-feed--home .cdi-heart-card--primary h3,
  .cdi-heart-feed--home .cdi-heart-card--secondary h3 {
    line-height: 1.18;
  }
}

/* 0.11.3 — compact, readable directory for public-service organisations.
 * The external module keeps its data and interactions; the Core only normalises
 * the repeated cards discovered by the adapter's namespaced JavaScript classes. */
.ci-module-host--organismes,
.cdi-module-host--organismes {
  --ci-organism-accent: #963f70;
  --ci-organism-ink: #29282e;
  --ci-organism-muted: #716c73;
  --ci-organism-border: #e4dde1;
  --ci-organism-surface: #fff;
  overflow: visible;
}

.ci-module-host--organismes .ci-organism-grid,
.cdi-module-host--organismes .ci-organism-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: clamp(16px, 1.6vw, 24px) !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.ci-module-host--organismes .ci-organism-card,
.cdi-module-host--organismes .ci-organism-card {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 11px !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 190px !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  padding: clamp(20px, 2vw, 28px) !important;
  overflow: hidden !important;
  border: 1px solid var(--ci-organism-border) !important;
  border-radius: 14px !important;
  background: var(--ci-organism-surface) !important;
  color: var(--ci-organism-ink) !important;
  box-shadow: 0 8px 24px rgba(31, 26, 30, .06) !important;
  text-align: left !important;
  text-decoration: none !important;
  transform: none !important;
  perspective: none !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

.ci-module-host--organismes .ci-organism-card:hover,
.cdi-module-host--organismes .ci-organism-card:hover,
.ci-module-host--organismes .ci-organism-card:focus-within,
.cdi-module-host--organismes .ci-organism-card:focus-within {
  border-color: rgba(150, 63, 112, .48) !important;
  box-shadow: 0 13px 32px rgba(31, 26, 30, .11) !important;
  transform: translateY(-2px) !important;
}

/* Neutralise fixed-height and flip-card rules from the source plugin. */
.ci-module-host--organismes .ci-organism-card > *,
.cdi-module-host--organismes .ci-organism-card > *,
.ci-module-host--organismes .ci-organism-card [class*="inner"],
.cdi-module-host--organismes .ci-organism-card [class*="inner"],
.ci-module-host--organismes .ci-organism-card [class*="content"],
.cdi-module-host--organismes .ci-organism-card [class*="content"],
.ci-module-host--organismes .ci-organism-card [class*="body"],
.cdi-module-host--organismes .ci-organism-card [class*="body"] {
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
}

.ci-module-host--organismes .ci-organism-card [class*="inner"],
.cdi-module-host--organismes .ci-organism-card [class*="inner"],
.ci-module-host--organismes .ci-organism-card [class*="content"],
.cdi-module-host--organismes .ci-organism-card [class*="content"],
.ci-module-host--organismes .ci-organism-card [class*="body"],
.cdi-module-host--organismes .ci-organism-card [class*="body"] {
  position: static !important;
  inset: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 0 !important;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.ci-module-host--organismes .ci-organism-card__icon,
.cdi-module-host--organismes .ci-organism-card__icon {
  position: static !important;
  inset: auto !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 46px !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  margin: 0 0 3px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #f5df67 !important;
  color: #26252a !important;
  font-size: 22px !important;
  line-height: 1 !important;
  transform: none !important;
}

.ci-module-host--organismes .ci-organism-card :is(h2, h3, h4, h5),
.cdi-module-host--organismes .ci-organism-card :is(h2, h3, h4, h5) {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 0 .08em !important;
  color: var(--ci-organism-ink) !important;
  font-size: clamp(17px, 1.25vw, 20px) !important;
  font-weight: 800 !important;
  line-height: 1.24 !important;
  letter-spacing: -.015em !important;
  overflow-wrap: anywhere !important;
  text-transform: none !important;
}

.ci-module-host--organismes .ci-organism-card :is(p, small),
.cdi-module-host--organismes .ci-organism-card :is(p, small),
.ci-module-host--organismes .ci-organism-card [class*="category"],
.cdi-module-host--organismes .ci-organism-card [class*="category"],
.ci-module-host--organismes .ci-organism-card [class*="label"],
.cdi-module-host--organismes .ci-organism-card [class*="label"],
.ci-module-host--organismes .ci-organism-card [class*="meta"],
.cdi-module-host--organismes .ci-organism-card [class*="meta"] {
  margin: 0 !important;
  color: var(--ci-organism-muted) !important;
  font-size: 14px !important;
  line-height: 1.42 !important;
  overflow-wrap: anywhere !important;
}

.ci-module-host--organismes .ci-organism-card__action:not(.ci-organism-card),
.cdi-module-host--organismes .ci-organism-card__action:not(.ci-organism-card) {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: auto 0 0 !important;
  padding: 3px 0 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ci-organism-accent) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transform: none !important;
}

.ci-module-host--organismes .ci-organism-card__action:not(.ci-organism-card):hover,
.cdi-module-host--organismes .ci-organism-card__action:not(.ci-organism-card):hover,
.ci-module-host--organismes .ci-organism-card__action:not(.ci-organism-card):focus-visible,
.cdi-module-host--organismes .ci-organism-card__action:not(.ci-organism-card):focus-visible {
  color: #6f2851 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

@media (max-width: 1180px) {
  .ci-module-host--organismes .ci-organism-grid,
  .cdi-module-host--organismes .ci-organism-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 880px) {
  .ci-module-host--organismes .ci-organism-grid,
  .cdi-module-host--organismes .ci-organism-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 580px) {
  .ci-module-host--organismes .ci-organism-grid,
  .cdi-module-host--organismes .ci-organism-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .ci-module-host--organismes .ci-organism-card,
  .cdi-module-host--organismes .ci-organism-card {
    min-height: 0 !important;
    padding: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ci-module-host--organismes .ci-organism-card,
  .cdi-module-host--organismes .ci-organism-card {
    transition: none !important;
  }
}

/* 0.11.4 — compact heart listings outside the homepage. */
.cdi-heart-feed--listing .cdi-heart-listing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 2vw, 26px);
}
.cdi-heart-feed--listing .cdi-heart-card--listing > a {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.cdi-heart-feed--listing .cdi-heart-card--listing .cdi-heart-card__media {
  height: clamp(220px, 22vw, 310px);
  min-height: 0;
}
.cdi-heart-feed--listing .cdi-heart-card--listing .cdi-heart-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(20px, 2.3vw, 30px);
}
.cdi-heart-feed--listing .cdi-heart-card--listing h3 {
  margin: 7px 0 12px;
  padding-bottom: .08em;
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.cdi-heart-feed--listing .cdi-heart-card--listing p {
  display: -webkit-box;
  margin: 0 0 18px;
  overflow: hidden;
  line-height: 1.48;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.cdi-heart-feed--listing .cdi-heart-card--listing .cdi-text-link {
  margin-top: auto;
}

@media (max-width: 1024px) {
  .cdi-heart-feed--listing .cdi-heart-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cdi-heart-feed--listing .cdi-heart-card--listing .cdi-heart-card__media {
    height: 260px;
  }
}

@media (max-width: 767px) {
  .cdi-heart-feed--listing .cdi-heart-listing-grid {
    grid-template-columns: 1fr;
  }
  .cdi-heart-feed--listing .cdi-heart-card--listing .cdi-heart-card__media {
    height: 240px;
  }
}


/* 0.11.5 — les modules d’accueil doivent épouser leur contenu réel sur mobile.
 * Les classes auxiliaires sont ajoutées par components.js aux widgets et aux
 * conteneurs Elementor concernés, sans modifier les données Elementor. */
@media (max-width: 767px) {
  .ci-module-host--home,
  .cdi-module-host--home,
  .ci-module-host--home > *,
  .cdi-module-host--home > *,
  .ci-home-module-widget,
  .ci-home-module-widget > .elementor-widget-container,
  .ci-home-module-container {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  .ci-home-module-container {
    justify-content: flex-start !important;
    align-content: flex-start !important;
  }
  .ci-module-host--home [hidden],
  .cdi-module-host--home [hidden] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
  }
}


/* 1.0.0 — compact, durable full-page PanneauPocket renderer. */
.cdi-panneaupocket-page {
  --cdi-pp-blue: #138fda;
  --cdi-pp-pink: #cf2b66;
  width: min(100%, 1180px);
  margin-inline: auto;
  padding: clamp(12px, 2vw, 26px) clamp(12px, 2.2vw, 28px) clamp(30px, 4vw, 52px);
  text-align: center;
}
.cdi-panneaupocket-page__header { max-width: 980px; margin: 0 auto clamp(18px, 2.5vw, 30px); }
.cdi-panneaupocket-page__header .cdi-kicker { color: var(--cdi-pp-pink); font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.cdi-panneaupocket-page__header h1 { margin: 8px 0 10px; font-size: clamp(32px, 4.4vw, 58px); line-height: 1.04; }
.cdi-panneaupocket-page__header p { margin: 0; color: #68676e; font-size: clamp(16px, 1.7vw, 21px); }
.cdi-panneaupocket-page__device-wrap { display: grid; justify-items: center; gap: 16px; }
.cdi-panneaupocket-page__device {
  position: relative;
  width: min(100%, 470px);
  padding: 10px 8px 8px;
  border: 10px solid #151b24;
  border-radius: 38px;
  background: #151b24;
  box-shadow: 0 16px 44px rgba(21, 27, 36, .18);
}
.cdi-panneaupocket-page__notch {
  position: absolute;
  z-index: 2;
  top: -10px;
  left: 50%;
  width: 92px;
  height: 20px;
  border-radius: 0 0 12px 12px;
  background: #151b24;
  transform: translateX(-50%);
}
.cdi-panneaupocket-page__screen {
  position: relative;
  min-height: min(900px, 72vh);
  overflow: hidden;
  border: 4px solid var(--cdi-pp-blue);
  border-radius: 24px;
  background: #fff;
}
.cdi-panneaupocket-page__screen iframe { display: block; width: 100%; height: min(900px, 72vh); border: 0; background: #fff; }
.cdi-panneaupocket-page__fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: min(680px, 64vh);
  padding: clamp(26px, 5vw, 52px);
}
.cdi-panneaupocket-page__app-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  margin-bottom: 18px;
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(145deg, var(--cdi-pp-pink), var(--cdi-pp-blue));
  box-shadow: 0 12px 28px rgba(19, 143, 218, .22);
}
.cdi-panneaupocket-page__app-icon i { position: absolute; top: 15px; width: 28px; height: 4px; border-radius: 99px; background: rgba(255,255,255,.85); }
.cdi-panneaupocket-page__app-icon b { font-size: 25px; letter-spacing: -.04em; }
.cdi-panneaupocket-page__fallback small { color: var(--cdi-pp-pink); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cdi-panneaupocket-page__fallback strong { margin-top: 8px; font-size: clamp(24px, 4vw, 36px); }
.cdi-panneaupocket-page__fallback p { max-width: 360px; margin: 14px 0 22px; color: #68676e; font-size: 16px; }
.cdi-panneaupocket-page__fallback a { color: var(--cdi-pp-blue); font-weight: 800; text-decoration: none; }
.cdi-panneaupocket-page__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; }
.cdi-panneaupocket-page__refresh,
.cdi-panneaupocket-page__actions .cdi-button {
  min-height: 46px;
  padding: 11px 20px;
  border: 0;
  border-radius: 999px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.cdi-panneaupocket-page__refresh { color: #fff; background: var(--cdi-pp-pink); }
.cdi-panneaupocket-page__refresh:disabled { cursor: progress; opacity: .72; }
.cdi-panneaupocket-page__actions .cdi-button { color: #fff; background: #1478c9; text-decoration: none; }
.cdi-panneaupocket-page__status { flex-basis: 100%; min-height: 1.4em; color: #68676e; font-size: 13px; }
.cdi-panneaupocket-page__refresh:focus-visible,
.cdi-panneaupocket-page__actions .cdi-button:focus-visible,
.cdi-panneaupocket-page__fallback a:focus-visible { outline: 3px solid #111; outline-offset: 3px; }

@media (max-width: 767px) {
  .cdi-panneaupocket-page { padding-inline: 6px; }
  .cdi-panneaupocket-page__header { padding-inline: 8px; }
  .cdi-panneaupocket-page__device { width: min(100%, 410px); padding: 8px 6px 6px; border-width: 8px; border-radius: 30px; }
  .cdi-panneaupocket-page__notch { top: -8px; width: 78px; height: 17px; border-radius: 0 0 10px 10px; }
  .cdi-panneaupocket-page__screen { min-height: 66vh; border-width: 3px; border-radius: 20px; }
  .cdi-panneaupocket-page__screen iframe { height: 66vh; }
  .cdi-panneaupocket-page__actions { width: 100%; padding-inline: 8px; }
  .cdi-panneaupocket-page__refresh,
  .cdi-panneaupocket-page__actions .cdi-button { flex: 1 1 180px; }
}


/* 1.0.1 — compact Elementor templates for PanneauPocket and follow cards. */
.ci-panneaupocket-template--compact .cdi-panneaupocket-page {
  width: 100%;
  padding: 4px 0 24px;
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__header {
  max-width: 920px;
  margin-bottom: 16px;
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__header h1 {
  margin-top: 6px;
  font-size: clamp(30px, 4vw, 52px);
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__device-wrap {
  gap: 10px;
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__device {
  box-sizing: border-box;
  width: min(100%, 420px);
  padding: 6px 4px 4px;
  border-width: 7px;
  border-radius: 30px;
  box-shadow: 0 12px 32px rgba(21, 27, 36, .16);
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__notch {
  top: -7px;
  width: 74px;
  height: 15px;
  border-radius: 0 0 9px 9px;
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__screen {
  min-height: min(860px, 70vh);
  border-width: 3px;
  border-radius: 19px;
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__screen iframe {
  height: min(860px, 70vh);
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__actions {
  gap: 8px;
}
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__refresh,
.ci-panneaupocket-template--compact .cdi-panneaupocket-page__actions .cdi-button {
  min-height: 42px;
  padding: 9px 17px;
}

.ci-follow-cards-template--compact .cdi-follow-cards {
  gap: clamp(14px, 2vw, 20px);
}
.ci-follow-cards-template--compact .cdi-panneaupocket-card__media img {
  min-height: 190px;
}
.ci-follow-cards-template--compact .cdi-panneaupocket-card__copy {
  gap: 8px;
  padding: clamp(20px, 2.6vw, 30px);
}
.ci-follow-cards-template--compact .cdi-panneaupocket-card__copy strong {
  font-size: clamp(22px, 2.4vw, 32px);
}

@media (max-width: 767px) {
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page {
    padding-inline: 0;
  }
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page__device {
    width: min(100%, 390px);
    padding: 5px 3px 3px;
    border-width: 6px;
    border-radius: 26px;
  }
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page__notch {
    top: -6px;
    width: 68px;
    height: 14px;
  }
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page__screen {
    min-height: 64vh;
    border-radius: 17px;
  }
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page__screen iframe {
    height: 64vh;
  }
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page__refresh,
  .ci-panneaupocket-template--compact .cdi-panneaupocket-page__actions .cdi-button {
    min-height: 40px;
    padding: 8px 14px;
  }
  .ci-follow-cards-template--compact .cdi-panneaupocket-card__media img {
    min-height: 165px;
  }
}

/* 1.0.2 — homepage module modals must dominate sticky CTA bands and
   Elementor stacking contexts shared by Sites culturels, Itinéraires and
   every future compact module. Classes are applied only while a real,
   visible aria-modal dialog is open inside a home module. */
body.ci-global-module-modal-open {
  overflow: hidden !important;
}
body.ci-global-module-modal-open .ci-module-modal-stack-owner {
  position: relative !important;
  z-index: 2147483000 !important;
  overflow: visible !important;
  isolation: auto !important;
}
body.ci-global-module-modal-open .ci-detected-module-modal {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  max-height: none !important;
  margin: 0 !important;
  z-index: 2147483646 !important;
}
body.ci-global-module-modal-open .ci-detected-module-modal [role="dialog"][aria-modal="true"] {
  position: relative;
  z-index: 2147483647 !important;
}


/* 1.2.1 — menu parents that only open their submenu. */
.cdi-menu-item--parent-only > a[data-cdi-menu-parent-only="1"] {
  cursor: pointer;
  user-select: none;
}

.cdi-menu > .cdi-menu-item--parent-only > a[data-cdi-menu-parent-only="1"]::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-left: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .16s ease;
}

.cdi-menu > .cdi-menu-item--parent-only.cdi-menu-parent-open > a[data-cdi-menu-parent-only="1"]::after,
.cdi-menu > .cdi-menu-item--parent-only:focus-within > a[data-cdi-menu-parent-only="1"]::after {
  transform: translateY(2px) rotate(225deg);
}

.cdi-menu .cdi-menu-item--parent-only.cdi-menu-parent-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}

.cdi-menu > .cdi-menu-item--mega.cdi-menu-item--parent-only.cdi-menu-parent-open > .sub-menu {
  transform: translate(-50%, 0);
}

.cdi-mobile-menu .cdi-menu-item--parent-only > a[data-cdi-menu-parent-only="1"]::after {
  display: none;
}
