:root {
    --noir-profond: #0E0E10;
    --rouge-tomate: #972E25;
    --blanc-perl: #f1ece2;
    --blanc-gris: #D6D5CB;
    --blanc: #FFFFFF;
}

@font-face {
    font-family: 'Vermiglione';
    src: url("../fonts/vermiglione-c503f3434fa1323773e5c4a67e5ba508.woff2") format('woff2'),
        url("../fonts/vermiglione-c503f3434fa1323773e5c4a67e5ba508.ttf") format('ttf');
}

@font-face {
    font-family: 'Vermiglione-It';
    src: url("../fonts/vermiglione_it-3af58ff79730b824d98b55767c57c9af.woff2") format('woff2'),
        url('../fonts/vermiglione-it.ttf') format('ttf');
}

.vermig-it {
    font-family: Vermiglione-it;
}

.noir-profond {
    color: var(--noir-profond) !important;
}


.rouge-tomate {
    color: var(--rouge-tomate) !important;
}


.blanc-perl {
    color: var(--blanc-perl) !important;
}


.blanc-gris {
    color: var(--blanc-gris) !important;
}


.blanc {
    color: var(--blanc);
}

.title-l {
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 56px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
}

.title-m {
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 42px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
}

.title-s {
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
}

.title-xs {
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 22px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
    text-transform: uppercase;
}

.body-m {
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    text-align: justify;
}

.body-s {
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

.px-12 {
    padding-left: 120px;
    padding-right: 120px;
}

.py-12 {
    padding-bottom: 120px;
    padding-top: 120px;
}

.px-36 {
    padding-left: 360px;
    padding-right: 360px;
}

.my-12 {
    margin-bottom: 120px;
    margin-top: 120px;
}

.mt-12 {
    margin-top: 120px;
}

.py-6 {
    padding-bottom: 60px;
    padding-top: 60px;
}

.px-6 {
    padding-left: 60px;
    padding-right: 60px;
}

.my-6 {
    margin-bottom: 60px;
    margin-top: 60px;
}

.mt-6 {
    margin-top: 60px;
}

.pl-6 {
    padding-left: 60px;
}


.ml-30 {
    margin-left: 30px;
}

.mr-30 {
    margin-right: 30px;
}

.mb-30 {
    margin-bottom: 30px;
}

.mb-6 {
    margin-bottom: 60px;
}

.mt-30 {
    margin-top: 30px;
}

.pl-0 {
    padding-left: 0;
}

.double-border {
    border: 1px double var(--rouge-tomate);
    padding: 5px;
    height: 100%;
}

.simple-border {
    border: 1px double var(--rouge-tomate);
    height: 100%;
}

.uppercase {
    text-transform: uppercase;
}

.bck-blanc-perl {
    background-color: var(--blanc-perl);
}

.bck-rouge-tomate {
    background-color: var(--rouge-tomate);
}

.btn--primary {
    display: inline-block;
    color: var(--rouge-tomate);
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 12px;
    line-height: 100%;
    font-style: normal;
    font-weight: 700;
    padding: 12px 44px;
    text-decoration: none;
    text-transform: uppercase;
    border: 2px solid var(--rouge-tomate);
    background: inherit;
}


.btn--primary:hover {
    background: var(--rouge-tomate);
    color: var(--blanc-perl);
}

.btn--secondary {
    display: inline-block;
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 12px;
    line-height: 100%;
    font-style: normal;
    font-weight: 700;
    padding: 12px 44px;
    text-decoration: none;
    text-transform: uppercase;
    border: 2px solid var(--rouge-tomate);
    background: var(--rouge-tomate);
    color: var(--blanc-perl);
}

.btn--secondary:hover {
    color: var(--blanc-perl);
}

.border-top-pearl {
    border-top: 1px solid var(--blanc-perl);
}

.border-top-rouge {
    border-top: 1px solid var(--rouge-tomate);
}

.fixed-top {
    position: fixed;
    width: 100%;
    background: white;
    z-index: 1000;
}

/** --------------- hero pages --------- **/
.hero {
    background-size: cover;
    background-position: center;
    padding: 60px 0;
    height: 100vh;
}

.hero-common {
    background-size: cover;
    background-position: center;
    height: 50vh;
}

.hero-creation {
    background:
        linear-gradient(0deg, rgba(151, 46, 37, 0.15) 0%, rgba(151, 46, 37, 0.15) 100%),
        linear-gradient(0deg, rgba(12, 12, 12, 0.50) 0%, rgba(12, 12, 12, 0.50) 100%),
        url("../image/background/pains-d5078aded1a4457c0e9ab2d4465ec016.jpg") lightgray 50% / cover no-repeat;
}

.hero-pain {
    background:
        linear-gradient(0deg, rgba(151, 46, 37, 0.15) 0%, rgba(151, 46, 37, 0.15) 100%),
        linear-gradient(0deg, rgba(12, 12, 12, 0.50) 0%, rgba(12, 12, 12, 0.50) 100%),
        url("../image/creations/creation_pain.jpg") lightgray 50% / cover no-repeat;
}

.hero-viennoiserie {
    background:
        linear-gradient(0deg, rgba(151, 46, 37, 0.15) 0%, rgba(151, 46, 37, 0.15) 100%),
        linear-gradient(0deg, rgba(12, 12, 12, 0.50) 0%, rgba(12, 12, 12, 0.50) 100%),
        url("../image/creations/creation_pain_choco.jpg") lightgray 50% / cover no-repeat;
}

.hero-patisserie {
    background:
        linear-gradient(0deg, rgba(151, 46, 37, 0.15) 0%, rgba(151, 46, 37, 0.15) 100%),
        linear-gradient(0deg, rgba(12, 12, 12, 0.50) 0%, rgba(12, 12, 12, 0.50) 100%),
        url("../image/creations/creation_patisserie-782380126292a27ff684e787223547fc.jpg") lightgray 50% / cover no-repeat;
}

.hero-traiteur {
    background:
        linear-gradient(0deg, rgba(151, 46, 37, 0.15) 0%, rgba(151, 46, 37, 0.15) 100%),
        linear-gradient(0deg, rgba(12, 12, 12, 0.50) 0%, rgba(12, 12, 12, 0.50) 100%),
        url("../image/creations/creation_sandwich-c9f180762b27da6bf929d8c140962841.jpg") lightgray 50% / cover no-repeat;
}

/* Classes pour permettre la surcharge dynamique des images de fond */
.hero-common[style*="background"] {
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

.navbar-brand {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.navbar .nav-item .dropdown-menu {
    top: 67px;
    border-radius: 0;
    position: absolute;
}

.navbar .nav-item .dropdown-menu .dropdown-item:hover {
    background: white;
    color: var(--rouge-tomate) !important;
}

.navbar .nav-item .dropdown-menu .dropdown-item {
    padding: 15px 30px;
    color: var(--blanc);
    font-family: Vermiglione;
    font-size: 12px;
}


.navbar-link-left {
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    padding: 25px 10px;
}

.navbar-social img {
    width: 24px;
}

.hero-content {
    margin-top: 140px;
}

.hero-content .description .title {
    color: #F2E4D8;
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 56px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
    text-transform: uppercase;
}

.hero-content .description {
    margin-top: 5rem;
}

.hero-content .description .sub-title {
    color: #F2E4D8;
    text-align: center;

    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 22px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

main {
    background-color: var(--blanc-perl) !important;
}

.hero-title {
    display: grid;
    place-items: center;
    height: 75%;
}

.sub-hero {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1 0 0;
}

.sub-hero--left {
    display: flex;
    width: 35%;
    padding: 15px 60px;
    justify-content: center;
    align-items: center;
    gap: 15px;

    border-top: 1px solid var(--rouge-tomate);
    border-bottom: 1px solid var(--rouge-tomate);
}

.sub-hero--right {
    display: flex;
    padding: 15px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex: 1 0 0;
    align-self: stretch;

    border-top: 1px solid var(--rouge-tomate);
    border-left: 1px solid var(--rouge-tomate);
    border-bottom: 1px solid var(--rouge-tomate);
}

.sub-hero--left-description {
    color: var(--rouge-tomate);
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 26px;
    font-style: italic;
    font-weight: 300;
    line-height: 110%;
}

.sub-hero--right-description {
    color: var(--noir-profond);
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

.creation .image {
    position: relative;
}

.creation .hover-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

.creation .image:hover .hover-btn {
    opacity: 1;
}

/* ------------- Nos Créations -------------  */

#nosCreations .title {
    color: var(--rouge-tomate);
    text-align: center;

    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 40px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
}

#nosCreations .creation a {
    text-decoration: none;
    width: 80%;
}

#nosCreations .creation .title {
    color: var(--rouge-tomate);
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 22px;
    font-style: normal;
    font-weight: 300;
    line-height: 120%;
    text-transform: uppercase;
}

#nosCreations .creation .image {
    width: 100%;
}

#nosCreations .creation .image img {
    width: 100%;
    height: 340px;
    object-fit: cover;
}


/* ------------- histoire -------------  */
#histoire img {
    max-height: 600px;
    object-fit: cover;
    width: 100%;
}

#histoire .row-histoire {
    padding-left: 120px;
    padding-right: 120px;
}

/* ------------- banner -------------  */
#banner {
    color: white;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
    display: flex;
    height: 450px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#banner .title {
    color: var(--blanc-perl);
    text-align: center;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 42px;
    font-weight: 300;
    line-height: 110%;
}

#banner .description {
    color: #F2E4D8;
    text-align: center;
    max-width: 54%;
    margin: auto;
}

#matierePremiere .matiere-premiere-row .matiere-image {
    width: 100%;
    height: 626px;
    object-fit: cover;
}

#matierePremiere .matiere-premiere-row .matiere-detail {
    color: #0C0C0C;

    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}

/* ------------- article ----------- */
.article {
    margin-bottom: 20px;
}

/* .article img {
    object-fit: cover;
    width: 100%;
    max-height: 230px;
} */

.article .title {
    display: flex;
    align-items: center;
    white-space: nowrap;
    padding-right: 10px;
    overflow: hidden;
}

.article .title-text {
    flex-shrink: 0;
}


.article .title::after {
    content: '';
    flex-grow: 1;
    border-bottom: 2px dotted var(--rouge-tomate);
    margin-left: 20px;
}


.article-description {
    color: #0C0C0C;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
}


/* ------------- Contact Form -------------  */

.contact-section {
    display: flex;
    padding: 120px;
    align-items: flex-start;
    gap: 120px;
    flex: 1 0 0;
    align-self: stretch;
}

.contact-section .hours-days {
    color: var(--rouge-tomate);
    text-align: left;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 18px;
    font-style: italic;
    font-weight: 300;
    line-height: 150%;
    /* 27px */
}

.login_form .input-group, .contact-form .input-group {
    margin-bottom: 10px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea,
.login_form input[type="text"], 
.login_form input[type="password"] {
    width: 100%;
    padding: 8px;
    border: none;
    border-bottom: solid 1px var(--rouge-tomate);
    background: inherit;
}

.login_form label, .contact-form label {
    display: block;
    margin-bottom: 5px;
    font-family: Vermiglione, 'Arial', sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 150%;
    text-transform: uppercase;
}

/* ------------- footer -------------  */
.footer {
    text-align: center;
    background-image: url("../image/background/footer_bck-c45ae083b890228050e965d0a1a4450f.svg");
}

.footer .social-icons {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.footer .footer-links a {
    color: var(--blanc-perl);
    font-family: Vermiglione, "Arial", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    text-decoration: none;
}

.footer .credit {
    color: var(--blanc-perl);
    text-align: center;
    font-family: Vermiglione, "Arial", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%;
}

.footer-description {
    max-width: 40%;
    margin: 60px auto;
}


/* ==================== ANIMATIONS MODERNES ==================== */

/* Animation de base - éléments cachés par défaut */
.animate-on-scroll {
    opacity: 0;
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* Fade in depuis le bas */
.fade-in-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-up.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Fade in depuis la gauche */
.fade-in-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-left.animate {
    opacity: 1;
    transform: translateX(0);
}

/* Fade in depuis la droite */
.fade-in-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-right.animate {
    opacity: 1;
    transform: translateX(0);
}

/* Scale up - zoom léger */
.scale-up {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.scale-up.animate {
    opacity: 1;
    transform: scale(1);
}

/* Fade in simple */
.fade-in {
    opacity: 0;
    transition: opacity 1s ease-out;
}

.fade-in.animate {
    opacity: 1;
}

/* Animation pour les cartes de créations avec délai échelonné */
.creation-card {
    opacity: 0;
    transform: translateY(30px) scale(0.95);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.creation-card.animate {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Délais échelonnés pour les créations */
.creation-card:nth-child(1) { transition-delay: 0.1s; }
.creation-card:nth-child(2) { transition-delay: 0.2s; }
.creation-card:nth-child(3) { transition-delay: 0.3s; }
.creation-card:nth-child(4) { transition-delay: 0.4s; }

/* Animation pour les images avec zoom au hover amélioré */
#histoire img,
#faitMaison img {
    transition: transform 0.6s ease-out;
}

#histoire img:hover,
#faitMaison img:hover {
    transform: scale(1.03);
}

/* Animation pour le titre principal */
#nosCreations .title {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

#nosCreations .title.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Animation pour le bouton */
.action {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out 0.3s, transform 0.8s ease-out 0.3s;
}

.action.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Animation pour le banner avec parallax léger */
#banner {
    transition: opacity 1s ease-out;
}

#banner .title {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease-out 0.2s, transform 1s ease-out 0.2s;
}

#banner .title.animate {
    opacity: 1;
    transform: translateY(0);
}

#banner .description {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease-out 0.4s, transform 1s ease-out 0.4s;
}

#banner .description.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Amélioration des animations hover existantes */
.creation .image {
    overflow: hidden;
}

.creation .image img {
    transition: transform 0.6s ease-out, filter 0.6s ease-out;
}

.creation .image:hover img {
    transform: scale(1.1);
    filter: brightness(0.9);
}

/* Animation pour le logo hero */
.hero-logo img {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.hero-logo img.animate {
    opacity: 1;
    transform: scale(1);
}

/* Animation pour le contenu hero */
.hero-content .description {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease-out 0.3s, transform 1s ease-out 0.3s;
}

.hero-content .description.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Réduction du mouvement pour les appareils avec préférence réduite */
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll,
    .fade-in-up,
    .fade-in-left,
    .fade-in-right,
    .scale-up,
    .fade-in,
    .creation-card,
    #nosCreations .title,
    .action,
    #banner .title,
    #banner .description,
    .hero-logo img,
    .hero-content .description {
        transition: opacity 0.3s ease-out;
        transform: none !important;
    }
    
    #histoire img:hover,
    #faitMaison img:hover {
        transform: none;
    }
}

@media (max-width: 576px) {

    .px-12 {
        padding-left: 60px;
        padding-right: 60px;
    }
    
    .py-12 {
        padding-bottom: 60px;
        padding-top: 60px;
    }
    
    .px-36 {
        padding-left: 120px;
        padding-right: 120pxx;
    }
    
    .my-12 {
        margin-bottom: 60px;
        margin-top: 60px;
    }
    
    .mt-12 {
        margin-top: 60px;
    }
    
    .py-6 {
        padding-bottom: 30px;
        padding-top: 30px;
    }
    
    .px-6 {
        padding-left: 30px;
        padding-right: 30px;
    }
    
    .my-6 {
        margin-bottom: 30px;
        margin-top: 30px;
    }
    
    .mt-6 {
        margin-top: 30px;
    }
    
    .pl-6 {
        padding-left: 30px;
    }
    
    
    .ml-30 {
        margin-left: 15px;
    }
    
    .mr-30 {
        margin-right: 15px;
    }
    
    .mb-30 {
        margin-bottom: 15px;
    }
    
    .mb-6 {
        margin-bottom: 30px;
    }
    
    .mt-30 {
        margin-top: 15px;
    }
    
    .pxs-0 {
        padding: 0;
    }
    

    .mxs-0 {
        margin: 0;
    }
    

    .mbxs-15 {
        margin-bottom: 15px;
    }

    .title-l {
        font-size: 32px;
    }

    .title-m {
        font-size: 28px;
    }

    .title-s {
        font-size: 22px;
    }

    .title-xs {
        font-size: 18px;
    }

    .body-m {
        font-size: 14px;
    }

    .navbar-brand {
        left: 80%;
    }

    .menu-title {
        text-align: center;
        font-family: Vermiglione;
        font-size: 14px;
        font-style: normal;
        font-weight: 500;
        line-height: normal;
        text-transform: uppercase;
        margin-left: 5px;
    }

    .sub-hero {
        flex-direction: column;
    }

    .sub-hero--left {
        width: 100%;
        border-bottom: none;
    }

    .dropdown-toggle::after {
        display: none;
    }

    .hero-logo img {
        width: 60px !important;
    }

    .hero-content .description .title {
        font-size: 32px;
    }

    .hero-content .description .sub-title {
        font-size: 16px;
    }

    #nosCreations .creation .image img {
        max-height: 170px;
    }

    
    #nosCreations .creation .title {
        font-size: 18px;
    }

    #nosCreations .title {
        font-size: 32px;
    }

    #histoire img {
        max-height: 300px;
    }

    #histoire .histoire-text {
        margin-top: 30px;
        padding: 0;
    }

    #faitMaison .row-histoire {
        padding-left: 30px;
        padding-right: 30px;
    }

    #histoire .row-histoire {
        padding-left: 30px;
        padding-right: 30px;
    }

    .flex-column-reverse-xs {
        flex-direction: column-reverse;
    }


    #banner .title {
        font-size: 28px;
    }

    #banner .description {
        max-width: 90%;
        margin: auto;
    }
    
    #matierePremiere .matiere-premiere-row .matiere-image {
        height: 240px;
    }

    
    #matierePremiere .matiere-premiere-row .matiere-detail {
        font-size: 14px;
    }

    .article-description {
        font-size: 14px;
    }

    .contact-section {
        padding: 20px;
        flex-direction: column;
        gap: 30px;
    }
    

    .contact-section .contact-info {
        width: 100%;
    
    }

    .contact-section .contact-form {
        width: 100%;
    }
    
    #nosCreationsMenu::after {
        display: inline-block;
        margin-left: 0.5rem;
        vertical-align: 0.255em;
        content: "";
        border-top: 0.3em solid;
        border-right: 0.3em solid transparent;
        border-bottom: 0;
        border-left: 0.3em solid transparent;
    }

   .dropdown-menu .navbar-nav {
        flex-direction: row;
        gap: 25px;
        justify-content: center;
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .navbar .nav-item .dropdown-menu {
        top: 47px;
        border-radius: 0;
        position: absolute;
        width: 100vw;
        left: -12px ;
        text-align: center;
    }
    
    #contactNav .tel-menu .dropdown-item:focus {
        background-color: var(--rouge-tomate);
        color: var(--blanc) !important;
    }

    .sub-hero--right {
        border-left: none;
    }
    
    .articles-title span {
        font-size: 12px;
    }

    
    .footer-description {
        max-width: 100%;
        margin: 30px 30px;
    }

    
}