/* ── Custom Tab Widget ── */
:root {
  --ctw-content-bg:   #ffffff;
  --ctw-radius:       10px;
  --ctw-shadow:       0 4px 24px rgba(0,0,0,0.07);
  --ctw-border:       #e2e8f0;
  --ctw-font:         'Poppins', sans-serif;
}

.ctw-tab-widget {
  width: 100%;
  background: var(--ctw-content-bg);
  border-radius: var(--ctw-radius);
  box-shadow: var(--ctw-shadow);
  overflow: hidden;
  border: 1px solid var(--ctw-border);
  font-family: var(--ctw-font);
}

/* ── Tab Nav (hidden — controlled externally via hash links) ── */
.ctw-tab-nav { display: none; }

/* ── Tab Content wrapper ── */
.ctw-tab-content { padding: 40px 36px; }

/* ── Individual panels ── */
.ctw-panel {
  display: none;
  animation: ctwFadeIn 0.3s ease;
}
.ctw-panel.active { display: block; }

@keyframes ctwFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Headings ── */
.ctw-panel h1 {
  font-size: 28px;
  font-weight: 600;
  color: #0f172a;
  line-height: 1.3;
  margin: 0 0 24px;
}

.ctw-year-heading {
  font-size: 18px;
  font-weight: 600;
  color: #374151;
  margin: 28px 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #e2e8f0;
}

/* ── 3×3 Image Grid ── */
.ctw-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 8px;
}

.ctw-img-wrap {
  display: block;
  overflow: hidden;
  border-radius: 8px;
  aspect-ratio: 16 / 9;
  background: #f1f5f9;
}

.ctw-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
  border-radius: 8px;
}

.ctw-img-wrap:hover img {
  transform: scale(1.04);
}

/* ── Responsive ── */
@media (max-width: 600px) {
  .ctw-tab-content { padding: 24px 18px; }
  .ctw-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .ctw-panel h1 { font-size: 22px; }
  .ctw-gallery-grid img { border-radius: 3px; !important }
  h3.ctw-year-heading { font-size: 23px; }
}
