/* ════════════════════════════════════════
   KAWOSH v3 — CSS
════════════════════════════════════════ */
:root {
    --p:  #C06030; --g:  #C8942A; --gl: #E8B84B;
    --b1: #1E1410; --b2: #17100C; --tx: #F5EDD6;
    --muted: #7A6452; --cream: #FAF5E9;
    --brd: rgba(200,148,42,0.25);
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--b1); color:var(--tx); font-family:'Lato',sans-serif; font-weight:300; overflow-x:hidden; }
img  { max-width:100%; height:auto; display:block; }
a    { text-decoration:none; color:inherit; transition:color 0.3s; }

/* ── NAV ── */
#navbar {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    display:flex; justify-content:space-between; align-items:center;
    padding:1.2rem 4rem;
    background:rgba(30,20,16,0.92); backdrop-filter:blur(14px);
    border-bottom:1px solid var(--brd); transition:padding .3s;
}
#navbar.scrolled { padding:.75rem 4rem; }
.nav-logo { font-family:'Cinzel',serif; font-size:1.4rem; letter-spacing:.25em; color:var(--gl); }
.nav-links { display:flex; gap:2rem; list-style:none; align-items:center; }
.nav-links a { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; opacity:.75; transition:opacity .3s,color .3s; }
.nav-links a:hover { opacity:1; color:var(--gl); }
.nav-links .nav-cta { padding:.5rem 1.4rem; border:1px solid var(--g); color:var(--gl)!important; opacity:1!important; }
.nav-links .nav-cta:hover { background:rgba(200,148,42,.1); }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; }
.nav-toggle span { display:block; width:24px; height:2px; background:var(--tx); transition:all .3s; }

/* ── BOUTONS ── */
.btn-primary { padding:.9rem 2.5rem; background:var(--p); color:var(--cream); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; border:none; cursor:pointer; transition:background .3s,transform .2s; display:inline-block; font-family:'Lato',sans-serif; }
.btn-primary:hover { background:#8B3A18; transform:translateY(-2px); }
.btn-outline { padding:.9rem 2.5rem; background:transparent; color:var(--gl); border:1px solid var(--g); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:background .3s,transform .2s; display:inline-block; font-family:'Lato',sans-serif; }
.btn-outline:hover { background:rgba(200,148,42,.1); transform:translateY(-2px); }
.btn-ghost { padding:.9rem 2.5rem; background:transparent; color:rgba(245,237,214,.6); border:1px solid rgba(245,237,214,.2); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:border-color .3s,color .3s; display:inline-block; font-family:'Lato',sans-serif; }
.btn-ghost:hover { border-color:var(--g); color:var(--gl); }

/* ── COMMUNS ── */
section { padding:7rem 4rem; }
.section-tag { display:block; font-size:.65rem; letter-spacing:.35em; text-transform:uppercase; color:var(--g); margin-bottom:1rem; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,5vw,3.5rem); font-weight:300; line-height:1.15; margin-bottom:1.5rem; }
.divider { width:50px; height:1px; background:linear-gradient(to right,var(--g),transparent); margin:1.5rem 0 2rem; }
.center-divider { margin-inline:auto; }
.section-header.center { text-align:center; margin-bottom:3rem; }

/* ── HERO ── */
#hero { min-height:100vh; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; position:relative; overflow:hidden; background:radial-gradient(ellipse 80% 60% at 50% 30%,rgba(192,96,48,.18) 0%,transparent 70%),var(--b1); padding:8rem 2rem 5rem; }
.hero-ornament { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:min(70vw,600px); height:min(70vw,600px); border:1px solid rgba(200,148,42,.12); border-radius:50%; animation:spin 60s linear infinite; pointer-events:none; }
.hero-ornament::before { content:''; position:absolute; inset:20px; border:1px solid rgba(200,148,42,.06); border-radius:50%; }
@keyframes spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
.hero-tag      { font-size:.72rem; letter-spacing:.35em; text-transform:uppercase; color:var(--g); margin-bottom:1.5rem; opacity:0; animation:up 1s .3s forwards; }
.hero-title    { font-family:'Cinzel',serif; font-size:clamp(4rem,12vw,9rem); letter-spacing:.12em; line-height:1; color:var(--tx); margin-bottom:.2em; opacity:0; animation:up 1s .5s forwards; }
.hero-subtitle { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(1.1rem,3vw,1.7rem); color:var(--gl); margin-bottom:2.5rem; opacity:0; animation:up 1s .7s forwards; }
.hero-desc     { max-width:520px; font-size:.95rem; line-height:1.9; color:rgba(245,237,214,.65); margin-bottom:3rem; opacity:0; animation:up 1s .9s forwards; }
.hero-cta      { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; opacity:0; animation:up 1s 1.1s forwards; }
.scroll-indicator { position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; opacity:.4; font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--g); animation:pulse 2.5s ease-in-out infinite; }
.scroll-indicator::after { content:''; width:1px; height:40px; background:linear-gradient(to bottom,var(--g),transparent); }
@keyframes pulse { 0%,100%{opacity:.3} 50%{opacity:.7} }
@keyframes up    { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }

/* ── ABOUT ── */
#about { background:var(--b1); display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.about-visual { position:relative; aspect-ratio:3/4; max-height:560px; }
.about-frame  { position:absolute; inset:0; background:linear-gradient(135deg,rgba(192,96,48,.3),rgba(200,148,42,.1)); border:1px solid var(--brd); }
.about-frame::before { content:''; position:absolute; inset:16px; border:1px solid rgba(200,148,42,.1); }
.about-pattern { position:absolute; inset:32px; display:grid; grid-template-columns:repeat(8,1fr); grid-template-rows:repeat(10,1fr); opacity:.06; }
.about-pattern span { border:1px solid var(--g); }
.about-letter { position:absolute; bottom:-1.5rem; right:-1.5rem; font-family:'Cinzel',serif; font-size:8rem; color:rgba(200,148,42,.07); user-select:none; line-height:1; }
.about-body { font-size:1rem; line-height:1.95; color:rgba(245,237,214,.65); }
.about-body p+p { margin-top:1.2rem; }
.about-quote { margin-top:2.5rem; padding:1.5rem 1.5rem 1.5rem 2rem; border-left:3px solid var(--p); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.2rem; color:var(--tx); line-height:1.6; }

/* ── MENU ── */
#menu { background:var(--b2); }
.cat-tabs { display:flex; border:1px solid var(--brd); width:fit-content; margin:1.5rem auto 3rem; }
.cat-btn  { padding:.7rem 2rem; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; background:transparent; color:rgba(245,237,214,.5); border:none; border-right:1px solid var(--brd); cursor:pointer; font-family:'Lato',sans-serif; transition:background .3s,color .3s; }
.cat-btn:last-child { border-right:none; }
.cat-btn.active,.cat-btn:hover { background:var(--p); color:var(--cream); }
.menu-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:2px; max-width:1200px; margin:0 auto; }
.menu-card { background:rgba(255,255,255,.02); border:1px solid var(--brd); padding:2rem; position:relative; overflow:hidden; transition:background .3s,transform .3s; }
.menu-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:linear-gradient(to right,var(--p),var(--g)); transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.menu-card:hover { background:rgba(192,96,48,.07); transform:translateY(-3px); }
.menu-card:hover::after { transform:scaleX(1); }
.menu-card__head  { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.7rem; gap:1rem; }
.menu-card__name  { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:600; color:var(--tx); }
.menu-card__price { font-family:'Cinzel',serif; font-size:1.05rem; color:var(--gl); white-space:nowrap; }
.menu-card__desc  { font-size:.85rem; line-height:1.75; color:rgba(245,237,214,.5); }
.menu-card__tag   { display:inline-block; margin-top:1rem; padding:.25rem .7rem; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; border:1px solid rgba(200,148,42,.3); color:var(--g); }

/* ── GALERIE ── */
#gallery { background:var(--b1); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; max-width:1200px; margin:2rem auto 0; }
.gallery-item { position:relative; aspect-ratio:4/3; overflow:hidden; cursor:pointer; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.gallery-item:hover img { transform:scale(1.08); }
.gallery-overlay { position:absolute; inset:0; background:rgba(30,20,16,.5); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.gallery-overlay span { font-size:2.5rem; color:var(--gl); font-weight:300; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-cap { position:absolute; bottom:0; left:0; right:0; padding:.8rem 1rem; background:linear-gradient(to top,rgba(30,20,16,.9),transparent); font-size:.78rem; color:rgba(245,237,214,.8); }
.gallery-empty { text-align:center; padding:4rem 2rem; border:1px dashed rgba(200,148,42,.2); max-width:600px; margin:2rem auto; color:rgba(245,237,214,.4); font-size:.9rem; line-height:2; }
.gallery-empty strong { color:var(--gl); }
#lightbox { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.92); align-items:center; justify-content:center; cursor:pointer; }
#lightbox.open { display:flex; }
#lightbox img { max-width:90vw; max-height:88vh; object-fit:contain; border:1px solid var(--brd); }
#lb-close { position:absolute; top:1.5rem; right:2rem; background:none; border:none; color:var(--gl); font-size:2rem; cursor:pointer; }

/* ── AVIS ── */
#reviews { background:radial-gradient(ellipse 60% 60% at 30% 50%,rgba(192,96,48,.1) 0%,transparent 70%),var(--b2); text-align:center; }
.elfsight-wrap { max-width:1100px; margin:0 auto 2rem; }
.reviews-setup { max-width:640px; margin:0 auto 2rem; padding:2.5rem; border:1px solid rgba(200,148,42,.3); background:rgba(200,148,42,.04); }
.reviews-setup__icon { font-size:2.5rem; margin-bottom:1rem; }
.reviews-setup h3 { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; color:var(--tx); margin-bottom:1rem; }
.reviews-setup p  { font-size:.88rem; color:rgba(245,237,214,.6); line-height:1.8; margin-bottom:.8rem; }
.reviews-setup ol { text-align:left; max-width:420px; margin:.8rem auto; padding-left:1.2rem; }
.reviews-setup li { font-size:.88rem; color:rgba(245,237,214,.6); line-height:1.8; margin-bottom:.4rem; }
.reviews-setup a  { color:var(--gl); }
.reviews-cta { margin-top:2rem; }

/* ── CONTACT ── */
#contact { background:var(--b1); display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.info-block { margin-bottom:2.5rem; display:block; }
.info-label { font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:var(--g); margin-bottom:.6rem; display:block; }
.info-value { font-family:'Cormorant Garamond',serif; font-size:1.15rem; color:var(--tx); line-height:1.7; display:block; }
.info-value a:hover { color:var(--gl); }
.hours-table { display:grid; grid-template-columns:auto 1fr; gap:.5rem 2rem; margin-top:.4rem; }
.hours-day  { font-size:.9rem; color:var(--muted); white-space:nowrap; }
.hours-time { font-size:.9rem; color:rgba(245,237,214,.85); font-family:'Cormorant Garamond',serif; }
.contact-map-col iframe { border:1px solid var(--brd)!important; display:block; }

/* ── FORMULAIRE ── */
#form { background:var(--b2); }
.form-wrap { max-width:800px; margin:0 auto; }
.form-intro { font-size:.95rem; color:rgba(245,237,214,.55); line-height:1.7; max-width:500px; margin:0 auto; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; }
.field { display:flex; flex-direction:column; gap:.5rem; }
.field--full { grid-column:1/-1; }
.field label { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--g); }
.field .req   { color:var(--p); }
.field input,
.field select,
.field textarea {
    background:rgba(255,255,255,.04); border:1px solid var(--brd);
    color:var(--tx); font-family:'Lato',sans-serif; font-size:.9rem;
    padding:.85rem 1rem; outline:none; transition:border-color .3s; width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--g); }
.field input::placeholder,.field textarea::placeholder { color:rgba(245,237,214,.25); }
.field select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C8942A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.field select option { background:var(--b1); color:var(--tx); }
.field textarea { resize:vertical; min-height:100px; }
.form-hours-reminder { display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; margin:2rem 0 0; padding:1rem 1.5rem; border:1px solid rgba(200,148,42,.2); background:rgba(200,148,42,.04); font-size:.8rem; color:rgba(245,237,214,.5); }
.form-hours-reminder strong { color:var(--gl); }
.btn-submit { min-width:260px; }
#form-msg.success { border-color:rgba(100,200,100,.4)!important; color:rgba(150,255,150,.9); background:rgba(100,200,100,.05); }
#form-msg.error   { border-color:rgba(200,100,100,.4)!important; color:rgba(255,150,150,.9); background:rgba(200,100,100,.05); }

/* ── FOOTER ── */
#footer { background:var(--b1); border-top:1px solid var(--brd); padding:2.5rem 4rem; }
.footer-inner   { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.footer-logo    { font-family:'Cinzel',serif; font-size:1.2rem; letter-spacing:.2em; color:var(--gl); }
.footer-copy    { font-size:.72rem; color:var(--muted); letter-spacing:.1em; }
.footer-contact { display:flex; gap:1rem; align-items:center; font-size:.75rem; color:var(--muted); flex-wrap:wrap; }
.footer-contact a:hover { color:var(--gl); }

/* ── REVEAL — animation CSS pure, sans JS ── */
.reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .6s ease, transform .6s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Fallback : si JS désactivé ou lent, tout reste visible */
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
}
/* Sécurité : forcer la visibilité des éléments critiques */
.info-block, .menu-card, .testi-card, .gallery-item {
    opacity: 1 !important;
    transform: none !important;
}

/* ── RESPONSIVE ── */
@media (max-width:1024px) {
    section { padding:5rem 2rem; }
    #navbar { padding:1rem 2rem; }
    #about { grid-template-columns:1fr; }
    .about-visual { display:none; }
    #contact { grid-template-columns:1fr; gap:3rem; }
    .gallery-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
    #navbar { padding:1rem 1.5rem; }
    .nav-links { display:none; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:rgba(30,20,16,.97); padding:1.5rem 2rem; border-top:1px solid var(--brd); gap:1.2rem; }
    .nav-links.open { display:flex; }
    .nav-toggle { display:flex; }
    .form-grid { grid-template-columns:1fr; }
    .field--full { grid-column:auto; }
    .gallery-grid { grid-template-columns:1fr; }
    .hero-cta { flex-direction:column; align-items:center; }
    .footer-inner { flex-direction:column; text-align:center; }
    .cat-tabs { flex-wrap:wrap; width:100%; max-width:400px; }
    .cat-btn { border-right:none; border-bottom:1px solid var(--brd); flex:1 0 40%; }
}
@media (max-width:480px) {
    section { padding:4rem 1.2rem; }
}
