/* Palette et mise en page partagées par toutes les pages. Aucune dépendance distante. */
:root {
    --cream: #faf1e5;
    --paper: #f4e8db;
    --plum: #422044;
    --rose: #9c3a6a;
    --gold: #eac77c;
    --ink: #321b36;
    --muted: #66516a;
    --line: #dbc7b8
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 1rem
}

body {
    margin: 0;
    color: var(--ink);
    background: radial-gradient(ellipse at 12% 52%, #e5c3c326, transparent 42%), radial-gradient(ellipse at 94% 18%, #c7a77320, transparent 32%), var(--cream);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 17px;
    line-height: 1.5
}

a {
    color: inherit;
    text-underline-offset: 5px
}

button {
    font: inherit
}

a,
button {
    -webkit-tap-highlight-color: transparent
}

a:focus-visible,
button:focus-visible {
    outline: 3px solid #b97d28;
    outline-offset: 5px
}

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

h1,
h2,
h3 {
    font-weight: 400;
    line-height: 1.15
}

h1 {
    font-size: clamp(2.4rem, 4vw, 3.7rem)
}

h2 {
    font-size: clamp(2rem, 3vw, 2.75rem)
}

h3 {
    font-size: 1.3rem
}

p:last-child {
    margin-bottom: 0
}

.wrap {
    width: min(1220px, calc(100% - 80px));
    margin-inline: auto
}

.skip {
    position: absolute;
    left: 12px;
    top: -100px;
    background: white;
    color: var(--plum);
    padding: 12px;
    z-index: 20
}

.skip:focus {
    top: 12px
}

.site-header {
    background: linear-gradient(110deg, #fff8ee, #f3e5d9);
    border-bottom: 1px solid var(--line)
}

.header-inner {
    max-width: 1300px;
    min-height: 86px;
    padding: 8px 32px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    flex-shrink: 0
}

.brand-mark {
    width: 70px;
    height: 66px;
    border-radius: 50%
}

.brand>span {
    font-size: clamp(1.1rem, 1.9vw, 1.75rem);
    font-variant: small-caps;
    line-height: 1.1
}

.brand em {
    color: #aa743e;
    font-style: normal
}

.brand small {
    display: block;
    text-align: center;
    font-size: 1.1rem;
    font-style: italic;
    font-variant: normal;
    color: #805731;
    margin-top: 5px
}

.site-header nav {
    display: flex;
    align-items: center;
    gap: 25px;
    font-size: .9rem
}

.site-header nav a {
    text-decoration: none;
    padding: 12px 0;
    white-space: nowrap
}

.site-header nav a:hover,
.site-header nav [aria-current],
.site-header nav .selected {
    box-shadow: 0 2px var(--plum)
}

.menu-toggle {
    display: none
}

.art {
    display: block;
    width: 100%;
    height: auto;
    overflow: hidden
}

.hero {
    background: linear-gradient(90deg, rgba(23, 9, 26, .67), rgba(23, 9, 26, .23) 48%, transparent 76%), url('hero.png') 50% 50%/cover no-repeat;
    color: #fff5e6;
    border-bottom: 2px solid #bb8752
}

.hero-inner {
    min-height: 430px;
    display: flex;
    align-items: center;
    padding-block: 34px
}

.hero-copy {
    max-width: 650px;
    width: 57%;
    text-shadow: 0 2px 10px #150617
}

.hero h1 {
    font-variant: small-caps;
    font-size: clamp(2.1rem, 3.65vw, 3.45rem);
    white-space: nowrap;
    letter-spacing: -1px;
    margin-bottom: 0
}

.hero h1 em {
    font-style: normal;
    color: var(--gold)
}

.signature {
    font-family: 'Segoe Script', 'Brush Script MT', Georgia, cursive;
    font-style: italic;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    color: var(--gold);
    margin: 0 0 14px;
    text-align: center
}

.hero-topics {
    font-family: Arial, sans-serif;
    font-size: .67rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 18px
}

.hero-topics span {
    color: var(--gold)
}

.motto {
    font-family: 'Segoe Script', Georgia, serif;
    font-style: italic;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
    color: #ffe8ac;
    text-align: center;
    white-space: nowrap;
    margin-bottom: 18px
}

.promises {
    display: flex;
    gap: 24px;
    border-top: 1px solid #eac77c66;
    padding-top: 15px;
    margin-bottom: 22px
}

.promises p {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: .87rem;
    line-height: 1.3;
    margin: 0
}

.promises svg {
    width: 35px;
    height: 35px;
    stroke: var(--gold);
    fill: none;
    stroke-width: 1.6;
    flex-shrink: 0
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 22px
}

.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 22px;
    text-decoration: none;
    border: 1px solid #54233f;
    border-radius: 999px;
    padding: 11px 24px;
    color: #fff8ec;
    background: linear-gradient(130deg, #814267, #48254e);
    box-shadow: inset 0 0 0 3px #ffffff18, 0 2px 3px #30133422;
    font-size: 1rem;
    line-height: 1.3;
    transition: background .2s, transform .2s
}

.button:hover {
    background: linear-gradient(130deg, #9d466f, #603465);
    transform: translateY(-2px)
}

.button span {
    font-size: 1.4em;
    line-height: 1
}

.hero .button {
    background: linear-gradient(120deg, #8a255b, #b94f7a);
    border: 1px solid #f7d39c;
    box-shadow: 0 0 0 3px #e8a5c25e, inset 0 0 0 3px #fff4e827, 0 0 20px #bd588888;
    white-space: nowrap;
    padding: 13px 23px
}

.universe-link {
    display: flex;
    gap: 10px;
    align-items: center;
    text-decoration: none;
    font-size: .91rem
}

.universe-link>span {
    border: 1px solid var(--gold);
    border-radius: 100%;
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    flex-shrink: 0
}

.services {
    padding-top: 24px;
    padding-bottom: 12px
}

.section-heading {
    text-align: center;
    margin-bottom: 20px
}

.section-heading h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 35px;
    margin-bottom: 5px
}

.section-heading h2:before,
.section-heading h2:after {
    content: '✦';
    font-size: 18px;
    color: #aa7845;
    background: linear-gradient(#b8885e, #b8885e) center/100% 1px no-repeat;
    width: 95px
}

.section-heading p {
    font-size: 1rem
}

.cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px
}

.service-card {
    position: relative;
    border: 1px solid #e6d2c3;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(#fffaf1, #ecddcf);
    text-align: center;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 15px #50304706
}

.card-art {
    aspect-ratio: 2.37;
    overflow: hidden
}

.card-art .art {
    width: 100%;
    height: 100%
}

.badge {
    position: absolute;
    top: clamp(79px, 8.2vw, 103px);
    left: 50%;
    transform: translateX(-50%);
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #fff5e9;
    border: 1px solid #d9bdab;
    box-shadow: 0 2px 4px #53305020
}

.badge svg {
    width: 40px;
    height: 40px;
    fill: none;
    stroke: #654061;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round
}

.card-body {
    padding: 35px 14px 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1
}

.card-body h3 {
    font-size: 1.18rem;
    font-weight: 600;
    margin-bottom: 8px;
    min-height: 2.3em;
    display: flex;
    align-items: center;
    justify-content: center
}

.card-body p {
    font-size: .94rem;
    line-height: 1.3;
    max-width: 230px;
    margin-bottom: 14px;
    flex: 1
}

.button.small {
    font-size: .9rem;
    padding: 7px 21px;
    gap: 18px
}

.animal-link {
    text-align: center;
    font-size: .95rem;
    padding: 16px 0 2px;
    color: var(--muted)
}

.animal-link a {
    color: var(--plum);
    font-weight: bold;
    margin-left: 8px
}

.about {
    display: grid;
    grid-template-columns: 29% 1fr 18%;
    gap: 28px;
    align-items: center;
    padding-block: 24px 36px
}

.about-art {
    border-radius: 50%;
    overflow: hidden
}

.about-copy h2 {
    margin-bottom: 12px;
    font-size: 2.3rem
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-family: Arial, sans-serif;
    font-size: .75rem;
    color: #764567;
    margin-bottom: 7px
}

.eyebrow span {
    margin-left: 12px
}

.about-copy p:not(.eyebrow) {
    font-size: 1rem;
    line-height: 1.45;
    margin-bottom: 12px
}

.about-copy .button {
    margin-top: 3px
}

.about-words {
    font-family: 'Segoe Script', Georgia, serif;
    font-size: 1.5rem;
    font-style: italic;
    line-height: 1.8;
    text-align: center;
    color: #865270;
    transform: rotate(-7deg)
}

.about-words span {
    font-size: 1.3rem
}

.quote {
    position: relative;
    text-align: center;
    padding: 28px 20px;
    color: #f7dba3;
    background: radial-gradient(ellipse at 15% 20%, #8d486e77, transparent 50%), radial-gradient(ellipse at 88% 90%, #8c5a4b66, transparent 48%), #351c3e;
    border-block: 1px solid #c29974
}

.quote p {
    font-size: 1.8rem;
    font-style: italic;
    line-height: 1.35;
    margin-bottom: 8px
}

.quote span {
    font-size: 1.5rem
}

.information {
    padding: 28px 0;
    border-bottom: 1px solid var(--line);
    background: #f0e2d4
}

.info-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px
}

.information h2 {
    font-size: 1.7rem;
    margin-bottom: 8px
}

.information p:last-child {
    font-size: .96rem;
    color: #5c465e
}

.info-flower {
    font-size: 4rem;
    color: #99613d
}

.site-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding-block: 20px;
    font-size: .85rem
}

.footer-brand {
    text-decoration: none;
    font-variant: small-caps;
    font-size: 1.1rem
}

.footer-brand span {
    display: block;
    font-size: .9rem;
    font-style: italic;
    font-variant: normal;
    color: #86583c
}

.site-footer p {
    margin: 0;
    color: var(--muted)
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: .85rem;
    padding-block: 24px;
    color: var(--muted)
}

.detail {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: center;
    gap: 65px;
    padding-block: 26px 60px;
    min-height: 590px
}

.detail h1 {
    max-width: 640px;
    margin-bottom: 24px
}

.lead {
    font-size: 1.35rem;
    line-height: 1.5
}

.details-note {
    border-left: 2px solid #b78352;
    padding: 6px 0 6px 22px;
    margin: 30px 0
}

.details-note h2 {
    font-size: 1.5rem;
    margin-bottom: 12px
}

.details-note p {
    font-size: 1rem;
    color: #66526a
}

.detail-art {
    border: 1px solid var(--line);
    background: linear-gradient(#fff7ed, #e8d3c4);
    border-radius: 150px 150px 20px 20px;
    overflow: hidden;
    text-align: center;
    position: relative;
    box-shadow: 0 16px 45px #44214615
}

.detail-picture {
    padding-top: 45px;
    background: #462d3d
}

.detail-picture .art {
    aspect-ratio: 2.6
}

.detail-icon {
    display: grid;
    place-items: center;
    width: 90px;
    height: 90px;
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: 50%;
    margin: -15px auto 15px;
    position: relative
}

.detail-icon svg {
    width: 55px;
    fill: none;
    stroke: #71466b;
    stroke-width: 1.3
}

.detail-art p {
    font-size: 1.5rem;
    padding: 10px 15px 40px;
    color: #71466b
}

.related {
    border-top: 1px solid var(--line);
    padding-block: 30px 50px
}

.related h2 {
    font-size: 1.6rem;
    margin-bottom: 20px
}

.related-links {
    display: flex;
    gap: 14px;
    flex-wrap: wrap
}

.button.outline {
    color: var(--plum);
    background: transparent;
    border-color: #b798ad;
    box-shadow: none;
    font-size: .95rem
}

.button.outline:hover {
    background: #ecdde4
}

.animal-portrait {
    border-radius: 50%;
    overflow: hidden
}

.about-page {
    padding: 30px 0 65px;
    text-align: center;
    max-width: 820px
}

.about-page h1 {
    margin-bottom: 15px
}

.about-page .signature {
    color: #966340;
    font-size: 1.8rem;
    margin-bottom: 35px
}

.about-page-body {
    text-align: left;
    max-width: 680px;
    margin: auto
}

@media(min-width:1400px) {
    .hero-inner {
        min-height: 470px
    }

    .hero-copy {
        width: 58%;
        max-width: 680px
    }

    .hero h1 {
        font-size: 3.55rem
    }

    .badge {
        top: 102px
    }
}

@media(max-width:1100px) {
    .header-inner {
        gap: 20px;
        padding-inline: 25px
    }

    .site-header nav {
        gap: 18px;
        font-size: .85rem
    }

    .brand-mark {
        width: 55px;
        height: 55px
    }

    .hero-actions {
        gap: 18px;
        flex-wrap: wrap
    }

    .hero-copy {
        width: 65%
    }

    .hero h1 {
        font-size: 3.5vw
    }

    .promises {
        gap: 18px
    }

    .cards {
        gap: 14px
    }

    .badge {
        top: calc((100vw - 122px)/9.48 - 29px)
    }

    .about {
        grid-template-columns: 28% 1fr 17%;
        gap: 20px
    }

    .about-words {
        font-size: 1.25rem
    }

    .about-words span {
        font-size: 1.1rem
    }
}

@media(max-width:1000px) {
    .header-inner {
        flex-wrap: wrap
    }

    .site-header nav {
        width: 100%;
        justify-content: center;
        padding-bottom: 10px;
        flex-wrap: wrap
    }

    .js .menu-toggle {
        display: flex;
        gap: 12px;
        align-items: center;
        border: 1px solid #bea2b4;
        border-radius: 8px;
        background: transparent;
        color: var(--plum);
        padding: 8px 14px;
        min-height: 44px
    }

    .js .site-header nav {
        display: none
    }

    .js .site-header nav.open {
        display: flex
    }

    .hero-copy {
        width: 72%
    }

    .hero {
        background-position: 61% center
    }

    .cards {
        grid-template-columns: repeat(2, 1fr);
        gap: 22px
    }

    .badge {
        top: auto;
        position: relative;
        left: auto;
        transform: none;
        margin: -29px auto -27px;
        flex-shrink: 0
    }

    .card-body {
        padding-top: 35px
    }

    .card-body h3 {
        min-height: 0
    }

    .card-body p {
        max-width: 280px
    }

    .about {
        grid-template-columns: 32% 1fr
    }

    .about-words {
        display: none
    }

    .detail {
        gap: 35px
    }

    .hero-topics {
        letter-spacing: .5px;
        font-size: .61rem
    }

    .hero h1 {
        font-size: 4.4vw
    }

    .motto {
        font-size: 2.5vw
    }
}

@media(max-width:650px) {
    body {
        font-size: 16px
    }

    .wrap {
        width: calc(100% - 36px)
    }

    .header-inner {
        padding: 12px 18px;
        min-height: 78px;
        gap: 10px
    }

    .brand {
        gap: 8px
    }

    .brand-mark {
        width: 47px;
        height: 47px
    }

    .brand>span {
        font-size: 1rem
    }

    .brand small {
        font-size: .9rem
    }

    .js .menu-toggle {
        font-size: .85rem;
        padding: 7px 10px;
        gap: 7px
    }

    .site-header nav {
        align-items: stretch;
        justify-content: start;
        gap: 0
    }

    .site-header nav a {
        padding: 13px 10px;
        flex: 1 1 45%;
        white-space: normal
    }

    .hero {
        background-image: linear-gradient(0deg, #211023 3%, #211023ee 39%, #21102322 80%), url('hero.png');
        background-size: auto, auto 310px;
        background-position: center, 73% top;
        background-color: #211023
    }

    .hero-inner {
        padding-top: 270px;
        padding-bottom: 30px;
        min-height: 0
    }

    .hero-copy {
        width: 100%;
        max-width: none
    }

    .hero h1 {
        font-size: clamp(1.7rem, 7.1vw, 2.8rem);
        white-space: normal;
        text-align: center;
        letter-spacing: -.5px
    }

    .signature {
        font-size: 1.85rem;
        margin-bottom: 15px
    }

    .hero-topics {
        font-size: .56rem;
        letter-spacing: .5px;
        justify-content: center;
        text-align: center;
        line-height: 1.6;
        gap: 8px
    }

    .motto {
        font-size: clamp(.98rem, 4.05vw, 1.6rem);
        white-space: normal
    }

    .promises {
        gap: 12px;
        justify-content: center;
        padding-top: 16px
    }

    .promises p {
        font-size: .7rem;
        gap: 6px
    }

    .promises svg {
        width: 25px;
        height: 25px
    }

    .hero-actions {
        justify-content: center;
        gap: 18px;
        flex-direction: column
    }

    .hero .button {
        padding: 13px 26px
    }

    .services {
        padding-top: 26px
    }

    .section-heading h2 {
        gap: 12px;
        font-size: 2rem
    }

    .section-heading h2:before,
    .section-heading h2:after {
        width: 35px;
        font-size: 13px
    }

    .section-heading p {
        font-size: .94rem
    }

    .cards {
        gap: 16px
    }

    .card-body {
        padding-inline: 10px
    }

    .card-body h3 {
        font-size: 1.1rem;
        min-height: 2.4em
    }

    .card-body p {
        font-size: .87rem
    }

    .button.small {
        padding: 8px 14px;
        gap: 10px
    }

    .badge {
        width: 54px;
        height: 54px;
        margin-top: -22px
    }

    .badge svg {
        width: 34px;
        height: 34px
    }

    .animal-link {
        font-size: .88rem
    }

    .animal-link a {
        display: block;
        margin: 6px 0 0
    }

    .about {
        grid-template-columns: 1fr;
        padding-top: 20px;
        gap: 20px
    }

    .about-art {
        max-width: 250px;
        margin: auto;
        order: 2
    }

    .about-copy h2 {
        font-size: 2rem
    }

    .about-copy {
        text-align: center
    }

    .quote p {
        font-size: 1.55rem
    }

    .information h2 {
        font-size: 1.5rem
    }

    .info-flower {
        display: none
    }

    .site-footer {
        flex-direction: column;
        gap: 12px;
        text-align: center
    }

    .detail {
        grid-template-columns: 1fr;
        gap: 30px;
        padding-top: 10px;
        padding-bottom: 35px;
        min-height: 0
    }

    .detail h1 {
        font-size: 2.5rem
    }

    .lead {
        font-size: 1.2rem
    }

    .detail-art {
        max-width: 440px;
        width: 100%;
        margin: auto
    }

    .detail-art p {
        padding-bottom: 25px
    }

    .animal-portrait {
        max-width: 340px;
        margin: auto
    }

    .related-links {
        flex-direction: column;
        align-items: stretch
    }

    .related-links .button {
        justify-content: space-between
    }

    .about-page {
        padding-top: 10px
    }

    .about-page h1 {
        font-size: 2.4rem
    }

    .about-page .signature {
        font-size: 1.35rem
    }

    .breadcrumb {
        font-size: .75rem
    }
}

@media(max-width:380px) {
    .cards {
        grid-template-columns: 1fr
    }

    .card-body h3 {
        min-height: 0
    }

    .card-body p {
        max-width: 260px
    }

    .brand-mark {
        width: 38px;
        height: 38px
    }

    .brand>span {
        font-size: .9rem
    }

    .hero-topics {
        font-size: .5rem
    }

    .promises {
        gap: 10px
    }

    .promises p {
        font-size: .65rem
    }

    .promises svg {
        width: 21px
    }
}

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

    *,
    *:before,
    *:after {
        transition: none !important
    }
}

/* Le médaillon suit la hauteur réelle de l’image à toutes les largeurs. */
.brand .brand-mark {
    width: 70px;
    height: 66px;
    flex-shrink: 0
}

@media(max-width:1100px) {
    .brand .brand-mark {
        width: 55px;
        height: 55px
    }
}

@media(max-width:650px) {
    .brand .brand-mark {
        width: 47px;
        height: 47px
    }
}

@media(max-width:380px) {
    .brand .brand-mark {
        width: 38px;
        height: 38px
    }
}

.badge {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    margin: -40px auto -16px;
    flex-shrink: 0
}

@media(max-width:650px) {
    .badge {
        margin-top: -22px
    }
}

@media print {

    .menu-toggle,
    .hero-actions,
    .site-footer>a:last-child {
        display: none !important
    }

    body {
        background: white;
        color: black
    }

    .hero {
        background: #321b36
    }

    .hero-inner {
        min-height: 0;
        padding: 30px 0
    }

    .hero-copy {
        width: 100%
    }

    .cards {
        grid-template-columns: repeat(2, 1fr)
    }

    a {
        box-shadow: none !important
    }

    .service-card,
    .detail {
        break-inside: avoid
    }
}

.detail-picture .art {
    aspect-ratio: auto
}

/* Étoiles magiques autour du dragon */

.hero {
    position: relative;
    isolation: isolate;
}

.dragon-sparkles {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
}

.sparkle {
    position: absolute;
    width: 7px;
    height: 7px;
    background: #fff3c0;
    border-radius: 50%;
    box-shadow:
        0 0 8px 3px rgba(255, 220, 130, 0.8),
        0 0 22px 7px rgba(255, 180, 70, 0.35);
    animation: dragon-twinkle 3s ease-in-out infinite;
}

/* Position des étoiles sur la partie droite de la bannière */

.sparkle-1 {
    top: 12%;
    left: 68%;
    animation-delay: 0s;
}

.sparkle-2 {
    top: 25%;
    left: 76%;
    animation-delay: .7s;
}

.sparkle-3 {
    top: 38%;
    left: 88%;
    animation-delay: 1.4s;
}

.sparkle-4 {
    top: 55%;
    left: 94%;
    animation-delay: .3s;
}

.sparkle-5 {
    top: 70%;
    left: 82%;
    animation-delay: 2s;
}

.sparkle-6 {
    top: 18%;
    left: 95%;
    animation-delay: 1.1s;
}

.sparkle-7 {
    top: 62%;
    left: 72%;
    animation-delay: 2.5s;
}

.sparkle-8 {
    top: 45%;
    left: 65%;
    animation-delay: 1.8s;
}

@keyframes dragon-twinkle {

    0%,
    100% {
        opacity: 0;
        transform: scale(0.3);
    }

    50% {
        opacity: 1;
        transform: scale(1.4);
    }
}

/* Respect des préférences d'accessibilité */

@media (prefers-reduced-motion: reduce) {
    .sparkle {
        animation: none;
        opacity: 0;
    }
}

/* Particules magiques flottantes */

.magic-particles {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
}

.particle {
    position: absolute;
    bottom: 5%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #ffe7a0;
    box-shadow:
        0 0 6px 2px rgba(255, 225, 150, 0.65),
        0 0 16px rgba(255, 195, 80, 0.4);
    opacity: 0;
    animation: magic-float 9s linear infinite;
}

/* Répartition des particules dans la forêt */

.particle-1 {
    left: 59%;
    bottom: 12%;
    animation-delay: -1s;
    animation-duration: 9s;
}

.particle-2 {
    left: 66%;
    bottom: 5%;
    animation-delay: -5s;
    animation-duration: 11s;
}

.particle-3 {
    left: 73%;
    bottom: 18%;
    animation-delay: -3s;
    animation-duration: 8s;
}

.particle-4 {
    left: 82%;
    bottom: 8%;
    animation-delay: -7s;
    animation-duration: 12s;
}

.particle-5 {
    left: 90%;
    bottom: 15%;
    animation-delay: -2s;
    animation-duration: 10s;
}

.particle-6 {
    left: 96%;
    bottom: 6%;
    animation-delay: -6s;
    animation-duration: 9s;
}

.particle-7 {
    left: 62%;
    bottom: 28%;
    animation-delay: -8s;
    animation-duration: 13s;
}

.particle-8 {
    left: 78%;
    bottom: 30%;
    animation-delay: -4s;
    animation-duration: 11s;
}

.particle-9 {
    left: 86%;
    bottom: 24%;
    animation-delay: -9s;
    animation-duration: 12s;
}

.particle-10 {
    left: 70%;
    bottom: 8%;
    animation-delay: -6s;
    animation-duration: 10s;
}

.particle-11 {
    left: 93%;
    bottom: 35%;
    animation-delay: -3s;
    animation-duration: 14s;
}

.particle-12 {
    left: 55%;
    bottom: 16%;
    animation-delay: -7s;
    animation-duration: 12s;
}

/* Différentes tailles pour un rendu naturel */

.particle:nth-child(3n) {
    width: 3px;
    height: 3px;
}

.particle:nth-child(4n) {
    width: 5px;
    height: 5px;
}

/* Montée lente avec léger mouvement latéral */

@keyframes magic-float {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.5);
    }

    20% {
        opacity: 0.8;
    }

    50% {
        opacity: 0.65;
        transform: translate(12px, -55px) scale(1);
    }

    80% {
        opacity: 0.4;
    }

    100% {
        opacity: 0;
        transform: translate(-8px, -115px) scale(0.5);
    }
}

/* Désactivation si l'utilisateur préfère moins d'animations */

@media (prefers-reduced-motion: reduce) {
    .particle {
        animation: none;
        opacity: 0;
    }
}

/* Particules magiques plus lumineuses */

.magic-particles .particle {
    width: 7px;
    height: 7px;
    background: #fff4b8;

    box-shadow:
        0 0 5px 2px rgba(255, 255, 220, 1),
        0 0 12px 5px rgba(255, 215, 110, 0.9),
        0 0 28px 9px rgba(255, 175, 65, 0.55);
}

/* Lucioles supplémentaires dans la forêt à gauche */

.particle-13 {
    left: 7%;
    bottom: 12%;
    animation-delay: -3s;
    animation-duration: 11s;
}

.particle-14 {
    left: 15%;
    bottom: 25%;
    animation-delay: -7s;
    animation-duration: 13s;
}

.particle-15 {
    left: 23%;
    bottom: 8%;
    animation-delay: -1s;
    animation-duration: 9s;
}

.particle-16 {
    left: 32%;
    bottom: 18%;
    animation-delay: -5s;
    animation-duration: 12s;
}

.particle-17 {
    left: 40%;
    bottom: 10%;
    animation-delay: -9s;
    animation-duration: 14s;
}

.particle-18 {
    left: 48%;
    bottom: 22%;
    animation-delay: -4s;
    animation-duration: 10s;
}

/* Effet magique sur les boutons */

.button {
    transition:
        box-shadow 0.35s ease,
        filter 0.35s ease,
        transform 0.35s ease;
}

/* Halo violet et doré au passage de la souris */

@media (hover: hover) {
    .button:hover {
        transform: translateY(-3px);
        box-shadow:
            0 0 12px rgba(203, 157, 231, 0.55),
            0 0 24px rgba(214, 174, 96, 0.35),
            0 7px 18px rgba(55, 28, 68, 0.2);
        filter: brightness(1.08);
    }
}

/* Accessibilité au clavier */

.button:focus-visible {
    outline: 2px solid #c5a46d;
    outline-offset: 4px;
}

/* Réduction des animations si souhaitée */

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

    .button:hover {
        transform: none;
    }
}

/* Halo magique renforcé sur les boutons */

@media (hover: hover) {
    .button:hover {
        transform: translateY(-4px) scale(1.03);

        box-shadow:
            0 0 10px 3px rgba(226, 192, 255, 0.95),
            0 0 25px 8px rgba(174, 96, 220, 0.65),
            0 0 45px 12px rgba(230, 180, 85, 0.35),
            0 10px 25px rgba(55, 28, 68, 0.3);

        filter: brightness(1.15);
    }
}

/* Apparition douce des cartes de prestations */

@media (prefers-reduced-motion: no-preference) {

    .service-card.scroll-hidden {
        opacity: 0;
        translate: 0 35px;
    }

    .service-card.scroll-shown {
        opacity: 1;
        translate: 0 0;
    }

    .service-card.scroll-hidden,
    .service-card.scroll-shown {
        transition:
            opacity 0.8s ease,
            translate 0.8s ease;
    }
}

/* =========================================
   CARTES DE PRESTATIONS - EFFET MAGIQUE
   ========================================= */

.service-card {
    position: relative;
    transition:
        transform 0.4s ease,
        box-shadow 0.4s ease;
}

/* La photo reste dans son cadre */

.service-card .card-art {
    overflow: hidden;
}

.service-card .card-art .art {
    transition: transform 0.6s ease;
    transform-origin: center center;
}

/* Effet au passage de la souris */

@media (hover: hover) {
    .service-card:hover {
        transform: translateY(-8px);

        box-shadow:
            0 0 12px 3px rgba(214, 166, 246, 0.65),
            0 0 30px 8px rgba(163, 94, 206, 0.35),
            0 0 45px 12px rgba(225, 183, 99, 0.22),
            0 16px 30px rgba(54, 29, 65, 0.2);

        z-index: 3;
    }

    .service-card:hover .card-art .art {
        transform: scale(1.06);
    }
}

/* Accessibilité */

@media (prefers-reduced-motion: reduce) {

    .service-card,
    .service-card .card-art .art {
        transition: none;
    }

    .service-card:hover {
        transform: none;
    }

    .service-card:hover .card-art .art {
        transform: none;
    }
}

/* Affichage des prestations sur smartphone */

@media (max-width: 600px) {
    .services .cards {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
}

/* Bannière mobile : cadrage femme et dragon */

@media (max-width: 600px) {
    .hero {
        background-color: #19091f;

        background-image:
            linear-gradient(to bottom,
                rgba(25, 9, 31, 0.05) 0%,
                rgba(25, 9, 31, 0.15) 45%,
                #19091f 100%),
            url("hero.png");

        background-size:
            100% 100%,
            auto 290px;

        background-position:
            center,
            95% top;

        background-repeat: no-repeat;
    }
}

/* Texte féerique à droite du dragon */

.hero {
    position: relative;
}

.hero-quote {
    position: absolute;
    top: 20%;
    right: 3%;
    z-index: 5;

    max-width: 230px;
    text-align: center;

    color: #ffe0a0;
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: 1.7rem;
    font-style: italic;
    line-height: 1.35;

    text-shadow: 0 2px 8px rgba(30, 10, 35, 0.9);

    transform: rotate(-8deg);
    pointer-events: none;
}

.hero-quote p {
    margin: 0;
}

.hero-quote span {
    display: block;
    margin-top: 10px;
    color: #f5b8d6;
    font-size: 1.5rem;
}

/* On masque la citation sur les petits écrans */

@media (max-width: 1100px) {
    .hero-quote {
        display: none;
    }
}

/* Calligraphie féerique Great Vibes */

.hero-quote {
    font-family: "Great Vibes", cursive;
    font-size: 2.7rem;
    font-style: normal;
    line-height: 1.3;
}

/* =========================================
   PRESTATIONS - DECORATIONS FLORALES
   Regles regroupees : ne pas ajouter de doublons.
   ========================================= */

.services {
    position: relative;
    isolation: isolate;
    overflow: visible;
    padding-bottom: 190px;
}

/* Le contenu reste devant les bouquets */
.services .section-heading,
.services .cards,
.services .animal-link {
    position: relative;
    z-index: 2;
}

/* Filets et etoiles autour du titre */
.section-heading-fancy {
    text-align: center;
    margin-bottom: 32px;
}

.title-ornament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #c59350;
}

.title-ornament.top {
    margin-bottom: 12px;
}

.title-ornament.bottom {
    margin-top: 12px;
}

.title-ornament .line {
    width: 95px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #c59350, transparent);
}

.title-ornament .diamond {
    font-size: 18px;
}

/* Les 4 PNG transparents d'origine */
.services-deco {
    position: absolute;
    display: block;
    width: 450px;
    height: 450px;
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 1;
    opacity: 1;
}

/* Les bouquets du haut rejoignent les coins des tuiles.
   Cette position n'est pas limitee a 1100px. */
.services-deco-top-left {
    top: 190px;
    left: calc(50% - 50vw);
    background-image: url("deco-top-left.png");
}

.services-deco-top-right {
    top: 190px;
    right: calc(50% - 50vw);
    background-image: url("deco-top-right.png");
}

/* Les bouquets du bas restent derriere les coins des tuiles */
.services-deco-bottom-left {
    bottom: -10px;
    left: calc(50% - 50vw);
    background-image: url("deco-bottom-left.png");
}

.services-deco-bottom-right {
    bottom: -10px;
    right: calc(50% - 50vw);
    background-image: url("deco-bottom-right.png");
}

@media (min-width: 901px) and (max-width: 1099px) {
    .services-deco {
        width: 300px;
        height: 300px;
    }
}

/* Adaptation telephone et tablette : pas de bouquets sur les cartes */
@media (max-width: 900px) {
    .services {
        padding-bottom: 50px;
    }

    .services-deco {
        display: none;
    }

    .title-ornament .line {
        width: 45px;
    }
}

/* Prestations : cartes plus larges à 100 % */

@media (min-width: 1100px) {

    .services .cards {
        width: min(1700px, calc(100vw - 100px));
        max-width: none;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 24px;
    }

}

/* Prestations : proportions du rendu à 150 % */

@media (min-width: 1100px) {

    .services .service-card h3 {
        font-size: 1.65rem;
        line-height: 1.2;
        margin-bottom: 22px;
    }

    .services .service-card p {
        font-size: 1.25rem;
        line-height: 1.5;
    }

    .services .service-card .button {
        font-size: 1.2rem;
        padding: 12px 30px;
    }

    .services .service-card {
        padding-bottom: 22px;
    }
}

/* =========================================
   HERO - RENDU IMMERSIF À 100 %
   ========================================= */

@media (min-width: 1100px) {

    .hero .hero-inner {
        width: calc(100% - 110px);
        max-width: none;
        min-height: 805px;
        margin-inline: auto;
        padding-block: 45px;
    }

    .hero .hero-copy {
        width: 58%;
        max-width: 950px;
    }

    .hero h1 {
        font-size: clamp(3rem, 4vw, 4.4rem);
        letter-spacing: -1px;
    }


    .hero .signature {
        font-size: clamp(2.6rem, 3.6vw, 4rem);
        margin-bottom: 22px;

        /* Centrer sous Entre Âmes & Dragons */
        transform: translateX(-100px);
    }

    .hero .hero-topics {
        font-size: .85rem;
        letter-spacing: 1.5px;
        margin-bottom: 24px;
    }
}

/* Empêcher les décorations de déborder de l'écran */
html,
body {
    overflow-x: clip;
}

/* Bouquets alignés sur les coins des tuiles */

@media (min-width: 1100px) {

    .services .cards {
        position: relative;
        isolation: isolate;
    }

    .services .cards .services-deco {
        position: absolute;
        display: block;
        width: 450px;
        height: 450px;
        background-size: contain;
        background-repeat: no-repeat;
        z-index: -1;
        pointer-events: none;
    }

    .services .cards .services-deco-top-left {
        top: -115px !important;
        bottom: auto;
        left: -130px;
        right: auto;
    }

    .services .cards .services-deco-top-right {
        top: -115px !important;
        bottom: auto;
        right: -130px;
        left: auto;
    }

    .services .cards .services-deco-bottom-left {
        top: auto;
        bottom: -50px !important;
        left: -130px;
        right: auto;
    }

    .services .cards .services-deco-bottom-right {
        top: auto;
        bottom: -50px !important;
        right: -130px;
        left: auto;
    }
}

/* Les décorations ne gênent pas l'affichage tablette */
@media (max-width: 1099px) {
    .services .cards .services-deco {
        display: none;
    }
}

/* Placement définitif des bouquets du haut */

@media (min-width: 1100px) {

    .services>.services-deco-top-left,
    .services>.services-deco-top-right {
        transform: translateY(175px) !important;
    }
}

/* =========================================
   BOUQUETS FLORAUX - ORNEMENTS DISCRETS
   ========================================= */

@media (min-width: 1100px) {

    /* Taille des 4 bouquets */
    .services>.services-deco {
        width: 420px;
        height: 420px;
        background-size: contain;
        background-repeat: no-repeat;
    }

    /* Coins du haut */
    .services>.services-deco-top-left,
    .services>.services-deco-top-right {
        top: 105px !important;
        bottom: auto !important;
    }

    /* Coins du bas */
    .services>.services-deco-bottom-left,
    .services>.services-deco-bottom-right {
        top: auto !important;
        bottom: -10px !important;
    }
}

.services>.services-deco-top-left,
.services>.services-deco-bottom-left {
    left: -20px;
}

.services>.services-deco-top-right,
.services>.services-deco-bottom-right {
    right: -20px;
}


/* =========================================
   PRESTATIONS : 6 TUILES - 3 PAR LIGNE
   ========================================= */

@media (min-width: 1100px) {

    .services .cards {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px 24px;
    }

    /* Placement normal des 6 capsules */
    .services .cards>.service-card {
        grid-column: auto;
        grid-row: auto;
        min-width: 0;
    }

    /* Annule l'ancien positionnement de la 5e tuile */
    .services .cards>.service-card:nth-child(5) {
        grid-column: auto;
    }
}

/* Images des nouvelles tuiles */

.services .card-art img.art {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.card-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* =====================================
   FOND EN TRANSPARENCE - M5C
   ===================================== */

body.page-m5c {
    background-image:
        linear-gradient(rgba(250, 246, 239, 0.60),
            rgba(250, 246, 239, 0.60)),
        url("fond-m5c.png") !important;

    background-position: center, center;
    background-size: cover, cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* =========================================
   TUILES CAPSULES - PAGE D'ACCUEIL
   ========================================= */

.service-card {
    border-radius: 220px !important;
    overflow: hidden !important;
    transition: transform 0.3s ease,
        box-shadow 0.3s ease;
}

.service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(74, 31, 74, 0.15);
}

/* =========================================
   CAPSULES ACCUEIL - IMAGES AGRANDIES
   ========================================= */

/* Agrandir la photo */

/* Photos plus hautes dans les capsules */
.service-card .card-art {
    height: 255px !important;
    aspect-ratio: auto !important;
    overflow: hidden;
}

.service-card .card-art img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
}

.service-card .card-art img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}

/* Supprimer les ronds avec les symboles */
.service-card>.badge {
    display: none !important;
}




/* HERO PC - Image entière sans déformation */

@media (min-width: 1100px) {

    .hero .hero-inner {
        min-height: max(805px, calc(100vh - 92px));
    }

    .hero {
        background-color: #211023;

        background-image:
            linear-gradient(90deg,
                rgba(23, 9, 26, 0.67),
                rgba(23, 9, 26, 0.23) 48%,
                transparent 76%),
            url("hero.png");

        background-size:
            100% 100%,
            contain;

        background-position: center, center;
        background-repeat: no-repeat;
    }
}

/* =========================================
   CITATION DU DRAGON - EFFET 3D DORÉ
   ========================================= */

@media (min-width: 1100px) {

    /* Descendre la citation */
    .hero .hero-quote {
        transform: translateY(100px);
    }

    /* Texte doré en relief */
    .hero .hero-quote p {
        color: #ffe2a1;

        text-shadow:
            1px 1px 0 #b87338,
            2px 2px 0 #90502d,
            3px 3px 0 #65341f,
            4px 5px 4px rgba(20, 5, 25, 0.75),
            0 0 12px rgba(255, 193, 92, 0.30);
    }
}

/* Citation du dragon : écriture oblique */

@media (min-width: 1100px) {
    .hero .hero-quote p {
        font-style: italic;
        transform: rotate(-6deg);
        transform-origin: center;
    }
}

/* CITATION DRAGON - OR 3D NET SANS FLOU */

.hero .hero-quote p {
    color: #ffe2a1 !important;
    -webkit-text-fill-color: #ffe2a1;
    -webkit-text-stroke: 0;

    text-shadow:
        1px 1px 0 #c8b8bd,
        2px 2px 0 #9b899e,
        3px 3px 0 #6e5b77;
}


/* ORNEMENTS - AJUSTEMENT DES 6 CAPSULES */

@media (min-width: 1100px) {

    .services-deco-top-left {
        transform: translate(-40px, 0);
    }

    .services-deco-top-right {
        transform: translate(40px, 0);
    }

    .services-deco-bottom-left {
        transform: translate(-50px, 15px);
    }

    .services-deco-bottom-right {
        transform: translate(50px, 15px);
    }
}

/* ORNEMENTS AUTOUR DES 6 CAPSULES */

@media (min-width: 1100px) {

    .services .cards {
        position: relative;
    }

    .services .cards>.services-deco {
        position: absolute;
        width: 600px;
        height: 600px;
        transform: none !important;
        pointer-events: none;
        z-index: 0;
    }

    .services .cards>.service-card {
        position: relative;
        z-index: 1;
    }


    .services .cards>.services-deco-top-left {
        top: -85px;
        left: -85px;
    }

    .services .cards>.services-deco-top-right {
        top: -85px;
        right: -85px;
    }



    /* Bouquet inférieur gauche */
    .services .cards>.services-deco-bottom-left {
        bottom: -300px !important;
        left: -80px;
        transform: translateY(80px) !important;
    }

    /* Bouquet inférieur droit */
    .services .cards>.services-deco-bottom-right {
        bottom: -300px !important;
        right: -80px;
        transform: translateY(80px) !important;
    }

    /* Centrage de la devise sur PC */

    @media (min-width: 1100px) {
        .hero .motto {
            transform: translateX(-100px);
        }
    }
}

/* =========================================
   HERO PC - ALIGNEMENT DES 3 CATEGORIES
   ========================================= */

@media (min-width: 1100px) {

    .hero .hero-topics {
        display: flex;
        align-items: center;
        justify-content: space-between;

        width: 740px;
        max-width: 100%;
        gap: 18px;
    }

}

/* =========================================
   FOND SPÉCIFIQUE - PAGE PIERRES CHAUDES
   ========================================= */

.page-pierres-chaudes {
    background-color: #f6eee7;

    background-image:
        linear-gradient(rgba(246, 238, 231, 0.60), rgba(246, 238, 231, 0.60)),
        url("fond-pierres-chaudes.png");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    background-attachment: fixed;
}

/* =========================================
   FOND SPÉCIFIQUE - MASSAGE MÉTAMORPHIQUE
   ========================================= */

body.page-metamorphique {
    background-color: #f6eee7;

    background-image:
        linear-gradient(rgba(246, 238, 231, 0.60),
            rgba(246, 238, 231, 0.60)),
        url("fond-metamorphique.png");

    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    background-attachment: fixed;
}

/* =========================================
   FOND PERSONNALISÉ - SOIN DES 7 CHAKRAS
   ========================================= */

body.page-7-chakras {
    background-color: #f8f1e9;

    background-image:
        linear-gradient(rgba(248, 241, 233, 0.60),
            rgba(248, 241, 233, 0.60)),
        url("fond-7-chakras.png");

    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
}

/* FOND IMMERSIF - SOINS ÉNERGÉTIQUES */

body.page-soins-energetiques {
    background-color: #f8f1e9;

    background-image:
        linear-gradient(rgba(248, 241, 233, 0.50),
            rgba(248, 241, 233, 0.50)),
        url("fond-soins-energetiques.png");

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* =========================================
   FOND IMMERSIF - À PROPOS D'AURÉLIE
   ========================================= */

body.page-a-propos {
    background-color: #f8f1e9;

    background-image:
        linear-gradient(rgba(248, 241, 233, 0.60),
            rgba(248, 241, 233, 0.60)),
        url("fond-a-propos.png");

    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* =========================================
   À PROPOS - TEXTE À GAUCHE DU DRAGON
   ========================================= */

@media (min-width: 1100px) {

    .about-page.wrap {
        width: 700px;
        max-width: 700px;

        margin-left: max(24px, calc((100vw - 1120px) / 2));
        margin-right: 0;

        padding-top: 30px;
        padding-bottom: 65px;

        text-align: center;
    }

    .about-page-body {
        max-width: 680px;
        margin: 0 auto;
        text-align: left;
    }
}

.about-page {
    padding: 30px 0 65px;
    text-align: center;
    max-width: 820px;
}

.about-page-body {
    text-align: left;
    max-width: 680px;
    margin: auto;
    background: rgba(246, 238, 231, 0.35);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 28px 32px;
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(60, 35, 55, 0.10);
}


/* =========================================
   PAGE CONTACT & RENDEZ-VOUS
   ENTRE ÂMES & DRAGONS
   ========================================= */

/* FOND IMMERSIF */

body.page-contact {
    background-color: #f7efe8;

    background-image:
        linear-gradient(rgba(247, 239, 232, 0.45),
            rgba(247, 239, 232, 0.45)),
        url("fond-contact.png");

    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
}


/* CONTENU DE LA PAGE */

body.page-contact .contact-page {
    padding-top: 45px;
    padding-bottom: 85px;
}


/* TITRE ET INTRODUCTION */

body.page-contact .contact-heading {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 45px;
}

body.page-contact .contact-heading h1 {
    color: #381d3e;
    margin-bottom: 20px;
}

body.page-contact .contact-heading .signature {
    color: #a66c34;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.7);
}


/* LES DEUX COLONNES */

body.page-contact .contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: start;
}


/* ENCADRÉS TRANSPARENTS */

body.page-contact .contact-panel {
    background: rgba(250, 245, 238, 0.85);

    border: 1px solid rgba(167, 123, 151, 0.45);
    border-radius: 28px;

    padding: 34px;

    box-shadow:
        0 12px 30px rgba(66, 30, 65, 0.12),
        0 2px 8px rgba(66, 30, 65, 0.05);

    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

body.page-contact .contact-panel h2 {
    color: #412044;
    margin-top: 0;
    margin-bottom: 25px;
}


/* TÉLÉPHONE, EMAIL, RENDEZ-VOUS */

body.page-contact .contact-method {
    padding: 17px 0;
    border-bottom: 1px solid rgba(125, 80, 115, 0.20);
}

body.page-contact .contact-method:last-child {
    border-bottom: none;
}

body.page-contact .contact-method h3 {
    color: #663b67;
    margin-bottom: 10px;
}

body.page-contact .contact-method p {
    line-height: 1.7;
}


/* FORMULAIRE */

body.page-contact .contact-form {
    display: grid;
    gap: 18px;
}

body.page-contact .contact-form label {
    display: block;
    color: #482b4a;
    font-weight: 600;
    margin-bottom: 7px;
}

body.page-contact .contact-form input,
body.page-contact .contact-form select,
body.page-contact .contact-form textarea {
    width: 100%;
    box-sizing: border-box;

    padding: 13px 15px;

    border: 1px solid #c8b3c6;
    border-radius: 12px;

    background: rgba(255, 250, 246, 0.90);
    color: #442d47;

    font: inherit;
}

body.page-contact .contact-form textarea {
    min-height: 140px;
    resize: vertical;
}


/* FORMULAIRE EN ATTENTE D'ACTIVATION */

body.page-contact .contact-form button:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

body.page-contact .contact-notice {
    color: #654d65;
    font-size: 0.92rem;
    line-height: 1.6;
}


/* PIED DE PAGE */

body.page-contact .site-footer {
    position: relative;
    padding-top: 28px;
    padding-bottom: 28px;
    border-top: 1px solid rgba(160, 112, 140, 0.25);
}


/* =========================================
   ADAPTATION TABLETTE ET MOBILE
   ========================================= */

@media (max-width: 800px) {

    body.page-contact {
        background-position: 65% center;
        background-attachment: scroll;
    }

    body.page-contact .contact-page {
        padding-top: 25px;
        padding-bottom: 55px;
    }

    body.page-contact .contact-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    body.page-contact .contact-panel {
        padding: 24px;
        border-radius: 22px;
    }

    body.page-contact .contact-heading {
        margin-bottom: 30px;
    }
}

/* =========================================
   PRÉPARER VOTRE RENCONTRE
   SANS BANDEAU BEIGE
   ========================================= */

.information.information-sans-fond {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
}

.information.information-sans-fond .info-inner {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

.information.information-sans-fond::before,
.information.information-sans-fond::after {
    background: transparent !important;
    background-image: none !important;
}

/* =========================================
   ENCADRÉ TRANSPARENT - MASSAGE 5 CONTINENTS
   ========================================= */

body.page-m5c .detail-copy {
    background: rgba(246, 238, 231, 0.45);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    border: 1px solid rgba(180, 150, 130, 0.18);
    border-radius: 26px;

    padding: 32px 36px;

    box-shadow: 0 18px 40px rgba(90, 60, 70, 0.10);
}

/* Adaptation sur téléphone */

@media (max-width: 768px) {
    body.page-m5c .detail-copy {
        padding: 24px 20px;
        border-radius: 20px;
    }
}

/* M5C : élargir légèrement le texte */

@media (min-width: 900px) {
    body.page-m5c .detail-copy {
        width: 120%;
        max-width: 680px;
        box-sizing: border-box;
    }
}

/* =========================================
   MASSAGE AUX PIERRES CHAUDES
   ENCADRÉ TRANSPARENT COMME M5C
   ========================================= */

body.page-pierres-chaudes .detail-copy {
    background: rgba(246, 238, 231, 0.45);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    border: 1px solid rgba(180, 150, 130, 0.18);
    border-radius: 26px;

    padding: 32px 36px;

    box-shadow: 0 18px 40px rgba(90, 60, 70, 0.10);
}

/* Encadré élargi sur ordinateur */

@media (min-width: 900px) {
    body.page-pierres-chaudes .detail-copy {
        width: 120%;
        max-width: 680px;
        box-sizing: border-box;
    }
}

/* Adaptation sur téléphone */

@media (max-width: 768px) {
    body.page-pierres-chaudes .detail-copy {
        width: 100%;
        padding: 24px 20px;
        border-radius: 20px;
        box-sizing: border-box;
    }
}

/* =========================================
   MASSAGE MÉTAMORPHIQUE
   ENCADRÉ TRANSPARENT COMME M5C
   ========================================= */

body.page-metamorphique .detail-copy {
    background: rgba(246, 238, 231, 0.45);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    border: 1px solid rgba(180, 150, 130, 0.18);
    border-radius: 26px;

    padding: 32px 36px;

    box-shadow: 0 18px 40px rgba(90, 60, 70, 0.10);
}

/* Encadré élargi sur ordinateur */

@media (min-width: 900px) {
    body.page-metamorphique .detail-copy {
        width: 120%;
        max-width: 680px;
        box-sizing: border-box;
    }
}

/* Adaptation sur téléphone */

@media (max-width: 768px) {
    body.page-metamorphique .detail-copy {
        width: 100%;
        padding: 24px 20px;
        border-radius: 20px;
        box-sizing: border-box;
    }
}

/* =========================================
   SOIN DES 7 CHAKRAS
   ENCADRÉ TRANSPARENT COMME M5C
   ========================================= */

body.page-7-chakras .detail-copy {
    background: rgba(246, 238, 231, 0.45);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    border: 1px solid rgba(180, 150, 130, 0.18);
    border-radius: 26px;

    padding: 32px 36px;

    box-shadow: 0 18px 40px rgba(90, 60, 70, 0.10);
}

/* Encadré élargi sur ordinateur */

@media (min-width: 900px) {
    body.page-7-chakras .detail-copy {
        width: 120%;
        max-width: 680px;
        box-sizing: border-box;
    }
}

/* Adaptation sur téléphone */

@media (max-width: 768px) {
    body.page-7-chakras .detail-copy {
        width: 100%;
        padding: 24px 20px;
        border-radius: 20px;
        box-sizing: border-box;
    }
}

/* =========================================
   SOINS ÉNERGÉTIQUES
   ENCADRÉ TRANSPARENT COMME M5C
   ========================================= */

body.page-soins-energetiques .detail-copy {
    background: rgba(246, 238, 231, 0.45);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    border: 1px solid rgba(180, 150, 130, 0.18);
    border-radius: 26px;

    padding: 32px 36px;

    box-shadow: 0 18px 40px rgba(90, 60, 70, 0.10);
}

/* Encadré élargi sur ordinateur */

@media (min-width: 900px) {
    body.page-soins-energetiques .detail-copy {
        width: 120%;
        max-width: 680px;
        box-sizing: border-box;
    }
}

/* Adaptation sur téléphone */

@media (max-width: 768px) {
    body.page-soins-energetiques .detail-copy {
        width: 100%;
        padding: 24px 20px;
        border-radius: 20px;
        box-sizing: border-box;
    }
}

/* =========================================
   SOINS ÉNERGÉTIQUES
   MAGNÉTISME ET LAHOCHI EN 2 COLONNES
   ========================================= */

body.page-soins-energetiques .soins-seances-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

/* Petits encadrés individuels */

body.page-soins-energetiques .soin-seance {
    background: rgba(255, 248, 244, 0.50);
    border: 1px solid rgba(160, 115, 145, 0.25);
    border-radius: 18px;
    padding: 20px;
}

body.page-soins-energetiques .soin-seance h3 {
    margin-top: 0;
    margin-bottom: 18px;
    color: #502b55;
}

body.page-soins-energetiques .soin-seance p {
    margin-bottom: 12px;
}

/* Sur téléphone : une colonne */

@media (max-width: 600px) {

    body.page-soins-energetiques .soins-seances-grid {
        grid-template-columns: 1fr;
    }

}

/* =========================================
   SOINS ÉNERGÉTIQUES
   DEUX COLONNES POUR LES TARIFS
   ========================================= */

body.page-soins-energetiques .soins-seances-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px;
    margin-top: 20px;
}

body.page-soins-energetiques .soin-seance {
    min-width: 0;
    padding: 20px;
    border-radius: 18px;
    background: transparent;
    border: 1px solid rgba(160, 115, 145, 0.25);
}

body.page-soins-energetiques .soin-seance h3 {
    margin-top: 0;
    margin-bottom: 15px;
    color: #502b55;
}

/* Sur téléphone : les blocs passent l'un sous l'autre */

@media (max-width: 600px) {
    body.page-soins-energetiques .soins-seances-grid {
        grid-template-columns: 1fr !important;
    }
}

/* PAGE CONTACT : ALIGNEMENT DE LA SIGNATURE */

body.page-contact .contact-heading .signature {
    text-align: center;
    white-space: nowrap;
    font-size: clamp(1.25rem, 3.5vw, 2.8rem);
    letter-spacing: normal;
}

/* =========================================
   LIENS JURIDIQUES DANS LE PIED DE PAGE
   ========================================= */

.site-footer .footer-center {
    text-align: center;
}

.site-footer .footer-center p {
    margin: 4px 0;
}

.site-footer .footer-legal {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.site-footer .footer-legal a {
    font-size: 0.85rem;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.site-footer .footer-legal a:hover {
    color: #875a73;
}

@media (max-width: 600px) {
    .site-footer .footer-legal {
        gap: 8px;
    }
}

/* =========================================
   POP-UP OFFRE SPÉCIALE OUVERTURE
   ========================================= */

.promo-ouverture {
    position: fixed;
    inset: 0;
    z-index: 9999;

    display: grid;
    place-items: center;

    padding: 20px;
    box-sizing: border-box;

    background: rgba(34, 16, 45, 0.78);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.promo-ouverture[hidden] {
    display: none !important;
}

.promo-fenetre {
    position: relative;
    width: 100%;
    max-width: 560px;
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    box-sizing: border-box;

    padding: 45px 35px;

    text-align: center;

    background:
        radial-gradient(circle at top,
            rgba(255, 255, 255, 0.75),
            transparent 65%),
        #f6e9df;

    border: 2px solid #c5a06a;
    border-radius: 30px;

    box-shadow:
        0 25px 75px rgba(19, 7, 29, 0.45),
        inset 0 0 25px rgba(202, 156, 100, 0.12);
}

.promo-fermer {
    position: absolute;
    top: 14px;
    right: 18px;

    border: none;
    background: transparent;
    color: #59355d;

    font-size: 27px;
    cursor: pointer;
}

.promo-fermer:focus-visible,
.promo-bouton:focus-visible {
    outline: 3px solid #a16b37;
    outline-offset: 4px;
}

.promo-sur-titre {
    color: #976638;
    font-weight: 700;
    letter-spacing: 2px;
    font-size: 0.85rem;
}

.promo-fenetre h2 {
    color: #4d2855;
    font-size: clamp(2rem, 5vw, 3rem);
    margin: 18px 0 10px;
}

.promo-reduction {
    color: #a66e35;
    font-size: clamp(4rem, 12vw, 6rem);
    line-height: 1.2;
    font-weight: bold;
    text-shadow: 1px 3px 4px rgba(110, 65, 35, 0.15);
}

.promo-fenetre h3 {
    color: #59335e;
    font-size: 1.4rem;
    margin: 5px 0 20px;
}

.promo-fenetre p {
    line-height: 1.7;
}

.promo-fenetre #promo-description {
    color: #624b62;
}

.promo-duree {
    color: #966638;
    font-weight: 600;
    margin: 24px 0;
}

.promo-bouton {
    display: inline-block;
    padding: 14px 25px;

    background: #643a69;
    color: #fff7ed;

    border-radius: 30px;
    text-decoration: none;
    font-weight: 600;

    transition: background 0.2s ease;
}

.promo-bouton:hover {
    background: #815087;
    color: #ffffff;
}

@media (max-width: 600px) {

    .promo-fenetre {
        padding: 45px 22px 30px;
        border-radius: 22px;
    }

    .promo-sur-titre {
        letter-spacing: 1px;
    }
}