/*
Theme Name: Namidō Shiatsu - Version cumulative
Theme URI: https://namido-shiatsu.com
Author: Géraldine Matter
Description: Version cumulative de préparation du thème Namidō Shiatsu, avec les rubriques, carrousels et contenus validés.
Version: 3.5.43
Text Domain: namido-shiatsu-v3-cumulative
*/

/*
 * Entrée sans numéros, hauteur ajustée et rythmes internes harmonisés - v3.5.42.
 * BD officielle V13 et réouverture fiable de l'entrée lors d'une nouvelle visite - v3.5.43.
 */

:root {
    --namido-visit-coral: #f53b52;
    --namido-visit-coral-dark: #c62f41;
    --namido-visit-ink: #30243d;
}

.namido-has-js:not([data-namido-visit]) body.home.namido-entry-enabled {
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
}

html:not(.namido-has-js) .namido-entry-gate {
    display: none;
}

.namido-entry-gate {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 100svh;
    margin: 0;
    padding: clamp(.75rem, 1.8vw, 1.5rem);
    place-items: center;
    overflow: hidden;
    overscroll-behavior: contain;
    border: 0;
    border-radius: 0;
    background: rgba(45, 33, 52, .38);
    box-shadow: none;
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.namido-entry-gate__card {
    position: relative;
    width: min(960px, 100%);
    height: auto;
    max-height: none;
    padding: clamp(1.1rem, 1.8vw, 1.65rem);
    overflow: hidden;
    overscroll-behavior: contain;
    border: 1px solid rgba(90, 36, 125, .13);
    border-radius: 30px;
    background:
        radial-gradient(circle at 10% 5%, rgba(177, 137, 207, .15), transparent 27%),
        radial-gradient(circle at 94% 88%, rgba(245, 59, 82, .09), transparent 26%),
        linear-gradient(145deg, #fffefe 0%, #fbf9fd 58%, #fff9f7 100%);
    box-shadow: 0 32px 90px rgba(28, 19, 34, .34);
    isolation: isolate;
}

html[data-namido-visit] .namido-entry-gate {
    display: none;
}

.namido-entry-gate__sky {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
}

.namido-entry-gate__sky span {
    position: absolute;
    display: block;
    width: clamp(90px, 14vw, 210px);
    aspect-ratio: 1;
    border: 1px solid rgba(90, 36, 125, .08);
    border-radius: 44% 56% 64% 36% / 55% 40% 60% 45%;
    background: rgba(255, 255, 255, .42);
}

.namido-entry-gate__sky span:nth-child(1) {
    top: -4%;
    left: -2%;
    transform: rotate(25deg);
}

.namido-entry-gate__sky span:nth-child(2) {
    top: 35%;
    right: -3%;
    transform: rotate(-18deg);
}

.namido-entry-gate__sky span:nth-child(3) {
    bottom: -8%;
    left: 42%;
    transform: rotate(45deg);
}

.namido-entry-gate__intro {
    max-width: 820px;
    margin: 0 auto clamp(1rem, 2vh, 1.45rem);
    text-align: center;
    transition: opacity .45s ease, transform .45s ease;
}

.namido-entry-gate__welcome > p {
    margin: 0;
}

.namido-entry-gate__welcome > p:first-child {
    margin: 0 0 .55rem;
    color: #5a247d;
    font-size: clamp(1rem, 1.3vw, 1.08rem);
    font-weight: 700;
}

.namido-entry-gate__welcome > p:nth-child(2) {
    margin: 0;
    color: var(--namido-visit-ink);
    font-size: clamp(2.35rem, 4vw, 3.6rem);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.namido-entry-gate__welcome > p:nth-child(n + 3) {
    max-width: 760px;
    margin: .9rem auto 0;
    color: #57505d;
    font-size: clamp(1rem, 1.25vw, 1.12rem);
    line-height: 1.55;
}

.namido-entry-gate__welcome > p:nth-child(n + 4) {
    margin-top: 1rem;
}

/*
 * Quatre styles explicites proposés dans Namidō > Texte d’accueil.
 * Ils prennent le relais de la mise en forme historique fondée sur l’ordre
 * des paragraphes, qui reste ci-dessus pour les textes déjà enregistrés.
 */
.namido-entry-gate__welcome > p.namido-welcome-style--kicker {
    max-width: none;
    margin: 0 0 .55rem;
    color: #5a247d;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: clamp(1rem, 1.3vw, 1.08rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.namido-entry-gate__welcome > h2.namido-welcome-style--title {
    max-width: 980px;
    margin: 0 auto;
    color: var(--namido-visit-ink);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: clamp(2.35rem, 4vw, 3.6rem);
    font-weight: 400;
    line-height: 1.02;
    letter-spacing: -.045em;
}

.namido-entry-gate__welcome > p.namido-welcome-style--body {
    max-width: 760px;
    margin: .9rem auto 0;
    color: #57505d;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: clamp(1rem, 1.25vw, 1.12rem);
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: normal;
    text-transform: none;
}

.namido-entry-gate__welcome > p.namido-welcome-style--accent {
    max-width: 760px;
    margin: 1.15rem auto 0;
    color: #5a247d;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: normal;
    text-transform: none;
}

.namido-entry-gate__intro > strong {
    display: block;
    margin-top: 1rem;
    color: #5a247d;
    font-size: 1.06rem;
}

.namido-entry-gate__doors {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(.9rem, 2vw, 1.35rem);
    max-width: 900px;
    margin: 0 auto;
    perspective: 1200px;
}

.namido-entry-door {
    position: relative;
    display: flex;
    min-height: 0;
    flex-direction: column;
    justify-content: flex-start;
    padding: clamp(1rem, 1.55vw, 1.3rem);
    overflow: hidden;
    border: 1px solid rgba(90, 36, 125, .14);
    border-radius: 24px;
    text-align: left;
    text-decoration: none;
    box-shadow: 0 18px 40px rgba(42, 28, 51, .09);
    transition: transform .65s cubic-bezier(.22, .76, .21, 1), opacity .45s ease, box-shadow .25s ease;
}

.namido-entry-door--complete {
    background: linear-gradient(150deg, rgba(255, 255, 255, .98), rgba(240, 229, 249, .95));
    color: #4c2569;
    transform-origin: left center;
}

.namido-entry-door--essential {
    background: linear-gradient(150deg, #fffdfd, #fff1f3);
    color: var(--namido-visit-coral-dark);
    transform-origin: right center;
}

.namido-entry-door:hover,
.namido-entry-door:focus-visible {
    box-shadow: 0 24px 52px rgba(65, 37, 80, .16);
    transform: translateY(-5px);
}

.namido-entry-door:focus-visible {
    outline: 4px solid rgba(245, 59, 82, .28);
    outline-offset: 4px;
}

.namido-entry-door__wave {
    display: inline-grid;
    flex: 0 0 auto;
    width: 2.35rem;
    height: 2.35rem;
    margin-bottom: .5rem;
    place-items: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    font-size: 1.3rem;
    box-shadow: inset 0 0 0 1px rgba(90, 36, 125, .08);
}

.namido-entry-door > strong {
    display: flex;
    min-height: 0;
    align-items: flex-start;
    font-size: clamp(1.4rem, 1.75vw, 1.65rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}

@media (min-width: 768px) and (max-width: 899px) {
    .namido-entry-door > strong {
        min-height: 2.18em;
    }
}

.namido-entry-door > span:not(.namido-entry-door__wave) {
    flex: 0 0 auto;
    margin-top: .25rem;
    color: #5e5863;
    font-size: 1.02rem;
}

.namido-entry-door > small {
    margin-top: .55rem;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.namido-entry-gate__reassurance {
    margin: .9rem auto 0;
    color: #6c6571;
    font-size: .92rem;
    text-align: center;
}

@media (min-width: 768px) and (max-height: 900px) {
    .namido-entry-gate__card {
        padding: 1rem 1.45rem;
    }

    .namido-entry-gate__intro {
        margin-bottom: .8rem;
    }

    .namido-entry-gate__welcome > p:first-child,
    .namido-entry-gate__welcome > p.namido-welcome-style--kicker {
        margin-bottom: .35rem;
        font-size: .94rem;
    }

    .namido-entry-gate__welcome > p:nth-child(2),
    .namido-entry-gate__welcome > h2.namido-welcome-style--title {
        font-size: clamp(2.15rem, 6.5vh, 3.15rem);
    }

    .namido-entry-gate__welcome > p:nth-child(n + 3),
    .namido-entry-gate__welcome > p.namido-welcome-style--body {
        margin-top: .65rem;
        font-size: .97rem;
        line-height: 1.45;
    }

    .namido-entry-gate__welcome > p:nth-child(n + 4),
    .namido-entry-gate__welcome > p.namido-welcome-style--accent {
        margin-top: .75rem;
    }

    .namido-entry-gate__intro > strong {
        margin-top: .7rem;
        font-size: 1rem;
    }

    .namido-entry-door {
        min-height: 0;
        padding: .9rem 1.2rem 1rem;
    }

    .namido-entry-door__wave {
        width: 2.15rem;
        height: 2.15rem;
        margin-bottom: .4rem;
        font-size: 1.2rem;
    }

    .namido-entry-door > strong {
        font-size: 1.5rem;
    }

    .namido-entry-door > span:not(.namido-entry-door__wave) {
        font-size: .94rem;
    }

    .namido-entry-door > small {
        margin-top: .45rem;
    }

    .namido-entry-gate__reassurance {
        margin-top: .6rem;
        font-size: .82rem;
    }
}

.namido-entry-gate.is-opening .namido-entry-gate__intro,
.namido-entry-gate.is-opening .namido-entry-gate__reassurance {
    opacity: 0;
    transform: translateY(-10px);
}

.namido-entry-gate.is-opening .namido-entry-door--complete {
    opacity: 0;
    transform: translateX(-115%) rotateY(-18deg);
}

.namido-entry-gate.is-opening .namido-entry-door--essential {
    opacity: 0;
    transform: translateX(115%) rotateY(18deg);
}

#accueil-namido {
    scroll-margin-top: 110px;
}

#accueil-namido:focus {
    outline: none;
}

.namido-visit-switch {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: .58rem .88rem;
    border: 1px solid rgba(245, 59, 82, .34);
    border-radius: 999px;
    background: #fff5f6;
    color: var(--namido-visit-coral-dark);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.05;
    text-align: center;
    transition: transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.namido-visit-switch:hover,
.namido-visit-switch:focus-visible {
    background: var(--namido-visit-coral);
    color: #fff;
    box-shadow: 0 9px 22px rgba(245, 59, 82, .2);
    transform: translateY(-2px);
}

.namido-visit-switch:focus-visible {
    outline: 3px solid rgba(245, 59, 82, .25);
    outline-offset: 3px;
}

.namido-visit-switch--mobile {
    width: 100%;
    margin-top: .35rem;
    padding: .8rem 1rem;
}

html[data-namido-visit="essential"] .namido-essential-step {
    color: var(--namido-visit-coral-dark) !important;
    font-weight: 800 !important;
    text-decoration-color: var(--namido-visit-coral);
}

html[data-namido-visit="essential"] [data-namido-detail="complete"] {
    display: none !important;
}

[data-namido-essential-only] {
    display: none !important;
}

html[data-namido-visit="essential"] [data-namido-essential-only] {
    display: block !important;
}

body.namido-visit-is-switching main {
    opacity: .62;
    transition: opacity .16s ease;
}

.namido-essential-hub {
    padding: clamp(1.6rem, 4vw, 3.5rem);
    border: 1px solid rgba(245, 59, 82, .22);
    border-radius: 22px;
    background: linear-gradient(145deg, #fff7f8, #fff 55%, #f9f3ff);
    box-shadow: 0 18px 48px rgba(69, 43, 76, .08);
}

.namido-essential-hub__intro {
    max-width: 760px;
    margin: 0 auto 2rem;
    text-align: center;
}

.namido-essential-hub__intro > p {
    margin: 0 0 .55rem;
    color: var(--namido-visit-coral-dark);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .16em;
}

.namido-essential-hub__intro h2 {
    margin: 0;
    color: #34263e;
    font-size: clamp(1.9rem, 4vw, 3rem);
    line-height: 1.08;
}

.namido-essential-hub__intro span {
    display: block;
    margin-top: .8rem;
    color: #66606a;
    line-height: 1.65;
}

.namido-essential-hub__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.namido-essential-hub__steps a {
    display: flex;
    min-height: 185px;
    flex-direction: column;
    padding: 1.35rem;
    border: 1px solid rgba(90, 36, 125, .11);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
    color: #39313e;
    text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.namido-essential-hub__steps a:hover,
.namido-essential-hub__steps a:focus-visible {
    border-color: rgba(245, 59, 82, .5);
    box-shadow: 0 14px 30px rgba(245, 59, 82, .11);
    transform: translateY(-3px);
}

.namido-essential-hub__steps small {
    color: var(--namido-visit-coral-dark);
    font-weight: 900;
    letter-spacing: .12em;
}

.namido-essential-hub__steps strong {
    margin-top: 1rem;
    color: #4e266a;
    font-size: 1.15rem;
    line-height: 1.25;
}

.namido-essential-hub__steps span {
    margin-top: .55rem;
    color: #6a6470;
    font-size: .92rem;
    line-height: 1.5;
}

.namido-essential-hub__booking {
    display: table;
    margin: 1.6rem auto 0;
    padding: .95rem 1.35rem;
    border-radius: 16px;
    background: #5a247d;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.namido-comic-home {
    padding: clamp(1.4rem, 4vw, 3.4rem);
    border: 1px solid rgba(90, 36, 125, .11);
    border-radius: 24px;
    background: linear-gradient(145deg, #fffdf8, #f8f4ed);
    box-shadow: 0 22px 56px rgba(52, 36, 57, .09);
}

.namido-comic-home__heading {
    max-width: 760px;
    margin: 0 auto 2rem;
    text-align: center;
}

.namido-comic-home__heading h2 {
    margin-top: .65rem;
    color: #342448;
}

.namido-comic-home__heading > p:last-child {
    margin-top: .8rem;
    color: #665f68;
    font-size: 1.05rem;
    line-height: 1.65;
}

.namido-comic-home__sheet {
    max-width: 980px;
    margin: 0 auto;
}

.namido-comic-home__open {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 16px;
    background: #f9f4eb;
    box-shadow: 0 18px 45px rgba(44, 35, 42, .13);
    cursor: zoom-in;
}

.namido-comic-home__open img {
    display: block;
    width: 100%;
    height: auto;
}

.namido-comic-home__open > span {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    padding: .55rem .85rem;
    border-radius: 999px;
    background: rgba(48, 36, 61, .9);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity .2s ease, transform .2s ease;
}

.namido-comic-home__open:hover > span,
.namido-comic-home__open:focus-visible > span {
    opacity: 1;
    transform: translateY(0);
}

.namido-comic-home__open:focus-visible {
    outline: 4px solid rgba(90, 36, 125, .3);
    outline-offset: 4px;
}

.namido-comic-home__sheet figcaption {
    max-width: 780px;
    margin: 1rem auto 0;
    color: #6d6570;
    font-size: .9rem;
    font-style: italic;
    line-height: 1.55;
    text-align: center;
}

.namido-comic-mobile {
    display: none;
}

.namido-comic-dialog {
    width: min(92vw, 1120px);
    max-height: 92vh;
    padding: 1rem;
    overflow: auto;
    border: 0;
    border-radius: 18px;
    background: #fbf6ec;
    box-shadow: 0 30px 90px rgba(23, 16, 27, .42);
}

.namido-comic-dialog::backdrop {
    background: rgba(30, 23, 34, .78);
    backdrop-filter: blur(4px);
}

.namido-comic-dialog img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.namido-comic-dialog__close {
    position: sticky;
    top: 0;
    z-index: 2;
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    margin: 0 0 -2.7rem auto;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #382a40;
    color: #fff;
    font-size: 1.5rem;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .2);
}

@media (max-width: 1100px) {
    .namido-essential-hub__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .namido-entry-gate {
        width: 100%;
        min-height: 100svh;
        margin: 0;
        padding:
            max(.65rem, env(safe-area-inset-top))
            max(.65rem, env(safe-area-inset-right))
            max(.65rem, env(safe-area-inset-bottom))
            max(.65rem, env(safe-area-inset-left));
        border-radius: 0;
    }

    .namido-entry-gate__card {
        width: 100%;
        max-height: calc(100svh - 1.3rem);
        padding: 1.35rem 1.05rem;
        overflow-x: hidden;
        overflow-y: auto;
        border-radius: 21px;
        scrollbar-gutter: auto;
    }

    .namido-entry-gate__intro {
        margin-bottom: 1.5rem;
    }

    .namido-entry-gate__welcome > p:nth-child(2) {
        font-size: clamp(2.25rem, 11vw, 3.15rem);
    }

    .namido-entry-gate__welcome > h2.namido-welcome-style--title {
        font-size: clamp(2.25rem, 11vw, 3.15rem);
    }

    .namido-entry-gate__welcome > p:nth-child(n + 3) {
        font-size: .97rem;
        line-height: 1.58;
    }

    .namido-entry-gate__welcome > p.namido-welcome-style--kicker {
        font-size: 1rem;
        line-height: 1.35;
    }

    .namido-entry-gate__welcome > p.namido-welcome-style--body {
        font-size: .97rem;
        line-height: 1.58;
    }

    .namido-entry-gate__welcome > p.namido-welcome-style--accent {
        font-size: 1rem;
        line-height: 1.45;
    }

    .namido-entry-gate__welcome > p:nth-child(n + 4):not([class*="namido-welcome-style--"]) {
        display: none;
    }

    .namido-entry-gate__doors {
        grid-template-columns: 1fr;
        gap: .85rem;
    }

    .namido-entry-door {
        min-height: 0;
        padding: 1.25rem 1.35rem;
        border-radius: 18px;
    }

    .namido-entry-door__wave {
        width: 2.45rem;
        height: 2.45rem;
        margin-bottom: .75rem;
        font-size: 1.15rem;
    }

    .namido-entry-door > strong {
        min-height: 0;
        padding-right: 1.5rem;
        font-size: 1.45rem;
    }

    .namido-entry-door > span:not(.namido-entry-door__wave) {
        margin-top: .45rem;
        font-size: .94rem;
    }

    .namido-entry-door > small {
        display: none;
    }

    .namido-entry-gate.is-opening .namido-entry-door--complete {
        transform: translateY(-100%) rotateX(12deg);
    }

    .namido-entry-gate.is-opening .namido-entry-door--essential {
        transform: translateY(100%) rotateX(-12deg);
    }

    .namido-entry-gate__reassurance {
        margin-top: 1rem;
        font-size: .8rem;
    }

    .namido-comic-home {
        padding: 1.25rem .75rem 1.4rem;
        border-radius: 18px;
    }

    .namido-comic-home__heading {
        padding: 0 .45rem;
        margin-bottom: 1.3rem;
    }

    .namido-comic-home__sheet {
        display: none;
    }

    .namido-comic-mobile {
        display: block;
    }

    .namido-comic-mobile__track {
        display: flex;
        gap: .75rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .namido-comic-mobile__track::-webkit-scrollbar {
        display: none;
    }

    .namido-comic-mobile__panel {
        flex: 0 0 calc(100% - 1rem);
        margin: 0;
        overflow: hidden;
        border: 2px solid #4b403d;
        border-radius: 15px;
        background: #fbf6ec;
        scroll-snap-align: center;
        scroll-snap-stop: always;
        box-shadow: 0 12px 26px rgba(48, 37, 45, .12);
    }

    .namido-comic-mobile__panel img {
        display: block;
        width: 100%;
        height: auto;
    }

    .namido-comic-mobile__controls {
        display: grid;
        grid-template-columns: 3rem 1fr 3rem;
        gap: .75rem;
        align-items: center;
        margin-top: 1rem;
    }

    .namido-comic-mobile__controls button {
        display: grid;
        width: 3rem;
        height: 3rem;
        place-items: center;
        border: 1px solid rgba(90, 36, 125, .18);
        border-radius: 999px;
        background: #fff;
        color: #5a247d;
        font-size: 1.2rem;
        font-weight: 900;
        box-shadow: 0 8px 18px rgba(61, 40, 68, .08);
    }

    .namido-comic-mobile__controls button:disabled {
        cursor: default;
        opacity: .35;
    }

    .namido-comic-mobile__controls span {
        color: #5f5663;
        text-align: center;
    }

    .namido-comic-mobile__controls strong {
        color: #5a247d;
        font-size: 1.1rem;
    }

    .namido-comic-mobile > p,
    .namido-comic-mobile > small {
        display: block;
        margin: .65rem auto 0;
        color: #716873;
        font-size: .82rem;
        line-height: 1.5;
        text-align: center;
    }

    .namido-comic-mobile > small {
        max-width: 31rem;
        margin-top: .9rem;
        font-style: italic;
    }

    .namido-comic-dialog {
        display: none;
    }

    .namido-essential-hub__steps {
        grid-template-columns: 1fr;
    }

    .namido-essential-hub__steps a {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .namido-entry-gate *,
    .namido-visit-switch,
    .namido-essential-hub__steps a {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

.about-journey-copy > h2 + p {
    margin-top: 2rem !important;
}

/*
 * Espace Entreprises - version réunifiée.
 * Le dernier bloc responsive de la feuille neutralise les anciens carrousels
 * de cartes sur téléphone et tablette.
 */
.enterprise-journey__steps a {
    display: flex;
    min-width: 0;
    min-height: 170px;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.35rem;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 18px;
    background: rgba(255, 255, 255, .92);
    color: #303744;
    box-shadow: 0 12px 28px rgba(17, 24, 39, .045);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.enterprise-journey__steps a:hover,
.enterprise-journey__steps a:focus-visible {
    border-color: rgba(90, 36, 125, .34);
    box-shadow: 0 16px 34px rgba(90, 36, 125, .1);
    transform: translateY(-3px);
}
.enterprise-journey__steps a > span {
    display: inline-flex;
    width: 2.2rem;
    height: 2.2rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #5A247D;
    color: #fff;
    font-weight: 800;
}
.enterprise-journey__steps a > strong {
    margin-top: .9rem;
    color: #3b1558;
    font-size: 1.08rem;
    font-weight: 800;
}
.enterprise-journey__steps a > small {
    margin-top: .38rem;
    color: #667085;
    font-size: .88rem;
    line-height: 1.45;
}
.enterprise-support-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-booking-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-booking-rules {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-booking-rules article {
    min-width: 0;
    padding: 1.3rem;
    border-left: 3px solid #1297a7;
    border-radius: 0 16px 16px 0;
    background: #f8fbfb;
}
.enterprise-booking-rules h3,
.enterprise-operation-note h3 {
    color: #3b1558;
    font-size: 1.02rem;
    font-weight: 800;
}
.enterprise-booking-rules p,
.enterprise-operation-note p {
    margin-top: .55rem;
    color: #5f6671;
    line-height: 1.62;
}
.enterprise-operation-note {
    padding: 1.25rem 1.4rem;
    border: 1px solid rgba(245, 59, 82, .13);
    border-radius: 16px;
    background: #fff7f6;
}
.enterprise-evidence-gateway {
    border: 1px solid rgba(18, 151, 167, .12);
    background:
        radial-gradient(circle at 7% 12%, rgba(184, 238, 238, .6), transparent 30%),
        linear-gradient(130deg, #fff 0%, #f8ffff 58%, #fff8f6 100%);
}
.enterprise-evidence-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
}
.enterprise-evidence-links > a {
    display: flex;
    min-height: 190px;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 3vw, 2.2rem);
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    color: #303744;
    box-shadow: 0 15px 36px rgba(17, 24, 39, .055);
    transition: transform .2s ease, box-shadow .2s ease;
}
.enterprise-evidence-links > a:hover,
.enterprise-evidence-links > a:focus-visible {
    box-shadow: 0 20px 42px rgba(90, 36, 125, .11);
    transform: translateY(-3px);
}
.enterprise-evidence-links__eyebrow {
    color: #1297a7;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .12em;
}
.enterprise-evidence-links strong {
    margin-top: .8rem;
    color: #3b1558;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    line-height: 1.25;
}
.enterprise-evidence-links small {
    margin-top: .75rem;
    color: #667085;
    font-size: .95rem;
    line-height: 1.55;
}
.enterprise-final-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .9rem;
}
.enterprise-action {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: .85rem 1.35rem;
    border: 2px solid #5A247D;
    border-radius: 15px;
    font-weight: 800;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.enterprise-action:hover,
.enterprise-action:focus-visible {
    box-shadow: 0 12px 28px rgba(90, 36, 125, .17);
    transform: translateY(-2px);
}
.enterprise-action--rates {
    background: #fff;
    color: #5A247D;
}
.enterprise-action--quote {
    background: #5A247D;
    color: #fff;
}
.enterprise-action--call {
    border-color: #1297a7;
    background: #dff7f6;
    color: #28555a;
}

/* Page chiffres : données nationales et bilan Human Impact. */
.enterprise-evidence-hero {
    background:
        radial-gradient(circle at 90% 10%, rgba(184, 238, 238, .7), transparent 30%),
        linear-gradient(135deg, #fff8f6 0%, #fff 46%, #f5f3ff 100%);
}
.enterprise-evidence-caution {
    max-width: 62rem;
    padding: 1.15rem 1.3rem;
    border-left: 4px solid #f53b52;
    border-radius: 0 14px 14px 0;
    background: rgba(255, 255, 255, .82);
    color: #59616d;
    line-height: 1.65;
}
.enterprise-national-stats,
.human-impact-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-national-stats article,
.human-impact-stats article {
    display: flex;
    min-width: 0;
    min-height: 235px;
    flex-direction: column;
    padding: 1.45rem;
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(17, 24, 39, .055);
}
.enterprise-national-stats strong,
.human-impact-stats strong {
    color: #5A247D;
    font-size: clamp(2rem, 4vw, 3.15rem);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1;
}
.enterprise-national-stats span,
.human-impact-stats span {
    margin-top: 1rem;
    color: #303744;
    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1.45;
}
.enterprise-national-stats small {
    margin-top: .6rem;
    color: #667085;
    font-size: .88rem;
    line-height: 1.5;
}
.enterprise-national-stats a {
    margin-top: auto;
    padding-top: 1rem;
    color: #5A247D;
    font-size: .76rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.enterprise-real-cost {
    background: linear-gradient(125deg, #f5f3ff 0%, #fff 46%, #f0fafa 100%);
}
.enterprise-cost-components {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-cost-components article {
    padding: clamp(1.5rem, 3vw, 2.1rem);
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
}
.enterprise-cost-components h3 {
    color: #3b1558;
    font-size: 1.3rem;
    font-weight: 850;
}
.enterprise-cost-components ul {
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
    padding: 0;
    list-style: none;
}
.enterprise-cost-components li {
    position: relative;
    padding-left: 1.4rem;
    color: #59616d;
    line-height: 1.55;
}
.enterprise-cost-components li::before {
    position: absolute;
    left: 0;
    color: #1297a7;
    content: "•";
    font-weight: 900;
}
.enterprise-cost-formula {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    padding: 1.3rem;
    border-radius: 16px;
    background: #3b1558;
    color: #fff;
    text-align: center;
}
.enterprise-cost-formula span,
.enterprise-cost-formula strong {
    padding: .55rem .75rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, .12);
}
.enterprise-cost-formula b {
    color: #b8eeee;
    font-size: 1.15rem;
}
.human-impact-section {
    border: 1px solid rgba(18, 151, 167, .13);
    background:
        radial-gradient(circle at 7% 0%, rgba(184, 238, 238, .58), transparent 27%),
        #fff;
}
.human-impact-contribution {
    padding: 1rem 1.2rem;
    border-radius: 14px;
    background: rgba(245, 243, 255, .88);
    color: #59616d;
    line-height: 1.62;
}
.human-impact-contribution strong {
    color: #3b1558;
}
.human-impact-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.human-impact-stats article {
    min-height: 175px;
    justify-content: center;
    text-align: center;
}
.human-impact-reading {
    padding: 1.35rem 1.5rem;
    border-left: 4px solid #1297a7;
    border-radius: 0 16px 16px 0;
    background: #f0fafa;
}
.human-impact-reading h3 {
    color: #3b1558;
    font-size: 1.15rem;
    font-weight: 850;
}
.human-impact-reading p {
    margin-top: .55rem;
    color: #59616d;
    line-height: 1.65;
}
.human-impact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}
.human-impact-actions a {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: .8rem 1.1rem;
    border: 1px solid rgba(90, 36, 125, .22);
    border-radius: 14px;
    color: #5A247D;
    font-weight: 750;
}
.human-impact-actions a:first-child {
    border-color: #5A247D;
    background: #5A247D;
    color: #fff;
}
.enterprise-evidence-cta {
    background: linear-gradient(120deg, #f0fafa, #f5f3ff);
}

@media (max-width: 1023px) {
    .mobile-swipe-row,
    .rates-card-grid,
    .enterprise-benefit-grid,
    .enterprise-journey__steps,
    .enterprise-practical-options,
    .enterprise-support-grid,
    .enterprise-booking-options,
    .enterprise-booking-rules {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 1.15rem !important;
        width: 100% !important;
        margin-right: 0 !important;
        padding-right: 0 !important;
        overflow: visible !important;
        scroll-snap-type: none !important;
    }
    .mobile-swipe-row > *,
    .rates-card-grid > * {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: none !important;
        scroll-snap-align: none !important;
    }
    .mobile-swipe-hint {
        display: none !important;
    }
    .enterprise-journey__steps a {
        min-height: 0;
    }
    .enterprise-evidence-links,
    .enterprise-cost-components {
        grid-template-columns: minmax(0, 1fr);
    }
    .enterprise-national-stats,
    .human-impact-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    .enterprise-home-page,
    .enterprise-evidence-page,
    .rates-page {
        padding-inline: 1rem;
    }
    .enterprise-practical-step,
    .enterprise-evidence-gateway,
    .human-impact-section,
    .enterprise-real-cost {
        padding-inline: 1.25rem;
    }
    .enterprise-national-stats,
    .human-impact-stats {
        grid-template-columns: minmax(0, 1fr);
    }
    .enterprise-national-stats article,
    .human-impact-stats article {
        min-height: 0;
    }
    .enterprise-final-actions__buttons,
    .human-impact-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .enterprise-final-actions__buttons a,
    .human-impact-actions a {
        width: 100%;
    }
    .enterprise-cost-formula {
        align-items: stretch;
        flex-direction: column;
    }
    .enterprise-cost-formula b {
        display: none;
    }
}

.namido-next-page {
    width: min(calc(100% - 3rem), 1352px);
    margin: clamp(2.5rem, 5vw, 4.5rem) auto 0;
}

.namido-next-page__inner {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    padding: clamp(1.25rem, 3vw, 1.75rem) clamp(1.35rem, 4vw, 2.4rem);
    border: 1px solid rgba(90, 36, 125, .14);
    border-radius: 18px;
    background: linear-gradient(110deg, #f0fafa 0%, #f5f3ff 100%);
    box-shadow: 0 14px 34px rgba(59, 21, 88, .07);
}

.namido-next-page__inner > span {
    font-size: .9rem;
}

.namido-next-page__inner > span {
    color: #687078;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.namido-next-page a {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    color: #5A247D;
    font-size: clamp(1rem, 2vw, 1.15rem);
    text-decoration: none;
}

.namido-next-page a:hover,
.namido-next-page a:focus-visible {
    color: #3b1558;
    text-decoration: underline;
    text-underline-offset: .25em;
}

.namido-next-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.15rem;
    align-items: center;
    justify-content: flex-end;
}

.namido-next-page a.namido-next-page__shortcut {
    min-height: 2.8rem;
    padding: .65rem 1rem;
    border: 1px solid rgba(90, 36, 125, .34);
    border-radius: 14px;
    background: rgba(255, 255, 255, .72);
    font-size: .94rem;
    font-weight: 700;
}

.namido-next-page a.namido-next-page__shortcut:hover,
.namido-next-page a.namido-next-page__shortcut:focus-visible {
    background: #fff;
    text-decoration: none;
}

.namido-site-footer {
    margin-top: clamp(3.75rem, 7vw, 5.5rem);
    border-top: 1px solid rgba(59, 21, 88, .08);
    background: linear-gradient(180deg, #fff 0%, #fbfafc 100%);
}

.namido-next-page + .namido-site-footer {
    margin-top: clamp(2rem, 4vw, 3rem);
}

.namido-site-footer__main {
    width: min(calc(100% - 3rem), 1352px);
    margin-inline: auto;
}

.namido-site-footer__meta {
    width: min(100% - 3rem, 1120px);
    margin-inline: auto;
}

.namido-site-footer__layout {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) max-content;
    gap: 0;
    align-items: center;
    box-sizing: border-box;
    margin-inline: clamp(3rem, 6vw, 6rem);
    padding-block: 1.25rem;
    padding-left: clamp(1rem, 2vw, 1.5rem);
    border-left: 3px solid #f53b52;
    background: linear-gradient(
        90deg,
        rgba(255, 244, 242, .96) 0%,
        rgba(229, 248, 249, .9) 47%,
        rgba(255, 255, 255, 0) 77%
    );
}

.namido-site-footer__contact,
.namido-site-footer__brand {
    box-sizing: border-box;
    width: max-content;
    max-width: 100%;
}

.namido-site-footer__contact {
    display: flex;
    flex-direction: column;
    justify-content: center;
    justify-self: start;
}

.namido-site-footer__eyebrow {
    color: #5A247D;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.namido-site-footer__address {
    margin-top: .42rem;
    color: #374151;
    font-size: .86rem;
    line-height: 1.3;
}

.namido-site-footer__address strong,
.namido-site-footer__address span {
    display: block;
}

.namido-site-footer__address strong {
    color: #111827;
}

.namido-site-footer__address span {
    margin-top: .08rem;
}

.namido-site-footer__appointment {
    margin-top: .22rem;
    color: #6b7280;
    font-size: .78rem;
}

.namido-site-footer__contact-link {
    width: fit-content;
    margin-top: .38rem;
    color: #5A247D;
    font-size: .78rem;
    font-weight: 750;
    line-height: 1.3;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.namido-site-footer__contact-link:hover,
.namido-site-footer__contact-link:focus-visible {
    color: #6f368c;
}

.namido-site-footer__map,
.namido-contact-map {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 16px;
    background: #eef6f6;
    box-shadow: 0 12px 32px rgba(39, 30, 47, .09);
}

.namido-site-footer__map {
    width: 320px;
    max-width: 100%;
    justify-self: end;
}

.namido-site-footer__map img {
    display: block;
    width: 100%;
    height: 126px;
    object-fit: cover;
}

.namido-site-footer__map span,
.namido-contact-map span {
    position: absolute;
    right: .65rem;
    bottom: .65rem;
    padding: .48rem .72rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .95);
    color: #5A247D;
    font-size: .78rem;
    font-weight: 800;
    box-shadow: 0 5px 16px rgba(17, 24, 39, .16);
}

.namido-site-footer__map:hover img,
.namido-site-footer__map:focus-visible img,
.namido-contact-map:hover img,
.namido-contact-map:focus-visible img {
    filter: saturate(1.07) contrast(1.02);
}

.namido-site-footer__map:focus-visible,
.namido-contact-map:focus-visible {
    outline: 3px solid rgba(39, 155, 173, .42);
    outline-offset: 3px;
}

.namido-site-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    justify-self: center;
    padding-inline: .5rem;
    text-align: center;
}

.namido-site-footer__brand img {
    width: 82px;
    height: auto;
}

.namido-site-footer__brand p {
    margin-top: .22rem;
    color: #3b1558;
    font-size: .84rem;
    font-weight: 750;
    line-height: 1.25;
}

.namido-site-footer__domain {
    display: block;
    margin-top: .12rem;
    color: #6b7280;
    font-size: .7rem;
    line-height: 1.25;
}

.namido-site-footer__meta {
    padding-block: 1.15rem 1.5rem;
    border-top: 1px solid rgba(59, 21, 88, .08);
    text-align: center;
}

.namido-site-footer__health {
    color: #6b7280;
    font-size: .76rem;
    line-height: 1.5;
}

.namido-site-footer__links,
.namido-site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .35rem 1rem;
}

.namido-site-footer__links {
    margin-top: .7rem;
    color: #4b5563;
    font-size: .82rem;
    font-weight: 650;
}

.namido-site-footer__legal {
    margin-top: .5rem;
    color: #9ca3af;
    font-size: .72rem;
}

.namido-site-footer__copyright {
    margin-top: .35rem;
    color: #9ca3af;
    font-size: .7rem;
}

.namido-contact-map {
    margin-top: 2rem;
}

.namido-contact-map img {
    display: block;
    width: 100%;
    aspect-ratio: 574 / 303;
    object-fit: cover;
}

.namido-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "booking"
        "form"
        "details";
    gap: 2rem;
    align-items: start;
}

.namido-contact-booking {
    grid-area: booking;
}

.namido-contact-details {
    grid-area: details;
}

.namido-contact-form {
    grid-area: form;
}

.namido-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.75rem;
}

.namido-contact-action {
    display: inline-flex;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center;
    padding: .9rem 1.25rem;
    border: 1px solid transparent;
    border-radius: 18px;
    font-weight: 650;
    line-height: 1.25;
    text-align: center;
}

.namido-contact-action--primary {
    background: #fff;
    color: #5A247D;
}

.namido-contact-action--secondary {
    border-color: rgba(255, 255, 255, .58);
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.namido-contact-action--secondary:hover,
.namido-contact-action--secondary:focus-visible {
    background: rgba(255, 255, 255, .18);
}

@media (min-width: 1024px) {
    .namido-contact-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
            "booking form"
            "details form";
    }
}

@media (max-width: 559px) {
    .namido-next-page {
        width: min(calc(100% - 2rem), 1352px);
    }

    .namido-next-page__inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .namido-next-page__actions {
        align-items: stretch;
        flex-direction: column-reverse;
        justify-content: flex-start;
        width: 100%;
    }

    .namido-next-page__destination,
    .namido-next-page__shortcut {
        justify-content: space-between;
        width: 100%;
    }

    .namido-contact-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .namido-contact-action {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .namido-site-footer__main {
        width: min(calc(100% - 6rem), 1304px);
    }
}

@media (min-width: 560px) and (max-width: 1023px) {
    .namido-site-footer__meta {
        width: min(100% - 2rem, 1120px);
    }

    .namido-site-footer__layout {
        margin-inline: 1rem;
        padding-block: 1rem;
        padding-left: 1rem;
    }

    .namido-site-footer__map {
        width: clamp(170px, 30vw, 300px);
    }

    .namido-site-footer__brand {
        flex-direction: column;
        gap: 0;
        padding-inline: 0;
        text-align: center;
    }

    .namido-site-footer__brand img {
        width: 70px;
    }

    .namido-site-footer__brand-copy {
        min-width: 0;
    }

    .namido-site-footer__brand p {
        margin-top: .18rem;
        font-size: .78rem;
        line-height: 1.22;
    }

    .namido-site-footer__tagline-part {
        display: block;
    }

    .namido-site-footer__domain {
        font-size: .66rem;
    }
}

@media (max-width: 559px) {
    .namido-site-footer__meta {
        width: min(100% - 2rem, 1120px);
    }

    .namido-site-footer__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.35rem;
        margin-inline: 0;
        padding: 1.35rem 1rem;
        background: linear-gradient(
            180deg,
            rgba(255, 244, 242, .96) 0%,
            rgba(229, 248, 249, .84) 55%,
            rgba(255, 255, 255, .25) 100%
        );
    }

    .namido-site-footer__map img {
        height: 126px;
    }

    .namido-site-footer__contact,
    .namido-site-footer__brand {
        width: min(100%, 320px);
        justify-self: center;
        text-align: center;
    }

    .namido-site-footer__contact {
        align-items: center;
    }

    .namido-site-footer__map {
        width: 100%;
        max-width: 320px;
        justify-self: center;
    }

    .namido-site-footer__contact-link {
        margin-inline: auto;
    }

    .namido-site-footer__meta {
        padding-block: 1rem 1.25rem;
    }

    .namido-site-footer__health {
        max-width: 34rem;
        margin-inline: auto;
    }
}

@font-face {
    font-family: "Namido Wordmark";
    src: url("assets/fonts/urw-bookman-light.otf") format("opentype");
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

.namido-return-origin {
    scroll-margin-block: 9rem;
}

.rate-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.rate-card__price {
    margin-top: auto;
    padding-top: 2rem;
}

.namido-contextual-back {
    position: fixed;
    left: max(1rem, env(safe-area-inset-left));
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 70;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .48rem;
    min-height: 48px;
    padding: .7rem 1rem .7rem .82rem;
    border: 1px solid rgba(90, 36, 125, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    color: #5A247D;
    font-size: .93rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 12px 34px rgba(56, 30, 81, .17);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.namido-contextual-back svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.namido-contextual-back:hover,
.namido-contextual-back:focus-visible {
    background: #fff;
    color: #3b1558;
    transform: translateY(-2px);
    box-shadow: 0 16px 40px rgba(56, 30, 81, .22);
}

.namido-contextual-back:focus-visible {
    outline: 3px solid rgba(39, 155, 173, .42);
    outline-offset: 3px;
}

@media (min-width: 1024px) {
    .namido-contextual-back {
        left: max(5vw, calc((100vw - 1400px) / 2 + 2.5rem));
        bottom: 2.25rem;
        min-height: 58px;
        padding: .9rem 1.35rem .9rem 1.08rem;
        gap: .62rem;
        font-size: 1.05rem;
        box-shadow: 0 15px 40px rgba(56, 30, 81, .2);
    }

    .namido-contextual-back svg {
        width: 1.5rem;
        height: 1.5rem;
    }
}

@media (max-width: 767px) {
    .namido-contextual-back {
        min-height: 46px;
        padding: .65rem .88rem .65rem .72rem;
        font-size: .88rem;
    }
}

/* Version 3.5.18 - mot de bienvenue facultatif sous le bandeau d’accueil. */
.home-welcome-note {
    margin: clamp(2.7rem, 6vw, 4.5rem) auto;
    max-width: 1080px;
}

.home-welcome-note__inner {
    background:
        radial-gradient(circle at 8% 12%, rgba(81, 199, 211, .16), transparent 30%),
        linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(247, 242, 251, .96));
    border: 1px solid rgba(90, 36, 125, .11);
    border-radius: 18px;
    box-shadow: 0 18px 44px rgba(59, 21, 88, .075);
    overflow: hidden;
    padding: clamp(2rem, 5vw, 3.4rem) clamp(1.5rem, 6vw, 4.8rem);
    position: relative;
    text-align: center;
}

.home-welcome-note__inner::before {
    background: linear-gradient(90deg, #51c7d3, #5a247d 58%, #f29b8b);
    content: "";
    height: 4px;
    inset: 0 0 auto;
    position: absolute;
}

.home-welcome-note__mark {
    color: #51aeb8;
    display: block;
    font-size: 2.15rem;
    font-weight: 800;
    height: 1.5rem;
    line-height: .55;
    margin-bottom: 1rem;
}

.home-welcome-note__content {
    color: #55505a;
    font-size: clamp(1.04rem, 1.7vw, 1.18rem);
    line-height: 1.75;
    margin: 0 auto;
    max-width: 850px;
}

.home-welcome-note__content > p {
    margin: 0;
}

.home-welcome-note__content > p + p {
    margin-top: 1rem;
}

.home-welcome-note__content > p:first-child {
    color: #3b1558;
    font-weight: 700;
}

.home-welcome-note__content > p:nth-child(2) {
    color: #5a247d;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    font-weight: 800;
    line-height: 1.25;
    margin-top: .35rem;
}

@media (max-width: 640px) {
    .home-welcome-note {
        margin: 2.5rem auto 3.8rem;
    }

    .home-welcome-note__inner {
        padding: 2rem 1.35rem 2.2rem;
    }

    .home-welcome-note__content {
        line-height: 1.65;
    }
}

/* Version 3.5.12 - texte validé de l’énergétique et fin de page guidée. */
.chinese-energy-page--validated .chinese-energy-hero h1 {
    max-width: 23ch;
}

.chinese-energy-tao-copy {
    display: grid;
    grid-template-columns: minmax(230px, .62fr) minmax(0, 1.38fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.chinese-energy-tao-copy .chinese-energy-section-heading {
    padding-top: .2rem;
}

.chinese-energy-prose--tao {
    max-width: 820px;
}

.chinese-energy-key-sentence {
    margin-block: 1.45rem !important;
    padding: 1rem 1.2rem;
    border-left: 4px solid var(--namido-coral);
    background: #fff8f7;
    color: var(--namido-purple-deep);
}

.chinese-energy-elements {
    padding: clamp(2rem, 5vw, 4.5rem);
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 30px;
    background: linear-gradient(145deg, #f4fbfb 0%, #faf8ff 100%);
}

.chinese-energy-elements__heading {
    max-width: 960px;
}

.chinese-energy-elements__heading p + p,
.chinese-energy-elements__conclusion {
    margin-top: 1.1rem;
}

.chinese-energy-elements__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
    margin-top: clamp(2rem, 4vw, 3rem);
}

.chinese-energy-element {
    position: relative;
    overflow: hidden;
    padding: clamp(1.45rem, 3vw, 2rem);
    border: 1px solid rgba(59, 21, 88, .09);
    border-radius: 22px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 12px 30px rgba(65, 44, 78, .055);
}

.chinese-energy-element::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    content: "";
    background: #66a95c;
}

.chinese-energy-element--fire::before {
    background: #ef625f;
}

.chinese-energy-element--earth::before {
    background: #d6ad4e;
}

.chinese-energy-element--metal::before {
    background: #a8a6ad;
}

.chinese-energy-element--water::before {
    background: #4d91ad;
}

.chinese-energy-element p {
    margin-top: .85rem;
    color: #554f5a;
    font-size: 1rem;
    line-height: 1.7;
}

.chinese-energy-elements__conclusion {
    max-width: 960px;
    padding-left: 1.25rem;
    border-left: 4px solid var(--namido-aqua);
}

@media (max-width: 1023px) {
    .chinese-energy-tao-copy {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    .chinese-energy-tao-copy {
        padding-inline: 0;
    }

    .chinese-energy-elements {
        padding: 2rem 1.25rem;
        border-radius: 24px;
    }

    .chinese-energy-elements__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .namido-contextual-back {
        transition: none;
    }
}

/*
 * Version 3.5.25 - comparaison Shiatsu/Sokuatsu et déroulement réellement pratique.
 */
.technique-choice-hero__answer {
    max-width: 880px;
    margin: 1.65rem auto 0;
    padding: 1.15rem 1.4rem;
    border: 1px solid rgba(90, 36, 125, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .82);
    color: #4f4655;
    font-size: clamp(1rem, 1.5vw, 1.14rem);
    line-height: 1.7;
}

.technique-common__grid,
.session-preparation__grid,
.session-frequency__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
}

.technique-common__grid article,
.session-preparation__grid article,
.session-frequency__grid article {
    min-width: 0;
    padding: 1.65rem;
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    background: #fbf9fd;
}

.technique-common__grid article:nth-child(2),
.session-preparation__grid article:nth-child(2),
.session-frequency__grid article:nth-child(2) {
    background: #f0fafa;
}

.technique-common__grid article:nth-child(3),
.session-preparation__grid article:nth-child(3),
.session-frequency__grid article:nth-child(3) {
    background: #fff3ef;
}

.technique-common__grid article > span,
.session-preparation__grid article > span {
    display: inline-flex;
    width: 2.25rem;
    height: 2.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #5a247d;
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
}

.technique-common__grid h3,
.session-preparation__grid h3,
.session-frequency__grid h3 {
    margin-top: 1rem;
    color: #4a1d67;
    font-size: 1.18rem;
    font-weight: 800;
}

.technique-common__grid p,
.session-preparation__grid p,
.session-frequency__grid p {
    margin-top: .75rem;
    color: #5f6671;
    line-height: 1.7;
}

.technique-comparison__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.25rem, 3vw, 2rem);
}

.technique-comparison-card {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(17, 24, 39, .08);
}

.technique-comparison-card--sokuatsu {
    border-color: rgba(52, 167, 167, .2);
}

.technique-comparison-card__media {
    display: grid;
    min-height: clamp(360px, 36vw, 520px);
    place-items: center;
    overflow: hidden;
    padding: clamp(.75rem, 1.7vw, 1.25rem);
    background: linear-gradient(145deg, #f8f5f1 0%, #f2f8f8 100%);
}

.technique-comparison-card__media img {
    display: block;
    width: 100%;
    height: clamp(335px, 34vw, 495px);
    border-radius: 14px;
    object-fit: contain;
}

.technique-comparison-card__body {
    display: flex;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2.2rem);
}

.technique-comparison-card__eyebrow {
    color: #5a247d;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .13em;
}

.technique-comparison-card__body h3 {
    margin-top: .65rem;
    color: #3b1558;
    font-size: clamp(1.9rem, 3vw, 2.55rem);
    font-weight: 850;
}

.technique-comparison-card__lead {
    margin-top: .85rem;
    color: #525866;
    font-size: 1.08rem;
    line-height: 1.7;
}

.technique-comparison-card dl {
    flex: 1 1 auto;
    margin-top: 1.35rem;
}

.technique-comparison-card dl > div {
    padding: 1rem 0;
    border-top: 1px solid rgba(90, 36, 125, .1);
}

.technique-comparison-card dt {
    color: #5a247d;
    font-size: .82rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.technique-comparison-card dd {
    margin-top: .38rem;
    color: #5f6671;
    line-height: 1.65;
}

.technique-comparison-card__body > a,
.technique-choice-final__actions a,
.private-technique-choice > a,
.content-owner-link > a,
.session-practical-note__links a {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    padding: .9rem 1.25rem;
    border: 1px solid rgba(90, 36, 125, .2);
    border-radius: 18px;
    background: #fff;
    color: #5a247d;
    font-weight: 780;
    line-height: 1.35;
    text-align: center;
}

.technique-comparison-card__body > a {
    width: 100%;
    margin-top: 1rem;
    border-color: #5a247d;
    background: #5a247d;
    color: #fff;
}

.technique-comparison-card--sokuatsu .technique-comparison-card__body > a {
    border-color: #287f83;
    background: #287f83;
}

.technique-orientation__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
}

.technique-orientation__grid article {
    padding: 1.55rem;
    border: 1px solid rgba(90, 36, 125, .08);
    border-radius: 18px;
    background: rgba(255, 255, 255, .86);
}

.technique-orientation__grid h3 {
    color: #4a1d67;
    font-size: 1.18rem;
    font-weight: 800;
}

.technique-orientation__grid p {
    margin-top: .7rem;
    color: #5f6671;
    line-height: 1.7;
}

.technique-choice-final__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
}

.technique-choice-final__actions .technique-choice-final__primary {
    border-color: #5a247d;
    background: #5a247d;
    color: #fff;
}

.private-technique-choice,
.content-owner-link,
.session-practical-note {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
    gap: 2rem;
    align-items: center;
}

.private-technique-choice > a,
.content-owner-link > a {
    max-width: 320px;
}

.content-owner-link--practical {
    border: 1px solid rgba(90, 36, 125, .1);
}

.session-frequency__note {
    max-width: 900px;
    margin: 1.5rem auto 0 !important;
    padding: 1rem 1.25rem;
    border-left: 4px solid #34a7a7;
    border-radius: 0 16px 16px 0;
    background: #f0fafa;
}

.private-audience-card__illustration {
    display: block;
    width: 100%;
    max-height: 190px;
    margin: .9rem 0 1rem;
    border-radius: 14px;
    object-fit: contain;
    background: linear-gradient(145deg, #f5effa, #edf9f8);
}

.session-timeline__heading {
    max-width: 850px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.session-timeline__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.session-timeline__steps {
    counter-reset: session-practical-step;
}

.session-timeline__steps li {
    position: relative;
    min-height: 4.6rem;
    padding: 0 0 1.55rem 4.25rem;
    counter-increment: session-practical-step;
}

.session-timeline__steps li:not(:last-child)::after {
    position: absolute;
    top: 2.75rem;
    bottom: .25rem;
    left: 1.35rem;
    width: 2px;
    background: rgba(90, 36, 125, .18);
    content: "";
}

.session-timeline__steps li::before {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-flex;
    width: 2.7rem;
    height: 2.7rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #5a247d;
    color: #fff;
    content: counter(session-practical-step);
    font-size: .84rem;
    font-weight: 850;
}

.session-timeline__steps h3 {
    color: #3b1558;
    font-size: 1.2rem;
    font-weight: 820;
}

.session-timeline__steps p {
    margin-top: .5rem;
    color: #5f6671;
    line-height: 1.7;
}

.session-timeline__media {
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(17, 24, 39, .09);
}

.session-timeline__media img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    background: #f6f7f8;
}

.session-timeline__media figcaption {
    padding: 1rem 1.2rem;
    color: #5a247d;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.55;
    text-align: center;
}

.session-supports__tag {
    margin-top: 0 !important;
    color: #b52f47 !important;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .08em;
}

.session-supports__tag + h3 {
    margin-top: .55rem;
}

.session-practical-note__links {
    display: grid;
    gap: .75rem;
}

.session-preparation__grid article {
    text-align: center;
}

.session-preparation__grid article > span {
    margin-inline: auto;
}

@media (hover: hover) and (pointer: fine) {
    .technique-comparison-card__body > a,
    .technique-choice-final__actions a,
    .private-technique-choice > a,
    .content-owner-link > a,
    .session-practical-note__links a {
        transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
    }

    .technique-comparison-card__body > a:hover,
    .technique-comparison-card__body > a:focus-visible,
    .technique-choice-final__actions a:hover,
    .technique-choice-final__actions a:focus-visible,
    .private-technique-choice > a:hover,
    .private-technique-choice > a:focus-visible,
    .content-owner-link > a:hover,
    .content-owner-link > a:focus-visible,
    .session-practical-note__links a:hover,
    .session-practical-note__links a:focus-visible {
        transform: translateY(-2px) scale(1.035);
        box-shadow: 0 12px 24px rgba(59, 21, 88, .1);
    }
}

@media (max-width: 1023px) {
    .technique-comparison__grid,
    .technique-common__grid,
    .session-preparation__grid,
    .session-frequency__grid,
    .session-timeline__layout,
    .private-technique-choice,
    .content-owner-link,
    .session-practical-note {
        grid-template-columns: minmax(0, 1fr);
    }

    .private-technique-choice > a,
    .content-owner-link > a {
        max-width: none;
        justify-self: start;
    }

    .technique-comparison-card__media {
        min-height: 0;
        padding: 0;
    }

    .technique-comparison-card__media img {
        width: 100%;
        height: auto;
        border-radius: 0;
    }
}

@media (max-width: 639px) {
    .technique-orientation__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .technique-choice-final__actions,
    .session-practical-note__links {
        align-items: stretch;
        flex-direction: column;
    }

    .technique-choice-final__actions a,
    .private-technique-choice > a,
    .content-owner-link > a,
    .session-practical-note__links a {
        width: 100%;
        max-width: none;
    }

    .session-timeline__steps li {
        padding-left: 3.65rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .technique-comparison-card__body > a,
    .technique-choice-final__actions a,
    .private-technique-choice > a,
    .content-owner-link > a,
    .session-practical-note__links a {
        transition: none;
    }

    .technique-comparison-card__body > a:hover,
    .technique-comparison-card__body > a:focus-visible,
    .technique-choice-final__actions a:hover,
    .technique-choice-final__actions a:focus-visible,
    .private-technique-choice > a:hover,
    .private-technique-choice > a:focus-visible,
    .content-owner-link > a:hover,
    .content-owner-link > a:focus-visible,
    .session-practical-note__links a:hover,
    .session-practical-note__links a:focus-visible {
        transform: none;
    }
}

.namido-drag-scroll {
    cursor: grab;
    touch-action: pan-y pinch-zoom;
    user-select: none;
    -webkit-user-select: none;
}

.namido-drag-scroll.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none !important;
}

.namido-drag-scroll img {
    -webkit-user-drag: none;
    user-select: none;
}

.testimonial-swipe-hint.namido-drag-hint-visible,
.photo-swipe-hint.namido-drag-hint-visible,
.mobile-swipe-hint.namido-drag-hint-visible {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    margin-top: 1.1rem;
    color: #5A247D;
    font-size: .92rem;
    font-weight: 700;
}

.testimonial-swipe-hint.namido-drag-hint-visible span,
.photo-swipe-hint.namido-drag-hint-visible span,
.mobile-swipe-hint.namido-drag-hint-visible span {
    font-size: 1.2rem;
}

.namido-carousel-progress {
    display: none;
    align-items: baseline;
    justify-content: center;
    gap: .12rem;
    margin: .65rem 0 0;
    color: #5A247D;
    font-size: .9rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: .04em;
}

.namido-carousel-progress.is-visible {
    display: flex;
}

html.namido-lightbox-open {
    overflow: hidden;
}

.namido-testimonial-lightbox {
    width: auto;
    max-width: 94vw;
    height: auto;
    max-height: 94vh;
    margin: auto;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(17, 24, 39, .32);
}

.namido-testimonial-lightbox[open] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.namido-testimonial-lightbox::backdrop {
    background: rgba(17, 24, 39, .78);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.namido-testimonial-lightbox__image {
    display: block;
    width: auto;
    height: auto;
    max-width: min(calc(94vw - 3rem), 559px);
    max-height: min(calc(94vh - 3rem), 794px);
    object-fit: contain;
}

.namido-testimonial-lightbox.is-landscape .namido-testimonial-lightbox__image {
    max-width: min(calc(94vw - 3rem), 794px);
    max-height: min(calc(94vh - 3rem), 559px);
}

.namido-testimonial-lightbox.is-nami {
    width: min(92vw, 440px);
    max-width: min(92vw, 440px);
    padding: 1rem;
}

.namido-testimonial-lightbox.is-nami .namido-testimonial-lightbox__image,
.namido-testimonial-lightbox.is-nami.is-landscape .namido-testimonial-lightbox__image {
    width: auto;
    max-width: min(calc(92vw - 2rem), 400px);
    max-height: min(calc(92vh - 2rem), 400px);
}

.namido-testimonial-lightbox__close {
    position: absolute;
    top: .65rem;
    right: .65rem;
    z-index: 2;
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(90, 36, 125, .16);
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    color: #5A247D;
    font-size: 1.65rem;
    line-height: 1;
    box-shadow: 0 10px 28px rgba(17, 24, 39, .18);
    cursor: pointer;
}

.namido-testimonial-lightbox__close:hover,
.namido-testimonial-lightbox__close:focus-visible {
    color: #f53b52;
}

.namido-page-jump {
    position: fixed;
    right: max(1.5rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 69;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    opacity: 0;
    pointer-events: none;
    transform: translateY(.5rem);
    transition: opacity .2s ease, transform .2s ease;
}

.namido-page-jump.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.namido-page-jump button {
    display: inline-flex;
    min-width: 4.7rem;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .62rem .78rem;
    border: 1px solid rgba(90, 36, 125, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    color: #5A247D;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 10px 28px rgba(56, 30, 81, .15);
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
    transition: color .2s ease, transform .2s ease, opacity .2s ease;
}

.namido-page-jump button:not(:disabled):hover,
.namido-page-jump button:not(:disabled):focus-visible {
    color: #f53b52;
    transform: translateY(-1px);
}

.namido-page-jump button:focus-visible {
    outline: 3px solid rgba(39, 155, 173, .42);
    outline-offset: 2px;
}

.namido-page-jump button:disabled {
    opacity: .35;
    cursor: default;
}

.namido-page-jump svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (min-width: 641px) and (max-width: 1023px) {
    .namido-page-jump {
        right: max(1rem, env(safe-area-inset-right));
    }
}

@media (min-width: 1024px) {
    .namido-page-jump {
        right: max(5vw, calc((100vw - 1400px) / 2 + 2.5rem), env(safe-area-inset-right));
        bottom: 2.25rem;
    }
}

@media (max-width: 640px) {
    .namido-page-jump {
        right: max(1rem, env(safe-area-inset-right));
        bottom: max(.65rem, env(safe-area-inset-bottom));
    }

    .namido-page-jump button {
        width: 44px;
        min-width: 44px;
        padding: .6rem;
    }

    .namido-page-jump button span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

.apple-shadow {
    box-shadow: 0 12px 40px rgba(90, 36, 125, 0.06), 0 2px 8px rgba(0, 0, 0, 0.025);
}
.hover-card {
    transition: transform 300ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 300ms ease;
}
.hover-card:hover {
    transform: translateY(-3px) scale(1.01);
    box-shadow: 0 20px 50px rgba(90, 36, 125, 0.11), 0 4px 12px rgba(0, 0, 0, 0.04);
}
.thin-icon { stroke-width: 1.25px; }
.soft-gradient {
    background:
        radial-gradient(circle at 14% 20%, rgba(255, 220, 207, .78), transparent 28%),
        radial-gradient(circle at 47% 8%, rgba(255, 255, 232, .92), transparent 34%),
        radial-gradient(circle at 88% 55%, rgba(40, 190, 197, .72), transparent 38%),
        linear-gradient(135deg, #e9fbff 0%, #f8f5ff 48%, #e9fffc 100%);
}
.aqua-gradient {
    background:
        radial-gradient(circle at 10% 20%, rgba(255,255,255,.75), transparent 30%),
        linear-gradient(90deg, #c9efee 0%, #8ddbdd 100%);
}
.sokuatsu-card {
    background:
        radial-gradient(circle at 88% 16%, rgba(255,255,255,.88), transparent 30%),
        radial-gradient(circle at 12% 86%, rgba(255, 220, 207, .62), transparent 36%),
        linear-gradient(135deg, #d7f4f1 0%, #c3ebe9 45%, #e7dcf1 100%);
}
.namido-logo-link {
    min-width: max-content;
}
.namido-brand {
    margin-left: .7rem;
    color: #3b1558;
    font-family: "Namido Wordmark", "Bookman Old Style", Georgia, serif;
    font-size: 2rem;
    font-style: normal;
    font-weight: 300;
    line-height: .9;
    letter-spacing: .01em;
    white-space: nowrap;
}

.namido-desktop-menu-item {
    position: relative;
}

.namido-desktop-menu-item > a {
    align-items: center;
    display: inline-flex;
    gap: .25rem;
}

.namido-desktop-menu-item > a svg {
    fill: none;
    height: 1rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    width: 1rem;
}

.namido-desktop-submenu {
    background: #fff;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(59, 21, 88, .13);
    display: flex;
    flex-direction: column;
    gap: .1rem;
    left: -.8rem;
    min-width: 15.5rem;
    opacity: 0;
    padding: .65rem;
    pointer-events: none;
    position: absolute;
    top: calc(100% + .55rem);
    transform: translateY(-.35rem);
    transition: opacity .16s ease, transform .16s ease;
}

.namido-desktop-submenu::before {
    content: "";
    height: .7rem;
    left: 0;
    position: absolute;
    right: 0;
    top: -.7rem;
}

.namido-desktop-submenu a {
    border-radius: 10px;
    color: #4b5563;
    padding: .7rem .8rem;
    white-space: nowrap;
}

.namido-desktop-submenu a:hover,
.namido-desktop-submenu a:focus-visible {
    background: #f5f3ff;
    color: #5a247d;
}

.namido-desktop-menu-item:hover .namido-desktop-submenu,
.namido-desktop-menu-item:focus-within .namido-desktop-submenu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.stress-illustration {
    width: 100%;
    max-width: 380px;
    max-height: 390px;
    object-fit: contain;
}
.stress-panel {
    padding: clamp(1.25rem, 4vw, 3rem);
}
.stop-list strong,
.desir-list strong {
    color: #f53b52;
}
.desir-list li {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
}
.desir-check {
    flex: 0 0 auto;
    color: #5A247D;
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.45;
}
.benefit-visual {
    width: min(100%, 440px);
    margin-inline: auto;
}
.benefit-visual text {
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.benefit-panel,
.enterprise-benefit-panel {
    background:
        radial-gradient(circle at 8% 5%, rgba(255, 226, 215, .66), transparent 28%),
        radial-gradient(circle at 92% 12%, rgba(184, 238, 238, .64), transparent 31%),
        linear-gradient(135deg, #fffdf8 0%, #f7ffff 52%, #fff8f6 100%);
}
.benefit-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.1rem;
}
.benefit-card,
.enterprise-benefit-card {
    min-height: 100%;
    padding: 1.55rem 1.2rem 1.7rem;
    border: 1px solid rgba(59, 21, 88, .06);
    border-radius: 18px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 15px 35px rgba(34, 25, 40, .075);
    text-align: center;
}
.benefit-card__icon,
.enterprise-benefit-card__icon {
    display: inline-flex;
    width: 4.7rem;
    height: 4.7rem;
    align-items: center;
    justify-content: center;
    color: #3b1558;
}
.benefit-card__icon svg,
.enterprise-benefit-card__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.benefit-card__icon .accent,
.enterprise-benefit-card__icon .accent {
    stroke: #1297a7;
}
.benefit-card__icon .accent-fill,
.enterprise-benefit-card__icon .accent-fill {
    fill: #1297a7;
    stroke: none;
}
.benefit-card h3,
.enterprise-benefit-card h3 {
    margin-top: .75rem;
    color: #3b1558;
    font-size: 1.25rem;
    font-weight: 800;
}
.benefit-card h3 strong {
    color: #1297a7;
    font-size: 1.65rem;
}
.benefit-card p,
.enterprise-benefit-card p {
    margin-top: .85rem;
    color: #4b5563;
    line-height: 1.6;
}
.enterprise-benefit-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.2rem;
}
.enterprise-benefit-card {
    padding-inline: 1.5rem;
}
.enterprise-setup {
    overflow: hidden;
    border: 1px solid rgba(59, 21, 88, .06);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 12px 30px rgba(34, 25, 40, .05);
}
.enterprise-setup > h3 {
    padding: .85rem 1.25rem .25rem;
    color: #3b1558;
    font-size: 1.08rem;
    font-weight: 800;
    text-align: center;
}
.enterprise-setup__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.enterprise-setup__items > div {
    display: flex;
    min-height: 90px;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1rem 1.4rem;
    text-align: left;
}
.enterprise-setup__items > div + div {
    border-left: 1px solid rgba(59, 21, 88, .12);
}
.enterprise-setup__icon {
    display: inline-flex;
    width: 3.4rem;
    height: 3.4rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    color: #3b1558;
}
.enterprise-setup__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.card-icon {
    width: 2.8rem;
    height: 2.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border: 1px solid rgba(90, 36, 125, .12);
    border-radius: 14px;
    background: #F5F3FF;
    color: #5A247D;
}
.card-icon svg {
    width: 1.45rem;
    height: 1.45rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.technique-card {
    display: flex;
    min-height: 100%;
    flex-direction: column;
}
.technique-card__link {
    margin-top: auto;
    padding-top: 1.5rem;
}
.technique-media {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: rgba(255, 255, 255, .78);
}
.technique-media__backdrop,
.technique-media__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.technique-media__backdrop {
    object-fit: cover;
    filter: blur(24px);
    opacity: .17;
    transform: scale(1.12);
}
.technique-media__image {
    z-index: 1;
    object-fit: contain;
    object-position: center;
}
.technique-detail {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 2.5rem;
    align-items: center;
}
.technique-detail--sokuatsu {
    background:
        radial-gradient(circle at 88% 16%, rgba(255,255,255,.88), transparent 30%),
        radial-gradient(circle at 12% 86%, rgba(255, 220, 207, .62), transparent 36%),
        linear-gradient(135deg, #d7f4f1 0%, #c3ebe9 45%, #e7dcf1 100%);
}
.technique-roots {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
    margin-top: .5rem;
}
.technique-root-card {
    min-width: 0;
    padding: 1.5rem;
    border: 1px solid rgba(90, 36, 125, .08);
    border-radius: 18px;
    background: #F5F3FF;
}
.technique-roots--sokuatsu .technique-root-card {
    background: rgba(255, 255, 255, .84);
}
.technique-root-card__eyebrow,
.shiatsu-current-card__eyebrow {
    color: #5A247D;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .13em;
}
.technique-root-card h3 {
    margin-top: .65rem;
    color: #111827;
    font-size: 1.15rem;
    font-weight: 800;
}
.technique-root-card p:last-child {
    margin-top: .75rem;
    color: #5f6671;
    line-height: 1.65;
}
.technique-principle {
    min-height: 100%;
    padding: 1.5rem;
    border-radius: 18px;
    background: #f8fbfb;
}
.technique-photo-strip {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding: .25rem .15rem 1rem;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.technique-photo-strip::-webkit-scrollbar {
    display: none;
}
.technique-photo-link {
    display: block;
    flex: 0 0 clamp(260px, 34vw, 430px);
    border-radius: 18px;
    scroll-snap-align: start;
}
.technique-photo-strip figure {
    width: 100%;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 35px rgba(17, 24, 39, .08);
}
.technique-photo-strip img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform .25s ease;
}
.technique-photo-link:hover img,
.technique-photo-link:focus-visible img {
    transform: scale(1.015);
}
.absence-panel {
    background:
        radial-gradient(circle at 10% 5%, rgba(255,255,255,.95), transparent 30%),
        linear-gradient(135deg, #d7f4f1 0%, #b8e5e4 58%, #ded1eb 100%);
}
.absence-stat {
    min-height: 100%;
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 18px;
    padding: 1.5rem;
}
.absence-number {
    color: #3b1558;
    font-size: clamp(2.15rem, 5vw, 3.6rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
}
.absence-bars {
    display: grid;
    gap: 1rem;
}
.absence-bar {
    overflow: hidden;
    height: 1.15rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .76);
}
.absence-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #3b1558, #6f368c);
}
.space-format {
    background: rgba(255, 255, 255, .84);
    border-radius: 18px;
    padding: 1.25rem;
}
.space-diagram {
    width: 100%;
    min-height: 150px;
}
.space-diagram text {
    fill: #3b1558;
    font-family: ui-sans-serif, system-ui, sans-serif;
    font-weight: 700;
}
.testimonial-handwriting {
    width: 100%;
    height: 250px;
    object-fit: cover;
    object-position: top;
}
.testimonial-card {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 2rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(17, 24, 39, .07);
    color: #374151;
    font-size: 1.08rem;
    line-height: 1.75;
}
.testimonial-card footer {
    margin-top: auto;
    color: #5A247D;
    font-size: .92rem;
    font-weight: 700;
}
.testimonial-image {
    display: block;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(17, 24, 39, .08);
}
.testimonial-image img {
    width: 100%;
    height: clamp(360px, 45vw, 520px);
    object-fit: cover;
    object-position: top;
    transition: transform .25s ease;
}
.testimonial-image:hover img,
.testimonial-image:focus-visible img {
    transform: scale(1.015);
}
.testimonial-gallery {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding: .25rem .15rem 1rem;
    scroll-padding-inline: .15rem;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(59, 21, 88, .35) transparent;
}
.testimonial-gallery .testimonial-image {
    flex: 0 0 clamp(270px, 31vw, 390px);
    scroll-snap-align: start;
}
.testimonial-gallery-empty {
    padding: 2.5rem;
    border: 1px dashed rgba(59, 21, 88, .2);
    border-radius: 18px;
    background: #faf8fc;
    color: #6b6470;
    text-align: center;
}
.testimonial-swipe-hint,
.mobile-swipe-hint {
    display: none;
}
.alice-drawing-image {
    display: block;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(17, 24, 39, .08);
}
.alice-drawing-image img {
    display: block;
    width: 100%;
    max-height: 540px;
    object-fit: contain;
}
.logo-story-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.logo-story-translation {
    max-width: 29rem;
    margin: 1rem auto 0;
    color: #5A247D;
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.65;
}
.jiaogulan-photo-link {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}
.jiaogulan-photo-link:hover,
.jiaogulan-photo-link:focus-visible {
    color: #5A247D;
}

.subtle-resource-link {
    color: inherit;
    font: inherit;
    text-decoration: none;
    transition: color .18s ease;
}

.subtle-resource-link:hover,
.subtle-resource-link:focus-visible {
    color: #5A247D;
}

.subtle-resource-link:focus-visible {
    outline: 2px solid rgba(90, 36, 125, .28);
    outline-offset: 3px;
    border-radius: .2rem;
}

.about-credential-visual {
    display: grid;
    justify-items: center;
    gap: 1.25rem;
}

.shiatsu-rncp-label {
    display: block;
    width: min(100%, 22rem);
    height: auto;
    margin-inline: auto;
    object-fit: contain;
}

.shiatsu-rncp-label--about {
    width: min(86%, 18rem);
}

.shiatsu-rncp-label--home {
    width: min(68%, 16rem);
}

.shiatsu-rncp-label--history {
    margin-top: 1.5rem;
}

#mobile-menu {
    max-height: calc(100vh - 5.75rem);
    max-height: calc(100svh - 5.75rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.namido-mobile-menu-button {
    display: inline-flex;
    min-width: 2.75rem;
    min-height: 2.75rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .05rem;
    padding: .1rem .25rem;
    color: #5A247D;
    border-radius: .65rem;
    line-height: 1;
    -webkit-tap-highlight-color: transparent;
}

.namido-mobile-menu-button__label {
    display: block;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
}

@media (min-width: 1280px) {
    .namido-mobile-menu-button,
    .namido-mobile-menu-button__label {
        display: none !important;
    }
}

.namido-mobile-menu-button__icon {
    display: block;
    width: 2rem;
    height: 1.75rem;
}

.namido-mobile-menu-button:focus-visible {
    outline: 2px solid rgba(90, 36, 125, .38);
    outline-offset: 2px;
}

.namido-mobile-submenu {
    border-left: 2px solid #cceeed;
    display: flex;
    flex-direction: column;
    gap: .65rem;
    margin: -.35rem 0 .2rem .45rem;
    padding: .2rem 0 .2rem 1rem;
}

.namido-mobile-submenu a {
    color: #59616c;
    font-size: .92rem;
    font-weight: 500;
}

body.admin-bar #mobile-menu {
    max-height: calc(100vh - 8.625rem);
    max-height: calc(100svh - 8.625rem);
}

.home-welcome-message {
    max-width: 62rem;
    margin: 0 auto 3rem;
    padding-bottom: 2.75rem;
    border-bottom: 1px solid rgba(90, 36, 125, .14);
    text-align: center;
    color: #374151;
    font-size: clamp(1.05rem, 1.4vw, 1.2rem);
    line-height: 1.75;
}

.home-welcome-message__title {
    margin-bottom: 1rem;
    color: #5A247D;
    font-family: "Namido Wordmark", "Bookman Old Style", Georgia, serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 300;
    line-height: 1.1;
}

.home-welcome-message__title span {
    font-family: inherit;
    font-size: .64em;
    white-space: nowrap;
}

.home-welcome-message__hello {
    margin-bottom: .65rem;
    color: #2f2634;
    font-size: clamp(1.05rem, 1.6vw, 1.25rem);
    font-weight: 700;
}

.home-welcome-message__closing {
    margin-top: 1rem;
}

.home-welcome-message__closing strong {
    color: #5A247D;
}

@media (max-width: 767px) {
    .home-welcome-message {
        margin-bottom: 2.25rem;
        padding-bottom: 2rem;
        font-size: 1rem;
        line-height: 1.65;
    }
}

.disengagement-costs {
    margin-top: 2.25rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(59, 21, 88, .12);
}

.disengagement-costs__heading {
    max-width: 52rem;
}

.disengagement-costs__heading h3 {
    margin-top: .75rem;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 700;
    line-height: 1.2;
}

.disengagement-costs__heading > p:last-child {
    margin-top: .75rem;
    color: #4b5563;
    font-size: 1.05rem;
    line-height: 1.7;
}

.disengagement-cost-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.disengagement-cost-card {
    padding: 1.35rem;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 18px;
    background: rgba(255, 255, 255, .74);
}

.disengagement-cost-card__number {
    color: #5a247d;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    font-weight: 800;
    line-height: 1.1;
}

.disengagement-cost-card h4 {
    margin-top: .75rem;
    font-weight: 700;
}

.disengagement-cost-card > p:last-child {
    margin-top: .45rem;
    color: #4b5563;
    line-height: 1.55;
}

.disengagement-cost-card--total {
    background: #f5f3ff;
}

.disengagement-costs__source {
    margin-top: 1rem;
    color: #4b5563;
    font-size: .78rem;
    line-height: 1.6;
}

.disengagement-costs__source a {
    color: #5a247d;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 767px) {
    .disengagement-cost-grid {
        grid-template-columns: 1fr;
    }
}

.home-practice-layout {
    display: grid;
    gap: 1.25rem;
    grid-template-areas:
        "intro"
        "kindness"
        "testimonial"
        "actions";
}
.home-practice-intro {
    grid-area: intro;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.home-practice-heading {
    display: grid;
    gap: 1.25rem;
}
.home-practice-kindness {
    grid-area: kindness;
}
.home-practice-testimonial {
    grid-area: testimonial;
}
.home-practice-actions {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    padding-top: .5rem;
}
.home-practice-actions a {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
}
.home-pitch-conclusion {
    max-width: 58rem;
    margin: 2.5rem auto 0;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-left: 4px solid #f53b52;
    border-radius: 0 18px 18px 0;
    background: linear-gradient(110deg, #fff4f2 0%, #f0fafa 100%);
    color: #342a39;
    text-align: center;
}
.home-pitch-conclusion p {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1rem;
    font-style: italic;
    font-weight: 600;
    line-height: 1.5;
}
@media (min-width: 768px) {
    .home-pitch-conclusion p {
        font-size: 1.125rem;
    }
}
.home-pitch-conclusion footer {
    margin-top: 1rem;
    color: #5A247D;
}
.home-pitch-conclusion__attribution,
.home-pitch-conclusion__award {
    display: block;
}
.home-pitch-conclusion__attribution {
    font-size: .85rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.home-pitch-conclusion__award {
    max-width: 46rem;
    margin: .5rem auto 0;
    font-size: .8rem;
    font-weight: 650;
    letter-spacing: .015em;
    line-height: 1.45;
    text-transform: none;
}
@media (min-width: 1024px) {
    .home-practice-layout {
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
        grid-template-areas:
            "heading empty"
            "summary testimonial"
            "kindness actions"
            "label empty-label";
        column-gap: 3rem;
        row-gap: 0;
        align-items: start;
    }
    .home-practice-intro {
        display: contents;
    }
    .home-practice-heading {
        grid-area: heading;
        padding-bottom: 1.25rem;
    }
    .home-practice-summary {
        grid-area: summary;
        padding-bottom: 1rem;
    }
    .shiatsu-rncp-label--home {
        grid-area: label;
        margin-top: 1rem;
    }
    .home-practice-kindness {
        align-self: start;
    }
    .home-practice-testimonial {
        align-self: stretch;
        padding: 1.5rem;
    }
    .home-practice-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-self: start;
        justify-content: stretch;
        padding-top: 1rem;
    }
    .home-practice-actions a {
        padding-inline: 1rem;
    }
}
@media (max-width: 1023px) {
    .home-practice-intro,
    .home-practice-kindness,
    .home-practice-testimonial {
        width: min(100%, 46rem);
        margin-inline: auto;
    }
    .home-practice-actions {
        width: min(100%, 46rem);
        margin-inline: auto;
    }
}
@media (max-width: 639px) {
    .home-practice-actions {
        flex-direction: column;
        align-items: center;
    }
    .home-practice-actions a {
        width: min(100%, 22rem);
    }
}
.sps-resource {
    display: grid;
    gap: 2.5rem;
    align-items: center;
}
.sps-resource__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.75rem;
}
.sps-resource__preview {
    display: block;
    width: min(100%, 260px);
    margin-inline: auto;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(17, 24, 39, .12);
}
.sps-resource__preview img {
    display: block;
    width: 100%;
    height: auto;
}
.sps-listening {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    background: #F0FAFA;
}
.sps-listening__source {
    display: inline-block;
    margin-top: 1.25rem;
    color: #5A247D;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .24em;
}
.sps-listening__call {
    min-width: min(100%, 19rem);
    padding: 1.5rem 1.75rem;
    border-radius: 18px;
    background: #5A247D;
    color: #fff;
    text-align: center;
}
.sps-listening__call p {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.sps-listening__call a {
    display: block;
    margin-top: .65rem;
    color: #fff;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 850;
    line-height: 1.2;
}
.sps-listening__call span {
    display: block;
    margin-top: .65rem;
    font-size: .92rem;
    font-weight: 650;
    opacity: .9;
}
/* Version 3.5.33 - encart RationCalc réuni avec la branche éditoriale. */
.rationcalc-student-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, .32fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
    overflow: hidden;
    margin: 3rem auto 4rem;
    padding: clamp(1.65rem, 4vw, 2.6rem);
    border: 1px solid rgba(90, 36, 125, .13);
    border-radius: 22px;
    background:
        radial-gradient(circle at 6% 100%, rgba(18, 151, 167, .12), transparent 29%),
        radial-gradient(circle at 92% 4%, rgba(245, 59, 82, .1), transparent 27%),
        linear-gradient(135deg, #fff 0%, #fbf8ff 58%, #fff8f6 100%);
    box-shadow: 0 18px 44px rgba(59, 21, 88, .1);
}
.rationcalc-student-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 6px;
    background: linear-gradient(90deg, #51c7d3 0 35%, #5A247D 35% 70%, #f53b52 70% 100%);
    content: "";
}
@keyframes rationcalc-anchor-arrival {
    0% {
        box-shadow: 0 0 0 0 rgba(245, 59, 82, .3), 0 18px 44px rgba(59, 21, 88, .1);
    }
    55% {
        box-shadow: 0 0 0 10px rgba(245, 59, 82, .13), 0 22px 52px rgba(59, 21, 88, .14);
    }
    100% {
        box-shadow: 0 18px 44px rgba(59, 21, 88, .1);
    }
}
.rationcalc-student-card:target {
    outline: 3px solid rgba(245, 59, 82, .48);
    outline-offset: 5px;
    animation: rationcalc-anchor-arrival 1.55s ease-out 1;
}
.rationcalc-student-card__eyebrow {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .7rem;
    align-items: center;
    margin: 0 0 .8rem;
    color: #5A247D;
    font-size: .77rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.rationcalc-student-card__eyebrow span {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #0f7f8d;
    font-weight: 700;
    letter-spacing: .06em;
}
.rationcalc-student-card__eyebrow span::before {
    width: .42rem;
    height: .42rem;
    border-radius: 50%;
    background: #f53b52;
    content: "";
}
.rationcalc-student-card h2 {
    max-width: 48rem;
    margin: 0 0 1rem;
    color: #28222d;
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -.025em;
}
.rationcalc-student-card h2 strong {
    color: #5A247D;
    font-weight: 850;
}
.rationcalc-student-card__text {
    max-width: 47rem;
    color: #5e5863;
    font-size: .98rem;
    line-height: 1.65;
}
.rationcalc-student-card__text p {
    margin: 0;
}
.rationcalc-student-card__text p + p {
    margin-top: .55rem;
}
.rationcalc-student-card__promise {
    display: inline-flex;
    margin: 1.1rem 0 0;
    padding: .55rem .78rem;
    border-left: 3px solid #f53b52;
    border-radius: 0 10px 10px 0;
    background: #fff1ec;
    color: #5A247D;
    font-size: .94rem;
    font-weight: 800;
}
.rationcalc-student-card__action {
    padding: 1.25rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0, rgba(81, 199, 211, .26), transparent 38%),
        linear-gradient(145deg, #5A247D, #3b1558);
    box-shadow: 0 14px 28px rgba(59, 21, 88, .18);
}
.rationcalc-student-card__steps {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .9rem;
    margin: 0 0 1.1rem;
    color: rgba(255, 255, 255, .84);
    font-size: .76rem;
    font-weight: 750;
}
.rationcalc-student-card__steps span {
    display: inline-flex;
    align-items: center;
    gap: .36rem;
}
.rationcalc-student-card__steps span::before {
    width: .43rem;
    height: .43rem;
    border-radius: 50%;
    background: #51c7d3;
    content: "";
}
.rationcalc-student-card__steps span:nth-child(2)::before {
    background: #fff;
}
.rationcalc-student-card__steps span:nth-child(3)::before {
    background: #f53b52;
}
.rationcalc-student-card__action a {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: .95rem 1.1rem;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, .7);
    background: #fff;
    box-shadow: 0 9px 20px rgba(24, 8, 35, .2);
    color: #5A247D;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.rationcalc-student-card__action a span {
    color: #f53b52;
    font-size: 1.2em;
}
.rationcalc-student-card__action a:hover,
.rationcalc-student-card__action a:focus-visible {
    background: #f0fafa;
    box-shadow: 0 12px 26px rgba(18, 151, 167, .2);
    color: #3b1558;
    transform: translateY(-2px);
}
@media (max-width: 760px) {
    .rationcalc-student-card {
        grid-template-columns: 1fr;
        gap: 1.35rem;
        margin-bottom: 3rem;
    }
    .rationcalc-student-card__action {
        padding: 1.25rem;
    }
    .rationcalc-student-card__action a {
        width: auto;
    }
}
@media (max-width: 480px) {
    .rationcalc-student-card__eyebrow {
        letter-spacing: .08em;
    }
    .rationcalc-student-card__eyebrow span {
        width: 100%;
    }
    .rationcalc-student-card__action a {
        width: 100%;
    }
}
@media (prefers-reduced-motion: reduce) {
    .rationcalc-student-card:target {
        animation: none;
    }
}
.soignants-benefits {
    display: grid;
    gap: .8rem;
    padding: 0;
    list-style: none;
}
.soignants-benefits li {
    position: relative;
    padding-left: 1.75rem;
    line-height: 1.65;
}
.soignants-benefits li::before {
    position: absolute;
    top: .05rem;
    left: 0;
    color: #5A247D;
    content: "✓";
    font-weight: 900;
}
.soignants-place {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}
.soignants-place__photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.soignants-place__photos img {
    width: 100%;
    aspect-ratio: 9 / 16;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 16px 38px rgba(17, 24, 39, .12);
}
.soignants-place__photos img:nth-child(2) {
    margin-top: 2rem;
}

.soignants-session-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
}

.soignants-session-gallery figure {
    min-width: 0;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(17, 24, 39, .1);
}

.soignants-session-gallery img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.soignants-session-gallery figure:nth-child(1) img {
    object-position: 78% center;
}

.soignants-session-gallery figure:nth-child(2) img {
    object-position: center 38%;
}

.soignants-session-gallery figure:nth-child(3) img {
    object-position: center 32%;
}

.soignants-session-gallery figcaption {
    padding: 1rem 1.1rem 1.15rem;
    color: #4b5563;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

@media (max-width: 1023px) {
    .soignants-place {
        grid-template-columns: 1fr;
    }
    .soignants-place__photos {
        max-width: 38rem;
        margin-inline: auto;
    }
    .mobile-swipe-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
        overflow: visible !important;
        scroll-snap-type: none !important;
    }
    .mobile-swipe-row > * {
        min-width: 0 !important;
        width: 100% !important;
        max-width: none !important;
        scroll-snap-align: none !important;
    }
    .mobile-swipe-hint {
        display: none !important;
    }
    .enterprise-practical-nav {
        display: grid !important;
        grid-template-columns: 1fr !important;
        overflow: visible !important;
    }
}

@media (max-width: 639px) {
    .soignants-session-gallery {
        grid-template-columns: 1fr;
    }
    .soignants-session-gallery img {
        aspect-ratio: 4 / 3;
    }
    .soignants-place__photos {
        grid-template-columns: 1fr;
    }
    .soignants-place__photos img {
        aspect-ratio: 4 / 5;
    }
    .soignants-place__photos img:nth-child(2) {
        margin-top: 0;
    }
}
.shiatsu-currents {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}
.shiatsu-current-card {
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(17, 24, 39, .06);
}
.shiatsu-current-card:nth-child(4n + 2),
.shiatsu-current-card:nth-child(4n + 3) {
    background: #F0FAFA;
}
.shiatsu-current-card h2 {
    margin-top: .65rem;
    color: #111827;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 800;
}
.shiatsu-current-card p:last-child {
    margin-top: .9rem;
    color: #5f6671;
    line-height: 1.7;
}
@media (min-width: 1024px) {
    .sps-resource {
        grid-template-columns: minmax(0, 1fr) 280px;
    }
}
@media (max-width: 1023px) {
    .technique-roots,
    .shiatsu-currents {
        grid-template-columns: 1fr;
    }
    .sps-listening {
        grid-template-columns: 1fr;
    }
    .sps-listening__copy {
        text-align: center;
    }
    .sps-listening__call {
        width: min(100%, 24rem);
        margin-inline: auto;
    }
    .sps-resource__content {
        text-align: center;
    }
    .sps-resource__actions {
        justify-content: center;
    }
}
@media (max-width: 639px) {
    .sps-resource__actions {
        flex-direction: column;
        align-items: center;
    }
    .sps-resource__actions a {
        width: min(100%, 22rem);
    }
}
.logo-story-nami {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem;
    border-radius: 18px;
    background: #F5F3FF;
}
.logo-story-nami__figure {
    min-width: 0;
    margin: 0;
    text-align: center;
}
.logo-story-nami__image {
    display: block;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
}
.logo-story-nami__credit {
    margin-top: .55rem;
    color: rgba(59, 21, 88, .62);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .015em;
    line-height: 1.4;
}
.logo-story-nami img {
    display: block;
    width: 100%;
    max-height: 320px;
    object-fit: contain;
}
.logo-story-frame {
    grid-column: 1 / -1;
}
@media (min-width: 1024px) {
    .logo-story-translation {
        margin-left: 0;
        margin-right: 0;
    }
}
.form-trap {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}
.form-status {
    border-radius: 14px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}
.form-status--success {
    background: #e6f7f5;
    color: #234b49;
}
.form-status--error {
    background: #fff0f2;
    color: #8b1e2d;
}
.anchor-target {
    scroll-margin-top: 8rem;
}
@media (min-width: 768px) {
    .namido-brand {
        font-size: 2.2rem;
    }
}
@media (max-width: 1023px) {
    .logo-story-nami__figure {
        width: min(100%, 380px);
        margin-inline: auto;
    }
    .logo-story-nami img {
        max-height: 280px;
    }
    .mobile-swipe-row {
        display: flex !important;
        gap: 1rem !important;
        overflow-x: auto;
        margin-right: -1.5rem;
        padding: .25rem 1.5rem 1rem .1rem;
        scroll-padding-inline: .1rem 1.5rem;
        scroll-snap-type: x mandatory;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .mobile-swipe-row::-webkit-scrollbar {
        display: none;
    }
    .mobile-swipe-row > * {
        flex: 0 0 min(42vw, 360px);
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .testimonial-swipe-hint,
    .mobile-swipe-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .7rem;
        margin-top: 1.25rem;
        color: #5A247D;
        font-size: .92rem;
        font-weight: 700;
    }
    .testimonial-swipe-hint span,
    .mobile-swipe-hint span {
        font-size: 1.2rem;
    }
    .enterprise-setup__items {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .enterprise-setup__items::-webkit-scrollbar {
        display: none;
    }
    .enterprise-setup__items > div {
        flex: 0 0 45%;
        scroll-snap-align: start;
    }
}
@media (max-width: 767px) {
    .technique-detail {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }
    .logo-story-grid {
        grid-template-columns: 1fr;
    }
    .logo-story-nami {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .logo-story-nami__figure {
        width: min(88%, 340px);
    }
    .logo-story-nami img {
        max-height: 260px;
    }
    .mobile-swipe-row > * {
        flex-basis: 82%;
    }
    .mobile-swipe-row--rates > * {
        flex-basis: 76%;
    }
    .enterprise-setup__items > div {
        flex-basis: 82%;
    }
    .enterprise-setup__items > div + div {
        border-left: 1px solid rgba(59, 21, 88, .12);
    }
    .testimonial-image img {
        height: 112vw;
        max-height: 580px;
    }
    .testimonial-gallery {
        display: flex;
        gap: 1rem;
        overflow-x: auto;
        margin-right: -1.5rem;
        padding: .25rem 1.5rem 1rem .1rem;
        scroll-padding-inline: .1rem 1.5rem;
        scroll-snap-type: x mandatory;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .testimonial-gallery::-webkit-scrollbar {
        display: none;
    }
    .testimonial-gallery .testimonial-image {
        flex: 0 0 82%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
}
@media (max-width: 420px) {
    .namido-brand {
        margin-left: .45rem;
        font-size: 1.72rem;
    }
}
.namido-announcement-bar {
    background: #c9efee;
    color: #4b3457;
}
.namido-announcement-inner {
    width: min(1400px, 100%);
    min-height: 42px;
    margin: 0 auto;
    padding: 8px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}
.namido-announcement-inner p {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    text-align: center;
    line-height: 1.45;
}
.namido-announcement-inner strong {
    padding: 2px 9px;
    border: 1px solid rgba(75, 52, 87, .38);
    border-radius: 999px;
    font-size: .75rem;
    letter-spacing: .08em;
}
.namido-announcement-inner a {
    padding: 4px 11px;
    border-radius: 999px;
    background: #3b1558;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: transform .2s ease, background .2s ease;
}
.namido-announcement-inner a:hover {
    background: #5a247d;
    transform: translateY(-1px);
}
.namido-announcement-inner button {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}
.namido-announcement-inner button:hover {
    background: rgba(255, 255, 255, .55);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(90, 36, 125, .35);
    outline-offset: 3px;
}
html { scroll-behavior: smooth; }
body.admin-bar .namido-navigation-shell { top: 32px; }
@media (max-width: 782px) {
    body.admin-bar .namido-navigation-shell { top: 46px; }
}
@media (max-width: 640px) {
    .namido-announcement-inner {
        padding-inline: 12px;
        gap: 6px;
    }
    .namido-announcement-inner p {
        gap: 6px 8px;
        font-size: .9rem;
    }
}

.photo-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.photo-slide {
    display: block;
    overflow: hidden;
    border-radius: 18px;
    background: #f7fbfb;
    box-shadow: 0 12px 30px rgba(17, 24, 39, .07);
}
.photo-slide__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.photo-slide__backdrop,
.photo-slide__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.photo-slide__backdrop {
    object-fit: cover;
    filter: blur(22px);
    opacity: .22;
    transform: scale(1.1);
}
.photo-slide__image {
    z-index: 1;
    object-fit: contain;
    object-position: center;
    transition: transform .25s ease;
}
.photo-slide:hover .photo-slide__image,
.photo-slide:focus-visible .photo-slide__image {
    transform: scale(1.015);
}
.photo-swipe-hint {
    display: none;
}
.google-reviews-actions {
    padding: 1.5rem;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 18px;
    background: #fff;
    text-align: center;
    box-shadow: 0 12px 35px rgba(90, 36, 125, .055);
}
.google-reviews-actions p {
    color: #4b5563;
    line-height: 1.65;
}
.google-reviews-actions > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin-top: 1rem;
}
.google-reviews-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: .72rem 1.1rem;
    border: 1px solid rgba(90, 36, 125, .2);
    border-radius: 14px;
    color: #5A247D;
    font-weight: 700;
}
.google-reviews-actions .google-reviews-actions__primary {
    border-color: #5A247D;
    background: #5A247D;
    color: #fff;
}

@media (max-width: 767px) {
    .photo-strip {
        display: flex;
        gap: 1rem;
        overflow-x: auto;
        margin-right: -1.5rem;
        padding: .25rem 1.5rem 1rem .1rem;
        scroll-padding-inline: .1rem 1.5rem;
        scroll-snap-type: x mandatory;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .photo-strip::-webkit-scrollbar {
        display: none;
    }
    .photo-strip .photo-slide {
        flex: 0 0 82%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .photo-swipe-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .7rem;
        margin-top: 1rem;
        color: #5A247D;
        font-size: .92rem;
        font-weight: 700;
    }
    .photo-swipe-hint span {
        font-size: 1.2rem;
    }
    .google-reviews-actions > div {
        flex-direction: column;
    }
}

/* Blog Namidō */
.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.namido-blog-page,
.namido-single-page {
    padding-top: 4.5rem;
}
.namido-blog-hero,
.namido-single-header {
    padding: clamp(2.2rem, 6vw, 4.5rem);
    border-radius: 18px;
    text-align: center;
}
.namido-blog-eyebrow {
    margin: 0 0 1rem;
    color: #5A247D;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .18em;
}
.namido-blog-hero h1,
.namido-single-header h1 {
    max-width: 950px;
    margin: 0 auto;
    font-size: clamp(2.3rem, 5vw, 4.2rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
}
.namido-blog-hero > p:last-child,
.namido-blog-archive-description,
.namido-blog-archive-description p {
    max-width: 780px;
    margin: 1.25rem auto 0;
    color: #4b5563;
    font-size: clamp(1.05rem, 2vw, 1.28rem);
    line-height: 1.7;
}
.namido-blog-categories {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .65rem;
    margin: 2.5rem auto 0;
}
.namido-blog-categories a {
    padding: .65rem 1rem;
    border: 1px solid rgba(90, 36, 125, .15);
    border-radius: 999px;
    background: #fff;
    color: #3b1558;
    font-size: .9rem;
    font-weight: 700;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.namido-blog-categories a:hover,
.namido-blog-categories a:focus-visible,
.namido-blog-categories a.is-current {
    background: #3b1558;
    color: #fff;
    transform: translateY(-1px);
}
.namido-blog-list {
    margin-top: 3rem;
}
.namido-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}
.namido-blog-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(17, 24, 39, .07);
    transition: transform .22s ease, box-shadow .22s ease;
}
.namido-blog-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 46px rgba(59, 21, 88, .11);
}
.namido-blog-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #eefafa;
}
.namido-blog-card__media > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}
.namido-blog-card:hover .namido-blog-card__media > img {
    transform: scale(1.025);
}
.namido-blog-card__placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 25% 20%, rgba(255, 215, 200, .7), transparent 32%),
        radial-gradient(circle at 80% 75%, rgba(105, 216, 221, .6), transparent 38%),
        #f7f4ff;
}
.namido-blog-card__placeholder img {
    width: 104px;
    height: 104px;
    object-fit: contain;
}
.namido-blog-card__body {
    padding: 1.5rem;
}
.namido-blog-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .75rem;
    color: #6b7280;
    font-size: .82rem;
    font-weight: 600;
}
.namido-blog-card__meta span {
    color: #5A247D;
}
.namido-blog-card__title {
    margin: .75rem 0 0;
    color: #111827;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.25;
}
.namido-blog-card__title a:hover {
    color: #5A247D;
}
.namido-blog-card__excerpt {
    margin: .85rem 0 0;
    color: #4b5563;
    line-height: 1.65;
}
.namido-blog-card__link {
    display: inline-flex;
    gap: .45rem;
    margin-top: 1.2rem;
    color: #5A247D;
    font-weight: 800;
}
.namido-blog-card__link:hover span {
    transform: translateX(3px);
}
.namido-blog-card__link span {
    transition: transform .2s ease;
}
.namido-blog-empty {
    padding: 3rem;
    border-radius: 18px;
    background: #fff;
    text-align: center;
    box-shadow: 0 14px 40px rgba(17, 24, 39, .06);
}
.namido-blog-empty h2 {
    color: #3b1558;
    font-size: 1.7rem;
    font-weight: 800;
}
.namido-blog-empty p,
.namido-blog-empty a {
    margin-top: .75rem;
    color: #4b5563;
}
.navigation.pagination {
    margin-top: 3rem;
}
.nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem;
}
.nav-links .page-numbers {
    display: inline-flex;
    min-width: 42px;
    min-height: 42px;
    padding: .6rem .85rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(90, 36, 125, .15);
    border-radius: 12px;
    background: #fff;
    color: #3b1558;
    font-weight: 700;
}
.nav-links .page-numbers.current,
.nav-links .page-numbers:hover {
    background: #3b1558;
    color: #fff;
}
.namido-single-header {
    text-align: left;
}
.namido-single-header h1 {
    margin-left: 0;
}
.namido-single-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.25rem;
    color: #5f6671;
    font-weight: 600;
}
.namido-single-meta a {
    color: #5A247D;
}
.namido-single-featured {
    overflow: hidden;
    margin: 2rem 0 0;
    border-radius: 18px;
    background: #fff;
}
.namido-single-featured img {
    width: 100%;
    max-height: 650px;
    object-fit: cover;
}
.namido-article-content {
    margin: 2rem 0 0;
    padding: clamp(1.6rem, 5vw, 4rem);
    border-radius: 18px;
    background: #fff;
    color: #303744;
    font-size: 1.08rem;
    line-height: 1.85;
    box-shadow: 0 14px 40px rgba(17, 24, 39, .06);
}
.namido-article-content > * + * {
    margin-top: 1.35rem;
}
.namido-article-content h2,
.namido-article-content h3 {
    color: #1f2937;
    font-weight: 800;
    line-height: 1.25;
}
.namido-article-content h2 {
    margin-top: 2.5rem;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
}
.namido-article-content h3 {
    margin-top: 2rem;
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
}
.namido-article-content ul,
.namido-article-content ol {
    padding-left: 1.4rem;
}
.namido-article-content ul {
    list-style: disc;
}
.namido-article-content ol {
    list-style: decimal;
}
.namido-article-content li + li {
    margin-top: .55rem;
}
.namido-article-content a {
    color: #5A247D;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.namido-article-content blockquote {
    padding: 1.25rem 1.5rem;
    border-left: 4px solid #5A247D;
    border-radius: 0 14px 14px 0;
    background: #F5F3FF;
    color: #4b3457;
    font-size: 1.15rem;
}
.namido-article-content img,
.namido-article-content .wp-block-image {
    border-radius: 16px;
}
.namido-single-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
}
.namido-single-tags {
    color: #6b7280;
    font-size: .92rem;
}
.namido-single-tags a,
.namido-blog-back {
    color: #5A247D;
    font-weight: 700;
}
.namido-post-navigation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2rem;
}
.namido-post-navigation > div:last-child {
    text-align: right;
}
.namido-post-navigation a {
    display: block;
    height: 100%;
    padding: 1.25rem;
    border: 1px solid rgba(90, 36, 125, .12);
    border-radius: 16px;
    background: #fff;
    color: #303744;
    font-weight: 700;
}
.namido-post-navigation a span {
    display: block;
    margin-bottom: .35rem;
    color: #5A247D;
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

@media (max-width: 1023px) {
    .namido-blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .namido-blog-page,
    .namido-single-page {
        padding-top: 2.5rem;
    }
    .namido-blog-hero,
    .namido-single-header {
        padding: 2rem 1.5rem;
    }
    .namido-blog-categories {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        margin-right: -1.5rem;
        padding: 0 1.5rem .75rem 0;
        scrollbar-width: none;
    }
    .namido-blog-categories::-webkit-scrollbar {
        display: none;
    }
    .namido-blog-categories a {
        flex: 0 0 auto;
    }
    .namido-blog-grid:not(.mobile-swipe-row) {
        grid-template-columns: 1fr;
    }
    .namido-blog-card__body {
        padding: 1.25rem;
    }
    .namido-article-content {
        padding: 1.5rem;
    }
    .namido-post-navigation {
        grid-template-columns: 1fr;
    }
    .namido-post-navigation > div:last-child {
        text-align: left;
    }
}

/*
 * Galeries de photos sur ordinateur
 *
 * Les photos se manipulent comme les pages d’un écran de téléphone :
 * glisser vers la gauche révèle la suite. Les barres natives sont masquées
 * au profit de l’indication de glissement, commune aux autres carrousels.
 */
@media (min-width: 1024px) {
    .photo-strip {
        display: flex;
        gap: 1rem;
        overflow-x: auto;
        padding: .25rem .15rem 1.35rem;
        scroll-padding-inline: .15rem;
        scroll-snap-type: x proximity;
        overscroll-behavior-inline: contain;
    }

    .photo-strip .photo-slide {
        flex: 0 0 clamp(330px, 36%, 440px);
        scroll-snap-align: start;
    }

    .technique-photo-strip,
    .testimonial-gallery,
    .photo-strip {
        scrollbar-width: none;
    }

    .technique-photo-strip::-webkit-scrollbar,
    .testimonial-gallery::-webkit-scrollbar,
    .photo-strip::-webkit-scrollbar {
        display: none;
    }
}

/* Parcours entreprise : la page principale convainc, la page pratique organise. */
.enterprise-journey {
    background: linear-gradient(115deg, rgba(245, 243, 255, .96), rgba(229, 249, 248, .96));
}
.enterprise-journey__steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-journey__steps article {
    min-width: 0;
    padding: 1.5rem;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
}
.enterprise-journey__steps article > span {
    display: inline-flex;
    width: 2.2rem;
    height: 2.2rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #5A247D;
    color: #fff;
    font-weight: 800;
}
.enterprise-journey__steps h3 {
    margin-top: 1rem;
    color: #3b1558;
    font-size: 1.05rem;
    font-weight: 800;
}
.enterprise-journey__steps p {
    margin-top: .55rem;
    color: #5f6671;
    font-size: .92rem;
    line-height: 1.55;
}

.enterprise-practical-nav {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: .75rem;
}
.enterprise-practical-nav a {
    display: inline-flex;
    min-height: 46px;
    padding: .7rem 1rem;
    align-items: center;
    gap: .6rem;
    border: 1px solid rgba(90, 36, 125, .14);
    border-radius: 999px;
    background: rgba(255, 255, 255, .86);
    color: #3b1558;
    font-weight: 750;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.enterprise-practical-nav a:hover,
.enterprise-practical-nav a:focus-visible {
    border-color: rgba(90, 36, 125, .35);
    background: #fff;
    transform: translateY(-2px);
}
.enterprise-practical-nav a span {
    display: inline-flex;
    width: 1.8rem;
    height: 1.8rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #5A247D;
    color: #fff;
    font-size: .8rem;
}
.enterprise-practical-step {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 1.5rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid rgba(90, 36, 125, .08);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(17, 24, 39, .055);
}
.enterprise-practical-step > div {
    width: 100%;
    min-width: 0;
}
.enterprise-practical-step__number {
    display: flex;
    width: 3.5rem;
    height: 3.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(145deg, #5A247D, #6f368c);
    color: #fff;
    font-size: 1.35rem;
    font-weight: 850;
    box-shadow: 0 10px 24px rgba(90, 36, 125, .2);
}
.enterprise-practical-card {
    min-width: 0;
    padding: 1.45rem;
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    background: #fafafa;
}
.enterprise-practical-card--aqua {
    background: #F0FAFA;
}
.enterprise-practical-card--violet {
    background: #F5F3FF;
}
.enterprise-practical-card h3,
.enterprise-booking-flow h3 {
    color: #3b1558;
    font-size: 1.05rem;
    font-weight: 800;
}
.enterprise-practical-card p,
.enterprise-booking-flow p {
    margin-top: .55rem;
    color: #5f6671;
    line-height: 1.6;
}
.enterprise-practical-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-practical-note {
    margin-top: 1.5rem;
    padding: 1.15rem 1.3rem;
    border-radius: 16px;
    background: #F5F3FF;
    color: #4b5563;
    line-height: 1.65;
}
.enterprise-practical-measure {
    color: #3b1558 !important;
    font-size: 1.08rem;
}
.enterprise-booking-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.enterprise-booking-flow article {
    display: flex;
    gap: .9rem;
    padding: 1.35rem;
    border-radius: 18px;
    background: #F0FAFA;
}
.enterprise-booking-flow article > span {
    display: flex;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #5A247D;
    color: #fff;
    font-weight: 800;
}

@media (max-width: 1023px) {
    .enterprise-journey__steps,
    .enterprise-practical-options {
        display: grid;
        grid-template-columns: 1fr;
        overflow: visible;
    }
    .enterprise-journey__steps > article,
    .enterprise-practical-options > article {
        width: 100%;
    }
    .enterprise-booking-flow {
        grid-template-columns: 1fr;
    }
    .enterprise-practical-page > section:first-child {
        padding: clamp(1.5rem, 5vw, 3rem);
    }
    .enterprise-practical-page > section:first-child h1 {
        font-size: clamp(2rem, 7vw, 3.5rem);
        overflow-wrap: break-word;
    }
    .enterprise-practical-step {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .enterprise-practical-page .enterprise-practical-step h2,
    .enterprise-practical-page .enterprise-practical-step h3,
    .enterprise-practical-page .enterprise-practical-step p {
        max-width: 100%;
        overflow-wrap: break-word;
    }
    .enterprise-practical-page .enterprise-practical-step > div > .grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .enterprise-practical-page .enterprise-practical-options.mobile-swipe-row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem !important;
        width: 100%;
        margin-right: 0;
        padding: 0;
        overflow: visible;
        scroll-snap-type: none;
    }
    .enterprise-practical-page .enterprise-practical-options.mobile-swipe-row > * {
        width: auto;
        min-width: 0;
        max-width: none;
        flex: none;
    }
    .enterprise-practical-page .enterprise-practical-step .mobile-swipe-hint {
        display: none !important;
    }
    .enterprise-practical-nav {
        align-items: stretch;
        flex-direction: column;
        flex-wrap: nowrap;
        width: 100%;
        max-width: 100%;
        overflow: visible;
        padding: .25rem 0;
    }
    .enterprise-practical-nav::-webkit-scrollbar {
        display: none;
    }
    .enterprise-practical-nav a {
        flex: none;
        width: 100%;
    }
    .enterprise-practical-nav-hint {
        display: none !important;
    }
}
@media (max-width: 767px) {
    .enterprise-practical-step__number {
        width: 3rem;
        height: 3rem;
    }
    .enterprise-practical-page .enterprise-practical-options.mobile-swipe-row {
        grid-template-columns: 1fr;
    }
}
/* Actions compactes de l’en-tête : enveloppe vert d’eau, calendrier violet. */
.namido-header-action {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    height: 46px;
    justify-content: center;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
    width: 46px;
}

.namido-header-action svg {
    fill: none;
    height: 23px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 23px;
}

.namido-header-action--contact {
    background: #cceeed;
    box-shadow: 0 8px 20px rgba(39, 155, 173, .16);
    color: #235f65;
}

.namido-header-action--booking {
    background: #5a247d;
    box-shadow: 0 8px 20px rgba(90, 36, 125, .2);
    color: #fff;
}

.namido-header-action:hover,
.namido-header-action:focus-visible {
    filter: brightness(1.04);
    transform: translateY(-2px);
}

.namido-header-action:focus-visible {
    outline: 3px solid rgba(90, 36, 125, .28);
    outline-offset: 3px;
}

.namido-mobile-actions {
    display: flex;
    gap: 14px;
}

.namido-compact-header-actions {
    align-items: center;
    display: flex;
    gap: .45rem;
    margin-left: auto;
    margin-right: .45rem;
}

/* Une seule série d’actions rapides est affichée à chaque largeur d’écran. */
@media (max-width: 1279px) {
    .namido-header-actions {
        display: none !important;
    }
}

@media (min-width: 1280px) {
    .namido-compact-header-actions {
        display: none !important;
    }
}

@media (max-width: 520px) {
    .namido-header {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

    .namido-header .namido-logo-link img {
        height: 2.75rem;
    }

    .namido-brand {
        font-size: 1.42rem;
        margin-left: .35rem;
    }

    .namido-compact-header-actions {
        gap: .3rem;
        margin-right: .2rem;
    }

    .namido-compact-header-actions .namido-header-action {
        height: 2.25rem;
        width: 2.25rem;
    }

    .namido-compact-header-actions .namido-header-action svg {
        height: 1.15rem;
        width: 1.15rem;
    }

    .namido-mobile-menu-button {
        min-width: 2.45rem;
        padding-inline: .05rem;
    }

    .namido-mobile-menu-button__icon {
        width: 1.75rem;
    }
}

/* Page « Les cinq mouvements » - version 3.6.35. */
.five-movements-page {
    --movement-wood: #4f8f55;
    --movement-fire: #e8654e;
    --movement-earth: #c7953b;
    --movement-metal: #7b8796;
    --movement-water: #2679ad;
}

.five-movements-eyebrow {
    color: #5a247d;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.4;
    text-transform: uppercase;
}

.five-movements-hero {
    align-items: stretch;
    background: linear-gradient(135deg, #f5f3ff 0%, #f0fafa 48%, #fffaf0 100%);
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
}

.five-movements-hero__copy {
    align-self: center;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.five-movements-hero h1 {
    font-size: clamp(2.45rem, 4.8vw, 4.75rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.02;
    margin-top: 1rem;
}

.five-movements-hero h1 span {
    color: #5a247d;
    display: block;
}

.five-movements-hero__copy > p:not(.five-movements-eyebrow) {
    color: #4b5563;
    font-size: 1.08rem;
    line-height: 1.75;
    margin-top: 1.15rem;
}

.five-movements-hero__copy .five-movements-lead {
    color: #374151;
    font-size: clamp(1.17rem, 1.8vw, 1.42rem);
    line-height: 1.6;
}

.five-movements-hero__figure {
    align-items: center;
    background: rgba(255, 255, 255, .44);
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0;
    min-width: 0;
    padding: 1.5rem 1.5rem 1.25rem;
}

.five-movements-hero__figure img {
    border-radius: 18px;
    display: block;
    height: auto;
    width: 100%;
}

.five-movements-hero__figure figcaption {
    color: #5b6472;
    font-size: .92rem;
    font-style: italic;
    line-height: 1.5;
    margin: .8rem auto 0;
    max-width: 46rem;
    text-align: center;
}

.five-movements-balance {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}

.five-movements-balance__figure {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(45, 40, 80, .09);
    margin: 0;
    overflow: hidden;
    padding: 1rem;
}

.five-movements-balance__figure img {
    border-radius: 14px;
    width: 100%;
}

.five-movements-balance__figure figcaption {
    color: #5b6472;
    font-size: .92rem;
    font-style: italic;
    line-height: 1.55;
    margin: .85rem auto .15rem;
    max-width: 44rem;
    padding-inline: .35rem;
    text-align: center;
}

.five-movements-balance__copy h2,
.five-movements-intro h2,
.five-movements-cycles h2,
.five-movements-practice h2,
.five-movements-cta h2 {
    color: #111827;
    font-size: clamp(2rem, 3.4vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.08;
    margin-top: .9rem;
}

.five-movements-balance__copy > p:not(.five-movements-eyebrow),
.five-movements-intro p:not(.five-movements-eyebrow),
.five-movements-cycles__heading > p:not(.five-movements-eyebrow),
.five-movements-practice > div > p:not(.five-movements-eyebrow) {
    color: #4b5563;
    font-size: 1.08rem;
    line-height: 1.75;
    margin-top: 1rem;
}

.five-movements-tradition-note {
    background: #f5f3ff;
    border-left: 4px solid #5a247d;
    border-radius: 0 14px 14px 0;
    color: #4b5563;
    display: grid;
    gap: .35rem;
    line-height: 1.6;
    margin-top: 1.5rem;
    padding: 1rem 1.15rem;
}

.five-movements-tradition-note strong {
    color: #3b1558;
}

.five-movements-intro {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 16px 44px rgba(45, 40, 80, .07);
    padding: clamp(2rem, 5vw, 4rem);
}

.five-movements-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.five-movement-card {
    --movement-color: #5a247d;
    background: #fff;
    border-radius: 18px;
    border-top: 6px solid var(--movement-color);
    box-shadow: 0 16px 38px rgba(35, 39, 58, .08);
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.35rem;
}

.five-movement-card--wood {
    --movement-color: var(--movement-wood);
}

.five-movement-card--fire {
    --movement-color: var(--movement-fire);
}

.five-movement-card--earth {
    --movement-color: var(--movement-earth);
}

.five-movement-card--metal {
    --movement-color: var(--movement-metal);
}

.five-movement-card--water {
    --movement-color: var(--movement-water);
}

.five-movement-card__icon {
    align-items: center;
    background: color-mix(in srgb, var(--movement-color) 11%, white);
    border-radius: 999px;
    color: var(--movement-color);
    display: flex;
    height: 4.15rem;
    justify-content: center;
    margin-bottom: 1rem;
    width: 4.15rem;
}

.five-movement-card__icon svg {
    fill: none;
    height: 2.65rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
    width: 2.65rem;
}

.five-movement-card__season {
    color: var(--movement-color);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .11em;
    line-height: 1.4;
}

.five-movement-card h3 {
    color: #111827;
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.2;
    margin-top: .45rem;
}

.five-movement-card__verb {
    color: var(--movement-color);
    font-size: 1rem;
    font-weight: 750;
    margin-top: .25rem;
}

.five-movement-card > p:not(.five-movement-card__season):not(.five-movement-card__verb) {
    color: #4b5563;
    line-height: 1.65;
    margin-top: 1rem;
}

.five-movement-card dl {
    border-top: 1px solid #e5e7eb;
    display: grid;
    gap: .8rem;
    margin-top: auto;
    padding-top: 1.15rem;
}

.five-movement-card dt {
    color: #6b7280;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.five-movement-card dd {
    color: #27303f;
    font-size: .94rem;
    line-height: 1.45;
    margin: .18rem 0 0;
}

.five-movements-cycles {
    background: linear-gradient(145deg, #effafa, #f7f3ff);
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(45, 40, 80, .08);
    padding: clamp(2rem, 5vw, 4.25rem);
}

.five-movements-cycles__heading {
    max-width: 54rem;
}

.five-movements-cycles__grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 2.25rem;
}

.five-movement-cycle {
    background: rgba(255, 255, 255, .88);
    border-radius: 18px;
    padding: clamp(1.5rem, 3vw, 2.35rem);
}

.five-movement-cycle__label {
    color: #5a247d;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .15em;
}

.five-movement-cycle h3 {
    color: #111827;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.2;
    margin-top: .65rem;
}

.five-movement-cycle > p:not(.five-movement-cycle__label) {
    color: #4b5563;
    line-height: 1.7;
    margin-top: .9rem;
}

.five-movement-cycle ol {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1.4rem;
}

.five-movement-cycle ol li {
    align-items: center;
    color: #27303f;
    display: inline-flex;
    font-size: .88rem;
    font-weight: 800;
    gap: .55rem;
}

.five-movement-cycle ol li:not(:last-child)::after {
    color: #5a247d;
    content: "→";
}

.five-movement-cycle ol li:last-child::after {
    color: #5a247d;
    content: "↻";
    margin-left: .55rem;
}

.five-movement-cycle__conclusion {
    border-left: 3px solid #279bad;
    font-weight: 650;
    padding-left: 1rem;
}

.five-movements-practice {
    align-items: center;
    background: #fff;
    display: grid;
    gap: clamp(2rem, 5vw, 4rem);
    grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr);
    padding: clamp(2rem, 5vw, 4rem);
}

.five-movements-practice blockquote {
    background: linear-gradient(145deg, #5a247d, #6f368c);
    border-radius: 18px;
    color: #fff;
    margin: 0;
    padding: clamp(1.6rem, 4vw, 2.6rem);
}

.five-movements-practice blockquote p {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.38rem, 2.2vw, 1.9rem);
    font-style: italic;
    font-weight: 600;
    line-height: 1.45;
}

.five-movements-cta {
    background: linear-gradient(135deg, #f5f3ff, #fff);
    border-radius: 18px;
    box-shadow: 0 16px 44px rgba(45, 40, 80, .07);
    padding: clamp(2rem, 5vw, 4rem);
    text-align: center;
}

.five-movements-cta > p {
    color: #4b5563;
    font-size: 1.08rem;
    line-height: 1.7;
    margin: 1rem auto 0;
    max-width: 48rem;
}

.five-movements-cta > div {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    justify-content: center;
    margin-top: 1.8rem;
}

.five-movements-cta a {
    border-radius: 18px;
    font-weight: 750;
    padding: 1rem 1.5rem;
    transition: transform .18s ease, box-shadow .18s ease;
}

.five-movements-cta a:hover,
.five-movements-cta a:focus-visible {
    transform: translateY(-2px);
}

.five-movements-cta a:focus-visible {
    outline: 3px solid rgba(90, 36, 125, .28);
    outline-offset: 3px;
}

.five-movements-cta__primary {
    background: #5a247d;
    box-shadow: 0 10px 24px rgba(90, 36, 125, .2);
    color: #fff;
}

.five-movements-cta__secondary {
    background: #fff;
    border: 1px solid rgba(90, 36, 125, .22);
    color: #5a247d;
}

@media (max-width: 1199px) {
    .five-movements-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .five-movement-card--water {
        grid-column: 1 / -1;
        justify-self: center;
        max-width: calc(50% - .5rem);
        width: 100%;
    }
}

@media (max-width: 900px) {
    .five-movements-hero,
    .five-movements-balance,
    .five-movements-practice {
        grid-template-columns: minmax(0, 1fr);
    }

    .five-movements-hero__figure {
        padding-top: 0;
    }

    .five-movements-balance__copy {
        order: -1;
    }

    .five-movements-cycles__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .five-movements-page {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .five-movements-hero {
        margin-top: 2rem;
    }

    .five-movements-hero__copy {
        padding: 2rem 1.35rem 1.5rem;
    }

    .five-movements-hero__figure {
        padding: 0 .75rem 1rem;
    }

    .five-movements-hero__figure figcaption {
        font-size: .82rem;
        padding-inline: .4rem;
    }

    .five-movements-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .five-movement-card--water {
        grid-column: auto;
        max-width: none;
    }

    .five-movement-card {
        padding: 1.35rem;
    }

    .five-movement-cycle ol {
        align-items: flex-start;
        flex-direction: column;
    }

    .five-movement-cycle ol li:not(:last-child)::after,
    .five-movement-cycle ol li:last-child::after {
        content: "↓";
    }

    .five-movements-cta > div {
        align-items: stretch;
        flex-direction: column;
    }
}

.namido-gallery-zoom-hint {
    align-items: center;
    color: #5a247d;
    display: flex;
    font-size: .95rem;
    font-weight: 700;
    gap: .45rem;
    justify-content: center;
    margin: 0 0 1rem;
}

.namido-gallery-zoom-hint span {
    font-size: 1.35rem;
    line-height: 1;
}

/* Pages « Énergétique traditionnelle chinoise » et « Ma pratique » - version 3.5.0. */
.chinese-energy-page,
.personal-practice-page {
    --namido-ink: #282330;
    --namido-purple: #5a247d;
    --namido-purple-deep: #3b1558;
    --namido-coral: #f53b52;
    --namido-aqua: #6ed6df;
    --namido-cream: #fffaf5;
    color: var(--namido-ink);
    margin-inline: auto;
    max-width: 1400px;
    padding-inline: clamp(1.5rem, 4vw, 3rem);
}

.chinese-energy-page h1,
.chinese-energy-page h2,
.chinese-energy-page h3,
.personal-practice-page h1,
.personal-practice-page h2,
.personal-practice-page h3 {
    color: var(--namido-ink);
    letter-spacing: -.025em;
}

.chinese-energy-page h1,
.personal-practice-page h1 {
    font-size: clamp(2.75rem, 6vw, 5.8rem);
    font-weight: 800;
    line-height: .98;
}

.chinese-energy-page h2,
.personal-practice-page h2 {
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 760;
    line-height: 1.06;
}

.chinese-energy-page h3,
.personal-practice-page h3 {
    font-size: clamp(1.25rem, 2.3vw, 1.65rem);
    font-weight: 750;
    line-height: 1.16;
}

.chinese-energy-page p,
.personal-practice-page p {
    font-size: clamp(1.03rem, 1.4vw, 1.16rem);
    line-height: 1.75;
}

.chinese-energy-page em,
.personal-practice-page em {
    font-family: Georgia, "Times New Roman", serif;
}

.chinese-energy-eyebrow,
.personal-practice-eyebrow {
    color: var(--namido-purple) !important;
    font-size: .82rem !important;
    font-weight: 800;
    letter-spacing: .17em;
    line-height: 1.35 !important;
    margin: 0 0 1rem;
    text-transform: uppercase;
}

.chinese-energy-button,
.personal-practice-button {
    align-items: center;
    background: var(--namido-purple);
    border: 1px solid var(--namido-purple);
    border-radius: 18px;
    color: #fff;
    display: inline-flex;
    font-size: 1rem;
    font-weight: 750;
    justify-content: center;
    min-height: 3.4rem;
    padding: .9rem 1.4rem;
    text-align: center;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.chinese-energy-button:hover,
.personal-practice-button:hover {
    box-shadow: 0 14px 30px rgba(59, 21, 88, .18);
    color: #fff;
    transform: translateY(-2px);
}

.chinese-energy-button--secondary,
.personal-practice-button--secondary {
    background: #fff;
    color: var(--namido-purple);
}

.chinese-energy-button--secondary:hover,
.personal-practice-button--secondary:hover {
    color: var(--namido-purple);
}

.chinese-energy-hero {
    align-items: center;
    background:
        radial-gradient(circle at 12% 18%, rgba(110, 214, 223, .28), transparent 31%),
        radial-gradient(circle at 91% 70%, rgba(245, 59, 82, .13), transparent 32%),
        linear-gradient(145deg, #fff 0%, #fbf8ff 56%, #fff9f3 100%);
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 30px;
    box-shadow: 0 24px 60px rgba(65, 44, 78, .1);
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    grid-template-columns: minmax(0, 1.12fr) minmax(350px, .88fr);
    margin-block: clamp(3rem, 6vw, 5rem);
    overflow: hidden;
    padding: clamp(2rem, 6vw, 5.5rem);
    position: relative;
}

.chinese-energy-hero::after {
    border: 1px solid rgba(90, 36, 125, .13);
    border-radius: 50%;
    content: "";
    height: 280px;
    left: -150px;
    position: absolute;
    top: -155px;
    width: 280px;
}

.chinese-energy-hero__copy {
    position: relative;
    z-index: 1;
}

.chinese-energy-hero h1 {
    max-width: 11ch;
}

.chinese-energy-hero__lead {
    color: var(--namido-purple-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.4rem, 2.5vw, 2rem) !important;
    font-style: italic;
    line-height: 1.35 !important;
    margin: 2rem 0 1.25rem;
    max-width: 29ch;
}

.chinese-energy-hero__copy > p:last-child {
    max-width: 64ch;
}

.chinese-energy-hero__visuals {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.chinese-energy-hero__visuals figure {
    background: rgba(255, 255, 255, .8);
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 22px;
    box-shadow: 0 18px 38px rgba(65, 44, 78, .1);
    margin: 0;
    padding: .8rem;
}

.chinese-energy-hero__visuals figure:first-child {
    transform: translateY(-2.2rem) rotate(-2deg);
}

.chinese-energy-hero__visuals figure:last-child {
    transform: rotate(1.4deg);
}

.chinese-energy-hero__visuals img {
    border-radius: 16px;
    display: block;
    height: auto;
    width: 100%;
}

.chinese-energy-hero__visuals figcaption,
.chinese-energy-yinyang figcaption,
.chinese-energy-movements figcaption {
    color: #665f6c;
    font-size: .8rem;
    line-height: 1.45;
    padding: .75rem .35rem .2rem;
}

.chinese-energy-intro {
    align-items: start;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
    margin-block: clamp(5rem, 10vw, 9rem);
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.chinese-energy-prose {
    border-left: 4px solid var(--namido-aqua);
    padding-left: clamp(1.4rem, 3vw, 3rem);
}

.chinese-energy-prose p + p,
.chinese-energy-tao p + p,
.chinese-energy-yinyang p + p,
.chinese-energy-movements__copy p + p,
.chinese-energy-practice p + p,
.personal-practice-page section p + p {
    margin-top: 1.1rem;
}

.chinese-energy-tao {
    align-items: center;
    background: var(--namido-purple-deep);
    border-radius: 30px;
    color: #fff;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr);
    margin-block: clamp(4rem, 8vw, 7rem);
    overflow: hidden;
    padding: clamp(2rem, 6vw, 5rem);
    position: relative;
}

.chinese-energy-tao::before {
    background: radial-gradient(circle, rgba(255, 255, 255, .14), transparent 65%);
    content: "";
    height: 560px;
    left: -260px;
    position: absolute;
    top: -110px;
    width: 560px;
}

.chinese-energy-tao h2,
.chinese-energy-tao h3,
.chinese-energy-tao p {
    color: #fff;
}

.chinese-energy-tao .chinese-energy-eyebrow {
    color: #a8f2ee !important;
}

.chinese-energy-tao__symbol {
    height: 300px;
    position: relative;
    width: 100%;
}

.chinese-energy-tao__symbol span {
    border: 2px solid rgba(255, 255, 255, .48);
    border-radius: 50%;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
}

.chinese-energy-tao__symbol span:nth-child(1) {
    height: 95px;
    width: 95px;
}

.chinese-energy-tao__symbol span:nth-child(2) {
    height: 190px;
    width: 190px;
}

.chinese-energy-tao__symbol span:nth-child(3) {
    border-color: rgba(110, 214, 223, .78);
    height: 290px;
    width: 290px;
}

.chinese-energy-tao blockquote {
    border-left: 3px solid var(--namido-aqua);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2.3vw, 1.75rem);
    font-style: italic;
    margin: 2rem 0;
    padding: .4rem 0 .4rem 1.5rem;
}

.chinese-energy-tao cite {
    display: block;
    font-family: inherit;
    font-size: .78em;
    margin-top: .55rem;
    opacity: .78;
}

.chinese-energy-concepts {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-block: clamp(5rem, 9vw, 8rem);
}

.chinese-energy-concepts article {
    background: #fff;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 24px;
    box-shadow: 0 14px 38px rgba(65, 44, 78, .07);
    min-height: 290px;
    padding: clamp(1.6rem, 4vw, 3rem);
    position: relative;
}

.chinese-energy-concepts article:nth-child(2),
.chinese-energy-concepts article:nth-child(3) {
    background: #fbf9ff;
}

.chinese-energy-concepts__number {
    color: rgba(59, 21, 88, .18);
    display: block;
    font-size: 3.8rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 1.4rem;
}

.chinese-energy-concepts h2 {
    font-size: clamp(1.65rem, 3vw, 2.3rem);
}

.chinese-energy-concepts p {
    color: #5f5865;
    margin-top: 1rem;
}

.chinese-energy-yinyang,
.chinese-energy-movements {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(290px, .75fr) minmax(0, 1.25fr);
    margin-block: clamp(5rem, 10vw, 9rem);
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.chinese-energy-yinyang figure,
.chinese-energy-movements figure {
    background: #fff;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 26px;
    box-shadow: 0 20px 46px rgba(65, 44, 78, .1);
    margin: 0;
    padding: 1rem;
}

.chinese-energy-yinyang img,
.chinese-energy-movements img {
    border-radius: 18px;
    display: block;
    height: auto;
    width: 100%;
}

.chinese-energy-yinyang h2,
.chinese-energy-movements h2 {
    margin-bottom: 1.5rem;
}

.chinese-energy-qi {
    background: linear-gradient(145deg, #f0fcfb 0%, #faf8ff 100%);
    border: 1px solid rgba(72, 190, 202, .16);
    border-radius: 30px;
    margin-block: clamp(5rem, 9vw, 8rem);
    padding: clamp(2rem, 6vw, 5rem);
}

.chinese-energy-qi__heading {
    max-width: 760px;
}

.chinese-energy-qi__grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 3rem;
}

.chinese-energy-qi__grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.chinese-energy-qi__grid article {
    background: rgba(255, 255, 255, .88);
    border-radius: 22px;
    padding: clamp(1.4rem, 3vw, 2.2rem);
}

.chinese-energy-elements-list {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    list-style: none;
    margin: 1.25rem 0;
    padding: 0;
}

.chinese-energy-elements-list li {
    background: #f5f1fb;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 999px;
    color: var(--namido-purple-deep);
    font-weight: 750;
    padding: .55rem .95rem;
}

.chinese-energy-qi__grid p {
    color: #5f5865;
    font-size: 1rem;
    margin-top: 1rem;
}

.chinese-energy-movements {
    grid-template-columns: minmax(0, 1.18fr) minmax(330px, .82fr);
}

.chinese-energy-movements .chinese-energy-button {
    margin-top: 1.8rem;
}

.chinese-energy-imbalance {
    margin-block: clamp(5rem, 10vw, 9rem);
}

.chinese-energy-imbalance__heading {
    margin-inline: auto;
    max-width: 920px;
    text-align: center;
}

.chinese-energy-imbalance__heading > p:last-child {
    color: #625a67;
    margin: 1.4rem auto 0;
    max-width: 720px;
}

.chinese-energy-imbalance__states {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 3rem;
}

.chinese-energy-imbalance__states article {
    background: var(--namido-cream);
    border: 1px solid rgba(245, 59, 82, .13);
    border-radius: 22px;
    padding: 1.7rem;
}

.chinese-energy-imbalance__states span {
    align-items: center;
    background: #fff;
    border-radius: 50%;
    color: var(--namido-coral);
    display: flex;
    font-size: 1.55rem;
    font-weight: 800;
    height: 3.1rem;
    justify-content: center;
    margin-bottom: 1.4rem;
    width: 3.1rem;
}

.chinese-energy-imbalance__states p {
    color: #625a67;
    font-size: .98rem;
    margin-top: .8rem;
}

.chinese-energy-imbalance__conclusion {
    border-left: 4px solid var(--namido-coral);
    margin: 2rem auto 0;
    max-width: 980px;
    padding: .5rem 0 .5rem 1.4rem;
}

.chinese-energy-imbalance__text {
    border-left: 4px solid var(--namido-coral);
    margin: 2rem auto 0;
    max-width: 980px;
    padding: .5rem 0 .5rem 1.4rem;
}

.chinese-energy-imbalance__text p + p {
    margin-top: 1.1rem;
}

.chinese-energy-practice {
    align-items: center;
    background: linear-gradient(145deg, #fff 0%, #f8f3ff 100%);
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 30px;
    box-shadow: 0 22px 56px rgba(65, 44, 78, .09);
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr);
    margin-block: clamp(5rem, 9vw, 8rem);
    padding: clamp(2rem, 6vw, 5rem);
}

.chinese-energy-practice blockquote {
    background: var(--namido-purple-deep);
    border-radius: 24px;
    color: #fff;
    margin: 0;
    padding: clamp(2rem, 4vw, 3.2rem);
    text-align: center;
}

.chinese-energy-practice blockquote p {
    color: #e9dbf2;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    font-style: italic;
}

.chinese-energy-practice blockquote strong {
    display: block;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    line-height: 1.08;
    margin-top: 1rem;
}

.chinese-energy-cta {
    background:
        radial-gradient(circle at 85% 20%, rgba(110, 214, 223, .28), transparent 30%),
        #f5f1fb;
    border-radius: 30px;
    margin-block: clamp(5rem, 9vw, 8rem);
    padding: clamp(2.2rem, 6vw, 5rem);
    text-align: center;
}

.chinese-energy-cta > p:not(.chinese-energy-eyebrow) {
    margin: 1.3rem auto 0;
    max-width: 720px;
}

.chinese-energy-cta > div {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    justify-content: center;
    margin-top: 2rem;
}

.personal-practice-hero {
    background:
        radial-gradient(circle at 12% 18%, rgba(245, 59, 82, .14), transparent 27%),
        radial-gradient(circle at 84% 17%, rgba(110, 214, 223, .26), transparent 32%),
        linear-gradient(145deg, #fff 0%, #fbf8ff 58%, #f5ffff 100%);
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 30px;
    box-shadow: 0 24px 60px rgba(65, 44, 78, .1);
    margin-block: clamp(3rem, 6vw, 5rem);
    min-height: 520px;
    overflow: hidden;
    padding: clamp(2.2rem, 7vw, 6rem);
    position: relative;
}

.personal-practice-hero h1 {
    max-width: 900px;
    position: relative;
    z-index: 2;
}

.personal-practice-hero h1 span {
    color: var(--namido-purple);
    font-family: Georgia, "Times New Roman", serif;
    font-style: italic;
    font-weight: 600;
}

.personal-practice-hero__lead {
    color: var(--namido-purple-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.6vw, 2rem) !important;
    font-style: italic;
    margin-top: 2rem;
    position: relative;
    z-index: 2;
}

.personal-practice-hero__wave {
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
}

.personal-practice-hero__wave svg {
    display: block;
    height: 210px;
    width: 100%;
}

.personal-practice-hero__wave path:first-child {
    fill: rgba(90, 36, 125, .13);
}

.personal-practice-hero__wave path:last-child {
    fill: none;
    stroke: rgba(245, 59, 82, .46);
    stroke-width: 4;
}

.personal-practice-voie-voix {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
    margin-block: clamp(5rem, 10vw, 9rem);
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.personal-practice-voie-voix__words {
    display: grid;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(4rem, 9vw, 7.4rem);
    font-style: italic;
    font-weight: 700;
    letter-spacing: -.07em;
    line-height: .72;
}

.personal-practice-voie-voix__words span:first-child {
    color: rgba(90, 36, 125, .92);
}

.personal-practice-voie-voix__words span:last-child {
    color: rgba(110, 214, 223, .72);
    margin-left: .75em;
    mix-blend-mode: multiply;
}

.personal-practice-voie-voix strong {
    color: var(--namido-purple-deep);
}

.personal-practice-belief {
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
    margin-block: clamp(5rem, 10vw, 9rem);
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.personal-practice-belief > div:last-child {
    border-left: 4px solid var(--namido-coral);
    padding-left: clamp(1.4rem, 3vw, 3rem);
}

.personal-practice-observe,
.personal-practice-respect,
.personal-practice-perspective {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 30px;
    box-shadow: 0 18px 48px rgba(65, 44, 78, .08);
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
    margin-block: clamp(5rem, 9vw, 8rem);
    padding: clamp(2rem, 6vw, 5rem);
}

.personal-practice-observe blockquote,
.personal-practice-respect blockquote,
.personal-practice-perspective blockquote {
    background: linear-gradient(145deg, var(--namido-purple-deep), #6b2f84);
    border-radius: 24px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2.5vw, 1.85rem);
    font-style: italic;
    line-height: 1.45;
    margin: 0;
    padding: clamp(2rem, 4vw, 3.2rem);
}

.personal-practice-observe blockquote strong,
.personal-practice-perspective blockquote strong {
    display: block;
    font-size: 1.12em;
    margin-top: .7rem;
}

.personal-practice-textures {
    margin-block: clamp(5rem, 10vw, 9rem);
}

.personal-practice-textures__heading {
    margin-inline: auto;
    max-width: 870px;
    text-align: center;
}

.personal-practice-textures__heading > p:last-child {
    color: #625a67;
    margin-top: 1.3rem;
}

.personal-practice-textures__grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 3rem;
}

.personal-practice-texture {
    background: #fff;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 26px;
    box-shadow: 0 16px 42px rgba(65, 44, 78, .07);
    padding: clamp(1.5rem, 4vw, 2.7rem);
}

.personal-practice-texture__sample {
    align-items: center;
    background: #f5f2f7;
    border-radius: 50%;
    display: flex;
    height: 116px;
    justify-content: center;
    margin-bottom: 1.7rem;
    width: 116px;
}

.personal-practice-texture__sample span {
    background: linear-gradient(145deg, #8bdde2, #7771cf);
    border-radius: 50%;
    display: block;
    height: 72px;
    width: 72px;
}

.personal-practice-texture--balanced .personal-practice-texture__sample span {
    box-shadow: inset 8px 9px 15px rgba(255, 255, 255, .62), inset -7px -9px 16px rgba(68, 50, 133, .25);
    transform: scale(.94, 1.04);
}

.personal-practice-texture--full .personal-practice-texture__sample span {
    background: linear-gradient(145deg, #f97b89, #a83a70);
    box-shadow: inset 4px 4px 7px rgba(255, 255, 255, .26), 0 0 0 7px rgba(245, 59, 82, .12);
    transform: scale(1.08);
}

.personal-practice-texture--empty .personal-practice-texture__sample span {
    background: radial-gradient(circle at 42% 40%, #d8f4ef 0 30%, #aab3df 66%, #8a65b3 100%);
    box-shadow: inset 13px 14px 18px rgba(71, 48, 119, .27);
    transform: scale(.82);
}

.personal-practice-texture__label {
    color: var(--namido-purple) !important;
    font-size: .75rem !important;
    font-weight: 850;
    letter-spacing: .16em;
    margin-bottom: .7rem;
}

.personal-practice-texture > p:last-child {
    color: #625a67;
    font-size: 1rem;
    margin-top: .9rem;
}

.personal-practice-body-right {
    background:
        radial-gradient(circle at 86% 20%, rgba(110, 214, 223, .24), transparent 25%),
        var(--namido-purple-deep);
    border-radius: 30px;
    color: #fff;
    margin-block: clamp(5rem, 9vw, 8rem);
    padding: clamp(2.2rem, 7vw, 6rem);
}

.personal-practice-body-right h2,
.personal-practice-body-right p {
    color: #fff;
}

.personal-practice-body-right .personal-practice-eyebrow {
    color: #9fe8e9 !important;
}

.personal-practice-body-right h2 {
    font-size: clamp(2.8rem, 7vw, 6rem);
}

.personal-practice-body-right p {
    max-width: 900px;
}

.personal-practice-body-right h2 + p {
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    margin-top: 2rem;
}

.personal-practice-dialogue {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr);
    margin-block: clamp(5rem, 10vw, 9rem);
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.personal-practice-dialogue__lines {
    align-items: center;
    display: flex;
    height: 250px;
    justify-content: center;
    position: relative;
}

.personal-practice-dialogue__lines span {
    border: 2px solid rgba(90, 36, 125, .28);
    border-radius: 48% 52% 61% 39% / 42% 44% 56% 58%;
    position: absolute;
}

.personal-practice-dialogue__lines span:nth-child(1) { height: 60px; transform: rotate(-14deg); width: 100px; }
.personal-practice-dialogue__lines span:nth-child(2) { border-color: rgba(110, 214, 223, .58); height: 100px; transform: rotate(-7deg); width: 162px; }
.personal-practice-dialogue__lines span:nth-child(3) { height: 140px; transform: rotate(0); width: 224px; }
.personal-practice-dialogue__lines span:nth-child(4) { border-color: rgba(245, 59, 82, .35); height: 180px; transform: rotate(7deg); width: 286px; }
.personal-practice-dialogue__lines span:nth-child(5) { height: 220px; transform: rotate(14deg); width: 348px; }

.personal-practice-sensations {
    align-items: center;
    background: linear-gradient(145deg, #f2fdfd, #fff);
    border: 1px solid rgba(72, 190, 202, .18);
    border-radius: 30px;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
    margin-block: clamp(5rem, 9vw, 8rem);
    padding: clamp(2rem, 6vw, 5rem);
}

.personal-practice-sensations__quote {
    align-items: center;
    aspect-ratio: 1;
    background: #fff;
    border: 1px solid rgba(59, 21, 88, .1);
    border-radius: 50%;
    box-shadow: 0 18px 44px rgba(65, 44, 78, .09);
    display: flex;
    justify-content: center;
    margin-inline: auto;
    max-width: 310px;
    padding: 2.2rem;
    text-align: center;
}

.personal-practice-sensations__quote p {
    color: var(--namido-purple-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2.4vw, 1.7rem);
    font-style: italic;
    line-height: 1.4;
}

.personal-practice-itakimochi {
    align-items: center;
    display: grid;
    gap: clamp(2.5rem, 6vw, 6rem);
    grid-template-columns: minmax(370px, 1.05fr) minmax(0, .95fr);
    margin-block: clamp(5rem, 10vw, 9rem);
}

.personal-practice-itakimochi figure {
    margin: 0;
}

.personal-practice-itakimochi img {
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 28px;
    box-shadow: 0 24px 56px rgba(65, 44, 78, .12);
    display: block;
    height: auto;
    width: 100%;
}

.personal-practice-itakimochi figcaption {
    color: #665f6c;
    font-size: .86rem;
    line-height: 1.45;
    padding: .85rem .5rem 0;
}

.personal-practice-itakimochi a {
    color: var(--namido-purple);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.personal-practice-respect {
    background: linear-gradient(145deg, #fffaf5, #fff);
}

.personal-practice-respect blockquote {
    background: #fff;
    border: 1px solid rgba(245, 59, 82, .18);
    color: var(--namido-coral);
    font-weight: 700;
}

.personal-practice-river {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(330px, .9fr) minmax(0, 1.1fr);
    margin-block: clamp(5rem, 10vw, 9rem);
    padding-inline: clamp(0rem, 4vw, 4rem);
}

.personal-practice-river__visual {
    background: #f8fbfb;
    border-radius: 28px;
    overflow: hidden;
}

.personal-practice-river__visual svg {
    display: block;
    height: auto;
    width: 100%;
}

.personal-practice-river__visual .river-bank {
    fill: none;
    stroke: #dfcbb8;
    stroke-linecap: round;
    stroke-width: 32;
}

.personal-practice-river__visual .river-water {
    fill: url(#river-gradient);
    opacity: .88;
}

.personal-practice-river__visual .river-light {
    fill: none;
    stroke: rgba(255, 255, 255, .72);
    stroke-linecap: round;
    stroke-width: 9;
}

.personal-practice-river__visual circle {
    fill: #79604e;
    opacity: .72;
}

.personal-practice-perspective {
    background: linear-gradient(145deg, #f9f5ff, #fff);
}

.personal-practice-perspective .personal-practice-button {
    margin-top: 1.7rem;
}

.personal-practice-vehicle {
    align-items: center;
    background: var(--namido-purple-deep);
    border-radius: 30px;
    color: #fff;
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
    margin-block: clamp(5rem, 9vw, 8rem);
    overflow: hidden;
    padding: clamp(2rem, 7vw, 6rem);
}

.personal-practice-vehicle h2,
.personal-practice-vehicle p {
    color: #fff;
}

.personal-practice-vehicle .personal-practice-eyebrow {
    color: #a8f2ee !important;
}

.personal-practice-vehicle__path {
    height: 300px;
    position: relative;
}

.personal-practice-vehicle__path::before {
    border: 4px dashed rgba(255, 255, 255, .42);
    border-bottom: 0;
    border-left-color: transparent;
    border-radius: 50%;
    content: "";
    height: 260px;
    inset: 10px 2% auto;
    position: absolute;
    transform: rotate(24deg);
}

.personal-practice-vehicle__path span {
    background: var(--namido-aqua);
    border: 5px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
    height: 24px;
    position: absolute;
    width: 24px;
}

.personal-practice-vehicle__path span:nth-child(1) { bottom: 23px; left: 2%; }
.personal-practice-vehicle__path span:nth-child(2) { left: 51%; top: 15px; }
.personal-practice-vehicle__path span:nth-child(3) { bottom: 41px; right: 1%; }

.personal-practice-closing {
    background:
        radial-gradient(circle at 50% 100%, rgba(110, 214, 223, .28), transparent 40%),
        linear-gradient(145deg, #fff 0%, #fbf8ff 100%);
    border: 1px solid rgba(59, 21, 88, .09);
    border-radius: 30px;
    margin-block: clamp(5rem, 10vw, 9rem);
    overflow: hidden;
    padding: clamp(2.4rem, 8vw, 7rem);
    text-align: center;
}

.personal-practice-closing > p {
    color: #625a67;
}

.personal-practice-closing h2 {
    margin-top: 1.2rem;
}

.personal-practice-closing__motto {
    border-bottom: 1px solid rgba(59, 21, 88, .14);
    border-top: 1px solid rgba(59, 21, 88, .14);
    display: flex;
    flex-direction: column;
    gap: .55rem;
    margin: 2.6rem auto 0;
    max-width: 830px;
    padding: 2rem 1rem;
}

.personal-practice-closing__motto strong {
    color: var(--namido-purple);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    font-style: italic;
}

.personal-practice-closing__motto span {
    font-size: clamp(1.05rem, 1.7vw, 1.3rem);
}

.personal-practice-closing__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    justify-content: center;
    margin-top: 2.5rem;
}

@media (max-width: 1023px) {
    .chinese-energy-hero,
    .chinese-energy-tao,
    .chinese-energy-yinyang,
    .chinese-energy-movements,
    .chinese-energy-practice,
    .personal-practice-observe,
    .personal-practice-respect,
    .personal-practice-perspective,
    .personal-practice-itakimochi {
        grid-template-columns: minmax(0, 1fr);
    }

    .chinese-energy-hero__visuals {
        margin-inline: auto;
        max-width: 680px;
    }

    .chinese-energy-tao__symbol {
        height: 260px;
        margin-inline: auto;
        max-width: 360px;
    }

    .chinese-energy-yinyang figure,
    .chinese-energy-movements figure {
        margin-inline: auto;
        max-width: 620px;
    }

    .chinese-energy-movements__copy {
        order: 2;
    }

    .chinese-energy-movements figure {
        order: 1;
    }

    .chinese-energy-qi__grid,
    .chinese-energy-qi__grid--two,
    .personal-practice-textures__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .chinese-energy-qi__grid article {
        min-height: auto;
    }

    .chinese-energy-imbalance__states {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .personal-practice-itakimochi figure {
        margin-inline: auto;
        max-width: 820px;
    }
}

@media (max-width: 767px) {
    .chinese-energy-page,
    .personal-practice-page {
        padding-inline: 1rem;
    }

    .chinese-energy-hero,
    .chinese-energy-intro,
    .chinese-energy-tao,
    .chinese-energy-concepts,
    .chinese-energy-yinyang,
    .chinese-energy-qi,
    .chinese-energy-movements,
    .chinese-energy-imbalance,
    .chinese-energy-practice,
    .chinese-energy-cta,
    .personal-practice-hero,
    .personal-practice-voie-voix,
    .personal-practice-belief,
    .personal-practice-observe,
    .personal-practice-textures,
    .personal-practice-body-right,
    .personal-practice-dialogue,
    .personal-practice-sensations,
    .personal-practice-itakimochi,
    .personal-practice-respect,
    .personal-practice-river,
    .personal-practice-perspective,
    .personal-practice-vehicle,
    .personal-practice-closing {
        margin-block: 3.8rem;
    }

    .chinese-energy-hero {
        grid-template-columns: minmax(0, 1fr);
        padding: 2rem 1.35rem;
    }

    .chinese-energy-hero__visuals {
        grid-template-columns: minmax(0, 1fr);
    }

    .chinese-energy-hero__visuals figure:first-child,
    .chinese-energy-hero__visuals figure:last-child {
        transform: none;
    }

    .chinese-energy-hero__visuals figure:first-child {
        margin-inline: auto;
        max-width: 280px;
    }

    .chinese-energy-intro,
    .personal-practice-voie-voix,
    .personal-practice-belief,
    .personal-practice-dialogue,
    .personal-practice-sensations,
    .personal-practice-river,
    .personal-practice-vehicle {
        grid-template-columns: minmax(0, 1fr);
    }

    .chinese-energy-concepts,
    .chinese-energy-imbalance__states {
        grid-template-columns: minmax(0, 1fr);
    }

    .chinese-energy-concepts article {
        min-height: auto;
    }

    .chinese-energy-tao,
    .chinese-energy-qi,
    .chinese-energy-practice,
    .chinese-energy-cta,
    .personal-practice-observe,
    .personal-practice-sensations,
    .personal-practice-respect,
    .personal-practice-perspective,
    .personal-practice-vehicle,
    .personal-practice-closing {
        border-radius: 24px;
        padding: 2rem 1.35rem;
    }

    .chinese-energy-tao__symbol {
        height: 220px;
    }

    .chinese-energy-tao__symbol span:nth-child(3) {
        height: 220px;
        width: 220px;
    }

    .chinese-energy-tao__symbol span:nth-child(2) {
        height: 145px;
        width: 145px;
    }

    .chinese-energy-tao__symbol span:nth-child(1) {
        height: 72px;
        width: 72px;
    }

    .chinese-energy-yinyang,
    .chinese-energy-movements,
    .personal-practice-river {
        padding-inline: 0;
    }

    .personal-practice-hero {
        min-height: 460px;
        padding: 2rem 1.35rem;
    }

    .personal-practice-hero__wave svg {
        height: 150px;
    }

    .personal-practice-belief > div:last-child {
        padding-left: 1.25rem;
    }

    .personal-practice-body-right {
        border-radius: 24px;
        padding: 2.5rem 1.35rem;
    }

    .personal-practice-dialogue__lines {
        height: 210px;
        overflow: hidden;
    }

    .personal-practice-dialogue__lines span:nth-child(5) {
        display: none;
    }

    .personal-practice-itakimochi {
        grid-template-columns: minmax(0, 1fr);
    }

    .personal-practice-itakimochi img {
        border-radius: 22px;
    }

    .personal-practice-vehicle__path {
        height: 240px;
    }

    .chinese-energy-cta > div,
    .personal-practice-closing__actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Priorité finale : aucune carte de contenu ne reste hors écran sur mobile. */
@media (max-width: 1023px) {
    .mobile-swipe-row,
    .rates-card-grid,
    .enterprise-benefit-grid,
    .enterprise-journey__steps,
    .enterprise-practical-options,
    .enterprise-support-grid,
    .enterprise-booking-options,
    .enterprise-booking-rules {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 1.15rem !important;
        width: 100% !important;
        margin-right: 0 !important;
        padding-right: 0 !important;
        overflow: visible !important;
        scroll-snap-type: none !important;
    }

    .mobile-swipe-row > *,
    .rates-card-grid > * {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: none !important;
        scroll-snap-align: none !important;
    }

    .mobile-swipe-hint {
        display: none !important;
    }

    .enterprise-journey__steps a {
        min-height: 0;
    }
}

/* Version 3.5.2 - hiérarchie éditoriale plus sobre et lisible. */
.chinese-energy-page,
.personal-practice-page,
.five-movements-page,
.shiatsu-history-page,
.shiatsu-currents-page,
.enterprise-evidence-page {
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.chinese-energy-page,
.personal-practice-page {
    --namido-purple: #5A247D;
    --namido-purple-deep: #3B1558;
}

.chinese-energy-page h1,
.personal-practice-page h1 {
    font-size: clamp(2.35rem, 4.4vw, 3.8rem);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.08;
}

.chinese-energy-page h2,
.personal-practice-page h2 {
    font-size: clamp(1.7rem, 2.7vw, 2.45rem);
    font-weight: 700;
    letter-spacing: -.018em;
    line-height: 1.18;
}

.chinese-energy-page h3,
.personal-practice-page h3 {
    font-size: clamp(1.18rem, 1.8vw, 1.45rem);
    font-weight: 700;
    line-height: 1.25;
}

.chinese-energy-page em,
.personal-practice-page em,
.chinese-energy-hero__lead,
.personal-practice-hero h1 span,
.personal-practice-page blockquote,
.personal-practice-sensations__quote p {
    font-family: inherit;
}

.personal-practice-hero h1 span {
    color: var(--namido-purple);
    font-style: italic;
    font-weight: 700;
}

.chinese-energy-page section h2 + p,
.personal-practice-page section h2 + p {
    margin-top: 1.25rem;
}

.chinese-energy-page section h3 + p,
.personal-practice-page section h3 + p {
    margin-top: .75rem;
}

.chinese-energy-page > section,
.personal-practice-page > section {
    margin-block: clamp(3.5rem, 6vw, 5.5rem);
}

.chinese-energy-hero {
    gap: 0;
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(2rem, 5vw, 4rem);
}

.chinese-energy-hero__copy {
    max-width: 960px;
}

.chinese-energy-hero h1 {
    max-width: 20ch;
}

.chinese-energy-hero__lead {
    font-size: clamp(1.2rem, 2vw, 1.55rem) !important;
    margin: 1.45rem 0 1rem;
}

.chinese-energy-yinyang h2,
.chinese-energy-movements h2 {
    margin-bottom: 0;
}

.chinese-energy-qi__grid {
    margin-top: 2.25rem;
}

.chinese-energy-imbalance__heading {
    max-width: 760px;
}

.chinese-energy-practice {
    gap: 0;
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(2rem, 5vw, 4rem);
}

.chinese-energy-practice > div {
    max-width: 920px;
}

.personal-practice-hero {
    min-height: 400px;
    padding: clamp(2.2rem, 5.5vw, 4.5rem);
}

.personal-practice-hero h1 {
    max-width: 940px;
}

.personal-practice-observe,
.personal-practice-dialogue,
.personal-practice-vehicle {
    gap: 0;
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(2rem, 5vw, 4rem);
}

.personal-practice-observe > div,
.personal-practice-dialogue > div,
.personal-practice-vehicle > div {
    max-width: 900px;
}

.personal-practice-textures__grid {
    margin-top: 2.25rem;
}

.personal-practice-texture {
    padding: clamp(1.4rem, 3vw, 2.2rem);
}

.personal-practice-itakimochi {
    gap: clamp(2rem, 5vw, 4rem);
}

.personal-practice-closing {
    padding: clamp(2.2rem, 5vw, 4.5rem);
}

.five-movements-hero h1 {
    font-size: clamp(2.2rem, 4vw, 3.75rem);
    font-weight: 700;
    line-height: 1.08;
}

.five-movements-balance__copy h2,
.five-movements-intro h2,
.five-movements-cycles h2,
.five-movements-practice h2,
.five-movements-cta h2 {
    font-size: clamp(1.7rem, 2.7vw, 2.45rem);
    font-weight: 700;
    line-height: 1.18;
}

.shiatsu-history-page h1,
.shiatsu-currents-page h1,
.enterprise-evidence-page h1 {
    font-weight: 700;
    line-height: 1.1;
}

.shiatsu-history-page h2,
.shiatsu-currents-page h2,
.enterprise-evidence-page h2 {
    line-height: 1.18;
}

@media (max-width: 767px) {
    .chinese-energy-page h1,
    .personal-practice-page h1 {
        font-size: clamp(2.15rem, 10vw, 2.8rem);
    }

    .chinese-energy-page h2,
    .personal-practice-page h2,
    .five-movements-balance__copy h2,
    .five-movements-intro h2,
    .five-movements-cycles h2,
    .five-movements-practice h2,
    .five-movements-cta h2 {
        font-size: clamp(1.6rem, 7.5vw, 2.15rem);
    }

    .personal-practice-hero {
        min-height: 360px;
    }
}

/* Version 3.5.3 - voie du milieu : claire, vivante et sans répétitions. */
.personal-practice-hero {
    min-height: clamp(400px, 40vw, 460px);
}

.personal-practice-hero h1 {
    max-width: 17ch;
}

.personal-practice-hero h1 span {
    display: inline-block;
}

.personal-practice-observe {
    background:
        radial-gradient(circle at 92% 18%, rgba(110, 214, 223, .17), transparent 28%),
        linear-gradient(145deg, #fff 0%, #fdfaff 100%);
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr);
}

.personal-practice-observe blockquote {
    font-family: inherit;
    font-size: clamp(1.3rem, 2.1vw, 1.7rem);
    font-style: italic;
    line-height: 1.42;
    text-align: center;
}

.personal-practice-observe blockquote strong {
    margin-top: 0;
}

.personal-practice-dialogue {
    background: linear-gradient(145deg, #f2fdfd 0%, #fff 55%, #fff9fb 100%);
    border: 1px solid rgba(72, 190, 202, .18);
    border-radius: 30px;
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr);
    padding: clamp(2rem, 5vw, 4rem);
}

.personal-practice-dialogue__quote {
    align-items: center;
    aspect-ratio: 1;
    background:
        radial-gradient(circle at 28% 24%, rgba(255, 255, 255, .8), transparent 28%),
        linear-gradient(145deg, rgba(110, 214, 223, .32), rgba(90, 36, 125, .13));
    border: 1px solid rgba(90, 36, 125, .12);
    border-radius: 46% 54% 58% 42% / 48% 42% 58% 52%;
    color: var(--namido-purple-deep);
    display: flex;
    font-family: inherit;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-style: italic;
    font-weight: 700;
    justify-content: center;
    line-height: 1.45;
    margin: 0 auto;
    max-width: 320px;
    padding: 2rem;
    text-align: center;
    transform: rotate(-2deg);
}

.personal-practice-river {
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: minmax(310px, .85fr) minmax(0, 1.15fr);
}

.personal-practice-river__visual {
    border: 1px solid rgba(90, 36, 125, .08);
    box-shadow: 0 18px 44px rgba(65, 44, 78, .08);
}

.personal-practice-river .personal-practice-button {
    margin-top: 1.25rem;
}

.personal-practice-itakimochi {
    background:
        radial-gradient(circle at 92% 10%, rgba(245, 59, 82, .09), transparent 30%),
        linear-gradient(145deg, #fffdf8 0%, #fff 56%, #f5ffff 100%);
    border: 1px solid rgba(59, 21, 88, .08);
    border-radius: 30px;
    padding: clamp(1.5rem, 4vw, 3.2rem);
}

.personal-practice-vehicle {
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: minmax(0, 1.25fr) minmax(245px, .75fr);
}

.personal-practice-vehicle__motto {
    align-items: center;
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 24px;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    margin: 0;
    padding: clamp(1.8rem, 4vw, 2.8rem);
    text-align: center;
    transform: rotate(1.5deg);
}

.personal-practice-vehicle__motto strong,
.personal-practice-vehicle__motto span {
    color: #fff;
    display: block;
}

.personal-practice-vehicle__motto strong {
    font-size: clamp(1.3rem, 2.1vw, 1.7rem);
}

.personal-practice-vehicle__motto span {
    color: #a8f2ee;
    font-size: clamp(1.2rem, 1.9vw, 1.55rem);
    font-weight: 700;
}

@media (max-width: 1023px) {
    .personal-practice-observe,
    .personal-practice-dialogue,
    .personal-practice-river,
    .personal-practice-itakimochi,
    .personal-practice-vehicle {
        grid-template-columns: minmax(0, 1fr);
    }

    .personal-practice-observe blockquote,
    .personal-practice-dialogue__quote,
    .personal-practice-vehicle__motto {
        justify-self: center;
        width: min(100%, 420px);
    }
}

@media (max-width: 767px) {
    .personal-practice-hero {
        min-height: 370px;
    }

    .personal-practice-dialogue__quote {
        aspect-ratio: auto;
        border-radius: 24px;
        min-height: 190px;
        transform: none;
    }

    .personal-practice-river__visual {
        border-radius: 22px;
    }

    .personal-practice-itakimochi {
        border-radius: 24px;
        padding: 1.2rem;
    }

    .personal-practice-vehicle__motto {
        transform: none;
    }
}

/* Version 3.5.12 - page complète : Tao, yin-yang, Qi, méridiens et cinq mouvements. */
.chinese-energy-page--validated .chinese-energy-qi__heading > p:last-child {
    color: #5f5865;
    margin-top: 1rem;
}

.chinese-energy-page--validated .five-movement-card__season {
    font-size: .72rem;
}

.chinese-energy-page--validated .five-movement-card__verb {
    font-size: 1rem;
}

.chinese-energy-page--validated .five-movement-card > p:not(.five-movement-card__season):not(.five-movement-card__verb),
.chinese-energy-page--validated .five-movement-cycle > p:not(.five-movement-cycle__label) {
    font-size: .98rem;
}

.chinese-energy-page--validated .five-movement-cycle__label,
.chinese-energy-page--validated .five-movements-eyebrow {
    font-size: .75rem;
}

.chinese-energy-page--validated .five-movement-card dl > div + div {
    margin-top: .15rem;
}

.chinese-energy-shiatsu-bridge {
    margin-inline: auto;
    max-width: 960px;
    padding-block: clamp(1rem, 2vw, 2rem);
}

.chinese-energy-shiatsu-bridge > p:not(.chinese-energy-eyebrow) {
    margin-top: 1.1rem;
}

@media (max-width: 767px) {
    .chinese-energy-page--validated .five-movement-card__season {
        letter-spacing: .08em;
    }
}

/* Version 3.5.13 - parcours éditorial, schémas agrandissables et lisibilité. */
.chinese-energy-page--validated .chinese-energy-hero {
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(2.25rem, 5vw, 4.75rem);
}

.chinese-energy-page--validated .chinese-energy-hero__copy {
    max-width: 1120px;
}

.chinese-energy-page--validated .chinese-energy-hero h1 {
    font-size: clamp(2.45rem, 5vw, 4.85rem);
    hyphens: none;
    line-height: 1.04;
    max-width: none;
    overflow-wrap: normal;
    text-wrap: balance;
    word-break: normal;
}

.chinese-energy-page--validated .chinese-energy-hero__lead {
    max-width: 44ch;
}

/* Version 3.5.15 - même colonne de lecture pour les deux paragraphes du bandeau. */
.chinese-energy-page--validated .chinese-energy-hero__copy > p:not(.chinese-energy-eyebrow):not(.chinese-energy-hero__lead) {
    max-width: 72ch;
}

.chinese-energy-page--validated .chinese-energy-hero__copy > p:not(.chinese-energy-eyebrow):not(.chinese-energy-hero__lead) + p {
    margin-top: .7rem;
}

.chinese-energy-eyebrow,
.personal-practice-eyebrow,
.five-movements-eyebrow {
    font-size: clamp(.96rem, 1.1vw, 1.02rem) !important;
    letter-spacing: .14em;
}

.chinese-energy-page--validated .chinese-energy-qi__grid p {
    font-size: clamp(1.03rem, 1.25vw, 1.12rem);
}

.namido-diagram-link {
    border-radius: inherit;
    display: block;
    overflow: hidden;
    position: relative;
}

.namido-diagram-link img {
    transition: transform .22s ease, filter .22s ease;
}

.namido-diagram-link__hint {
    align-items: center;
    background: rgba(59, 21, 88, .9);
    border-radius: 999px;
    bottom: .8rem;
    color: #fff;
    display: inline-flex;
    font-size: .95rem;
    font-weight: 750;
    gap: .4rem;
    line-height: 1.2;
    padding: .65rem .9rem;
    position: absolute;
    right: .8rem;
}

.namido-diagram-link__hint::before {
    content: "↗";
    font-size: 1.05em;
}

.namido-diagram-link:hover img,
.namido-diagram-link:focus-visible img {
    filter: saturate(1.04);
    transform: scale(1.012);
}

.namido-diagram-link:focus-visible {
    outline: 4px solid rgba(39, 155, 173, .48);
    outline-offset: 4px;
}

.five-movements-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.five-movement-card {
    padding: clamp(1.5rem, 2.4vw, 2rem);
}

.five-movement-card__season {
    font-size: .94rem;
    letter-spacing: .09em;
}

.five-movement-card__verb {
    font-size: 1.08rem;
}

.five-movement-card > p:not(.five-movement-card__season):not(.five-movement-card__verb) {
    font-size: 1.04rem;
}

.five-movement-card dt {
    font-size: .94rem;
}

.five-movement-card dd {
    font-size: 1.02rem;
    line-height: 1.55;
}

.five-movement-cycle__label {
    font-size: .94rem;
}

.five-movement-cycle > p:not(.five-movement-cycle__label),
.five-movement-cycle ol li {
    font-size: 1.02rem;
}

.five-movements-hero__figure figcaption,
.five-movements-balance__figure figcaption,
.chinese-energy-yinyang figcaption,
.personal-practice-itakimochi figcaption {
    font-size: 1rem;
}

.personal-practice-texture__label {
    font-size: .96rem !important;
}

.personal-practice-texture > p:last-child {
    font-size: 1.05rem;
}

.personal-practice-body-right h2 {
    font-size: clamp(2.35rem, 5vw, 4.5rem);
}

.personal-practice-river__visual .river-dam path {
    fill: none;
    stroke: #684c3e;
    stroke-linecap: round;
    stroke-width: 13;
}

.personal-practice-river__visual .river-dam circle {
    fill: #8b6a53;
    opacity: .95;
}

.namido-next-page__inner {
    align-items: stretch;
    flex-direction: column;
    gap: .9rem;
}

.namido-next-page__actions {
    align-items: stretch;
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    justify-content: stretch;
}

.namido-next-page a.namido-next-page__previous,
.namido-next-page a.namido-next-page__destination,
.namido-next-page a.namido-next-page__shortcut {
    border: 1px solid rgba(90, 36, 125, .23);
    border-radius: 14px;
    justify-content: center;
    min-height: 3.6rem;
    padding: .8rem 1rem;
    text-align: center;
}

.namido-next-page a.namido-next-page__previous,
.namido-next-page a.namido-next-page__destination {
    display: grid;
    gap: .8rem;
    grid-template-columns: auto minmax(0, 1fr);
}

.namido-next-page a.namido-next-page__destination {
    grid-template-columns: minmax(0, 1fr) auto;
}

.namido-next-page__copy {
    display: grid;
    gap: .12rem;
    line-height: 1.25;
}

.namido-next-page__copy > span {
    font-size: .94rem;
    font-weight: 650;
}

.namido-next-page__copy strong {
    font-size: 1.05rem;
}

.namido-next-page__arrow {
    font-size: 1.25rem;
}

.namido-next-page a.namido-next-page__previous {
    background: rgba(255, 255, 255, .8);
}

.namido-next-page a.namido-next-page__destination {
    background: #5a247d;
    border-color: #5a247d;
    color: #fff;
}

.namido-next-page a.namido-next-page__destination:hover,
.namido-next-page a.namido-next-page__destination:focus-visible {
    background: #3b1558;
    color: #fff;
    text-decoration: none;
}

@media (max-width: 1199px) {
    .five-movements-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .chinese-energy-page--validated .chinese-energy-hero h1 {
        font-size: clamp(2.05rem, 10vw, 2.85rem);
        line-height: 1.08;
    }

    .chinese-energy-tao-copy {
        grid-template-columns: minmax(0, 1fr);
    }

    .five-movements-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .five-movement-card--water {
        grid-column: auto;
        max-width: none;
    }

    .namido-diagram-link__hint {
        bottom: .55rem;
        font-size: .95rem;
        right: .55rem;
    }

    .namido-next-page__actions {
        display: flex;
        flex-direction: column;
    }
}

/* Version 3.5.15 - séances, liens, navigation et corrections de relecture. */
.technique-principles-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.technique-principle {
    position: relative;
    overflow: hidden;
    padding: clamp(1.5rem, 3vw, 2rem);
    border: 1px solid rgba(90, 36, 125, .08);
}

.technique-principle--pressure {
    background: #f0fafa;
}

.technique-principle--listening {
    background: #f5f3ff;
}

.technique-principle--senses {
    background: #fff1ec;
}

.technique-principle__number {
    display: block;
    margin-bottom: 1rem;
    color: #5a247d;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: .9;
    opacity: .72;
}

.technique-root-card--wide {
    grid-column: 1 / -1;
    background: linear-gradient(110deg, #fff5f1 0%, #f0fafa 100%);
}

.technique-photo-link,
.technique-photo-link:hover img,
.technique-photo-link:focus-visible img {
    cursor: default;
    transform: none;
}

.technique-path-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.75rem;
}

.technique-path-button {
    display: inline-flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.35rem;
    border: 1px solid transparent;
    border-radius: 18px;
    font-weight: 700;
    line-height: 1.35;
    transition: transform .2s ease, box-shadow .2s ease;
}

.technique-path-button:hover,
.technique-path-button:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(59, 21, 88, .1);
}

.technique-path-button--practice {
    background: #5a247d;
    color: #fff;
}

.technique-path-button--energy {
    border-color: rgba(90, 36, 125, .2);
    background: #fff;
    color: #5a247d;
}

.technique-path-button--currents {
    border-color: #f2c6b8;
    background: #fff1ec;
    color: #6d2945;
}

.session-flow,
.session-pregnancy {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

.session-flow__copy > p:not(:first-child),
.session-pregnancy p,
.session-frequency p {
    margin-top: 1.15rem;
    color: #5f6671;
    font-size: clamp(1.02rem, 1.25vw, 1.12rem);
    line-height: 1.75;
}

.session-flow__image,
.session-pregnancy img {
    display: block;
    width: 100%;
    max-height: 520px;
    border-radius: 18px;
    object-fit: contain;
    background: #f6f7f8;
    box-shadow: 0 18px 42px rgba(17, 24, 39, .09);
}

.session-supports__grid,
.session-method__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.session-supports__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.session-supports__grid article,
.session-method__grid article {
    min-width: 0;
    padding: 1.6rem;
    border: 1px solid rgba(90, 36, 125, .08);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
}

.session-supports__grid article:nth-child(2),
.session-method__grid article:nth-child(2) {
    background: #f5f3ff;
}

.session-supports__grid article:nth-child(3),
.session-method__grid article:nth-child(3) {
    background: #fff1ec;
}

.session-supports__grid h3,
.session-method__grid h3 {
    color: #5a247d;
    font-size: 1.2rem;
    font-weight: 800;
}

.session-supports__grid p,
.session-method__grid p {
    margin-top: .8rem;
    color: #5f6671;
    line-height: 1.7;
}

.session-method__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.session-method__grid article:nth-child(4) {
    background: #f0fafa;
}

.session-frequency {
    background:
        radial-gradient(circle at 90% 10%, rgba(217, 244, 241, .72), transparent 32%),
        #fff;
}

.session-actions > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.75rem;
}

.session-actions a {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.5rem;
    border: 1px solid rgba(90, 36, 125, .2);
    border-radius: 18px;
    background: #fff;
    color: #5a247d;
    font-weight: 750;
}

.session-actions a:nth-child(2) {
    border-color: #5a247d;
    background: #5a247d;
    color: #fff;
}

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

.links-card {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: clamp(1.6rem, 3vw, 2.15rem);
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    box-shadow: 0 16px 38px rgba(17, 24, 39, .07);
}

.links-card--shiatsu {
    background: #f5f3ff;
}

.links-card--care {
    background: #f0fafa;
}

.links-card--house {
    background: #fff1ec;
}

.links-card__eyebrow {
    color: #5a247d;
    font-size: .82rem;
    font-weight: 850;
    letter-spacing: .13em;
}

.links-card h2 {
    margin-top: .8rem;
    font-size: clamp(1.35rem, 2.2vw, 1.8rem);
    font-weight: 800;
    line-height: 1.25;
}

.links-card > p:not(.links-card__eyebrow) {
    margin-top: 1rem;
    color: #5f6671;
    line-height: 1.7;
}

.links-card a {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: auto;
    padding-top: 1.35rem;
    color: #5a247d;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: .25em;
}

.logo-story-nami__image {
    display: block;
}

@media (min-width: 1024px) {
    .home-practice-layout {
        grid-template-areas:
            "heading testimonial"
            "summary testimonial"
            "label kindness";
        row-gap: 1rem;
    }

    .home-practice-kindness,
    .home-practice-testimonial,
    .shiatsu-rncp-label--home {
        align-self: center;
    }
}

.namido-testimonial-lightbox {
    max-width: 98vw;
    max-height: 98vh;
    padding: .65rem;
}

.namido-testimonial-lightbox__image,
.namido-testimonial-lightbox.is-landscape .namido-testimonial-lightbox__image {
    max-width: calc(98vw - 1.3rem);
    max-height: calc(98vh - 1.3rem);
}

.namido-next-page a.namido-next-page__previous,
.namido-next-page a.namido-next-page__destination,
.namido-next-page a.namido-next-page__shortcut {
    border-color: transparent;
    background: transparent;
    color: #5a247d;
    box-shadow: none;
}

.namido-next-page a.namido-next-page__previous:hover,
.namido-next-page a.namido-next-page__previous:focus-visible,
.namido-next-page a.namido-next-page__destination:hover,
.namido-next-page a.namido-next-page__destination:focus-visible,
.namido-next-page a.namido-next-page__shortcut:hover,
.namido-next-page a.namido-next-page__shortcut:focus-visible {
    background: rgba(255, 255, 255, .58);
    color: #3b1558;
}

@media (max-width: 1023px) {
    .technique-principles-grid,
    .technique-path-buttons,
    .session-flow,
    .session-pregnancy,
    .session-supports__grid,
    .links-organisations {
        grid-template-columns: minmax(0, 1fr);
    }

    .technique-root-card--wide {
        grid-column: auto;
    }
}

@media (max-width: 639px) {
    .session-method__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .session-actions > div {
        align-items: stretch;
        flex-direction: column;
    }

    .session-actions a {
        width: 100%;
    }
}

/* Version 3.5.16 - navigation compacte, bénéfices entreprise et grille tarifaire de travail. */
.namido-next-page {
    margin-top: clamp(1.75rem, 3vw, 2.75rem);
}

.namido-next-page__inner {
    align-items: center;
    flex-direction: row;
    gap: 1rem;
    padding: .65rem 1rem;
}

.namido-next-page__inner > span {
    flex: 0 0 auto;
    font-size: .76rem;
    letter-spacing: .1em;
}

.namido-next-page__actions {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

.namido-next-page a.namido-next-page__previous,
.namido-next-page a.namido-next-page__destination,
.namido-next-page a.namido-next-page__shortcut {
    min-height: 2.7rem;
    padding: .5rem .75rem;
}

.namido-next-page a.namido-next-page__previous,
.namido-next-page a.namido-next-page__destination {
    display: inline-flex;
    gap: .55rem;
}

.namido-next-page__copy {
    align-items: baseline;
    display: flex;
    gap: .3rem;
    line-height: 1.2;
    white-space: nowrap;
}

.namido-next-page__copy > span {
    font-size: .84rem;
}

.namido-next-page__copy > span::after {
    content: " :";
}

.namido-next-page__copy strong {
    font-size: .96rem;
}

.namido-next-page__arrow {
    font-size: 1.08rem;
}

.enterprise-journey__rates {
    align-items: center;
    background: rgba(255, 255, 255, .74);
    border: 1px solid rgba(90, 36, 125, .15);
    border-radius: 16px;
    display: inline-flex;
    flex-wrap: wrap;
    gap: .7rem 1rem;
    justify-content: center;
    padding: .75rem 1rem;
}

.enterprise-journey__rates span {
    color: #5f5865;
    font-weight: 650;
}

.enterprise-journey__rates a {
    background: #5a247d;
    border-radius: 999px;
    color: #fff;
    font-weight: 750;
    padding: .65rem 1rem;
    text-decoration: none;
}

.enterprise-journey__rates a:hover,
.enterprise-journey__rates a:focus-visible {
    background: #3b1558;
    color: #fff;
}

.enterprise-company-benefits {
    background:
        radial-gradient(circle at 8% 12%, rgba(81, 199, 211, .18), transparent 28%),
        radial-gradient(circle at 92% 88%, rgba(90, 36, 125, .12), transparent 30%),
        linear-gradient(135deg, #f4fcfc 0%, #fff 50%, #f7f3ff 100%);
}

.enterprise-company-benefits__grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.enterprise-company-benefits__grid article {
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 20px;
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2rem);
}

.enterprise-company-benefits__grid h3 {
    color: #3b1558;
    font-size: clamp(1.35rem, 2vw, 1.65rem);
    margin-top: 1rem;
}

.enterprise-company-benefits__grid p {
    color: #5f6671;
    line-height: 1.7;
    margin-top: .8rem;
}

.enterprise-company-benefits__icon {
    align-items: center;
    background: #eaf9fa;
    border-radius: 18px;
    display: inline-flex;
    height: 68px;
    justify-content: center;
    width: 68px;
}

.enterprise-company-benefits__grid article:nth-child(2) .enterprise-company-benefits__icon {
    background: #fff1ec;
}

.enterprise-company-benefits__grid article:nth-child(3) .enterprise-company-benefits__icon {
    background: #f0ebf8;
}

.enterprise-company-benefits__icon svg {
    fill: none;
    height: 50px;
    stroke: #31535b;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.4;
    width: 50px;
}

.enterprise-company-benefits__icon .accent {
    stroke: #5a247d;
}

.enterprise-company-benefits__icon .accent-fill {
    fill: #f6c85f;
    stroke: #31535b;
}

.enterprise-company-benefits__note {
    color: #64616a;
    font-size: .96rem;
    font-style: italic;
    line-height: 1.6;
    margin: 1.5rem auto 0;
    max-width: 880px;
    text-align: center;
}

.enterprise-rates-hero {
    background:
        radial-gradient(circle at 12% 18%, rgba(81, 199, 211, .22), transparent 30%),
        linear-gradient(135deg, #f1fbfb 0%, #fff 50%, #f5f0fb 100%);
}

.enterprise-rates-hero__status {
    background: rgba(255, 255, 255, .8);
    border: 1px solid rgba(90, 36, 125, .14);
    border-radius: 999px;
    color: #5a247d;
    display: inline-block;
    font-size: .95rem;
    font-weight: 750;
    padding: .65rem 1rem;
}

.enterprise-rates-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.enterprise-rate-card {
    background: #fff;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(59, 21, 88, .08);
    min-width: 0;
    padding: clamp(1.6rem, 3vw, 2.25rem);
}

.enterprise-rate-card--aqua {
    background: #f0fafa;
}

.enterprise-rate-card--featured {
    background: linear-gradient(145deg, #5a247d, #3b1558);
    color: #fff;
}

.enterprise-rate-card__eyebrow {
    color: #5a247d;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .13em;
}

.enterprise-rate-card h3 {
    font-size: clamp(1.6rem, 2.4vw, 2rem);
    margin-top: .65rem;
}

.enterprise-rate-card__price {
    color: #5a247d;
    font-size: clamp(2.35rem, 4vw, 3.35rem);
    font-weight: 800;
    line-height: 1;
    margin-top: 1.2rem;
}

.enterprise-rate-card > p:last-child {
    color: #5f6671;
    line-height: 1.65;
    margin-top: 1.25rem;
}

.enterprise-rate-card--featured .enterprise-rate-card__eyebrow,
.enterprise-rate-card--featured .enterprise-rate-card__price,
.enterprise-rate-card--featured > p:last-child {
    color: #fff;
}

.enterprise-rates-basis__note,
.enterprise-rates-conditions__note {
    background: #fff8f4;
    border-left: 4px solid #f29b8b;
    border-radius: 0 14px 14px 0;
    color: #5f5865;
    line-height: 1.7;
    margin-top: 1.5rem;
    padding: 1rem 1.2rem;
}

.enterprise-rates-formats {
    background: linear-gradient(135deg, #f0fafa, #fff);
}

.enterprise-rates-formats__grid,
.enterprise-rates-financing__grid,
.enterprise-rates-conditions__grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.enterprise-rates-formats__grid article,
.enterprise-rates-financing__grid article,
.enterprise-rates-conditions__grid article {
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(90, 36, 125, .09);
    border-radius: 18px;
    min-width: 0;
    padding: 1.5rem;
}

.enterprise-rates-formats__grid strong,
.enterprise-rates-formats__grid span {
    display: block;
}

.enterprise-rates-formats__grid strong {
    color: #5a247d;
    font-size: 1.55rem;
}

.enterprise-rates-formats__grid span,
.enterprise-rates-financing__grid p,
.enterprise-rates-conditions__grid p,
.enterprise-rates-conditions__grid li {
    color: #5f6671;
    line-height: 1.65;
    margin-top: .55rem;
}

.enterprise-rates-financing__grid h3,
.enterprise-rates-conditions__grid h3 {
    color: #3b1558;
    font-size: 1.35rem;
}

.enterprise-rates-conditions {
    background: linear-gradient(140deg, #fff 0%, #f8f4fb 100%);
}

.enterprise-rates-conditions__grid ul {
    list-style: disc;
    margin: .4rem 0 0 1.15rem;
}

.enterprise-rates-actions {
    background: #f5f3ff;
}

@media (max-width: 900px) {
    .enterprise-company-benefits__grid,
    .enterprise-rates-grid,
    .enterprise-rates-formats__grid,
    .enterprise-rates-financing__grid,
    .enterprise-rates-conditions__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    .namido-next-page__inner {
        align-items: stretch;
        flex-direction: column;
        gap: .55rem;
        padding: .7rem .8rem;
    }

    .namido-next-page__actions {
        align-items: stretch;
        flex-direction: column-reverse;
        width: 100%;
    }

    .namido-next-page a.namido-next-page__previous,
    .namido-next-page a.namido-next-page__destination,
    .namido-next-page a.namido-next-page__shortcut {
        justify-content: center;
        width: 100%;
    }

    .namido-next-page__copy {
        flex-wrap: wrap;
        justify-content: center;
        white-space: normal;
    }

    .enterprise-journey__rates {
        align-items: stretch;
        display: flex;
        flex-direction: column;
    }
}

/* Version 3.5.20 - loupe et recherche guidée vers les contenus publiés. */
.namido-header-action--search {
    background: #fff3f1;
    border: 1px solid rgba(245, 59, 82, .18);
    box-shadow: 0 8px 20px rgba(245, 59, 82, .12);
    color: #a92a3d;
}

.namido-search-toggle[aria-expanded="true"] {
    background: #f53b52;
    border-color: #f53b52;
    color: #fff;
}

.namido-site-search-panel {
    background: rgba(250, 250, 252, .96);
    border-bottom: 1px solid rgba(90, 36, 125, .1);
    box-shadow: 0 22px 42px rgba(31, 24, 37, .16);
    left: 0;
    padding: 1rem clamp(1rem, 4vw, 3rem) 1.35rem;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 55;
}

.namido-site-search-panel[hidden] {
    display: none !important;
}

.namido-site-search {
    background: #fff;
    border: 1px solid rgba(90, 36, 125, .12);
    border-radius: 20px;
    box-shadow: 0 14px 36px rgba(90, 36, 125, .11);
    margin: 0 auto;
    max-height: min(72vh, 720px);
    max-width: 820px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1.25rem;
}

.namido-site-search__heading {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.namido-site-search__eyebrow {
    color: #5a247d;
    font-size: .71rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.namido-site-search__heading h2 {
    color: #25182e;
    font-size: clamp(1.25rem, 3vw, 1.65rem);
    font-weight: 750;
    line-height: 1.2;
    margin-top: .18rem;
}

/* Version 3.5.21 - chronologie et transmissions de l'histoire du shiatsu. */
.shiatsu-history-timeline {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.shiatsu-history-timeline__item {
    background: #fff;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 18px;
    box-shadow: 0 16px 38px rgba(31, 24, 37, .08);
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2.15rem);
    position: relative;
}

.shiatsu-history-timeline__item::before {
    background: linear-gradient(180deg, #279bad, #5a247d);
    border-radius: 999px;
    content: "";
    height: 3.25rem;
    left: 0;
    position: absolute;
    top: 1.55rem;
    width: 4px;
}

.shiatsu-history-timeline__date,
.shiatsu-history-school-card__eyebrow,
.shiatsu-history-meaning__label {
    color: #5a247d;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.45;
}

.shiatsu-history-timeline__item h3,
.shiatsu-history-school-card h3 {
    color: #25182e;
    font-size: clamp(1.35rem, 2.2vw, 1.7rem);
    font-weight: 750;
    line-height: 1.25;
    margin-top: .65rem;
}

.shiatsu-history-timeline__item > p:last-child,
.shiatsu-history-school-card > p:last-child,
.shiatsu-history-meaning article > p:last-child {
    color: #5f6671;
    line-height: 1.72;
    margin-top: .9rem;
}

.shiatsu-history-schools {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.shiatsu-history-school-card {
    background: #fff8f4;
    border: 1px solid rgba(245, 59, 82, .1);
    border-radius: 18px;
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2rem);
}

.shiatsu-history-school-card--aqua {
    background: #f0fafa;
    border-color: rgba(39, 155, 173, .13);
}

.shiatsu-history-school-card--purple {
    background: #f5f3ff;
    border-color: rgba(90, 36, 125, .12);
}

.shiatsu-history-meaning {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.shiatsu-history-meaning article {
    background: #f8f6fb;
    border-left: 4px solid #5a247d;
    border-radius: 0 18px 18px 0;
    min-width: 0;
    padding: 1.5rem;
}

.shiatsu-history-meaning article:first-child {
    background: #f0fafa;
    border-left-color: #279bad;
}

.shiatsu-history-lineage {
    background: linear-gradient(135deg, #fff8f4 0%, #f5f3ff 100%);
}

@media (max-width: 900px) {
    .shiatsu-history-timeline,
    .shiatsu-history-schools,
    .shiatsu-history-meaning {
        grid-template-columns: minmax(0, 1fr);
    }
}

.namido-site-search__close {
    align-items: center;
    background: #f5f3ff;
    border-radius: 999px;
    color: #5a247d;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.5rem;
    height: 2.35rem;
    justify-content: center;
    line-height: 1;
    width: 2.35rem;
}

.namido-site-search__close:hover,
.namido-site-search__close:focus-visible {
    background: #5a247d;
    color: #fff;
}

.namido-site-search__field {
    align-items: center;
    background: #fafafc;
    border: 2px solid rgba(90, 36, 125, .18);
    border-radius: 16px;
    display: grid;
    gap: .65rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-top: 1rem;
    padding: .28rem .45rem .28rem .85rem;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.namido-site-search__field:focus-within {
    background: #fff;
    border-color: #5a247d;
    box-shadow: 0 0 0 4px rgba(90, 36, 125, .1);
}

.namido-site-search__field > svg {
    fill: none;
    height: 1.25rem;
    stroke: #5a247d;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
    width: 1.25rem;
}

.namido-site-search__field input {
    background: transparent;
    color: #25182e;
    min-width: 0;
    outline: 0;
    padding: .65rem 0;
    width: 100%;
}

.namido-site-search__field input::placeholder {
    color: #77717c;
    opacity: 1;
}

.namido-site-search__clear {
    border-radius: 999px;
    color: #5a247d;
    font-size: .78rem;
    font-weight: 750;
    padding: .48rem .7rem;
}

.namido-site-search__clear:hover,
.namido-site-search__clear:focus-visible {
    background: #eee8f4;
}

.namido-site-search__help {
    color: #6d6671;
    font-size: .82rem;
    line-height: 1.45;
    margin: .65rem .2rem 0;
}

.namido-site-search__results {
    display: grid;
    gap: .45rem;
    margin-top: .85rem;
}

.namido-site-search__results-title {
    color: #5a247d;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    margin: .25rem .35rem .1rem;
    text-transform: uppercase;
}

.namido-site-search__result {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 14px;
    color: inherit;
    display: grid;
    gap: .75rem;
    grid-template-columns: 104px minmax(0, 1fr) auto;
    padding: .72rem .8rem;
    text-decoration: none;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.namido-site-search__result:hover,
.namido-site-search__result:focus-visible,
.namido-site-search__result.is-active {
    background: #f7f3fa;
    border-color: rgba(90, 36, 125, .18);
    outline: 0;
    transform: translateX(2px);
}

.namido-site-search__result-group {
    background: #eaf8f7;
    border-radius: 999px;
    color: #276a70;
    font-size: .68rem;
    font-weight: 800;
    justify-self: start;
    line-height: 1.25;
    max-width: 104px;
    padding: .36rem .58rem;
    text-align: center;
}

.namido-site-search__result-copy {
    display: grid;
    gap: .14rem;
    min-width: 0;
}

.namido-site-search__result-label {
    color: #321a42;
    font-size: .96rem;
    line-height: 1.3;
}

.namido-site-search__result-summary {
    color: #6b6570;
    font-size: .79rem;
    line-height: 1.4;
}

.namido-site-search__result-arrow {
    color: #f53b52;
    font-size: 1.25rem;
    font-weight: 700;
}

.namido-site-search__empty {
    background: #fff7f5;
    border: 1px solid rgba(245, 59, 82, .14);
    border-radius: 14px;
    color: #514b55;
    padding: 1rem;
}

.namido-site-search__empty strong {
    color: #3b1558;
    display: block;
}

.namido-site-search__empty p {
    font-size: .88rem;
    margin-top: .3rem;
}

@media (max-width: 640px) {
    .namido-site-search-panel {
        padding: .55rem .55rem .85rem;
    }

    .namido-site-search {
        border-radius: 16px;
        max-height: calc(100vh - 6.25rem);
        padding: .9rem;
    }

    .namido-site-search__heading h2 {
        font-size: 1.22rem;
    }

    .namido-site-search__field {
        padding-left: .7rem;
    }

    .namido-site-search__field input {
        font-size: .92rem;
    }

    .namido-site-search__result {
        gap: .35rem .65rem;
        grid-template-columns: minmax(0, 1fr) auto;
        padding: .72rem;
    }

    .namido-site-search__result-group {
        grid-column: 1;
        max-width: none;
    }

    .namido-site-search__result-copy {
        grid-column: 1;
    }

    .namido-site-search__result-arrow {
        grid-column: 2;
        grid-row: 1 / span 2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .namido-site-search__field,
    .namido-site-search__result {
        transition: none;
    }
}

/*
 * Particuliers : publics, exemples concrets et choix de la durée.
 */
.private-audience__intro {
    max-width: 980px;
    margin-inline: auto;
    text-align: center;
}

.private-audience__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
}

.private-audience-card {
    position: relative;
    padding: 1.65rem;
    overflow: hidden;
    border: 1px solid rgba(90, 36, 125, .12);
    border-radius: 18px;
    background: #fbfafc;
}

.private-audience-card--care {
    border-color: rgba(52, 167, 167, .2);
    background: linear-gradient(145deg, #f4fbfb, #fff);
}

.private-audience-card__age {
    display: inline-grid;
    width: 3.25rem;
    height: 3.25rem;
    place-items: center;
    border-radius: 50%;
    background: #f1eaf8;
    color: #5a247d;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1;
}

.private-audience-card--care .private-audience-card__age {
    background: #dff4f2;
    color: #236d70;
}

.private-audience-card h3 {
    margin-top: 1.15rem;
    color: #3b1558;
    font-size: 1.28rem;
    line-height: 1.25;
}

.private-audience-card p {
    margin-top: .85rem;
    color: #55515a;
    line-height: 1.68;
}

.private-audience-card strong {
    color: #302336;
}

.session-choice__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.75rem;
}

.session-choice-card {
    position: relative;
    padding: 1.75rem;
    border: 1px solid rgba(90, 36, 125, .1);
    border-top: 5px solid #8d63a8;
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 15px 34px rgba(49, 28, 62, .06);
}

.session-choice-card--complete {
    border-top-color: #34a7a7;
}

.session-choice-card--deep {
    border-top-color: #f53b52;
}

.session-choice-card__duration {
    color: #5a247d;
    font-size: clamp(2.7rem, 5vw, 4.2rem);
    font-weight: 800;
    line-height: .95;
}

.session-choice-card__duration span {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.session-choice-card h3 {
    margin-top: 1.25rem;
    color: #302336;
    font-size: 1.28rem;
    line-height: 1.3;
}

.session-choice-card > p:last-child {
    margin-top: .85rem;
    color: #58515e;
    line-height: 1.7;
}

.session-choice__actions,
.sokuatsu-guide-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    margin-top: 2.25rem;
}

.session-choice__actions {
    justify-content: center;
}

.session-choice__actions a,
.sokuatsu-guide-actions a {
    display: inline-flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: center;
    padding: .85rem 1.35rem;
    border: 1px solid rgba(90, 36, 125, .23);
    border-radius: 16px;
    background: rgba(255, 255, 255, .9);
    color: #5a247d;
    font-weight: 700;
    text-align: center;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.session-choice__actions a:hover,
.session-choice__actions a:focus-visible,
.sokuatsu-guide-actions a:hover,
.sokuatsu-guide-actions a:focus-visible {
    box-shadow: 0 12px 26px rgba(90, 36, 125, .12);
    transform: translateY(-2px);
}

.session-choice__actions .session-choice__primary,
.sokuatsu-guide-actions .sokuatsu-guide-actions__primary {
    border-color: #5a247d;
    background: #5a247d;
    color: #fff;
}

/*
 * Article de fond consacré au sokuatsu.
 */
.sokuatsu-guide-page h1,
.sokuatsu-guide-page h2,
.sokuatsu-guide-page h3 {
    text-wrap: balance;
}

.sokuatsu-guide-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
    background: linear-gradient(135deg, #f6f0fb 0%, #fff 48%, #eaf8f7 100%);
}

.sokuatsu-guide-hero__copy {
    align-self: center;
    padding: clamp(2rem, 5vw, 4rem);
}

.sokuatsu-guide-hero__promise {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .28rem;
    margin-top: 1.35rem;
    padding: .8rem 1rem;
    border-radius: 14px;
    background: #fff;
    color: #3f3544;
    box-shadow: 0 10px 22px rgba(49, 28, 62, .06);
}

.sokuatsu-guide-hero__promise strong {
    color: #5a247d;
}

.sokuatsu-guide-hero__media {
    min-height: 540px;
    background: #dcefee;
}

.sokuatsu-guide-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.sokuatsu-definition {
    display: grid;
    grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr);
    gap: 2.25rem 3rem;
    align-items: center;
}

.sokuatsu-definition__mark {
    display: grid;
    min-height: 220px;
    place-content: center;
    border-radius: 24px;
    background: linear-gradient(145deg, #e6f7f5, #f5effa);
    color: #3b1558;
    text-align: center;
}

.sokuatsu-definition__mark span {
    font-size: clamp(3.4rem, 8vw, 6rem);
    font-weight: 700;
    line-height: 1;
}

.sokuatsu-definition__mark small {
    margin-top: .75rem;
    color: #5a247d;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .24em;
}

.sokuatsu-definition__copy > p:not(:first-child) {
    margin-top: 1rem;
    color: #57515d;
    font-size: 1.08rem;
    line-height: 1.75;
}

.sokuatsu-vocabulary {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.sokuatsu-vocabulary article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .2rem 1rem;
    align-items: center;
    padding: 1.4rem;
    border: 1px solid rgba(90, 36, 125, .11);
    border-radius: 18px;
    background: #fbfafc;
}

.sokuatsu-vocabulary__kanji {
    grid-row: 1 / span 2;
    color: #5a247d !important;
    font-size: 2.4rem !important;
    font-weight: 700;
    line-height: 1 !important;
}

.sokuatsu-vocabulary h3 {
    color: #3b1558;
    font-size: 1.2rem;
}

.sokuatsu-vocabulary article > p:last-child {
    color: #5d5661;
    line-height: 1.55;
}

.sokuatsu-pressure__grid,
.sokuatsu-uses__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.75rem;
}

.sokuatsu-pressure__grid article,
.sokuatsu-uses__grid article {
    padding: 1.55rem;
    border: 1px solid rgba(90, 36, 125, .1);
    border-radius: 18px;
    background: rgba(255, 255, 255, .88);
}

.sokuatsu-pressure__grid article > span {
    color: #f53b52;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.sokuatsu-pressure__grid h3,
.sokuatsu-uses__grid h3 {
    margin-top: .45rem;
    color: #3b1558;
    font-size: 1.23rem;
}

.sokuatsu-pressure__grid p,
.sokuatsu-uses__grid p {
    margin-top: .7rem;
    color: #5b5560;
    line-height: 1.68;
}

.sokuatsu-uses__heading {
    max-width: 900px;
    margin-inline: auto;
    text-align: center;
}

.sokuatsu-uses__heading > p:last-child {
    margin-top: 1.1rem;
    color: #57515d;
    font-size: 1.12rem;
    line-height: 1.72;
}

.sokuatsu-uses__age {
    margin-top: 1.5rem;
    padding: 1.2rem 1.35rem;
    border-left: 4px solid #34a7a7;
    border-radius: 0 16px 16px 0;
    background: #eefafa;
    color: #4f4b53;
    line-height: 1.68;
}

.sokuatsu-uses__age p + p {
    margin-top: 1rem;
}

.sokuatsu-lineage__intro {
    max-width: 900px;
}

.sokuatsu-lineage__intro > p:last-child {
    margin-top: 1.05rem;
    color: #57515d;
    font-size: 1.08rem;
    line-height: 1.72;
}

.sokuatsu-lineage__timeline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
}

.sokuatsu-lineage__timeline article {
    padding: 1.7rem;
    border: 1px solid rgba(90, 36, 125, .11);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
}

.sokuatsu-lineage__year {
    color: #f53b52;
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.sokuatsu-lineage__timeline h3 {
    margin-top: .4rem;
    color: #3b1558;
    font-size: 1.45rem;
}

.sokuatsu-lineage__timeline article > p:last-child {
    margin-top: .8rem;
    color: #57515d;
    line-height: 1.7;
}

.sokuatsu-lineage__conclusion {
    margin-top: 1.35rem;
    padding: 1.1rem 1.25rem;
    border-radius: 16px;
    background: #5a247d;
    color: #fff;
    font-size: 1.06rem;
    line-height: 1.65;
}

.sokuatsu-session {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    gap: 2.5rem;
    align-items: start;
}

.sokuatsu-session__copy ol {
    display: grid;
    gap: 1rem;
    margin: 1.65rem 0 0;
    padding: 0;
    counter-reset: sokuatsu-step;
    list-style: none;
}

.sokuatsu-session__copy li {
    position: relative;
    padding-left: 3rem;
    color: #57515d;
    line-height: 1.7;
    counter-increment: sokuatsu-step;
}

.sokuatsu-session__copy li::before {
    position: absolute;
    top: .05rem;
    left: 0;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: #f1eaf8;
    color: #5a247d;
    content: counter(sokuatsu-step);
    font-size: .82rem;
    font-weight: 800;
}

.sokuatsu-session__note {
    margin-top: 1.5rem;
    padding: 1rem 1.15rem;
    border-radius: 14px;
    background: #eefafa;
    color: #4f4a52;
    line-height: 1.65;
}

.sokuatsu-session__gallery {
    display: grid;
    gap: 1rem;
}

.sokuatsu-session__gallery figure {
    overflow: hidden;
    border-radius: 18px;
    background: #f5f2f7;
}

.sokuatsu-session__gallery img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.sokuatsu-session__gallery figcaption {
    padding: .75rem 1rem;
    color: #5a247d;
    font-size: .88rem;
    font-weight: 700;
    text-align: center;
}

.sokuatsu-health-note {
    border: 1px solid rgba(245, 59, 82, .18);
    background: #fff7f5;
}

.sokuatsu-health-note h2 {
    color: #6b2840;
    font-size: 1.35rem;
}

.sokuatsu-health-note p {
    margin-top: .7rem;
    color: #5c5054;
    line-height: 1.68;
}

.sokuatsu-guide-actions--center {
    justify-content: center;
}

/*
 * Page de fond consacrée au shiatsu.
 * Elle reprend le rythme visuel du Sokuatsu avec ses propres nuances.
 */
.shiatsu-guide-hero {
    background: linear-gradient(135deg, #fff4ef 0%, #fff 48%, #f1eafa 100%);
}

.shiatsu-duration-note {
    max-width: 920px;
    margin: 1.5rem auto 0;
    padding: 1.1rem 1.25rem;
    border-left: 4px solid #34a7a7;
    border-radius: 0 16px 16px 0;
    background: rgba(255, 255, 255, .82);
    color: #4f4b53;
    line-height: 1.68;
}

.shiatsu-session__illustration img {
    object-fit: contain;
    background: linear-gradient(145deg, #f5effa, #edf9f8);
}

/*
 * Repère visuel des éléments cliquables sur les appareils équipés d’une souris.
 * Le transform agrandit le texte sans déplacer les éléments voisins.
 */
@media (hover: hover) and (pointer: fine) {
    #desktop-nav > a,
    #desktop-nav .namido-desktop-menu-item > a,
    .namido-desktop-submenu a,
    .technique-path-button,
    .session-choice__actions a,
    .sokuatsu-guide-actions a,
    .enterprise-action,
    .enterprise-practical-nav a,
    .enterprise-journey__rates a,
    a.hover-card,
    button.hover-card,
    .namido-next-page a {
        transform-origin: center;
        transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
    }

    #desktop-nav > a:hover,
    #desktop-nav > a:focus-visible,
    #desktop-nav .namido-desktop-menu-item > a:hover,
    #desktop-nav .namido-desktop-menu-item > a:focus-visible {
        color: #f53b52 !important;
        transform: scale(1.07);
    }

    .namido-desktop-submenu a:hover,
    .namido-desktop-submenu a:focus-visible {
        background: #fff3f1;
        color: #b52f47;
        transform: scale(1.035);
    }

    .session-choice__actions a:hover,
    .session-choice__actions a:focus-visible,
    .sokuatsu-guide-actions a:hover,
    .sokuatsu-guide-actions a:focus-visible {
        border-color: rgba(245, 59, 82, .42);
        background: #fff7f5;
        color: #b52f47;
        transform: translateY(-2px) scale(1.035);
    }

    .session-choice__actions .session-choice__primary:hover,
    .session-choice__actions .session-choice__primary:focus-visible,
    .sokuatsu-guide-actions .sokuatsu-guide-actions__primary:hover,
    .sokuatsu-guide-actions .sokuatsu-guide-actions__primary:focus-visible {
        border-color: #3b1558;
        background: #3b1558;
        color: #fff;
    }

    .technique-path-button:hover,
    .technique-path-button:focus-visible,
    .enterprise-action:hover,
    .enterprise-action:focus-visible,
    .enterprise-practical-nav a:hover,
    .enterprise-practical-nav a:focus-visible,
    .enterprise-journey__rates a:hover,
    .enterprise-journey__rates a:focus-visible,
    a.hover-card:hover,
    a.hover-card:focus-visible,
    button.hover-card:hover,
    button.hover-card:focus-visible,
    .namido-next-page a:hover,
    .namido-next-page a:focus-visible {
        transform: translateY(-2px) scale(1.035);
        filter: saturate(1.08);
    }

    .enterprise-journey__steps a,
    .namido-blog-card,
    .namido-site-search__result {
        transform-origin: center;
        transition: color .2s ease, background-color .2s ease, transform .2s ease, box-shadow .2s ease;
    }

    .enterprise-journey__steps a:hover,
    .enterprise-journey__steps a:focus-visible,
    .namido-blog-card:hover,
    .namido-blog-card:focus-within,
    .namido-site-search__result:hover,
    .namido-site-search__result:focus-visible {
        color: #5a247d;
        transform: translateY(-2px) scale(1.015);
    }
}

@media (max-width: 1024px) {
    .private-audience__grid,
    .session-choice__grid {
        grid-template-columns: 1fr;
    }

    .sokuatsu-guide-hero,
    .sokuatsu-session {
        grid-template-columns: 1fr;
    }

    .sokuatsu-guide-hero__media {
        min-height: 0;
    }

    .sokuatsu-guide-hero__media img {
        aspect-ratio: 16 / 9;
    }

    .sokuatsu-session__gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .sokuatsu-definition,
    .sokuatsu-vocabulary,
    .sokuatsu-pressure__grid,
    .sokuatsu-uses__grid,
    .sokuatsu-lineage__timeline,
    .sokuatsu-session__gallery {
        grid-template-columns: 1fr;
    }

    .sokuatsu-definition__mark {
        min-height: 170px;
    }

    .sokuatsu-vocabulary article {
        grid-template-columns: 1fr;
    }

    .sokuatsu-vocabulary__kanji {
        grid-row: auto;
    }

    .session-choice__actions a,
    .sokuatsu-guide-actions a {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    #desktop-nav a,
    .technique-path-button,
    .enterprise-action,
    .enterprise-practical-nav a,
    .enterprise-journey__rates a,
    .enterprise-journey__steps a,
    a.hover-card,
    button.hover-card,
    .namido-blog-card,
    .namido-site-search__result,
    .namido-next-page a,
    .session-choice__actions a,
    .sokuatsu-guide-actions a {
        transition: none;
    }

    #desktop-nav a:hover,
    #desktop-nav a:focus-visible,
    .namido-desktop-submenu a:hover,
    .namido-desktop-submenu a:focus-visible,
    .technique-path-button:hover,
    .technique-path-button:focus-visible,
    .enterprise-action:hover,
    .enterprise-action:focus-visible,
    .enterprise-practical-nav a:hover,
    .enterprise-practical-nav a:focus-visible,
    .enterprise-journey__rates a:hover,
    .enterprise-journey__rates a:focus-visible,
    .enterprise-journey__steps a:hover,
    .enterprise-journey__steps a:focus-visible,
    a.hover-card:hover,
    a.hover-card:focus-visible,
    button.hover-card:hover,
    button.hover-card:focus-visible,
    .namido-blog-card:hover,
    .namido-blog-card:focus-within,
    .namido-site-search__result:hover,
    .namido-site-search__result:focus-visible,
    .namido-next-page a:hover,
    .namido-next-page a:focus-visible,
    .session-choice__actions a:hover,
    .session-choice__actions a:focus-visible,
    .sokuatsu-guide-actions a:hover,
    .sokuatsu-guide-actions a:focus-visible {
        transform: none;
        filter: none;
    }
}
