/* ZAÏ – One Page */
:root {
  --zai-green: #176b3a;
  --zai-dark: #0d3b24;
  --zai-gold: #a88b45;
  --zai-cream: #f5f0df;
  --zai-white: #fcfaf4;
  --zai-text: #25251f;
}

.zai-site, .zai-site * { box-sizing: border-box; }
.zai-site { color: var(--zai-text); background: var(--zai-white); font-family: Arial, Helvetica, sans-serif; line-height: 1.6; }
.zai-site h1, .zai-site h2, .zai-site h3, .zai-brand-name, .zai-footer-brand { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.zai-site a { color: inherit; }
.zai-container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.zai-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 34px;
  color:#fff; background:rgba(13,59,36,.72); backdrop-filter: blur(8px);
}
.zai-brand { text-decoration:none; display:flex; flex-direction:column; line-height:1; }
.zai-brand-name { font-size:34px; letter-spacing:5px; }
.zai-brand-tag { color:#d8bd70; font-size:8px; letter-spacing:1.4px; margin-top:5px; }
.zai-nav { display:flex; align-items:center; gap:26px; }
.zai-nav a { color:#fff; text-decoration:none; font-size:13px; letter-spacing:.7px; text-transform:uppercase; }
.zai-nav a:hover { color:#e0c878; }
.zai-nav-reserve { border:1px solid #d8bd70; padding:10px 18px; color:#e0c878 !important; }
.zai-menu-toggle { display:none; border:0; background:none; color:#fff; padding:8px; }
.zai-menu-toggle span { display:block; width:26px; height:2px; margin:5px 0; background:#fff; }

.zai-hero { position:relative; height:100vh; min-height:650px; overflow:hidden; color:#fff; }
.zai-slides, .zai-slide { position:absolute; inset:0; }
.zai-slide { overflow:hidden; opacity:0; transform:scale(1.02); transition:opacity 1s ease, transform 6s ease; }
.zai-slide img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.zai-slide.is-active { opacity:1; transform:scale(1); }
.zai-slide-facade { background-size:contain; background-repeat:no-repeat; background-color:#f5f0df; }
.zai-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.48),rgba(0,0,0,.25) 45%,rgba(0,0,0,.65)); }
.zai-hero-content { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:90px 20px 50px; }
.zai-ornament { color:#d8bd70; font-size:28px; }
.zai-hero h1 { font-size:clamp(68px,11vw,130px); letter-spacing:13px; line-height:.95; margin:8px 0 10px; text-shadow:0 3px 18px rgba(0,0,0,.4); }
.zai-hero-tag { color:#e1c56f; letter-spacing:4px; font-size:17px; margin:0 0 4px; }
.zai-hero-sub { font-size:18px; margin:0 0 28px; }
.zai-button { display:inline-block; text-decoration:none; text-transform:uppercase; letter-spacing:1px; font-weight:700; font-size:12px; padding:14px 25px; transition:.25s ease; cursor:pointer; }
.zai-button:hover { transform:translateY(-2px); }
.zai-button-gold { background:#d8b75a; color:#102e1d; border:1px solid #e4ca7d; }
.zai-button-outline { color:var(--zai-green); border:1px solid var(--zai-green); background:transparent; }
.zai-button-outline:hover { background:var(--zai-green); color:#fff; }
.zai-dots { position:absolute; z-index:3; bottom:36px; left:50%; transform:translateX(-50%); display:flex; gap:8px; }
.zai-dots button { width:9px; height:9px; border-radius:50%; border:0; padding:0; background:#fff; opacity:.55; cursor:pointer; }
.zai-dots button.is-active { opacity:1; transform:scale(1.25); }
.zai-scroll { position:absolute; bottom:25px; right:35px; color:#fff; text-decoration:none; font-size:26px; opacity:.8; }

.zai-section { padding:95px 0; }
.zai-intro { background:var(--zai-cream); }
.zai-two-col { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.zai-illustration img { width:100%; max-height:540px; object-fit:contain; display:block; mix-blend-mode:multiply; }
.zai-copy { max-width:520px; }
.zai-eyebrow { color:var(--zai-gold); font-size:12px; font-weight:700; letter-spacing:2px; margin:0 0 6px; }
.zai-copy h2, .zai-heading h2, .zai-contact h2 { color:var(--zai-green); font-size:58px; line-height:1.05; margin:0 0 12px; }
.zai-divider { color:var(--zai-gold); letter-spacing:7px; margin:8px 0 18px; }
.zai-values { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-top:30px; text-align:center; }
.zai-values div { display:flex; flex-direction:column; gap:5px; font-size:11px; text-transform:uppercase; letter-spacing:.6px; }
.zai-values span { font-size:28px; color:var(--zai-green); }

.zai-menu-section { background:var(--zai-white); }
.zai-heading { text-align:center; margin-bottom:42px; }
.zai-heading h2 { margin-bottom:8px; }
.zai-heading > p:last-child { margin-top:0; }
.zai-menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:25px; }
.zai-menu-card { border:1px solid rgba(23,107,58,.45); padding:44px 25px; text-align:center; min-height:260px; display:flex; flex-direction:column; justify-content:center; }
.zai-card-icon { font-size:35px; color:var(--zai-green); }
.zai-menu-card h3 { font-size:30px; color:var(--zai-green); margin:12px 0 0; }
.zai-menu-card p { margin:0; }
.zai-center { text-align:center; margin-top:34px; }

.zai-gallery { background:var(--zai-dark); padding:82px 0 95px; color:#fff; }
.zai-heading-light h2 { color:#e2c875; }
.zai-heading-light p:last-child { color:#eee; }
.zai-gallery-grid { display:grid; grid-template-columns:1.35fr .9fr .9fr; grid-auto-rows:250px; gap:16px; }
.zai-gallery-item { padding:0; border:0; background:none; cursor:pointer; overflow:hidden; height:100%; min-height:0; }
.zai-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.zai-gallery-item:hover img { transform:scale(1.04); }
.zai-gallery-large { grid-row:span 2; }
.zai-menu-note { margin:0; font-size:13px; opacity:.75; }

.zai-reservation { display:grid; grid-template-columns:1fr 1fr; min-height:520px; background:var(--zai-green); color:#fff; }
.zai-reservation-content { padding:75px clamp(28px,7vw,100px); display:flex; flex-direction:column; justify-content:center; }
.zai-eyebrow-gold { color:#e1c56f; }
.zai-reservation h2 { font-size:52px; margin:0 0 8px; }
.zai-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin:30px 0; }
.zai-steps div { border-top:1px solid rgba(255,255,255,.25); padding-top:12px; display:flex; flex-direction:column; gap:7px; }
.zai-steps span { color:#e1c56f; font-family:Georgia,serif; font-size:22px; }
.zai-steps strong { font-size:12px; line-height:1.35; }
.zai-button-wide { text-align:center; width:min(100%,420px); }
.zai-phone { margin:17px 0 0; }
.zai-phone a { color:#e1c56f; font-weight:700; text-decoration:none; }
.zai-reservation-photo { background:url('../assets/terrasse.jpg') center/cover; min-height:420px; }

.zai-contact { background:var(--zai-cream); }
.zai-contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:center; }
.zai-contact h2 { font-size:45px; }
.zai-contact-list p { margin:18px 0; }
.zai-contact-list a { color:var(--zai-green); font-weight:700; text-decoration:none; }
.zai-map { min-height:390px; }
.zai-map iframe { width:100%; height:390px; border:0; display:block; }

.zai-footer { background:#082b1a; color:#fff; text-align:center; padding:45px 0 30px; }
.zai-footer-brand { font-size:45px; letter-spacing:7px; }
.zai-footer-tag { color:#d8bd70; letter-spacing:2px; font-size:11px; margin:3px 0 18px; }
.zai-footer p { opacity:.8; font-size:12px; }
.zai-footer-links { display:flex; justify-content:center; gap:22px; font-size:12px; }
.zai-footer-links a { opacity:.8; }

.zai-lightbox { position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.92); display:none; align-items:center; justify-content:center; padding:30px; }
.zai-lightbox.is-open { display:flex; }
.zai-lightbox img { max-width:94vw; max-height:90vh; object-fit:contain; }
.zai-lightbox-close { position:absolute; top:15px; right:25px; border:0; background:none; color:#fff; font-size:45px; cursor:pointer; }

@media (max-width: 900px) {
  .zai-header { padding:11px 20px; }
  .zai-menu-toggle { display:block; }
  .zai-nav { position:absolute; top:100%; left:0; right:0; background:rgba(13,59,36,.98); display:none; flex-direction:column; align-items:stretch; gap:0; padding:8px 20px 18px; }
  .zai-nav.is-open { display:flex; }
  .zai-nav a { padding:12px 5px; }
  .zai-nav-reserve { text-align:center; margin-top:5px; }
  .zai-two-col, .zai-contact-grid { grid-template-columns:1fr; gap:35px; }
  .zai-copy { max-width:none; }
  .zai-menu-grid { grid-template-columns:1fr; }
  .zai-gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:220px; }
  .zai-gallery-large { grid-row:span 1; grid-column:span 2; }
  .zai-reservation { grid-template-columns:1fr; }
  .zai-reservation-photo { min-height:320px; order:-1; }
  .zai-contact-grid { gap:35px; }
}

@media (max-width: 600px) {
  .zai-container { width:min(100% - 30px, 1180px); }
  .zai-hero { min-height:620px; }
  .zai-gallery-grid { grid-template-columns:1fr; grid-auto-rows:240px; }
  .zai-gallery-large { grid-column:span 1; }
  .zai-hero h1 { font-size:68px; letter-spacing:8px; }
  .zai-hero-tag { font-size:13px; letter-spacing:2.5px; }
  .zai-hero-sub { font-size:15px; }
  .zai-section { padding:65px 0; }
  .zai-copy h2, .zai-heading h2 { font-size:45px; }
  .zai-values { gap:7px; }
  .zai-values div { font-size:9px; }
  .zai-values span { font-size:24px; }
  .zai-steps { grid-template-columns:1fr; }
  .zai-reservation h2 { font-size:42px; }
  .zai-reservation-content { padding:55px 22px; }
  .zai-reservation-photo { min-height:260px; }
  .zai-map iframe { height:320px; }
  .zai-map { min-height:320px; }
  .zai-scroll { display:none; }
}

.zai-reserve-box { margin: 26px 0 0; }
.zai-reserve-box .zai-button-wide { display:inline-block; }
.zai-reserve-hint { margin: 10px 0 0; font-size: 12px; opacity: .72; }
.zai-zenchef-config { display:none !important; }

/* Carte PDF V4.1.11 — affichage page par page */
.zai-menu-pdf-wrap{width:100%;max-width:1050px;margin:35px auto 0}
.zai-menu-pdf-pages{display:flex;flex-direction:column;align-items:center;gap:28px}
.zai-menu-pdf-page{width:100%;background:#fff;border:1px solid rgba(23,107,58,.18);border-radius:3px;box-shadow:0 12px 35px rgba(0,0,0,.10);overflow:hidden}
.zai-menu-pdf-page canvas{display:block;width:100%;height:auto}
.zai-menu-pdf-page-label{text-align:center;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:10px 12px;color:#777;background:#faf9f6;border-top:1px solid rgba(0,0,0,.06)}
.zai-menu-pdf-loading{text-align:center;padding:50px 20px;color:#666}
.zai-menu-pdf-error{text-align:center;padding:35px 20px;background:#fff;border:1px solid rgba(0,0,0,.08)}
.zai-menu-pdf-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:26px}
.zai-menu-pdf-empty{text-align:center;padding:60px 20px}
.zai-menu-pdf-admin-section{max-width:900px;background:#fff;border:1px solid #dcdcde;border-radius:8px;padding:24px;margin:24px 0}
.zai-menu-pdf-admin-preview{background:#f6f7f7;border:1px solid #dcdcde;border-radius:6px;padding:16px}
.zai-menu-pdf-admin-preview p{margin:0 0 8px}
.zai-menu-pdf-admin-preview p:last-child{margin-bottom:0}
@media(max-width:767px){
  .zai-menu-pdf-wrap{margin-top:25px}
  .zai-menu-pdf-pages{gap:18px}
  .zai-menu-pdf-page{border-radius:2px}
  .zai-menu-pdf-actions .zai-button{width:100%;text-align:center}
}
