/* Cabeçalho padrão das páginas internas */

.theme-page-hero {
  padding: clamp(0.65rem, 1.5vw, 1rem) 0 0.15rem;
  background: var(--color-background, #fff8f3);
  color: var(--color-text, #1a1a1a);
}

/*
 * Páginas internas (não a home) têm um título (.theme-page-hero) acima do
 * conteúdo principal, mas a barra lateral não tem esse título — por padrão
 * ela ficava alinhada ao topo da coluna, "flutuando" ao lado do título em
 * vez do conteúdo. Aqui ela desce para começar rente ao conteúdo (a home
 * não usa .theme-page-hero, então não é afetada).
 */
@media (min-width: 1100px) {
  .site-shell:has(> .site-shell__main .theme-page-hero) .site-shell__aside {
    position: static;
  }
}

.theme-page-hero--embed {
  padding-top: clamp(0.5rem, 1.2vw, 0.75rem);
  padding-bottom: 0.1rem;
}

.theme-page-hero__back {
  display: inline-flex;
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-primary, #ff6b00) !important;
  text-decoration: none;
}

.theme-page-hero__back:hover,
.theme-page-hero__back:focus {
  text-decoration: none;
  opacity: 0.85;
}

.theme-page-hero__title {
  margin: 0 0 0.2rem;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 800;
  color: var(--color-text, #1a1a1a);
}

.theme-page-hero--embed .theme-page-hero__title {
  font-size: clamp(1.2rem, 2.6vw, 1.5rem);
}

.theme-page-hero__lead {
  margin: 0;
  opacity: 0.75;
  color: var(--color-text, #1a1a1a);
}

.theme-page-body {
  padding: 1.15rem 0 2.4rem;
  background: transparent;
  color: var(--color-text, #1a1a1a);
}

.section.page-content.theme-page-body {
  padding: 1.15rem 0 2.4rem;
  background: transparent;
}

.contact-page__intro {
  margin: 0 0 1.15rem;
  line-height: 1.65;
}

.contact-page__intro > :first-child {
  margin-top: 0;
}

.contact-page__intro > :last-child {
  margin-bottom: 0;
}

.content-block {
  line-height: 1.65;
  color: var(--color-text, #1a1a1a);
}

.content-block > :first-child {
  margin-top: 0;
}

.content-block > :last-child {
  margin-bottom: 0;
}

.content-block h2,
.content-block h3 {
  margin: 1.25rem 0 0.55rem;
  font-weight: 800;
  line-height: 1.3;
}

.content-block p,
.content-block ul,
.content-block ol {
  margin: 0 0 0.9rem;
}

.content-block a {
  color: var(--color-primary, #ff6b00);
  font-weight: 600;
}

.static-page-board {
  max-width: none;
}

.contact-board {
  --schedule-accent: var(--color-primary, #ff6b00);
  background: var(--color-surface, #fff);
  color: var(--color-text, #1a1a1a);
  border-radius: var(--theme-box-radius, 16px);
  box-shadow: 0 10px 32px rgba(15, 23, 42, 0.08);
  padding: 1.15rem 1.2rem 1.25rem;
  overflow: hidden;
}

html[data-theme-mode="dark"] .contact-board {
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.35);
}

@media (max-width: 640px) {
  .contact-board {
    padding: 0.9rem 0.75rem 1rem;
  }
}

.contact-page__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 1.35rem;
  align-items: start;
}

.contact-page__col {
  display: grid;
  gap: 0.5rem;
}

.contact-board .program-row {
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 0.55rem;
  padding: 0.4rem 0.7rem 0.4rem 0.75rem;
}

.contact-board .program-row__time {
  margin: 0;
  font-size: 0.78rem;
}

.contact-board .program-row__title {
  font-size: 0.92rem;
}

.contact-board .program-row.is-clickable:hover,
.contact-board .program-row.is-clickable:focus-visible {
  box-shadow: 0 10px 22px color-mix(in srgb, var(--color-primary, #ff6b00) 18%, transparent);
}

.contact-channel__icon,
html[data-theme-mode] .contact-channel__icon.program-row__thumb--fallback {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  background: transparent;
  color: var(--color-primary, #ff6b00);
}

.contact-channel__icon svg {
  width: 22px;
  height: 22px;
}

.contact-page__map-frame {
  overflow: hidden;
  margin-top: 0.85rem;
  border-radius: var(--theme-box-radius-inner, 12px);
  border-left: 5px solid var(--color-primary, #ff6b00);
  aspect-ratio: 4 / 3;
  min-height: 220px;
  background: color-mix(in srgb, var(--color-text, #1a1a1a) 6%, var(--color-surface, #f4f4f7));
}

.contact-page__map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.contact-page__form-wrap {
  min-width: 0;
}

.contact-form .form-group label {
  color: var(--color-primary, #ff6b00);
  font-weight: 600;
}

html[data-theme-mode] .contact-page .contact-form .form-group input,
html[data-theme-mode] .contact-page .contact-form .form-group textarea,
.contact-page .contact-form .form-group input,
.contact-page .contact-form .form-group textarea {
  border: 0;
  background: color-mix(in srgb, var(--color-text, #1f1f2e) 8%, var(--color-surface, #f4f4f7));
  color: var(--color-text, #1a1a1a);
  caret-color: var(--color-text, #1a1a1a);
  border-radius: var(--theme-box-radius-inner, 12px);
  border-left: 5px solid var(--color-primary, #ff6b00);
}

html[data-theme-mode="dark"] .contact-page .contact-form .form-group input,
html[data-theme-mode="dark"] .contact-page .contact-form .form-group textarea {
  background: color-mix(in srgb, var(--color-text, #f7ede4) 12%, var(--color-surface, #221c18));
}

.contact-form .form-group input::placeholder,
.contact-form .form-group textarea::placeholder {
  color: color-mix(in srgb, var(--color-text, #1a1a1a) 45%, transparent);
}

html[data-theme-mode] .contact-form .btn-listen {
  background: var(--color-primary, #ff6b00);
  color: #fff;
}

html[data-theme-mode="dark"] .contact-page__alert--ok {
  color: #86efac;
}

html[data-theme-mode="dark"] .contact-page__alert--error {
  color: #fca5a5;
}

.contact-page__alert {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  font-weight: 600;
}

.contact-page__alert--ok {
  background: color-mix(in srgb, #16a34a 14%, transparent);
  color: #166534;
}

.contact-page__alert--error {
  background: color-mix(in srgb, #dc2626 12%, transparent);
  color: #991b1b;
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  max-width: none;
}

.contact-form .form-group small {
  font-weight: 500;
  opacity: 0.65;
}

.contact-form .btn-listen {
  align-self: flex-start;
}

.contact-form__captcha {
  max-width: 220px;
}

.contact-form__captcha input {
  max-width: 220px;
}

.contact-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

@media (max-width: 860px) {
  .contact-page__grid {
    grid-template-columns: 1fr;
  }
}

/* Mural (guestbook) */
.guestbook-page__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 1.35rem;
  align-items: start;
}

.guestbook-page__list h2,
.guestbook-page__form-wrap h2 {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
}

.guestbook-emoji-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.4rem;
}

.guestbook-emoji-btn {
  border: 0;
  background: color-mix(in srgb, var(--color-text, #1f1f2e) 8%, var(--color-surface, #f4f4f7));
  border-radius: 8px;
  width: 2rem;
  height: 2rem;
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}

.guestbook-emoji-btn:hover,
.guestbook-emoji-btn:focus-visible {
  background: color-mix(in srgb, var(--color-primary, #ff6b00) 18%, transparent);
  transform: translateY(-1px);
}

.guestbook-list {
  display: grid;
  gap: 0.75rem;
}

.guestbook-entry {
  padding: 0.85rem 1rem;
  border-radius: var(--theme-box-radius-inner, 12px);
  background: color-mix(in srgb, var(--color-text, #1f1f2e) 5%, var(--color-surface, #f4f4f7));
}

.guestbook-entry__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
  margin-bottom: 0.3rem;
}

.guestbook-entry__name {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--color-primary, #ff6b00);
}

.guestbook-entry__location {
  font-family: inherit;
  font-weight: 500;
  font-size: 0.85em;
  opacity: 0.7;
}

/* Home mural cards use the same type as /mural */
.section-guestbook .card.guestbook-entry {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.section-guestbook .guestbook-entry__head {
  margin-bottom: 0.3rem;
}

.section-guestbook .guestbook-entry__name.card-title,
.section-guestbook h3.guestbook-entry__name {
  margin: 0;
  font-family: inherit !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.6;
  color: var(--color-primary, #ff6b00) !important;
}

.section-guestbook .guestbook-entry__location {
  font-family: inherit;
  font-weight: 500;
  font-size: 0.85em;
  opacity: 0.7;
  color: inherit;
}

.section-guestbook .guestbook-entry__message.card-text,
.section-guestbook p.guestbook-entry__message {
  margin: 0;
  font-family: inherit !important;
  font-size: 1rem !important;
  font-weight: 400;
  line-height: 1.55;
  opacity: 1 !important;
  color: var(--color-text, #1a1a1a) !important;
  word-break: break-word;
}

html[data-theme-mode="dark"] .section-guestbook .guestbook-entry__message.card-text,
html[data-theme-mode="dark"] .section-guestbook p.guestbook-entry__message {
  color: var(--color-text, #f2f2f2) !important;
}

/* Home pedidos — capa à esquerda, textos centralizados */
.section-requests .card.guestbook-entry {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.85rem;
}

.section-requests .card.guestbook-entry .guestbook-entry__body {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.section-requests .guestbook-entry__head {
  margin-bottom: 0.3rem;
}

.section-requests .guestbook-entry__name.card-title,
.section-requests h3.guestbook-entry__name {
  margin: 0;
  font-family: inherit !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.6;
  color: var(--color-primary, #ff6b00) !important;
}

.section-requests .guestbook-entry__message.card-text,
.section-requests p.guestbook-entry__message {
  margin: 0;
  font-family: inherit !important;
  font-size: 1rem !important;
  font-weight: 400;
  line-height: 1.55;
  opacity: 1 !important;
  color: var(--color-text, #1a1a1a) !important;
  word-break: break-word;
}

html[data-theme-mode="dark"] .section-requests .guestbook-entry__message.card-text,
html[data-theme-mode="dark"] .section-requests p.guestbook-entry__message {
  color: var(--color-text, #f2f2f2) !important;
}

/* Pedidos — capa automática no formulário e lista */
.requests-cover[hidden],
.requests-cover__img[hidden],
.requests-cover__hint[hidden] {
  display: none !important;
}

.requests-cover {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  min-height: 4.5rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--color-primary, #ff6b00) 8%, transparent);
}

.requests-cover__img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
  box-shadow: 0 4px 14px color-mix(in srgb, #000 18%, transparent);
}

.requests-cover__hint {
  margin: 0;
  font-size: 0.9rem;
  opacity: 0.75;
}

.guestbook-entry--with-cover {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.guestbook-entry__cover-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 56px;
  width: 56px;
  flex-shrink: 0;
}

.guestbook-entry__cover {
  display: block;
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 8px;
  background: color-mix(in srgb, var(--color-text, #111) 8%, transparent);
}

.guestbook-entry__cover--empty {
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--color-primary, #ff6b00) 28%, transparent), color-mix(in srgb, var(--color-text, #111) 12%, transparent));
}

.guestbook-entry__body {
  min-width: 0;
  flex: 1;
}

.guestbook-entry__player {
  display: flex;
  justify-content: center;
  width: 100%;
}

.guestbook-entry__player .audio-player--bubble {
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  grid-template-columns: none;
}

.guestbook-entry__player .audio-player--bubble .audio-player__play {
  width: 28px;
  height: 28px;
}

.section-requests .card.guestbook-entry .card-img,
.section-requests .card.guestbook-entry .guestbook-entry__cover {
  flex: 0 0 4.5rem;
  width: 4.5rem;
  height: 4.5rem;
  object-fit: cover;
  border-radius: 10px;
  margin: 0;
  align-self: center;
}

.guestbook-entry__date {
  font-size: 0.78rem;
  opacity: 0.6;
  white-space: nowrap;
}

.guestbook-entry__message {
  margin: 0;
  line-height: 1.55;
  word-break: break-word;
}

.guestbook-entry__reply {
  margin-top: 0.6rem;
  padding: 0.55rem 0.7rem;
  border-left: 3px solid var(--color-primary, #ff6b00);
  background: color-mix(in srgb, var(--color-primary, #ff6b00) 8%, transparent);
  border-radius: 6px;
}

.guestbook-entry__reply-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--color-primary, #ff6b00);
  margin-bottom: 0.15rem;
}

.guestbook-entry__reply-message {
  margin: 0;
  line-height: 1.5;
  word-break: break-word;
}

.guestbook-list__empty {
  opacity: 0.65;
}

@media (max-width: 860px) {
  .guestbook-page__grid {
    grid-template-columns: 1fr;
  }
}

.guestbook-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.55rem 0.75rem;
  margin: 1.1rem 0 0;
  padding-top: 1rem;
}

.guestbook-pagination__pages {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.guestbook-pagination a,
.guestbook-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--color-border, rgba(0, 0, 0, 0.12));
  color: var(--color-text, #1a1a1a) !important;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none !important;
}

.guestbook-pagination a:hover,
.guestbook-pagination a:focus {
  border-color: var(--color-primary, #ff6b00);
  color: var(--color-primary, #ff6b00) !important;
  text-decoration: none !important;
}

.guestbook-pagination .is-current {
  background: var(--color-primary, #ff6b00);
  border-color: var(--color-primary, #ff6b00);
  color: #fff !important;
}

.guestbook-pagination .is-disabled {
  opacity: 0.38;
  cursor: default;
}

.guestbook-pagination__gap {
  min-width: 1rem;
  border: 0;
  opacity: 0.55;
}
