:root{
  --c-bg:#f4faf6;
  --c-card:#ffffff;
  --c-text:#1d3326;
  --c-muted:#5d7866;
  --c-primary:#5cba8c;
  --c-primary-dk:#3e9a6b;
  --c-secondary:#f5b6c1;
  --c-ok:#2bbf6e;
  --c-warn:#f6b73c;
  --c-danger:#e64545;
  --c-border:#d8ebdf;
  --c-input:#ffffff;
  --shadow:0 4px 20px rgba(46,116,79,.08);
  --radius:14px;
  --maxw:1180px;
}
html[data-theme="dark"]{
  --c-bg:#0f1d16;
  --c-card:#172821;
  --c-text:#e8f0eb;
  --c-muted:#8aa896;
  --c-border:#26392f;
  --c-input:#1d2e26;
  --shadow:0 4px 24px rgba(0,0,0,.4);
}
html[data-theme="dark"] .site-header{background:#26201a; border-color:#3a3027}
html[data-theme="dark"] .card, html[data-theme="dark"] .result, html[data-theme="dark"] .resto-desc,
html[data-theme="dark"] .review, html[data-theme="dark"] .review-form, html[data-theme="dark"] .card-form,
html[data-theme="dark"] .pending-card, html[data-theme="dark"] .quick-card, html[data-theme="dark"] .stat,
html[data-theme="dark"] .login-box, html[data-theme="dark"] .data-table, html[data-theme="dark"] .filter-grid fieldset,
html[data-theme="dark"] .hours, html[data-theme="dark"] .modal-content, html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .preview, html[data-theme="dark"] .how-grid div{background:var(--c-card)}
html[data-theme="dark"] .data-table th{background:#1d2e26; color:#8aa896}
html[data-theme="dark"] .site-header nav, html[data-theme="dark"] .site-footer{background:var(--c-card)}
html[data-theme="dark"] .mini-search input, html[data-theme="dark"] .mini-search button,
html[data-theme="dark"] input, html[data-theme="dark"] textarea, html[data-theme="dark"] select,
html[data-theme="dark"] .btn-link, html[data-theme="dark"] .vote-btn, html[data-theme="dark"] .pagination a,
html[data-theme="dark"] .filters-row a, html[data-theme="dark"] .fav-btn{background:var(--c-input); color:var(--c-text); border-color:var(--c-border)}
html[data-theme="dark"] .badge{background:#3a3027; color:#f4ece1}
html[data-theme="dark"] .empty{background:var(--c-card)}
html[data-theme="dark"] .criterion.confirmed{background:#162d1f; border-color:#1f5a35}
html[data-theme="dark"] .criterion.disputed{background:#3a2e0f; border-color:#7a5a1a}
html[data-theme="dark"] .criterion.removed{background:#3a1a1a; border-color:#7a2828}
html[data-theme="dark"] .hero{background:linear-gradient(180deg, #1f1a14 0%, var(--c-bg) 100%)}
html[data-theme="dark"] .chip{background:#3a3027; color:#f4ece1}
html[data-theme="dark"] .card-img, html[data-theme="dark"] .result-img{background-color:#1d2e26; color:#5d7866}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  background:var(--c-bg);
  color:var(--c-text);
  line-height:1.55;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px}
.wrap.narrow{max-width:760px}
a{color:var(--c-primary-dk); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; display:block}
.small{font-size:.86rem}
.muted{color:var(--c-muted)}
.empty{padding:24px; background:#fff; border:1px dashed var(--c-border); border-radius:var(--radius); color:var(--c-muted)}

.site-header{background:#fff; border-bottom:1px solid var(--c-border); position:sticky; top:0; z-index:50}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 22px}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; color:var(--c-text)}
.brand .logo{font-size:24px}
.site-header nav a{margin-left:18px; color:var(--c-text); font-weight:500}
.site-header nav a:hover{color:var(--c-primary-dk)}

.flash{padding:10px 0; color:#fff; text-align:center}
.flash-success{background:var(--c-ok)}
.flash-error{background:var(--c-danger)}

.btn-primary, .btn-secondary, .btn-geo{
  cursor:pointer; border:0; border-radius:10px; padding:10px 16px; font-weight:600;
  transition:transform .05s, background .15s;
}
.btn-primary{background:var(--c-primary); color:#fff}
.btn-primary:hover{background:var(--c-primary-dk)}
.btn-secondary{background:#eee; color:#222}
.btn-secondary.danger{background:#fde4e4; color:#a82828}
.btn-geo{background:#fff; border:1px solid var(--c-border); padding:10px 12px; font-size:18px}

/* HERO */
.hero{padding:60px 0 30px; background:linear-gradient(180deg, #e6f4ec 0%, var(--c-bg) 100%); position:relative; overflow:hidden}
.hero::before{content:""; position:absolute; top:-100px; right:-80px; width:520px; height:520px; background:radial-gradient(circle, rgba(92,186,140,.22), transparent 70%); pointer-events:none}
.hero::after{content:""; position:absolute; bottom:-80px; left:-60px; width:340px; height:340px; background:radial-gradient(circle, rgba(245,182,193,.25), transparent 70%); pointer-events:none}
.hero .wrap{position:relative; z-index:2}
.hero h1{font-size:clamp(28px, 4vw, 48px); margin:0 0 14px; line-height:1.1; max-width:720px}
.hero h1 em{color:var(--c-primary); font-style:normal}
.hero .lead{font-size:1.15rem; color:var(--c-muted); max-width:680px}
.hero-emojis{font-size:3rem; line-height:1; margin-bottom:16px; letter-spacing:8px}

/* TRUST BLOCK */
.trust{background:#fff; border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); padding:20px 0; margin-top:30px}
.trust-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:18px; text-align:center}
.trust-grid div{padding:8px}
.trust-grid .big{font-size:1.8rem; font-weight:700; color:var(--c-primary-dk); display:block}
.trust-grid .lbl{font-size:.85rem; color:var(--c-muted)}

/* SKELETONS */
.skeleton{background:linear-gradient(90deg, #d8ebdf 0%, #ecf6ef 50%, #d8ebdf 100%); background-size:200% 100%; animation:skel 1.4s linear infinite; border-radius:8px}
@keyframes skel{0%{background-position:0 0}100%{background-position:-200% 0}}
.skeleton-card{height:240px}

/* THEME TOGGLE */
.theme-toggle{font-size:18px; padding:6px 10px; background:transparent; border:1px solid var(--c-border); border-radius:8px; cursor:pointer}

/* BAR CHART (transparence) */
.bar-chart{display:flex; gap:12px; height:200px; align-items:flex-end; padding:14px; background:#fff; border:1px solid var(--c-border); border-radius:12px}
.bar{flex:1; background:linear-gradient(180deg, var(--c-primary), #ffb157); border-radius:8px 8px 0 0; position:relative; min-height:20px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center}
.bar-val{font-size:.8rem; color:#fff; font-weight:600; padding:4px}
.bar-lbl{position:absolute; bottom:-22px; font-size:.75rem; color:var(--c-muted); white-space:nowrap}

/* INVITE BUTTON */
.invite-cta{background:linear-gradient(135deg, var(--c-secondary), #6ea8ff); color:#fff; padding:8px 14px; border-radius:8px; border:0; cursor:pointer; font-weight:600}
.invite-cta:hover{filter:brightness(1.05)}

/* JE VIENS DE VISITER */
.visited-cta{background:linear-gradient(135deg, var(--c-ok), #5ed492); color:#fff; padding:14px 22px; border-radius:12px; border:0; cursor:pointer; font-weight:700; font-size:1.05rem; box-shadow:0 4px 16px rgba(43,191,110,.3)}
.visited-cta:hover{transform:translateY(-1px)}
.criteria-grid.highlight{box-shadow:0 0 0 4px rgba(43,191,110,.3); border-radius:12px; transition:box-shadow .3s}

/* PREMIUM BADGE */
.premium-badge{display:inline-flex; align-items:center; gap:6px; background:linear-gradient(135deg, #ffd700, #ff7a00); color:#fff; padding:4px 10px; border-radius:999px; font-size:.8rem; font-weight:700}

/* OWNER REPLY */
.owner-reply{margin-top:10px; padding:12px 14px; background:#e6f4ec; border-left:3px solid var(--c-primary); border-radius:0 8px 8px 0}
.owner-reply strong{color:var(--c-primary-dk)}

/* GUIDES */
.guide-card{background:#fff; border:1px solid var(--c-border); border-radius:12px; padding:18px; margin-bottom:14px}
.guide-card h3{margin:0 0 6px}
.guide-card a{color:var(--c-primary-dk)}
.guide-content{background:#fff; padding:30px; border-radius:14px; border:1px solid var(--c-border); max-width:780px; margin:0 auto; line-height:1.7}
.guide-content h2{margin-top:30px}
.guide-content h3{margin-top:20px}
.guide-content blockquote{border-left:3px solid var(--c-primary); padding-left:14px; color:var(--c-muted); margin:14px 0; font-style:italic}
.guide-content code{background:#f3e9d8; padding:2px 6px; border-radius:4px}

/* BADGES CONTRIB */
.contrib-badge{display:inline-block; padding:3px 10px; border-radius:999px; font-size:.75rem; margin-left:6px; background:#e6f4ec; color:var(--c-primary-dk); border:1px solid var(--c-primary)}

/* BLOG */
.blog-cats{display:flex; gap:8px; flex-wrap:wrap; margin:18px 0 30px}
.blog-cats a{padding:8px 16px; border:1px solid var(--c-border); border-radius:999px; color:var(--c-text); background:#fff; text-decoration:none; font-size:.9rem}
.blog-cats a:hover{border-color:var(--c-primary)}
.blog-cats a.active{background:var(--c-primary); color:#fff; border-color:var(--c-primary)}
.blog-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:20px}
.blog-card{background:#fff; border:1px solid var(--c-border); border-radius:14px; overflow:hidden; transition:transform .15s}
.blog-card:hover{transform:translateY(-3px); box-shadow:var(--shadow)}
.blog-card a{color:var(--c-text); text-decoration:none}
.blog-cover{height:160px; background:#e6f4ec center/cover no-repeat}
.blog-body{padding:16px}
.blog-cat{display:inline-block; background:#e6f4ec; color:var(--c-primary-dk); padding:3px 10px; border-radius:999px; font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px}
.blog-body h3{margin:6px 0; font-size:1.1rem; line-height:1.3}

/* NEWSLETTER BAND */
.newsletter-band{background:#e6f4ec; padding:30px 0; border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border)}
html[data-theme="dark"] .newsletter-band{background:#1d2e26}
.newsletter-inner{display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center}
@media (max-width:780px){.newsletter-inner{grid-template-columns:1fr}}
.newsletter-inner form{display:flex; gap:8px; flex-wrap:wrap}
.newsletter-inner input{padding:10px 14px; border:1px solid var(--c-border); border-radius:8px; min-width:200px; background:var(--c-input); color:var(--c-text)}

/* LEADERBOARD */
.leaderboard{background:#fff; border:1px solid var(--c-border); border-radius:14px; overflow:hidden}
.leader-row{display:grid; grid-template-columns:50px 1fr auto; padding:12px 16px; border-bottom:1px solid var(--c-border); align-items:center}
.leader-row:last-child{border-bottom:0}
.leader-row .rank{font-weight:800; color:var(--c-primary)}
.leader-row.top1{background:linear-gradient(90deg, #e6f4ec, transparent)}

/* PUSH OPT-IN */
.push-cta{background:#3d8bff; color:#fff; padding:8px 14px; border-radius:8px; border:0; cursor:pointer; font-weight:600; margin-left:6px}

.search-bar{background:#fff; border-radius:var(--radius); padding:14px; margin-top:24px; box-shadow:var(--shadow); border:1px solid var(--c-border)}
.search-bar.inline{margin:20px 0 30px}
.search-fields{display:flex; gap:8px; align-items:center}
.search-fields input[type=text]{flex:1; padding:12px 14px; border:1px solid var(--c-border); border-radius:10px; font-size:1rem; background:#fff}
.filters{margin-top:12px}
.filters summary{cursor:pointer; font-weight:600; padding:6px 0}
.filter-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; margin-top:8px}
.filter-grid fieldset{border:1px solid var(--c-border); border-radius:10px; padding:10px; background:#fff}
.filter-grid legend{font-weight:600; padding:0 6px; color:var(--c-muted); font-size:.85rem}
.filter-grid label{display:flex; gap:8px; align-items:center; padding:4px 0; cursor:pointer; font-size:.95rem}

/* CARDS */
.latest{padding:40px 0}
.latest h2, .how h2, section h2{font-size:1.6rem; margin:0 0 18px}
.card-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:18px}
.card{background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); color:var(--c-text); display:block; transition:transform .15s}
.card:hover{transform:translateY(-2px); text-decoration:none}
.card-img{height:140px; background:#e6f4ec center/cover no-repeat; display:flex; align-items:center; justify-content:center; font-size:48px; color:#9ec4af}
.card-body{padding:14px 16px}
.card-body h3{margin:0 0 4px; font-size:1.1rem}

.how{padding:30px 0 60px}
.how-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:18px}
.how-grid .big{font-size:42px; display:block}
.how-grid div{background:#fff; padding:22px; border-radius:var(--radius); border:1px solid var(--c-border)}

/* SEARCH */
.search-page{padding:30px 0 60px}
.search-layout{display:grid; grid-template-columns:1fr 380px; gap:20px}
@media (max-width:900px){.search-layout{grid-template-columns:1fr}}
.results .result{display:flex; gap:14px; background:#fff; padding:14px; border-radius:var(--radius); border:1px solid var(--c-border); margin-bottom:12px; color:var(--c-text)}
.results .result:hover{border-color:var(--c-primary); text-decoration:none}
.result-img{flex:0 0 110px; height:110px; background:#e6f4ec center/cover no-repeat; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:36px; color:#9ec4af}
.chips{display:flex; gap:6px; flex-wrap:wrap; margin-top:6px}
.chip{background:#e6f4ec; border-radius:999px; padding:2px 8px; font-size:.95rem}
.map-wrap{position:sticky; top:80px; height:calc(100vh - 100px)}
#map{width:100%; height:100%; border-radius:var(--radius); border:1px solid var(--c-border)}

/* RESTAURANT */
.resto-page{padding:30px 0 60px}
.back{display:inline-block; margin-bottom:14px; color:var(--c-muted)}
.resto-head{display:grid; grid-template-columns:1fr 360px; gap:24px; align-items:start; margin-bottom:18px}
@media (max-width:800px){.resto-head{grid-template-columns:1fr}}
.resto-cover{border-radius:var(--radius); height:240px; object-fit:cover; width:100%}
.resto-head h1{margin:0 0 6px}
.resto-head .addr{margin:0 0 10px; color:var(--c-muted)}
.links a{margin-right:14px}
.resto-desc{background:#fff; padding:18px; border-radius:var(--radius); border:1px solid var(--c-border)}

.criteria-box{margin-top:30px}
.criteria-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:10px; margin-top:10px}
.criterion{display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; background:#fff; padding:10px 14px; border-radius:12px; border:1px solid var(--c-border)}
.criterion .ico{font-size:22px}
.criterion .name{font-weight:500}
.criterion.confirmed{border-color:var(--c-primary); background:#e6f4ec}
.criterion.disputed{border-color:var(--c-warn); background:#fff8e1}
.criterion.removed{border-color:var(--c-danger); background:#ffeaea; opacity:.85}
.criterion.absent{opacity:.65}
.badge{font-size:.75rem; padding:2px 8px; border-radius:999px; background:#eee}
.badge.ok{background:#dff5e7; color:#0e6b3b}
.badge.warn{background:#fff1cf; color:#7a5500}
.badge.danger{background:#ffe1e1; color:#90201f}
.badge.muted{background:#eee; color:#666}
.vote{grid-column:1/-1; display:flex; gap:6px; justify-self:end; margin-top:4px}
.vote-btn{cursor:pointer; background:#fff; border:1px solid var(--c-border); border-radius:8px; padding:4px 10px; font-size:.9rem}
.vote-btn:hover{border-color:var(--c-primary)}
.vote-btn.up:hover{background:#effaf3}
.vote-btn.down:hover{background:#fff0f0}

.resto-map{margin-top:30px}
#map-resto{height:340px; border-radius:var(--radius); border:1px solid var(--c-border)}

.reviews{margin-top:30px}
.review{background:#fff; padding:14px; border-radius:12px; border:1px solid var(--c-border); margin-bottom:10px}
.review header{display:flex; align-items:center; gap:10px; margin-bottom:6px}
.review-form{background:#fff; padding:18px; border-radius:var(--radius); border:1px solid var(--c-border); margin-top:18px; display:grid; gap:10px}
.review-form input[type=text], .review-form select, .review-form textarea{padding:10px; border:1px solid var(--c-border); border-radius:8px; font-family:inherit; font-size:1rem}

/* FORMS */
.form-page{padding:40px 0 60px}
.card-form{background:#fff; padding:24px; border-radius:var(--radius); border:1px solid var(--c-border); display:grid; gap:14px}
.card-form label{display:flex; flex-direction:column; gap:6px; font-weight:500}
.card-form input, .card-form textarea, .card-form select{padding:10px; border:1px solid var(--c-border); border-radius:8px; font-family:inherit; font-size:1rem}
.card-form .row{display:flex; gap:8px}
.card-form .row input{flex:1}
.card-form fieldset{border:1px solid var(--c-border); border-radius:10px; padding:14px}
.card-form fieldset legend{padding:0 6px; font-weight:600}
.card-form .grid-2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width:600px){.card-form .grid-2{grid-template-columns:1fr}}

.preview{background:#e6f4ec; border:1px solid var(--c-border); border-radius:10px; padding:14px}
.preview h4{margin:0 0 6px}

/* HEADER ENRICHI */
.site-header .wrap{display:flex; align-items:center; gap:18px; padding:14px 22px}
.site-header .brand{flex-shrink:0}
.mini-search{display:flex; gap:6px; flex:1; min-width:0; max-width:380px; margin:0}
.mini-search input{flex:1; min-width:0; padding:8px 12px; border:1px solid var(--c-border); border-radius:8px; font-size:.95rem; background:#fff; color:var(--c-text)}
.mini-search button{background:#fff; border:1px solid var(--c-border); border-radius:8px; padding:6px 10px; cursor:pointer; flex-shrink:0}
.mini-search button:hover{border-color:var(--c-primary)}
.site-header nav{display:flex; gap:14px; align-items:center; flex-shrink:0}
.site-header nav a{color:var(--c-text); font-weight:500; white-space:nowrap}
.site-header nav a:hover{color:var(--c-primary-dk)}

/* Burger mobile */
.burger{display:none; cursor:pointer; background:none; border:0; font-size:24px; padding:6px}
@media (max-width:780px){
  .mini-search{display:none}
  .site-header nav{position:fixed; top:0; right:0; height:100vh; width:280px; max-width:80vw; background:#fff; flex-direction:column; padding:60px 24px; box-shadow:-4px 0 24px rgba(0,0,0,.1); transform:translateX(100%); transition:transform .25s; z-index:60}
  .site-header nav.open{transform:translateX(0)}
  .site-header nav a{padding:12px 0; border-bottom:1px solid var(--c-border); width:100%}
  .burger{display:block; margin-left:auto}
  .burger.x{position:fixed; top:14px; right:18px; z-index:70}
}
.fav-count{background:var(--c-primary); color:#fff; border-radius:999px; padding:0 6px; font-size:.7rem; vertical-align:super}

/* QUICK CATS */
.quick-cats{padding:30px 0}
.quick-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:12px}
.quick-card{background:#fff; padding:18px; border-radius:12px; border:1px solid var(--c-border); display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--c-text); font-weight:600; text-align:center; transition:transform .15s; font-size:1.6rem}
.quick-card span{font-size:.9rem; color:var(--c-muted); font-weight:500}
.quick-card:hover{transform:translateY(-2px); border-color:var(--c-primary); text-decoration:none}

/* RESULTS TOOLBAR + SORT */
.results-toolbar{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; flex-wrap:wrap}
.results-toolbar h2{margin:0}
.sort-bar select{padding:8px 10px; border:1px solid var(--c-border); border-radius:8px; background:#fff}

/* PAGINATION */
.pagination{display:flex; gap:6px; flex-wrap:wrap; margin-top:24px; justify-content:center}
.pagination a{padding:8px 14px; border:1px solid var(--c-border); border-radius:8px; background:#fff; color:var(--c-text)}
.pagination a:hover{border-color:var(--c-primary)}
.pagination a.current{background:var(--c-primary); color:#fff; border-color:var(--c-primary)}

/* CARD FAVORI */
.card{position:relative}
.fav-btn{cursor:pointer; background:#fff; border:1px solid var(--c-border); border-radius:999px; width:36px; height:36px; font-size:18px; display:inline-flex; align-items:center; justify-content:center; padding:0}
.fav-btn:hover{border-color:var(--c-danger); color:var(--c-danger)}
.fav-btn.active{background:var(--c-danger); color:#fff; border-color:var(--c-danger)}
.fav-btn.corner{position:absolute; top:8px; right:8px; box-shadow:0 2px 8px rgba(0,0,0,.1)}
.result{position:relative; padding-right:14px}
.result .fav-btn{position:absolute; top:14px; right:14px}
.result .result-link{display:flex; gap:14px; flex:1; color:var(--c-text)}
.result .result-link:hover{text-decoration:none}

/* FICHE RESTO : meta, score, dropdown, gallery, hours */
.resto-meta{display:flex; align-items:center; gap:18px; margin:12px 0; flex-wrap:wrap}
.kidscore{background:linear-gradient(135deg, #5cba8c, #a8e6c1); color:#fff; padding:10px 14px; border-radius:12px; display:flex; flex-direction:column; align-items:center; line-height:1; min-width:80px}
.kidscore .score-num{font-size:1.6rem; font-weight:800}
.kidscore .score-max{font-size:.7rem; opacity:.85}
.kidscore .score-label{font-size:.7rem; margin-top:4px; text-transform:uppercase; letter-spacing:.05em}
.rating{display:flex; align-items:center; gap:8px}
.rating strong{font-size:1.2rem}
.actions-row{display:flex; gap:12px; margin-top:12px; flex-wrap:wrap}
.btn-link{background:#fff; border:1px solid var(--c-border); border-radius:8px; padding:6px 12px; cursor:pointer; color:var(--c-text); font-weight:500; text-decoration:none; display:inline-flex; align-items:center; gap:6px}
.btn-link:hover{border-color:var(--c-primary); text-decoration:none}
.dropdown{position:relative; display:inline-block}
.dropdown-menu{position:absolute; top:100%; left:0; margin-top:4px; background:#fff; border:1px solid var(--c-border); border-radius:10px; box-shadow:var(--shadow); padding:8px; min-width:180px; z-index:10; display:flex; flex-direction:column; gap:4px}
.dropdown-menu a, .dropdown-menu button{padding:8px 12px; border-radius:6px; color:var(--c-text); background:none; border:0; cursor:pointer; text-align:left; font:inherit}
.dropdown-menu a:hover, .dropdown-menu button:hover{background:#e6f4ec; text-decoration:none}

.gallery{margin:30px 0}
.gallery-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:8px}
.gallery-grid a{display:block; height:140px; background:center/cover no-repeat #f3e9d8; border-radius:10px}

.hours{margin:30px 0; background:#fff; padding:20px; border-radius:12px; border:1px solid var(--c-border)}
.hours-table{width:100%; max-width:340px}
.hours-table th{text-align:left; padding:6px 14px 6px 0; color:var(--c-muted); font-weight:500}
.hours-table td{padding:6px 0}

.hours-edit-table{margin:10px 0}
.hours-edit-table td{padding:4px 6px}

/* MODAL */
.modal{position:fixed; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; z-index:1000}
.modal-content{background:#fff; padding:24px; border-radius:14px; max-width:480px; width:90%; box-shadow:var(--shadow)}
.modal-content h3{margin-top:0}

/* LIGHTBOX */
.lightbox-overlay{position:fixed; inset:0; background:rgba(0,0,0,.92); display:flex; align-items:center; justify-content:center; z-index:2000}
.lightbox-overlay img{max-width:92vw; max-height:92vh; border-radius:8px}
.lightbox-overlay button{position:absolute; top:16px; right:16px; background:#fff; border:0; border-radius:999px; width:40px; height:40px; font-size:22px; cursor:pointer}

/* TOAST */
#toast-container{position:fixed; bottom:20px; right:20px; display:flex; flex-direction:column; gap:8px; z-index:3000}
.toast{background:#1f1b16; color:#fff; padding:12px 18px; border-radius:10px; box-shadow:0 6px 24px rgba(0,0,0,.2); animation:toastIn .25s ease-out}
.toast.success{background:var(--c-ok)} .toast.error{background:var(--c-danger)} .toast.warn{background:var(--c-warn); color:#1f1b16}
@keyframes toastIn{from{transform:translateY(20px); opacity:0} to{transform:translateY(0); opacity:1}}

/* BREADCRUMB */
.breadcrumb{margin:18px 0 8px}
.breadcrumb a{color:var(--c-muted)} .breadcrumb a:hover{color:var(--c-primary-dk)}

/* CONTACT LIST */
.contact-list{list-style:none; padding:0; font-size:1.1rem}
.contact-list li{padding:10px 0}

/* FOOTER */
.site-footer{background:#fff; border-top:1px solid var(--c-border); padding:40px 0 20px; margin-top:40px; color:var(--c-muted)}
.site-footer p{margin:4px 0}
.footer-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:30px; margin-bottom:24px}
.footer-grid h4{color:var(--c-text); margin:0 0 10px; font-size:.95rem}
.footer-grid ul{list-style:none; padding:0; margin:0}
.footer-grid ul li{padding:3px 0}
.footer-grid ul a{color:var(--c-muted)}
.footer-grid ul a:hover{color:var(--c-primary-dk)}
.copyright{border-top:1px solid var(--c-border); padding-top:14px}
