/* =====================================================================
   joshua-hochart.fr — feuille de style
   Palette : bleu marine, rouge du Sénat, or.
   ===================================================================== */

:root{
  --marine:#0E1F45;
  --marine-2:#14295A;
  --marine-3:#1D3873;
  --bleu:#2B4A9B;
  --rouge:#8E1B2A;
  --rouge-clair:#B32637;
  --or:#C9A227;
  --or-clair:#E3C35C;
  --ivoire:#F7F5F0;
  --ivoire-2:#EDEAE2;
  --blanc:#FFFFFF;
  --gris:#5B6472;
  --gris-clair:#9AA3AF;

  --display:"Bodoni Moda",Georgia,"Times New Roman",serif;
  --texte:"IBM Plex Sans","Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",Consolas,monospace;

  --marge:clamp(1.25rem,5vw,4.5rem);
  --max:1240px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;background:var(--ivoire);color:var(--marine);
  font-family:var(--texte);font-size:clamp(1rem,.96rem + .2vw,1.06rem);
  line-height:1.62;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--rouge);text-underline-offset:.22em;}
a:hover{color:var(--rouge-clair);}
:focus-visible{outline:2px solid var(--or);outline-offset:3px;}

.enveloppe{max-width:var(--max);margin-inline:auto;padding-inline:var(--marge);}

.saut-contenu{position:absolute;left:-9999px;background:var(--rouge);color:#fff;padding:.75rem 1rem;z-index:100;}
.saut-contenu:focus{left:0;top:0;}

/* --------------------------- Filet tricolore ------------------------ */
.tricolore{height:4px;display:flex;}
.tricolore i{flex:1;}
.tricolore i:nth-child(1){background:var(--marine-3);}
.tricolore i:nth-child(2){background:var(--blanc);}
.tricolore i:nth-child(3){background:var(--rouge);}

/* ------------------------------- Barre ------------------------------ */
.barre{position:sticky;top:0;z-index:60;background:var(--marine);border-bottom:1px solid rgba(201,162,39,.3);}
.barre .enveloppe{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px;}
.sceau{display:flex;flex-direction:column;text-decoration:none;color:var(--blanc);line-height:1.1;}
.sceau b{font-family:var(--display);font-weight:600;font-size:1.16rem;letter-spacing:.01em;}
.sceau small{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or);margin-top:3px;}
.barre nav{display:flex;gap:clamp(.85rem,2.2vw,2rem);align-items:center;}
.barre nav a{font-family:var(--mono);font-size:.71rem;letter-spacing:.15em;text-transform:uppercase;color:#DDE2EA;text-decoration:none;padding:.35rem 0;border-bottom:1px solid transparent;}
.barre nav a:hover{color:#fff;border-bottom-color:var(--or);}
.barre nav .nav-ecrire{background:var(--rouge);color:#fff;padding:.6rem 1.1rem;border-bottom:0;}
.barre nav .nav-ecrire:hover{background:var(--rouge-clair);border-bottom-color:transparent;}
@media (max-width:1140px){.barre nav .nav-secondaire{display:none;}}
@media (max-width:980px){.barre nav .nav-tertiaire{display:none;}}
@media (max-width:700px){.barre nav a:not(.nav-ecrire){display:none;}}

/* ------------------------------- Hero ------------------------------- */
.hero{position:relative;background:var(--marine);color:var(--ivoire);overflow:hidden;}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(900px 620px at 88% -12%, rgba(43,74,155,.55), transparent 60%),
    radial-gradient(700px 520px at 38% 115%, rgba(142,27,42,.40), transparent 62%);
}
.hero-grille{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr);
  gap:clamp(1.6rem,4vw,3.2rem);align-items:stretch;
  padding-block:clamp(2.2rem,5vw,4rem);
}
@media (min-width:900px){
  .hero-grille{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);}
}

.hero-texte{
  display:flex;flex-direction:column;justify-content:center;
  padding-block:clamp(.5rem,2vw,1.5rem);
}

.etiquette{
  display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--marine);background:var(--or);padding:.45rem .9rem;margin:0 0 1.5rem;font-weight:500;
}

.hero h1{
  font-family:var(--display);font-weight:600;
  font-size:clamp(2.9rem,8.5vw,5.2rem);line-height:.9;letter-spacing:-.02em;
  margin:0 0 1.3rem;color:#fff;
}
.hero h1 em{display:block;font-style:normal;color:var(--or-clair);}

.chapo{font-size:clamp(1.02rem,.98rem + .35vw,1.16rem);line-height:1.6;color:#D3DAE6;max-width:40ch;margin:0 0 2rem;}
.chapo strong{color:#fff;font-weight:600;}

.actions{display:flex;flex-wrap:wrap;gap:.75rem;}
.bouton{
  display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;
  padding:.9rem 1.5rem;text-decoration:none;border:1px solid transparent;
  transition:transform .16s ease,background .18s ease,color .18s ease,border-color .18s ease;
}
.bouton:hover{transform:translateY(-2px);}
.bouton-rouge{background:var(--rouge);color:#fff;border-color:var(--rouge);}
.bouton-rouge:hover{background:var(--rouge-clair);border-color:var(--rouge-clair);color:#fff;}
.bouton-or{background:transparent;color:var(--or-clair);border-color:rgba(201,162,39,.6);}
.bouton-or:hover{background:var(--or);color:var(--marine);border-color:var(--or);}

/* Portrait */
.hero-portrait{
  position:relative;min-height:min(68vh,560px);background:var(--marine-2);
  border:1px solid rgba(201,162,39,.32);overflow:hidden;
}
.hero-portrait img{
  width:100%;height:100%;position:absolute;inset:0;
  object-fit:cover;object-position:var(--cadrage,35% 25%);
}
/* Léger fondu en pied d'image, pour asseoir le cadre sans masquer le visage */
.hero-portrait::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:38%;
  background:linear-gradient(180deg,rgba(14,31,69,0),rgba(14,31,69,.45));
}
@media (max-width:899px){ .hero-portrait{min-height:340px;} }

/* --------------------------- Chiffres clés -------------------------- */
.chiffres{background:var(--marine-2);border-top:1px solid rgba(201,162,39,.28);}
.chiffres .enveloppe{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.5rem 2rem;padding-block:2.1rem;}
.chiffre{border-left:2px solid var(--or);padding-left:1rem;}
.chiffre b{display:block;font-family:var(--display);font-weight:600;font-size:clamp(2rem,1.4rem + 2vw,2.9rem);line-height:1;color:#fff;}
.chiffre span{font-family:var(--mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:#B4BFD1;display:block;margin-top:.45rem;}

/* ------------------------------ Sections ---------------------------- */
.section{padding-block:clamp(3.2rem,7vw,5.5rem);}
.section-marine{background:var(--marine);color:#DDE3ED;}
.section-ivoire{background:var(--ivoire-2);}

.entete-section{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2.4rem;}
.entete-section h2{
  font-family:var(--display);font-weight:600;
  font-size:clamp(1.9rem,1.4rem + 2vw,2.9rem);line-height:1.04;margin:0;letter-spacing:-.01em;
}
.entete-section h2::after{content:"";display:block;width:64px;height:3px;background:var(--rouge);margin-top:.85rem;}
.section-marine .entete-section h2{color:#fff;}
.section-marine .entete-section h2::after{background:var(--or);}
.note{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);margin:0;}
.section-marine .note{color:var(--gris-clair);}

/* ------------------------------ Registre ---------------------------- */
.registre{list-style:none;margin:0;padding:0;}
.registre li + li{border-top:1px solid var(--reg-bordure,rgba(221,227,237,.16));}
.registre a{
  display:grid;gap:.35rem 1.4rem;padding:1.1rem .9rem;grid-template-columns:minmax(0,1fr);
  text-decoration:none;color:inherit;transition:background .16s ease;position:relative;
}
.registre a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .16s ease;}
@media (min-width:780px){
  .registre a{grid-template-columns:8.5rem 11rem minmax(0,1fr);align-items:baseline;}
}
.registre a:hover{background:var(--reg-survol,rgba(255,255,255,.05));}
.registre a:hover::before{background:var(--or);}
.reg-date{font-family:var(--mono);font-size:.79rem;color:var(--reg-date,var(--or-clair));white-space:nowrap;}
.badge{
  display:inline-block;font-family:var(--mono);font-size:.61rem;letter-spacing:.13em;text-transform:uppercase;
  padding:.24rem .6rem;border:1px solid;white-space:nowrap;
}
.badge-amendements{color:#F3C9CF;border-color:rgba(179,38,55,.85);background:rgba(142,27,42,.42);}
.badge-question{color:#D8DFF3;border-color:rgba(43,74,155,.9);background:rgba(43,74,155,.42);}
.badge-intervention{color:#F2E2AC;border-color:rgba(201,162,39,.7);background:rgba(201,162,39,.18);}
.reg-titre{font-size:1.02rem;line-height:1.42;color:var(--reg-titre,#EDF1F7);}
.registre a:hover .reg-titre{color:var(--reg-titre-survol,#fff);}
.reg-statut{display:block;font-family:var(--mono);font-size:.66rem;color:var(--reg-statut,var(--gris-clair));margin-top:.28rem;}

.liens-senat{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:2rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;}
.liens-senat a{color:#DDE3ED;text-decoration:none;border-bottom:1px solid rgba(201,162,39,.55);padding-bottom:2px;}
.liens-senat a:hover{color:#fff;border-bottom-color:var(--or);}
.vide{color:var(--gris-clair);margin:0;}

/* ------------------------------ Galerie ----------------------------- */
.galerie{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));}
.galerie figure{margin:0;position:relative;overflow:hidden;background:var(--marine);}
.galerie img{aspect-ratio:3/2;object-fit:cover;width:100%;transition:transform .5s ease;}
.galerie figure:hover img{transform:scale(1.04);}
.galerie figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.8rem 1rem .9rem;
  background:linear-gradient(transparent,rgba(14,31,69,.94));color:#fff;
  font-family:var(--mono);font-size:.71rem;letter-spacing:.07em;
}

/* ------------------------------ Réseaux ----------------------------- */
.reseaux{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));}
.reseaux a{
  display:flex;flex-direction:column;gap:.55rem;height:100%;padding:1.5rem;
  text-decoration:none;color:var(--blanc);background:var(--marine-2);
  border:1px solid rgba(201,162,39,.22);
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.reseaux a:hover{transform:translateY(-4px);background:var(--marine-3);border-color:var(--or);}
.reseaux svg{width:26px;height:26px;fill:var(--or);}
.res-nom{font-family:var(--mono);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:#B4BFD1;}
.res-compte{font-family:var(--display);font-size:1.26rem;font-weight:600;line-height:1.2;color:#fff;}
.res-fleche{margin-top:auto;padding-top:.9rem;color:var(--or-clair);font-family:var(--mono);font-size:.71rem;}

/* --------------------------- Flux Facebook -------------------------- */
.flux{margin-top:1.6rem;border:1px solid rgba(201,162,39,.25);background:var(--marine-2);}
.flux-invite{padding:2.2rem 1.6rem;text-align:center;}
.flux-invite p{margin:0 auto 1.2rem;max-width:56ch;color:#C0CAD9;font-size:.91rem;}
.flux-cadre{width:100%;border:0;display:block;background:#fff;}

/* ------------------------------ Contact ----------------------------- */
.grille-contact{display:grid;gap:clamp(2rem,4vw,3.2rem);grid-template-columns:minmax(0,1fr);}
@media (min-width:920px){.grille-contact{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);}}

.carte-coord{background:var(--marine);color:#DDE3ED;padding:clamp(1.6rem,3vw,2.2rem);border-top:4px solid var(--or);}
.fiche{margin:0 0 1.6rem;}
.fiche:last-child{margin-bottom:0;}
.fiche dt{font-family:var(--mono);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin-bottom:.4rem;}
.fiche dd{margin:0;line-height:1.55;color:#EDF1F7;}
.fiche dd a{color:#fff;}

form.ecrire{display:grid;gap:1.1rem;}
.champ{display:grid;gap:.4rem;margin:0;}
.champ label{font-family:var(--mono);font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);}
.champ input,.champ textarea,.champ select{
  font:inherit;font-size:1rem;color:var(--marine);background:var(--blanc);
  border:1px solid rgba(14,31,69,.2);border-radius:0;padding:.82rem .9rem;width:100%;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.champ input:focus,.champ textarea:focus,.champ select:focus{
  outline:none;border-color:var(--bleu);box-shadow:0 0 0 3px rgba(43,74,155,.15);
}
.champ textarea{min-height:170px;resize:vertical;}
.duo{display:grid;gap:1.1rem;grid-template-columns:minmax(0,1fr);}
@media (min-width:620px){.duo{grid-template-columns:1fr 1fr;}}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.mention-rgpd{font-size:.82rem;color:var(--gris);line-height:1.5;margin:0;}
.alerte{padding:.95rem 1.1rem;border-left:3px solid;font-size:.94rem;margin:0 0 1.2rem;}
.alerte-ok{border-color:#2E6B4F;background:#E9F3ED;color:#1E4A36;}
.alerte-ko{border-color:var(--rouge);background:#F7EAEC;color:#611820;}

/* -------------------------------- Pied ------------------------------ */
.pied{background:var(--marine);color:var(--gris-clair);padding-block:2.6rem;font-size:.85rem;}
.pied .enveloppe{display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;align-items:center;}
.pied a{color:#DDE3ED;text-decoration:none;border-bottom:1px solid rgba(201,162,39,.45);}
.pied a:hover{color:#fff;}
.pied p{margin:0;}

/* ----------------------------- Page texte --------------------------- */
.page-texte{max-width:70ch;padding-block:clamp(2.5rem,6vw,4.5rem);}
.page-texte h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,1.5rem + 2vw,3rem);line-height:1.06;margin:0 0 2rem;}
.page-texte h2{font-family:var(--display);font-weight:600;font-size:1.5rem;margin:2.6rem 0 .7rem;color:var(--marine);}
.page-texte p,.page-texte li{color:#2A3441;}
.page-texte ul{padding-left:1.1rem;}

/* ------------------------------ Vidéos ------------------------------ */
.videos{list-style:none;margin:0;padding:0;display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.videos a{display:block;text-decoration:none;color:inherit;background:var(--marine-2);border:1px solid rgba(201,162,39,.2);transition:transform .18s ease,border-color .18s ease;}
.videos a:hover{transform:translateY(-4px);border-color:var(--or);}
.video-image{position:relative;overflow:hidden;background:var(--marine);}
.video-image img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .5s ease;}
.videos a:hover .video-image img{transform:scale(1.05);}
.video-lecture{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:56px;height:56px;border-radius:50%;background:rgba(142,27,42,.92);
  display:flex;align-items:center;justify-content:center;transition:background .18s ease;
}
.videos a:hover .video-lecture{background:var(--rouge-clair);}
.video-lecture svg{width:20px;height:20px;fill:#fff;margin-left:3px;}
.video-texte{padding:1rem 1.1rem 1.2rem;}
.video-date{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--or-clair);display:block;margin-bottom:.4rem;}
.video-titre{font-size:.97rem;line-height:1.4;color:#EDF1F7;}

/* ------------------------------- Votes ------------------------------ */
.votes{list-style:none;margin:0;padding:0;}
.votes li + li{border-top:1px solid rgba(20,31,69,.12);}
.votes a{
  display:grid;gap:.4rem 1.4rem;padding:1.1rem .9rem;grid-template-columns:minmax(0,1fr);
  text-decoration:none;color:inherit;transition:background .16s ease;
}
@media (min-width:780px){
  .votes a{grid-template-columns:7.5rem 11rem minmax(0,1fr);align-items:baseline;}
}
.votes a:hover{background:rgba(14,31,69,.05);}
.vote-date{font-family:var(--mono);font-size:.79rem;color:var(--gris);white-space:nowrap;}
.vote-titre{font-size:1rem;line-height:1.42;color:var(--marine);}
.votes a:hover .vote-titre{text-decoration:underline;text-underline-offset:.2em;}
.position{
  display:inline-block;font-family:var(--mono);font-size:.73rem;letter-spacing:.1em;
  text-transform:uppercase;padding:.4rem .85rem;border:1px solid;white-space:nowrap;
  font-weight:600;line-height:1.2;
}
.position-pour{color:#FFFFFF;border-color:#1F7A4D;background:#1F7A4D;}
.position-contre{color:#FFFFFF;border-color:#C02A3C;background:#C02A3C;}
.position-abstention{color:#3A2E05;border-color:var(--or);background:var(--or);}
.position-absent{color:#EDF1F7;border-color:#5B6880;background:#5B6880;}
.avertissement{
  font-size:.86rem;color:var(--gris);line-height:1.55;margin:0 0 1.6rem;
  border-left:3px solid var(--or);padding:.2rem 0 .2rem 1rem;max-width:70ch;
}

/* Registre : jeu de couleurs selon le fond de la section */
.section-marine{
  --reg-bordure:rgba(221,227,237,.16);
  --reg-survol:rgba(255,255,255,.05);
  --reg-date:var(--or-clair);
  --reg-titre:#EDF1F7;
  --reg-titre-survol:#FFFFFF;
  --reg-statut:var(--gris-clair);
}
.section-ivoire,.reperes{
  --reg-bordure:rgba(14,31,69,.14);
  --reg-survol:rgba(14,31,69,.05);
  --reg-date:var(--rouge);
  --reg-titre:var(--marine);
  --reg-titre-survol:#000000;
  --reg-statut:var(--gris);
}
.section-ivoire .liens-senat a{color:var(--marine);border-bottom-color:var(--rouge);}
.section-ivoire .badge-amendements{color:#6B1520;border-color:var(--rouge);background:#F7E6E8;}
.section-ivoire .badge-question{color:#1B2E6B;border-color:var(--bleu);background:#E4E9F6;}
.section-ivoire .badge-intervention{color:#6B5310;border-color:var(--or);background:#F8F0DA;}
.lien-secondaire{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--gris-clair);
  margin-top:.3rem;display:block;
}

/* ------------------- État d'une question écrite --------------------- */
.etat{
  display:inline-block;font-family:var(--mono);font-size:.6rem;letter-spacing:.11em;
  text-transform:uppercase;padding:.18rem .5rem;margin-left:.5rem;
  border:1px solid;white-space:nowrap;vertical-align:.08em;
}
.etat-repondu{color:#8FE0B4;border-color:#2E7D52;background:rgba(31,122,77,.28);}
.etat-attente{color:#F2D48A;border-color:#8A6B1C;background:rgba(201,162,39,.20);}
.etat-caduque{color:#C3CCDB;border-color:#5B6880;background:rgba(91,104,128,.28);}
.section-ivoire .etat-repondu{color:#14532D;border-color:#1F7A4D;background:#E2F1E8;}
.section-ivoire .etat-attente{color:#5C4708;border-color:var(--or);background:#F8F0DA;}
.section-ivoire .etat-caduque{color:var(--gris);border-color:#B7BDC7;background:#EDEFF2;}
