:root{

    /* Layout */

    --ebook-container:1200px;

    /* Espacements */

    --ebook-section-spacing:80px;

    --ebook-section-spacing-mobile:56px;

    --ebook-content-spacing:24px;

    /* Rayons */

    --ebook-radius:24px;

}

/* =====================================
GLOBAL
===================================== */

:root {

    --cream: #f5e9da;
    --plum: #3b1e3f;

}

body {

    margin: 0;
    overflow-x: hidden;
		font-family: "Lato", sans-serif;

}


/* =====================================
FULLSCREEN HOMEPAGE
===================================== */

.full-screen {

    display:flex;

    flex-direction:column;

    justify-content:center;

    min-height:100dvh !important;

}

/* =====================================
ARCHIVES / SEARCH / TAGS
===================================== */

body.archive .site-main,
body.search .site-main,
body.tag .site-main {

    max-width: 1400px;

    margin: auto;

    padding: 60px 30px;

}


/* grille recettes */
body.archive .page-content,
body.search .page-content,
body.tag .page-content {

    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(300px, 1fr)
        );

    gap: 30px;

}


/* =====================================
HEADER RECETTES
===================================== */

.recipes-toolbar {

    width: 100%;

    max-width: 1400px;

    margin: 0 auto 70px;

    padding:
        30px
        20px;

    box-sizing: border-box;

    position: relative;

    z-index: 20;

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

    backdrop-filter: blur(12px);

    border-radius: 32px;

}


/* titre */
.recipes-toolbar::before {

    content: "Rechercher une recette";

    display: block;

    text-align: center;

    font-size: 2rem;

    font-weight: 600;

    color: var(--plum);

    margin-bottom: 24px;

}


/* form */
.recipes-toolbar form {

    width: 100%;

    max-width: 900px;

    margin: auto;

    display: flex;

    gap: 14px;

}


/* input */
.recipes-toolbar input[type="search"] {

    flex: 1;

    height: 58px;

    border: none;

    border-radius: 999px;

    padding: 0 24px;

    font-size: 1rem;

    background: white;

    color: var(--plum);

    box-shadow:
        0 8px 20px rgba(0,0,0,.05);

}


/* bouton */
.recipes-toolbar button,
.recipes-toolbar input[type="submit"] {

    height: 58px;

    padding: 0 28px;

    border: none;

    border-radius: 999px;

    background: var(--plum);

    color: var(--cream);

    cursor: pointer;

    font-weight: 600;

    transition:
        transform .2s ease,
        opacity .2s ease;

}


/* hover bouton */
.recipes-toolbar button:hover,
.recipes-toolbar input[type="submit"]:hover {

    transform: translateY(-2px);

    opacity: .92;

}


/* =====================================
FILTRES RECETTES
===================================== */

.recipe-filters {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 14px;

    margin-top: 28px;

}


/* boutons filtres */
.recipe-filter {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    width: fit-content;

    min-height: 46px;

    padding: 0 18px;

    border-radius: 999px;

    background:
        rgba(59,30,63,.08);

    color: var(--plum);

    text-decoration: none;

    font-size: .95rem;

    font-weight: 500;

    transition:
        background .25s ease,
        color .25s ease,
        transform .2s ease;

}


/* hover */
.recipe-filter:hover {

    background: var(--plum);

    color: var(--cream);

    transform: translateY(-2px);

}


/* actif */
.recipe-filter.active,
.all-recipes-filter.active-all {

    background: var(--plum);

    color: var(--cream);

    cursor: default;

    pointer-events: none;

}


/* bouton toutes */
.all-recipes-filter {

    background:
        rgba(59,30,63,.15);

}


/* =====================================
CARTES RECETTES
===================================== */

body.archive article.post,
body.search article.post,
body.tag article.post {

    display: flex;

    flex-direction: column;

    background: var(--cream);

    border-radius: 24px;

    overflow: hidden;

    cursor: pointer;

    max-width: 420px;

    width: 100%;

    margin: auto;

    box-shadow:
        0 8px 20px rgba(0,0,0,.06);

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

}


/* lien carte */
.recipe-card-link {

    display: flex;

    flex-direction: column;

    height: 100%;

    color: inherit;

    text-decoration: none;

}


/* hover */
body.archive article.post:hover,
body.search article.post:hover,
body.tag article.post:hover {

    transform:
        translateY(-6px)
        scale(1.02);

    box-shadow:
        0 16px 32px rgba(0,0,0,.10);

}


/* =====================================
TITRES ARCHIVES
===================================== */

body.archive .entry-title,
body.search .entry-title,
body.tag .entry-title {

    margin: 0;

    padding:
        14px
        20px
        18px;

    text-align: center;

    font-size: 1.1rem;

    line-height: 1.35;

    color: var(--plum);

}


/* =====================================
IMAGES ARCHIVES
===================================== */

.recipe-thumbnail {

    position: relative;

    width: 100%;

    overflow: hidden;

}


/* images */
body.archive article.post img,
body.search article.post img,
body.tag article.post img {

    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;

    display: block;

    transition: transform .4s ease;

}


/* hover image */
body.archive article.post:hover img,
body.search article.post:hover img,
body.tag article.post:hover img {

    transform: scale(1.05);

}


/* =====================================
BADGES
===================================== */

.recipe-badges {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 8px;

    padding:
        16px
        16px
        0;

}


.recipe-badge {

    background:
        rgba(59,30,63,.92);

    color: var(--cream);

    padding: 7px 12px;

    border-radius: 999px;

    font-size: .75rem;

    font-weight: 600;

    line-height: 1;

}
/* badges totalement passifs */

.recipe-badge,
.recipe-badge * {

    pointer-events: none !important;

    touch-action: none;

}
/* image toujours prioritaire */

.recipe-thumbnail img {

    position: relative;

    z-index: 1;

}

/* =====================================
PAGES RECETTES
===================================== */

.wprm-recipe-container {

    width: 100% !important;

    max-width: 1400px !important;

    margin: 80px auto !important;

    padding: 0 40px;

    box-sizing: border-box;

}


/* carte recette */
.wprm-recipe {

    max-width: 820px;

    margin: auto;

    background: var(--cream);

    border-radius: 32px;

    overflow: hidden;


}


/* =====================================
TITRES RECETTES
===================================== */

.wprm-recipe-name {

    color: var(--plum);

    font-size:
        clamp(2rem, 4vw, 3.5rem);

    line-height: 1.1;

    text-align: center;

    margin-bottom: 24px;

}


/* =====================================
TEXTES RECETTES
===================================== */

.wprm-recipe p,
.wprm-recipe li {

    color: var(--plum);

    line-height: 1.7;

}


/* =====================================
IMAGE HERO RECETTE
===================================== */

.wprm-recipe-image img {

    width: 100%;

    aspect-ratio: 4 / 5;

    object-fit: cover;

    display: block;

}


/* =====================================
PILL PORTIONS
===================================== */

.wprm-recipe-meta-container-pill {

    min-height: 52px;

    background:
        rgba(59,30,63,.92);

    border-radius: 999px;

    padding: 10px 14px;

    display: inline-flex;

    align-items: center;

    gap: 10px;

}


/* texte portions */
.wprm-recipe-servings,
.wprm-recipe-servings * {

    font-weight: 600;

}


/* boutons portions */
.wprm-recipe-servings button {

    width: 32px;

    height: 32px;

    padding: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    line-height: 1;

    border: none !important;

    border-radius: 999px !important;

    background: var(--plum) !important;

    color: var(--cream) !important;

}


/* =====================================
INGREDIENTS
===================================== */

.wprm-recipe-ingredients li {

    padding: 10px 0;

    border-bottom:
        1px solid rgba(59,30,63,.08);

}


/* =====================================
ETAPES
===================================== */
.wprm-recipe-instruction {

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

    padding: 24px 28px;

    border-radius: 20px;

    margin-bottom: 20px;

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

}


/* =====================================
VIDEOS
===================================== */

.wprm-recipe-video {

    display: flex;

    justify-content: center;

    margin: 40px 0;

}

.wprm-recipe-video iframe {

    width: 100%;

    max-width: 720px;

    aspect-ratio: 16 / 9;

    border: none;

    border-radius: 24px;

    display: block;

}


/* =====================================
ADS
===================================== */

.recipe-ad {

    width: 100%;

    max-width: 820px;

    margin: 60px auto;

    padding: 40px;

    border-radius: 24px;

    background:
        rgba(59,30,63,.05);

    text-align: center;

    color: var(--plum);

    box-sizing: border-box;

}

/* =====================================
RECETTES SIMILAIRES
===================================== */

.related-recipes {

    width: 100%;
    max-width: 1400px;
    margin: 120px auto;
    padding: 0 40px;
    box-sizing: border-box;

}

.related-recipes h2 {

    text-align: center;
    color: var(--plum);
    font-size: 2rem;
    margin-bottom: 50px;

}

.related-grid {

    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(300px, 420px)
        );

    justify-content: center;

    gap: 30px;

}

/* cartes identiques aux archives */

.related-grid article.post {

    display: flex;
    flex-direction: column;

    background: var(--cream);

    border-radius: 24px;

    overflow: hidden;

    width: 100%;

    box-shadow:
        0 8px 20px rgba(0,0,0,.06);

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

}

.related-grid article.post:hover {

    transform:
        translateY(-6px)
        scale(1.02);

    box-shadow:
        0 16px 32px rgba(0,0,0,.10);

}

.related-grid .recipe-card-link {

    display: flex;
    flex-direction: column;
    height: 100%;

    color: inherit;
    text-decoration: none;

}

.related-grid .recipe-thumbnail {

    position: relative;
    overflow: hidden;

}

.related-grid .recipe-thumbnail img {

    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;

    display: block;

    transition: transform .4s ease;

}

.related-grid article.post:hover .recipe-thumbnail img {

    transform: scale(1.05);

}

.related-grid .recipe-badges {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 8px;

    padding:
        16px
        16px
        0;

}

.related-grid .entry-title {

    margin: 0;

    padding:
        14px
        20px
        18px;

    text-align: center;

    font-size: 1.1rem;

    line-height: 1.35;

    color: var(--plum);

}

@media (max-width: 900px) {

    .related-grid {

        grid-template-columns: 1fr;

        max-width: 420px;

        margin: auto;

    }

}

.related-recipes > h2 {

    text-align: center;
    color: var(--plum);

}

.related-recipes > h2::after {

    content: "";

    display: block;

    width: 80px;

    height: 3px;

    margin: 14px auto 0;

    background: var(--plum);

    border-radius: 999px;

}

/* =====================================
RESPONSIVE
===================================== */

@media (max-width: 900px) {

    .related-grid {

        flex-direction: column;

        align-items: center;

    }

}


@media (max-width: 767px) {

    body.archive .site-main,
    body.search .site-main,
    body.tag .site-main {

        padding: 30px 20px;

    }

    body.archive .page-content,
    body.search .page-content,
    body.tag .page-content {

        gap: 20px;

    }

    body.archive .entry-title,
    body.search .entry-title,
    body.tag .entry-title {

        font-size: 1rem;

    }

    .wprm-recipe-container {

        padding: 0 20px;

    }

    .related-recipes {

        padding: 0 20px;

    }

    .recipes-toolbar {

        margin-bottom: 40px;

        border-radius: 24px;

    }

    .recipes-toolbar form {

        flex-direction: column;

    }

    .recipes-toolbar button,
    .recipes-toolbar input[type="submit"] {

        width: 100%;

    }

}
/* =====================================
TITRES DE SECTIONS WPRM
===================================== */

.wprm-recipe-header {

    color: var(--plum);

    font-size: 1.6rem;

    font-weight: 700;

    letter-spacing: .08em;

    text-transform: uppercase;

    margin-bottom: 30px;

}

.wprm-recipe-header:after {

    content: "";

    display: block;

    width: 80px;

    height: 3px;

    margin: 14px auto 0;

    border-radius: 999px;

    background: var(--plum);

}
/* Neutralise les décorations natives WPRM */

.wprm-header-decoration-spacer,
.wprm-header-decoration-line {

    display: block !important;

}

.wprm-header-decoration-spacer::before,
.wprm-header-decoration-spacer::after,
.wprm-header-decoration-line::before {

    display: none !important;

}
/* Corrige les headers WPRM avec actions */

.wprm-recipe-header.wprm-header-has-actions {

    flex-direction: column !important;

    align-items: center !important;

}
/* Métadonnées du Hero */

.meadow-header-meta {

    display: flex !important;

    justify-content: center !important;

    gap: 80px !important;

}
/* Navigation recettes mobile */

@media (max-width: 768px) {

    .wprm-recipe-jump-to-section-container {

        flex-wrap: wrap !important;

        overflow-x: visible !important;

        justify-content: center !important;

        mask-image: none !important;

    }

}
@media (max-width: 768px) {

    .wprm-recipe-jump-to-section-container {

        margin-top: -20px;

    }

}
@media (max-width: 768px) {

    .wprm-recipe-jump-to-section {

        padding: 12px 18px !important;

        min-height: auto !important;

    }

}
/* ==========================================================
   WOOCOMMERCE - EBOOKS
========================================================== */

/* ---------- Grille ---------- */

.woocommerce ul.products{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:30px;

    padding:0;

    margin:60px 0;

    list-style:none;

}

.woocommerce ul.products li.product{

    float:none!important;

    width:auto!important;

    margin:0!important;

}

/* ---------- Carte ---------- */

.ebook-card{

    display:flex;

    flex-direction:column;

    height:100%;

    background:var(--cream);

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 8px 20px rgba(0,0,0,.06);

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

}

.ebook-card:hover{

    transform:translateY(-6px);

    box-shadow:0 16px 32px rgba(0,0,0,.10);

}

/* ---------- Image ---------- */

.ebook-card .recipe-thumbnail{

    overflow:hidden;

}

.ebook-card .recipe-thumbnail img{

    width:100%;

    aspect-ratio:1 / 1.4;

    object-fit:cover;

    display:block;

    transition:transform .4s ease;

}

.ebook-card:hover img{

    transform:scale(1.05);

}

/* ---------- Titre ---------- */

.ebook-card .entry-title{

    text-align:center;

    color:var(--plum);

    padding:20px 24px 10px;

    margin:0;

}

/* ---------- Prix ---------- */

.ebook-price{

    text-align:center;

    margin-top:auto;

    padding:0 20px 30px;

}

.ebook-price del{

    display:block;

    opacity:.45;

    margin-bottom:8px;

}

.ebook-price ins{

    text-decoration:none;

    color:var(--plum);

    font-size:2rem;

    font-weight:700;

}
/* ==========================================
   PAGE EBOOKS
========================================== */

.ebooks-archive{

    max-width:1200px;

    margin:80px auto;

    padding:0 30px;

}

.ebooks-header{

    text-align:center;

    margin-bottom:70px;

}

.ebooks-header h1{

    font-size:3rem;

    color:var(--plum);

    margin-bottom:20px;

}

.ebooks-header p{

    max-width:700px;

    margin:auto;

    font-size:1.15rem;

    line-height:1.8;

}
.ebook-badge{

    display:inline-flex;

    align-self:center;

    margin-top:18px;

    padding:6px 16px;

    border-radius:999px;

    background:#4B274C;

    color:#fff;

    font-size:.75rem;

    font-weight:700;

    letter-spacing:.04em;

}

.ebook-button{

    margin:28px auto 30px;

    padding:14px 28px;

    background:#F28C1B;

    color:#fff;

    border-radius:999px;

    font-weight:700;

    transition:.25s;

}

.ebook-card:hover .ebook-button{

    background:#df7c12;

}
/* En-tête WooCommerce */

.woocommerce-result-count,
.woocommerce-ordering,
.woocommerce-products-header,
.page-title {

    display:none;

}
ul.products{

    display:grid !important;

    grid-template-columns:repeat(auto-fit,minmax(320px,320px)) !important;

    justify-content:center;

    gap:40px;

    padding:0;

    margin:50px auto;

    list-style:none;

}
ul.products::before,
ul.products::after{

    display:none;

}
ul.products{

    list-style:none;

}
ul.products li.product{

    width:auto !important;

    max-width:none !important;

    margin:0 !important;

    float:none !important;

}
.ebooks-page{

    max-width:1200px;
    margin:0 auto;
    padding:80px 20px;

}

.ebooks-hero{

    text-align:center;
    margin-bottom:60px;

}

.ebooks-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:40px;

}

.ebook-item{

    list-style:none;
    display:flex;
    justify-content:center;

}
/* ==========================================
   EBOOK HERO
========================================== */

.ebook-hero{

    display:grid;

    grid-template-columns:minmax(340px,420px) 1fr;

    gap:56px;

    align-items:center;

    max-width:1200px;

    margin:56px auto;

    padding:0 40px;

}

.ebook-content{

    display:flex;

    flex-direction:column;

    align-items:flex-start;

    gap:18px;

}

.ebook-content .ebook-price{

    text-align:left;

    padding:0;

    margin:10px 0;

}

.ebook-content .ebook-price ins{

     font-size:3.4rem;

    font-weight:800;

    line-height:1;

}
.ebook-content .ebook-price del{

    font-size:1rem;
    opacity:.45;

}

.ebook-title{

    margin:20px 0;

    color:var(--plum);

    font-size:clamp(2.2rem,4vw,3.5rem);

    line-height:1.05;

}

.ebook-cover img{

    width:100%;

    display:block;

    border-radius:24px;
    
    box-shadow:0 18px 45px rgba(0,0,0,.12);

}
.ebook-cover img{

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}

@media (hover:hover){

    .ebook-cover:hover img{

        transform:translateY(-6px) scale(1.015);

        box-shadow:
            0 28px 60px rgba(0,0,0,.16);

    }

}

.ebook-content h1{

    margin-top:0;

}

.ebook-description{

    margin:0 0 30px;

    font-size:1.1rem;

    line-height:1.8;

    color:var(--plum);

    max-width:700px;

}

/* ==========================================================
   EBOOK FEATURES
========================================================== */

.ebook-features{

    display:flex;

    flex-direction:column;

    gap:14px;

    margin:22px 0 18px;

}

.ebook-feature{

    display:flex;

    align-items:center;

    gap:16px;

    padding:14px 0;

    border-bottom:1px solid rgba(59,30,63,.08);

}
.ebook-feature span{

    color:var(--plum);

    font-weight:500;

}

.ebook-feature-icon{

    width:22px;

    height:22px;

    flex-shrink:0;

    object-fit:contain;

}



/* ==========================================
EBOOK CARD
========================================== */



/* ==========================================
EBOOK FAQ
========================================== */
.ebook-faq h3{

    color:var(--plum);

    font-size:1.5rem;

    margin:42px 0 14px;

    line-height:1.25;

}

.ebook-faq h3:first-child{

    margin-top:0;

}
.ebook-faq p{

    margin:0;

    line-height:1.9;

    color:var(--plum);

    opacity:.9;

    max-width:75ch;

}
.ebook-faq{

    max-width:900px;

    margin:0 auto;

}
.ebook-faq h3{

    padding-top:28px;

    border-top:1px solid rgba(59,30,63,.08);

}

.ebook-faq h3:first-child{

    border-top:none;

    padding-top:0;

}
.ebook-faq{

    padding-bottom:40px;

}

/* ==========================================================
   EBOOK CTA
========================================================== */

.ebook-content form.cart{

    display:flex;

    gap:16px;

    align-items:center;

    margin-top:8px;

}

.ebook-content .quantity input{

    width:70px;

    height:56px;

    border:2px solid rgba(59,30,63,.15);

    border-radius:16px;

    text-align:center;

    font-size:1rem;

}

.ebook-content .single_add_to_cart_button{

    height:60px;

    padding:0 38px;

    border:none;

    border-radius:999px;

    background:#F28C1B;

    color:#fff;

    font-size:1.05rem;

    font-weight:700;

    cursor:pointer;

    box-shadow:0 12px 30px rgba(242,140,27,.25);

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

}

.ebook-content .single_add_to_cart_button:hover{

    background:#df7c12;

    transform:translateY(-3px);

    box-shadow:0 18px 38px rgba(242,140,27,.30);

}

.ebook-trust{

    display:flex;

    flex-direction:column;

    gap:12px;

    margin-top:18px;
    
    padding-top:18px;

    color:var(--plum);

    font-size:.95rem;

    opacity:.8;
    
    border-top:1px solid rgba(59,30,63,.08);

}
/* ==========================================================
   WHY SECTION
========================================================== */

.ebook-why{

    max-width:1200px;

    margin:120px auto;

    padding:0 30px;

}

.ebook-section-heading{

    text-align:center;

    max-width:720px;

    margin:0 auto 60px;

}

.ebook-section-heading h2{

    font-size:clamp(2rem,4vw,3rem);

    color:var(--plum);

    margin-bottom:20px;

}

.ebook-section-heading p{

    font-size:1.1rem;

    line-height:1.8;

    color:var(--plum);

}

.ebook-why-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;
    
    align-items:stretch;

}

.ebook-why-card{

    background:var(--cream);

    border-radius:24px;

    padding:36px;

    box-shadow:
        0 16px 40px rgba(0,0,0,.05);

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

    flex-direction:column;

}
@media (hover:hover){

    .ebook-why-card:hover{

        transform:translateY(-6px);

        box-shadow:
            0 22px 50px rgba(0,0,0,.08);

    }

}

.ebook-why-card h3{

    color:var(--plum);

    margin-top:0;

    margin-bottom:22px;

    line-height:1.25;

}

.ebook-why-card p{

    margin:0;

    line-height:1.9;

    opacity:.9;

}


@media (max-width:900px){

    .ebook-hero{

        grid-template-columns:1fr;

        gap:40px;

        text-align:center;

    }

    .ebook-content{

        align-items:center;

    }

}
/* ===========================
   AUTHOR
=========================== */

.ebook-author-layout{
    display:flex;
    align-items:center;
    gap:4rem;
    margin-top:4rem;
}

.ebook-author-photo{
    flex:0 0 340px;
}

.ebook-author-photo img{

    display:block;

    width:100%;

    border-radius:24px;

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

    transition:
        transform .3s ease,
        box-shadow .3s ease;

}
@media (hover:hover){

    .ebook-author-layout:hover .ebook-author-photo img{

        transform:translateY(-4px);

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

    }

}

.ebook-author-content{
    flex:1;
}

.ebook-author-content h3{

    color:var(--plum);

    font-size:2rem;

    margin-bottom:.35rem;

}

.ebook-author-job{
    font-weight:700;

letter-spacing:.03em;

opacity:.75;
    margin-bottom:1.5rem;
}

.ebook-author-description{
    line-height:1.8;
}

.ebook-author-socials{
    display:flex;
    gap:1rem;
    margin-top:2rem;
    flex-wrap:wrap;
}

.ebook-author-socials a{

    color:#E35A72;

    text-decoration:none;

    font-weight:600;

    transition:
        color .2s ease,
        transform .2s ease;

}

.ebook-author-socials a:hover{

    color:var(--plum);

    transform:translateY(-2px);

}
.ebook-section{

    max-width:1200px;

    margin:0 auto;

    padding:80px 40px;

}
