/* republiquedominicaine.net — feuille de style unique
   Palette : larimar (pierre nationale), ambre dominicain, mer profonde, sable.
   Typo : serif système (Iowan/Georgia) pour les titres, system-ui pour le texte.
   Zéro webfont, zéro requête externe → LCP/FCP minimaux. */

:root{
  --mer:#0B3B47;        /* mer des Caraïbes, profonde */
  --mer-2:#0E4A58;
  --larimar:#3FA9B8;    /* accent principal */
  --larimar-pale:#DDF0F2;
  --ambre:#B67B22;      /* accent secondaire — décor uniquement */
  --ambre-txt:#9A681C;  /* même teinte assombrie pour le texte : 4.5:1 sur sable et sur blanc */
  --larimar-txt:#2D7B86;/* larimar assombri pour le texte sur fond clair */
  --sable:#FAF8F2;      /* fond */
  --ecume:#FFFFFF;
  --encre:#1C2A2E;      /* texte */
  --encre-2:#51646A;    /* texte secondaire */
  --filet:#E4E0D5;      /* bordures */
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,sans-serif;
  --max:72rem;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  margin:0;background:var(--sable);color:var(--encre);
  font-family:var(--sans);font-size:1.0625rem;line-height:1.65;
  -webkit-text-size-adjust:100%;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--mer-2);text-decoration-color:var(--larimar);text-underline-offset:3px}
a:hover{color:var(--larimar)}
:focus-visible{outline:3px solid var(--larimar);outline-offset:2px;border-radius:2px}

h1,h2,h3{font-family:var(--serif);line-height:1.15;color:var(--mer);font-weight:600;text-wrap:balance}
h1{font-size:clamp(2rem,5vw,3.25rem);margin:0 0 .5rem}
h2{font-size:clamp(1.5rem,3vw,2.1rem);margin:2.5rem 0 1rem}
h3{font-size:1.25rem;margin:1.5rem 0 .5rem}
p{margin:0 0 1rem}

.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}

/* ---------- En-tête ---------- */
.skip{position:absolute;left:-999px;top:0;background:var(--mer);color:#fff;padding:.5rem 1rem;z-index:99}
.skip:focus{left:0}
header.site{
  background:var(--sable);border-bottom:1px solid var(--filet);
  position:sticky;top:0;z-index:50;
}
.site .bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.75rem}
/* --larimar redéfini ici : le « .net » du logo porte un style inline
   color:var(--larimar) et hérite donc de la teinte accessible sans toucher au HTML. */
.logo{display:flex;align-items:center;gap:.6rem;font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--mer);text-decoration:none;--larimar:var(--larimar-txt)}
.logo svg{flex:none}
nav.main ul{list-style:none;display:flex;gap:1.4rem;margin:0;padding:0;flex-wrap:wrap}
nav.main a{text-decoration:none;font-size:.95rem;color:var(--encre);padding:.3rem 0;border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current="page"]{border-bottom-color:var(--larimar);color:var(--mer)}
#nav-toggle{display:none;background:none;border:1px solid var(--filet);border-radius:6px;padding:.45rem .7rem;font:inherit;color:var(--mer);cursor:pointer}
@media (max-width:820px){
  #nav-toggle{display:block}
  nav.main{display:none;width:100%}
  nav.main.open{display:block;padding-bottom:1rem}
  nav.main ul{flex-direction:column;gap:.3rem}
  .site .bar{flex-wrap:wrap}
}

/* ---------- Héros ---------- */
.hero{
  background:linear-gradient(180deg,var(--mer) 0%,var(--mer-2) 100%);
  color:var(--ecume);padding:4rem 0 4.5rem;position:relative;overflow:hidden;
}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:center}
.hero h1{color:var(--ecume)}
.hero p{color:#CFE4E8;font-size:1.15rem;max-width:34rem}
.hero .isle svg{width:100%;height:auto;opacity:.95}
.eyebrow{
  display:inline-block;font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ambre-txt);font-weight:700;margin-bottom:.75rem;
}
.hero .eyebrow{color:#E9C27B}
.souligne{box-shadow:inset 0 -0.45em 0 rgba(63,169,184,.35)}
.cta{
  display:inline-block;background:var(--larimar);color:#08303A;font-weight:700;
  padding:.75rem 1.4rem;border-radius:8px;text-decoration:none;margin-top:.75rem;
}
.cta:hover{background:#63C2CF;color:var(--mer)}
.cta.ghost{background:transparent;color:var(--ecume);border:1px solid rgba(255,255,255,.45);margin-left:.6rem}
.cta.ghost:hover{border-color:var(--larimar);color:var(--larimar)}
@media (max-width:820px){.hero .wrap{grid-template-columns:1fr}.hero .isle{max-width:22rem}}

/* ---------- Sections ---------- */
section{padding:3rem 0}
section.alt{background:var(--ecume);border-block:1px solid var(--filet)}
.lede{font-size:1.15rem;color:var(--encre-2);max-width:46rem}

/* Cartes (grille) */
.grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));padding:0;list-style:none;margin:1.5rem 0 0}
.card{
  background:var(--ecume);border:1px solid var(--filet);border-radius:10px;
  padding:1.1rem 1.2rem;position:relative;
}
.card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:10px 0 0 10px;background:var(--larimar)}
.card.amb::before{background:var(--ambre)}
.card h3{margin:0 0 .35rem;font-size:1.15rem}
.card h3 a{text-decoration:none;color:var(--mer)}
.card h3 a::after{content:"";position:absolute;inset:0}
.card:hover{border-color:var(--larimar)}
.card p{margin:0;font-size:.92rem;color:var(--encre-2)}

/* Listes d'index (pages hub) */
.index{columns:2;column-gap:3rem;list-style:none;padding:0;margin:1rem 0 0}
@media (max-width:700px){.index{columns:1}}
.index li{break-inside:avoid;padding:.55rem 0;border-bottom:1px solid var(--filet)}
.index a{font-weight:600;text-decoration:none}
.index a:hover{text-decoration:underline;text-decoration-color:var(--larimar)}
.index small{display:block;color:var(--encre-2);font-size:.88rem;margin-top:.1rem}

/* Fil d'Ariane */
.crumbs{font-size:.85rem;color:var(--encre-2);padding:1rem 0 0}
.crumbs ol{list-style:none;display:flex;gap:.4rem;flex-wrap:wrap;margin:0;padding:0}
.crumbs li+li::before{content:"›";margin-right:.4rem;color:var(--larimar)}
.crumbs a{text-decoration:none}

/* Bandeau mois */
.mois{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.6rem;list-style:none;padding:0;margin:1.5rem 0 0}
.mois a{
  display:block;text-align:center;background:var(--larimar-pale);border:1px solid var(--filet);
  border-radius:8px;padding:.7rem .4rem;text-decoration:none;font-weight:600;color:var(--mer);font-size:.95rem;
}
.mois a:hover{background:var(--larimar);color:var(--ecume)}

/* Carte Leaflet */
#map{height:70vh;min-height:26rem;border-radius:12px;border:1px solid var(--filet);background:var(--larimar-pale)}
#map[data-loading]{display:grid;place-items:center;color:var(--encre-2)}

/* Tableaux */
table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.95rem}
th,td{border:1px solid var(--filet);padding:.55rem .7rem;text-align:left}
th{background:var(--larimar-pale);color:var(--mer);font-family:var(--serif)}

/* ---------- Pied de page ---------- */
footer.site{background:var(--mer);color:#B9D3D8;margin-top:3rem;padding:3rem 0 2rem;font-size:.92rem}
footer.site h2{color:var(--ecume);font-size:1.05rem;margin:0 0 .8rem}
footer.site .cols{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin:.35rem 0}
footer.site a{color:#CFE4E8;text-decoration:none}
footer.site a:hover{color:var(--larimar);text-decoration:underline}
footer.site .legal{border-top:1px solid rgba(255,255,255,.15);margin-top:2.5rem;padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
