/* =========================
   HORAIRES — style unifié
   Thème noir/or + mobile-first
   ========================= */
:root{
    --gold: #b9965a;
    --black:#0d0d0d;
    --ink:#111;
    --muted:#666;
    --maxw:1180px;
    --container:min(var(--maxw), 92vw);
    --radius:18px;
}

/* Reset */
body{ margin:0; }

/* ================= HERO ================= */
.hours-hero{
    width:100%;
    aspect-ratio: 16 / 9;  /* ou 21/9 pour encore plus panoramique */
    min-height:auto;       /* on enlève le min-height */
    position:relative;
    overflow:hidden;
    background:#0b0b0b;
}
.hours-hero .hero-bg{
    position:absolute;           /* << clé du fix */
    inset:0;                     /* top/right/bottom/left: 0 */
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 45%;
    transform: translateZ(0);
}
/* léger voile lisibilité */
.hours-hero::after{
    content:"";
    position:absolute; inset:0;
    background:
        linear-gradient(180deg,
        rgba(0,0,0,.35),
        rgba(0,0,0,.15) 40%,
        rgba(0,0,0,.45));
    pointer-events:none;
}
@media (min-width:1100px) {
    .hours-hero {
        min-height: 64vh;
    }
}

/* ================= CARTE HORAIRES ================= */
.hours-wrap{
    width:var(--container);
    margin: clamp(30px, 6vw, 70px) auto;
}
.hours-card{
    background:#fff;
    border:8px solid var(--gold);
    border-radius:22px;
    padding: clamp(22px, 4.4vw, 40px);
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.hours-title{
    margin:0 0 18px;
    text-align:center;
    font-family:"Cinzel", serif;
    letter-spacing:.6px;
    font-size: clamp(20px, 2.2vw, 28px);
    color:#111;
}

/* Table centrée */
.hours-table{
    margin-top:10px;
    border-top:2px solid #111;
    border-bottom:2px solid #111;
}
.hours-table .row{
    display:grid;
    grid-template-columns: 1fr 1fr;
    align-items:center;
    padding: 16px 10px;
    border-bottom:1px solid #ddd;
    text-align:center;
}
.hours-table .row:last-child{ border-bottom:none; }

.day{
    font-weight:800;
    color:#111;
    letter-spacing:.4px;
}
.time{
    font-weight:600;
    letter-spacing:.3px;
    color:#222;
}
.time.off{
    color:#555;
    text-transform:uppercase;
}

/* Picto */
.cutlery{
    margin-top:26px;
    display:grid;
    place-items:center;
    color:#111;
    opacity:.85;
}

/* ================= COVER / RIDEAU (ouverture) ================= */
.cover{
    position: fixed;
    inset: 0;
    z-index: 1300;            /* au-dessus du contenu, sous la lightbox (1400) */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;
    background: #000;         /* noir profond (pas d’éclair) */
    color: #fff;
    text-align: center;
    opacity: 1;
    transition: opacity .5s ease;
}
.cover.fade-out{ opacity: 0; }

.cover-title{
    margin: 0;
    font-family: "Cinzel", serif;
    font-size: clamp(28px, 5vw, 56px);
    letter-spacing: .5px;
    text-transform: uppercase;
    opacity: .96;
}

.cover-cta,
#show-horaires-btn{
    margin-top: 6px;
    padding: 12px 22px;
    border: 2px solid var(--gold);
    background: transparent;
    color: #fff;
    font-weight: 700;
    letter-spacing: .4px;
    border-radius: 10px;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, transform .06s ease, box-shadow .2s ease;
}
.cover-cta:hover,
#show-horaires-btn:hover{
    background: var(--gold);
    color: #111;
    box-shadow: 0 8px 22px rgba(185,150,90,.25);
}
.cover-cta:active,
#show-horaires-btn:active{ transform: translateY(1px); }

/* ================= AVIS / REVIEWS ================= */
.reviews-wrap{
    width: var(--container);
    margin: clamp(36px, 7vw, 90px) auto;
}

.reviews-head{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap: 14px 18px;
    justify-content: space-between;
    margin-bottom: clamp(16px, 3vw, 24px);
}

.reviews-title{
    margin:0;
    font-family:"Cinzel",serif;
    letter-spacing:.6px;
    color:#111;
    font-size: clamp(22px, 2.2vw, 30px);
}

.reviews-meta{
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:700;
    color:#111;
}
.reviews-meta .avg{ font-size: 20px; }
.reviews-meta .stars{
    color: var(--gold);       /* ★ dorées, plus de rouge */
    letter-spacing: 2px;
    font-size: 18px;
}
.reviews-meta .count{ color:#444; font-weight:600; }

.reviews-cta{ white-space: nowrap; }

.reviews-grid{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(16px, 3vw, 24px);
}

.review-card{
    background:#fff;
    border-radius: 16px;
    padding: 18px;
    box-shadow: 0 10px 22px rgba(0,0,0,.08);
    border: 1px solid #eee;
    display:flex;
    flex-direction:column;
    gap: 10px;
    min-height: 220px;
}

.review-head{
    display:flex;
    align-items:center;
    gap: 12px;
}
.review-avatar{
    width:46px; height:46px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #f1f1f1;
}
.review-author{
    margin:0;
    font-weight:800;
    color:#111;
}
.review-stars{
    color: var(--gold);
    letter-spacing: 1px;
    font-size: 16px;
}

.review-text{
    margin: 0;
    color:#222;
    line-height: 1.6;
    font-size: 15px;
}

.review-footer{
    margin-top: auto;
    display:flex;
    align-items:center;
    justify-content: space-between;
    color:#666;
    font-size: 13px;
}

/* ================= Responsive ================= */
@media (max-width: 1100px){
    .reviews-grid{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 780px){
    .reviews-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px){
    .hours-table .row{ grid-template-columns:1fr; row-gap:6px; }
    .day{ font-size:14px; }
    .time{ font-size:15px; }
}
@media (max-width: 520px){
    .reviews-grid{ grid-template-columns: 1fr; }
}

/* ================= Accessibilité ================= */
@media (prefers-reduced-motion: reduce){
    .cover{ transition:none !important; }
}
