:root {
  --frelon-bg: #f3f4f6;
  --frelon-surface: #ffffff;
  --frelon-surface-soft: #fbfbfc;
  --frelon-text: #2d3138;
  --frelon-muted: #69717d;
  --frelon-border: #e6e8ec;
  --frelon-primary: #efac34;
  --frelon-primary-deep: #de9720;
  --frelon-accent: #cf4730;
  --frelon-shadow: 0 12px 32px rgba(31, 41, 55, 0.08);
  --frelon-radius: 22px;
  --frelon-radius-sm: 16px;
}

body.page-template-template-carte-des-nids,
body.page-template-template-carte-des-nids-php {
  background: var(--frelon-bg);
}

.frelon-carte-page,
.frelon-carte-page * {
  box-sizing: border-box;
}

.frelon-carte-page {
  color: var(--frelon-text);
  overflow-x: clip;
}

.frelon-shell {
  width: min(1200px, calc(100% - 32px));
  margin: 0 auto;
}

.frelon-kicker,
.frelon-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--frelon-accent);
}

.frelon-hero {
  padding: 30px 0 22px;
}

.frelon-hero .frelon-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 28px;
  align-items: stretch;
}

.frelon-hero__content,
.frelon-hero__media-card,
.frelon-map-card,
.frelon-side-card,
.frelon-info-band__card,
.frelon-stat-card {
  background: var(--frelon-surface);
  border: 1px solid var(--frelon-border);
  box-shadow: var(--frelon-shadow);
  border-radius: var(--frelon-radius);
}

.frelon-hero__content {
  padding: clamp(22px, 3vw, 40px);
  min-width: 0;
}

.frelon-hero h1 {
  margin: 12px 0 14px;
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 1.05;
  color: #38404a;
  overflow-wrap: anywhere;
}

.frelon-hero__lead {
  max-width: 60ch;
  margin: 0;
  font-size: clamp(1rem, 1.4vw, 1.05rem);
  line-height: 1.7;
  color: var(--frelon-muted);
}

.frelon-hero__actions {
  display: flex;
  gap: 14px;
  margin-top: 24px;
  flex-wrap: wrap;
  min-width: 0;
}

.frelon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.frelon-btn:hover {
  transform: translateY(-1px);
}

.frelon-btn--primary {
  background: linear-gradient(135deg, var(--frelon-primary), var(--frelon-primary-deep));
  color: #fff;
  box-shadow: 0 10px 24px rgba(239, 172, 52, 0.3);
}

.frelon-btn--ghost {
  background: #fff8ea;
  color: #8a5a00;
  border: 1px solid rgba(239, 172, 52, 0.45);
}

.frelon-btn--full {
  width: 100%;
}

.frelon-hero__media,
.frelon-hero__media-card {
  min-width: 0;
}

.frelon-hero__media-card {
  overflow: hidden;
  position: relative;
  min-height: 100%;
}

.frelon-hero__media-card img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  display: block;
}

.frelon-hero__badge {
  position: absolute;
  left: 20px;
  bottom: 20px;
  max-width: calc(100% - 40px);
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #915700;
  font-size: 0.85rem;
  font-weight: 700;
}

.frelon-stats {
  padding: 0 0 26px;
}

.frelon-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.frelon-stat-card {
  padding: 22px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.frelon-stat-card__icon {
  width: 60px;
  height: 60px;
  border-radius: 18px;
  background: #fff6e0;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.frelon-stat-card__icon img {
  width: 28px;
  height: 28px;
}

.frelon-stat-card__label {
  color: var(--frelon-muted);
  font-size: 0.95rem;
}

.frelon-stat-card__value {
  font-size: 2rem;
  line-height: 1;
  margin-top: 6px;
  font-weight: 800;
}

.frelon-stat-card--alert .frelon-stat-card__icon {
  background: #fff0ee;
}

.frelon-stat-card--alert .frelon-stat-card__value,
.frelon-stat-card--alert .frelon-kicker {
  color: var(--frelon-accent);
}

.frelon-layout {
  padding: 12px 0 34px;
}

.frelon-layout__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 330px);
  gap: 24px;
  align-items: start;
}

.frelon-map-card {
  padding: 22px;
  min-width: 0;
  overflow: hidden;
}

.frelon-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}

.frelon-section-heading h2,
.frelon-info-band__content h2,
.frelon-side-card h3 {
  margin: 8px 0 0;
  color: #39424d;
  overflow-wrap: anywhere;
}

.frelon-section-heading p,
.frelon-side-card p,
.frelon-info-band__content p,
.frelon-check-list {
  color: var(--frelon-muted);
  line-height: 1.7;
}

.frelon-map-shortcode-wrap {
  background: linear-gradient(180deg, #fafafa, #f4f5f7);
  border: 1px solid var(--frelon-border);
  border-radius: 20px;
  padding: 16px;
  overflow: hidden;
  min-width: 0;
}

.frelon-map-shortcode-wrap > *:first-child {
  margin-top: 0 !important;
}

.frelon-map-shortcode-wrap > *,
.frelon-map-shortcode-wrap .elementor,
.frelon-map-shortcode-wrap .elementor-widget-container,
.frelon-map-shortcode-wrap .wpsl-wrap,
.frelon-map-shortcode-wrap .wpgmza_map,
.frelon-map-shortcode-wrap .wpgmza_map *,
.frelon-map-shortcode-wrap .leaflet-container,
.frelon-map-shortcode-wrap [class*="map"],
.frelon-map-shortcode-wrap [id*="map"] {
  max-width: 100%;
}

.frelon-map-shortcode-wrap .leaflet-container,
.frelon-map-shortcode-wrap iframe,
.frelon-map-shortcode-wrap .frelon-map,
.frelon-map-shortcode-wrap .map-container,
.frelon-map-shortcode-wrap [id*="map"] {
  border-radius: 18px;
  overflow: hidden;
}

.frelon-map-shortcode-wrap iframe {
  width: 100%;
}

.frelon-map-shortcode-wrap button,
.frelon-map-shortcode-wrap .button,
.frelon-map-shortcode-wrap input[type="submit"],
.frelon-map-shortcode-wrap input[type="button"] {
  border-radius: 12px;
  border: 1px solid rgba(239, 172, 52, 0.35);
  background: #fff8ea;
  color: #8a5a00;
}

.frelon-map-shortcode-wrap select,
.frelon-map-shortcode-wrap input,
.frelon-map-shortcode-wrap textarea {
  max-width: 100%;
  border-radius: 12px;
  border: 1px solid var(--frelon-border);
  min-height: 44px;
  padding: 0 12px;
  background: #fff;
}

.frelon-sidebar {
  display: grid;
  gap: 18px;
  position: sticky;
  top: 24px;
  min-width: 0;
}

.frelon-side-card {
  padding: 22px;
  min-width: 0;
  overflow: hidden;
}

.frelon-side-card--cta {
  background: linear-gradient(180deg, #fff, #fffaf1);
}

.frelon-check-list {
  margin: 16px 0 0;
  padding-left: 18px;
}

.frelon-check-list li + li {
  margin-top: 10px;
}

.frelon-side-card--media {
  padding: 0;
  overflow: hidden;
}

.frelon-side-card--media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}

.frelon-side-card__body {
  padding: 20px 22px 22px;
}

.frelon-info-band {
  padding: 0 0 56px;
}

.frelon-info-band__card {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  overflow: hidden;
}

.frelon-info-band__media {
  min-width: 0;
}

.frelon-info-band__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.frelon-info-band__content {
  padding: 34px;
  min-width: 0;
}

.frelon-embed,
.frelon-embed .elementor,
.frelon-embed .elementor-section,
.frelon-embed .elementor-container,
.frelon-embed .elementor-column,
.frelon-embed .elementor-widget-wrap,
.frelon-embed .elementor-widget-container {
  max-width: 100%;
  min-width: 0;
}

.frelon-embed .elementor-section-boxed > .elementor-container,
.frelon-embed .elementor-container {
  max-width: 100% !important;
}

.frelon-embed img,
.frelon-embed iframe,
.frelon-embed svg,
.frelon-embed video {
  max-width: 100%;
  height: auto;
}

.frelon-embed .elementor-button,
.frelon-embed .elementor-button-wrapper,
.frelon-embed a.elementor-button-link {
  max-width: 100%;
}

.frelon-embed--hero .elementor-button,
.frelon-embed--cta .elementor-button {
  white-space: normal;
}

.frelon-embed--cta > * + * {
  margin-top: 10px;
}

.frelon-map-shortcode-wrap table,
.frelon-map-shortcode-wrap .table {
  width: 100%;
  min-width: 0;
  border-collapse: collapse;
}

.frelon-map-shortcode-wrap table th,
.frelon-map-shortcode-wrap table td {
  word-break: break-word;
}

@media (max-width: 1180px) {
  .frelon-layout__grid {
    grid-template-columns: minmax(0, 1fr) 300px;
  }
}

@media (max-width: 1024px) {
  .frelon-hero .frelon-shell,
  .frelon-layout__grid,
  .frelon-info-band__card {
    grid-template-columns: 1fr;
  }

  .frelon-sidebar {
    position: static;
  }

  .frelon-hero__media-card img {
    min-height: 320px;
  }
}

@media (max-width: 767px) {
  .frelon-shell {
    width: min(100% - 20px, 100%);
  }

  .frelon-hero,
  .frelon-layout,
  .frelon-info-band {
    padding-left: 0;
    padding-right: 0;
  }

  .frelon-hero {
    padding-top: 18px;
  }

  .frelon-hero__content,
  .frelon-map-card,
  .frelon-side-card,
  .frelon-info-band__content,
  .frelon-stat-card {
    padding: 18px;
  }

  .frelon-stats__grid {
    grid-template-columns: 1fr;
  }

  .frelon-section-heading {
    flex-direction: column;
    align-items: start;
  }

  .frelon-hero__media-card img {
    min-height: 240px;
  }

  .frelon-map-shortcode-wrap {
    padding: 10px;
    border-radius: 16px;
  }

  .frelon-map-shortcode-wrap .leaflet-container,
  .frelon-map-shortcode-wrap iframe,
  .frelon-map-shortcode-wrap [id*="map"] {
    border-radius: 12px;
  }

  .frelon-map-shortcode-wrap .elementor-section-content-middle > .elementor-container,
  .frelon-map-shortcode-wrap .elementor-section > .elementor-container,
  .frelon-map-shortcode-wrap .elementor-row,
  .frelon-map-shortcode-wrap .wpsl-gmap,
  .frelon-map-shortcode-wrap .wpsl-wrap,
  .frelon-map-shortcode-wrap [class*="cols"],
  .frelon-map-shortcode-wrap [class*="columns"] {
    display: block !important;
  }

  .frelon-map-shortcode-wrap .elementor-column,
  .frelon-map-shortcode-wrap [class*="col-"],
  .frelon-map-shortcode-wrap .wpsl-gmap,
  .frelon-map-shortcode-wrap .wpsl-sidebar {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .frelon-map-shortcode-wrap .wpsl-gmap {
    margin-bottom: 14px;
  }

  .frelon-map-shortcode-wrap .leaflet-control-container .leaflet-top,
  .frelon-map-shortcode-wrap .leaflet-control-container .leaflet-bottom {
    z-index: 400;
  }

  .frelon-map-shortcode-wrap table,
  .frelon-map-shortcode-wrap .table,
  .frelon-map-shortcode-wrap .dataTables_wrapper {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .frelon-side-card--media img,
  .frelon-info-band__media img {
    height: 200px;
  }
}

@media (max-width: 560px) {
  .frelon-hero h1 {
    font-size: 1.8rem;
    line-height: 1.1;
  }

  .frelon-hero__lead {
    font-size: 0.96rem;
    line-height: 1.6;
  }

  .frelon-kicker,
  .frelon-hero__eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.07em;
  }

  .frelon-hero__actions {
    margin-top: 18px;
    gap: 10px;
  }

  .frelon-hero__badge {
    left: 12px;
    right: 12px;
    bottom: 12px;
    max-width: none;
    text-align: center;
    font-size: 0.78rem;
  }

  .frelon-map-card {
    padding: 12px;
  }

  .frelon-side-card,
  .frelon-info-band__content,
  .frelon-stat-card,
  .frelon-hero__content {
    padding: 16px;
  }

  .frelon-check-list {
    padding-left: 16px;
  }

  .frelon-info-band__content h2,
  .frelon-side-card h3 {
    font-size: 1.45rem;
    line-height: 1.2;
  }

  .frelon-stat-card {
    gap: 12px;
  }

  .frelon-stat-card__icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
  }

  .frelon-stat-card__value {
    font-size: 1.7rem;
  }

  .frelon-map-shortcode-wrap select,
  .frelon-map-shortcode-wrap input,
  .frelon-map-shortcode-wrap textarea,
  .frelon-map-shortcode-wrap button,
  .frelon-map-shortcode-wrap input[type="submit"],
  .frelon-map-shortcode-wrap input[type="button"] {
    width: 100%;
  }

  .frelon-map-shortcode-wrap .leaflet-container,
  .frelon-map-shortcode-wrap iframe,
  .frelon-map-shortcode-wrap [id*="map"] {
    min-height: 300px !important;
  }
}

@media (max-width: 420px) {
  .frelon-shell {
    width: min(100% - 14px, 100%);
  }

  .frelon-hero {
    padding-top: 12px;
  }

  .frelon-map-shortcode-wrap {
    padding: 8px;
  }

  .frelon-side-card--media img,
  .frelon-info-band__media img,
  .frelon-hero__media-card img {
    min-height: 180px;
    height: 180px;
  }
}
