/* ====== EXTRA STYLES — Início ====== */

/* ---- Apresentação: slideshow + links ---- */
.apres { background: var(--papel); padding-block: clamp(20px,3vw,36px); }
/* Seções empilhadas somam padding-top + padding-bottom (--section-y, até 112px
   cada) e ficam com respiro exagerado entre uma e outra — aperta a transição
   pra cada par específico da home. */
#noticias { padding-top: clamp(24px,4vw,48px); }
#noticias + .agenda { padding-top: clamp(24px,4vw,48px); }
.agenda + .artigos { padding-top: clamp(24px,4vw,48px); }
.artigos + .cta { padding-top: clamp(24px,4vw,48px); }
.cta + .footer { padding-top: 32px; }
.apres-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(32px,5vw,64px);
  align-items: stretch;
}

/* Slideshow */
.slideshow {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  height: 100%;
  min-height: 720px;
  background: transparent;
  /* Moldura: branco interno + borda azul + sombra */
  box-shadow: var(--shadow-lg);
  flex-shrink: 0;
}
.ss-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s ease; pointer-events: none; }
.ss-slide.active { opacity: 1; pointer-events: auto; }
.ss-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ss-caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 40px 24px 18px;
  background: linear-gradient(transparent, rgba(14,47,92,.75));
  color: #fff; font-size: .92rem; font-weight: 600; line-height: 1.4;
}
.ss-nav {
  position: absolute; bottom: 14px; right: 16px;
  display: flex; gap: 6px;
}
.ss-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: rgba(20,60,115,.35); border: 2px solid var(--azul-700); cursor: pointer;
  transition: background .3s, transform .3s; padding: 0;
}
.ss-dot.active { background: var(--azul-700); transform: scale(1.25); border-color: var(--azul-700); }
.ss-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(20,60,115,.55); border: none; cursor: pointer;
  color: #fff; border-radius: 50%; width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px); transition: background .2s;
  z-index: 2;
}
.ss-arrow:hover { background: var(--azul-700); }
.ss-arrow-prev { left: 12px; }
.ss-arrow-next { right: 12px; }

/* Link list */
.linklist { display: flex; flex-direction: column; min-width: 0; }
.ll-cats { display: flex; flex-direction: column; }
.ll-cats-pair { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--pedra-200); }
.ll-cats-pair .ll-cat { border-bottom: none; border-top: none; min-width: 0; }
.ll-cats-pair .ll-cat:first-child { border-right: 1px solid var(--pedra-200); }
.ll-cat {
  border-bottom: 1px solid var(--pedra-200);
  min-width: 0;
}
.ll-cat-btn {
  display: flex; align-items: center; gap: 12px;
  width: 100%; padding: 12px 8px; border: none;
  background: transparent; cursor: pointer; text-align: left;
  transition: background .18s; border-radius: 0;
}
.ll-cat-btn:hover { background: var(--azul-50); }
.ll-cat-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 9px; flex: 0 0 36px;
}
.ll-cat-icon--azul  { background: var(--azul-100);   color: var(--azul-700); }
.ll-cat-icon--sage  { background: var(--salvia-100);  color: var(--salvia-600); }
.ll-cat-icon--sky   { background: var(--ceu-200);     color: var(--azul-700); }
.ll-cat-icon--gold  { background: var(--luz-100);     color: var(--luz-600); }
.ll-cat-icon--rose  { background: #fce8e8;            color: #b94a4a; }
.ll-cat-name {
  flex: 1; font-weight: 700; font-size: .97rem; color: var(--text-strong);
}
.ll-cat-chev {
  flex: 0 0 auto; color: var(--tinta-400);
  transition: transform .28s; display: inline-flex;
}
.ll-cat.open .ll-cat-chev { transform: rotate(90deg); }
.ll-links {
  display: none; flex-direction: column;
  padding: 2px 8px 10px 56px; gap: 1px;
}
.ll-cat.open .ll-links { display: flex; }
.ll-cat.open .ll-links.ll-links--grid2 { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
.ll-link {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 10px; border-radius: 8px;
  color: var(--azul-700); font-size: .93rem; font-weight: 500;
  transition: background .18s, color .18s;
  text-decoration: none;
}
.ll-link:hover { background: var(--azul-50); color: var(--azul-900); }
.ll-link::before {
  content: ''; width: 5px; height: 5px; border-radius: 50%;
  background: var(--azul-300); flex: 0 0 5px;
}

/* ---- Agenda ---- */
.agenda { background: var(--pedra-100); padding-block: var(--section-y); }
.agenda-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 24px; margin-top: 48px;
}
.ag-card {
  background: var(--surface-card); border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
}
.ag-card-head {
  padding: 16px 20px 14px;
  display: flex; align-items: center; gap: 12px;
  border-bottom: 1px solid var(--border-soft);
}
.ag-card-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 10px; flex: 0 0 40px;
}
.ag-card-ico--azul { background: var(--azul-100); color: var(--azul-700); }
.ag-card-ico--sage { background: var(--salvia-100); color: var(--salvia-600); }
.ag-card-ico--sky  { background: var(--ceu-200); color: var(--azul-800); }
.ag-card-name {
  font-family: var(--font-serif); font-weight: 600;
  font-size: 1.05rem; color: var(--text-strong); line-height: 1.2;
}
.ag-card-freq {
  font-size: .8rem; color: var(--text-muted); margin-top: 2px; font-weight: 500;
}
.ag-events { display: flex; flex-direction: column; flex: 1; }
.ag-event {
  display: flex; gap: 14px; padding: 14px 20px;
  border-bottom: 1px solid var(--pedra-100); align-items: flex-start;
  cursor: pointer; transition: background .15s;
}
.ag-event:hover, .ag-event:focus-visible { background: var(--azul-50); outline: none; }
.ag-event:last-child { border-bottom: none; }
.ag-date {
  display: flex; flex-direction: column; align-items: center;
  background: var(--azul-100); color: var(--azul-800);
  border-radius: 8px; padding: 6px 9px;
  min-width: 48px; text-align: center; flex: 0 0 48px;
}
.ag-date-day { font-weight: 800; font-size: 1.3rem; line-height: 1; }
.ag-date-mon {
  font-size: .68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em; margin-top: 2px;
}
.ag-event-body { flex: 1; }
.ag-event-title {
  font-weight: 600; font-size: .94rem; color: var(--text-strong); line-height: 1.3;
}
.ag-event-meta {
  display: flex; align-items: center; gap: 4px 10px;
  margin-top: 4px; font-size: .82rem; color: var(--text-muted); flex-wrap: wrap;
}
.ag-event-meta__item { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.ag-see {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 13px; color: var(--azul-600); font-weight: 700; font-size: .88rem;
  border-top: 1px solid var(--pedra-100); transition: background .18s;
  text-decoration: none;
}
.ag-see:hover { background: var(--azul-50); }

/* ---- Calendário mensal ---- */
.cal-nav { display: flex; align-items: center; justify-content: center; gap: 20px; margin: 8px 0 28px; }
.cal-nav-btn {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--surface-card); color: var(--azul-700);
  box-shadow: var(--shadow-xs); transition: background .18s, box-shadow .18s;
}
.cal-nav-btn:hover { background: var(--azul-50); box-shadow: var(--shadow-sm); }
.cal-month-label { font-family: var(--font-serif); font-weight: 600; font-size: 1.3rem; color: var(--text-strong); min-width: 220px; text-align: center; }

.cal-grid { max-width: 880px; margin: 0 auto; }
.cal-weekdays {
  display: grid; grid-template-columns: repeat(7, 1fr);
  margin-bottom: 8px;
}
.cal-weekdays span {
  text-align: center; font-size: .78rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted);
}
.cal-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin-bottom: 6px; }
.cal-day {
  aspect-ratio: 1 / 1; border-radius: var(--radius-md);
  background: var(--surface-card); border: 1px solid var(--border-soft);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; position: relative;
}
.cal-day-num { font-weight: 700; font-size: .92rem; color: var(--text-body); }
.cal-day--out { background: transparent; border-color: transparent; }
.cal-day--out .cal-day-num { color: var(--pedra-200); }
.cal-day--today { border-color: var(--azul-500); }
.cal-day--today .cal-day-num { color: var(--azul-700); }
.cal-day--has-events { cursor: pointer; transition: background .18s, box-shadow .18s; }
.cal-day--has-events:hover { background: var(--azul-50); box-shadow: var(--shadow-sm); }
.cal-day-dots { display: flex; gap: 3px; }
.cal-dot { width: 6px; height: 6px; border-radius: 50%; }
.cal-dot--azul { background: var(--azul-600); }
.cal-dot--sage { background: var(--salvia-500); }
.cal-dot--sky  { background: var(--azul-400); }

.cal-day-event { padding: 16px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); }
.cal-day-event + .cal-day-event { margin-top: 12px; }
.cal-day-event h4 { font-family: var(--font-serif); font-weight: 600; font-size: 1.05rem; color: var(--text-strong); margin: 8px 0; }

@media(max-width: 620px) {
  .cal-day-num { font-size: .82rem; }
  .cal-month-label { font-size: 1.1rem; min-width: 160px; }
}

/* ---- Artigos ---- */
.artigos { background: var(--surface-card); padding-block: var(--section-y); }
.art-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 28px; margin-top: 48px;
}
.art-card {
  display: flex; flex-direction: column;
  border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
  overflow: hidden; box-shadow: var(--shadow-xs);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  text-decoration: none; color: inherit; background: var(--surface-card);
}
.art-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.art-img {
  aspect-ratio: 16/10; overflow: hidden;
  background: var(--azul-50); position: relative;
}
.art-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 520ms var(--ease); display: block;
}
.art-card:hover .art-img img { transform: scale(1.05); }
.art-body { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.art-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.art-date { font-size: .82rem; color: var(--text-muted); font-weight: 500; }
.art-title {
  font-family: var(--font-serif); font-weight: 600; font-size: 1.18rem;
  line-height: 1.28; color: var(--text-strong); text-wrap: pretty;
}
.art-excerpt { font-size: .95rem; line-height: 1.55; color: var(--text-muted); text-wrap: pretty; }
.art-link {
  margin-top: auto; padding-top: 8px; display: inline-flex;
  align-items: center; gap: 6px; color: var(--azul-600);
  font-weight: 700; font-size: .9rem;
}

.empty-hint { color: var(--text-muted); font-size: .95rem; grid-column: 1 / -1; }

/* ---- Responsive tweaks ---- */
@media(max-width:1080px) {
  .apres-grid { grid-template-columns: 1fr; }
  .agenda-grid { grid-template-columns: 1fr 1fr; }
  .art-grid { grid-template-columns: 1fr 1fr; }
  .slideshow { min-height: 0; height: auto; aspect-ratio: 3 / 4; }
}
@media(max-width:760px) {
  .agenda-grid, .art-grid { grid-template-columns: 1fr; }
}
@media(max-width:480px) {
  .ll-cats-pair { grid-template-columns: 1fr; }
  .ll-cats-pair .ll-cat:first-child { border-right: none; border-bottom: 1px solid var(--pedra-200); }
  .ll-cat.open .ll-links.ll-links--grid2 { grid-template-columns: 1fr; }
}

/* ---- Modal de detalhes do evento: ver .event-modal* em site.css (compartilhado) ---- */
