body.dih-body {
  margin:0;
  background:#f5f7f9;
  color:#132c49;
  overflow-x:clip;
}

body.dih-body *,
body.dih-body *::before,
body.dih-body *::after {
  box-sizing:border-box;
}

body.dih-body main.di-shell.dih-shell {
  display:block;
  width:calc(100% - 28px)!important;
  max-width:760px!important;
  min-width:0;
  margin:16px auto 72px!important;
  padding:0!important;
}

.dih-shell a {
  color:inherit;
  text-decoration:none;
}

.dih-shell :focus-visible {
  outline:3px solid #c69a60;
  outline-offset:3px;
}

/* CARTE PARTAGEE : POSITION ET FONCTIONS PRESERVEES */

.dih-map-shell {
  overflow:hidden;
  padding:7px;
  margin:0 0 26px;
  border:1px solid #e2e7ed;
  border-radius:22px;
  background:#fff;
  box-shadow:0 8px 25px rgba(15,39,67,.055);
}

.dih-map {
  width:100%;
  height:340px;
  border-radius:16px;
  overflow:hidden;
  z-index:0;
  background:#eaf0ef;
}

.dih-map-toolbar {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:9px 2px 0;
}

.dih-map-toolbar button {
  flex:1 1 145px;
  min-height:41px;
  padding:9px 14px;
  border:1px solid #dbe4e9;
  border-radius:12px;
  background:#f2f5f6;
  color:#203e54;
  font:inherit;
  font-size:13px;
  font-weight:650;
  cursor:pointer;
  transition:background .15s ease;
}

.dih-map-toolbar button:hover {
  background:#e9eff1;
}

.dih-map-status {
  margin:6px;
  color:#617385;
  font-size:12px;
}

.dih-map-status:empty {display:none}

.dih-map .leaflet-popup-content a {
  color:#153c58;
  font-weight:700;
  text-decoration:underline;
}

/* EN-TETE DE PAGE */

.dih-page-heading {
  margin:0 0 30px;
}

.dih-eyebrow,
.dih-section-kicker {
  display:block;
  margin-bottom:7px;
  color:#b28a56;
  font-size:10px;
  font-weight:800;
  letter-spacing:.15em;
}

.dih-page-heading h1 {
  margin:0 0 11px;
  color:#142d4b;
  font-size:clamp(30px,5vw,39px);
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.035em;
}

.dih-page-heading p {
  max-width:620px;
  margin:0;
  color:#657583;
  font-size:14px;
  line-height:1.6;
}

/* SECTIONS */

.dih-section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  margin-bottom:15px;
}

.dih-section-title {
  margin:0;
  color:#142d4b;
  font-size:clamp(20px,3.5vw,24px);
  font-weight:800;
  line-height:1.25;
  letter-spacing:-.022em;
}

.dih-events {
  margin:0 0 32px;
}

.dih-upcoming-list {
  display:grid;
  gap:11px;
}

.dih-upcoming-card {
  margin:0;
  overflow:hidden;
  border:1px solid #e0e7eb;
  border-radius:19px;
  background:#fff;
  box-shadow:0 5px 18px rgba(20,43,75,.045);
  transition:box-shadow .16s ease,transform .16s ease;
}

.dih-upcoming-card:hover {
  transform:translateY(-2px);
  box-shadow:0 11px 24px rgba(20,43,75,.09);
}

.dih-upcoming-link {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:19px 21px;
  gap:8px;
}

.dih-upcoming-when {
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  color:#936c39;
  font-size:12px;
  font-weight:750;
}

.dih-upcoming-name {
  color:#142d4b;
  font-size:18px;
  font-weight:800;
  line-height:1.3;
}

.dih-upcoming-meta {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  color:#647685;
  font-size:13px;
  line-height:1.4;
}

.dih-upcoming-action {
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:3px;
  color:#1a5367;
  font-size:12px;
  font-weight:800;
}

.dih-upcoming-action span {
  font-size:19px;
  transition:transform .16s ease;
}

.dih-upcoming-card:hover .dih-upcoming-action span {
  transform:translateX(4px);
}

/* MESSAGE QUAND AUCUNE DATE N'EST DOCUMENTEE */

.dih-empty {
  display:flex;
  align-items:flex-start;
  gap:15px;
  margin:0;
  padding:21px;
  border:1px solid #e0e8ec;
  border-radius:19px;
  background:#fff;
  box-shadow:0 5px 18px rgba(20,43,75,.04);
}

.dih-empty-symbol {
  display:grid;
  flex:0 0 42px;
  height:42px;
  place-items:center;
  border-radius:13px;
  background:#f6f0e7;
  color:#a47b45;
  font-size:25px;
}

.dih-empty strong {
  display:block;
  margin-bottom:6px;
  color:#253c50;
  font-size:15px;
}

.dih-empty p {
  margin:0;
  color:#647483;
  font-size:13px;
  line-height:1.6;
}

/* CARTES DE SELECTION DES ETABLISSEMENTS */

.dih-places-section {
  margin-bottom:34px;
}

.dih-venues {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.dih-place {
  display:flex;
  min-width:0;
  min-height:91px;
  align-items:center;
  gap:14px;
  padding:17px;
  border:1px solid #e1e8ed;
  border-radius:19px;
  background:#fff;
  box-shadow:0 5px 20px rgba(20,43,75,.042);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

.dih-place:hover {
  border-color:#c6d5db;
  transform:translateY(-2px);
  box-shadow:0 11px 25px rgba(20,43,75,.085);
}

.dih-place-icon {
  display:grid;
  flex:0 0 46px;
  height:46px;
  place-items:center;
  border-radius:15px;
  background:#edf3f5;
  color:#355873;
  font-size:14px;
  font-weight:800;
  letter-spacing:.025em;
}

.dih-place-copy {
  display:flex;
  flex:1;
  min-width:0;
  flex-direction:column;
  gap:5px;
}

.dih-place-copy strong {
  color:#203c53;
  font-size:15px;
  font-weight:800;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.dih-place-copy small {
  color:#6a7986;
  font-size:12px;
  line-height:1.4;
}

.dih-place-arrow {
  color:#b18a57;
  font-size:22px;
  line-height:1;
  transition:transform .16s ease;
}

.dih-place:hover .dih-place-arrow {
  transform:translateX(3px);
}

/* FICHES DETAILLEES EXISTANTES */

.dih-card {
  margin:0 0 13px;
  padding:23px;
  border:1px solid #e2e9ef;
  border-radius:20px;
  background:#fff;
  box-shadow:0 5px 20px rgba(20,43,75,.045);
}

.dih-card h1 {
  font-size:clamp(25px,5vw,32px);
  line-height:1.2;
}

.dih-card h2 {
  font-size:19px;
  line-height:1.3;
}

.dih-card a {
  color:#1b536b;
  text-decoration:underline;
  text-underline-offset:3px;
}

.dih-card p {
  line-height:1.6;
}

.dih-back {
  display:inline-block;
  margin:0 0 18px;
  color:#2c576f!important;
  font-size:13px;
  font-weight:700;
}

.dih-race {
  padding:16px 0;
  border-top:1px solid #e1e9ef;
}

.dih-race dl {margin:0}
.dih-race dt {margin-top:12px;font-weight:700}
.dih-race dd {margin:4px 0 0;overflow-wrap:anywhere}

.dih-provenance {
  color:#607083;
  font-size:12px;
  overflow-wrap:anywhere;
}

@media(max-width:560px) {
  .dih-map {height:290px}
  .dih-map-shell {margin-bottom:23px}
  .dih-page-heading {margin-bottom:25px}
  .dih-venues {grid-template-columns:1fr;gap:9px}
  .dih-place {min-height:75px;padding:13px 15px}
  .dih-place-icon {flex-basis:42px;height:42px}
  .dih-upcoming-link {padding:17px}
  .dih-empty {padding:17px}
  .dih-card {padding:17px}
}

@media(prefers-reduced-motion:reduce) {
  .dih-shell *,
  .dih-shell *::before,
  .dih-shell *::after {
    transition:none!important;
  }
}

.dih-more {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  margin:14px 0 0;
  padding:15px;
  border:1px solid #d9e3e9;
  border-radius:16px;
  background:#fff;
  color:#1e4d65!important;
  text-decoration:none!important;
  font-size:14px;
  font-weight:800;
}
.dih-more:hover {background:#edf4f6}

/* FICHES PRESTIGE LE CHEVAL */
.dih-prestige {
  overflow:hidden;
  margin:0 0 30px;
  border:1px solid #e3e6e9;
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 32px rgba(17,38,62,.07);
}
.dih-prestige-hero {
  padding:29px;
  background:linear-gradient(145deg,#142940,#213d59);
  color:#fff;
}
.dih-prestige-back {
  display:inline-block;
  margin-bottom:25px;
  font-size:12px;
  color:#e9d7ba!important;
  text-decoration:none!important;
}
.dih-prestige-kicker {
  margin:0 0 15px;
  color:#d5b582;
  font-size:10px;
  font-weight:800;
  letter-spacing:.17em;
}
.dih-prestige-hero h1 {
  margin:0 0 15px;
  color:#fff;
  font-size:clamp(27px,5vw,38px);
  line-height:1.2;
  letter-spacing:-.025em;
}
.dih-prestige-place {
  color:#f0ddc0!important;
  font-size:14px;
  font-weight:700;
  text-decoration:none!important;
}
.dih-prestige-facts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:25px;
  padding-top:21px;
  border-top:1px solid rgba(255,255,255,.2);
}
.dih-prestige-facts>div {
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
.dih-prestige-facts span {
  color:#d5b582;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.dih-prestige-facts strong {
  color:#fff;
  font-size:14px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.dih-prestige-facts small {
  color:#e5e9ee;
  font-size:12px;
}
.dih-prestige-content {padding:27px 29px}
.dih-prestige-section {margin:0 0 28px}
.dih-prestige-section h2 {
  margin:0 0 15px;
  padding-left:12px;
  border-left:4px solid #c5a16c;
  color:#17314c;
  font-size:20px;
}
.dih-prestige-programme {
  padding:20px;
  border:1px solid #e7e9ea;
  border-radius:15px;
  background:#fbfaf8;
  color:#34495b;
  font-size:14px;
  line-height:1.85;
}
.dih-prestige-races {display:grid;gap:10px}
.dih-prestige-race {
  display:flex;
  gap:14px;
  padding:17px;
  border:1px solid #e2e7ed;
  border-radius:15px;
}
.dih-prestige-star {
  display:grid;
  flex:0 0 37px;
  height:37px;
  place-items:center;
  border-radius:11px;
  background:#f5f0e8;
  color:#b08954;
}
.dih-prestige-race strong {
  color:#18324e;
  font-size:15px;
}
.dih-prestige-race p {
  margin:6px 0 0;
  color:#647586;
  font-size:12px;
}
.dih-prestige-info {
  color:#435b6e;
  font-size:14px;
  line-height:1.7;
}
.dih-prestige-footer {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-top:19px;
  border-top:1px solid #e8ecef;
}
.dih-prestige-footer a {
  color:#23516c!important;
  font-size:13px;
  font-weight:800;
  text-decoration:none!important;
}
.dih-prestige-footer small {
  color:#748391;
  font-size:11px;
}
@media(max-width:560px) {
  .dih-prestige-hero {padding:22px 18px}
  .dih-prestige-content {padding:22px 18px}
  .dih-prestige-facts {gap:8px}
  .dih-prestige-facts span {font-size:9px}
  .dih-prestige-facts strong {font-size:12px}
}
