/* ===== ANELIA — CSS COMMUN ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bleu: #9BBDC8; --bleu-dark: #6a9aaa; --bleu-light: #daeaf0;
  --or: #B8962E; --or-light: #f5edd4; --or-mid: #c8b47a;
  --soir: #1a2626; --soir-mid: #243535;
  --creme: #FAF7F2; --texte: #1a1a18; --texte-doux: #5a5a52;
  --radius: 1.5rem; --radius-lg: 2rem;
}
body { font-family: 'DM Sans', sans-serif; background: var(--creme); color: var(--texte); overflow-x: hidden; }

/* TOPBAR */
.topbar { background: var(--texte); color: white; display: flex; align-items: center; justify-content: center; gap: 1rem; padding: .5rem 1.4rem; font-size: .75rem; position: sticky; top: 0; z-index: 101; transition: transform .3s; flex-wrap: wrap; }
.topbar.hidden { transform: translateY(-100%); }
.topbar a { color: rgba(255,255,255,.85); text-decoration: none; font-weight: 500; transition: color .2s; white-space: nowrap; }
.topbar a:hover { color: var(--bleu); }
.topbar-sep { color: rgba(255,255,255,.2); }

/* NAV */
nav { position: sticky; top: 32px; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: .85rem 1.4rem; background: rgba(250,247,242,.97); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(0,0,0,.07); transition: top .3s; gap: .5rem; }
nav.top-hidden { top: 0; }
.nav-logo { font-family: 'Playfair Display', serif; font-size: 1.35rem; font-style: italic; color: var(--bleu-dark); text-decoration: none; flex-shrink: 0; }
.nav-links { display: none; }
@media(min-width:700px){
  .nav-links { display: flex; gap: .9rem; list-style: none; }
  .nav-links a { color: var(--texte-doux); text-decoration: none; font-size: .78rem; font-weight: 500; transition: color .2s, background .2s; padding: .3rem .6rem; border-radius: 1rem; white-space: nowrap; }
  .nav-links a:hover { color: var(--bleu-dark); background: var(--bleu-light); }
  .nav-links a.active { color: var(--bleu-dark); background: var(--bleu-light); font-weight: 600; }
}
.nav-cta { background: var(--or); color: white; border: 2px solid var(--or); border-radius: 2rem; padding: .55rem 1.1rem; font-family: 'DM Sans', sans-serif; font-size: .82rem; font-weight: 600; cursor: pointer; text-decoration: none; display: inline-block; transition: background .2s, transform .15s; white-space: nowrap; flex-shrink: 0; }
.nav-cta:hover { background: #9e7e1e; border-color: #9e7e1e; transform: scale(1.03); }

/* SECTIONS */
.section { padding: 2.5rem 1.4rem; }
.section-label { font-size: .68rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; color: var(--bleu-dark); margin-bottom: .35rem; }
.section-title { font-family: 'Playfair Display', serif; font-size: clamp(1.5rem, 5vw, 2rem); line-height: 1.15; color: var(--texte); margin-bottom: 1.2rem; }
.section-title em { font-style: italic; color: var(--bleu-dark); }

/* BOUTONS */
.btn-or { background: var(--or); color: white; border: 2px solid var(--or); border-radius: 2rem; padding: .8rem 1.6rem; font-family: 'DM Sans',sans-serif; font-size: .9rem; font-weight: 600; cursor: pointer; transition: background .2s, transform .15s, box-shadow .2s; display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; }
.btn-or:hover { background:#9e7e1e; border-color:#9e7e1e; transform:translateY(-2px); box-shadow:0 6px 20px rgba(184,150,46,.3); }
.btn-or-lg { background: var(--or); color: white; border: 2px solid var(--or); border-radius: 2rem; padding: .95rem 2rem; font-family: 'DM Sans',sans-serif; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background .2s, transform .15s, box-shadow .2s; display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.btn-or-lg:hover { background:#9e7e1e; border-color:#9e7e1e; transform:translateY(-2px); box-shadow:0 8px 24px rgba(184,150,46,.35); }
.btn-bleu { background: var(--bleu-dark); color: white; border: 2px solid var(--bleu-dark); border-radius: 2rem; padding: .8rem 1.6rem; font-family: 'DM Sans',sans-serif; font-size: .9rem; font-weight: 600; cursor: pointer; transition: background .2s, transform .15s; display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; }
.btn-bleu:hover { background:#5a8898; border-color:#5a8898; transform:translateY(-2px); }
.btn-bleu-lg { background: var(--bleu); color: white; border: 2px solid var(--bleu); border-radius: 2rem; padding: .95rem 2rem; font-family: 'DM Sans',sans-serif; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background .2s, transform .15s; display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.btn-bleu-lg:hover { background:var(--bleu-dark); border-color:var(--bleu-dark); transform:translateY(-2px); }
.btn-white-solid { background:white; color:#1a2626; border:2px solid white; border-radius:2rem; padding:.75rem 1.5rem; font-family:'DM Sans',sans-serif; font-size:.88rem; font-weight:700; cursor:pointer; transition:background .2s, transform .15s; display:inline-flex; align-items:center; gap:.4rem; text-decoration:none; }
.btn-white-solid:hover { background:var(--bleu-light); border-color:var(--bleu-light); transform:translateY(-2px); }
.btn-ghost-dark { background:transparent; color:var(--texte); border:2px solid rgba(26,26,24,.28); border-radius:2rem; padding:.9rem 1.5rem; font-family:'DM Sans',sans-serif; font-size:.9rem; font-weight:500; cursor:pointer; transition:border-color .2s, color .2s, transform .15s; display:inline-flex; align-items:center; gap:.4rem; text-decoration:none; }
.btn-ghost-dark:hover { border-color:var(--bleu-dark); color:var(--bleu-dark); transform:translateY(-2px); }
.btn-outline-white { background:transparent; color:white; border:2px solid rgba(255,255,255,.4); border-radius:2rem; padding:.7rem 1.3rem; font-family:'DM Sans',sans-serif; font-size:.84rem; font-weight:500; cursor:pointer; transition:border-color .2s, background .2s; display:inline-flex; align-items:center; gap:.4rem; text-decoration:none; }
.btn-outline-white:hover { border-color:white; background:rgba(255,255,255,.08); }

/* CARDS */
.card { background: white; border-radius: var(--radius); overflow: hidden; cursor: pointer; transition: transform .3s, box-shadow .3s; box-shadow: 0 2px 12px rgba(0,0,0,.05); }
.card:hover { transform: translateY(-3px); box-shadow: 0 10px 32px rgba(0,0,0,.1); }
.card-body { padding: 1.3rem 1.4rem; }
.card-eyebrow { font-size:.67rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--bleu-dark); margin-bottom:.3rem; }
.card-title { font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--texte); margin-bottom:.5rem; }
.card-desc { font-size:.83rem; font-weight:300; color:var(--texte-doux); line-height:1.6; margin-bottom:1rem; }
.card-badge { display:inline-block; background:var(--or-light); color:#7a6020; border:1px solid rgba(184,150,46,.25); border-radius:2rem; padding:.22rem .75rem; font-size:.68rem; font-weight:500; margin-bottom:.9rem; }

/* INFOS GRID */
.infos-grid { display: flex; flex-direction: column; gap: .8rem; }
.info-card { background: white; border-radius: var(--radius); padding: 1.2rem 1.4rem; display: flex; align-items: flex-start; gap: 1rem; box-shadow: 0 2px 12px rgba(0,0,0,.05); }
.info-icon { font-size: 1.4rem; flex-shrink: 0; }
.info-title { font-weight: 500; font-size: .9rem; color: var(--texte); margin-bottom: .2rem; }
.info-val { font-size: .83rem; font-weight: 300; color: var(--texte-doux); line-height: 1.5; }

/* INSTAGRAM + AVIS PLACEHOLDERS */
.insta-chip { display:flex; align-items:center; gap:1rem; background:white; border-radius:var(--radius-lg); padding:1.4rem; border:1.5px solid rgba(155,189,200,.2); text-decoration:none; transition:transform .2s, box-shadow .2s; }
.insta-chip:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.insta-chip .ic-arrow { color:var(--bleu-dark); font-size:1.2rem; margin-left:auto; }
.google-block { background:white; border-radius:var(--radius-lg); padding:1.5rem; border:1.5px solid rgba(184,150,46,.15); }
.google-header { display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; }
.google-avis-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.avis-card { background:var(--creme); border-radius:1rem; padding:.9rem 1rem; }
.avis-stars { color:var(--or); font-size:.75rem; margin-bottom:.3rem; }
.avis-text { font-size:.78rem; font-weight:300; color:var(--texte-doux); line-height:1.5; margin-bottom:.4rem; font-style:italic; }
.avis-author { font-size:.72rem; font-weight:500; color:var(--texte-doux); }

/* RESA OVERRIDES — SmartBooker compact */
.resa-wrap .sb-booking-form-container { margin:0; padding:0; background:transparent; box-shadow:none; border-radius:0; max-width:440px; }
.resa-wrap .sb-form-title { display:none; }
.resa-wrap #sb_calendar_inline { max-width:340px; margin:0 auto 1rem; }
.resa-wrap .sb-cal-day { min-height:38px; }
.resa-wrap .day-num { font-size:12px; }
.resa-wrap .sb-service-btn { border-radius:1rem; font-size:.86rem; padding:.65rem 1rem; }

/* FOOTER */
footer { background: var(--texte); color: white; padding: 2.5rem 1.4rem 1.8rem; margin-top: 2.5rem; }
.f-logo { font-family:'Playfair Display',serif; font-style:italic; font-size:1.5rem; color:var(--bleu); margin-bottom:.2rem; }
.f-sub { font-size:.72rem; color:rgba(255,255,255,.35); letter-spacing:.07em; margin-bottom:1.5rem; }
.f-links { display:flex; flex-wrap:wrap; gap:.7rem 1.1rem; margin-bottom:1.4rem; }
.f-links a { color:rgba(255,255,255,.55); text-decoration:none; font-size:.8rem; transition:color .2s; }
.f-links a:hover { color:var(--bleu); }
.f-bottom { border-top:1px solid rgba(255,255,255,.08); padding-top:1.1rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.4rem; font-size:.68rem; color:rgba(255,255,255,.25); }

/* ANIMATIONS */
.reveal { opacity:0; transform:translateY(22px); transition: opacity .55s ease, transform .55s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.3)} }
