/*
Theme Name: Oh My Food
Description: Child theme for twentytwentyone. You can now safely customize it and not risk losing your customizations.
Author: Eric - Oh My Food
Author URI: https://oh-my-food.fr
Template: twentytwentyone
Version: 1.0

/* =====================
    CHARTE
===================== */
:root {
    --bordeaux: #7A1E2C;
    --noir: #1A1A1A;
    --beige: #F5F3EF;
    --dore: #C8A96A;
    --gris-fonce: #333333;
    --gris-clair: #E5E5E5;
}

/* =====================
  / BASE
===================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Open Sans', sans-serif;
    color: var(--gris-fonce);
}

h1, h2, h3 {
    font-family: 'Playfair Display', serif;
    color: var(--noir);
}

/* =====================
   CENTRAGE GLOBAL
===================== */
.container {
    max-width: 1200px; /* largeur max du site */
    margin: 0 auto; /* centre horizontalement */
    padding: 0 20px; /* marges gauche / droite */
}

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

.header {
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    z-index: 50;
}
/* Ajustements du Header */
.header-container {
    display: flex;
    justify-content: space-between; /* Aligne le logo à gauche et le menu à droite */
    align-items: flex-start;        /* Aligne les éléments vers le haut */
    padding-top: 10px;              /* Ajuste la distance avec le haut de l'écran */
    padding-left: 20px;             /* Ajuste la distance avec le bord gauche */
}

.logo a {
    font-size: 60px;
    font-weight: bold;
    text-decoration: none;
    letter-spacing: 1px;
     margin-top: -10px;
     margin-left: 0;    /* Assure qu'il n'y a pas de marge à gauche */
}

/* Ajustements de la taille du Logo */
.logo img {
    width: 150px;    /* Changer la valeur pour la taille */
    height: auto;    /* Garde les proportions de l'image */
    display: block;  /* Enlève les espaces inutiles sous l'image */
}

/* NAVIGATION */

.nav {
    margin-left: auto;
}

.nav ul {
    display: flex;
    gap: 30px;
    list-style: none;
}

.nav a {
    color: white;
    text-decoration: none;
    font-size: 14px;
    text-transform: uppercase;
    transition: 0.3s;
}

.nav a:hover {
    opacity: 0.7;
}

/* =====================
   HERO (image principale)
===================== */

.hero {
    position: relative;
    height: 500px;
    background: url("http://ohmyfood.local/wp-content/uploads/2026/04/RESTO-LUXE.png") center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-content {
    position: relative;
    text-align: center;
    color: white;
}

.hero-content h1 {
    font-size: 34px;
    font-weight: 30;
    margin-bottom: 15px;
}

/* Overlay sombre */
.overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4);
}

/* LIGNE DORÉE (GLOBAL)*/
.gold-line {
    display: block;
    height: 1px;
    margin: 15px auto;
    background: var(--dore);
}

/* Variante centrée (GLOBAL)*/
.gold-line.small {
    width: 120px;
}

/* INTRO */
.intro {
    text-align: center;
    padding: 60px 20px;
}

.intro p {
    margin: 25px auto;
    max-width: 600px;
    font-size: 14px;
    
}
.intro .gold-line {
    display: block;
    width: 450px;
    height: 1px;
    margin: 15px auto 0; /* 👉 centrage horizontal */
    background: var(--dore);
}

/* BOUTON */
.btn {
    display: inline-block;
    padding: 12px 28px;
    background: var(--bordeaux);
    color: white;
    text-decoration: none;
    letter-spacing: 1px;
    margin-top: 10px;
}

/* TITRE SECTION */
.section-title {
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center; /* optionnel */
    margin: 40px 0;
}

.section-title::before,
.section-title::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--dore);
}

/* RESTAURANTS */

.restaurants {
    padding: 60px 10%;
}

.cards {
    display: flex;
    justify-content: space-between;
    margin-top: 40px;
    gap: 30px;
}
.card .gold-line {
    width: 100px;
    margin: 10px auto 15px;
    display: block;
}

.card {
    text-align: center;
    width: 100%;
}

.card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}


/* ================= ABOUT PAGE A PROPOS ================= */

/* HERO */
.about-page .hero-about {
    position: relative;
    height: 450px;
    background: url("http://ohmyfood.local/wp-content/uploads/2026/04/image-scaled.png") center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Overlay sombre */
.about-page .overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4);
}

/* Contenu centré dans le hero */
.about-page .hero-content {
    position: relative;
    text-align: center;
    color: white;
    max-width: 700px;
}

/* Titre avec lignes à gauche/droite */
.about-page .title-line {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

/* Titre principal */
.about-page .title-line h1 {
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 1px;
}

/* Lignes autour du titre */
.about-page .title-line span {
    width: 120px;
    height: 1px;
    background: var(--dore);
}

/* Texte sous le titre */
.about-page .hero-content p {
    margin-top: 20px;
    font-size: 16px;
    opacity: 0.9;
}

/*  CONTENU */

.about-page .about-container {
    display: flex;
    justify-content: space-between;
    padding: 40px 5% 40px 3%; /* moins d'espace à gauche */
    gap: 30px;
    
}

/* Conteneur décalé pour la ligne et gastronomique */
.gastronomique-row {
    display: flex;
    align-items: flex-start; /* Aligne la ligne sur le haut du texte */
    gap: 15px;               /* Espace entre la ligne et le mot gastronomiquee */
    margin-left: 50px;       /* Crée le décalage (l'escalier) */
    margin-top: 5px;
}

/* La ligne dorée à gauche de gastronomique */
.gold-line-side {
    width: 60px;             /* Longueur de la ligne */
    height: 2px;             /* Épaisseur */
    background-color: var(--dore);
    margin-top: 15px;        /* Ajustez cette valeur pour que la ligne soit à la hauteur désirée par rapport aux lettres */
}

.title-gastronomique {
    font-size: 35px; /* adapte à la taille de "Notre signature" */
    margin: 0; 
    margin-bottom: 20px;

}

/* Colonne gauche (texte) */
.about-page .about-left {
    width: 55%;
}

/* Colonne droite (image) */
.about-page .about-right {
    width: 60%;
    display: flex;
    align-items: center;   /* centre verticalement l’image */
    justify-content: center; /* centre horizontalement */
}

/* Texte */
.text {
    font-size: 14px;
    line-height: 1.8;
   
}

/*  TITRES AVEC LIGNE */
.line-title {
    font-size: 18px;
    margin: 40px 0 15px;
    position: relative;
}

/* Ligne à droite du titre */
.line-title::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 330px; /* distance entre texte et ligne */
    width: 220px; /* longueur de la ligne */
    height: 1px;
    background: var(--dore);
}


/*    BOUTON */
.btn-about {
    display: inline-block;
    margin-top: 30px;
    padding: 12px 25px;
    background: var(--bordeaux);
    color: white;
    text-decoration: none;
}

/* ================= ABOUT RESTAURANT ================= */

.restaurant-page {
    max-width: 1200px;   /* largeur  */
    margin: 0 auto;      /* centre */
    padding: 0 20px;     /* marge gauche/droite */
}

/* HERO */
.hero-restaurant {
    height: 350px;
    background: url('http://ohmyfood.local/wp-content/uploads/2026/04/banniere.jpg') center/cover no-repeat;
}

/* TITRE PRINCIPAL LE GOURMET PRESTIGE */

.title-block {
    margin: 40px 0;
}

/* Premier titre à gauche */
.title-top {
    font-size: 32px;
    margin: 0;
}

/* Conteneur décalé pour la ligne et Prestige */
.prestige-row {
    display: flex;
    align-items: flex-start; /* Aligne la ligne sur le haut du texte */
    gap: 15px;               /* Espace entre la ligne et le mot Prestige */
    margin-left: 50px;       /* Crée le décalage (l'escalier) */
    margin-top: 5px;
}

/* La ligne dorée à gauche de Prestige */
.gold-line-side {
    width: 60px;             /* Longueur de la ligne */
    height: 2px;             /* Épaisseur */
    background-color: var(--dore);
    margin-top: 15px;        /* Ajustez cette valeur pour que la ligne soit à la hauteur désirée par rapport aux lettres */
}

.title-prestige {
    font-size: 32px;
    margin: 0;
    
}

/* GRID */
.content-grid {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

/* TEXTE */
.text-content {
    flex: 2;
}

.text-content p {
    line-height: 1.7;
    margin-bottom: 20px;
}

.title-line {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 25px 0 10px; /* espace au-dessus et en dessous */
}

.text-content h3 {
    margin: 0; /* 🔥 supprime le décalage vertical */
    font-size: 18px;
}

.gold-line {
    width: 600px;
    height: 1px;
    background-color: var(--dore);
}

/* IMAGE */
.image-chef img {
    width: 300px;
    height: auto;
}

/* FORMULAIRE */

.reservation-form {
    display: flex;
    gap: 40px;
    max-width: 900px;

}.form-left {
    flex: 5;
}

/* 1. L'ensemble du formulaire encadré en doré */
.reservation-container {
    max-width: 1200px;
    margin: 40px auto;
    padding: 30px;
    border: 3px solid var(--dore);
    
}

/* Champs */
.reservation-form input,
.reservation-form select {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--bordeaux);
    margin-top: 5px;
    margin-bottom: 15px;
    font-size: 14px;
}

/* Labels */
.reservation-form label {
    display: block;
    font-weight: 500;
    color: var(--bordeaux);
}

/* Radio buttons */
.radio-group {
    display: flex;
    gap: 40px;
    margin: 10px 0 20px;
    
}

/*  Le bouton Bordeaux */
.reservation-form input[type="submit"] {
    background-color: var(--bordeaux);
    color: white;
    padding: 12px 30px;
    border: none;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    transition: 0.3s;
}

.reservation-form input[type="submit"]:hover {
    background-color: var(--bordeaux);
}

.reservation-container h2 {
    font-size: 18px;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.form-left h2 {
    font-size: 16px;
    margin-bottom: 20px;
}

form input {
    display: block;
    margin-bottom: 10px;
    padding: 8px;
    border: 1px solid var(--bordeaux);
}

/*Réduire l’espace entre les lignes du formulaire*/
.wpcf7-form .row-form {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: x;
    gap: 10px;
}

/*Réduire la hauteur des champs*/
.reservation-form input,
.reservation-form select {
    padding: 5px 8px;   /* avant 10px */
    margin-bottom: 6px; /* avant 15px */
    font-size: 13px;
}

/* IMAGE DANS LE FORMULAIRE */
.form-right img {
    width: 400px;
}

/* Rendre le bouton plus petit */
.submit-row input {
    padding: 8px 20px;
    font-size: 0.9rem;
}

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

/* LIGNE */
.footer-line {
    width: 150%;
    height: 1px;
    background: var(--dore);
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 30px;
}


/* CONTAINER */
.footer-container {
    width: 70%;
    margin: auto;
    display: flex;
    display: flex;
    justify-content: space-between;
}

/* COLONNES */
.footer-col {
    flex: 1;
}

/* ALIGNEMENTS */
.footer-col.left {
    text-align: left;
}

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

.footer-col.right {
    text-align: right;
}

/* SOCIALS */

.socials i {
    margin: 10px;
    cursor: pointer;

}
.social-icons {
    display: flex;
    align-items: center;
    justify-content: center; /* ou flex-start selon ton design */
    gap: 10px;
}

.social-icons a {
    display: flex;
    align-items: center;
    justify-content: center;
}

.social-icons i {
    font-size: 14px;
    line-height: 1;
}

/* =====================
   NEWSLETTER
  ===================== */
  
/* conteneur global */
.footer-col.right {
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* aligne tout à droite */
}

/* ligne newsletter */
.footer-col.right .newsletter-row {
    display: flex;
    justify-content: flex-end;
    width: 100%; 
    text-align: right;

}

/* IMPORTANT : empêche le <p> de prendre toute la largeur */
.footer-col.right .newsletter-row p {
    display: inline-block;
    margin: 0;
    
}

/* empêche le wrapper CF7 de casser l'alignement */
.footer-col.right .wpcf7-form-control-wrap {
    display: inline-block;
}

/* aligne proprement input + bouton */
.footer-col.right .newsletter-row input {
    margin: 0;
    vertical-align: middle;
}

/* champ email */
.footer-col.right input[type="email"] {
    width: 140px;
    height: 25px;
    padding: 0 8px;
    border: 1px solid var(--gris-fonce);
    border-right: none;
    box-sizing: border-box;
}

/* bouton */
.footer-col.right input[type="submit"] {
    height: 25px;
    padding: 0 10px;
    background: var(--bordeaux);
    color: var(--beige);
    border: 1px solid var(--bordeaux);
    cursor: pointer;
    font-size: 10px;
    line-height: 1;
}

/* hover */
.footer-col.right input[type="submit"]:hover {
    opacity: 0.85;
}

/* =====================
   POPUP SIMPLE 
===================== */

.wpcf7-form input[type="email"] {
    width: 100%;
    padding: 10px;
    border: 1px solid #333;
    margin: 15px 0;
}

.wpcf7-form input[type="submit"] {
    background: #8b1e2d !important;
    color: #fff !important;
    padding: 10px 20px;
    border: none;
    cursor: pointer;
    display: inline-block;
}

.wpcf7-form input[type="submit"]:hover {
    background: #5a0f1a;
}
.wpcf7-form {
    text-align: center;
    
}

.wpcf7-form input[type="submit"] {
    display: inline-block;
}

/* =====================
   POPUP OVERLAY
===================== */

#popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);

    display: none; /* 🔴 IMPORTANT */

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

    z-index: 9999;
}

/* Boîte popup */
.popup-box {
    background: #fff;
    padding: 30px;
    max-width: 450px;
    width: 90%;
    text-align: center;
    position: relative;
    border: 2px solid #c6a65b;
}

/* bouton fermer */
.popup-close {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 22px;
    cursor: pointer;
}

/* image */
.popup-box img {
    width: 150px;
    margin-bottom: 15px;
}

/* texte */
.popup-box h2 {
    margin-bottom: 10px;
    font-size: 20px;
}

.popup-box p {
    font-size: 14px;
    margin-bottom: 10px;
}

.popup-warning {
    font-size: 12px;
    color: #777;
}
/* =====================
   RESPONSIVE
===================== */

/*    DESKTOP / TABLETTE LARGE */

@media screen and (max-width: 1024px) {

    .about-page .about-container {
        flex-direction: column;
        padding: 40px 20px;
    }

    .about-page .about-left,
    .about-page .about-right {
        width: 100%;
    }

    .about-page .about-right {
        margin-top: 30px;
    }

    .content-grid {
        flex-direction: column;
    }
}

/*    TABLETTE + MOBILE */

@media screen and (max-width: 768px) {

    /* ===== HERO ===== */
    .about-page .hero-about {
        height: 300px;
    }

    .title-line h1 {
        font-size: 20px;
        text-align: center;
    }

    .hero-content p {
        font-size: 14px;
        padding: 0 15px;
        text-align: center;
    }

    /* ===== TITRES ===== */
    .section-title {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        font-size: 18px;
        gap: 10px;
        margin: 30px 0;
    }

    .section-title::before,
    .section-title::after {
        width: 80px;
        flex: none;
    }

    .line-title {
        font-size: 15px;
        text-align: center;
    }

    .title-block {
        text-align: center;
    }

    .prestige-row {
        flex-direction: column;
        align-items: center;
        margin-left: 0;
        gap: 5px;
    }

    .gold-line-side {
        width: 80px;
        margin-top: 5px;
    }

    /* ===== TEXTE ===== */
    .text,
    .text-content p {
        font-size: 13px;
        text-align: center;
        padding: 0 10px;
    }

    .text-content h3 {
        font-size: 16px;
    }

    /* ===== IMAGES ===== */
    img {
        max-width: 100%;
        height: auto;
        display: block;
    }

    .image-chef img,
    .form-right img {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }

    /* ===== GRID / SECTIONS ===== */
    .cards,
    .content-grid {
        flex-direction: column;
        gap: 20px;
    }

    .card {
        width: 100%;
        text-align: center;
    }

    .card img {
        height: 200px;
        object-fit: cover;
    }

    .title-line {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .gold-line {
        width: 80px;
    }

    /* ===== BOUTONS ===== */
    .btn-about,
    .reservation-form input[type="submit"] {
        width: 100%;
        text-align: center;
        padding: 14px;
    }

    /* ===== FORMULAIRE ===== */
    .reservation-container {
        padding: 20px;
    }

    .reservation-form {
        flex-direction: column;
        gap: 20px;
    }

    .reservation-form input,
    .reservation-form select {
        font-size: 14px;
        padding: 8px;
    }

    .radio-group {
        flex-direction: column;
        gap: 10px;
    }

    /* ===== FOOTER ===== */
    .social-icons {
        gap: 10px;
        justify-self: center;
    }

    .social-icons i {
        font-size: 14px;
    }

    .footer-col.right {
        align-items: center;
        width: 100%;
    }

    .footer-col.right .newsletter-row {
        flex-direction: column;
        width: 100%;
        gap: 8px;
    }

    .footer-col.right input[type="email"],
    .footer-col.right input[type="submit"] {
        width: 100%;
        border-radius: 3px;
        border: 1px solid var(--gris-fonce);
    }

    .footer-col.right input[type="submit"] {
        border-color: var(--bordeaux);
    }

    .newsletter-form {
        flex-direction: row;
        width: 100%;
    }

    .newsletter-form input {
        width: 100%;
    }
}

