/* =========================================================
   PETIT PAPA NOËL V2
   FEUILLE DE STYLE PRINCIPALE
   ========================================================= */


/* =========================================================
   VARIABLES / BASE
   ========================================================= */

:root {
    --navy: #071d3c;
    --dark: #03142d;
    --red: #c91d19;
    --gold: #d7a43b;
    --cream: #fff9ed;
    --ink: #14233b;
    --shell: 1480px;
    --shadow: 0 14px 35px #1c170c24;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    color: var(--ink);
    background: #fffdf8;

    font-family: Arial, sans-serif;
}

h1,
h2,
h3,
.brand {
    font-family: Georgia, "Times New Roman", serif;
}

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

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


/* =========================================================
   CONTENEUR GÉNÉRAL
   ========================================================= */

.shell {
    width: min(
        calc(100% - 48px),
        var(--shell)
    );

    margin: auto;
}


/* =========================================================
   ACCESSIBILITÉ
   ========================================================= */

.skip-link {
    position: fixed;

    z-index: 999;

    top: 10px;
    left: 10px;

    padding: 10px 14px;

    color: #071d3c;
    background: #ffffff;

    border-radius: 6px;

    transform: translateY(-150%);
}

.skip-link:focus {
    transform: none;
}


/* =========================================================
   BOUTONS GÉNÉRIQUES
   ========================================================= */

.button {
    min-height: 52px;

    padding: 0 24px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    border-radius: 12px;

    font-weight: 700;
}

.button-call {
    color: #ffffff;

    background:
        linear-gradient(
            #df281f,
            #b70f0b
        );

    border: 1px solid #f04a41;

    box-shadow:
        0 7px 18px #7e000052;
}


/* =========================================================
   HEADER V2
   ========================================================= */

.site-header {
    position: relative;

    z-index: 50;

    width: 100%;

    color: #ffffff;

    background:
        linear-gradient(
            180deg,
            #ad0813 0%,
            #990611 100%
        );

    border-bottom:
        1px solid
        rgba(255,255,255,.15);

    box-shadow:
        0 3px 12px
        rgba(79,0,4,.12);
}


/* Contenu */

.site-header .header-inner {
    width: min(
        calc(100% - 48px),
        1680px
    );

    min-height: 76px;

    margin: 0 auto;

    display: flex;

    align-items: center;

    gap:
        clamp(
            20px,
            2.5vw,
            48px
        );
}


/* Logo */

.site-header .brand {
    color: #fff4dc;

    font-size:
        clamp(
            28px,
            2vw,
            38px
        );

    font-weight: 700;

    white-space: nowrap;
}

.custom-logo {
    display: block;

    width: auto;

    max-width: 250px;
    max-height: 72px;
}


/* Navigation */

.site-header .main-nav {
    flex: 1;
}

.site-header .main-nav ul {
    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    gap:
        clamp(
            16px,
            1.5vw,
            30px
        );

    list-style: none;
}

.site-header .main-nav a {
    display: block;

    padding:
        27px
        0;

    color: #ffffff;

    font-size: 14px;
    font-weight: 500;

    white-space: nowrap;

    transition:
        color .2s ease,
        opacity .2s ease;
}

.site-header .main-nav a:hover,
.site-header .main-nav .current-menu-item > a {
    color: #ffd77a;
}


/* Bouton menu mobile */

.menu-button {
    display: none;
}


/* Bouton appeler */

.site-header .header-call {
    min-height: 46px;

    padding:
        0
        22px;

    color:
        #76100d !important;

    background:
        linear-gradient(
            180deg,
            #ffe49a 0%,
            #eac362 100%
        );

    border:
        1px solid
        #f5d477;

    border-radius: 24px;

    box-shadow:
        0 4px 12px
        rgba(60,0,0,.18);

    font-size: 13px;
    font-weight: 700;

    white-space: nowrap;
}

.site-header .header-call:hover {
    color:
        #76100d !important;

    transform:
        translateY(-1px);
}


/* =========================================================
   PAGES INTERNES / INDEX
   ========================================================= */

.page-main {
    min-height: 70vh;

    padding:
        155px
        0
        80px;

    background:
        linear-gradient(
            var(--navy) 0 92px,
            #fffdf8 92px
        );
}

.content-shell {
    max-width: 980px;
}

.page-article,
.post-card {
    margin-bottom: 24px;

    padding:
        clamp(
            25px,
            5vw,
            60px
        );

    background: #ffffff;

    border:
        1px solid
        #eee1c8;

    border-radius: 18px;

    box-shadow:
        var(--shadow);
}

.page-article h1 {
    margin-top: 8px;

    font-size:
        clamp(
            38px,
            5vw,
            64px
        );
}

.page-featured {
    margin:
        calc(
            -1 *
            clamp(
                25px,
                5vw,
                60px
            )
        )
        calc(
            -1 *
            clamp(
                25px,
                5vw,
                60px
            )
        )
        35px;

    overflow: hidden;

    border-radius:
        18px
        18px
        0
        0;
}

.page-featured img {
    width: 100%;

    display: block;
}

.entry-content {
    font-size: 17px;

    line-height: 1.75;
}

.entry-content img {
    border-radius: 12px;
}

.entry-content a {
    color: #9f111a;

    text-decoration: underline;

    text-underline-offset: 3px;
}

.eyebrow {
    margin:
        0
        0
        8px;

    color: #a47420;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: .15em;

    text-transform: uppercase;
}

.post-card h2 {
    margin-top: 0;

    color: #123f2d;

    font-size:
        clamp(
            27px,
            3vw,
            38px
        );
}

.post-card h2 a:hover {
    color: #a3151c;
}


/* =========================================================
   HOME V2
   ========================================================= */

.ppn-home {
    width: 100%;
    max-width: none;

    margin: 0;
    padding: 0;
}


/* =========================================================
   HOME — HERO MAGIQUE
   ========================================================= */

.ppn-magic-hero {
    position: relative;

    width: 100%;
    min-height: clamp(650px, 78vh, 900px);

    overflow: hidden;

    display: flex;
    align-items: center;

    color: #ffffff;

    background:
        linear-gradient(
            180deg,
            rgba(2,18,38,.10) 0%,
            rgba(2,18,38,.18) 38%,
            rgba(2,18,38,.62) 100%
        ),
        url("https://petit-papa-noel.com/wp-content/uploads/2026/08/home_pere_noel.png")
        center 32%
        /
        cover
        no-repeat;
}


/* =========================================================
   VOILE POUR LISIBILITÉ
   ========================================================= */

.ppn-magic-hero-overlay {
    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(3,22,42,.66) 0%,
            rgba(3,22,42,.42) 37%,
            rgba(3,22,42,.10) 66%,
            rgba(3,22,42,.04) 100%
        );
}


/* =========================================================
   CONTENU
   ========================================================= */

.ppn-magic-hero-content {
    position: relative;

    z-index: 3;

    width: 100%;

    max-width: 950px;

    padding:
        clamp(85px,8vw,145px)
        60px
        clamp(100px,9vw,150px)
        clamp(55px,9vw,180px);
}


.ppn-magic-kicker {
    display: block;

    width: fit-content;

    margin-bottom: 18px;

    color: #f4d47b;

    font-size: 14px;
    font-weight: 700;

    letter-spacing: .15em;

    text-transform: uppercase;

    text-shadow:
        0 2px 8px
        rgba(0,0,0,.35);
}


.ppn-magic-hero h1 {
    max-width: 850px;

    margin:
        0
        0
        22px;

    color: #fffaf0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            60px,
            6vw,
            108px
        );

    font-weight: 700;

    line-height: .92;

    letter-spacing: -.045em;

    text-shadow:
        0 5px 25px
        rgba(0,0,0,.35);
}


.ppn-magic-intro {
    max-width: 650px;

    margin:
        0
        0
        38px;

    color: #fff8e8;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            20px,
            1.6vw,
            27px
        );

    line-height: 1.5;

    text-shadow:
        0 2px 12px
        rgba(0,0,0,.45);
}


/* =========================================================
   COMPTE À REBOURS
   ========================================================= */

.ppn-christmas-countdown {
    width: fit-content;

    max-width: 630px;

    padding:
        19px
        26px
        18px;

    background:
        rgba(4,31,45,.55);

    border:
        1px solid
        rgba(244,212,123,.52);

    border-radius: 20px;

    box-shadow:
        0 14px 35px
        rgba(0,0,0,.18);

    backdrop-filter:
        blur(5px);
}


.ppn-countdown-label {
    display: block;

    margin-bottom: 3px;

    color: #f4d47b;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: .13em;

    text-transform: uppercase;
}


.ppn-countdown-main {
    display: flex;

    flex-wrap: wrap;

    align-items: baseline;

    gap:
        3px
        8px;

    color: #ffffff;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            19px,
            1.7vw,
            27px
        );
}


.ppn-countdown-number {
    color: #f7d56e;

    font-size:
        clamp(
            42px,
            4vw,
            66px
        );

    line-height: 1;
}


.ppn-countdown-days-label {
    color: #f7d56e;

    font-weight: 700;
}


.ppn-countdown-message {
    margin:
        8px
        0
        0;

    color:
        rgba(255,255,255,.88);

    font-size: 13px;

    line-height: 1.5;
}


/* =========================================================
   NEIGE
   ========================================================= */

.ppn-magic-snow {
    position: absolute;

    inset: 0;

    z-index: 2;

    pointer-events: none;

    opacity: .55;

    background-image:
        radial-gradient(
            circle,
            rgba(255,255,255,.95) 0 1px,
            transparent 1.5px
        ),
        radial-gradient(
            circle,
            rgba(255,255,255,.78) 0 1.5px,
            transparent 2px
        ),
        radial-gradient(
            circle,
            rgba(255,255,255,.60) 0 1px,
            transparent 1.5px
        );

    background-size:
        90px 90px,
        145px 145px,
        210px 210px;

    background-position:
        0 0,
        35px 65px,
        80px 30px;

    animation:
        ppn-snowfall
        18s
        linear
        infinite;
}


@keyframes ppn-snowfall {

    from {
        background-position:
            0 0,
            35px 65px,
            80px 30px;
    }

    to {
        background-position:
            20px 500px,
            -20px 580px,
            110px 700px;
    }
}


/* =========================================================
   INDICATION BAS DE HERO
   ========================================================= */

.ppn-magic-scroll {
    position: absolute;

    z-index: 4;

    bottom: 26px;
    left: 50%;

    transform:
        translateX(-50%);

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 6px;

    color:
        rgba(255,255,255,.78);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;
}


.ppn-magic-scroll-arrow {
    color: #f4d47b;

    font-size: 20px;

    animation:
        ppn-scroll-arrow
        1.8s
        ease-in-out
        infinite;
}


@keyframes ppn-scroll-arrow {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(5px);
    }
}


/* =========================================================
   TRÈS GRAND ÉCRAN
   ========================================================= */

@media (min-width: 1900px) {

    .ppn-magic-hero {
        min-height:
            clamp(
                760px,
                78vh,
                980px
            );
    }

    .ppn-magic-hero-content {
        padding-left:
            clamp(
                170px,
                10vw,
                270px
            );

        max-width: 1150px;
    }

    .ppn-magic-hero h1 {
        font-size:
            clamp(
                90px,
                5.5vw,
                125px
            );
    }
}


/* =========================================================
   ULTRA LARGE
   ========================================================= */

@media (min-width: 2400px) {

    .ppn-magic-hero {
        min-height: 950px;
    }

    .ppn-magic-hero-content {
        padding-left:
            clamp(
                220px,
                11vw,
                340px
            );
    }

    .ppn-magic-hero h1 {
        font-size: 135px;
    }
}


/* =========================================================
   TABLETTE
   ========================================================= */

@media (max-width: 1000px) {

    .ppn-magic-hero {
        min-height: 700px;

        background-position:
            60% center;
    }

    .ppn-magic-hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(3,22,42,.70),
                rgba(3,22,42,.30)
            );
    }

    .ppn-magic-hero-content {
        max-width: 750px;

        padding:
            85px
            40px
            110px;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .ppn-magic-hero {
        min-height:
            calc(
                100svh - 66px
            );

        align-items: flex-end;

        background-position:
            62%
            center;
    }

    .ppn-magic-hero-overlay {
        background:
            linear-gradient(
                180deg,
                rgba(2,17,35,.08) 0%,
                rgba(2,17,35,.25) 35%,
                rgba(2,17,35,.85) 78%,
                rgba(2,17,35,.94) 100%
            );
    }

    .ppn-magic-hero-content {
        padding:
            170px
            20px
            105px;

        text-align: center;
    }

    .ppn-magic-kicker {
        margin-left: auto;
        margin-right: auto;

        font-size: 11px;
    }

    .ppn-magic-hero h1 {
        margin-left: auto;
        margin-right: auto;

        font-size:
            clamp(
                46px,
                14vw,
                67px
            );

        line-height: .95;
    }

    .ppn-magic-intro {
        margin-left: auto;
        margin-right: auto;

        font-size: 18px;
    }

    .ppn-christmas-countdown {
        width: 100%;

        max-width: 470px;

        margin:
            0
            auto;

        padding:
            16px
            15px;
    }

    .ppn-countdown-main {
        justify-content: center;

        font-size: 18px;
    }

    .ppn-countdown-label {
        text-align: center;
    }

    .ppn-countdown-message {
        text-align: center;

        font-size: 12px;
    }
}


/* =========================================================
   PETIT MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .ppn-magic-hero-content {
        padding-left: 16px;
        padding-right: 16px;
    }

    .ppn-magic-hero h1 {
        font-size:
            clamp(
                43px,
                13vw,
                57px
            );
    }

    .ppn-countdown-number {
        font-size: 42px;
    }
}


/* =========================================================
   ACCESSIBILITÉ
   ========================================================= */

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

    .ppn-magic-snow,
    .ppn-magic-scroll-arrow {
        animation: none;
    }
}

/* =========================================================
   ACCUEIL 2026 — VERSION CONSOLIDÉE
   ========================================================= */

body.home .ppn-section-inner {
    width: min(1640px, calc(100% - 48px));
    margin-inline: auto;
    padding-inline: 0;
}

/* Cartes activités : photographie réellement bord à bord */
body.home .ppn-main-activities-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

body.home .ppn-main-activity-card {
    display: grid;
    grid-template-columns: 38% 62%;
    min-height: 430px;
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e6c77f;
    border-radius: 26px;
    box-shadow: 0 18px 42px rgba(89, 53, 22, .10);
}

body.home .ppn-main-activity-visual {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 100%;
    padding: 0;
    overflow: hidden;
    display: block;
    background: transparent;
}

body.home .ppn-main-activity-visual img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border: 0;
    border-radius: 0;
}

body.home .ppn-main-activity-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 44px 38px;
    text-align: left;
}

body.home .ppn-main-activity-content h3 {
    margin: 12px 0;
    color: #073c2e;
    font-size: 40px;
}

body.home .ppn-main-activity-content p {
    margin-bottom: 26px;
    font-size: 16px;
    line-height: 1.55;
}

body.home .ppn-card-button {
    margin-top: auto;
}

/* Lettre : section indépendante */
body.home .ppn-home-letter {
    padding: 78px 0;
    background: #fffaf0;
}

body.home .ppn-letter-card {
    display: grid;
    grid-template-columns: 42% 58%;
    min-height: 520px;
    overflow: hidden;
    color: #fff;
    background: #0d4837;
    border: 1px solid #d7a43b;
    border-radius: 32px;
    box-shadow: 0 25px 60px rgba(56, 35, 15, .17);
}

body.home .ppn-letter-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(42px, 5vw, 78px);
}

body.home .ppn-letter-kicker,
body.home .ppn-toys-kicker {
    color: #f6ce70;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.home .ppn-letter-copy h2 {
    margin: 16px 0 20px;
    color: #fff;
    font-size: clamp(46px, 5vw, 76px);
    line-height: .98;
}

body.home .ppn-letter-copy p {
    max-width: 520px;
    margin: 0 0 32px;
    font-size: 19px;
    line-height: 1.6;
}

body.home .ppn-letter-button,
body.home .ppn-toys-more a {
    min-height: 56px;
    padding: 0 26px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #76100d;
    background: #f5cf72;
    border-radius: 999px;
    font-weight: 800;
}

body.home .ppn-letter-picture {
    position: relative;
    min-height: 520px;
    overflow: hidden;
}

body.home .ppn-letter-picture img {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Hotte : section indépendante avec cinq vrais jouets */
body.home .ppn-home-toys {
    padding: 82px 0 88px;
    background: linear-gradient(180deg, #0a2941 0%, #061c2e 100%);
}

body.home .ppn-toys-heading {
    display: grid;
    grid-template-columns: 58% 42%;
    min-height: 350px;
    margin-bottom: 34px;
    overflow: hidden;
    color: #fff;
    background: #861320;
    border: 1px solid rgba(245, 207, 114, .65);
    border-radius: 30px;
}

body.home .ppn-toys-heading-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(38px, 5vw, 70px);
}

body.home .ppn-toys-heading h2 {
    max-width: 850px;
    margin: 15px 0;
    color: #fff;
    font-size: clamp(43px, 4.5vw, 70px);
    line-height: 1;
}

body.home .ppn-toys-heading p {
    margin: 0;
    font-size: 18px;
    line-height: 1.55;
}

body.home .ppn-toys-heading > img {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 350px;
    object-fit: cover;
    object-position: center;
}

body.home .ppn-toys-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}

body.home .ppn-toy-card {
    position: relative;
    min-width: 0;
    padding: 18px;
    display: flex;
    flex-direction: column;
    color: #173d31;
    background: #fff;
    border: 1px solid #ead8ad;
    border-radius: 22px;
    box-shadow: 0 16px 35px rgba(0, 0, 0, .18);
    transition: transform .2s ease, box-shadow .2s ease;
}

body.home .ppn-toy-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 42px rgba(0, 0, 0, .25);
}

body.home .ppn-toy-age {
    position: absolute;
    z-index: 2;
    top: 29px;
    left: 29px;
    padding: 7px 11px;
    color: #fff;
    background: #a90c1b;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

body.home .ppn-toy-picture {
    aspect-ratio: 1 / 1;
    margin-bottom: 17px;
    padding: 15px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #fff;
    border-radius: 16px;
}

body.home .ppn-toy-picture img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

body.home .ppn-toy-card strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    line-height: 1.15;
}

body.home .ppn-toy-card small {
    margin-top: 8px;
    color: #7c6757;
    font-size: 13px;
}

body.home .ppn-toys-more {
    margin-top: 34px;
    text-align: center;
}

/* Tarif volontairement discret : cartouche complet dans le footer */
body.home .ppn-final-phone-block,
body.home .ppn-final-phone-number {
    display: none;
}

body.home .ppn-final-phone-price {
    margin: 9px 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.35;
}

@media (max-width: 1250px) {
    body.home .ppn-main-activities-grid {
        grid-template-columns: 1fr;
    }
    body.home .ppn-main-activity-card {
        grid-template-columns: 34% 66%;
        min-height: 330px;
    }
    body.home .ppn-toys-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    body.home .ppn-section-inner {
        width: calc(100% - 28px);
    }
    body.home .ppn-letter-card,
    body.home .ppn-toys-heading {
        grid-template-columns: 1fr;
    }
    body.home .ppn-letter-picture {
        order: -1;
        min-height: 330px;
    }
    body.home .ppn-letter-copy {
        padding: 36px 26px 42px;
    }
    body.home .ppn-toys-heading > img {
        order: -1;
        min-height: 280px;
        max-height: 360px;
    }
    body.home .ppn-toys-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    body.home .ppn-main-activity-card {
        grid-template-columns: 42% 58%;
        min-height: 270px;
    }
    body.home .ppn-main-activity-content {
        padding: 25px 19px;
    }
    body.home .ppn-main-activity-content h3 {
        font-size: 29px;
    }
    body.home .ppn-main-activity-content p {
        font-size: 13px;
    }
    body.home .ppn-toys-grid {
        grid-template-columns: 1fr;
    }
    body.home .ppn-toy-card {
        max-width: 430px;
        width: 100%;
        margin-inline: auto;
    }
    body.home .ppn-final-phone-price {
        font-size: 9px;
    }
}

/* =========================================================
   FOOTER MAGIQUE 2026 — VERSION CONSOLIDÉE
   ========================================================= */

.site-footer {
    position: relative;
    overflow: hidden;
    color: #f9f2df;
    background:
        radial-gradient(circle at 12% 10%, rgba(215, 164, 59, .16), transparent 24%),
        radial-gradient(circle at 88% 18%, rgba(201, 29, 25, .18), transparent 26%),
        linear-gradient(180deg, #092943 0%, #051b2f 58%, #031424 100%);
    border-top: 4px solid #d7a43b;
}

.site-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .26;
    background-image:
        radial-gradient(circle, #fff 0 1px, transparent 1.6px),
        radial-gradient(circle, #f6d98e 0 1px, transparent 1.7px);
    background-position: 0 0, 35px 27px;
    background-size: 74px 74px, 103px 103px;
}

.ppn-footer-stars {
    position: relative;
    z-index: 1;
    padding-top: 24px;
    color: #f3cc70;
    text-align: center;
    font-size: 17px;
    letter-spacing: .5em;
}

.site-footer .ppn-footer-inner {
    position: relative;
    z-index: 1;
    width: min(1640px, calc(100% - 48px));
    margin: 0 auto;
    padding: 42px 0 48px;
    display: grid;
    grid-template-columns: 1.35fr .8fr .8fr .9fr 1.35fr;
    gap: clamp(28px, 3vw, 58px);
    align-items: start;
}

.site-footer .ppn-footer-brand .brand {
    display: inline-block;
    color: #fff3d5;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(28px, 2.3vw, 42px);
    font-weight: 700;
}

.site-footer .ppn-footer-brand p {
    max-width: 330px;
    margin: 15px 0 20px;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.65;
}

.ppn-footer-family-note {
    display: inline-block;
    max-width: 330px;
    color: #f2cb6e;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
}

.site-footer .ppn-footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 11px;
}

.site-footer .ppn-footer-column h2 {
    margin: 4px 0 9px;
    color: #f4cc70;
    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.site-footer .ppn-footer-column a {
    position: relative;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, .82);
    font-size: 14px;
    transition: color .2s ease, transform .2s ease;
}

.site-footer .ppn-footer-column a::before {
    content: "✦";
    width: 0;
    overflow: hidden;
    color: #f3c866;
    font-size: 9px;
    transition: width .2s ease;
}

.site-footer .ppn-footer-column a:hover {
    color: #fff;
    transform: translateX(3px);
}

.site-footer .ppn-footer-column a:hover::before {
    width: 16px;
}

.site-footer .ppn-footer-call {
    padding: 26px;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #17362d;
    text-align: center;
    background: linear-gradient(145deg, #fffaf0, #f7e8c3);
    border: 1px solid #edc966;
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .24);
}

.ppn-footer-call-kicker {
    color: #a10c19;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.site-footer .ppn-footer-call-title {
    margin: 9px 0 7px;
    color: #0c402f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.15;
}

.site-footer .ppn-footer-phone {
    color: #9b0d19;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(23px, 2vw, 30px);
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}

.site-footer .ppn-footer-button {
    min-height: 46px;
    margin-top: 13px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(180deg, #ca1c28, #9d0b17);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(137, 4, 16, .22);
}

.site-footer .ppn-footer-tariff-image {
    display: block;
    width: 210px;
    max-width: 100%;
    height: auto;
    margin-top: 12px;
    border: 0;
    border-radius: 0;
}

.site-footer .ppn-footer-price {
    margin-top: 5px;
    color: #625b51;
    font-size: 8px;
    font-weight: 400;
    line-height: 1.25;
}

.site-footer .ppn-footer-bottom {
    position: relative;
    z-index: 1;
    width: min(1640px, calc(100% - 48px));
    margin: 0 auto;
    padding: 20px 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: rgba(255, 255, 255, .60);
    border-top: 1px solid rgba(255, 255, 255, .13);
    font-size: 12px;
}

.site-footer .ppn-footer-bottom a {
    color: #efc965;
}

/* Module d’appel de l’accueil */
body.home .ppn-final-call-number {
    margin-top: 10px;
    color: rgba(255, 255, 255, .88);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
}

body.home .ppn-final-tariff-image {
    display: block;
    width: 190px;
    max-width: 100%;
    height: auto;
    margin-top: 7px;
    border: 0;
    border-radius: 0;
}

body.home .ppn-final-phone-price {
    margin: 3px 0 0;
    color: rgba(255, 255, 255, .58);
    font-size: 8px;
    font-weight: 400;
    line-height: 1.25;
}

@media (max-width: 1180px) {
    .site-footer .ppn-footer-inner {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .site-footer .ppn-footer-brand {
        grid-column: 1 / -1;
        text-align: center;
    }

    .site-footer .ppn-footer-brand p,
    .ppn-footer-family-note {
        margin-left: auto;
        margin-right: auto;
    }

    .site-footer .ppn-footer-call {
        grid-column: 1 / -1;
        width: min(100%, 480px);
        margin-inline: auto;
    }
}

@media (max-width: 700px) {
    .site-footer .ppn-footer-inner {
        width: calc(100% - 32px);
        padding: 34px 0 40px;
        grid-template-columns: 1fr 1fr;
        gap: 30px 22px;
        text-align: left;
    }

    .site-footer .ppn-footer-brand,
    .site-footer .ppn-footer-call {
        grid-column: 1 / -1;
    }

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

    .site-footer .ppn-footer-column {
        align-items: flex-start;
        text-align: left;
    }

    .site-footer .ppn-footer-column:last-of-type {
        grid-column: 1 / -1;
    }

    .site-footer .ppn-footer-bottom {
        width: calc(100% - 32px);
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 430px) {
    .site-footer .ppn-footer-inner {
        grid-template-columns: 1fr;
    }

    .site-footer .ppn-footer-column,
    .site-footer .ppn-footer-column:last-of-type {
        grid-column: auto;
        align-items: center;
        text-align: center;
    }

    .site-footer .ppn-footer-call {
        grid-column: auto;
        padding: 23px 17px;
    }

    .site-footer .ppn-footer-phone {
        font-size: 23px;
    }
}

/* =========================================================
   AJUSTEMENTS FINAUX FOOTER ET APPEL
   ========================================================= */

body.home main.ppn-home,
body.home .ppn-home,
body.home .ppn-final-call-section {
    margin-bottom: 0 !important;
    padding-bottom: 0;
}

body.home .site-footer {
    margin-top: 0 !important;
}

body.home .ppn-final-call-content .ppn-final-phone-price {
    display: block !important;
    margin: 8px 0 0 !important;
    color: #6e6256 !important;
    font-family: Arial, sans-serif !important;
    font-size: 10px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    text-align: center;
}

body.home .ppn-final-tariff-image,
body.home .ppn-final-call-number {
    display: none !important;
}

body .site-footer .ppn-footer-brand .ppn-footer-tariff-image {
    display: block !important;
    width: 190px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 14px 0 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

body .site-footer .ppn-footer-call {
    padding: 25px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    color: #17362d !important;
    text-align: center !important;
    background: linear-gradient(145deg, #fffaf0, #f7e8c3) !important;
    border: 1px solid #edc966 !important;
    border-radius: 24px !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .22) !important;
}

body .site-footer .ppn-footer-call-kicker {
    color: #a10c19 !important;
    font-family: Arial, sans-serif !important;
    font-size: 10px !important;
    font-weight: 800 !important;
}

body .site-footer .ppn-footer-call-title {
    margin: 9px 0 8px !important;
    color: #0c402f !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 21px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
}

body .site-footer .ppn-footer-phone {
    margin: 2px 0 0 !important;
    color: #9b0d19 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 27px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: .02em !important;
}

body .site-footer .ppn-footer-button {
    min-height: 46px !important;
    margin-top: 15px !important;
    padding: 0 20px !important;
    color: #fff !important;
    background: linear-gradient(180deg, #ca1c28, #9d0b17) !important;
    border-radius: 999px !important;
    font-family: Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

body .site-footer .ppn-footer-price,
body .site-footer .ppn-footer-call .ppn-footer-tariff-image {
    display: none !important;
}

@media (max-width: 1180px) {
    body .site-footer .ppn-footer-brand .ppn-footer-tariff-image {
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* =========================================================
   SYSTÈME DE SECTIONS
   ========================================================= */

.ppn-section-inner {
    width: 100%;

    margin: 0;

    padding-left:
        clamp(
            24px,
            7vw,
            150px
        );

    padding-right:
        clamp(
            24px,
            7vw,
            150px
        );
}

.ppn-section-heading {
    position: relative;

    z-index: 2;

    max-width: 850px;

    margin:
        0
        auto
        clamp(
            38px,
            4vw,
            60px
        );

    text-align: center;
}

.ppn-section-ornament {
    display: block;

    margin-bottom: 6px;

    color: #c79531;

    font-size: 22px;
}

.ppn-section-heading h2 {
    margin:
        0
        0
        12px;

    color: #123f2d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            34px,
            3.3vw,
            52px
        );

    line-height: 1.05;
}

.ppn-section-heading p {
    margin: 0;

    color: #6b675e;

    font-size: 17px;

    line-height: 1.55;
}


/* =========================================================
   HOME — ACTIVITÉS
   ========================================================= */

.ppn-main-activities {
    position: relative;

    width: 100%;

    padding:
        clamp(65px,6vw,105px)
        0
        clamp(70px,7vw,120px);

    overflow: hidden;

    background:
        radial-gradient(
            circle at 8% 25%,
            rgba(215,164,59,.11),
            transparent 24%
        ),
        radial-gradient(
            circle at 94% 65%,
            rgba(169,18,27,.06),
            transparent 23%
        ),
        #fffaf0;
}

.ppn-main-activities::before,
.ppn-main-activities::after {
    position: absolute;

    color:
        rgba(199,146,43,.25);

    font-family:
        Georgia,
        serif;

    pointer-events: none;
}

.ppn-main-activities::before {
    content: "✦";

    top: 65px;
    left: 4%;

    font-size: 45px;
}

.ppn-main-activities::after {
    content: "❄";

    right: 5%;
    bottom: 65px;

    font-size: 60px;
}


/* Grille */

.ppn-main-activities-grid {
    position: relative;

    z-index: 2;

    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:
        clamp(
            20px,
            2vw,
            34px
        );
}


/* Carte */

.ppn-main-activity-card {
    position: relative;

    min-width: 0;
    min-height: 360px;

    overflow: hidden;

    display: grid;

    grid-template-columns:
        minmax(130px,38%)
        1fr;

    color: #243329;

    background:
        rgba(255,255,255,.83);

    border:
        1px solid
        rgba(193,151,71,.32);

    border-radius: 24px;

    box-shadow:
        0 12px 34px
        rgba(88,54,22,.09);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.ppn-main-activity-card:hover {
    transform:
        translateY(-7px);

    border-color:
        rgba(193,151,71,.65);

    box-shadow:
        0 20px 45px
        rgba(88,54,22,.15);
}


/* Partie visuelle */

.ppn-main-activity-visual {
    position: relative;

    min-height: 100%;

    padding:
        25px
        16px;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    text-align: center;
}

.ppn-activity-emoji {
    width: 105px;
    height: 105px;

    margin-bottom: 18px;

    display: grid;

    place-items: center;

    background:
        rgba(255,255,255,.76);

    border:
        1px solid
        rgba(255,255,255,.75);

    border-radius: 50%;

    box-shadow:
        0 8px 22px
        rgba(47,34,12,.11);

    font-size: 52px;
}

.ppn-activity-mini {
    padding:
        6px
        11px;

    color: #5c5549;

    background:
        rgba(255,255,255,.7);

    border-radius: 20px;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .04em;

    text-transform: uppercase;
}

.ppn-card-coloriages .ppn-main-activity-visual {
    background:
        linear-gradient(
            145deg,
            #e6f0df,
            #f9f4df
        );
}

.ppn-card-jeux .ppn-main-activity-visual {
    background:
        linear-gradient(
            145deg,
            #fff0cc,
            #f8dfb1
        );
}

.ppn-card-videos .ppn-main-activity-visual {
    background:
        linear-gradient(
            145deg,
            #f8dcdc,
            #f7ebe0
        );
}


/* Contenu */

.ppn-main-activity-content {
    padding:
        clamp(
            28px,
            2.5vw,
            40px
        )
        clamp(
            24px,
            2.5vw,
            38px
        );

    display: flex;

    flex-direction: column;

    justify-content: center;
}

.ppn-activity-label {
    display: block;

    margin-bottom: 8px;

    color: #a47420;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .08em;

    text-transform: uppercase;
}

.ppn-main-activity-content h3 {
    margin:
        0
        0
        12px;

    color: #133f2d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            27px,
            2vw,
            36px
        );

    line-height: 1.05;
}

.ppn-main-activity-content p {
    margin:
        0
        0
        25px;

    color: #69655c;

    font-size: 14px;

    line-height: 1.55;
}


/* Faux bouton dans les cartes */

.ppn-card-button {
    width: fit-content;

    min-height: 42px;

    margin-top: auto;

    padding:
        0
        17px;

    display: inline-flex;

    align-items: center;

    gap: 9px;

    color: #ffffff;

    background: #174d34;

    border-radius: 21px;

    font-size: 13px;

    font-weight: 700;
}

.ppn-card-jeux .ppn-card-button {
    background: #c58d28;
}

.ppn-card-videos .ppn-card-button {
    background: #af1921;
}


/* =========================================================
   HOME — RECETTES
   ========================================================= */

.ppn-home-recipes {
    position: relative;

    width: 100%;

    padding:
        clamp(70px,7vw,120px)
        0
        clamp(75px,7vw,125px);

    overflow: hidden;

    background:
        radial-gradient(
            circle at 10% 15%,
            rgba(167,35,27,.06),
            transparent 23%
        ),
        radial-gradient(
            circle at 90% 85%,
            rgba(215,164,59,.12),
            transparent 25%
        ),
        #ffffff;
}

.ppn-home-recipes::before {
    content: "✦";

    position: absolute;

    top: 80px;
    right: 5%;

    color:
        rgba(199,146,43,.23);

    font-size: 48px;

    pointer-events: none;
}

.ppn-home-recipes::after {
    content: "❄";

    position: absolute;

    bottom: 60px;
    left: 4%;

    color:
        rgba(199,146,43,.18);

    font-size: 55px;

    pointer-events: none;
}

.ppn-recipes-heading {
    margin-bottom:
        clamp(
            38px,
            4vw,
            58px
        );
}


/* Grille */

.ppn-home-recipes-grid {
    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0,1fr)
        );

    gap:
        clamp(
            18px,
            1.8vw,
            30px
        );
}


/* Carte */

.ppn-recipe-card {
    min-width: 0;

    overflow: hidden;

    display: flex;

    flex-direction: column;

    background: #fffdf8;

    border:
        1px solid
        rgba(195,157,91,.30);

    border-radius: 22px;

    box-shadow:
        0 12px 34px
        rgba(75,48,15,.08);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.ppn-recipe-card:hover {
    transform:
        translateY(-7px);

    box-shadow:
        0 20px 45px
        rgba(75,48,15,.14);
}


/* Visuel */

.ppn-recipe-image {
    position: relative;

    min-height:
        clamp(
            190px,
            15vw,
            270px
        );

    overflow: hidden;

    display: grid;

    place-items: center;
}

.ppn-recipe-image-cookies {
    background:
        radial-gradient(
            circle at 50% 42%,
            #f8e3bb,
            #d79b4e
        );
}

.ppn-recipe-image-chocolate {
    background:
        radial-gradient(
            circle at 50% 40%,
            #e7c7a7,
            #6e3f28
        );
}

.ppn-recipe-image-log {
    background:
        radial-gradient(
            circle at 50% 40%,
            #dbc09c,
            #694226
        );
}

.ppn-recipe-image-gingerbread {
    background:
        radial-gradient(
            circle at 50% 40%,
            #f1d29b,
            #b46a32
        );
}

.ppn-recipe-placeholder {
    width: 112px;
    height: 112px;

    display: grid;

    place-items: center;

    background:
        rgba(255,255,255,.86);

    border:
        1px solid
        rgba(255,255,255,.80);

    border-radius: 50%;

    box-shadow:
        0 12px 30px
        rgba(54,29,9,.13);

    font-size: 58px;
}

.ppn-recipe-image-label {
    position: absolute;

    top: 16px;
    left: 16px;

    padding:
        7px
        11px;

    color: #6d4519;

    background:
        rgba(255,250,236,.94);

    border-radius: 18px;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: .06em;

    text-transform: uppercase;
}


/* Texte */

.ppn-recipe-content {
    flex: 1;

    padding:
        clamp(
            22px,
            2vw,
            30px
        );

    display: flex;

    flex-direction: column;
}

.ppn-recipe-meta {
    margin-bottom: 12px;

    display: flex;

    flex-wrap: wrap;

    gap:
        7px
        14px;

    color: #98702e;

    font-size: 10px;

    font-weight: 700;

    text-transform: uppercase;
}

.ppn-recipe-content h3 {
    margin:
        0
        0
        12px;

    color: #123f2d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            23px,
            1.7vw,
            31px
        );

    line-height: 1.1;
}

.ppn-recipe-content h3 a:hover {
    color: #9f151b;
}

.ppn-recipe-content p {
    margin:
        0
        0
        23px;

    color: #68635a;

    font-size: 14px;

    line-height: 1.6;
}

.ppn-recipe-link {
    width: fit-content;

    margin-top: auto;

    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #a3161b;

    font-size: 13px;

    font-weight: 700;
}

.ppn-recipe-link:hover {
    color: #123f2d;
}


/* Toutes les recettes */

.ppn-recipes-more {
    position: relative;

    z-index: 2;

    margin-top:
        clamp(
            35px,
            4vw,
            55px
        );

    display: flex;

    justify-content: center;
}

.ppn-recipes-more-button {
    min-height: 50px;

    padding:
        0
        24px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    color: #ffffff;

    background: #123f2d;

    border-radius: 26px;

    box-shadow:
        0 8px 20px
        rgba(18,63,45,.16);

    font-size: 14px;

    font-weight: 700;
}

.ppn-recipes-more-button:hover {
    color: #ffffff;

    background: #0b3223;

    transform:
        translateY(-2px);
}


/* =========================================================
   HOME — HISTOIRES
   ========================================================= */

.ppn-home-stories {
    position: relative;

    width: 100%;

    padding:
        clamp(75px,7vw,125px)
        0
        clamp(80px,7vw,130px);

    overflow: hidden;

    background:
        radial-gradient(
            circle at 15% 20%,
            rgba(255,255,255,.08),
            transparent 24%
        ),
        radial-gradient(
            circle at 85% 75%,
            rgba(215,164,59,.10),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #071d3c 0%,
            #0d3156 55%,
            #071d3c 100%
        );
}

.ppn-home-stories::before,
.ppn-home-stories::after {
    position: absolute;

    color:
        rgba(255,226,151,.18);

    pointer-events: none;
}

.ppn-home-stories::before {
    content: "✦";

    top: 80px;
    left: 5%;

    font-size: 44px;
}

.ppn-home-stories::after {
    content: "❄";

    right: 5%;
    bottom: 60px;

    font-size: 58px;
}

.ppn-home-stories .ppn-section-heading h2 {
    color: #fff5df;
}

.ppn-home-stories .ppn-section-heading p {
    color: #cdd6e1;
}

.ppn-home-stories .ppn-section-ornament {
    color: #f0c45f;
}

.ppn-stories-heading {
    margin-bottom:
        clamp(
            40px,
            4vw,
            62px
        );
}


/* Grille */

.ppn-home-stories-grid {
    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:
        clamp(
            20px,
            2vw,
            34px
        );

    align-items: stretch;
}


/* Carte */

.ppn-story-card {
    min-width: 0;

    overflow: hidden;

    display: flex;

    flex-direction: column;

    background:
        rgba(255,250,240,.97);

    border:
        1px solid
        rgba(238,206,132,.25);

    border-radius: 24px;

    box-shadow:
        0 18px 42px
        rgba(0,0,0,.18);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.ppn-story-card:hover {
    transform:
        translateY(-7px);

    box-shadow:
        0 26px 55px
        rgba(0,0,0,.25);
}

.ppn-story-featured {
    transform:
        translateY(-12px);
}

.ppn-story-featured:hover {
    transform:
        translateY(-18px);
}


/* Visuel */

.ppn-story-visual {
    position: relative;

    min-height:
        clamp(
            220px,
            18vw,
            310px
        );

    display: grid;

    place-items: center;

    overflow: hidden;
}

.ppn-story-visual-village {
    background:
        radial-gradient(
            circle at 50% 25%,
            #f2d78d 0 3%,
            transparent 4%
        ),
        linear-gradient(
            180deg,
            #173d68 0%,
            #0b2341 100%
        );
}

.ppn-story-visual-sleigh {
    background:
        radial-gradient(
            circle at 70% 25%,
            rgba(255,238,180,.85),
            transparent 12%
        ),
        linear-gradient(
            180deg,
            #12365f 0%,
            #06172c 100%
        );
}

.ppn-story-visual-bear {
    background:
        radial-gradient(
            circle at 50% 45%,
            #9e643f,
            #4f3022
        );
}

.ppn-story-icon {
    width: 120px;
    height: 120px;

    display: grid;

    place-items: center;

    background:
        rgba(255,255,255,.88);

    border-radius: 50%;

    box-shadow:
        0 12px 30px
        rgba(0,0,0,.15);

    font-size: 60px;
}

.ppn-story-badge {
    position: absolute;

    top: 16px;
    left: 16px;

    padding:
        7px
        11px;

    color: #163554;

    background:
        rgba(255,248,226,.94);

    border-radius: 18px;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .05em;

    text-transform: uppercase;
}


/* Contenu */

.ppn-story-content {
    flex: 1;

    padding:
        clamp(
            24px,
            2.5vw,
            36px
        );

    display: flex;

    flex-direction: column;
}

.ppn-story-category {
    display: block;

    margin-bottom: 9px;

    color: #af761f;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .09em;

    text-transform: uppercase;
}

.ppn-story-content h3 {
    margin:
        0
        0
        13px;

    color: #123f2d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            26px,
            2vw,
            36px
        );

    line-height: 1.08;
}

.ppn-story-content h3 a:hover {
    color: #a3151c;
}

.ppn-story-content p {
    margin:
        0
        0
        24px;

    color: #666159;

    font-size: 14px;

    line-height: 1.6;
}

.ppn-story-link {
    width: fit-content;

    margin-top: auto;

    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #a3151c;

    font-size: 13px;

    font-weight: 700;
}

.ppn-story-link:hover {
    color: #123f2d;
}


/* Toutes les histoires */

.ppn-stories-more {
    position: relative;

    z-index: 2;

    margin-top:
        clamp(
            38px,
            4vw,
            58px
        );

    display: flex;

    justify-content: center;
}

.ppn-stories-more-button {
    min-height: 50px;

    padding:
        0
        24px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    color: #102f28;

    background:
        linear-gradient(
            180deg,
            #ffe49a 0%,
            #e7bc58 100%
        );

    border-radius: 26px;

    box-shadow:
        0 9px 22px
        rgba(0,0,0,.18);

    font-size: 14px;

    font-weight: 700;
}

.ppn-stories-more-button:hover {
    color: #102f28;

    transform:
        translateY(-2px);
}


/* =========================================================
   HOME — CTA FINAL
   ========================================================= */

.ppn-final-call-section {
    position: relative;

    width: 100%;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 15% 15%,
            rgba(215,164,59,.12),
            transparent 24%
        ),
        linear-gradient(
            135deg,
            #fff9ed 0%,
            #fff4dc 100%
        );
}

.ppn-final-call-inner {
    width: 100%;

    min-height: 590px;

    display: grid;

    grid-template-columns:
        47%
        53%;

    align-items: stretch;
}


/* Contenu */

.ppn-final-call-content {
    position: relative;

    z-index: 2;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding:
        clamp(65px,6vw,110px)
        clamp(45px,6vw,120px)
        clamp(65px,6vw,110px)
        clamp(50px,8vw,160px);
}

.ppn-final-call-kicker {
    display: inline-block;

    width: fit-content;

    margin-bottom: 13px;

    color: #a80916;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: .09em;

    text-transform: uppercase;
}

.ppn-final-call-content h2 {
    max-width: 680px;

    margin:
        0
        0
        18px;

    color: #123f2d;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            44px,
            4vw,
            70px
        );

    line-height: 1;

    letter-spacing: -.035em;
}

.ppn-final-call-intro {
    max-width: 560px;

    margin:
        0
        0
        30px;

    color: #3d463f;

    font-size: 19px;

    line-height: 1.55;
}


/* Numéro */

.ppn-final-phone-block {
    width: fit-content;

    min-width: 360px;

    margin-bottom: 14px;

    padding:
        15px
        24px;

    background:
        rgba(255,255,255,.94);

    border:
        2px solid
        rgba(201,154,59,.55);

    border-radius: 18px;

    box-shadow:
        0 10px 26px
        rgba(72,45,14,.10);

    text-align: center;
}

.ppn-final-phone-number,
.ppn-final-phone-price {
    color: #8f0811;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            25px,
            2vw,
            32px
        );

    font-weight: 700;

    line-height: 1.25;
}

.ppn-final-phone-number {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 12px;
}

.ppn-final-phone-number:hover {
    color: #8f0811;
}

.ppn-final-phone-price {
    margin-top: 7px;
}


/* Bouton */

.ppn-final-call-button {
    width: fit-content;

    min-width: 410px;
    min-height: 62px;

    margin-top: 0;

    padding:
        15px
        30px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    color:
        #ffffff !important;

    background:
        linear-gradient(
            180deg,
            #d21824 0%,
            #a80916 100%
        );

    border-radius: 18px;

    box-shadow:
        0 9px 22px
        rgba(168,9,22,.24);

    font-size: 19px;

    font-weight: 700;

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.ppn-final-call-button:hover {
    color:
        #ffffff !important;

    transform:
        translateY(-2px);

    box-shadow:
        0 13px 30px
        rgba(168,9,22,.30);
}


/* Photo */

.ppn-final-call-image {
    position: relative;

    width: 100%;

    min-width: 0;
    min-height: 590px;

    background:
        linear-gradient(
            90deg,
            #fff4dc 0%,
            rgba(255,244,220,.15) 15%,
            rgba(255,244,220,0) 33%
        ),
        url("https://petit-papa-noel.com/wp-content/uploads/2026/08/Pere_Noel.png")
        center center
        /
        cover
        no-repeat;
}


/* =========================================================
   FOOTER V2
   ========================================================= */

.site-footer {
    width: 100%;

    color: #ffffff;

    background:
        radial-gradient(
            circle at 85% 0,
            rgba(33,92,140,.28),
            transparent 30%
        ),
        #051a36;
}

.ppn-footer-inner {
    width: 100%;

    padding:
        clamp(50px,5vw,80px)
        clamp(24px,7vw,150px)
        clamp(40px,4vw,65px);

    display: grid;

    grid-template-columns:
        1.4fr
        .8fr
        .8fr
        .8fr
        1.25fr;

    gap:
        clamp(
            30px,
            4vw,
            70px
        );

    align-items: start;
}


/* Marque */

.ppn-footer-brand .brand {
    color: #f3c25a;

    font-size:
        clamp(
            30px,
            2.3vw,
            42px
        );

    font-weight: 700;
}

.ppn-footer-brand p {
    max-width: 280px;

    margin-top: 15px;

    color: #b9c6d5;

    font-size: 13px;

    line-height: 1.6;
}


/* Colonnes */

.ppn-footer-column h2 {
    margin:
        0
        0
        16px;

    color: #f0b93b;

    font-family:
        Arial,
        sans-serif;

    font-size: 12px;

    text-transform: uppercase;
}

.ppn-footer-column a {
    display: block;

    margin:
        9px
        0;

    color: #dbe3ec;

    font-size: 13px;
}

.ppn-footer-column a:hover {
    color: #f3c25a;
}


/* Téléphone */

.ppn-footer-call {
    padding:
        22px
        20px;

    text-align: center;

    border:
        2px solid
        rgba(215,164,59,.85);

    border-radius: 14px;

    background:
        rgba(255,255,255,.03);
}

.ppn-footer-call-title {
    display: block;

    margin-bottom: 12px;

    color: #ffffff;

    font-size: 14px;
}

.ppn-footer-phone,
.ppn-footer-price {
    color: #f3c25a;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            20px,
            1.5vw,
            27px
        );

    font-weight: 700;

    line-height: 1.3;
}

.ppn-footer-phone {
    display: block;
}

.ppn-footer-phone:hover {
    color: #f3c25a;
}

.ppn-footer-price {
    margin-top: 6px;
}

.ppn-footer-button {
    min-height: 43px;

    margin-top: 15px;

    padding:
        0
        20px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    color: #ffffff;

    background:
        linear-gradient(
            180deg,
            #df281f,
            #b70f0b
        );

    border:
        1px solid
        #f04a41;

    border-radius: 12px;

    font-size: 13px;

    font-weight: 700;
}

.ppn-footer-button:hover {
    color: #ffffff;

    transform:
        translateY(-1px);
}


/* Bas footer */

.ppn-footer-bottom {
    margin:
        0
        clamp(
            24px,
            7vw,
            150px
        );

    padding:
        18px
        0;

    display: flex;

    justify-content: space-between;

    gap: 20px;

    color: #8f9eaf;

    border-top:
        1px solid
        rgba(255,255,255,.12);

    font-size: 10px;
}


/* =========================================================
   GRAND ÉCRAN
   ========================================================= */

@media (min-width: 1600px) {

    :root {
        --shell: 1640px;
    }

    .ppn-hero-inner {
        grid-template-columns:
            45%
            55%;

        min-height: 660px;
    }

    .ppn-hero-content {
        padding-left:
            clamp(
                100px,
                8vw,
                170px
            );

        padding-right:
            clamp(
                60px,
                5vw,
                110px
            );
    }

    .ppn-hero-image {
        min-height: 660px;
    }
}


/* =========================================================
   TRÈS GRAND ÉCRAN
   ========================================================= */

@media (min-width: 1900px) {

    .ppn-section-inner {
        padding-left:
            clamp(
                100px,
                9vw,
                220px
            );

        padding-right:
            clamp(
                100px,
                9vw,
                220px
            );
    }


    /* Hero */

    .ppn-hero-inner {
        grid-template-columns:
            43%
            57%;

        min-height: 700px;
    }

    .ppn-hero-content {
        padding-left:
            clamp(
                130px,
                9vw,
                210px
            );
    }

    .ppn-hero h1 {
        max-width: 780px;

        font-size:
            clamp(
                74px,
                4.2vw,
                92px
            );
    }

    .ppn-hero-subtitle {
        max-width: 620px;

        font-size: 22px;
    }

    .ppn-hero-image {
        min-height: 700px;
    }


    /* Activités */

    .ppn-main-activity-card {
        min-height: 390px;
    }

    .ppn-activity-emoji {
        width: 120px;
        height: 120px;

        font-size: 60px;
    }

    .ppn-main-activity-content p {
        font-size: 15px;
    }


    /* Recettes */

    .ppn-home-recipes-grid {
        gap: 32px;
    }

    .ppn-recipe-image {
        min-height: 290px;
    }

    .ppn-recipe-content p {
        font-size: 15px;
    }


    /* Histoires */

    .ppn-home-stories-grid {
        gap: 36px;
    }

    .ppn-story-visual {
        min-height: 330px;
    }

    .ppn-story-content p {
        font-size: 15px;
    }


    /* CTA final */

    .ppn-final-call-inner {
        grid-template-columns:
            43%
            57%;

        min-height: 680px;
    }

    .ppn-final-call-content {
        padding-left:
            clamp(
                130px,
                9vw,
                220px
            );
    }

    .ppn-final-call-image {
        min-height: 680px;
    }


    /* Footer */

    .ppn-footer-inner {
        padding-left:
            clamp(
                120px,
                9vw,
                220px
            );

        padding-right:
            clamp(
                120px,
                9vw,
                220px
            );
    }

    .ppn-footer-bottom {
        margin-left:
            clamp(
                120px,
                9vw,
                220px
            );

        margin-right:
            clamp(
                120px,
                9vw,
                220px
            );
    }
}


/* =========================================================
   ULTRA-LARGE
   ========================================================= */

@media (min-width: 2400px) {

    .ppn-hero-inner {
        grid-template-columns:
            42%
            58%;

        min-height: 760px;
    }

    .ppn-hero-content {
        padding-left:
            clamp(
                180px,
                10vw,
                280px
            );
    }

    .ppn-hero h1 {
        max-width: 850px;

        font-size: 100px;
    }

    .ppn-hero-subtitle {
        font-size: 24px;
    }

    .ppn-hero-image {
        min-height: 760px;
    }
}


/* =========================================================
   HEADER TABLETTE
   ========================================================= */

@media (max-width: 1279px) {

    .site-header .header-inner {
        width: min(
            calc(100% - 32px),
            1680px
        );

        min-height: 72px;
    }

    .site-header .menu-button {
        width: 44px;
        height: 44px;

        padding: 10px;

        display: grid;

        align-content: center;

        gap: 5px;

        color: #ffffff;

        background: none;

        border: 0;
    }

    .site-header .menu-button span {
        height: 2px;

        background: currentColor;
    }

    .site-header .main-nav {
        position: absolute;

        top: 72px;
        right: 16px;
        left: 16px;

        padding: 12px;

        display: none;

        background: #8f0710;

        border-radius:
            0
            0
            14px
            14px;

        box-shadow:
            0 12px 28px
            rgba(0,0,0,.18);
    }

    .site-header .main-nav.open {
        display: block;
    }

    .site-header .main-nav ul {
        display: grid;

        gap: 0;
    }

    .site-header .main-nav a {
        padding:
            13px
            15px;
    }

    .site-header .header-call {
        display: none;
    }
}


/* =========================================================
   TABLETTE / PETIT DESKTOP
   ========================================================= */

@media (max-width: 1150px) {

    .ppn-main-activity-card {
        grid-template-columns: 1fr;
    }

    .ppn-main-activity-visual {
        min-height: 180px;
    }

    .ppn-main-activity-content {
        align-items: center;

        text-align: center;
    }

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

    .ppn-recipe-image {
        min-height: 250px;
    }
}


@media (max-width: 1100px) {

    .ppn-hero-inner {
        grid-template-columns:
            50%
            50%;

        min-height: 550px;
    }

    .ppn-hero-content {
        padding:
            105px
            32px
            45px;
    }

    body.home .ppn-hero-content {
        padding-top: 55px;
    }

    .ppn-hero h1 {
        font-size:
            clamp(
                44px,
                6vw,
                62px
            );
    }

    .ppn-phone-box,
    .ppn-call-button {
        width: 100%;

        min-width: 0;
    }

    .ppn-phone-number {
        font-size: 27px;
    }

    .ppn-hero-image {
        min-height: 550px;
    }
}


@media (max-width: 1050px) {

    /* Histoires */

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

    .ppn-story-featured {
        transform: none;
    }

    .ppn-story-featured:hover {
        transform:
            translateY(-7px);
    }

    .ppn-story-card:last-child {
        grid-column:
            1 / -1;

        width: 100%;

        max-width: 620px;

        margin:
            0
            auto;
    }


    /* CTA */

    .ppn-final-call-inner {
        grid-template-columns:
            50%
            50%;
    }

    .ppn-final-call-content {
        padding:
            55px
            30px;
    }

    .ppn-final-phone-block,
    .ppn-final-call-button {
        width: 100%;

        min-width: 0;
    }


    /* Footer */

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

    .ppn-footer-brand,
    .ppn-footer-call {
        grid-column:
            1 / -1;

        text-align: center;
    }

    .ppn-footer-brand p {
        margin-left: auto;
        margin-right: auto;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .shell {
        width:
            calc(
                100% - 32px
            );
    }


    /* Header */

    .site-header .header-inner {
        width:
            calc(
                100% - 28px
            );

        min-height: 66px;
    }

    .site-header .brand {
        font-size: 24px;
    }

    .site-header .main-nav {
        top: 66px;
        right: 14px;
        left: 14px;
    }


    /* Pages */

    .page-main {
        padding:
            105px
            0
            55px;
    }

    .page-article,
    .post-card {
        padding: 24px;
    }

    .page-featured {
        margin:
            -24px
            -24px
            25px;
    }


    /* Hero */

    .ppn-hero-inner {
        display: flex;

        flex-direction: column;

        min-height: auto;
    }

    .ppn-hero-content {
        order: 1;

        padding:
            38px
            20px
            28px;

        align-items: center;

        text-align: center;
    }

    body.home .ppn-hero-content {
        padding-top: 38px;
    }

    .ppn-hero-kicker {
        margin-left: auto;
        margin-right: auto;

        font-size: 13px;
    }

    .ppn-hero h1 {
        max-width: 480px;

        font-size:
            clamp(
                40px,
                12vw,
                56px
            );
    }

    .ppn-hero-subtitle {
        max-width: 440px;

        margin-bottom: 22px;

        font-size: 18px;
    }

    .ppn-phone-box {
        width: 100%;

        max-width: 430px;

        min-width: 0;

        padding:
            12px
            15px;
    }

    .ppn-phone-number {
        font-size:
            clamp(
                25px,
                7vw,
                31px
            );

        letter-spacing: 0;
    }

    .ppn-call-button {
        width: 100%;

        max-width: 430px;

        min-width: 0;

        min-height: 60px;

        font-size: 18px;
    }

    .ppn-price {
        max-width: 420px;

        font-size: 11px;
    }

    .ppn-hero-image {
        order: 2;

        width: 100%;

        min-height: 380px;

        background-position:
            center
            20%;
    }


    /* Sections */

    .ppn-section-inner {
        padding-left: 18px;
        padding-right: 18px;
    }

    .ppn-section-heading {
        margin-bottom: 32px;
    }

    .ppn-section-heading h2 {
        font-size:
            clamp(
                31px,
                9vw,
                42px
            );
    }

    .ppn-section-heading p {
        font-size: 15px;
    }


    /* Activités */

    .ppn-main-activities {
        padding:
            55px
            0
            70px;
    }

    .ppn-main-activities-grid {
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .ppn-main-activity-card {
        min-height: 0;

        grid-template-columns:
            120px
            1fr;

        border-radius: 19px;
    }

    .ppn-main-activity-visual {
        min-height: 190px;

        padding:
            18px
            10px;
    }

    .ppn-activity-emoji {
        width: 75px;
        height: 75px;

        margin-bottom: 11px;

        font-size: 38px;
    }

    .ppn-activity-mini {
        padding:
            5px
            8px;

        font-size: 9px;
    }

    .ppn-main-activity-content {
        padding:
            22px
            18px;

        align-items: flex-start;

        text-align: left;
    }

    .ppn-main-activity-content h3 {
        font-size: 27px;
    }

    .ppn-main-activity-content p {
        margin-bottom: 17px;

        font-size: 13px;
    }


    /* Recettes */

    .ppn-home-recipes {
        padding:
            60px
            0
            75px;
    }

    .ppn-home-recipes-grid {
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .ppn-recipe-card {
        display: grid;

        grid-template-columns:
            125px
            1fr;

        border-radius: 18px;
    }

    .ppn-recipe-image {
        min-height: 100%;

        border-radius:
            18px
            0
            0
            18px;
    }

    .ppn-recipe-placeholder {
        width: 70px;
        height: 70px;

        font-size: 37px;
    }

    .ppn-recipe-image-label {
        top: 9px;
        left: 9px;

        padding:
            5px
            7px;

        font-size: 8px;
    }

    .ppn-recipe-content {
        padding:
            19px
            17px;
    }

    .ppn-recipe-meta {
        margin-bottom: 8px;

        font-size: 8px;
    }

    .ppn-recipe-content h3 {
        margin-bottom: 8px;

        font-size: 22px;
    }

    .ppn-recipe-content p {
        margin-bottom: 14px;

        font-size: 12px;
    }

    .ppn-recipe-link {
        font-size: 12px;
    }


    /* Histoires */

    .ppn-home-stories {
        padding:
            65px
            0
            80px;
    }

    .ppn-home-stories-grid {
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .ppn-story-card,
    .ppn-story-card:last-child {
        width: 100%;

        max-width: none;

        display: grid;

        grid-template-columns:
            130px
            1fr;
    }

    .ppn-story-visual {
        min-height: 100%;
    }

    .ppn-story-icon {
        width: 75px;
        height: 75px;

        font-size: 38px;
    }

    .ppn-story-badge {
        top: 9px;
        left: 9px;

        padding:
            5px
            7px;

        font-size: 8px;
    }

    .ppn-story-content {
        padding:
            20px
            18px;
    }

    .ppn-story-content h3 {
        margin-bottom: 8px;

        font-size: 23px;
    }

    .ppn-story-content p {
        margin-bottom: 15px;

        font-size: 12px;
    }


    /* CTA final */

    .ppn-final-call-inner {
        display: flex;

        flex-direction: column;
    }

    .ppn-final-call-content {
        order: 1;

        padding:
            55px
            18px
            35px;

        align-items: center;

        text-align: center;
    }

    .ppn-final-call-content h2 {
        max-width: 500px;

        font-size:
            clamp(
                38px,
                10vw,
                52px
            );
    }

    .ppn-final-call-intro {
        max-width: 450px;

        font-size: 17px;
    }

    .ppn-final-phone-block {
        width: 100%;

        max-width: 440px;

        min-width: 0;

        padding:
            15px
            12px;
    }

    .ppn-final-phone-number,
    .ppn-final-phone-price {
        color: #8f0811;

        font-size:
            clamp(
                22px,
                6vw,
                28px
            );
    }

    .ppn-final-call-button {
        width: 100%;

        max-width: 440px;

        min-width: 0;
    }

    .ppn-final-call-image {
        order: 2;

        width: 100%;

        min-height: 390px;

        background-position:
            center
            20%;
    }


    /* Footer */

    .ppn-footer-inner {
        padding:
            45px
            18px
            35px;

        grid-template-columns: 1fr;

        text-align: center;
    }

    .ppn-footer-brand,
    .ppn-footer-call {
        grid-column: auto;
    }

    .ppn-footer-call {
        width: 100%;

        max-width: 430px;

        margin:
            0
            auto;
    }

    .ppn-footer-phone,
    .ppn-footer-price {
        font-size:
            clamp(
                21px,
                6vw,
                27px
            );
    }

    .ppn-footer-bottom {
        margin:
            0
            18px;

        flex-direction: column;

        align-items: center;

        text-align: center;
    }
}


/* =========================================================
   PETIT MOBILE
   ========================================================= */

@media (max-width: 430px) {

    /* Activités */

    .ppn-main-activity-card {
        grid-template-columns: 1fr;
    }

    .ppn-main-activity-visual {
        min-height: 145px;
    }

    .ppn-main-activity-content {
        align-items: center;

        text-align: center;
    }


    /* Recettes */

    .ppn-recipe-card {
        display: flex;
    }

    .ppn-recipe-image {
        min-height: 180px;

        border-radius:
            18px
            18px
            0
            0;
    }

    .ppn-recipe-content {
        align-items: center;

        text-align: center;
    }

    .ppn-recipe-meta {
        justify-content: center;
    }


    /* Histoires */

    .ppn-story-card,
    .ppn-story-card:last-child {
        display: flex;
    }

    .ppn-story-visual {
        min-height: 185px;
    }

    .ppn-story-content {
        align-items: center;

        text-align: center;
    }
}


@media (max-width: 420px) {

    .ppn-hero-content {
        padding:
            38px
            16px
            24px;
    }

    .ppn-hero h1 {
        font-size:
            clamp(
                36px,
                11vw,
                48px
            );
    }

    .ppn-phone-number {
        font-size: 24px;
    }

    .ppn-hero-image {
        min-height: 330px;
    }

    .ppn-final-phone-number,
    .ppn-final-phone-price {
        font-size: 21px;
    }

    .ppn-final-call-image {
        min-height: 330px;
    }
}


/* =========================================================
   ACCESSIBILITÉ — ANIMATIONS
   ========================================================= */

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

    html {
        scroll-behavior: auto;
    }

    * {
        transition:
            none !important;
    }
}

/* =========================================================
   FOOTER PPN — REDESIGN COMPACT 2026
   ========================================================= */

.site-footer {
    border-top-width: 3px;
}

.site-footer .ppn-footer-stars {
    padding-top: 13px;
    font-size: 14px;
    letter-spacing: .42em;
}

.site-footer .ppn-footer-inner {
    width: min(1500px, calc(100% - 48px));
    padding: 24px 0 28px;
    grid-template-columns: 1.15fr .72fr .64fr .82fr 1.58fr;
    gap: clamp(20px, 2.1vw, 38px);
    align-items: center;
}

.site-footer .ppn-footer-brand {
    align-self: center;
}

.site-footer .ppn-footer-logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.site-footer .ppn-footer-logo {
    display: block;
    width: clamp(210px, 17vw, 270px);
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.site-footer .ppn-footer-brand p {
    max-width: 300px;
    margin: 10px 0 11px;
    font-size: 14px;
    line-height: 1.48;
}

.site-footer .ppn-footer-family-note {
    max-width: 300px;
    font-size: 11px;
    line-height: 1.4;
}

.site-footer .ppn-footer-column {
    gap: 7px;
    align-self: center;
}

.site-footer .ppn-footer-column h2 {
    margin: 0 0 8px;
}

.site-footer .ppn-footer-column a {
    min-height: 24px;
    line-height: 1.3;
}

body .site-footer .ppn-footer-call {
    width: 100%;
    min-width: 350px;
    padding: 34px 32px !important;
    border: 2px solid #edc966 !important;
    border-radius: 30px !important;
    box-shadow: 0 22px 52px rgba(0, 0, 0, .28) !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(215,164,59,.20), transparent 24%),
        linear-gradient(145deg, #fffdf6 0%, #f7e7bb 100%) !important;
}

body .site-footer .ppn-footer-call-kicker {
    font-size: 11px !important;
    letter-spacing: .10em;
}

body .site-footer .ppn-footer-call-title {
    max-width: 340px;
    margin: 12px 0 8px !important;
    font-size: 28px !important;
    line-height: 1.12 !important;
}

body .site-footer .ppn-footer-phone {
    margin-top: 2px;
    font-size: clamp(32px, 2.7vw, 42px) !important;
    line-height: 1.15;
}

body .site-footer .ppn-footer-button {
    width: 100%;
    min-height: 58px;
    margin-top: 16px;
    padding: 0 28px;
    font-size: 16px;
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(137, 4, 16, .25);
    transition: transform .2s ease, box-shadow .2s ease;
}

body .site-footer .ppn-footer-button:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(137, 4, 16, .32);
}

body .site-footer .ppn-footer-call .ppn-footer-tariff-image {
    display: block !important;
    width: 300px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 17px auto 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.site-footer .ppn-footer-bottom {
    width: min(1500px, calc(100% - 48px));
    padding: 13px 0 16px;
    gap: 16px;
}

@media (max-width: 1180px) {
    .site-footer .ppn-footer-inner {
        padding: 24px 0 30px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }

    .site-footer .ppn-footer-logo {
        width: 250px;
    }

    body .site-footer .ppn-footer-call {
        width: min(100%, 620px);
        min-width: 0;
        padding: 32px !important;
    }
}

@media (max-width: 700px) {
    .site-footer .ppn-footer-stars {
        padding-top: 10px;
        font-size: 12px;
    }

    .site-footer .ppn-footer-inner {
        width: calc(100% - 28px);
        padding: 20px 0 24px;
        gap: 24px 18px;
    }

    .site-footer .ppn-footer-logo {
        width: 225px;
        margin-inline: auto;
    }

    .site-footer .ppn-footer-brand p {
        margin: 9px auto;
        font-size: 13px;
    }

    body .site-footer .ppn-footer-call {
        padding: 27px 20px !important;
        border-radius: 24px !important;
    }

    body .site-footer .ppn-footer-call-title {
        font-size: 25px !important;
    }

    body .site-footer .ppn-footer-phone {
        font-size: 32px !important;
    }

    body .site-footer .ppn-footer-button {
        min-height: 54px;
    }

    .site-footer .ppn-footer-bottom {
        width: calc(100% - 28px);
        padding: 12px 0 15px;
        gap: 7px;
    }
}

@media (max-width: 430px) {
    .site-footer .ppn-footer-inner {
        grid-template-columns: 1fr 1fr;
    }

    .site-footer .ppn-footer-brand,
    .site-footer .ppn-footer-call,
    .site-footer .ppn-footer-column:last-of-type {
        grid-column: 1 / -1 !important;
    }

    .site-footer .ppn-footer-column {
        grid-column: auto;
        align-items: flex-start;
        text-align: left;
    }

    body .site-footer .ppn-footer-call {
        grid-column: 1 / -1 !important;
    }
}

/* =========================================================
   HOME HERO — ZONE TEXTE ELARGIE 2026
   ========================================================= */

body.home .ppn-magic-hero-content {
    width: min(64%, 1020px);
    max-width: none;
    box-sizing: border-box;
    padding-left: clamp(56px, 7vw, 120px);
    padding-right: clamp(28px, 3vw, 48px);
}

body.home .ppn-magic-hero h1 {
    max-width: 760px;
    text-wrap: balance;
}

body.home .ppn-magic-intro {
    max-width: 680px;
    text-wrap: balance;
}

@media (max-width: 1000px) and (min-width: 768px) {
    body.home .ppn-magic-hero-content {
        width: min(84%, 820px);
        max-width: none;
        padding: 72px 36px 96px;
    }

    body.home .ppn-magic-hero h1 {
        max-width: 700px;
        font-size: clamp(58px, 8vw, 78px);
        line-height: .94;
    }

    body.home .ppn-magic-intro {
        max-width: 620px;
    }
}

@media (max-width: 767px) {
    body.home .ppn-magic-hero-content {
        width: 100%;
        max-width: none;
    }
}

/* Supprime l'espace résiduel entre le dernier module et le footer */
body.home .site-footer {
    margin-top: -16px !important;
}

