/* Correctif navigation : transparente sur le header, lisible ensuite */
.topbar {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: transparent;
  box-shadow: none;
  transition: background .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;
}

.topbar.is-solid {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(40, 35, 25, 0.08);
}

html {
  scroll-padding-top: 96px;
}

[id] {
  scroll-margin-top: 96px;
}


/* Édito d'accueil SAT+ : apparition puis repli stable */
.home-edito {
  position: relative;
  max-height: 980px;
  padding: clamp(3.2rem, 6vw, 6rem) 1.25rem clamp(3.4rem, 6vw, 6rem);
  background: #fff;
  overflow: hidden;
  transition: max-height .72s ease, padding .72s ease, opacity .38s ease;
}

.home-edito.is-collapsed {
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  opacity: 0;
  pointer-events: none;
}

.home-edito-card {
  position: relative;
  width: min(1080px, 100%);
  margin: 0 auto;
  padding: clamp(0.2rem, 1vw, 0.4rem) 0 clamp(0.2rem, 1vw, 0.4rem) clamp(1.35rem, 2.4vw, 2.1rem);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .65s ease, transform .65s ease;
  will-change: opacity, transform;
}

.home-edito-card.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.home-edito-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: .15rem;
  bottom: .25rem;
  width: 1px;
  background: #171717;
  opacity: .9;
}

.home-edito-title {
  margin: 0 0 1.15rem;
  max-width: 880px;
  font-size: clamp(1.45rem, 2.35vw, 2.15rem);
  font-weight: 500;
  line-height: 1.16;
  letter-spacing: -0.018em;
  color: #292419;
}

.home-edito-text {
  max-width: 900px;
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-size: clamp(1.05rem, 1.28vw, 1.22rem);
  line-height: 1.76;
  color: #393326;
}

.home-edito-text p {
  margin: 0 0 1rem;
}

.home-edito-text p:last-child {
  margin-bottom: 0;
}

.home-edito-text .edito-signature {
  margin-top: 1.1rem;
  padding-top: 0;
  border-top: 0;
  font-family: inherit;
  font-style: italic;
  font-size: clamp(1.05rem, 1.28vw, 1.22rem);
  line-height: 1.76;
  color: #244332;
}

.home-edito-bottom-marker {
  width: 1px;
  height: 1px;
  margin: 0 auto;
}

@media (prefers-reduced-motion: reduce) {
  .home-edito,
  .home-edito-card {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (max-width: 720px) {
  .home-edito {
    max-height: none;
    padding: 2rem 1rem 2.8rem;
  }

  .home-edito.is-collapsed {
    max-height: none;
    padding: 2rem 1rem 2.8rem;
    opacity: 1;
  }

  .home-edito-card {
    padding-left: 1.15rem;
    opacity: 1;
    transform: none;
  }
}

/* Séquence d'accueil en trois vues stables : image / édito / cadre Pacte */
.hero {
  height: 100svh !important;
  min-height: 640px !important;
  max-height: none !important;
  display: flex;
  align-items: flex-end;
}

.home-edito {
  min-height: 100svh;
  max-height: none;
  display: flex;
  align-items: center;
  padding: calc(84px + clamp(2rem, 5vw, 4rem)) 1.25rem clamp(3rem, 5vw, 5rem);
  background: #fff;
  overflow: visible;
  transition: none;
}

.home-edito.is-collapsed {
  max-height: none;
  padding: calc(84px + clamp(2rem, 5vw, 4rem)) 1.25rem clamp(3rem, 5vw, 5rem);
  opacity: 1;
  pointer-events: auto;
}

.home-edito-card {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .5s ease, transform .5s ease;
}

.home-edito-card.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.home-edito-bottom-marker {
  display: none;
}

.institutional-block {
  width: min(1320px, calc(100% - 3rem));
  margin: 0 auto clamp(1.4rem, 2.2vw, 2rem) !important;
  padding: clamp(1.4rem, 2.5vw, 2.15rem) clamp(1.5rem, 3vw, 2.4rem) !important;
}

.institutional-grid {
  display: grid;
  grid-template-columns: minmax(320px, .9fr) minmax(560px, 1.15fr);
  gap: clamp(1.6rem, 4vw, 3.8rem);
  align-items: start;
}

.institutional-block h2 {
  margin-bottom: .9rem;
}

.institutional-block p {
  margin: 0 0 .75rem;
  line-height: 1.5;
}

.institutional-side {
  display: grid;
  gap: 1rem;
}

.institutional-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}

.institutional-logo-btn {
  min-height: 132px;
  padding: 1rem !important;
}

.institutional-actions {
  margin: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
}

.home-contact {
  padding: 0 1.25rem .85rem !important;
  margin-top: 0 !important;
}

.home-contact-inner {
  padding-top: 1rem !important;
  padding-bottom: .9rem !important;
}

.logo-band {
  margin-top: 0 !important;
  padding-top: .65rem !important;
  padding-bottom: .65rem !important;
}

@media (max-width: 980px) {
  .hero {
    min-height: 560px !important;
  }

  .home-edito {
    min-height: auto;
    padding: 7rem 1rem 4rem;
  }

  .institutional-grid,
  .institutional-links {
    grid-template-columns: 1fr;
  }

  .institutional-actions {
    justify-content: flex-start;
  }
}


/* Adoucissement des bascules entre les trois vues */
html {
  scroll-behavior: auto;
}

.topbar {
  transition: background .62s cubic-bezier(.22, .61, .36, 1), box-shadow .62s cubic-bezier(.22, .61, .36, 1), backdrop-filter .62s cubic-bezier(.22, .61, .36, 1);
}

.hero,
.home-edito,
.institutional-block {
  scroll-margin-top: 0;
}

.hero {
  transition: opacity .9s cubic-bezier(.22, .61, .36, 1);
}

.home-edito-card {
  transition: opacity 1.05s cubic-bezier(.22, .61, .36, 1), transform 1.05s cubic-bezier(.22, .61, .36, 1);
}

body.is-soft-snapping .hero-card,
body.is-soft-snapping .home-edito-card,
body.is-soft-snapping .institutional-block {
  will-change: transform, opacity;
}



/* Manifeste climat : lecture continue, sans cartes artificielles */
.climate-manifest {
  background: #fff;
  padding: clamp(4.8rem, 8vw, 8rem) 1.25rem clamp(4.6rem, 7vw, 7rem);
}

.climate-manifest-inner {
  width: min(1040px, 100%);
  margin: 0 auto;
}

.climate-manifest-header {
  max-width: 920px;
  margin: 0 0 clamp(2.3rem, 4vw, 4rem);
}

.climate-manifest-header h2 {
  margin: .35rem 0 1.6rem;
  max-width: 900px;
  font-size: clamp(2.25rem, 5.2vw, 5rem);
  line-height: .98;
  font-weight: 500;
  letter-spacing: -.055em;
  color: #292419;
}

.climate-intro {
  max-width: 860px;
  margin: 0;
  font-size: clamp(1.2rem, 1.85vw, 1.52rem);
  line-height: 1.62;
  color: #332d22;
}

.climate-section {
  position: relative;
  max-width: 920px;
  margin: clamp(3rem, 5vw, 5rem) 0 0 auto;
  padding-left: clamp(1.25rem, 2.2vw, 2rem);
  border-left: 1px solid rgba(41, 36, 25, .22);
}

.climate-section h3,
.climate-risks summary span {
  margin: 0 0 1.25rem;
  font-size: clamp(1.45rem, 2.5vw, 2.35rem);
  line-height: 1.12;
  font-weight: 500;
  color: #244332;
}

.climate-text p,
.climate-risks p,
.climate-risks dd {
  margin: 0 0 1.25rem;
  font-size: clamp(1.12rem, 1.45vw, 1.28rem);
  line-height: 1.72;
  color: #332d22;
}

.climate-text p:last-child,
.climate-risks p:last-child,
.climate-risks dd:last-child {
  margin-bottom: 0;
}

.climate-cascade-list {
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .95rem;
}

.climate-cascade-list li {
  position: relative;
  padding-left: 1.5rem;
  font-size: clamp(1.1rem, 1.4vw, 1.24rem);
  line-height: 1.62;
  color: #40392b;
}

.climate-cascade-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .74em;
  width: .45rem;
  height: .45rem;
  border-radius: 999px;
  background: #244332;
}

.climate-risks {
  max-width: 920px;
  margin: clamp(3rem, 5vw, 5rem) 0 0 auto;
  padding-left: clamp(1.25rem, 2.2vw, 2rem);
  border-left: 1px solid rgba(41, 36, 25, .22);
}

.climate-risks summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.climate-risks summary::-webkit-details-marker {
  display: none;
}

.climate-risks summary small {
  flex: 0 0 auto;
  color: #244332;
  font-size: .86rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.climate-risks-content {
  padding-top: .35rem;
}

.climate-risks dl {
  margin: 1.25rem 0 0;
}

.climate-risks dt {
  margin: 1.25rem 0 .4rem;
  font-size: 1.02rem;
  line-height: 1.4;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .055em;
  color: #244332;
}

.climate-risks dd {
  margin-left: 0;
}

.sat-signature {
  color: #244332 !important;
  font-weight: 500;
}

/* Cadres publics : logos et liens sobres après le Pacte */
.official-resources {
  padding: .8rem 1.25rem clamp(3rem, 5vw, 4.5rem);
  background: #fff;
}

.official-resources-inner {
  width: min(1320px, 100%);
  margin: 0 auto;
  padding-top: clamp(1.5rem, 3vw, 2.4rem);
  border-top: 1px solid rgba(41, 36, 25, .14);
}

.official-resources h2 {
  margin: .25rem 0 1.25rem;
  max-width: 760px;
  font-size: clamp(1.55rem, 2.8vw, 2.55rem);
  line-height: 1.1;
  font-weight: 500;
  color: #292419;
}

.official-resource-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.official-resource-card {
  display: grid;
  grid-template-columns: minmax(160px, 240px) 1fr;
  gap: 1.15rem;
  align-items: center;
  min-height: 190px;
  padding: 1.1rem;
  border: 1px solid rgba(41, 36, 25, .12);
  background: #fbfaf6;
  color: #292419;
  text-decoration: none;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.official-resource-card:hover,
.official-resource-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(36, 67, 50, .35);
  box-shadow: 0 16px 36px rgba(41, 36, 25, .08);
}

.official-resource-logo {
  display: grid;
  place-items: center;
  min-height: 150px;
  background: #fff;
}

.official-resource-logo img {
  max-width: 100%;
  max-height: 130px;
  object-fit: contain;
}

.official-resource-card strong {
  display: block;
  margin-bottom: .45rem;
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  line-height: 1.12;
}

.official-resource-card p {
  margin: 0 0 .75rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #4a4334;
}

.official-resource-link {
  color: #244332;
  font-weight: 650;
}

@media (max-width: 980px) {
  .climate-manifest {
    padding: 4rem 1rem;
  }

  .climate-section,
  .climate-risks {
    max-width: 100%;
    margin-left: 0;
  }

  .official-resource-grid,
  .official-resource-card {
    grid-template-columns: 1fr;
  }

  .official-resources {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 720px) {
  .climate-manifest {
    padding: 3rem 1rem;
  }

  .climate-risks summary {
    display: grid;
  }

  .official-resource-logo {
    min-height: 110px;
  }
}


/* Ajustements manifeste v3 : lecture progressive sobre */
.climate-manifest {
  padding-top: clamp(4rem, 7vw, 6.5rem);
}

.climate-intro {
  font-size: clamp(1.06rem, 1.35vw, 1.2rem);
  line-height: 1.68;
}

.climate-toc {
  max-width: 920px;
  margin: 0 0 clamp(2.4rem, 4.8vw, 4.4rem) auto;
  padding-left: clamp(1.25rem, 2.2vw, 2rem);
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .7rem;
}

.climate-toc a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: .35rem .72rem;
  border: 1px solid rgba(36, 67, 50, .22);
  border-radius: 999px;
  color: #244332;
  text-decoration: none;
  font-size: .88rem;
  line-height: 1.2;
  background: rgba(255,255,255,.62);
}

.climate-toc a:hover,
.climate-toc a:focus-visible {
  border-color: rgba(36, 67, 50, .5);
  background: rgba(36, 67, 50, .055);
}

.climate-section {
  scroll-margin-top: 92px;
  margin-top: clamp(2.7rem, 4.7vw, 4.4rem);
}

.climate-section h3 {
  margin-bottom: .65rem;
}

.climate-text {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(10px);
  transition: max-height 1.15s cubic-bezier(.22,.61,.36,1), opacity .7s ease, transform .7s ease;
}

.climate-section.is-visible .climate-text {
  max-height: 3600px;
  opacity: 1;
  transform: translateY(0);
}

.climate-text p,
.climate-risks p,
.climate-cascade-list li {
  font-size: clamp(1.01rem, 1.18vw, 1.13rem);
  line-height: 1.68;
}

.climate-cascade-list {
  gap: .7rem;
  margin-top: 1.4rem;
}

.climate-risks {
  max-width: 920px;
  margin: clamp(2.7rem, 4.7vw, 4.4rem) 0 0 auto;
  padding-left: clamp(1.25rem, 2.2vw, 2rem);
  border-left: 1px solid rgba(41, 36, 25, .22);
}

.climate-risks-content {
  padding-top: 0;
}

.risk-family {
  margin-top: 1.35rem;
  padding-top: 1.05rem;
  border-top: 1px solid rgba(41, 36, 25, .11);
}

.risk-family h4 {
  margin: 0 0 .35rem;
  font-size: .95rem;
  line-height: 1.35;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #244332;
}

.risk-family p {
  margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
  .climate-text {
    max-height: none;
    opacity: 1;
    overflow: visible;
    transform: none;
    transition: none;
  }
}

@media (max-width: 720px) {
  .climate-text {
    max-height: none;
    opacity: 1;
    overflow: visible;
    transform: none;
  }
  .climate-toc {
    margin-left: 0;
    padding-left: 0;
  }
}



/* Harmonisation v4 : typographies plus proches de l'onglet Projet SAT+ */
.climate-manifest {
  padding-top: clamp(3.8rem, 6.5vw, 6.4rem);
}

.climate-manifest-header h2,
.institutional-block h2,
.official-resources h2 {
  font-family: 'Oswald', Georgia, serif;
  font-weight: 300;
  letter-spacing: -.035em;
  line-height: 1.06;
  color: #111111;
}

.institutional-block h2,
.official-resources h2 {
  font-size: clamp(2.15rem, 3.3vw, 3.45rem) !important;
  max-width: 820px;
}

.climate-manifest-header h2 {
  font-size: clamp(2.35rem, 4.8vw, 4.7rem);
}

.climate-intro,
.climate-text p,
.climate-cascade-list li,
.risk-family p,
.official-resource-card p,
.institutional-block p {
  font-family: 'Acumin', Arial, Helvetica, sans-serif;
}

.climate-intro {
  font-size: clamp(1rem, 1.22vw, 1.16rem);
  line-height: 1.72;
}

.climate-section h3 {
  font-family: 'Oswald', Georgia, serif;
  font-size: clamp(1.55rem, 2.3vw, 2.45rem);
  line-height: 1.12;
  font-weight: 300;
  letter-spacing: -.025em;
  color: #111111;
}

.climate-text p,
.climate-cascade-list li,
.risk-family p {
  font-size: clamp(1rem, 1.08vw, 1.1rem) !important;
  line-height: 1.72;
  color: #3f3e3a;
}

.climate-section {
  border-left-color: #111111;
}

.climate-cascade-list li::before {
  background: #111111;
}

/* Le sommaire sous forme de boutons est supprimé : la lecture se fait directement au scroll. */
.climate-toc {
  display: none !important;
}

.official-resources-inner {
  padding-top: 28px;
}

.official-resource-card {
  background: #ffffff;
  border: 1px solid var(--line, #ebebeb);
  box-shadow: none;
}

.official-resource-logo {
  background: #ffffff;
  border: 0;
}

.official-resource-card strong {
  font-family: 'Acumin', Arial, Helvetica, sans-serif;
  font-size: clamp(1.18rem, 1.55vw, 1.45rem);
  font-weight: 700;
  letter-spacing: 0;
}

.official-resource-link {
  display: inline-block;
  margin-top: .2rem;
  font-size: 11px;
  line-height: 1.25;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #111111;
  border-bottom: 1px solid #111111;
  padding-bottom: 4px;
  font-weight: 500;
}

@media (max-width: 980px) {
  .institutional-block h2,
  .official-resources h2 {
    font-size: clamp(2rem, 8vw, 3rem) !important;
  }
}



/* Ajustement final de fin de page : conserver la hauteur compacte de la v5. */
.home-contact {
  margin-top: 0 !important;
  padding: .45rem 1.25rem .25rem !important;
  background: #fff;
}

.home-contact-inner {
  width: min(1320px, calc(100% - 3rem));
  margin: 0 auto;
  padding: .72rem 0 .72rem !important;
  display: grid;
  grid-template-columns: minmax(360px, .92fr) minmax(520px, 1.08fr);
  gap: clamp(.8rem, 2vw, 1.6rem);
  align-items: center;
  border-top: 1px solid rgba(41, 36, 25, .12);
  border-bottom: 1px solid rgba(41, 36, 25, .10);
  background: transparent !important;
  box-shadow: none !important;
}

.home-contact h2 {
  margin: .08rem 0 .25rem !important;
  font-family: 'Oswald', Georgia, serif;
  font-size: clamp(1.55rem, 1.95vw, 2.05rem) !important;
  line-height: 1.05 !important;
  font-weight: 300 !important;
  letter-spacing: -.035em;
  color: #111;
}

.home-contact p {
  margin: 0 !important;
  font-size: clamp(.94rem, 1vw, 1.02rem);
  line-height: 1.38;
  color: #3f3e3a;
}

.home-contact-meta {
  display: none !important;
}

.home-contact-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .45rem .9rem;
}

.home-contact-links a {
  border: 0 !important;
  border-radius: 0 !important;
  border-bottom: 1px solid rgba(17, 17, 17, .28) !important;
  padding: .08rem 0 .14rem !important;
  background: transparent !important;
  font-size: clamp(.86rem, .94vw, .95rem);
  line-height: 1.3;
  color: #111;
  text-decoration: none;
}

.logo-band {
  margin-top: 0 !important;
  padding-top: .34rem !important;
  padding-bottom: .42rem !important;
  border-top: 0 !important;
}

.logo-band-inner {
  width: min(1320px, calc(100% - 3rem));
}

@media (max-width: 980px) {
  .home-contact-inner {
    width: calc(100% - 2rem);
    grid-template-columns: 1fr;
    gap: .7rem;
  }

  .home-contact-links {
    justify-content: flex-start;
  }
}



/* Ajustement manifeste : pas de vocabulaire visuel hérité de l’édito.
   Les sous-parties s’alignent sur le titre et le texte d’introduction. */
.climate-section,
.climate-risks {
  max-width: 920px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  border-left: 0 !important;
}

.climate-section h3,
.climate-risks h3 {
  margin-left: 0 !important;
}

.climate-text,
.climate-risks-content {
  margin-left: 0 !important;
}



/* Harmonisation bas de page : Pacte SAT 3 et adaptation climatique au même niveau visuel */
.institutional-block {
  width: min(1320px, calc(100% - 3rem)) !important;
  margin: 0 auto clamp(1.9rem, 3vw, 2.6rem) !important;
  padding: clamp(1.55rem, 2.8vw, 2.35rem) 0 clamp(1.8rem, 3vw, 2.6rem) !important;
  border: 0 !important;
  border-top: 1px solid rgba(41, 36, 25, .14) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.institutional-grid {
  grid-template-columns: minmax(320px, .9fr) minmax(560px, 1.15fr);
  gap: clamp(1.6rem, 4vw, 3.8rem);
  align-items: start;
}

.institutional-block .kicker,
.official-resources .kicker {
  margin: 0 0 .9rem;
}

.institutional-block h2,
.official-resources h2 {
  margin: 0 0 1.15rem !important;
}

.institutional-links {
  align-items: stretch;
}

.institutional-logo-btn {
  background: #ffffff !important;
  border: 1px solid var(--line, #ebebeb) !important;
  box-shadow: none !important;
}

.institutional-actions {
  justify-content: flex-start !important;
  align-items: center;
  gap: .95rem 1.35rem;
  margin-top: .15rem !important;
}

.institutional-actions .btn:not(.secondary) {
  display: inline-block !important;
  min-height: 0 !important;
  padding: 0 0 4px !important;
  border: 0 !important;
  border-bottom: 1px solid #111111 !important;
  background: transparent !important;
  color: #111111 !important;
  box-shadow: none !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}

.institutional-actions .btn:not(.secondary):hover,
.institutional-actions .btn:not(.secondary):focus-visible {
  background: transparent !important;
  color: #111111 !important;
}

.institutional-actions .btn.secondary {
  background: #ffffff !important;
  color: #111111 !important;
  border: 1px solid #111111 !important;
}

.official-resources {
  padding-top: 0 !important;
}

.official-resources-inner {
  width: min(1320px, calc(100% - 3rem)) !important;
  padding-top: clamp(1.55rem, 2.8vw, 2.35rem) !important;
}

@media (max-width: 980px) {
  .institutional-block {
    width: calc(100% - 2rem) !important;
  }

  .official-resources-inner {
    width: calc(100% - 2rem) !important;
  }
}



/* Carte de visite contact : bloc secondaire, aligné à droite. */
.home-contact {
  padding: .55rem 1.25rem .25rem !important;
}

.home-contact-inner {
  width: min(1320px, calc(100% - 3rem));
  margin: 0 auto;
  padding: .7rem 0 .55rem !important;
  display: flex !important;
  justify-content: flex-end;
  align-items: flex-start;
  border-top: 1px solid rgba(41, 36, 25, .10);
  border-bottom: 0 !important;
}

.home-contact-card {
  width: min(100%, 360px);
  padding: .9rem 1rem .85rem;
  border: 1px solid rgba(41, 36, 25, .12);
  background: #fff;
  box-shadow: 0 10px 28px rgba(41, 36, 25, .04);
}

.home-contact-card .kicker {
  margin-bottom: .42rem;
  font-size: .68rem;
  letter-spacing: .18em;
}

.home-contact-card h2 {
  margin: 0 0 .25rem !important;
  font-family: 'Oswald', Georgia, serif;
  font-size: clamp(1.18rem, 1.55vw, 1.45rem) !important;
  line-height: 1.08 !important;
  font-weight: 300 !important;
  letter-spacing: -.025em;
  color: #111;
}

.home-contact-card p {
  margin: 0 0 .65rem !important;
  max-width: 300px;
  font-size: .82rem !important;
  line-height: 1.38 !important;
  color: #4a4334;
}

.home-contact-card-links {
  display: grid;
  gap: .22rem;
  margin-top: .2rem;
}

.home-contact-card-links a {
  width: fit-content;
  color: #111;
  text-decoration: none;
  border-bottom: 1px solid rgba(17,17,17,.28);
  font-size: .82rem;
  line-height: 1.35;
}

.home-contact-socials {
  display: flex;
  gap: .45rem;
  margin-top: .7rem;
  align-items: center;
}

.home-contact-socials a {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(17,17,17,.20);
  color: #111;
  text-decoration: none;
  background: #fff;
}

.home-contact-socials a:hover,
.home-contact-socials a:focus-visible {
  border-color: rgba(17,17,17,.48);
}

.home-contact-socials svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

.home-contact-socials span {
  font-size: .62rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .04em;
}

.logo-band {
  padding-top: .28rem !important;
}

@media (max-width: 720px) {
  .home-contact-inner {
    width: calc(100% - 2rem);
    justify-content: stretch;
  }

  .home-contact-card {
    width: 100%;
  }
}


/* Ajustement demandé : alignement strict de la carte contact et redistribution des blancs.
   La carte se cale sur le même bord droit que PNACC et le dernier logo bailleur. */
.official-resources,
.home-contact,
.logo-band {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.official-resources-inner,
.home-contact-inner,
.logo-band-inner {
  width: min(1320px, calc(100% - 3rem)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.official-resources {
  padding-bottom: clamp(3.9rem, 5.2vw, 5.1rem) !important;
}

.home-contact {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
}

.home-contact-inner {
  justify-content: flex-end !important;
  padding-top: 0 !important;
  padding-bottom: .12rem !important;
  border-top: 0 !important;
}

.home-contact-card {
  margin-left: auto !important;
  margin-right: 0 !important;
}

.logo-band {
  margin-top: 0 !important;
  padding-top: .08rem !important;
}

@media (max-width: 980px) {
  .official-resources-inner,
  .home-contact-inner,
  .logo-band-inner {
    width: calc(100% - 2rem) !important;
  }
}



/* Contact discret : présence légère, carte repliable au clic. */
.home-contact.home-contact-discreet {
  padding: .35rem 0 .08rem !important;
  margin: 0 !important;
  background: #fff;
}

.home-contact.home-contact-discreet .home-contact-inner {
  width: min(1320px, calc(100% - 3rem)) !important;
  margin: 0 auto !important;
  padding: .45rem 0 .22rem !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.home-contact-line {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: .45rem;
  max-width: 100%;
  font-family: 'Acumin', Arial, Helvetica, sans-serif;
  font-size: .84rem;
  line-height: 1.35;
  color: #3f3e3a;
  text-align: left;
}

.home-contact-line strong {
  font-weight: 650;
  color: #111;
}

.home-contact-details {
  position: relative;
  display: inline-block;
}

.home-contact-details summary {
  list-style: none;
  cursor: pointer;
  display: inline-block;
  padding: 0 0 3px;
  border-bottom: 1px solid rgba(17, 17, 17, .45);
  color: #111;
  font-size: .78rem;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}

.home-contact-details summary::-webkit-details-marker {
  display: none;
}

.home-contact-details[open] summary {
  border-bottom-color: #111;
}

.home-contact-popover {
  position: absolute;
  left: 0;
  right: auto;
  bottom: calc(100% + .6rem);
  z-index: 20;
  width: min(330px, calc(100vw - 2rem));
  padding: .85rem .95rem .9rem;
  border: 1px solid rgba(41, 36, 25, .14);
  background: #fff;
  box-shadow: 0 14px 32px rgba(41, 36, 25, .08);
  text-align: left;
}

.home-contact-popover .kicker {
  margin: 0 0 .38rem;
  font-size: .64rem;
  letter-spacing: .18em;
}

.home-contact-popover h2 {
  margin: 0 0 .25rem !important;
  font-family: 'Oswald', Georgia, serif;
  font-size: clamp(1.08rem, 1.35vw, 1.28rem) !important;
  line-height: 1.08 !important;
  font-weight: 300 !important;
  letter-spacing: -.02em;
  color: #111;
}

.home-contact-popover p {
  margin: 0 0 .62rem !important;
  font-size: .8rem !important;
  line-height: 1.38 !important;
  color: #4a4334;
}

.home-contact-popover a {
  width: fit-content;
  display: block;
  margin-top: .18rem;
  color: #111;
  text-decoration: none;
  border-bottom: 1px solid rgba(17,17,17,.28);
  font-size: .8rem;
  line-height: 1.35;
}

.logo-band {
  margin-top: 0 !important;
  padding-top: .18rem !important;
}

@media (max-width: 720px) {
  .home-contact.home-contact-discreet .home-contact-inner {
    width: calc(100% - 2rem) !important;
    justify-content: flex-start !important;
  }

  .home-contact-line {
    display: block;
    text-align: left;
  }

  .home-contact-details {
    display: block;
    margin-top: .25rem;
  }

  .home-contact-popover {
    left: 0;
    right: auto;
    bottom: calc(100% + .5rem);
  }
}
