/* Présentation de l'association — styles limités à cette page. */
.pc-association-section {
  --presentation-ink: #30253c;
  --presentation-muted: #685f72;
  --presentation-violet: #6652b8;
  --presentation-deep: #4d3a96;
  --presentation-lilac: #f2efff;
  --presentation-radius: 28px;
}

.pc-association-section .association-environment {
  overflow: clip;
  color: var(--presentation-ink);
}

/* Cette page de premier niveau possède déjà un fil d’Ariane : le retour injecté
   automatiquement ferait doublon et créerait une bande de couleur inutile. */
.pc-association-section .association-environment > .pc-page-back-row,
.pc-association-section .association-environment > .page-back-row {
  display: none !important;
}

.pc-association-section .association-presentation-hero {
  min-height: 0;
  padding: clamp(34px, 4vw, 54px) 0 clamp(48px, 5vw, 68px) !important;
  background: #5b4699 !important;
}

body.pc-association-section .association-environment .association-presentation-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  grid-template-areas:
    'breadcrumb'
    'copy' !important;
  align-items: start !important;
  row-gap: clamp(24px, 3vw, 38px) !important;
}

.pc-association-section .association-presentation-hero .pc-site-breadcrumb {
  grid-area: breadcrumb;
  align-self: start;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.76) !important;
}

.pc-association-section .association-presentation-hero .pc-site-breadcrumb [aria-current='page'] {
  color: #fff !important;
}

.pc-association-section .association-presentation-hero-copy {
  grid-area: copy;
  position: relative;
  z-index: 2;
  max-width: 1050px;
}

.pc-association-section .association-presentation-hero .eyebrow {
  margin: 0 auto 18px !important;
  color: #e4dcff !important;
  font-size: 0.8rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pc-association-section .association-presentation-hero h1 {
  max-width: 880px !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(3rem, 5.4vw, 5.6rem) !important;
  font-weight: 880 !important;
  letter-spacing: -0.055em !important;
  line-height: 0.98 !important;
  text-wrap: balance;
}

.pc-association-section .association-presentation-lead {
  max-width: 760px !important;
  margin: 28px 0 0 !important;
  color: rgba(255, 255, 255, 0.88) !important;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem) !important;
  line-height: 1.65 !important;
}

.pc-association-section .association-presentation-hero-visual {
  grid-area: visual;
  display: grid;
  place-items: center;
  min-width: 0;
}

.pc-association-section .association-presentation-hero-visual img {
  width: min(28vw, 390px);
  height: auto;
  filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.55)) drop-shadow(0 24px 20px rgba(27, 18, 58, 0.3));
}

.pc-association-section .association-sky-content {
  padding: clamp(60px, 7vw, 94px) 0 !important;
  background: #f5f2fc !important;
}

.pc-association-section .association-presentation-rubric {
  background: #f5f2fc !important;
}

.pc-association-section .association-intro-grid {
  gap: 18px !important;
}

.pc-association-section .association-intro-grid .card {
  position: relative;
  min-height: 280px;
  padding: 30px !important;
  overflow: hidden;
  border: 1px solid rgba(91, 70, 153, 0.12) !important;
  border-radius: var(--presentation-radius) !important;
  background: #fff !important;
  box-shadow: 0 4px 14px rgba(55, 40, 82, 0.045) !important;
}

.pc-association-section .association-card-number {
  margin: 0 0 24px !important;
  color: var(--presentation-violet) !important;
  font-size: clamp(1.35rem, 2vw, 1.75rem) !important;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
}

.pc-association-section .association-intro-grid h2 {
  margin: 0 0 14px !important;
  font-size: clamp(1.4rem, 2vw, 1.85rem) !important;
  letter-spacing: -0.025em;
}

.pc-association-section .association-intro-grid p:not(.association-card-number) {
  color: var(--presentation-muted);
  line-height: 1.65;
}

.pc-association-section .association-discover-section,
.pc-association-section .association-pond-content {
  padding: clamp(58px, 7vw, 88px) 0 !important;
}

.pc-association-section .association-discover-section {
  background: #f5f2fc !important;
}

.pc-association-section .association-pond-content {
  background: #f5f2fc !important;
}

.pc-association-section .association-discover-section > .container,
.pc-association-section .association-pond-content > .container {
  padding: clamp(24px, 3vw, 38px) !important;
  border: 1px solid rgba(91, 70, 153, 0.1) !important;
  border-radius: var(--presentation-radius) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 4px 14px rgba(55, 40, 82, 0.045) !important;
}

.pc-association-section .association-discover-section .section-head,
.pc-association-section .association-pond-content .section-head {
  margin-bottom: 28px !important;
}

.pc-association-section .association-discover-section .section-head h2,
.pc-association-section .association-pond-content .section-head h2 {
  margin: 0 0 8px !important;
  font-size: var(--pc-public-section-title) !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
}

.pc-association-section .association-page-links {
  gap: 16px !important;
}

.pc-association-section .association-page-links > a {
  min-height: 190px !important;
  padding: 24px !important;
  border: 1px solid rgba(91, 70, 153, 0.13) !important;
  border-radius: 22px !important;
  background: linear-gradient(145deg, #fff, #faf9ff) !important;
  box-shadow: 0 3px 10px rgba(55, 40, 82, 0.04) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pc-association-section .association-page-links > a:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(55, 40, 82, 0.08) !important;
}

body.pc-association-section .association-environment .association-page-links > a > span,
.pc-association-section .association-function-icon {
  display: grid !important;
  place-items: center;
  width: 52px;
  height: 52px;
  min-width: 52px !important;
  max-width: 52px !important;
  margin: 0 auto 18px !important;
  border-radius: 17px;
  background: var(--presentation-lilac);
  font-size: 1.5rem !important;
}

.pc-association-section .association-page-links strong {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 1.05rem;
}

.pc-association-section .association-function-card h3 {
  width: 100%;
  text-align: center;
}

.pc-association-section .association-page-links small {
  margin-top: 8px;
  color: var(--presentation-muted);
  line-height: 1.5;
}

.pc-association-section .association-function-grid {
  gap: 18px !important;
}

.pc-association-section .association-function-card {
  display: flex !important;
  flex-direction: column;
  min-height: 340px !important;
  padding: 28px !important;
  border: 1px solid rgba(91, 70, 153, 0.13) !important;
  border-radius: 22px !important;
  box-shadow: 0 3px 10px rgba(55, 40, 82, 0.04) !important;
}

.pc-association-section .association-function-card p {
  color: var(--presentation-muted);
  line-height: 1.6;
}

.pc-association-section .association-function-card > a {
  align-self: flex-start;
  margin-top: auto;
  color: var(--presentation-deep);
  font-weight: 780;
  text-underline-offset: 4px;
}

@media (max-width: 1000px) {
  body.pc-association-section .association-environment .association-presentation-hero-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto 1fr !important;
    grid-template-areas: 'breadcrumb' 'copy' !important;
  }
  .pc-association-section .association-presentation-hero-copy { max-width: 780px; }
  .pc-association-section .association-presentation-hero-visual { display: none; }
}

@media (max-width: 640px) {
  .pc-association-section .association-presentation-hero { min-height: 0; padding-block: 58px 70px !important; }
  .pc-association-section .association-presentation-hero h1 { font-size: clamp(2.6rem, 13vw, 3.7rem) !important; }
  .pc-association-section .association-intro-grid .card { min-height: 0; padding: 24px !important; }
}

/* Typographie commune Accueil / Présentation */
.pc-association-section .association-environment {
  font-family: Nunito, system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 1rem;
}

.pc-association-section .association-presentation-hero h1,
.pc-association-section .association-presentation-rubric .section-head h2,
.pc-association-section .association-presentation-rubric .supporters-head h2,
.pc-association-section .association-contact-card h2 {
  font-family: var(--font-voice, Georgia, 'Times New Roman', serif) !important;
}

.pc-association-section .association-presentation-hero h1 {
  font-size: clamp(2.8rem, 3.85vw, 4rem) !important;
}

.pc-association-section .association-presentation-rubric .section-head h2,
.pc-association-section .association-presentation-rubric .supporters-head h2,
.pc-association-section .association-contact-card h2 {
  font-size: var(--pc-public-section-title) !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
}

.pc-association-section .association-presentation-lead {
  font-size: clamp(1rem, 1.35vw, 1.2rem) !important;
}

.pc-association-section .association-intro-grid h2 {
  font-family: Nunito, system-ui, -apple-system, 'Segoe UI', sans-serif !important;
  font-size: clamp(1.35rem, 1.8vw, 1.6rem) !important;
  line-height: 1.25 !important;
}

.pc-association-section .association-page-links strong,
.pc-association-section .association-function-card h3 {
  font-family: Nunito, system-ui, -apple-system, 'Segoe UI', sans-serif !important;
  font-size: 1.125rem !important;
  line-height: 1.3 !important;
}

.pc-association-section .association-intro-grid p:not(.association-card-number),
.pc-association-section .association-function-card p {
  font-size: 1rem !important;
}

.pc-association-section .association-page-links small {
  font-size: 0.9rem !important;
}

/* Ombres contenues : les rubriques rapprochées ne se recouvrent plus. */
.pc-association-section .association-presentation-rubric > .container,
.pc-association-section .association-discover-section > .container,
.pc-association-section .association-pond-content > .container {
  box-shadow: none !important;
}

.pc-association-section .association-intro-grid .card,
.pc-association-section .association-page-links > a,
.pc-association-section .association-function-card,
.pc-association-section .association-team-grid > *,
.pc-association-section .supporters-list > * {
  box-shadow: 0 2px 6px rgba(55, 40, 82, 0.035) !important;
}

.pc-association-section .association-page-links > a:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(55, 40, 82, 0.065) !important;
}
