:root {
  --te-graphite: #1a1f2e;
  --te-graphite-light: #252b3d;
  --te-warm: #fafaf8;
  --te-sand: #f5f0e8;
  --te-lime: #bef264;
  --te-orange: #EA580C;
  --te-orange-hover: #C2410C;
  --te-forest: #1b4332;
}

html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body { color: var(--te-graphite); background: var(--te-warm); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
:focus-visible { outline: 3px solid #2563eb !important; outline-offset: 3px; }
[hidden], .hidden { display: none !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 1100; left: 1rem; top: -5rem; padding: .75rem 1rem; color: var(--te-graphite); background: #fff; border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.staging-banner { padding: .5rem 1rem; text-align: center; color: #78350f; background: #fffbeb; border-bottom: 1px solid #fcd34d; }
.maintenance-preview-banner { position: sticky; top: 0; z-index: 1090; display: flex; align-items: center; justify-content: center; gap: .5rem; flex-wrap: wrap; padding: .5rem 1rem; text-align: center; color: #fff; background: #b91c1c; font-size: .875rem; }
.maintenance-preview-banner a { color: #fecaca; font-weight: 600; }
.maintenance-preview-banner a:hover { color: #fff; }
.topbar { color: #e5e7eb; background: var(--te-graphite-light); font-size: .82rem; }
.topbar a { min-height: 44px; display: inline-flex; align-items: center; color: #e5e7eb; text-decoration: none; }
.topbar a:hover { color: var(--te-lime); }
.language-link { min-width: 44px; justify-content: center; border-radius: .4rem; font-weight: 600; text-transform: uppercase; }
.language-link[aria-current="true"] { color: var(--te-lime); background: rgb(255 255 255 / 10%); }
.social-link { min-width: 44px; justify-content: center; }
.social-link svg { width: 20px; height: 20px; }
.topbar-actions { flex-wrap: wrap; min-width: 0; justify-content: flex-end; }
.site-nav { background: rgb(26 31 46 / 98%); box-shadow: 0 8px 24px rgb(0 0 0 / 12%); }
.navbar-brand img { width: 146px; height: auto; filter: brightness(0) invert(1); }
.navbar .nav-link { min-height: 44px; display: inline-flex; align-items: center; color: #e5e7eb; border-radius: .5rem; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--te-lime); background: rgb(255 255 255 / 7%); }
.navbar-toggler { min-width: 44px; min-height: 44px; }
@media (max-width: 1199.98px) {
  .site-nav .navbar-collapse { max-height: calc(100dvh - var(--nav-panel-offset, 64px)); overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(.5rem, env(safe-area-inset-bottom)); }
}
@media (min-width: 1200px) {
  .site-nav .navbar-collapse { max-height: none; overflow-y: visible; }
}
.btn, .form-control, .form-select { min-height: 44px; }
.btn { display: inline-flex; align-items: center; justify-content: center; }
.btn-primary { --bs-btn-bg: var(--te-orange); --bs-btn-border-color: var(--te-orange); --bs-btn-hover-bg: var(--te-orange-hover); --bs-btn-hover-border-color: var(--te-orange-hover); font-weight: 700; }
.btn-whatsapp, .btn-success { --bs-btn-bg: var(--te-forest); --bs-btn-border-color: var(--te-forest); --bs-btn-hover-bg: #2d6a4f; --bs-btn-hover-border-color: #2d6a4f; color: #fff; font-weight: 700; min-height: 44px; }
.site-footer { color: #d1d5db; background: #121622; }
.site-footer .row { margin-inline: 0; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--te-lime); }
.footer-title { color: var(--te-lime); font-size: .78rem; font-weight: 800; letter-spacing: .1em; }
.footer-links li + li { margin-top: .45rem; }
/* Acessibilidade: sobre os fundos escuros (topbar e rodapé), o ".text-secondary"
   do Bootstrap (~#6c757d) tem contraste insuficiente. #B3B8BD passa WCAG AA em escuro.
   Escopo restrito à topbar/rodapé — não afeta o texto muted sobre fundo branco. */
.topbar .text-secondary,
.site-footer .text-secondary,
.site-footer .text-muted {
  color: #B3B8BD !important;
}
/* WCAG 1.4.1 (uso da cor): links dentro de blocos de texto no rodapé — lista de
   contactos ("Telefone: <link>") e linha de copyright ("© … <link RNAAT>") — têm de
   ter sublinhado para não dependerem só da cor. Os menus .footer-links são listas de
   navegação (link ocupa o item inteiro) e não precisam. */
.topbar a:not(.language-link):not(.social-link),
.site-footer .list-unstyled.small a,
.site-footer .border-top a {
  text-decoration: underline;
  text-underline-offset: 2px;
}
@keyframes cookie-slide-up { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.cookie-banner { position: fixed; z-index: 1080; inset: auto 0 0; max-height: 100dvh; overflow-y: auto; padding: 1.25rem max(1.25rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left)); color: var(--te-graphite); background: var(--te-warm); box-shadow: 0 -1px 0 rgb(0 0 0 / 6%), 0 -8px 32px rgb(26 31 46 / 10%), 0 -24px 48px rgb(26 31 46 / 6%); animation: cookie-slide-up .3s cubic-bezier(.22, 1, .36, 1) both; }
.cookie-banner__inner { display: flex; align-items: center; gap: 2rem; }
.cookie-banner__title { display: flex; align-items: center; gap: .5rem; font-size: .9375rem; font-weight: 700; margin-bottom: .4rem; letter-spacing: -.01em; }
.cookie-banner__title svg { flex-shrink: 0; color: var(--te-orange); }
.cookie-banner__text { font-size: .875rem; color: #4b5563; margin-bottom: .875rem; line-height: 1.55; max-width: 76ch; }
.cookie-banner__bar { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.cookie-banner__btn-group { display: flex; gap: .5rem; }
.cookie-banner__btn-group .btn { min-width: 6.5rem; }
.cookie-banner .btn { min-height: 44px; white-space: nowrap; font-size: .875rem; }
.cookie-btn-manage { background: none; border: 0; padding: 0; font-size: .8125rem; color: #4b5563; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; }
.cookie-btn-manage:hover, .cookie-btn-manage:focus-visible { color: var(--te-graphite); outline-offset: 2px; }
.cookie-policy-link { font-size: .8rem; color: #4b5563; text-underline-offset: 3px; white-space: nowrap; margin-left: auto; }
.cookie-policy-link:hover { color: var(--te-graphite); }
.cookie-pref-panel { border: 1px solid #e5e7eb; border-radius: .75rem; padding: .875rem 1rem; margin-top: .875rem; background: #fff; }
.cookie-pref-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .625rem 0; }
.cookie-pref-row + .cookie-pref-row { border-top: 1px solid #f3f4f6; }
.cookie-pref-label { flex: 1; cursor: default; }
.cookie-pref-label strong { display: block; font-size: .8125rem; font-weight: 600; }
.cookie-pref-label small { color: #6b7280; font-size: .75rem; line-height: 1.45; }
.cookie-pref-always { flex-shrink: 0; font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #6b7280; border: 1px solid #e5e7eb; border-radius: 9999px; padding: .15rem .55rem; white-space: nowrap; margin-top: .125rem; }
.cookie-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-width: 44px; min-height: 44px; }
.cookie-toggle input[type="checkbox"] { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.cookie-toggle__track { display: inline-block; width: 2.5rem; height: 1.375rem; border-radius: 9999px; background: #d1d5db; cursor: pointer; position: relative; transition: background .2s; }
.cookie-toggle input:checked + .cookie-toggle__track { background: var(--te-graphite); }
.cookie-toggle__track::after { content: ''; position: absolute; inset: .1875rem auto auto .1875rem; width: 1rem; height: 1rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / 20%); transition: transform .2s; }
.cookie-toggle input:checked + .cookie-toggle__track::after { transform: translateX(1.125rem); }
.cookie-toggle input:focus-visible + .cookie-toggle__track { outline: 3px solid #2563eb; outline-offset: 3px; }
.cookie-save-btn { margin-top: .75rem; font-size: .8125rem !important; padding: .5rem 1.25rem; }
.accessibility-float { position: fixed; z-index: 1040; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); display: flex; flex-direction: column; align-items: end; gap: .5rem; }
.accessibility-button { min-width: 44px; min-height: 44px; border: 1px solid #d1d5db; border-radius: .5rem; color: var(--te-graphite); background: #fff; box-shadow: 0 3px 12px rgb(0 0 0 / 12%); }
.cookie-float-btn { display: inline-flex; align-items: center; justify-content: center; color: var(--te-orange); cursor: pointer; }
.content-section { padding-block: 1rem; }
.bootstrap-grid { display: grid; gap: 1.5rem; }
.bootstrap-grid-2,
.bootstrap-grid-3,
.bootstrap-grid-4 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) {
  .bootstrap-grid-2,
  .bootstrap-grid-3,
  .bootstrap-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  .bootstrap-grid-3,
  .bootstrap-grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .bootstrap-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.content-card, .surface-card { background: #fff; border-radius: 1rem !important; }
.content-link { text-underline-offset: .2em; }
.article-content { max-width: 960px; margin-inline: auto; font-size: 1.05rem; line-height: 1.8; }
.article-content h1, .article-content h2, .article-content h3 { line-height: 1.2; }
.article-content img,
.prose img,
.lh-lg img,
main img { max-width: 100%; height: auto; }
.article-content img { display: block; margin-block: 1.5rem; }
.article-content, .prose { min-width: 0; overflow-wrap: anywhere; }
.article-content iframe, .prose iframe { max-width: 100%; }
.article-content table,
.prose table,
.lh-lg table { font-size: .95rem; border-collapse: collapse; }
.prose .table-responsive > table { min-width: 100%; }
.article-content table th,
.prose table th,
.lh-lg table th { padding: .45rem .75rem; border: 1px solid #dee2e6; font-weight: 600; background: var(--te-sand, #f5f0ea); vertical-align: top; }
.article-content table td,
.prose table td,
.lh-lg table td { padding: .45rem .75rem; border: 1px solid #dee2e6; vertical-align: top; overflow-wrap: normal; }
.article-content table th,
.prose table th,
.lh-lg table th { overflow-wrap: normal; }
.prose table td code, .lh-lg table td code { white-space: nowrap; }
.article-content table tbody tr:nth-child(even) td,
.prose table tbody tr:nth-child(even) td,
.lh-lg table tbody tr:nth-child(even) td { background: #f8f9fa; }
.article-content > p:first-of-type { font-size: 1.15rem; color: #4b5563; }
.section-dark { margin-inline: calc(50% - 50vw); padding-inline: max(1rem, calc((100vw - 1320px) / 2)); color: #fff; background: var(--te-graphite); }
.section-sand { margin-inline: calc(50% - 50vw); padding-inline: max(1rem, calc((100vw - 1320px) / 2)); background: var(--te-sand); }
.section-light { background: var(--te-warm); }
.text-brand-warm { color: var(--te-warm) !important; }
.text-brand-graphite { color: var(--te-graphite) !important; }
.text-brand-orange { color: var(--te-orange) !important; }
.text-brand-forest { color: var(--te-forest) !important; }
.text-brand-lime { color: var(--te-lime) !important; }
.bg-brand-graphite, .bg-brand-graphite-light { background: var(--te-graphite) !important; }
.bg-brand-sand { background: var(--te-sand) !important; }
.bg-brand-warm { background: var(--te-warm) !important; }
.heading-page, .heading-section { font-weight: 800; letter-spacing: -.03em; }
.trail-accent { width: 4rem; height: 4px; margin-bottom: 1rem; border-radius: 999px; background: linear-gradient(90deg, var(--te-lime), var(--te-orange)); }
.line-clamp-3 { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.object-cover { object-fit: cover; }
.w-full { width: 100%; }
.min-h-11 { min-height: 2.75rem; }

.gallery-grid__item { overflow: hidden; }
.gallery-grid__image {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--te-warm);
}
.gallery-album + .gallery-album { border-top: 1px solid rgba(0, 0, 0, 0.06); padding-top: 0.5rem; }

@media (min-width: 992px) {
  article.prose img { max-width: 720px; display: block; margin-inline: auto; }
}

/* ── Blog: coluna de leitura e corpo ────────────────────── */
article.prose .lh-lg {
  font-size: 1.05rem;
  line-height: 1.8;
  max-width: 72ch;
  margin-inline: auto;
}
article.prose .lh-lg > p:first-of-type {
  font-size: 1.12rem;
  color: #4b5563;
  line-height: 1.7;
}

/* ── Blog: títulos ───────────────────────────────────────── */
article.prose h2 {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 3px solid var(--te-lime);
}
article.prose h3 {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--te-orange);
  margin-top: 1.5rem;
  margin-bottom: 0.4rem;
}

/* ── Links em conteúdo editorial (blog, tours, páginas CMS) ─ */
.lh-lg.prose a {
  color: var(--te-forest);
  text-underline-offset: .2em;
}
.lh-lg.prose a:hover {
  color: var(--te-orange-hover);
}
.lh-lg.prose a:visited {
  color: #2d5a3d;
}

/* ── Blog: listagem de artigos ──────────────────────────── */
.blog-list {
  list-style: none;
  padding-left: 0;
  margin-top: 1.5rem;
}
.blog-list > li {
  padding-block: 1rem 1.25rem;
  border-bottom: 1px solid rgba(0,0,0,.07);
}
.blog-list > li:last-child { border-bottom: none; }
.blog-list > li > p { margin-bottom: .35rem; }
.blog-list > li > p:last-child {
  color: #4b5563;
  font-size: .92rem;
  line-height: 1.6;
  margin-bottom: 0;
}
.blog-list > li > p > strong > a {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--te-graphite);
  text-underline-offset: .15em;
  text-decoration-color: var(--te-lime);
}
.blog-list > li > p > strong > a:hover { color: var(--te-orange); }
.blog-list > li > p > strong > a:visited { color: var(--te-graphite); }

/* ── Blog: card grid com imagens ─────────────────────────── */
.blog-card { border-radius: .5rem; overflow: hidden; }
.blog-card-img-link { position: relative; display: block; overflow: hidden; line-height: 0; }
.blog-card-img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  object-fit: cover;
  transition: transform .25s ease;
}
.blog-card-img-link:hover .blog-card-img { transform: scale(1.04); }
.blog-card-img-placeholder {
  aspect-ratio: 16/9;
  background: var(--te-sand);
}
.blog-card-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: .5rem;
  pointer-events: none;
}
.blog-card-badge,
.blog-card-date {
  background: rgb(0 0 0 / 58%);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1;
  padding: .28rem .5rem;
  border-radius: .3rem;
  letter-spacing: .04em;
}
.blog-card-date { align-self: flex-end; font-weight: 600; }
.blog-card-title-link {
  color: var(--te-graphite);
  text-decoration: none;
  text-underline-offset: .15em;
}
.blog-card-title-link:hover { color: var(--te-orange); }
.blog-card-read-more {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 44px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--te-graphite);
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-color: var(--te-lime);
  transition: color .15s ease;
}
.blog-card-read-more:hover { color: var(--te-orange); text-decoration-color: var(--te-orange); }

/* ── Blog: bloco FAQ ─────────────────────────────────────── */
article.prose .faq-block {
  margin-top: 3rem;
  padding: 2rem 1.5rem 1rem;
  background: var(--te-sand);
  border-radius: 0.75rem;
}
article.prose .faq-block h2 {
  margin-top: 0;
  border-bottom-color: var(--te-orange);
}

@media (max-width: 767.98px) {
  .display-5 { font-size: 2.2rem; }
}

.card { transition: box-shadow .18s ease, transform .18s ease; }
.card:hover { box-shadow: 0 .5rem 1.5rem rgba(26,31,46,.16) !important; transform: translateY(-3px); }
.card h3 .stretched-link { color: var(--te-graphite); }
.card h3 .stretched-link:hover { color: var(--te-orange); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Gallery albums and lightbox */
.gallery-album-index { margin-top: .5rem; }
.gallery-album-card { min-height: 100%; }
.gallery-album-card__link {
  position: relative;
  display: block;
  min-height: 16rem;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  background: var(--te-graphite);
  isolation: isolate;
}
.gallery-album-card__image {
  width: 100%;
  height: 100%;
  min-height: 16rem;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform .24s ease;
}
.gallery-album-card__link:hover .gallery-album-card__image,
.gallery-album-card__link:focus-visible .gallery-album-card__image { transform: scale(1.045); }
.gallery-album-card__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgb(0 0 0 / 8%) 15%, rgb(0 0 0 / 76%) 100%);
  z-index: 1;
}
.gallery-album-card__body {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  display: grid;
  gap: .45rem;
  padding: 1rem;
}
.gallery-album-card__count {
  width: max-content;
  max-width: 100%;
  padding: .3rem .55rem;
  border-radius: 999px;
  color: var(--te-graphite);
  background: var(--te-lime);
  font-size: .74rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.gallery-album-card__title {
  font-size: clamp(1.1rem, 1rem + .45vw, 1.35rem);
  font-weight: 800;
  line-height: 1.15;
}
.gallery-album-card__desc {
  display: -webkit-box;
  overflow: hidden;
  color: rgb(255 255 255 / 86%);
  font-size: .92rem;
  line-height: 1.45;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.gallery-album {
  scroll-margin-top: 92px;
  padding-top: 1.5rem;
}
.gallery-album + .gallery-album {
  margin-top: 2.75rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  padding-top: 2.25rem;
}
.gallery-album__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.gallery-grid__item { overflow: visible; }
.gallery-grid__button {
  display: block;
  width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  overflow: hidden;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: zoom-in;
}
.gallery-grid__button:focus-visible { outline-offset: 4px; }
.gallery-grid__image {
  display: block;
  border-radius: 8px;
  transition: transform .2s ease, filter .2s ease;
}
.gallery-grid__button:hover .gallery-grid__image,
.gallery-grid__button:focus-visible .gallery-grid__image {
  transform: scale(1.035);
  filter: saturate(1.06) contrast(1.03);
}
body.gallery-lightbox-open { overflow: hidden; }
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: grid;
  place-items: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
}
.gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(18 22 34 / 92%);
}
.gallery-lightbox__panel {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(1120px, 100%);
  max-height: calc(100dvh - 2rem);
  color: #fff;
}
.gallery-lightbox__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .75rem;
}
.gallery-lightbox__eyebrow {
  margin: 0 0 .15rem;
  color: var(--te-lime);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}
.gallery-lightbox__title {
  margin: 0;
  font-size: clamp(1.15rem, 1rem + .8vw, 1.7rem);
  font-weight: 800;
  line-height: 1.15;
}
.gallery-lightbox__close,
.gallery-lightbox__nav {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  border: 1px solid rgb(255 255 255 / 28%);
  border-radius: 8px;
  color: #fff;
  background: rgb(255 255 255 / 10%);
}
.gallery-lightbox__close {
  font-size: 2rem;
  line-height: 1;
}
.gallery-lightbox__stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 16rem;
  overflow: hidden;
  border-radius: 8px;
  background: #05070d;
}
.gallery-lightbox__image {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: min(72dvh, 760px);
  object-fit: contain;
}
.gallery-lightbox__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  font-size: 2.4rem;
  transform: translateY(-50%);
}
.gallery-lightbox__nav--prev { left: .75rem; }
.gallery-lightbox__nav--next { right: .75rem; }
.gallery-lightbox__caption {
  min-height: 1.5rem;
  margin: .75rem 0 0;
  color: rgb(255 255 255 / 82%);
  line-height: 1.5;
}
.gallery-lightbox__close:hover,
.gallery-lightbox__nav:hover,
.gallery-lightbox__close:focus-visible,
.gallery-lightbox__nav:focus-visible {
  color: var(--te-graphite);
  background: var(--te-lime);
  border-color: var(--te-lime);
}

@media (max-width: 767.98px) {
  .gallery-album__header { align-items: stretch; flex-direction: column; }
  .gallery-album-card__link { min-height: 13.5rem; }
  .gallery-album-card__image { min-height: 13.5rem; }
  .gallery-lightbox { padding: .75rem; }
  .gallery-lightbox__panel { max-height: calc(100dvh - 1.5rem); }
  .gallery-lightbox__nav { top: auto; bottom: .75rem; transform: none; }
  .gallery-lightbox__nav--prev { left: .75rem; }
  .gallery-lightbox__nav--next { right: .75rem; }
  .gallery-lightbox__caption { padding-bottom: 3.75rem; }
}

/* Breadcrumb — discreto e coerente com o site */
.breadcrumb {
  --bs-breadcrumb-divider: "›";
  --bs-breadcrumb-divider-color: #9ca3af;
  font-size: .78rem;
  letter-spacing: .01em;
}
.breadcrumb-item a {
  color: #6b7280;
  text-decoration: none;
}
.breadcrumb-item a:hover { color: var(--te-graphite); text-decoration: underline; }
.breadcrumb-item.active { color: #565e64; }
