/* Spain Trip 2026 — Shared Styles */
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;font-family:Georgia,'Times New Roman',serif;
  background:#faf8f5;color:#2c2c2c;line-height:1.7;
}
a{color:#8b2500;text-decoration:none;border-bottom:1px solid #8b250040}
a:hover{color:#6b1c00;border-bottom-color:#8b2500}

/* NAV */
.nav{
  background:#8b2500;padding:0.6rem 1.2rem;display:flex;flex-wrap:wrap;
  gap:0.4rem 1.2rem;align-items:center;position:sticky;top:0;z-index:100;
}
.nav a{color:#fff;border:none;font-size:0.95rem;padding:0.3rem 0.5rem;border-radius:4px}
.nav a:hover{background:#a03000}
.nav a.active{background:#6b1c00;font-weight:bold}

/* CITY HEADER */
.ch{
  background:#8b2500;color:#fff;padding:3rem 1.5rem;text-align:center;
}
.ch h1{margin:0 0 0.3rem;font-size:2.4rem;letter-spacing:0.5px}
.ch p{margin:0;opacity:0.9;font-size:1.1rem}

/* CONTAINER */
.container{max-width:900px;margin:0 auto;padding:1.5rem}

/* DAY SECTION */
.day{
  background:#fdfcfa;border-left:4px solid #8b2500;padding:1.2rem 1.5rem;
  margin:1.5rem 0;border-radius:0 8px 8px 0;
}
.day h2{margin:0 0 0.5rem;color:#8b2500;font-size:1.4rem}
.day h3{margin:1rem 0 0.4rem;font-size:1.1rem;color:#5a1a00}

/* CARDS — shared base */
.s,.h,.r,.bar,.shop,.event{
  background:#fff;border:1px solid #e8e2da;border-radius:8px;
  padding:1rem 1.2rem;margin:0.8rem 0;
}
.s h4,.h h4,.r h4,.bar h4,.shop h4,.event h4{margin:0 0 0.4rem;font-size:1.05rem;color:#3a3a3a}
.s p,.h p,.r p,.bar p,.shop p,.event p{margin:0.2rem 0;font-size:0.92rem;color:#555}

/* SPOT */
.s{border-left:3px solid #8b2500}
.s .meta{display:flex;flex-wrap:wrap;gap:0.5rem 1.2rem;margin-top:0.5rem;font-size:0.85rem;color:#777}
.s .meta span{display:inline-flex;align-items:center;gap:0.3rem}

/* HOTEL */
.h{border-left:3px solid #b08d57}
.h.ihg{border-left:4px solid #2e8b57}
.h .badge{
  display:inline-block;background:#2e8b57;color:#fff;font-size:0.75rem;
  padding:0.15rem 0.5rem;border-radius:3px;margin-left:0.5rem;vertical-align:middle;
}

/* RESTAURANT */
.r{border-left:3px solid #cd853f}

/* BAR */
.bar{border-left:3px solid #722f37}

/* SHOP / SMALL MUSEUM */
.shop{border-left:3px solid #4a6741}

/* EVENT (opera/concert) */
.event{border-left:4px solid #daa520}

/* TRANSPORT BOX */
.tb{
  background:#e8f5e9;border:1px solid #a5d6a7;border-radius:8px;
  padding:1rem 1.2rem;margin:1.5rem 0;
}
.tb h3{margin:0 0 0.5rem;color:#2e7d32}

/* TABLES */
table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:0.92rem}
th,td{padding:0.6rem 0.8rem;text-align:left;border-bottom:1px solid #e8e2da}
th{background:#f5f0ea;color:#5a1a00;font-weight:600}
tr:hover{background:#faf5ef}

/* INDEX HERO */
.hero{
  background:linear-gradient(135deg,#8b2500 0%,#a03000 50%,#cd5c3d 100%);
  color:#fff;padding:4rem 1.5rem;text-align:center;
}
.hero h1{font-size:2.6rem;margin:0 0 0.5rem;letter-spacing:1px}
.hero p{font-size:1.2rem;margin:0.3rem 0;opacity:0.92}
.hero .route{font-size:1.4rem;margin-top:1rem;letter-spacing:2px;opacity:0.85}

/* CITY LINK CARDS on index */
.city-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1.5rem 0}
.city-card{
  background:#fff;border:1px solid #e8e2da;border-radius:8px;padding:1.2rem;
  transition:transform 0.2s,box-shadow 0.2s;
}
.city-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b250015}
.city-card h3{margin:0 0 0.3rem;color:#8b2500}
.city-card p{margin:0.2rem 0;font-size:0.9rem;color:#666}

/* BUDGET */
.budget{background:#fff;border:1px solid #e8e2da;border-radius:8px;padding:1.2rem;margin:1.5rem 0}

/* RESPONSIVE */
@media(max-width:600px){
  .nav{gap:0.2rem 0.6rem;padding:0.5rem 0.8rem}
  .nav a{font-size:0.82rem;padding:0.25rem 0.4rem}
  .ch h1{font-size:1.8rem}
  .hero h1{font-size:1.8rem}
  .hero .route{font-size:1rem}
  .container{padding:1rem}
  .day{padding:1rem}
  table{font-size:0.82rem}
  th,td{padding:0.4rem 0.5rem}
}

/* STAR RATINGS */
.stars { display: inline-block; font-size: .82rem; margin-left: .4rem; text-decoration: none; color: #666; border: none; }
.stars:hover { color: #333; border: none; }
.stars .filled { color: #f5a623; }
.stars .empty { color: #ddd; }
.stars .count { color: #666; margin-left: .2rem; }

/* ATTRACTION THUMBNAIL IMAGES */
.s-img { width: 100%; max-height: 180px; object-fit: cover; border-radius: 6px 6px 0 0; margin: -0.6rem -0.8rem 0.6rem -0.8rem; width: calc(100% + 1.6rem); display: block; }
