:root {
    --forest: #17392f;
    --forest-2: #244c40;
    --sage: #7f9f8f;
    --sage-ink: #486b5c;
    --mist: #e8f0ec;
    --ivory: #f7f4ec;
    --sand: #efe9dc;
    --terracotta: #cf6435;
    --clay-ink: #984025;
    --ink: #18372f;
    --text: #334a42;
    --muted: #5f716a;
    --paper: #fdfcf9;
    --white: #ffffff;
    --line: rgba(23, 57, 47, 0.16);
    --line-strong: rgba(23, 57, 47, 0.28);
    --shell: min(1220px, calc(100% - 64px));
    --font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
    --font-sans: Inter, "Avenir Next", "Segoe UI", Arial, sans-serif;
    --radius: 6px;
}

* {
    box-sizing: border-box;
}

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

body {
    margin: 0;
    background: var(--paper);
    color: var(--text);
    font-family: var(--font-sans);
    font-size: 1.0625rem;
    line-height: 1.68;
    letter-spacing: 0;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

h1,
h2,
h3,
p,
blockquote {
    margin-top: 0;
}

h1,
h2,
h3 {
    color: var(--ink);
    font-family: var(--font-display);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0;
    overflow-wrap: break-word;
}

h1 {
    font-size: 4.5rem;
}

h2 {
    font-size: 3rem;
}

h3 {
    font-size: 1.5rem;
}

em {
    color: var(--sage-ink);
    font-weight: 400;
}

.shell {
    width: var(--shell);
    margin-inline: auto;
}

.narrow {
    max-width: 820px;
}

.section {
    padding: 104px 0;
}

.section--sand {
    background: var(--sand);
}

.section--mist {
    background: var(--mist);
}

.center {
    text-align: center;
}

.muted {
    color: rgba(255, 255, 255, 0.7);
}

.eyebrow {
    margin-bottom: 20px;
    color: var(--clay-ink);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: uppercase;
}

.lead {
    max-width: 620px;
    font-size: 1.125rem;
    line-height: 1.7;
}

.skip-link {
    position: fixed;
    z-index: 9999;
    top: 16px;
    left: 16px;
    width: 1px;
    height: 1px;
    padding: 12px 16px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 2px solid var(--forest);
    border-radius: var(--radius);
    background: var(--white);
    color: var(--forest);
    font-weight: 700;
}

.skip-link:focus {
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

:where(a, button, summary, input, select, textarea):focus-visible {
    outline: 3px solid var(--clay-ink);
    outline-offset: 4px;
}

.site-footer :where(a, button, summary):focus-visible,
.home-cta :where(a, button):focus-visible,
.quote :where(a, button):focus-visible {
    outline-color: var(--white);
}

/* Header and navigation */
.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
    height: 76px;
    border-bottom: 1px solid var(--line);
    background: rgb(253, 252, 249);
}

.admin-bar .site-header {
    top: 32px;
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    gap: 28px;
}

.brand {
    display: inline-flex;
    align-items: baseline;
    flex: 0 0 auto;
    gap: 7px;
    color: var(--forest);
    font-family: var(--font-display);
    font-size: 1.75rem;
    line-height: 1;
    letter-spacing: 0;
}

.brand__123 {
    color: var(--clay-ink);
}

.custom-logo-link {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
}

.custom-logo {
    width: auto;
    max-width: 100%;
    max-height: 46px;
}

.site-header .brand {
    max-width: 180px;
}

.site-header__brand-group {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex: 0 0 auto;
    min-width: 0;
}

.header-tagline {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    color: var(--muted);
    font-family: var(--font-display);
    font-size: 0.875rem;
    font-style: italic;
    font-weight: 400;
    line-height: 1.3;
}

.header-tagline__sep {
    width: 1px;
    height: 20px;
    background: var(--line-strong);
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 22px;
}

.site-nav__list {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 0;
    margin: 0;
    list-style: none;
    font-size: 0.875rem;
    font-weight: 600;
}

.site-nav__list a {
    position: relative;
    display: block;
    padding: 10px 0;
    color: var(--forest);
    line-height: 1.3;
    overflow-wrap: anywhere;
    transition: color 180ms ease;
}

.site-nav__list a::after {
    position: absolute;
    right: 0;
    bottom: 4px;
    left: 0;
    height: 1px;
    background: currentColor;
    content: "";
    opacity: 0;
    transform: scaleX(0.5);
    transition: opacity 180ms ease, transform 180ms ease;
}

.site-nav__list a:hover,
.site-nav__list a:focus-visible,
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a,
.site-nav__list a[aria-current="page"] {
    color: var(--clay-ink);
}

.site-nav__list a:hover::after,
.site-nav__list .current-menu-item > a::after,
.site-nav__list .current_page_item > a::after,
.site-nav__list a[aria-current="page"]::after {
    opacity: 1;
    transform: scaleX(1);
}

.nav-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 0;
    background: transparent;
    color: var(--forest);
    cursor: pointer;
}

.nav-toggle span:not(.screen-reader-text) {
    display: block;
    width: 23px;
    height: 2px;
    margin: 3px auto;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(5px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.nav-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-5px) rotate(-45deg);
}

/* Buttons and links */
.button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border: 1px solid var(--forest);
    border-radius: var(--radius);
    background: var(--forest);
    color: var(--white);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
    text-align: center;
    transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.button:hover {
    border-color: var(--forest-2);
    background: var(--forest-2);
    color: var(--white);
    transform: translateY(-1px);
}

.button--small {
    min-height: 44px;
    padding: 10px 16px;
    font-size: 0.875rem;
}

.button--light {
    border-color: var(--white);
    background: var(--white);
    color: var(--forest);
}

.button--light:hover {
    border-color: var(--ivory);
    background: var(--ivory);
    color: var(--forest);
}

.button-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 32px;
}

.text-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 0 7px;
    border-bottom: 1px solid currentColor;
    color: var(--forest);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.3;
}

.text-link:hover {
    color: var(--clay-ink);
}

.text-link--light {
    color: var(--white);
}

.text-link--light:hover {
    color: var(--ivory);
}

/* Premium home */
.home-main {
    overflow: clip;
    background: var(--white);
}

.home-main .section {
    padding: 112px 0;
}

.home-main :is(#accompagnements, #approche, #faq) {
    scroll-margin-top: 92px;
}

.home-main #accompagnements {
    scroll-margin-top: 0;
}

.hero {
    overflow: hidden;
    background: var(--ivory);
}

.hero__grid {
    display: grid;
    min-height: clamp(740px, calc(100svh - 82px), 880px);
    grid-template-columns: minmax(0, 52%) minmax(0, 48%);
}

.hero__copy {
    display: flex;
    align-items: center;
    padding: 72px clamp(40px, 4vw, 76px) 72px max(32px, calc((100vw - 1220px) / 2));
    background: var(--ivory);
}

.hero__content {
    width: 100%;
    max-width: 620px;
}

.hero .eyebrow {
    font-size: 0.9375rem;
}

.hero h1 {
    margin-bottom: 28px;
    color: var(--forest);
    font-family: var(--font-sans);
    font-size: clamp(3rem, 4.1vw, 4.25rem);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -0.045em;
}

.hero h1 span {
    color: var(--sage-ink);
    font: inherit;
}

.hero .lead {
    max-width: 540px;
    margin-bottom: 0;
    color: var(--text);
    font-size: 1.1875rem;
}

.hero .button,
.hero .text-link {
    font-size: 0.9375rem;
}

.hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 26px;
    padding: 24px 0 0;
    margin: 40px 0 0;
    border-top: 1px solid var(--line-strong);
    color: var(--forest);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.4;
    list-style: none;
    text-transform: uppercase;
}

.hero__meta li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.hero__meta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 46px;
}

.hero__meta-icon img {
    display: block;
    filter: brightness(0.6) drop-shadow(0 0 0.3px var(--ink));
}

.hero__meta-icon--auriculotherapie img {
    width: 45px;
}

.hero__meta-icon--hypnose img {
    width: 43px;
}

.hero__meta-icon--emdr img {
    width: 46px;
}

.hero__note {
    margin: 24px 0 0;
    color: var(--muted);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.45;
}

.hero__visual {
    min-width: 0;
    min-height: 100%;
    overflow: hidden;
}

.hero__image {
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    filter: none;
    object-fit: cover;
    object-position: 64% 50%;
}

.home-manifesto {
    background: var(--white);
}

.home-main .section.home-manifesto {
    padding-top: 52px;
}

.manifesto__grid {
    display: grid;
    grid-template-columns: minmax(0, 30fr) minmax(0, 70fr);
    min-height: clamp(420px, 40vw, 560px);
    gap: 80px;
    padding-top: 27px;
    border-top: 1px solid var(--line);
}

.manifesto__visual {
    min-width: 0;
    min-height: 100%;
    overflow: hidden;
}

.manifesto__image {
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    filter: none;
    object-fit: cover;
    object-position: 50% 50%;
}

.manifesto__copy {
    align-self: center;
}

.manifesto__grid h2 {
    max-width: 860px;
    margin-bottom: 32px;
    font-size: 3.25rem;
}

.manifesto__copy > p:last-child {
    max-width: 680px;
    margin-bottom: 0;
    color: var(--muted);
    font-size: 1.125rem;
}

@media (min-width: 1041px) {
    .home-main .section.home-manifesto {
        padding-bottom: 96px;
    }

    .manifesto__grid {
        gap: 70px;
    }

    .manifesto__grid h2 {
        margin-bottom: 24px;
    }
}

.section-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
    align-items: end;
    gap: 64px;
    margin-bottom: 64px;
}

.section-intro h2 {
    max-width: 760px;
    margin-bottom: 0;
}

.section-intro > p {
    margin-bottom: 4px;
    color: var(--muted);
}

.services-banner {
    position: relative;
    overflow: hidden;
    min-height: clamp(420px, 40vw, 560px);
    margin-bottom: 64px;
}

.services-banner__copy {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    display: flex;
    width: 100%;
    max-width: 60%;
    flex-direction: column;
    justify-content: center;
    padding: 56px clamp(40px, 4vw, 76px) 56px max(32px, calc((100vw - 1220px) / 2));
}

.services-banner__copy h2 {
    max-width: 820px;
    margin-bottom: 0;
}

.services-banner__divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 24px 0;
}

.services-banner__divider-line {
    width: 40px;
    height: 1px;
    background: var(--clay-ink);
}

.services-banner__divider-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--ink);
}

.services-banner__divider-icon svg {
    width: 32px;
    height: 32px;
    filter: drop-shadow(0 0 0.4px var(--ink));
}

.services-banner__copy > p:last-child {
    max-width: 560px;
    margin-bottom: 0;
    color: var(--muted);
    font-size: 1.125rem;
}

.services-banner__visual {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.services-banner__image {
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    filter: none;
    object-fit: cover;
    object-position: 50% 50%;
}

.services-banner__scrim {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to right, var(--ivory) 0%, var(--ivory) 60%, rgba(247, 244, 236, 0) 100%);
}

.home-services {
    --services-photo-w: clamp(220px, 16vw, 300px);
    border-block: 1px solid rgba(23, 57, 47, 0.1);
    background: var(--ivory);
}

.home-main .section.home-services {
    padding-top: 0;
    padding-bottom: 0;
}

.services-lower {
    display: grid;
    grid-template-columns: var(--services-photo-w) minmax(0, 1fr);
    grid-template-rows: auto auto;
}

.services-lower__visual {
    grid-column: 1;
    grid-row: 1 / 3;
    overflow: hidden;
}

.services-lower__image {
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0 clamp(120px, 14vw, 220px) 0 0;
    box-shadow: none;
    filter: none;
    object-fit: cover;
    object-position: 50% 35%;
}

.services-lower__content {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
    column-gap: 72px;
    align-items: start;
    padding: 48px clamp(32px, 4vw, 64px) 40px clamp(48px, 5vw, 88px);
}

.service-featured {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    grid-column: 1;
    max-width: 260px;
    margin-top: clamp(16px, 3vw, 48px);
    padding-bottom: 40px;
}

.service-featured__icon {
    display: inline-flex;
    margin-bottom: 16px;
}

.service-featured__icon svg {
    width: 80px;
    height: 80px;
    filter: drop-shadow(0 0 0.4px var(--ink));
}

.service-featured h3 {
    margin: 0 0 10px;
}

.service-featured p {
    margin-bottom: 28px;
    color: var(--muted);
}

.service-featured__rule {
    width: 24px;
    height: 1px;
    background: var(--line-strong);
}

.service-grid {
    grid-column: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 56px;
}

.service-grid__divider {
    grid-column: 1 / -1;
    height: 1px;
    margin: 2px 0;
    background: var(--line);
}

.service-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.service-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    margin-bottom: 16px;
    color: var(--ink);
}

.service-card__icon svg {
    width: 80px;
    height: 80px;
    filter: drop-shadow(0 0 0.4px var(--ink));
}

.service-card h3 {
    margin: 0 0 10px;
}

.service-card p {
    max-width: 320px;
    margin-bottom: 20px;
    color: var(--muted);
}

.service-card__rule {
    width: 24px;
    height: 1px;
    background: var(--line-strong);
}

.services-band {
    grid-column: 2;
    grid-row: 2;
    background: var(--forest);
}

.services-band__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 880px;
    margin-inline: auto;
    padding: 16px 32px;
    gap: 28px;
}

.services-band__sep {
    flex: 0 0 auto;
    width: 1px;
    height: 44px;
    background: rgba(247, 244, 236, 0.35);
}

.services-band__text {
    margin: 0;
    color: var(--ivory);
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 1.7vw, 1.375rem);
    font-style: italic;
    line-height: 1.65;
    text-align: center;
}

.services-band__text span {
    color: #d6bd8c;
}

.anchor-target {
    scroll-margin-top: 92px;
}

.home-approach {
    background: var(--white);
}

.approach {
    display: grid;
    grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
    align-items: start;
    gap: 112px;
}

.approach__intro h2 {
    margin-bottom: 0;
}

.steps,
.journey {
    padding: 0;
    margin: 0;
    list-style: none;
}

.steps li,
.journey li {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 22px;
    padding: 30px 0;
    border-top: 1px solid var(--line);
}

.steps li:last-child,
.journey li:last-child {
    border-bottom: 1px solid var(--line);
}

.steps li > span,
.journey li > span {
    color: var(--clay-ink);
    font-size: 0.8125rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.steps h3,
.journey h3 {
    margin-bottom: 10px;
    font-size: 1.5rem;
}

.steps p,
.journey p {
    max-width: 620px;
    margin-bottom: 0;
    color: var(--muted);
}

.home-main .section.home-approach {
    padding: 96px 0;
}

.approach {
    gap: 88px;
}

.steps li {
    padding: 26px 0;
    border-top-color: rgba(23, 57, 47, 0.1);
}

.steps li:last-child {
    border-bottom-color: rgba(23, 57, 47, 0.1);
}

.steps li > span {
    font-size: 0.75rem;
}

.quote {
    padding: 104px 0;
    background: var(--forest);
    color: var(--white);
}

.quote__inner {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: start;
    gap: 36px;
}

.quote-mark {
    color: #efaa83;
    font-family: var(--font-display);
    font-size: 4.5rem;
    line-height: 0.9;
}

.quote blockquote {
    max-width: 940px;
    margin-bottom: 0;
    color: var(--white);
    font-family: var(--font-display);
    font-size: 2.75rem;
    font-weight: 400;
    line-height: 1.2;
}

.methods-section {
    background: var(--paper);
}

.section-intro--methods {
    grid-template-columns: 1fr;
}

.section-intro--methods h2 {
    max-width: 820px;
}

.methods {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-block: 1px solid var(--line);
}

.methods article {
    min-height: 278px;
    padding: 34px 34px 30px;
    border-right: 1px solid var(--line);
}

.methods article:last-child {
    border-right: 0;
}

.methods article > span {
    color: var(--clay-ink);
    font-size: 0.8125rem;
    font-weight: 700;
}

.methods h3,
.methods h2 {
    margin: 74px 0 16px;
    font-size: 1.75rem;
}

.methods p {
    margin-bottom: 0;
    color: var(--muted);
}

.home-main .method-icon {
    filter: drop-shadow(0 0 0.4px var(--ink));
}

@media (min-width: 1041px) {
    .section-intro--methods {
        margin-bottom: 48px;
    }

    .home-main .methods {
        border-color: rgba(23, 57, 47, 0.09);
    }

    .home-main .methods article {
        min-height: 0;
        padding: 30px 34px 32px;
        border-right-color: rgba(23, 57, 47, 0.09);
    }

    .home-main .methods h3 {
        margin: 6px 0 16px;
    }

    .home-main .method-icon {
        display: block;
        margin: 0 0 6px;
    }

    .home-main .method-icon--auriculotherapie {
        width: 106px;
    }

    .home-main .method-icon--hypnose {
        width: 100px;
    }

    .home-main .method-icon--emdr {
        width: 90px;
        margin: 0 0 3px;
    }
}

.home-faq {
    background: #eef3f0;
}

.faq {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 96px;
}

.faq__intro > p:last-child {
    max-width: 360px;
    margin-bottom: 0;
    color: var(--muted);
}

.accordion details {
    padding: 24px 0;
    border-top: 1px solid var(--line-strong);
}

.accordion details:last-child {
    border-bottom: 1px solid var(--line-strong);
}

.accordion summary {
    display: grid;
    min-height: 44px;
    grid-template-columns: minmax(0, 1fr) 32px;
    align-items: center;
    gap: 20px;
    color: var(--forest);
    font-family: var(--font-display);
    font-size: 1.25rem;
    line-height: 1.35;
    list-style: none;
    cursor: pointer;
}

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

.accordion summary::after {
    color: var(--clay-ink);
    font-family: var(--font-sans);
    font-size: 1.25rem;
    font-weight: 400;
    text-align: center;
    content: "+";
}

.accordion details[open] summary::after {
    content: "−";
}

.accordion details p {
    max-width: 680px;
    padding-right: 52px;
    margin: 18px 0 0;
    color: var(--muted);
}

.home-cta {
    background: var(--forest);
    color: var(--white);
}

.cta {
    position: relative;
    padding: 64px;
    overflow: hidden;
    border-radius: var(--radius);
    background: var(--forest);
    color: var(--white);
}

.cta h2 {
    max-width: 880px;
    color: var(--white);
}

.cta em {
    color: #c8d9d0;
}

.approach-page .page-hero {
    padding: 88px 0;
}

.approach-page .page-hero h1 {
    margin-bottom: 28px;
}

.approach-page .approach-steps {
    padding: 64px 0 56px;
}

.approach-page .methods {
    border-color: rgba(23, 57, 47, 0.09);
}

.approach-page .methods article {
    min-height: 0;
    padding: 30px 32px 26px;
    border-right-color: rgba(23, 57, 47, 0.09);
}

.approach-page .methods article > span {
    font-size: 0.75rem;
}

.approach-page .methods h2 {
    margin: 28px 0 14px;
}

.approach-page .section--sand {
    padding-top: 56px;
}

.approach-page .cta {
    padding: 56px 64px;
    border-radius: 2px;
}

.approach-page .cta h2 {
    margin-bottom: 32px;
    line-height: 1.25;
}

.approach-page .cta .button {
    padding: 14px 30px;
    font-size: 0.9375rem;
}

.home-cta .cta {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
    align-items: end;
    gap: 96px;
    padding: 0;
    overflow: visible;
    border-radius: 0;
}

.home-cta .eyebrow {
    color: #efaa83;
}

.home-cta h2 {
    margin-bottom: 26px;
}

.home-cta .cta__copy > p:last-child {
    max-width: 660px;
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.78);
}

.home-cta .button-row {
    justify-content: flex-end;
    margin-top: 0;
}

/* Shared inner-page layouts */
.split {
    display: grid;
    grid-template-columns: 0.7fr 1.3fr;
    gap: 80px;
}

.split > div:last-child > p {
    max-width: 650px;
}

.page-hero {
    padding: 120px 0;
    border-bottom: 1px solid rgba(23, 57, 47, 0.1);
    background: var(--mist);
}

.page-hero__grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    gap: 80px;
}

.page-orbit {
    display: grid;
    width: min(400px, 100%);
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.46);
    box-shadow: inset 0 0 0 48px rgba(127, 159, 143, 0.12);
}

.page-orbit span {
    color: var(--clay-ink);
    font-family: var(--font-display);
    font-size: 6rem;
    font-style: italic;
}

.check-list {
    padding: 0;
    margin: 0;
    list-style: none;
}

.check-list li {
    position: relative;
    padding: 22px 0 22px 32px;
    border-top: 1px solid var(--line);
}

.check-list li::before {
    position: absolute;
    left: 0;
    color: var(--clay-ink);
    content: "○";
}

.benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 54px;
}

.benefits article {
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--white);
    color: var(--forest);
    font-family: var(--font-display);
    font-size: 1.4rem;
}

.pricing,
.contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.pricing article,
.contact-note {
    padding: 42px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--white);
}

.prose {
    max-width: 800px;
}

.prose h1 {
    font-size: 4rem;
}

.prose h2 {
    margin-top: 52px;
    font-size: 2.25rem;
}

.posts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

/* SmartAgenda booking widget */
.smartagenda-embed {
    margin-block: 8px;
}

.smartagenda-embed__frame {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: var(--smartagenda-height, 760px);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--mist);
}

.smartagenda-embed__frame iframe {
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

.smartagenda-embed__loading,
.smartagenda-embed__error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 100%;
    margin: 0;
    padding: 24px;
    color: var(--muted);
    font-size: 0.95rem;
    text-align: center;
}

.smartagenda-embed__error {
    color: var(--clay-ink);
}

@media (max-width: 720px) {
    .smartagenda-embed__frame {
        height: min(var(--smartagenda-height, 760px), 620px);
    }
}

/* Offre découverte */
#main.offer-page {
    scroll-margin-top: 96px;
}

.page-hero--compact {
    padding: 96px 0 72px;
}

.offer-hero .page-hero__grid {
    align-items: stretch;
    min-height: clamp(360px, 32vw, 440px);
}

.offer-hero h1 {
    text-wrap: balance;
}

.offer-hero__visual {
    min-width: 0;
    overflow: hidden;
}

.offer-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: 50% 35%;
}

.offer-note {
    margin-top: 24px;
    color: var(--muted);
    font-size: 0.8125rem;
    letter-spacing: 0.02em;
}

.offer {
    padding-block: 64px;
}

.offer + .offer {
    border-top: 1px solid var(--line);
}

.offer > div:first-child {
    padding-right: 40px;
    border-right: 1px solid var(--line);
}

.offer__index {
    display: block;
    margin-bottom: 16px;
    color: var(--clay-ink);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    font-variant-numeric: tabular-nums;
}

.offer__marker {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.offer__marker .offer__index {
    margin-bottom: 0;
}

.offer__marker svg {
    width: 29px;
    height: 29px;
    color: var(--forest);
    filter: drop-shadow(0 0 0.4px var(--ink));
}

.offer__mark-123 {
    /* Le PNG source (1254x1254) conserve une large marge transparente
       autour du dessin (~754px de hauteur dessinée sur 1254px de canevas) ;
       l'affichage est agrandi en conséquence pour que le TRAIT VISIBLE
       fasse environ 29px, au même poids que l'icône Tabac (SVG cadré au
       plus près de son dessin). Proportions et centrage conservés. */
    display: block;
    width: 48px;
    height: 48px;
    object-fit: contain;
    filter: drop-shadow(0 0 0.4px var(--ink));
}

.offer__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 12px;
    margin: 14px 0 8px;
}

.offer__price-old {
    color: var(--muted);
    font-size: 1.125rem;
    text-decoration: line-through;
    text-decoration-color: var(--muted);
}

.offer__price-new {
    color: var(--clay-ink);
    font-family: var(--font-display);
    font-size: 2.75rem;
    line-height: 1;
}

.offer__meta {
    margin: 0;
    color: var(--muted);
    font-size: 0.9375rem;
}

.offer__body p {
    margin-bottom: 14px;
}

.offer__body .button {
    margin-top: 18px;
    padding: 13px 26px;
    font-size: 0.9375rem;
}

.offer-validity {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 18px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.offer-validity__primary {
    color: var(--ink);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.offer-validity__secondary {
    color: var(--muted);
    font-size: 0.8125rem;
}

.offer-list {
    padding: 0;
    margin: 28px 0 0;
    list-style: none;
}

.offer-list li {
    border-top: 1px solid var(--line);
}

.offer-list li:last-child {
    border-bottom: 1px solid var(--line);
}

.offer-list button {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 16px;
    padding: 18px 16px 18px 4px;
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: 1.0625rem;
    text-align: left;
    cursor: pointer;
    transition: background 160ms ease, color 160ms ease, padding-left 160ms ease;
}

.offer-list__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: var(--forest);
    transition: color 160ms ease;
}

.offer-list__icon svg {
    width: 30px;
    height: 30px;
    filter: drop-shadow(0 0 0.4px var(--ink));
}

.offer-list__label {
    flex: 1 1 auto;
}

.offer-list__arrow {
    flex: 0 0 auto;
    color: var(--clay-ink);
    transform: translateX(-4px);
    opacity: 0;
    transition: transform 180ms ease, opacity 180ms ease;
}

.offer-list button:hover,
.offer-list button:focus-visible {
    padding-left: 14px;
    background: var(--mist);
    color: var(--clay-ink);
}

.offer-list button:hover .offer-list__icon,
.offer-list button:focus-visible .offer-list__icon {
    color: var(--clay-ink);
}

.offer-list button:hover .offer-list__arrow,
.offer-list button:focus-visible .offer-list__arrow {
    transform: translateX(0);
    opacity: 1;
}

.offer-reservation {
    padding-block: 64px;
    transition: padding-block 200ms ease;
}

.offer-reservation.is-active {
    padding-block: 96px;
}

.offer-reservation__status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 20px;
}

.offer-chosen {
    margin: 0;
    color: var(--clay-ink);
    font-weight: 700;
}

.offer-placeholder {
    margin: 20px 0 0;
    padding-left: 16px;
    border-left: 2px solid var(--clay-ink);
    color: var(--muted);
}

#offre-reservation .smartagenda-embed {
    margin-top: 28px;
}

#offre-reservation .text-link {
    margin: 0;
}

/*
 * .text-link force display:inline-flex, ce qui neutralise le display:none
 * natif de l'attribut [hidden] (une règle auteur l'emporte toujours sur la
 * feuille de style du navigateur, quelle que soit la spécificité). On rétablit
 * explicitement le masquage tant que l'attribut hidden est présent : l'état
 * visible/caché reste piloté uniquement par le JS via cet attribut.
 */
#offre-reservation-change[hidden] {
    display: none;
}

.section--reassurance {
    padding: 84px 0;
}

.reassurance-lead {
    position: relative;
    max-width: 680px;
    margin: 0 auto 20px;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 2.375rem;
    line-height: 1.32;
    text-wrap: balance;
}

.reassurance-lead::before {
    content: "";
    display: block;
    width: 32px;
    height: 1px;
    margin: 0 auto 28px;
    background: var(--line-strong);
}

.reassurance-methods {
    margin: 0;
    color: var(--muted);
    font-size: 0.875rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.section--slim {
    padding: 56px 0 80px;
}

.fine-print {
    max-width: 640px;
    margin: 0;
    color: var(--muted);
    font-size: 0.9375rem;
    line-height: 1.75;
}

/*
 * Tablette (paysage) : la règle partagée .page-hero__grid/.split
 * (voir @media max-width: 1040px plus haut, aussi utilisée par le menu
 * hamburger) force grid-template-columns: 1fr dès 1040px, ce qui empilait
 * le hero et les deux offres de cette page dès 1024px. On restaure ici deux
 * colonnes spécifiquement pour cette page : les sélecteurs à deux classes
 * (.offer-hero .page-hero__grid, .offer.split) ont une spécificité plus
 * élevée que les règles partagées à une classe, donc ils gagnent quel que
 * soit leur ordre dans la feuille de style. Le menu hamburger (.site-header,
 * .site-nav, .nav-toggle) n'est pas concerné par ce bloc.
 */
@media (min-width: 900px) and (max-width: 1040px) {
    .offer-hero .page-hero__grid {
        grid-template-columns: 1.15fr 1fr;
        gap: 40px;
        min-height: clamp(320px, 34vw, 400px);
    }

    .offer.split {
        grid-template-columns: 0.85fr 1.15fr;
        gap: 40px;
    }

    .offer > div:first-child {
        padding-right: 32px;
    }
}

/*
 * En dessous de 900px, le hero et les offres restent empilés (comportement
 * existant, non retravaillé dans cette passe) : on neutralise juste le
 * diviseur vertical et la hauteur minimale de la photo, devenus inutiles à
 * une seule colonne.
 */
@media (max-width: 899px) {
    .offer-hero .page-hero__grid {
        min-height: 0;
    }

    .offer > div:first-child {
        padding-right: 0;
        border-right: 0;
    }
}

/*
 * Tablette étroite (~768px) : une fois le hero empilé, .offer-hero__image
 * n'a plus de hauteur définie à lui donner (min-height neutralisé ci-dessus)
 * et retombe sur son ratio intrinsèque portrait (477x606 -> ~1.27), d'où une
 * photo quasi plein écran. On fixe ici un ratio paysage maîtrisé sur le
 * conteneur pour cette seule plage, sans toucher au rendu 1024px (>= 900px)
 * ni au mobile (< 600px, à traiter dans une passe dédiée).
 */
@media (min-width: 600px) and (max-width: 899px) {
    .offer-hero__visual {
        width: 100%;
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 720px) {
    .page-hero--compact {
        padding: 64px 0 48px;
    }

    .offer {
        padding-block: 40px;
    }

    .offer__price-new {
        font-size: 1.9rem;
    }

    .offer-list button {
        padding-block: 18px;
    }

    .offer__body .button {
        width: 100%;
    }

    .offer-validity {
        margin-top: 10px;
    }
}

/*
 * Mobile étroit (~360-430px) : finition du rythme vertical du bas de page
 * uniquement (réservation, réassurance, conditions, footer). Hero, photo,
 * offres, icônes, prix, CTA, dates, liste des accompagnements et SmartAgenda
 * ne sont pas concernés par ce bloc. Portée strictement < 600px : aucun
 * changement à 768px, 1024px ni en desktop.
 */
@media (max-width: 599px) {
    .offer-reservation {
        padding-block: 48px;
    }

    .offer-reservation.is-active {
        padding-block: 64px;
    }

    .section--reassurance {
        padding: 56px 0;
    }

    .reassurance-lead {
        margin: 0 auto 16px;
        font-size: 1.375rem;
        line-height: 1.4;
    }

    .reassurance-lead::before {
        margin: 0 auto 20px;
    }

    .section--slim {
        padding: 32px 0 56px;
    }

    /*
     * .site-footer est partagé par tout le site (footer.php) : on le cible
     * uniquement quand il suit .offer-page dans le document, pour que cette
     * finition reste strictement limitée à /offre-decouverte.
     */
    .offer-page ~ .site-footer {
        padding-top: 52px;
    }

    .offer-page ~ .site-footer .site-footer__grid {
        gap: 32px;
    }

    .offer-page ~ .site-footer .site-footer__grid > div:first-child > p:first-of-type {
        margin-top: 16px;
    }

    .offer-page ~ .site-footer .site-footer__bottom {
        margin-top: 32px;
    }
}

/* Confirmation rendez-vous */
.confirmation-page .page-hero__grid {
    align-items: stretch;
    min-height: clamp(360px, 30vw, 460px);
}

/*
 * Tablette large (900-1199px) : la règle partagée .page-hero__grid
 * (@media max-width: 1040px, aussi utilisée par le menu hamburger) force
 * grid-template-columns: 1fr dans cette plage, ce qui empilait le hero en
 * texte puis grande photo pleine largeur. On restaure ici deux colonnes
 * spécifiquement pour cette page — .confirmation-page .page-hero__grid
 * (deux classes) a une spécificité plus élevée que la règle partagée
 * .page-hero__grid (une classe), donc elle gagne quel que soit son ordre
 * dans la feuille de style. Bornée à 1199px pour raccorder exactement au
 * palier desktop (>= 1200px, inchangé) sans le chevaucher ; le menu
 * hamburger (.site-header, .site-nav, .nav-toggle) n'est pas concerné.
 */
@media (min-width: 900px) and (max-width: 1199px) {
    .confirmation-page .page-hero__grid {
        grid-template-columns: 1.15fr 1fr;
        gap: 56px;
        min-height: clamp(380px, 46vw, 480px);
    }
}

.confirmation-visual {
    min-width: 0;
    overflow: hidden;
}

.confirmation-photo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: 50% 35%;
}

.confirmation-thanks {
    color: var(--ink);
    font-weight: 600;
}

.confirmation-note {
    margin-top: 16px;
}

.confirmation-contact {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.9375rem;
    font-style: normal;
    line-height: 1.7;
}

.confirmation-contact strong {
    display: block;
    margin-bottom: 4px;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 400;
}

.confirmation-contact a {
    color: var(--ink);
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    transition: color 180ms ease, text-decoration-color 180ms ease;
}

.confirmation-contact a:hover {
    color: var(--clay-ink);
    text-decoration-color: currentColor;
}

.confirmation-page .button-row {
    margin-top: 24px;
}

/*
 * Micro-ajustements desktop uniquement (>= 1200px) : la colonne photo est
 * réduite d'environ 9 % pour que le H1 reste le point focal, et le rythme
 * de la colonne gauche est resserré en conséquence pour que son bas ne
 * s'arrête plus nettement avant celui de la photo (les deux colonnes sont
 * liées par align-items: stretch sur la même ligne de grille). En dessous
 * de 1200px, les valeurs de base ci-dessus restent inchangées.
 */
@media (min-width: 1200px) {
    .confirmation-page .page-hero__grid {
        min-height: clamp(328px, 27vw, 418px);
    }

    .confirmation-note {
        margin-top: 14px;
    }

    .confirmation-contact {
        margin-top: 20px;
        padding-top: 16px;
    }

    .confirmation-page .button-row {
        margin-top: 18px;
    }

    .confirmation-page .button-row .text-link {
        color: var(--muted);
        font-weight: 400;
    }
}

/* Footer */
.site-footer {
    padding: 84px 0 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    background: #133129;
    color: var(--white);
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 1.35fr 0.8fr 0.95fr 1fr;
    gap: 56px;
}

.site-footer .brand {
    color: var(--white);
}

.site-footer .brand__123 {
    color: #efaa83;
}

.site-footer .custom-logo {
    max-height: 48px;
}

.site-footer__grid > div:first-child > p {
    max-width: 320px;
}

.site-footer__grid > div:first-child > p:first-of-type {
    margin: 24px 0 10px;
    color: var(--white);
    font-family: var(--font-display);
    font-size: 1.25rem;
}

.site-footer h2 {
    margin-bottom: 22px;
    color: #efaa83;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: uppercase;
}

.footer-links {
    padding: 0;
    margin: 0;
    list-style: none;
}

.footer-links li {
    margin: 9px 0;
}

.footer-links a,
.site-footer address {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.875rem;
    font-style: normal;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.footer-links a,
.site-footer address a {
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 4px;
    transition: color 180ms ease, text-decoration-color 180ms ease;
}

.footer-links a:hover,
.site-footer address a:hover {
    color: var(--white);
    text-decoration-color: currentColor;
}

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding-top: 22px;
    margin-top: 64px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.875rem;
}

.site-footer__bottom a {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 4px;
}

.site-footer__bottom a:hover {
    color: var(--white);
    text-decoration-color: currentColor;
}

@media (max-width: 1040px) {
    :root {
        --shell: min(960px, calc(100% - 48px));
    }

    h1 {
        font-size: 4rem;
    }

    h2 {
        font-size: 2.625rem;
    }

    .home-main .section,
    .section {
        padding: 88px 0;
    }

    .home-main .section.home-approach {
        padding: 88px 0;
    }

    .hero__grid {
        min-height: 700px;
        grid-template-columns: minmax(0, 50%) minmax(0, 50%);
    }

    .hero h1 {
        font-size: clamp(2.75rem, 5.2vw, 3.35rem);
    }

    .manifesto__grid,
    .approach,
    .faq {
        gap: 64px;
    }

    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 52px 64px;
    }

    .home-cta .cta {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .home-cta .button-row {
        justify-content: flex-start;
    }
}

@media (max-width: 1040px) {
    .site-header {
        position: static;
        height: auto;
        min-height: 76px;
    }

    .site-header__inner {
        height: auto;
        min-height: 76px;
        flex-wrap: wrap;
    }

    .site-nav {
        display: flex;
        width: 100%;
        align-items: stretch;
        flex-direction: column;
        gap: 18px;
        padding: 0 0 28px;
    }

    .site-nav__list {
        align-items: stretch;
        flex-direction: column;
        gap: 0;
    }

    .site-nav__list li {
        border-bottom: 1px solid var(--line);
    }

    .site-nav__list a {
        padding: 14px 0;
        font-size: 0.9375rem;
    }

    .site-nav__list a::after {
        content: none;
    }

    .site-nav > .button {
        width: 100%;
    }

    .js .site-header {
        position: sticky;
        height: 76px;
        min-height: 0;
    }

    .js .site-header__inner {
        height: 100%;
        min-height: 0;
        flex-wrap: nowrap;
    }

    .js .nav-toggle {
        display: block;
        flex: 0 0 44px;
    }

    .js .site-nav {
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        max-height: calc(100vh - 76px);
        padding: 24px 24px 32px;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-bottom: 1px solid var(--line);
        background: var(--paper);
    }

    .js .admin-bar .site-nav {
        max-height: calc(100vh - 108px);
    }

    .js .site-nav.is-open {
        display: flex;
    }

    .hero__copy {
        padding-inline: 24px 32px;
    }

    .manifesto__grid,
    .approach,
    .faq,
    .page-hero__grid,
    .split,
    .section-intro,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .manifesto__grid,
    .approach,
    .faq,
    .split,
    .page-hero__grid {
        gap: 48px;
    }

    .manifesto__grid {
        min-height: 0;
        padding-top: 18px;
    }

    .home-main .section.home-manifesto {
        padding-top: 40px;
    }

    .services-banner {
        min-height: clamp(340px, 90vw, 460px);
    }

    .services-banner__copy {
        max-width: 100%;
        padding: 40px 28px;
    }

    .home-services {
        --services-photo-w: clamp(180px, 18vw, 240px);
    }

    .services-lower__content {
        grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
        column-gap: 40px;
        padding-left: 32px;
    }

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

    .manifesto__visual {
        min-height: 0;
        height: clamp(280px, 60vw, 420px);
    }

    .section-intro {
        align-items: start;
        gap: 24px;
        margin-bottom: 52px;
    }

    .methods,
    .benefits,
    .pricing {
        grid-template-columns: 1fr;
    }

    .methods article {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .methods article:last-child {
        border-bottom: 0;
    }

    .methods h3,
    .methods h2 {
        margin-top: 42px;
    }

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

@media (min-width: 721px) and (max-width: 1040px) {
    .hero__image {
        object-position: 70% center;
    }

    .hero .eyebrow {
        margin-bottom: 24px;
        font-size: 0.875rem;
        letter-spacing: -0.01em;
        white-space: nowrap;
    }

    .hero h1 {
        margin-bottom: 34px;
        line-height: 1.15;
    }

    .hero .lead {
        margin-bottom: 4px;
    }

    .hero .button-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 22px;
        margin-top: 40px;
    }

    .hero .text-link {
        margin-top: 2px;
    }

    .manifesto__visual {
        height: 460px;
    }

    .manifesto__image {
        object-position: 50% 75%;
    }

    .quote__inner {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 8px;
    }

    .quote-mark {
        font-size: 3.5rem;
        text-align: right;
    }

    .quote blockquote {
        max-width: none;
        font-size: 2.5rem;
        line-height: 1.28;
    }

    .home-main .methods h3 {
        margin-top: 6px;
    }

    .home-main .method-icon {
        display: block;
        margin: 0 0 6px;
    }

    .home-main .method-icon--auriculotherapie {
        width: 73px;
    }

    .home-main .method-icon--hypnose {
        width: 69px;
    }

    .home-main .method-icon--emdr {
        width: 60px;
    }

    .hero__meta {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: flex-start;
        gap: 18px;
        padding-top: 28px;
        margin-top: 54px;
        font-size: 0.9375rem;
    }

    .hero__meta li {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        gap: 14px;
        text-align: left;
    }

    .hero__meta-icon {
        flex: 0 0 40px;
        width: 40px;
        height: auto;
    }

    .hero__meta-icon--auriculotherapie img {
        width: 40px;
    }

    .hero__meta-icon--hypnose img {
        width: 38px;
    }

    .hero__meta-icon--emdr img {
        width: 38px;
    }

    .hero__note {
        margin-top: 30px;
    }
}

@media (max-width: 1024px) {
    .home-services {
        --services-photo-w: clamp(230px, 31vw, 320px);
    }

    .services-lower__content {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 40px;
        padding: 40px 32px;
    }

    .service-featured {
        grid-column: auto;
        max-width: none;
        margin-top: 0;
        padding-bottom: 0;
    }

    .service-grid {
        display: contents;
    }

    .service-grid__divider {
        display: none;
    }

    .services-band__inner {
        padding: 20px 32px;
    }

    .services-band__text {
        font-size: 1.3rem;
    }
}

@media (min-width: 721px) and (max-width: 1024px) {
    .service-grid > .service-card:last-child {
        grid-column: 1 / -1;
        max-width: calc((100% - 40px) / 2);
        justify-self: center;
    }
}

@media (max-width: 782px) {
    .js .admin-bar .site-header {
        top: 46px;
    }

    .js .admin-bar .site-nav {
        max-height: calc(100vh - 122px);
    }
}

@media (max-width: 720px) {
    :root {
        --shell: calc(100% - 32px);
    }

    .approach-page .cta {
        padding: 36px 28px;
    }

    .approach-page .cta h2 {
        overflow-wrap: normal;
        word-break: normal;
    }

    .services-banner {
        min-height: 0;
        margin-bottom: 28px;
    }

    .services-banner__copy {
        position: relative;
        inset: auto;
        justify-content: flex-start;
        padding: 32px 24px 20px;
    }

    .services-banner__image {
        object-position: 78% 50%;
        opacity: 0.85;
    }

    .services-banner__scrim {
        background: linear-gradient(to right, var(--ivory) 0%, var(--ivory) 68%, rgba(247, 244, 236, 0) 100%);
    }

    body {
        font-size: 1rem;
    }

    .js .admin-bar .site-nav {
        max-height: calc(100vh - 114px);
    }

    h1 {
        font-size: 3.25rem;
    }

    h2 {
        font-size: 2.25rem;
    }

    h3 {
        font-size: 1.35rem;
    }

    .home-main .section,
    .section {
        padding: 72px 0;
    }

    .home-main .section.home-approach {
        padding: 72px 0;
    }

    .site-header,
    .site-header__inner {
        min-height: 68px;
    }

    .js .site-header {
        height: 68px;
        min-height: 0;
    }

    .js .site-header__inner {
        min-height: 0;
    }

    .js .site-nav {
        max-height: calc(100vh - 68px);
        padding-inline: 16px;
    }

    .custom-logo {
        max-height: 42px;
    }

    .brand {
        font-size: 1.55rem;
    }

    .header-tagline {
        display: none;
    }

    .hero {
        min-height: 0;
    }

    .hero__grid {
        min-height: 0;
        grid-template-columns: 1fr;
        padding-block: 60px 48px;
    }

    .hero__copy,
    .hero__content {
        display: contents;
    }

    .hero .eyebrow,
    .hero h1,
    .hero .lead,
    .hero__meta,
    .hero__note {
        width: var(--shell);
        margin-inline: auto;
    }

    .hero .eyebrow {
        order: 1;
        font-size: 0.8125rem;
        letter-spacing: -0.01em;
        white-space: nowrap;
    }

    .hero h1 {
        order: 2;
        margin-bottom: 28px;
        font-size: clamp(2.45rem, 10vw, 3.35rem);
        line-height: 1.08;
        letter-spacing: -0.02em;
    }

    .hero .lead {
        order: 3;
        max-width: 500px;
        font-size: 1rem;
    }

    .hero .button-row {
        order: 4;
        width: var(--shell);
        margin-inline: auto;
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
        margin-top: 28px;
    }

    .hero .button {
        min-height: 46px;
        padding: 13px 26px;
        font-size: 0.875rem;
    }

    .hero .text-link {
        align-self: flex-start;
        font-weight: 600;
        font-size: 0.875rem;
    }

    .hero__meta {
        order: 6;
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: flex-start;
        gap: 12px;
        padding-top: 18px;
        margin-top: 40px;
        border-top-color: var(--line);
        font-size: 0.875rem;
        font-weight: 600;
        letter-spacing: 0.02em;
    }

    .hero__meta li {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        gap: 12px;
        text-align: left;
    }

    .hero__meta-icon {
        flex: 0 0 34px;
        width: 34px;
        height: auto;
    }

    .hero__meta-icon--auriculotherapie img {
        width: 34px;
    }

    .hero__meta-icon--hypnose img {
        width: 32px;
    }

    .hero__meta-icon--emdr img {
        width: 33px;
    }

    .hero__note {
        order: 7;
        margin-top: 22px;
        color: var(--muted);
        font-size: 0.9375rem;
        font-weight: 500;
    }

    .hero__visual {
        order: 5;
        height: clamp(300px, 80vw, 330px);
        min-height: 0;
        margin-top: 36px;
    }

    .hero__image {
        object-position: 66% 50%;
    }

    .home-main .section.home-manifesto {
        padding-top: 28px;
    }

    .manifesto__grid {
        padding-top: 12px;
    }

    .manifesto__grid h2 {
        font-size: 2.35rem;
    }

    .services-lower {
        display: block;
    }

    .services-lower__visual {
        position: static;
        width: 100%;
        height: clamp(220px, 62vw, 340px);
        margin-bottom: 32px;
    }

    .services-lower__image {
        border-radius: 0 0 120px 0;
    }

    .services-lower__content {
        display: block;
        padding: 0 24px 48px;
    }

    .service-featured {
        max-width: none;
        margin-top: 0;
        padding-bottom: 0;
        margin-bottom: 40px;
    }

    .service-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .service-grid__divider {
        display: none;
    }

    .services-band__inner {
        gap: 16px;
        padding: 36px 24px;
    }

    .services-band__sep {
        height: 32px;
    }

    .services-band__text {
        max-width: 260px;
        font-size: 1.0625rem;
    }

    .steps li,
    .journey li {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 14px;
        padding: 24px 0;
    }

    .quote {
        padding: 48px 0;
    }

    .quote__inner {
        display: block;
        width: calc(100% - 56px);
        margin-inline: auto;
    }

    .quote-mark {
        display: block;
        font-size: 2.75rem;
        line-height: 1;
        margin: 0 0 10px;
    }

    .quote blockquote {
        width: 100%;
        max-width: none;
        margin: 0;
        font-size: 1.65rem;
        line-height: 1.26;
    }

    .methods article {
        padding: 28px 4px 30px;
    }

    .home-main .methods h3 {
        margin-top: 6px;
    }

    .home-main .method-icon {
        display: block;
        margin: 0 0 6px;
    }

    .home-main .method-icon--auriculotherapie {
        width: 67px;
    }

    .home-main .method-icon--hypnose {
        width: 63px;
    }

    .home-main .method-icon--emdr {
        width: 54px;
    }

    .accordion summary {
        grid-template-columns: minmax(0, 1fr) 24px;
        gap: 14px;
        font-size: 1.125rem;
    }

    .accordion details p {
        padding-right: 0;
    }

    .home-cta .cta {
        gap: 32px;
    }

    .home-cta .button-row {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .home-cta .button {
        width: 100%;
    }

    .home-cta .text-link {
        align-self: flex-start;
    }

    .cta {
        padding: 36px 28px;
    }

    .page-hero {
        padding: 84px 0;
    }

    .page-orbit {
        max-width: 280px;
    }

    .page-orbit span {
        font-size: 4.5rem;
    }

    .pricing article,
    .contact-note {
        padding: 30px;
    }

    .posts-grid {
        grid-template-columns: 1fr;
    }

    .site-footer {
        padding-top: 68px;
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        margin-top: 50px;
    }
}

@media (max-width: 600px) {
    .js .admin-bar .site-header {
        top: 0;
    }

    .js .admin-bar .site-nav {
        max-height: calc(100vh - 114px);
    }
}

@media (max-width: 420px) {
    :root {
        --shell: calc(100% - 24px);
    }

    .hero h1 {
        font-size: 2.2rem;
    }

    .manifesto__grid h2 {
        font-size: 2.05rem;
    }

    .quote-mark {
        font-size: 2.5rem;
        margin-bottom: 8px;
    }

    .quote blockquote {
        font-size: 1.55rem;
        line-height: 1.28;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

.reveal-ready :is(
    .hero h1,
    .lead,
    .eyebrow,
    .section h2,
    .service-card,
    .methods article,
    .benefits article,
    .steps li,
    .journey li,
    .check-list li,
    .quote blockquote,
    .pricing article,
    .contact-note
) {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 500ms ease, transform 500ms ease;
}

.reveal-ready :is(
    .hero h1,
    .lead,
    .eyebrow,
    .section h2,
    .service-card,
    .methods article,
    .benefits article,
    .steps li,
    .journey li,
    .check-list li,
    .quote blockquote,
    .pricing article,
    .contact-note
).is-visible {
    opacity: 1;
    transform: none;
}

.reveal-ready .service-card:nth-child(2),
.reveal-ready .methods article:nth-child(2),
.reveal-ready .benefits article:nth-child(2) {
    transition-delay: 60ms;
}

.reveal-ready .service-card:nth-child(3),
.reveal-ready .methods article:nth-child(3),
.reveal-ready .benefits article:nth-child(3) {
    transition-delay: 120ms;
}

@media (prefers-reduced-motion: reduce) {
    .reveal-ready :is(
        .hero h1,
        .lead,
        .eyebrow,
        .section h2,
        .service-card,
        .methods article,
        .benefits article,
        .steps li,
        .journey li,
        .check-list li,
        .quote blockquote,
        .pricing article,
        .contact-note
    ) {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media print {
    .site-header,
    .site-footer,
    .button-row {
        display: none !important;
    }

    .reveal-ready :is(
        .hero h1,
        .lead,
        .eyebrow,
        .section h2,
        .service-card,
        .methods article,
        .benefits article,
        .steps li,
        .journey li,
        .check-list li,
        .quote blockquote,
        .pricing article,
        .contact-note
    ) {
        opacity: 1 !important;
        transform: none !important;
    }
}
