/*
Theme Name: Lovejoyce Refonte
Description: Thème WordPress de la proposition photographique retenue : écrits, médias et engagements.
Version: 1.1.23
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: lovejoyce-refonte
License: GPL-2.0-or-later
*/
.wp-editorial{max-width:1050px;margin:auto;padding:50px 6%;font:400 17px/1.8 'DM Sans',sans-serif;color:#173451}.wp-editorial h1{font:600 clamp(36px,5vw,66px)/1.1 Manrope,sans-serif}.wp-editorial h2{font-family:Manrope,sans-serif}.wp-editorial img{max-width:100%;height:auto}.wp-editorial a{text-decoration:underline;text-underline-offset:4px}.wp-site-nav{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:25px 6%;background:#173451;color:#fff;font:600 16px Manrope,sans-serif}.wp-site-nav a{color:inherit}.wp-site-footer{padding:30px 6%;background:#e9f2fa;font:400 13px 'DM Sans',sans-serif}.wp-post-card{padding:25px 0;border-bottom:1px solid #cfdfed}.wp-post-card h2{font-size:30px}.wp-editorial .wp-block-image{margin-inline:0}.admin-bar .modern-body .chapter-nav{top:32px}@media(max-width:782px){.admin-bar .modern-body .chapter-nav{top:46px}}

.modern-body .start-here {
    padding-block: clamp(2.5rem, 6vw, 5rem);
    background: #edf5fc;
    color: #173451;
    scroll-margin-top: 5rem;
}
.modern-body .start-here h2 {
    margin: .45rem 0 1.35rem;
    font: 650 clamp(1.65rem, 3.4vw, 3rem)/1.16 Manrope, sans-serif;
    letter-spacing: -.035em;
}
.modern-body .start-here-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.modern-body .start-here-links a {
    display: grid;
    gap: .35rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid #cfdfed;
    border-radius: .5rem;
    background: #fcfdff;
    color: inherit;
}
.modern-body .start-here-links a:hover,
.modern-body .start-here-links a:focus-visible {
    background: #dcecf9;
}
.modern-body .start-here-links a:focus-visible {
    outline: 3px solid #164169;
    outline-offset: 2px;
}
.modern-body .start-here-links span {
    color: #3d536b;
    font-size: .9rem;
    line-height: 1.5;
}

/* Catalogue des livres */
.modern-body .book-shelf {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.modern-body .shelf-book {
    display: grid;
    grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    gap: .55rem 1.15rem;
    align-items: start;
    padding: 1rem;
    min-width: 0;
    border: 1px solid #ccd5dd;
    border-radius: .7rem;
    background: #fcfdff;
}
.modern-body .shelf-book:first-child {
    grid-row: span 2;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto 1fr;
}
.modern-body .shelf-book .shelf-cover {
    grid-row: span 4;
    height: 100%;
    min-height: 14rem;
    padding: .25rem;
    box-sizing: border-box;
}
.modern-body .shelf-book:first-child .shelf-cover {
    grid-row: auto;
    height: clamp(20rem, 32vw, 30rem);
    padding: .5rem;
}
.modern-body .shelf-book .shelf-cover > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.modern-body .shelf-book:hover .shelf-cover > img {
    transform: translateY(-3px);
}
.modern-body .shelf-book:not(:first-child) .cover-index,
.modern-body .shelf-book:not(:first-child) .round-arrow {
    display: none;
}
.modern-body .shelf-book .shelf-meta {
    justify-content: flex-start;
    flex-wrap: wrap;
    margin: .35rem 0 0;
    font-size: .69rem;
    color: #465766;
}
.modern-body .shelf-book h3 {
    margin: 0;
    font-size: clamp(1.2rem, 2.2vw, 1.85rem);
    line-height: 1.18;
    letter-spacing: -.025em;
}
.modern-body .shelf-book > p {
    margin: 0;
    color: #3e4e5c;
    font-size: .92rem;
}
.modern-body .shelf-book:focus-visible {
    outline: 3px solid #164169;
    outline-offset: 4px;
}
@media (max-width: 760px) {
    .modern-body .book-shelf {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;
    }
    .modern-body .shelf-book,
    .modern-body .shelf-book:first-child {
        grid-row: auto;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto auto auto;
        gap: .45rem .8rem;
        padding: .7rem;
    }
    .modern-body .shelf-book .shelf-cover,
    .modern-body .shelf-book:first-child .shelf-cover {
        grid-row: auto;
        height: clamp(15rem, 74vw, 21rem);
        padding: .35rem;
    }
    .modern-body .shelf-book:first-child .cover-index,
    .modern-body .shelf-book:first-child .round-arrow {
        display: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .modern-body .shelf-book .shelf-cover > img {
        transition: none;
    }
    .modern-body .shelf-book:hover .shelf-cover > img {
        transform: none;
    }
}

.modern-body .experience-cover-zoom {
    display: table;
    margin: .5rem 0 1rem;
    color: #143350;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em;
}

.modern-body .dialogue-feature {
    display: grid;
    grid-template-columns: 3fr 2fr;
    align-items: center;
    margin: 0 0 clamp(2rem, 5vw, 4rem);
    border-radius: 8px;
    overflow: hidden;
    background: #173451;
    color: #edf2f6;
}
.modern-body .dialogue-feature img {
    display: block;
    width: 100%;
    height: auto;
}
.modern-body .dialogue-feature figcaption {
    padding: clamp(1.35rem, 4vw, 3.5rem);
}
.modern-body .dialogue-feature p {
    max-width: 27ch;
    margin: 0;
    font-size: clamp(.875rem, 1.4vw, 1rem);
    line-height: 1.65;
}
.modern-body .bio-photo {
    height: auto;
    aspect-ratio: 1 / 1.05;
}
.modern-body .bio-photo > img {
    position: absolute;
    inset: 0;
    object-position: 50% 65%;
}
@media (max-width: 640px) {
    .modern-body .dialogue-feature {
        grid-template-columns: 1fr;
    }
    .modern-body .bio-photo {
        aspect-ratio: 4 / 5;
    }
}

.modern-body .tile-tribune {
    background: #e5effa;
    color: #173451;
}
.modern-body .tile-tribune .tile-main {
    padding: clamp(1.5rem, 4vw, 3.25rem);
}
.modern-body .tile-tribune .tile-main h3 {
    max-width: 15ch;
    margin-top: clamp(1.5rem, 5vw, 4rem);
    font-size: clamp(2rem, 4.6vw, 4.4rem);
    line-height: 1.06;
    letter-spacing: -.055em;
}
.modern-body .tile-tribune .tile-main > p {
    font-size: clamp(.875rem, 1.5vw, 1rem);
}
@media (min-width: 641px) {
    .modern-body .discovery-grid[data-count="7"] .content-tile:nth-child(n+4) {
        grid-column: span 6;
    }
    .modern-body .discovery-grid:is([data-count="3"], [data-count="7"]) .tile-balado h3 {
        margin-top: 1.25rem;
        font-size: clamp(1.65rem, 3.7vw, 3.5rem);
    }
}

.modern-body .book-bottom-line > a {
    font-size: .9rem;
    line-height: 1.5;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.modern-body .practical-experience > div:first-child > p {
    margin-top: 1rem;
    max-width: 32ch;
    line-height: 1.65;
}
.modern-body .year-tabs {
    flex-direction: column;
    gap: 0;
}
.modern-body .year-tabs > button {
    display: grid;
    grid-template-columns: 4ch 1fr;
    align-items: baseline;
    gap: 1rem;
    padding: .7rem 0;
    text-align: left;
    color: #37495a;
    line-height: 1.5;
}
.modern-body .year-tabs > button[aria-selected=true] {
    font-weight: 700;
}
.modern-body .year-tabs > button[aria-selected=true]:after {
    right: auto;
    width: 4ch;
}
.modern-body .connect-note a {
    text-decoration: underline;
    text-underline-offset: .2em;
}

.hero-floor {
    justify-content: flex-end;
}
.modern-body .start-here-intro > p {
    margin: -0.6rem 0 1.35rem;
    line-height: 1.6;
}

.hero .intro {
    max-width: min(28rem, 36vw);
}
.hero .header-contact {
    padding: .65rem .9rem;
    border: 1px solid #bccddc83;
    border-radius: 4px;
    background: #102b46e8;
    color: var(--paper);
}
.portrait-switcher > span {
    font-size: .75rem;
    letter-spacing: .02em;
}
.portrait-switcher > button:focus-visible {
    outline: 2px solid var(--light-blue);
    outline-offset: 3px;
}
.modern-body .start-here-links a {
    display: grid;
    grid-template-rows: auto auto 1fr;
    align-content: start;
    border-bottom: 2px solid #9dafc0;
}
.modern-body .start-here-icon {
    width: 1.45rem;
    height: 1.45rem;
    margin-bottom: .65rem;
    color: #20476b;
}
.modern-body .tile-tribune .tile-main {
    --tribune-photo-height: clamp(11rem, 29vw, 14rem);
    padding-top: calc(var(--tribune-photo-height) + 1rem);
}
.modern-body .tile-tribune .tile-main::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: var(--tribune-photo-height);
    background: url('assets/portrait-cravate-rouge.webp') center 22% / cover no-repeat;
    pointer-events: none;
}
.modern-body .tile-tribune .tile-save {
    background: #edf2f6;
    opacity: 1;
}
.modern-body .tile-tribune .tile-main h3 {
    margin-top: 1rem;
}
@media (min-width: 950px) {
    .modern-body .tile-tribune .tile-main {
        padding-top: clamp(1.5rem, 4vw, 3.25rem);
        padding-right: 45%;
    }
    .modern-body .tile-tribune .tile-main::before {
        inset: 0 0 0 56%;
        height: auto;
        background-position: 50% 25%;
    }
    .modern-body .tile-tribune .tile-main h3 {
        margin-top: clamp(1.75rem, 4vw, 3.5rem);
        font-size: clamp(2rem, 3.45vw, 3.65rem);
        max-width: none;
    }
}
@media (max-width: 640px) {
    .hero .intro {
        max-width: 28rem;
    }
    .portrait-switcher > button {
        width: 44px;
        height: 52px;
    }
}

.modern-body .mention-line {
    background: #e6f0fa;
}
.modern-body .mention-line > span,
.modern-body .modern-heading > p,
.modern-body .start-here-intro > p {
    color: #415971;
}
.modern-body .tile-tribune .tile-meta,
.modern-body .tile-tribune .tile-footer {
    color: #88364a;
}
.modern-body .tile-tribune .tile-meta,
.modern-body .tile-tribune .tile-main > p {
    opacity: 1;
}
.modern-body .tile-tribune .tile-main > p {
    color: #425870;
}
.modern-body .tile-tribune .tile-footer {
    font-weight: 700;
}
.modern-body .tile-tribune .tile-save {
    background: #fcfdff;
}
.modern-body .tile-tribune .tile-save[aria-pressed="true"] {
    background: #dbe4ed;
}

.modern-body .list-disclosure,
.modern-body .section-disclosure > summary {
    width: fit-content;
    min-height: 44px;
    padding: .65rem 1rem;
    border: 1px solid #a8b7c4;
    border-radius: .5rem;
    background: #fcfdff;
    color: #173451;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1.5;
    cursor: pointer;
}
.modern-body .list-disclosure {
    margin-top: 1rem;
}
.modern-body .list-disclosure:not([hidden]),
.modern-body .section-disclosure > summary {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.modern-body .list-disclosure::after,
.modern-body .section-disclosure > summary::after {
    content: '';
    width: .45rem;
    height: .45rem;
    border: solid currentColor;
    border-width: 0 1.5px 1.5px 0;
    transform: translateY(-.15rem) rotate(45deg);
}
.modern-body .list-disclosure[aria-expanded="true"]::after,
.modern-body .section-disclosure[open] > summary::after {
    transform: translateY(.12rem) rotate(225deg);
}
.modern-body .list-disclosure:hover,
.modern-body .section-disclosure > summary:hover {
    background: #dcecf9;
}
.modern-body .section-disclosure > summary::-webkit-details-marker {
    display: none;
}
.modern-body .section-disclosure[open] > summary {
    margin-bottom: 1.5rem;
}

@media (min-width: 641px) {
    .hero-shade {
        background-image:
            linear-gradient(180deg, #102b46ba, transparent 23%),
            linear-gradient(90deg, #102b46 0%, #102b46 31%, #102b46d9 42%, #102b4633 64%, transparent 85%),
            linear-gradient(0deg, #102b46cc 0%, transparent 30%);
    }
}
.hero-photo img[data-variant="accueil"] {
    object-position: 50% 14%;
}
.hero-photo img[data-variant="bordeaux"] {
    object-position: 49% 21%;
}
.hero-photo img[data-variant="assis"] {
    object-position: 50% 27%;
}

.modern-body .theme-module,
.modern-body .faq-module {
    scroll-margin-top: 5rem;
}
.modern-body .theme-module {
    margin-top: 1.5rem;
    padding-top: 1.15rem;
    border-top: 1px solid #ccd4dc;
}
.modern-body .module-intro {
    margin-bottom: 1rem;
    color: #415971;
    line-height: 1.65;
}
.modern-body .theme-module .topic-layout {
    gap: clamp(1rem, 4vw, 3rem);
}
.modern-body .faq-module {
    padding: clamp(1.2rem, 3vw, 2rem) 5%;
    background: #edf5fc;
    border-top: 1px solid #cfdfed;
}
.modern-body .faq-module .practical-experience {
    padding: clamp(1rem, 3vw, 2rem);
    border-radius: .65rem;
}
.modern-body .faq-module .practical-experience > div:first-child > p {
    margin-top: 0;
}

.modern-body .media-module {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: start;
    gap: clamp(1rem, 4vw, 3rem);
}
.modern-body .media-portrait {
    margin: 0;
    border-radius: .75rem;
    overflow: hidden;
    background: #173451;
    color: #edf2f6;
}
.modern-body .media-portrait img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
}
.modern-body .media-portrait figcaption {
    padding: .65rem 1rem;
    font-size: .8rem;
    line-height: 1.5;
}
.modern-body .media-module .media-toolbar {
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1rem;
}
.modern-body .media-module .media-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
}
.modern-body .media-module .media-card {
    background: #fcfdff;
    border-radius: .65rem;
}
.modern-body .media-module .media-card-main:hover {
    background: #eff3f6;
}
.modern-body .media-module .media-card-copy {
    padding: .9rem 3.75rem .9rem 1rem;
}
.modern-body .media-module .media-row-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .65rem;
    color: #415971;
}
.modern-body .media-row-meta strong {
    padding: .08rem .45rem;
    border-radius: .25rem;
    background: #e3eaf0;
    color: #22394f;
}
.modern-body .media-module .media-card h3 {
    margin: .45rem 0 .25rem;
    font-size: clamp(1.1rem, 2.05vw, 1.55rem);
    letter-spacing: -.025em;
}
.modern-body .media-module .media-card p {
    margin-bottom: .45rem;
    color: #3d536b;
}
.modern-body .media-module .media-card-copy b {
    font-weight: 650;
    text-decoration: underline;
    text-underline-offset: .18em;
}
.modern-body .media-module .media-save {
    right: .65rem;
    top: .65rem;
    background: #e7ebef;
    color: #173451;
    border-color: #b4c0cc;
}
.modern-body .media-module .media-save[aria-pressed="true"] {
    background: #c5e1f8;
    border-color: #8097ac;
}
.modern-body .media-follow {
    margin-top: clamp(1rem, 3vw, 2rem);
    padding-top: 1rem;
}
@media (max-width: 760px) {
    .modern-body .media-module {
        grid-template-columns: minmax(0, 1fr);
    }
    .modern-body .media-portrait img {
        aspect-ratio: 16 / 8;
        object-position: center 31%;
    }
}
@media (max-width: 640px) {
    .hero-photo img[data-variant="accueil"],
    .hero-photo img[data-variant="bordeaux"] {
        object-position: center 14%;
    }
    .modern-body .faq-module {
        padding-inline: 6%;
    }
}

/* Le rouge souligne les points de repère, sur la palette bleue du site. */
.hero .eyebrow i {
    background: #e7a0ad;
}
.hero .portrait-switcher > button[aria-pressed="true"] {
    border-color: #ecabb7;
    box-shadow: inset 0 0 0 1px #ecabb7;
}
.modern-body .chapter-nav a.chapter-current::after {
    background: #a44155;
}
.modern-body .start-here-links a[href="#contact"] {
    border-bottom-color: #c57887;
}
.modern-body .start-here-links a[href="#contact"] .start-here-icon {
    color: #88364a;
}
.skip:not(:focus) {
    clip-path: inset(50%);
}

/* Accueil et navigation */
.hero {
    --hero-blue: #233e58;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    grid-template-areas: "navigation" "presentation";
    align-items: center;
    gap: clamp(1.4rem, 3vw, 2.5rem);
    min-height: clamp(40rem, 52vw, 49rem);
    padding: 0 5% clamp(2rem, 5vw, 4rem);
    background: var(--hero-blue);
    color: #f8fbff;
}
.hero header {
    grid-area: navigation;
    min-width: 0;
    padding: 1rem 0;
    gap: .75rem;
    border-bottom: 1px solid #d8eaff3b;
}
.hero header nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem clamp(.75rem, 3vw, 2rem);
    font-size: clamp(.875rem, 1.2vw, 1rem);
    font-weight: 650;
}
.hero header nav a {
    padding: .65rem 0;
    opacity: 1;
}
.hero .header-contact {
    flex: 0 0 auto;
    color: #f5faff;
    border: 1px solid #b6d4ef8c;
    background: #233e58ed;
    min-height: 44px;
    padding: .45rem .9rem;
    font-size: .9375rem;
}
.hero .hero-photo {
    position: absolute;
    inset: 0 0 0 auto;
    width: 64%;
    height: 100%;
    overflow: hidden;
    background: var(--hero-blue);
}
.hero .hero-photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, var(--hero-blue) 0%, #233e58d9 15%, #233e5838 41%, transparent 66%),
        linear-gradient(180deg, #233e58b8 0%, transparent 23%),
        linear-gradient(0deg, #233e5878 0%, transparent 36%);
    pointer-events: none;
}
.hero .hero-photo img {
    display: block;
    object-position: 50% 14%;
}
.hero .hero-copy {
    grid-area: presentation;
    width: min(46vw, 39rem);
    padding: 1rem 0;
}
.hero .hero-copy > .eyebrow {
    color: #deebf6;
    font-size: .78rem;
    letter-spacing: .09em;
}
.hero .hero-copy h1 {
    margin: .7rem 0 1.15rem;
    font-size: clamp(3.1rem, 7vw, 7rem);
    line-height: .98;
    letter-spacing: -.07em;
}
.hero .signature {
    color: #f8fbff;
    font-size: clamp(1.25rem, 2.25vw, 1.9rem);
    line-height: 1.3;
}
.hero .intro {
    max-width: 40ch;
    color: #e1edf7;
    font-size: 1.03rem;
    line-height: 1.7;
}
.hero .hero-actions {
    gap: .75rem 1.25rem;
    flex-wrap: wrap;
    margin-top: 1.45rem;
}
.hero .hero-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: .95rem;
}
.hero .hero-actions .button {
    color: #153651;
    background: #d5e9f9;
    padding: .7rem 1.1rem;
}
.hero .hero-actions .simple-link {
    color: #f1f7fc;
    border-bottom-color: #a8c5dd;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.modern-body .mention-line > a {
    font-size: clamp(.95rem, 1.45vw, 1.15rem);
    letter-spacing: -.025em;
}
.modern-body .chapter-nav > div:first-child {
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: thin;
    gap: clamp(.85rem, 2vw, 1.5rem);
}
.modern-body .chapter-nav a {
    display: block;
    flex-shrink: 0;
    font-size: .875rem;
    line-height: 1.25;
}
.modern-body .modern-heading > p,
.modern-body .bio-story > p,
.modern-body .practical-questions p,
.modern-body .connect-copy > p {
    font-size: 1rem;
    line-height: 1.7;
}
.modern-body .modern-eyebrow,
.modern-body .tile-meta {
    font-size: .76rem;
    letter-spacing: .065em;
}
.modern-body .tile-longueuil {
    background: #e4eff8;
    color: #22364a;
}
.modern-body .tile-longueuil .tile-meta {
    color: #88364a;
    opacity: 1;
}
.modern-body .discovery-grid[data-count="8"] .content-tile:nth-child(n+4):nth-child(-n+5) {
    grid-column: span 6;
}
.modern-body .discovery-grid:is([data-count="3"], [data-count="8"]) .tile-balado h3 {
    font-size: clamp(1.65rem, 3.7vw, 3.5rem);
}
.civic-gallery {
    margin: 0 0 2rem;
}
.civic-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 1rem;
}
.civic-gallery-grid figure {
    margin: 0;
    overflow: hidden;
    border: 1px solid #d5e2ee;
    border-radius: .6rem;
    background: #fcfdff;
}
.civic-gallery-grid img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: contain;
    background: #eaf2f9;
}
.civic-gallery-grid figcaption {
    padding: .75rem 1rem;
    line-height: 1.55;
}
.modern-body .legacy-library {
    margin-top: 1.5rem;
    padding: 1rem 0 0;
    border-top: 1px solid #47617c;
}
.modern-body .legacy-library ul {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.25rem;
    padding-left: 0;
    list-style: none;
}
.modern-body .legacy-library a,
.modern-dialog .book-orders a {
    text-decoration: underline;
    text-underline-offset: .2em;
}
.modern-dialog .book-orders {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
    gap: .6rem;
    padding: 0;
    list-style: none;
}
.modern-dialog .book-orders a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: .5rem .75rem;
    border: 1px solid #c4d8ea;
    border-radius: .4rem;
    background: #edf5fc;
    color: #1d4469;
    font-size: .95rem;
}
.modern-dialog .book-summary p {
    color: #364f66;
    font-size: 1rem;
    line-height: 1.7;
}
@media (max-width: 640px) {
    .hero {
        grid-template-rows: auto auto 1fr;
        grid-template-areas: "navigation" "portrait" "presentation";
        min-height: 0;
        padding-inline: 6%;
        gap: 0;
    }
    .hero .hero-photo {
        grid-area: portrait;
        position: relative;
        inset: auto;
        width: calc(100% + 12vw);
        margin-inline: -6vw;
        height: clamp(14.5rem, 75vw, 24rem);
    }
    .hero .hero-photo::after {
        background: linear-gradient(0deg, var(--hero-blue), transparent 27%);
    }
    .hero .hero-photo img {
        object-position: 50% 15%;
    }
    .hero .hero-copy {
        width: 100%;
        padding: .65rem 0 0;
    }
    .hero header nav {
        gap: .1rem .65rem;
    }
    .hero .hero-copy h1 {
        margin: .55rem 0 .85rem;
    }
    .modern-body .discovery-grid[data-count="8"] .content-tile:nth-child(n+4):nth-child(-n+5) {
        grid-column: auto;
    }
}

.modern-body .publication-archive {
    margin-top: 1rem;
}
.modern-body .publication-archive ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: .75rem 1.25rem;
    max-height: 22rem;
    overflow: auto;
    padding: .25rem 1rem .25rem 0;
}
.modern-body .publication-archive li {
    min-width: 0;
}
.modern-body .publication-archive a {
    display: block;
    overflow-wrap: anywhere;
    font-size: .875rem;
    line-height: 1.5;
}
.modern-body .shelf-book .shelf-book-cta {
    grid-column: -2 / -1;
    color: #244d72;
    font-size: .875rem;
    text-decoration: underline;
    text-underline-offset: .2em;
}

/* Pages et contenus du site */
.wp-site-nav {
    flex-wrap: wrap;
    background: #233e58;
}
.wp-site-nav > div {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.2rem;
}
.wp-editorial {
    color: #22364a;
    padding-block: clamp(2rem, 5vw, 4.5rem);
}
.wp-editorial article {
    overflow-wrap: anywhere;
}
.wp-editorial h1, .wp-editorial h2, .wp-editorial h3 {
    line-height: 1.2;
    margin: 1.2em 0 .65em;
}
.wp-editorial > h1, .wp-editorial article > h1 {
    margin-top: 0;
}
.wp-editorial p {
    margin-block: .85em;
}
.wp-editorial img {
    height: auto;
}
.wp-editorial .elementor-hidden-desktop {
    display: none;
}
.wp-editorial .elementor-widget {
    margin-block: 1rem;
}
.publication-list, .library-links {
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: .55rem 1rem;
}
.publication-list a, .library-links a {
    display: block;
    min-height: 44px;
    padding: .55rem .75rem;
    border: 1px solid #d4e2ef;
    border-radius: .4rem;
    background: #f4f8fc;
    color: #25496c;
}
.library-book {
    display: grid;
    grid-template-columns: minmax(0, 13rem) minmax(0, 1fr);
    gap: clamp(1rem, 4vw, 3rem);
    margin-block: 2rem;
    padding-block: 1.5rem;
    border-top: 2px solid #d9e5f0;
    scroll-margin-top: 1rem;
}
.library-book > img {
    width: 100%;
    object-fit: contain;
}
.library-book h2 {
    margin-top: 0;
}
.native-photo-grid, .civic-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(.8rem, 2vw, 1.2rem);
}
.native-photo-grid figure, .civic-gallery-grid figure {
    min-width: 0;
    margin: 0;
    border: 1px solid #d5e2ee;
    border-radius: .65rem;
    overflow: hidden;
    background: #fcfdff;
}
.native-photo-grid img, .civic-gallery-grid img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    background: #eaf2f9;
}
.native-photo-grid figcaption, .civic-gallery-grid figcaption {
    padding: .75rem .9rem;
    line-height: 1.5;
}
.encounters {
    margin-bottom: clamp(1.6rem, 4vw, 3.25rem);
    scroll-margin-top: 5rem;
}
.encounters-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin-bottom: .9rem;
    padding-left: .75rem;
    border-left: 3px solid #b45c70;
}
.encounters-heading h3 {
    font-size: clamp(1.3rem, 2.4vw, 2rem);
}
.encounters-heading a, .site-directory a {
    text-decoration: underline;
    text-underline-offset: .2em;
}
.civic-gallery-grid figcaption strong {
    color: #88364a;
    font-size: 1rem;
}
.civic-gallery-grid figcaption p {
    margin-top: .25rem;
    color: #415971;
    font-size: .92rem;
}
.site-directory {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.3rem;
    margin-top: 1.5rem;
    font-size: .9rem;
}
@media (max-width: 760px) {
    .native-photo-grid, .civic-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .library-book {
        grid-template-columns: minmax(0, 1fr);
    }
    .library-book > img {
        width: min(100%, 12rem);
    }
}
@media (max-width: 460px) {
    .native-photo-grid, .civic-gallery-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .encounters .civic-gallery-grid {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 83%;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        padding: 0 .2rem .65rem;
    }
    .encounters .civic-gallery-grid figure {
        scroll-snap-align: start;
    }
}

.encounters-heading {
    align-items: center;
}
.encounters-controls {
    display: flex;
    gap: .55rem;
}
.encounters-controls button {
    min-height: 44px;
    padding: .55rem .75rem;
    color: #7d3446;
    border: 1px solid #d8a4ae;
    border-radius: .4rem;
    background: #fff9fa;
    font-size: .88rem;
}
.encounters-controls button:not(:disabled):hover {
    background: #f7e8ec;
}
.encounters-controls button:disabled {
    opacity: .45;
    cursor: default;
}
.encounters .civic-gallery-grid {
    --gallery-gap: clamp(.8rem, 2vw, 1.2rem);
    position: relative;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 2 * var(--gallery-gap)) / 3);
    gap: var(--gallery-gap);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-color: #bd8491 #e7eff6;
    padding: 0 0 .55rem;
}
.encounters .civic-gallery-grid figure {
    scroll-snap-align: start;
}
@media (max-width: 760px) {
    .encounters .civic-gallery-grid {
        grid-auto-columns: calc((100% - var(--gallery-gap)) / 2);
    }
}
@media (max-width: 460px) {
    .encounters .civic-gallery-grid {
        grid-auto-columns: 84%;
    }
}

.site-logo {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 44px;
}
.site-logo img {
    display: block;
    width: clamp(6.4rem, 11vw, 9rem);
    height: auto;
}
.encounters-more {
    margin-top: .65rem;
}
.encounters-more a {
    color: #244d72;
    text-decoration: underline;
    text-underline-offset: .2em;
}
@media (max-width: 640px) {
    .hero header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "logo contact" "links links";
        gap: .35rem .7rem;
    }
    .hero header .site-logo {
        grid-area: logo;
        justify-self: start;
    }
    .hero header nav {
        grid-area: links;
    }
    .hero header .header-contact {
        grid-area: contact;
    }
}

/* Palette et surfaces communes */
:root {
    --la-ink: #223b54;
    --la-muted: #476078;
    --la-paper: #fcfdff;
    --la-frost: #edf4fa;
    --la-line: #d4e1ed;
    --la-accent: #a34459;
    --la-radius: .8rem;
    --la-shadow: 0 8px 25px #1734510d;
}
.modern-body .modern-section {
    padding-block: clamp(2.75rem, 5.2vw, 4.75rem);
}
.modern-body .modern-heading {
    margin-bottom: clamp(1.35rem, 3vw, 2.4rem);
}
.modern-body .modern-heading h2 {
    color: var(--la-ink);
    text-wrap: balance;
}
.modern-body .modern-heading > p {
    max-width: 36ch;
    color: var(--la-muted);
    text-wrap: pretty;
}
.modern-body .discovery,
.modern-body .book-experience {
    background: var(--la-paper);
}
.modern-body .media-experience,
.modern-body .engagement-experience,
.modern-body .biography-experience {
    background: var(--la-frost);
    border-color: var(--la-line);
}
.modern-body .chapter-nav {
    background: #fcfdfffa;
    border-color: var(--la-line);
    box-shadow: 0 4px 16px #1734510b;
}
.modern-body .chapter-nav a.chapter-current {
    color: #843b4d;
}
.modern-body .start-here-links a,
.modern-body .shelf-book,
.modern-body .media-module .media-card,
.modern-body .content-tile {
    border-radius: var(--la-radius);
    box-shadow: var(--la-shadow);
}
.modern-body .start-here-links a {
    padding: 1.15rem;
}
.modern-body .start-here-links strong {
    color: var(--la-ink);
}
.hero .header-contact,
.hero .hero-actions .button,
.modern-body .list-disclosure,
.modern-body .section-disclosure > summary,
.modern-dialog .experience-button {
    border-radius: .55rem;
}
.hero .hero-actions .button:hover,
.hero .header-contact:hover {
    background: #ecf5ff;
    color: #243e58;
}
.modern-body .modern-footer {
    background: #233e58;
}
.modern-body .modern-footer .site-logo {
    align-self: start;
}
.modern-body .modern-footer .site-logo img {
    width: min(100%, 9rem);
}
.modern-dialog {
    border-radius: .9rem;
}
.modern-dialog .experience-dialog-header > span {
    color: #843b4d;
    font-size: .75rem;
}
.modern-dialog .experience-dialog-header > button {
    min-width: 44px;
    min-height: 44px;
}
.modern-dialog .experience-button {
    min-height: 44px;
    font-size: .9rem;
}

/* Galerie des rencontres */
.encounters {
    padding: clamp(.9rem, 2.5vw, 1.7rem);
    border: 1px solid var(--la-line);
    border-radius: 1rem;
    background: var(--la-paper);
    box-shadow: var(--la-shadow);
}
.encounters-heading {
    padding-left: .8rem;
    border-left-color: var(--la-accent);
    margin-bottom: 1rem;
}
.encounters-heading h3 {
    color: var(--la-ink);
    font-weight: 650;
    letter-spacing: -.035em;
    line-height: 1.2;
}
.encounters-controls button {
    border-radius: 2rem;
    border-color: var(--la-line);
    background: var(--la-paper);
    color: var(--la-ink);
    font-weight: 650;
}
.encounters-controls button[data-gallery-step="1"]:not(:disabled) {
    background: #e8f0f8;
    border-color: #c3d6e7;
}
.encounters-controls button:not(:disabled):hover {
    border-color: #d29ca8;
    background: #fff5f7;
    color: #7d3446;
}
.encounters .civic-gallery-grid {
    padding-bottom: .75rem;
    scrollbar-color: #ad7684 #edf3f9;
}
.encounters .civic-gallery-grid figure,
.native-photo-grid figure {
    background: var(--la-paper);
    border-color: var(--la-line);
    border-radius: .7rem;
}
.encounters .encounter-image {
    display: block;
    position: relative;
    background: #edf2f7;
    cursor: zoom-in;
}
.encounters .encounter-image img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: 50% 37%;
}
.encounters .encounter-image::after {
    content: '+';
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    position: absolute;
    right: .6rem;
    bottom: .6rem;
    border: 1px solid #ffffffaa;
    border-radius: 50%;
    background: #20384be6;
    color: #fff;
    font-size: 1.25rem;
    line-height: 1;
    pointer-events: none;
}
.encounters .encounter-image:focus-visible {
    outline: 3px solid #a34459;
    outline-offset: -4px;
}
.encounters figcaption {
    padding: .85rem 1rem 1rem;
}
.encounters figcaption strong {
    display: inline-block;
    color: var(--la-ink);
    font-family: Manrope, sans-serif;
    font-size: clamp(1rem, 1.7vw, 1.2rem);
}
.encounters figcaption p {
    margin-top: .32rem;
    color: var(--la-muted);
    font-size: .9rem;
}
.encounters-more {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin: .6rem 0 0;
    font-size: .9rem;
}
.encounters-more [data-gallery-count] {
    color: #843b4d;
    font-variant-numeric: tabular-nums;
}
.modern-dialog .encounter-full {
    margin: 0;
}
.modern-dialog .encounter-full img {
    display: block;
    width: 100%;
    max-height: 59dvh;
    object-fit: contain;
    border-radius: .55rem;
    background: #edf3f8;
}
.modern-dialog .encounter-full figcaption {
    margin-top: .85rem;
}
.modern-dialog .encounter-full h2 {
    margin-bottom: .3rem;
    font-size: clamp(1.25rem, 3.4vw, 2rem);
}
.modern-dialog .encounter-full p {
    margin: 0;
    color: #415971;
    font-size: .95rem;
    line-height: 1.55;
}
@media (max-width: 460px) {
    .encounters .civic-gallery-grid {
        grid-auto-columns: 88%;
    }
}
