:root {
  --bg: #fdfdfd;
  --text: #111;
  --accent: #7A003C;      /* Villa claret */
  --accent-alt: #95BFE5;  /* Villa blue */
  --accent-contrast: #fff;
  --thumb-border: #7A003C;
  --thumb-active: #95BFE5;
  --control-bg: rgba(122,0,60,0.5);
  --control-bg-hover: rgba(122,0,60,0.85);
  --tile-gap: 10px;
  --fade-ms: 1000ms;
}

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Arial, sans-serif;
  text-align: center;
}

/* ---- Home header ---- */
.wedding-header { text-align:center; margin:30px auto 40px; font-family:"Georgia", serif; color:#333; }
.wedding-header h1 { font-size:2.6rem; margin-bottom:8px; color:var(--accent); }
.wedding-header .wedding-date { font-size:1.2rem; font-style:italic; margin-bottom:4px; color:var(--accent-alt); }
.wedding-header .wedding-venue { font-size:1.1rem; color:#444; }

/* ---- Breadcrumbs & page nav ---- */
.breadcrumbs { margin:6px 0 16px; font-size:0.9rem; color:#555; }
.breadcrumbs a { color:var(--accent); text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; color:var(--accent-alt); }

.page-nav { margin:16px 0 24px; }
.page-nav a { color:var(--accent); text-decoration:none; font-weight:600; margin:0 6px; }
.page-nav a:hover { text-decoration:underline; color:var(--accent-alt); }

/* ---- Buttons ---- */
.ghost {
  background: var(--accent);           
  border: 2px solid var(--accent-alt);
  color: var(--accent-alt);            
  padding: 6px 14px;
  margin: 0 6px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: bold;
  transition: all 0.2s ease;
}
.ghost:hover {
  background: var(--accent-alt);       
  border-color: var(--accent-alt);        
  color: var(--accent);              
}

/* ---- Slideshow ---- */
.slideshow-shell {
  position: relative;
  max-width: min(96vw, 1100px);
  margin: 20px auto;
}

.slideshow-container {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  background: #000;
  min-height: clamp(260px, 60vh, 800px);
}

.slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity var(--fade-ms) ease;
}
.slide.is-active { opacity: 1; z-index: 1; }
.slide a { display: contents; }

/* ✅ Fix: scale full image, no cropping */
.slide img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  background: #000;
}

/* arrows */
.nav-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: var(--accent);              
  border: 2px solid var(--accent-alt); 
  color: var(--accent-alt);      
  font-size: 2rem;
  padding: 10px 16px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 2;
  transition: all 0.2s;
}
.nav-arrow:hover {
  background: var(--accent-alt);    
  color: var(--accent);                  
  border-color: var(--accent-alt); 
}
.nav-arrow.prev { left: 15px; }
.nav-arrow.next { right: 15px; }

/* controls row */
.controls { margin: 12px 0; }

/* thumbnails */
.thumb-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  padding: 8px 0;
  margin-top: 12px;
  justify-content: center;
}
.thumb-bar::-webkit-scrollbar { display: none; }
.thumb {
  width: 70px; height: 50px;
  object-fit: cover;
  border: 2px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  transition: transform .2s, border .2s, opacity .2s;
  opacity: .85;
}
.thumb:hover { transform: scale(1.05); opacity: 1; }
.thumb.is-active { border-color: var(--thumb-active); }

/* view-all button wrapper */
.view-all-wrap { margin: 16px 0; }

/* gallery grid */
.gallery {
  display: none;
  max-width: 1100px;
  margin: 20px auto;
  gap: var(--tile-gap);
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
.gallery.is-visible { display: grid; }

/* ✅ Fix: gallery images scale by width, keep aspect ratio */
.gallery a img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: top;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transition: transform .2s;
}
.gallery a img:hover { transform: scale(1.05); }

/* small screens */
@media (max-width: 600px) {
  .nav-arrow { font-size: 1.6rem; padding: 8px 12px; }
  .thumb { width: 60px; height: 44px; }
  .gallery a img { height: auto; }
}

/* ---- Category cards on home page ---- */
.categories {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  margin: 40px auto;
  max-width: 1100px;
}
.category {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: var(--text);
  max-width: 260px;
  transition: transform 0.2s, box-shadow 0.2s;
  border-radius: 12px;
  overflow: hidden;
}
.category img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 12px 12px 0 0;
  margin-bottom: 0;
}
.category h2 {
  font-size: 1.2rem;
  color: var(--accent);
  margin: 12px 0;
}
.category:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 16px rgba(122, 0, 60, 0.3);
  border-radius: 12px;
}
.category:hover h2 {
  color: var(--accent-alt);
}
