/* Portrait, ressources et pages personnelles : prolongement de la direction violette. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.theme-violet :focus-visible { outline-color: #edcbff; }
.theme-violet [id] { scroll-margin-top: 125px; }
.is-home .section--cta { padding-top: 65px; }
.contact-direct { max-width: 1000px; margin-inline: auto; }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; margin: 0; }
.contact-details > div { padding: 12px 0 30px; border-bottom: 1px solid #d1b18466; }
.contact-details dt { color: #d3b58c; font-size: 11px; text-transform: uppercase; letter-spacing: .16em; margin-bottom: 20px; }
.contact-details dd { margin: 0; }
.contact-details a { color: #f5e8ff; font-size: clamp(23px, 3vw, 38px); letter-spacing: -.04em; text-decoration: none; overflow-wrap: anywhere; }
.contact-details a:hover { color: #dfb0f6; }

.is-home .hero__identity-row { display: flex; align-items: center; gap: 35px; margin-bottom: 18px; }
.is-home .hero__identity-row .hero__logo { flex: 0 0 auto; width: 190px; height: 190px; margin: 0 0 0 14px; }
.hero__portrait { width: 210px; max-width: 47%; position: relative; align-self: end; background: radial-gradient(ellipse at 50% 48%, #945c9f42, transparent 72%); }
.hero__portrait img { display: block; width: 100%; height: auto; filter: drop-shadow(0 12px 18px #0d061e55); -webkit-mask-image: linear-gradient(#000 86%, transparent); mask-image: linear-gradient(#000 86%, transparent); }
.is-home .hero__grid { min-height: 650px; }
.is-home .coherence-intro { padding-block: 76px; }
.is-home .coherence-intro__inner { grid-template-columns: .8fr 1.2fr; align-items: start; gap: 90px; }
.is-home .coherence-intro__copy { font-size: 16px; }
.coherence-intro__text p + p { margin-top: 1.25em; }
.coherence-intro__text a { color: #f1d1ff; text-decoration: underline; text-underline-offset: 4px; }
.resource-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin-top: 30px; }
.resource-link { display: flex; flex-direction: column; gap: 13px; padding: 23px; border: 1px solid #d6a8eb40; border-radius: 12px; background: linear-gradient(135deg,#d8b0ff10,#ffffff03); text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
.resource-link:hover { border-color: #dfbafa99; background-color: #cf92e20c; transform: translateY(-3px); }
.resource-link__type { color: #d8b78c; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.resource-link strong { color: #fbf1ff; font-size: 16px; font-weight: 500; line-height: 1.5; }
.resource-link__action { display: flex; gap: 10px; justify-content: space-between; margin-top: auto; color: #e8c8f9; font-size: 11px; padding-top: 5px; }

/* Un fond architectural discret, et une lumière continue entre les trois pages. */
.theme-violet:not(.is-home) { background: #1b1025; }
.theme-violet:not(.is-home) .page-hero { position: relative; isolation: isolate; padding: 154px 0 62px; overflow: hidden; border-bottom: 1px solid #ce9ee32b; background: radial-gradient(ellipse at 85% 10%,#9a589045,transparent 55%), linear-gradient(120deg,#20122c,#38213f); }
.theme-violet:not(.is-home) .page-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .65; background: linear-gradient(125deg,transparent 35%,#ffffff05 44%,#00000035 45%,transparent 50%,transparent 65%,#a470b610 70%,transparent 80%); }
.theme-violet:not(.is-home) .page-hero::after { content: ''; position: absolute; right: 9%; top: 120px; width: 90px; height: 360px; z-index: -1; opacity: .3; clip-path: polygon(50% 0,76% 19%,100% 100%,0 100%,24% 19%); background: linear-gradient(90deg,#150b23 50%,#cf9bdd80 50%); }
.theme-violet:not(.is-home) .page-hero h1 { color: #fcf6ff; font: 400 clamp(42px,5.7vw,76px)/1.1 var(--font-body); letter-spacing: -.055em; margin-bottom: 20px; }
.theme-violet:not(.is-home) .page-hero__lead { color: #decae8; font-size: 18px; }
.theme-violet:not(.is-home) .page-hero .eyebrow { color: #d5b68e; font-size: 11px; }
.theme-violet:not(.is-home) .section { padding-block: 70px 100px; }
.theme-violet:not(.is-home) .prose--wide { max-width: 1150px; }
.theme-violet:not(.is-home) .prose { font-size: 15px; line-height: 1.85; }
.theme-violet:not(.is-home) .prose h2 { color: #f4e4fc; font: 400 clamp(28px,3.1vw,42px)/1.2 var(--font-body); letter-spacing: -.04em; margin: 0 0 26px; }
.theme-violet:not(.is-home) .prose h3 { color: #efdcf7; font: 400 24px/1.3 var(--font-body); margin: 38px 0 20px; }
.theme-violet:not(.is-home) .prose .chapter-period { color: #d3b58c; font-size: 10px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 17px; }
.theme-violet:not(.is-home) .prose a.btn { text-decoration: none; }
.theme-violet:not(.is-home) .prose .editorial-photo { margin: 0; min-width: 0; }
.editorial-photo > a { display: block; border-radius: 10px; overflow: hidden; background: #261631; box-shadow: 0 18px 45px #09050f40; border: 1px solid #c29acf30; cursor: zoom-in; }
.theme-violet:not(.is-home) .prose .editorial-photo img { display: block; width: 100%; height: auto; margin: 0; border-radius: 0; transition: filter .3s; }
.editorial-photo > a:hover img { filter: brightness(1.07); }
.theme-violet:not(.is-home) .prose .editorial-photo figcaption { color: #bca7c8; text-align: left; font-size: 11px; line-height: 1.6; margin-top: 13px; }
.journey-chapter { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 76px; align-items: start; padding-block: 0 65px; margin-bottom: 65px; border-bottom: 1px solid #d0a1e32b; }
.journey-chapter--reverse { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
.journey-chapter--reverse .journey-chapter__copy { order: 2; }
.journey-chapter--reverse .journey-chapter__photos { order: 1; }
.journey-chapter:not(:has(.journey-chapter__photos)) { grid-template-columns: minmax(0, 1fr); }
.journey-chapter:not(:has(.journey-chapter__photos)) .journey-chapter__copy { max-width: 850px; margin-inline: auto; }
.journey-chapter__photos { display: grid; gap: 28px; padding-top: 10px; }
.journey-chapter__photos .editorial-photo:has(img[src$="moiair.jpg"]), .journey-chapter__photos .editorial-photo:has(img[src$="confrepas.jpg"]) { width: 78%; margin-inline: auto !important; }
.editorial-end { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 34px 38px; background: linear-gradient(110deg,#3c264b,#30203b); border: 1px solid #c39bd22e; border-radius: 14px; }
.editorial-end p { margin: 0; max-width: 430px; }
.editorial-end .btn { flex-shrink: 0; font-size: 12px; }

.cv-overview { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 76px; align-items: center; margin-bottom: 75px; }
.cv-portrait { transform: rotate(-1deg); }
.cv-overview__copy > p { color: #c6b2d0; }
.cv-honours { margin-block: 30px; padding: 23px 26px; border-left: 2px solid #c9aa7d; background: linear-gradient(110deg,#d2a36710,transparent); }
.cv-honours .eyebrow { font-size: 10px; color: #d4b78f; }
.cv-honours p { margin: 0 0 8px; }
.cv-honours p:last-child { margin-bottom: 0; }
.cv-index { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; }
.theme-violet .cv-index a { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 12px; padding: 10px 0; border-bottom: 1px solid #c49cd232; color: #eacdf9; text-decoration: none; }
.cv-index a:hover { border-color: #dbb8ec; }
.cv-section { margin-top: 70px; padding-top: 65px; border-top: 1px solid #c39bd22e; }
.theme-violet .prose .cv-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 60px; padding: 0; list-style: none; margin: 0; }
.cv-list li { position: relative; margin: 0 !important; padding: 22px 0 22px 23px; border-bottom: 1px solid #d0a1e31b; }
.cv-list li::before { content: ''; position: absolute; left: 0; top: 32px; width: 5px; height: 5px; background: #c8a36f; transform: rotate(45deg); }
.cv-section__heading { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; margin-bottom: 26px; }
.cv-section__heading h2 { margin-bottom: 0 !important; }
.cv-section__heading > p { margin: 0; max-width: 470px; }
.cv-press { width: 100%; }
.archive-original { display: inline-block; margin-top: 18px; font-size: 12px !important; }
.cv-egypt { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: center; margin-bottom: 65px; }
.theme-violet .site-footer p, .theme-violet .site-footer a { color: #c6b1d0; }

@media (min-width: 800px) {
  .theme-violet .site-nav { align-items: center; }
  .is-home .site-header:not(.brand-revealed) .site-nav { top: 50%; right: auto; bottom: auto; left: 50%; width: max-content; transform: translate(-50%, -50%); }
}
@media (max-width: 1100px) and (min-width: 800px) {
  .is-home .hero__identity-row { gap: 15px; }
  .is-home .hero__identity-row .hero__logo { width: 140px; height: 140px; margin-left: 0; }
  .hero__portrait { width: 160px; }
  .is-home .hero__grid { min-height: 600px; }
  .is-home .coherence-intro__inner { gap: 40px; }
  .resource-links { grid-template-columns: 1fr; }
  .theme-violet .site-nav { gap: 17px; }
  .theme-violet .site-nav a { font-size: 12px; }
  .theme-violet .site-brand > span { font-size: 17px; }
  .theme-violet .header-contact { font-size: 12px; padding: 8px 16px; gap: 14px; }
  .journey-chapter, .cv-overview, .cv-egypt { gap: 35px; }
  .cv-index { grid-template-columns: 1fr; }
  .cv-section__heading { gap: 35px; }
  .theme-violet .prose .cv-list { gap: 0 30px; }
}
@media (max-width: 799px) {
  .is-home .section--cta { padding-top: 42px; }
  .contact-details { grid-template-columns: 1fr; gap: 28px; }
  .contact-details a { font-size: 28px; }
  .theme-violet .site-header { height: 76px; }
  .theme-violet .site-nav { gap: 4px; background: #261731fa; border-color: #cc99ec30; }
  .theme-violet .site-nav a { color: #f1e3fa; font-size: 15px; }
  .theme-violet .site-nav a.is-active { background: #79548a40; }
  .theme-violet .site-brand > span { font-size: 19px; }
  .is-home .hero__identity-row { gap: 20px; justify-content: space-between; margin-bottom: 16px; }
  .is-home .hero__identity-row .hero__logo { width: 145px; height: 145px; margin-left: 0; }
  .hero__portrait { width: 160px; }
  .is-home .hero__grid { min-height: 0; }
  .is-home .coherence-intro { padding-block: 45px; }
  .is-home .coherence-intro__inner { grid-template-columns: 1fr; gap: 28px; }
  .is-home .coherence-intro__copy { font-size: 15px; }
  .resource-links { grid-template-columns: 1fr; gap: 12px; }
  .resource-link { padding: 21px; gap: 9px; }
  .theme-violet:not(.is-home) .page-hero { padding: 124px 0 42px; }
  .theme-violet:not(.is-home) .page-hero::after { top: 104px; }
  .theme-violet:not(.is-home) .page-hero h1 { font-size: clamp(36px,8vw,56px); }
  .theme-violet:not(.is-home) .page-hero__lead { font-size: 15px; }
  .theme-violet:not(.is-home) .section { padding-block: 42px 65px; }
  .journey-chapter, .journey-chapter--reverse { grid-template-columns: 1fr; gap: 28px; padding-bottom: 42px; margin-bottom: 42px; }
  .journey-chapter--reverse .journey-chapter__copy, .journey-chapter--reverse .journey-chapter__photos { order: initial; }
  .journey-chapter__photos { padding-top: 0; gap: 25px; }
  .theme-violet:not(.is-home) .prose h2 { font-size: 30px; margin-bottom: 22px; }
  .theme-violet:not(.is-home) .prose { font-size: 14px; line-height: 1.85; }
  .cv-overview, .cv-section__heading, .cv-egypt { grid-template-columns: 1fr; gap: 30px; }
  .cv-overview { margin-bottom: 42px; }
  .cv-portrait { max-width: 420px; width: 100%; margin-inline: auto !important; }
  .cv-index { grid-template-columns: 1fr; }
  .cv-section { padding-top: 42px; margin-top: 42px; }
  .theme-violet .prose .cv-list { grid-template-columns: 1fr; }
  .cv-egypt { margin-bottom: 42px; }
  .editorial-end { flex-direction: column; align-items: start; padding: 28px 24px; gap: 23px; }
  .editorial-end .btn { white-space: normal; font-size: 11px; padding-inline: 18px; }
}
@media (max-width: 380px) {
  .is-home .hero__identity-row .hero__logo { width: 130px; height: 130px; }
  .hero__portrait { width: 144px; }
}
@media (prefers-reduced-motion: reduce) {
  .resource-link, .editorial-photo img { transition: none; }
  .resource-link:hover { transform: none; }
}
