:root{
  --brand:#c0392b;
  --ink:#222;
  --muted:#666;
  --bg:#faf9f7;
  --card:#ffffff;
  --pill:#f2e9e4;
  --shadow:0 8px 24px rgba(0,0,0,.08);
  --radius:18px;
  --radius-lg:26px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.site-header{
  position:sticky;top:0;z-index:10;
  background:linear-gradient(180deg,var(--brand),#a83227);
  color:#fff;
  padding:16px 20px;
  box-shadow:var(--shadow);
}
.site-header .brand{display:flex;align-items:center;gap:14px}
.site-header h1{font-weight:800;margin:0;font-size:22px;letter-spacing:.2px}
.site-header nav{position:absolute;right:20px;top:14px}

.torii{
  width:42px;height:28px;position:relative;
}
.torii::before, .torii::after{
  content:"";position:absolute;left:0;right:0;background:#fff;border-radius:2px;
}
.torii::before{top:0;height:6px}
.torii::after{top:8px;height:5px;left:4px;right:4px}
.torii span{display:none}
.torii + h1{margin-left:4px}

.container{max-width:1100px;margin:24px auto;padding:0 16px}
.container.narrow{max-width:680px}

.section-title{margin:8px 0 18px 4px;font-size:18px;color:var(--muted)}

.btn{
  background:#fff;color:var(--brand);border:none;border-radius:999px;
  padding:10px 16px;font-weight:700;text-decoration:none;display:inline-block;
  box-shadow:var(--shadow);
}
.btn:hover{transform:translateY(-1px)}
.card{
  background:var(--card);border-radius:var(--radius);padding:16px 16px 18px;
  box-shadow:var(--shadow);
}

label{display:block;margin:12px 0 10px;font-weight:600}
input[type="text"],input[type="password"],input[type="date"],textarea{
  width:100%;padding:12px 12px;border-radius:12px;border:1px solid #ddd;background:#fff
}
input[type="file"]{display:block;margin-top:8px}

.alert{padding:12px 14px;border-radius:12px;margin:10px 0;font-weight:600}
.alert.error{background:#ffe8e6;color:#8a1f11}
.alert.success{background:#e6ffef;color:#116a2e}
.hint{color:var(--muted);font-size:13px}

.days-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px
}
.day-card{
  background:var(--card);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;
  box-shadow:var(--shadow);display:flex;flex-direction:column
}
.day-card .thumbs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#0002;min-height:120px
}
.day-card img{width:100%;height:120px;object-fit:cover;display:block}
.day-card .day-infos{padding:12px 12px 14px}
.day-date{font-weight:800}
.day-city{color:var(--muted);margin-top:4px}

.day-header{display:flex;align-items:center;gap:10px;margin:6px 0 14px}
.day-header h2{margin:0}
.pill{background:var(--pill);padding:6px 10px;border-radius:999px;color:#5a4943}

.gallery{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px
}
.photo{
  background:var(--card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)
}
.photo img{width:100%;height:100%;display:block;object-fit:cover}
figcaption{padding:10px 12px}
figcaption .meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:6px}
.maplink{text-decoration:none;color:var(--brand);font-weight:700}
.site-footer{padding:30px 16px;color:var(--muted);text-align:center}

#mapid{
  height: 480px;
  width: 100%;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin: 20px 0 40px;
}
.leaflet-popup-content img{max-width:100%;height:auto;display:block;}

.delete-form {
  text-align: right;
  margin: 4px 0;
}
.delete-btn {
  background: #e74c3c;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 13px;
  cursor: pointer;
}
.delete-btn:hover {
  background: #c0392b;
}

.filter-box{
  background:var(--card);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  padding:10px 14px;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:600;
}
.filter-box label{color:var(--muted);}
.filter-box select{
  flex:1;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid #ccc;
}
/* Lightbox */
.lightbox-open {
  overflow: hidden;
}
.lightbox-overlay img {
  max-width: 95vw;
  max-height: 90vh;
  object-fit: contain;
}

.lightbox-arrow {
  font-size: 48px;
  color: #fff;
  cursor: pointer;
  user-select: none;
  text-shadow: 0 2px 6px rgba(0,0,0,0.7);
  transition: transform .2s;
}
.lightbox-arrow:hover {
  transform: scale(1.2);
}
/* Effet de fondu pour la lightbox */
.lightbox-overlay {
  transition: opacity .3s ease;
  opacity: 0;
}

.lightbox-overlay.visible {
  opacity: 1;
}

.lightbox-arrow {
  opacity: 0.8;
  transition: transform .2s, opacity .2s;
}
.lightbox-arrow:hover {
  transform: scale(1.2);
  opacity: 1;
}
