:root {
  --brand-blue: #0d3b5c;
  --brand-orange: #f57c00;
  --brand-dark: #061827;
  --brand-orange-strong: #e36f00;
  --ui-radius-md: 14px;
  --ui-lift-distance: -3px;
  --ui-transition-fast: 180ms ease;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

::selection {
  background: rgba(245, 124, 0, 0.22);
  color: var(--brand-dark);
}

.bg-brand-blue {
  background-color: var(--brand-blue) !important;
}

.site-header {
  position: relative;
  z-index: 1050; /* Garante que o header fica por cima do efeito hover dos DVDs */
}

.bg-brand-orange {
  background-color: var(--brand-orange) !important;
}

.text-brand-blue {
  color: var(--brand-blue) !important;
}

.admin-info-card {
  background: #f8fafc;
  border-radius: 24px;
  padding: 25px;
  border-left: 6px solid var(--brand-blue) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
}

.admin-danger-card {
  background: #fff5f5;
  border-radius: 24px;
  padding: 25px;
  border: 1px solid #fee2e2;
}

.admin-card {
  background: #ffffff;
  border-radius: 24px;
  transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.admin-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.06) !important;
}

.bg-success-subtle {
  background-color: #f0fdf4 !important;
}

.bg-primary-subtle {
  background-color: #eff6ff !important;
}

.bg-brand-orange-subtle {
  background-color: #fffaf5 !important;
}

.admin-table-wrap {
  background: #ffffff;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  border: 1px solid rgba(0, 0, 0, 0.02);
}

.admin-table-wrap .table thead th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #64748b;
  padding: 20px 15px;
}

.admin-table-wrap .table tbody td {
  padding: 18px 15px;
  border-bottom: 1px solid #f1f5f9;
}

.admin-table-wrap .table tbody tr:last-child td {
  border-bottom: none;
}


/* REVEAL ANIMATIONS — conteúdo visível por defeito; animação só se JS activar */
.reveal-soft {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

html.js-reveal-init .reveal-soft:not(.is-visible):not(.active) {
  opacity: 0;
  transform: translateY(30px);
}

.reveal-soft.active,
.reveal-soft.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.text-brand-orange {
  color: #f57c00 !important;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
  /* compensar o header sticky (evita cortar secções por âncoras) */
}

/* Evita scroll horizontal acidental em ecrãs muito estreitos */
html,
body {
  overflow-x: clip;
}

body {
  background: #f6f8fa;
  /* Cor de fundo consistente */
  color: #0b1925;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

main {
  background: #f6f8fa;
}

/* ===== ADMIN LAYOUT SYSTEM ===== */
.admin-sidebar {
  width: 280px;
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
  background: #061827;
  color: #fff;
  z-index: 1000;
  padding: 30px 20px;
  display: flex;
  flex-direction: column;
  box-shadow: 10px 0 30px rgba(0, 0, 0, 0.05);
}

.admin-main {
  margin-left: 280px;
  padding: 40px;
  min-height: 100vh;
  background: #f8fafc;
}

@media (max-width: 1100px) {
  .admin-sidebar {
    transform: translateX(-100%);
  }

  .admin-main {
    margin-left: 0;
    padding: 20px;
  }
}

.nav-admin-link {
  display: flex;
  align-items: center;
  padding: 14px 20px;
  color: rgba(255, 255, 255, 0.6) !important;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  font-weight: 600;
  border-radius: 16px;
  margin-bottom: 8px;
}

.nav-admin-link i {
  font-size: 1.25rem;
  margin-right: 12px;
}

.nav-admin-link:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.05);
  transform: translateX(5px);
}

.nav-admin-link.active {
  color: #fff !important;
  background: linear-gradient(135deg, #f57c00, #ff9124);
  box-shadow: 0 8px 20px rgba(245, 124, 0, 0.3);
}

.btn-admin-action {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  transition: all 0.2s ease;
  background: #f1f5f9;
  color: #475569;
  border: none;
}

.btn-admin-action:hover {
  background: #e2e8f0;
  color: #0f172a;
  transform: scale(1.1);
}

/* ===== PRICE BADGE PREMIUM ===== */
.badge-price-orange {
  background: #f57c00;
  color: #fff;
  font-weight: 800;
  padding: 6px 14px;
  border-radius: 99px;
  box-shadow: 0 4px 12px rgba(245, 124, 0, 0.3);
  font-size: 0.9rem;
  letter-spacing: 0.02em;
}

.btn-hero-secondary {
  padding: 14px 28px;
  border-radius: 99px;
  font-weight: 700;
  font-size: 0.95rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  color: #061827;
  border: 1px solid rgba(13, 59, 92, 0.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.btn-hero-secondary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  background: #f8f9fa;
  color: #f57c00;
}

/* ===== SECTION EYEBROW LABEL ===== */
.section-eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #f57c00;
  margin-bottom: 8px;
}

/* ===== SECTION HEADING ACCENT ===== */
.section-heading {
  font-size: 1.75rem;
  font-weight: 800;
  color: #061827;
  position: relative;
  display: inline-block;
  margin-bottom: 6px;
}

.section-heading::after {
  content: '';
  display: block;
  width: 40px;
  height: 3px;
  border-radius: 999px;
  background: #f57c00;
  margin-top: 8px;
}

/* centered variant */
.section-heading.centered::after {
  margin-left: auto;
  margin-right: auto;
}

/* ===== BOTÃO LARANJA (site público) ===== */
.btn-brand,
.btn-catalog-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: var(--brand-orange);
  color: #fff !important;
  border: none;
  border-radius: 999px;
  font-weight: 700;
  padding: 0.65rem 1.25rem;
  transition: var(--ui-transition-fast);
  box-shadow: 0 4px 12px rgba(245, 124, 0, 0.25);
}

.btn-brand:hover,
.btn-catalog-search:hover {
  background: var(--brand-orange-strong);
  color: #fff !important;
  transform: translateY(-2px);
}

.btn-catalog-search i {
  color: #fff !important;
}

/* ===== CATALOG FILTERS (PREMIUM) ===== */
.catalog-filter-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 24px;
  padding: 1rem 1.15rem;
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.02),
    0 25px 50px -12px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.7);
  position: relative;
  z-index: 2;
  overflow: hidden;
  max-width: 100%;
  box-sizing: border-box;
}

.catalog-filter-form {
  width: 100%;
  max-width: 100%;
}

.catalog-filter-grid {
  display: grid;
  gap: 0.65rem;
  width: 100%;
  max-width: 100%;
}

@media (min-width: 768px) {
  .catalog-filter-grid--catalog {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1.1fr) minmax(0, 0.95fr) minmax(9.5rem, auto);
    align-items: stretch;
  }

  .catalog-filter-grid--admin {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 0.95fr) minmax(9.5rem, auto);
    align-items: stretch;
  }
}

.catalog-filter-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #f1f5f9;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 14px;
  padding: 0 0.85rem;
  min-height: 48px;
  transition: var(--ui-transition-fast);
}

.catalog-filter-field:focus-within {
  background: #fff;
  border-color: var(--brand-orange);
  box-shadow: 0 0 0 3px rgba(245, 124, 0, 0.12);
}

.catalog-filter-icon {
  color: var(--brand-orange);
  font-size: 1.1rem;
  flex-shrink: 0;
}

.catalog-filter-control {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  font-size: 0.9rem;
  font-weight: 600;
  color: #061827;
  padding: 0.6rem 0;
  outline: none;
}

.catalog-filter-field--select {
  min-width: 0;
}

.catalog-filter-select {
  cursor: pointer;
  padding-right: 1.75rem;
  width: 100%;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23f57c00' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0 center;
  background-size: 14px;
  appearance: none;
}

.catalog-filter-select option {
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  color: #061827;
}

.catalog-filter-select option:checked {
  background: #fff5eb;
  color: #e65100;
}

.catalog-filter-actions {
  display: flex;
  align-items: stretch;
  gap: 0.4rem;
  min-width: 0;
  max-width: 100%;
}

.catalog-filter-actions .btn-catalog-search {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.55rem 0.75rem;
  font-size: 0.82rem;
  white-space: nowrap;
}

.btn-catalog-clear {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  align-self: center;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid #e2e8f0;
  color: #dc2626;
  text-decoration: none;
  transition: var(--ui-transition-fast);
}

.btn-catalog-clear:hover {
  background: #fef2f2;
  border-color: #fecaca;
}

.filter-input-wrap {
  position: relative;
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

@media (max-width: 991.98px) {
  .catalog-filter-actions {
    justify-content: stretch;
  }

  .btn-catalog-clear {
    width: 48px;
  }
}

/* ===== ULTRA-MODERN PAGINATION (3-COL LAYOUT) ===== */
.pagination-premium-card {
  margin-top: 80px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 40px;
  padding: 12px;
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.08),
    0 4px 12px rgba(0, 0, 0, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.8);
  position: relative;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.pagination-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  align-items: center;
  gap: 20px;
  background: #ffffff;
  border-radius: 32px;
  padding: 24px 40px;
  border: 1px solid rgba(13, 59, 92, 0.03);
}

@media (max-width: 1200px) {
  .pagination-inner {
    grid-template-columns: 1fr 1fr;
  }

  .pagination-center {
    grid-column: span 2;
    order: 3;
    margin-top: 15px;
  }
}

@media (max-width: 768px) {
  .pagination-inner {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 30px 20px;
  }

  .pagination-left,
  .pagination-right,
  .pagination-center {
    grid-column: span 1;
    justify-content: center;
  }

  .pagination-right {
    order: 2;
  }

  .pagination-center {
    order: 3;
  }
}

/* LEFT: Badge & Counter */
.pagination-left {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.results-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #94a3b8;
}

.badge-dot {
  width: 8px;
  height: 8px;
  background: var(--brand-orange);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(245, 124, 0, 0.4);
}

.results-counter {
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--brand-blue);
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.count-divider {
  color: #e2e8f0;
  font-weight: 300;
  font-size: 1.4rem;
}

.count-total {
  color: #94a3b8;
  font-weight: 700;
  font-size: 1.1rem;
}

/* CENTER: Progress bar */
.pagination-center {
  padding: 0 20px;
}

.pagination-progress-wrap {
  width: 100%;
}

.pg-bar {
  height: 8px;
  background: #f1f5f9;
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 10px;
}

.pg-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--brand-orange), #ffae52);
  border-radius: 99px;
  transition: width 1.5s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 0 15px rgba(245, 124, 0, 0.2);
}

.pg-label {
  font-size: 0.8rem;
  color: #64748b;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* RIGHT: Nav Buttons */
.pagination-right {
  display: flex;
  justify-content: flex-end;
}

/* Laravel Pagination Override - Extreme Precision */
.pagination-nav-modern nav .flex.justify-between.flex-1,
.pagination-nav-modern nav .hidden.sm-flex-1,
.pagination-nav-modern nav p.text-sm.text-gray-700,
.pagination-nav-modern nav .flex-sm-fill>div:first-child,
.pagination-nav-modern nav .hidden p {
  display: none !important;
}

.pagination-nav-modern nav {
  display: flex !important;
  justify-content: center !important;
  border: none !important;
  background: transparent !important;
}

.pagination-nav-modern .pagination {
  margin-bottom: 0;
  gap: 10px;
}

.pagination-nav-modern .page-item .page-link {
  border-radius: 14px;
  border: 1px solid rgba(13, 59, 92, 0.1);
  color: #475569;
  font-weight: 800;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  background: #ffffff;
  font-size: 1rem;
}

.pagination-nav-modern .page-item.active .page-link {
  background: var(--brand-orange);
  border-color: var(--brand-orange);
  color: #fff;
  box-shadow: 0 10px 25px rgba(245, 124, 0, 0.4);
  transform: translateY(-3px) scale(1.05);
}

.pagination-nav-modern .page-item .page-link:hover:not(.active) {
  background: #ffffff;
  border-color: var(--brand-orange);
  color: var(--brand-orange);
  transform: translateY(-5px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}

/* Header da secção de serviços: evita sobreposição do CTA em tablet */
.services-head {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.services-head>div {
  justify-self: center;
  text-align: center;
}

.services-head-action {
  white-space: nowrap;
  justify-self: center;
}

/* Ecrãs largos: volta ao comportamento com CTA no canto direito */
@media (min-width: 1400px) {
  .services-head {
    grid-template-columns: 1fr auto;
    align-items: center;
  }

  .services-head>div {
    justify-self: center;
  }

  .services-head-action {
    justify-self: end;
  }
}

/* ===== STAT BAND ===== */
.stat-band {
  background: #ffffff;
  border-top: 1px solid rgba(13, 59, 92, 0.06);
  border-bottom: 1px solid rgba(13, 59, 92, 0.06);
  padding: 20px 0;
}

.stat-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 8px 0;
}

.stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  background: rgba(245, 124, 0, 0.10);
  color: #f57c00;
  flex-shrink: 0;
}

.stat-text-value {
  font-size: 1.25rem;
  font-weight: 800;
  color: #061827;
  line-height: 1.1;
}

.stat-text-label {
  font-size: 0.78rem;
  color: #6c757d;
  line-height: 1.2;
}

section {
  /* Altere estes valores para ajustar o espaçamento geral entre as secções (antes estava a 3rem) */
  padding-top: 2.8rem;
  padding-bottom: 2.8rem;
}

section+section {
  border-top: 1px solid rgba(13, 59, 92, 0.05);
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible {
  outline: 3px solid rgba(245, 124, 0, 0.8);
  outline-offset: 3px;
  border-radius: 12px;
}

.brand-accent {
  color: #f57c00;
}

/*===== HEADER =====*/
.site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: linear-gradient(90deg,
      rgba(6, 24, 39, 0.95),
      rgba(13, 59, 92, 0.95));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  transition: background 220ms ease, border-color 220ms ease, box-shadow 220ms ease, backdrop-filter 220ms ease;
}

@media (max-width: 991px) {
  html {
    scroll-padding-top: 74px;
  }

  .site-header {
    /* Em mobile mantém o efeito, mas mais leve para fluidez */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
}

.site-header.is-scrolled {
  background: linear-gradient(90deg,
      rgba(6, 24, 39, 0.98),
      rgba(13, 59, 92, 0.98));
  border-bottom-color: rgba(245, 124, 0, 0.28);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4);
}

/* ===== LOGO ===== */
.site-logo {
  height: 48px;
  width: auto;
  object-fit: contain;
}

/* ===== TEXTO DA MARCA ===== */
.site-brand {
  font-weight: 800;
  font-size: 20px;
  color: #ffffff;
  letter-spacing: 0.2px;
  position: relative;
}

/* ===== LINKS DO MENU ===== */
.navbar .nav-link {
  position: relative;
  color: rgba(255, 255, 255, 0.82);
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 12px;
  transition: color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

/* Hover (quando o rato passa) */
.navbar .nav-link:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.10);
  transform: translateY(-1px);
}

/* Underline animado no hover */
.navbar .nav-link::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 6px;
  height: 2px;
  background: #f57c00;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.18s ease;
  border-radius: 999px;
  opacity: 0.9;
}

.navbar .nav-link:hover::after {
  transform: scaleX(1);
}

/* Link ativo (página atual) */
.navbar .nav-link.active {
  color: #ffffff;
  background: rgba(245, 124, 0, 0.16);
  border: 1px solid rgba(245, 124, 0, 0.35);
}

.navbar .nav-link.active::after {
  transform: scaleX(1);
}

/* Espaço header (cima e baixo) */
.navbar .container {
  padding-top: 0;
  padding-bottom: 0;
}

.navbar .btn.btn-warning {
  background: #f57c00;
  border-color: #f57c00;
  color: #fff;
  font-weight: 700;
}

.navbar .btn.btn-warning:hover {
  background: #ff8a1a;
  border-color: #ff8a1a;
}

/* Alinhar itens do menu e o botão WhatsApp na mesma linha/altura */
.navbar-nav .nav-item {
  display: flex;
  align-items: center;
}

/* Ajustar o botão dentro do menu para bater certo com a altura dos links */
.navbar-nav .btn.btn-warning {
  padding-top: 6px;
  padding-bottom: 6px;
  line-height: 1.2;
}

/* ===== HERO MODERNO ===== */
.hero-section {
  background: radial-gradient(circle at top left, #f57c00 0, #0d3b5c 40%, #061827 100%);
  padding: 35px 0;
  position: relative;
  overflow: hidden;
}

/* shapes suaves no fundo */
.hero-section::before,
.hero-section::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.15), transparent 60%);
  pointer-events: none;
}

.hero-section::before {
  width: 260px;
  height: 260px;
  top: -80px;
  right: -60px;
}

.hero-section::after {
  width: 180px;
  height: 180px;
  bottom: -60px;
  left: -40px;
  opacity: 0.4;
}

.hero-badge {
  display: inline-block;
  padding: 4px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.hero-title {
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.1;
}

.hero-subtitle {
  margin-top: 8px;
  margin-bottom: 25px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.5;
}

/* ===== BOTÕES PREMIUM HERO ===== */
.btn-hero-main {
  background: linear-gradient(135deg, #f57c00, #ff9124);
  color: #ffffff !important;
  border: none;
  font-weight: 700;
  padding: 12px 28px;
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(245, 124, 0, 0.35);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
}

.btn-hero-main:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 15px 35px rgba(245, 124, 0, 0.5);
  filter: brightness(1.1);
}

.btn-hero-secondary {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  font-weight: 600;
  padding: 12px 28px;
  border-radius: 999px;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
}

.btn-hero-secondary:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 26px rgba(8, 30, 48, 0.28);
}

/* DVD STACK COMPONENT (Integrated with Hero Height) */
.dvd-stack-wrapper {
  position: relative;
  perspective: 1500px;
  display: flex;
  justify-content: flex-end;
  /* Afasta os DVDs do texto da esquerda */
  align-items: center;
  height: 330px;
}

.dvd-stack {
  display: flex;
  align-items: center;
  position: relative;
  margin-right: 20px;
}

.dvd-stack-item {
  position: relative;
  width: 210px;
  height: 290px;
  margin-left: -90px;
  transition: all 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  cursor: pointer;
  transform-origin: center bottom;
}

.dvd-stack-item .dvd-stack-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: -8px 12px 30px rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.5s ease;
}

/* Efeito de leque equilibrado */
.dvd-stack-item:nth-child(1) {
  transform: rotate(-6deg) translateY(10px);
  z-index: 10;
}

.dvd-stack-item:nth-child(2) {
  transform: rotate(-2deg) translateY(0px);
  z-index: 9;
}

.dvd-stack-item:nth-child(3) {
  transform: rotate(3deg) translateY(5px);
  z-index: 8;
}

.dvd-stack-item:nth-child(4) {
  transform: rotate(7deg) translateY(15px);
  z-index: 7;
}

.dvd-stack-item:hover {
  transform: translateY(-5px) scale(1.05) rotate(0deg) !important;
  z-index: 100 !important;
}

.dvd-stack-item:hover .dvd-stack-cover {
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
  border-color: var(--brand-orange);
}

.dvd-stack-item:hover~.dvd-stack-item {
  transform: translateX(80px) rotate(10deg);
}

.dvd-stack:hover .dvd-stack-item:not(:hover) {
  opacity: 0.7;
  filter: brightness(0.8) blur(0.5px);
}

@media (max-width: 1199px) {
  .dvd-stack-wrapper {
    height: 280px;
  }
  .dvd-stack-item {
    width: 170px;
    height: 240px;
    margin-left: -75px;
  }
}

/* ===== HERO MOBILE ===== */
@media (max-width: 991px) {
  .hero-section {
    padding: 40px 0;
  }

  .hero-title {
    font-size: 1.85rem;
    line-height: 1.25;
  }

  .hero-badge {
    font-size: 11px;
    letter-spacing: 0.06em;
  }

  .dvd-stack-wrapper {
    height: 240px;
    margin-top: 20px;
    justify-content: center;
  }

  .dvd-stack {
    margin-right: 0;
    margin-left: 85px; /* Compensa a margem negativa do primeiro item para centrar */
  }

  .dvd-stack-item {
    width: 130px;
    height: 180px;
    margin-left: -85px;
  }

  .dvd-stack-item:hover~.dvd-stack-item {
    transform: translateX(50px);
  }
}

@media (max-width: 575px) {
  .hero-section {
    padding: 30px 0;
  }

  .hero-title {
    font-size: 1.5rem;
  }

  .btn-hero-main,
  .btn-hero-secondary {
    padding: 10px 16px;
    font-size: 0.9rem;
    gap: 6px;
  }
}

@media (max-width: 420px) {

  .btn-hero-main,
  .btn-hero-secondary {
    white-space: normal;
    justify-content: center;
    flex: 0 0 auto;
    max-width: 100%;
  }
}

/* ===== BOTÃO VER CATÁLOGO (BRANDS STYLE) ===== */
.brands-action {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.btn-brands-more {
  padding: 12px 30px;
  font-weight: 700;
  border-radius: 999px;
  background: #ffffff;
  border: 2px solid #0d3b5c;
  color: #0d3b5c;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.btn-brands-more:hover {
  background: #0d3b5c;
  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(13, 59, 92, 0.2);
  transform: translateY(-2px);
}

.hero-actions .btn {
  border-radius: 999px;
}

.hero-actions .btn.btn-light {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(6px);
}

.hero-actions .btn.btn-outline-light {
  border-color: rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.08);
  color: rgb(255, 255, 255);
}

/* ===== BOTÕES PREMIUM HERO ===== */
.btn-hero-main {
  background: linear-gradient(135deg, #f57c00, #ff9124);
  color: #ffffff !important;
  border: none;
  font-weight: 700;
  padding: 12px 28px;
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(245, 124, 0, 0.35);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
}

.btn-hero-main:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 15px 35px rgba(245, 124, 0, 0.5);
  filter: brightness(1.1);
}

.btn-hero-secondary {
  background: rgba(255, 255, 255, 0.12);
  /* Ligeiramente mais opaco para mais corpo */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  /* Borda mais definida */
  font-weight: 600;
  padding: 12px 28px;
  border-radius: 999px;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
}

/* Em ecrãs muito estreitos, permitir quebra de linha nos botões para não transbordar */
@media (max-width: 420px) {

  .btn-hero-main,
  .btn-hero-secondary,
  .btn-pack-outline {
    white-space: normal;
  }
}

.btn-hero-secondary:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.7);
  /* Borda brilha no hover */
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 26px rgba(8, 30, 48, 0.28);
}

/* Cartão da imagem no hero – centrado e com forma fixa */
.hero-card {
  display: inline-flex;
  /* centra a imagem dentro do “quadrado” */
  align-items: center;
  justify-content: center;

  border-radius: 24px;
  background: rgba(0, 0, 0, 0.25);

  padding: 14px 14px;
  /* controla o “espaço” à volta da imagem */
  margin-left: auto;
  margin-right: auto;
}

.hero-actions .btn {
  border-radius: 999px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.hero-actions .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.hero-image {
  border-radius: 18px;
  max-height: 280px;
  object-fit: contain;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.hero-card:hover .hero-image {
  transform: translateY(-4px) scale(1.03);
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.35));
}

/* ===== HERO MOBILE ===== */
@media (max-width: 991px) {
  .hero-section {
    padding: 40px 0;
  }

  .hero-title {
    font-size: 1.85rem;
    line-height: 1.25;
  }

  .hero-badge {
    font-size: 11px;
    letter-spacing: 0.06em;
  }

  .hero-image {
    max-height: 180px;
    border-radius: 12px;
  }

  .hero-card {
    border-radius: 18px;
    padding: 12px;
  }
}

@media (max-width: 575px) {
  .hero-section {
    padding: 30px 0;
  }

  .hero-title {
    font-size: 1.5rem;
  }

  .hero-image {
    max-height: 140px;
  }

  .hero-actions .btn {
    font-size: 0.9rem;
    padding: 8px 16px;
  }
}

/* ===== AJUSTES EXTRA PARA TELEMÓVEIS (CTA) ===== */
@media (max-width: 576px) {

  .btn-hero-main,
  .btn-hero-secondary,
  .btn-pack-outline,
  .btn-contact-main,
  .btn-whatsapp-cta {
    padding: 10px 16px;
    font-size: 0.9rem;
    gap: 6px;
  }
}

@media (max-width: 420px) {

  .btn-hero-main,
  .btn-hero-secondary,
  .btn-pack-outline,
  .btn-contact-main,
  .btn-whatsapp-cta {
    justify-content: center;
    padding: 9px 12px;
    font-size: 0.88rem;
    flex: 0 0 auto;
    max-width: 100%;
    white-space: normal;
  }

  /* Evitar “rebentar” em ecrãs muito estreitos (Cofidis Pay) */
  .cofidis-actions {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  .cofidis-actions a {
    padding-left: 0;
    padding-right: 0;
  }
}

/* só em ecrãs grandes empurra um bocado para a direita */
@media (min-width: 992px) {
  .hero-card {
    margin-left: 40px;
    margin-right: 0;
  }
}



/* ===== DESTAQUES (CARDS MODERNOS COM HOVER) ===== */
.highlight-card {
  --hover-lift: -6px;
  position: relative;
  border-radius: 20px;
  padding: 24px 22px 26px;
  background: #ffffff;
  border: 1px solid rgba(13, 59, 92, 0.08);
  /* Sombra mais suave e multi-camada para aspeto premium */
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.01),
    0 2px 4px -1px rgba(0, 0, 0, 0.01),
    0 10px 30px -5px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
}

/* brilho muito subtil no topo do card */
.highlight-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(245, 124, 0, 0.06), rgba(13, 59, 92, 0.04));
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

/* conteúdo por cima do overlay */
.highlight-card>* {
  position: relative;
  z-index: 1;
}

.highlight-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 14px;
  /* Formato squirclish mais moderno */
  background: rgba(245, 124, 0, 0.08);
  color: #f57c00;
  margin-bottom: 15px;
  transition: all 0.3s ease;
  border: 1px solid rgba(245, 124, 0, 0.1);
}

.highlight-icon {
  font-size: 1.5rem;
}

.highlight-title,
.highlight-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: #061827;
  letter-spacing: -0.01em;
}

.highlight-text,
.highlight-card p {
  font-size: 0.88rem;
  color: #505c68 !important;
  line-height: 1.62;
}

/* HOVER: animação suave */
.highlight-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
  border-color: rgba(245, 124, 0, 0.3);
}

.highlight-card:hover::before {
  opacity: 1;
}

.highlight-card:hover .highlight-icon-wrap {
  background: #f57c00;
  color: #ffffff;
  transform: scale(1.1) rotate(5deg);
  box-shadow: 0 8px 15px rgba(245, 124, 0, 0.2);
}

/* mobile */
@media (max-width: 576px) {
  .highlight-card {
    padding: 14px 14px 16px;
  }
}

/* ===== PONTO PACK (SECÇÃO NO INDEX) ===== */
.ponto-pack-section {
  background: transparent;
  position: relative;
  overflow: hidden;
}

.ponto-pack-section::before {
  content: none;
}

.pack-benefits {
  position: relative;
  z-index: 1;
}

/* Melhor layout dos chips em mobile/tablet */
@media (max-width: 991px) {
  .pack-benefits {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px !important;
  }

  .pack-chip {
    justify-content: center;
    text-align: center;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.03);
    padding: 7px 10px;
    font-size: 0.78rem;
  }
}

@media (max-width: 576px) {
  .pack-chip {
    padding: 6px 10px;
    font-size: 0.76rem;
  }
}

.pack-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(13, 59, 92, 0.10);
  color: #061827;
  font-weight: 700;
  font-size: 0.82rem;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.04);
}

.pack-chip i {
  color: #f57c00;
}

/* Centralizar o sublinhado do heading no mobile (Ponto Pack no index) */
@media (max-width: 991px) {
  .ponto-pack-section .section-heading::after {
    margin-left: auto;
    margin-right: auto;
  }
}

/* ===== AGENTE AUTORIZADO (INDEX) ===== */
.agente-section {
  background: transparent;
}

.agente-tile {
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.06);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
  overflow: hidden;
}

.agente-tile img {
  height: 50px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  filter: saturate(1.02) contrast(1.02);
  transition: transform 220ms ease;
}

.agente-tile:hover {
  transform: translateY(-5px) scale(1.02);
  border-color: rgba(245, 124, 0, 0.28);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
}

.agente-tile:hover img {
  transform: scale(1.06);
}

@media (max-width: 576px) {
  .agente-tile {
    padding: 14px;
  }

  .agente-tile img {
    height: 34px;
  }
}

/* ===== COFIDIS PAY (INDEX) ===== */
.cofidis-section {
  background: transparent;
}

.cofidis-card {
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(6, 24, 39, 0.03), rgba(245, 124, 0, 0.03));
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
  padding: 26px;
  position: relative;
  overflow: hidden;
}

.cofidis-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 16% 22%, rgba(245, 124, 0, 0.16), transparent 58%),
    radial-gradient(circle at 82% 70%, rgba(13, 59, 92, 0.12), transparent 62%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.55));
  pointer-events: none;
}

.cofidis-card::after {
  content: none;
}

.cofidis-card:hover::after {
  opacity: 0;
}

.cofidis-card>* {
  position: relative;
  z-index: 1;
}

.cofidis-top {
  row-gap: 10px;
  display: inline-flex;
}

.cofidis-label {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #f57c00;
  background: rgba(245, 124, 0, 0.10);
  border: 1px solid rgba(245, 124, 0, 0.18);
}

.cofidis-logo {
  height: 50px;
  width: auto;
  object-fit: contain;
  opacity: 0.92;
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.08));
}

.cofidis-title {
  font-size: 1.9rem;
  font-weight: 900;
  color: #061827;
  letter-spacing: -0.02em;
}

.cofidis-subtitle {
  color: #4e5a67;
  font-size: 0.98rem;
  line-height: 1.6;
  max-width: 46ch;
}

.cofidis-card .section-eyebrow {
  margin-bottom: 6px;
}

.cofidis-feature {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.06);
  padding: 16px 14px;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.cofidis-feature:hover {
  transform: translateY(-5px);
  border-color: rgba(245, 124, 0, 0.28);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
}

.cofidis-feature:active {
  transform: translateY(-3px);
}

.cofidis-card .cofidis-feature {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ===== PARCERIAS QUICKNAV ===== */
.parcerias-quicknav {
  padding: 18px;
  background: #ffffff;
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
}

.parcerias-quicknav-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.parcerias-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.82rem;
  color: #061827;
  text-decoration: none;
  background: rgba(13, 59, 92, 0.03);
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: none;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease, background 200ms ease;
}

.parcerias-pill i {
  color: #f57c00;
}

.parcerias-pill:hover {
  transform: translateY(-3px);
  border-color: rgba(245, 124, 0, 0.28);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
  background: #ffffff;
}

.parcerias-pill:active {
  transform: translateY(-1px);
}

@media (max-width: 576px) {
  .parcerias-quicknav {
    padding: 16px;
  }

  .parcerias-quicknav h2 {
    font-size: 1rem;
  }

  /* Mobile: pills clean + scroll horizontal */
  .parcerias-quicknav-actions {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
    gap: 8px;
    width: 100%;
  }

  .parcerias-pill {
    flex: 0 0 auto;
    padding: 9px 12px;
    font-size: 0.80rem;
    white-space: nowrap;
  }

  .parcerias-pill {
    transform: none;
  }
}

/* ===== COFIDIS ACTIONS ===== */
.cofidis-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: flex-start;
}

@media (max-width: 576px) {
  .cofidis-actions {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .cofidis-actions a {
    width: calc(50% - 5px);
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
  }
}

/* ===== AGENTE AUTORIZADO (EXTRA) ===== */
.agente-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.agente-note {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid rgba(13, 59, 92, 0.10);
  color: #061827;
  font-weight: 800;
  font-size: 0.84rem;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.04);
}

.agente-note i {
  color: #f57c00;
}

@media (max-width: 576px) {
  .agente-notes {
    gap: 8px;
    margin-top: 14px !important;
  }

  .agente-note {
    padding: 7px 10px;
    font-size: 0.78rem;
    box-shadow: none;
    background: rgba(255, 255, 255, 0.92);
  }

  .agente-note i {
    margin-right: 6px !important;
  }
}

/* ===== PONTO PACK (GRELHA MOBILE) — BREAKPOINTS MAIS CONSISTENTES ===== */
@media (max-width: 576px) {
  .pack-visual {
    padding: 18px;
  }

  .pack-visual-center {
    padding-bottom: 10px;
    gap: 4px;
  }

  .pack-visual-title {
    font-size: 1.05rem;
  }

  .pack-visual-subtitle {
    font-size: 0.82rem;
  }

  .pack-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
    margin-top: 10px;
  }

  .pack-logo-tile {
    padding: 10px;
    min-height: 58px;
  }
}

@media (min-width: 577px) and (max-width: 991px) {
  .pack-logos-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.cofidis-icon {
  display: inline-flex;
  width: 40px;
  height: 40px;
  border-radius: 14px;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: #f57c00;
  background: rgba(245, 124, 0, 0.10);
  border: 1px solid rgba(245, 124, 0, 0.18);
  margin-bottom: 10px;
}

.cofidis-feature-title {
  font-weight: 900;
  color: #061827;
  font-size: 0.95rem;
  margin-bottom: 4px;
}

.cofidis-feature-text {
  color: #5a6674;
  font-size: 0.84rem;
  line-height: 1.5;
}

.cofidis-legal {
  font-size: 0.78rem;
  color: #6b7785;
  line-height: 1.5;
  padding-top: 14px;
  border-top: 1px solid rgba(13, 59, 92, 0.10);
}

@media (max-width: 576px) {
  .cofidis-card {
    padding: 18px;
    border-radius: 18px;
  }

  .cofidis-title {
    font-size: 1.55rem;
  }

  .cofidis-subtitle {
    max-width: none;
  }

  .cofidis-logo {
    height: 34px;
  }
}

.pack-visual {
  position: relative;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.08);
  padding: 26px;
  min-height: 320px;
  overflow: hidden;
  z-index: 1;
}

.pack-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 30%, rgba(245, 124, 0, 0.10), transparent 45%),
    radial-gradient(circle at 70% 70%, rgba(13, 59, 92, 0.08), transparent 50%),
    linear-gradient(135deg, rgba(245, 124, 0, 0.04), rgba(13, 59, 92, 0.02));
  pointer-events: none;
}

.pack-visual-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 6px;
  z-index: 2;
}

.pack-visual-icon {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(245, 124, 0, 0.10);
  border: 1px solid rgba(245, 124, 0, 0.18);
  color: #f57c00;
  box-shadow: 0 12px 22px rgba(245, 124, 0, 0.12);
}

.pack-visual-icon i {
  font-size: 1.55rem;
}

.pack-visual-title {
  font-weight: 900;
  color: #061827;
  letter-spacing: -0.02em;
  font-size: 1.15rem;
}

.pack-visual-subtitle {
  color: #5a6674;
  font-size: 0.85rem;
  font-weight: 600;
}

.pack-orbit {
  position: absolute;
  inset: 0;
  z-index: 3;
  transform-origin: center;
}

.pack-logo-pill {
  position: absolute;
  left: calc(50% + var(--x));
  top: calc(50% + var(--y));
  transform: translate(-50%, -50%);
  padding: 12px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.08);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  animation: packFloat 6.2s ease-in-out infinite;
  animation-delay: var(--d, 0ms);
  will-change: transform;
}

.pack-logo-pill:hover {
  transform: translate(-50%, -50%) scale(1.05);
  border-color: rgba(245, 124, 0, 0.28);
  box-shadow: 0 24px 50px rgba(0, 0, 0, 0.14);
}

.pack-logo-pill:nth-child(1) {
  animation-duration: 6.4s;
}

.pack-logo-pill:nth-child(2) {
  animation-duration: 6.9s;
}

.pack-logo-pill:nth-child(3) {
  animation-duration: 6.1s;
}

.pack-logo-pill:nth-child(4) {
  animation-duration: 7.2s;
}

.pack-logo-pill:nth-child(5) {
  animation-duration: 6.6s;
}

.pack-logo-pill:nth-child(6) {
  animation-duration: 7.0s;
}

.pack-logo-pill img {
  height: 28px;
  width: auto;
  display: block;
  object-fit: contain;
  filter: saturate(1.05) contrast(1.02);
  max-width: 150px;
}

.pack-logo-pill img[alt="INPOST"] {
  height: 32px;
}

.pack-logo-pill img[alt="DHL"],
.pack-logo-pill img[alt="SEUR"] {
  height: 26px;
}

.pack-visual:hover .pack-logo-pill {
  box-shadow: 0 22px 46px rgba(0, 0, 0, 0.12);
  border-color: rgba(245, 124, 0, 0.22);
}

.pack-visual:hover .pack-logo-pill:nth-child(odd) {
  transform: translate(-50%, -50%) translateY(-3px) rotate(-1deg);
}

.pack-visual:hover .pack-logo-pill:nth-child(even) {
  transform: translate(-50%, -50%) translateY(-3px) rotate(1deg);
}

.pack-logos-grid {
  display: none;
  gap: 10px;
  position: relative;
  z-index: 4;
  margin-top: 14px;
}

.pack-logo-tile {
  padding: 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(13, 59, 92, 0.10);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease, background 220ms ease;
  will-change: transform;
}

.pack-logo-tile:hover {
  transform: translateY(-5px) scale(1.03);
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.10);
  border-color: rgba(245, 124, 0, 0.30);
  background: #ffffff;
}

.pack-logo-tile img {
  height: 50px;
  width: auto;
  object-fit: contain;
  transition: transform 220ms ease;
  max-width: 100%;
}

.pack-logo-tile:hover img {
  transform: scale(1.08);
}

.pack-logo-tile img[alt="INPOST"] {
  height: 54px;
}

.pack-logo-tile img[alt="SEUR"] {
  height: 50px;
}

.pack-logo-tile img[alt="DHL"] {
  height: 40px;
}

.pack-logo-tile img[alt="CELERITAS"] {
  height: 40px;
}

@media (max-width: 576px) {
  .pack-logo-tile {
    padding: 14px;
    min-height: 82px;
  }
}

/* Subtítulo do Ponto Pack mais visível */
.pack-subtitle {
  color: #495664 !important;
  font-weight: 600;
}

/* Botão outline com o tamanho do btn-hero-main */
.btn-pack-outline {
  background: #ffffff;
  color: #0d3b5c;
  border: 2px solid #0d3b5c;
  font-weight: 800;
  padding: 12px 28px;
  border-radius: 999px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
}

.btn-pack-outline:hover {
  transform: translateY(-2px);
  background: #0d3b5c;
  border-color: #0d3b5c;
  color: #ffffff;
  box-shadow: 0 12px 26px rgba(13, 59, 92, 0.22);
}

/* WhatsApp CTA (contraste garantido em fundos claros) */
.btn-whatsapp-cta {
  background: #25d366;
  color: #ffffff !important;
  border: 2px solid #25d366;
  font-weight: 800;
  padding: 12px 28px;
  border-radius: 999px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease, filter 0.18s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 12px 26px rgba(37, 211, 102, 0.25);
}

.btn-whatsapp-cta:hover {
  transform: translateY(-2px);
  background: #1ebe57;
  border-color: #1ebe57;
  color: #ffffff !important;
  box-shadow: 0 14px 30px rgba(37, 211, 102, 0.35);
  filter: brightness(1.03);
}

@keyframes packFloat {

  0%,
  100% {
    transform: translate(-50%, -50%) translateY(0px);
  }

  50% {
    transform: translate(-50%, -50%) translateY(-8px);
  }
}

/* ===== PONTO PACK (LOCALIZAÇÃO NO HERO) ===== */
.ponto-pack-location-card {
  position: relative;
  overflow: hidden;
  padding: 18px 18px 16px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.18);
}

.ponto-pack-location-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 22%, rgba(245, 124, 0, 0.14), transparent 55%),
    radial-gradient(circle at 85% 70%, rgba(13, 59, 92, 0.10), transparent 60%);
  pointer-events: none;
}

.ponto-pack-location-card>* {
  position: relative;
  z-index: 1;
}

.ponto-pack-location-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(245, 124, 0, 0.10);
  color: #f57c00;
  border: 1px solid rgba(245, 124, 0, 0.20);
  box-shadow: 0 10px 20px rgba(245, 124, 0, 0.14);
  flex: 0 0 auto;
}

.ponto-pack-location-title {
  font-weight: 900;
  color: #061827;
  line-height: 1.2;
}

.ponto-pack-location-place {
  margin-top: 4px;
  color: #5a6674;
  font-size: 0.92rem;
  font-weight: 600;
}

.ponto-pack-location-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.ponto-pack-location-actions .btn-primary {
  background: #f57c00;
  border-color: #f57c00;
  font-weight: 800;
}

.ponto-pack-location-actions .btn-primary:hover {
  background: #ff8a1a;
  border-color: #ff8a1a;
}

.ponto-pack-location-note {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(13, 59, 92, 0.10);
  font-size: 0.82rem;
  color: #6b7785;
}

/* Localização mais compacta em mobile */
@media (max-width: 576px) {
  .ponto-pack-location-card {
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
    padding: 14px 14px 12px;
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
  }

  .ponto-pack-location-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .ponto-pack-location-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .ponto-pack-location-note {
    display: none;
  }
}

/* ===== FAQ (PONTO PACK) — HOVER MODERNO ===== */
.accordion .accordion-item {
  border: 1px solid rgba(13, 59, 92, 0.10);
  border-radius: 14px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.accordion .accordion-item+.accordion-item {
  margin-top: 12px;
}

.accordion .accordion-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.10);
  border-color: rgba(245, 124, 0, 0.30);
}

.accordion .accordion-button {
  font-weight: 800;
  color: #061827;
  transition: background 200ms ease, color 200ms ease;
}

.accordion .accordion-button:not(.collapsed) {
  background: rgba(245, 124, 0, 0.10);
  color: #061827;
}

.accordion .accordion-button:focus {
  box-shadow: 0 0 0 0.25rem rgba(245, 124, 0, 0.20);
}

@media (max-width: 991px) {
  .pack-visual {
    min-height: auto;
    padding: 22px;
  }

  .pack-visual-center {
    position: relative;
    inset: auto;
    padding-bottom: 14px;
  }

  .pack-orbit {
    display: none;
  }

  .pack-logos-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 576px) {
  .pack-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Evitar corte de logos em ecrãs intermédios */
@media (max-width: 1200px) {
  .pack-orbit {
    transform: scale(0.88);
  }
}

@media (max-width: 420px) {

  .btn-hero-main,
  .btn-pack-outline {
    padding-left: 18px;
    padding-right: 18px;
  }

  .pack-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* Ponto Pack: apenas ajustar altura/align (manter layout como está) */
  .ponto-pack-section .d-flex.flex-wrap.gap-3 {
    justify-content: center;
  }

  .ponto-pack-section .d-flex.flex-wrap.gap-3>a {
    min-height: 46px;
    line-height: 1.2;
    align-items: center;
  }

  /* Cofidis Pay: empilhar botões e garantir que o texto não sai do pill */
  .cofidis-actions {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .cofidis-actions a {
    width: 100%;
    max-width: 260px;
    justify-content: center;
    white-space: normal;
    min-height: 46px;
    line-height: 1.2;
    align-items: center;
  }
}

/* Pequena animação de entrada para colunas/cards reutilizável */
@keyframes fadeUpSoft {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-soft {
  opacity: 1;
  transform: translateY(0);
  animation: none;
}

html.js-reveal-init .animate-soft:not(.is-visible) {
  opacity: 0;
  animation: fadeUpSoft 0.6s ease forwards;
}

html.js-reveal-init .animate-soft.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Pequenos delays consoante a posição na row */
.row .animate-soft:nth-child(1) {
  animation-delay: 0.05s;
}

.row .animate-soft:nth-child(2) {
  animation-delay: 0.12s;
}

.row .animate-soft:nth-child(3) {
  animation-delay: 0.18s;
}

.row .animate-soft:nth-child(4) {
  animation-delay: 0.24s;
}

/* ONDE ESTAMOS */
/* ===== CARDS DE INFO (sobre / localização) ===== */

.info-card {
  --hover-lift: -6px;
  border-radius: 18px;
  padding: 24px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(13, 59, 92, 0.10);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.info-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
  border-color: rgba(13, 59, 92, 0.30);
}


/* ===== LINHAS ===== */
.contact-line {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 12px;
  padding: 6px 8px;
  transition: transform 0.15s ease, background 0.15s ease;
}

.contact-line:hover {
  transform: translateX(2px);
  background: rgba(13, 59, 92, 0.04);
}

/* ===== ÍCONES ===== */
/* ÍCONES GENÉRICOS */

.contact-icon {
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
  transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.contact-icon i {
  font-size: 1.1rem;
}

/* Morada – vermelho + fundo vermelho bem suave */
.contact-line:nth-of-type(1) .contact-icon {
  color: #dc3545;
  background: rgba(220, 53, 69, 0.06);
}

/* Telefone – verde moderno + fundo verde suave */
.contact-line:nth-of-type(2) .contact-icon {
  color: #198754;
  background: rgba(25, 135, 84, 0.06);
}

/* Email – laranja + fundo laranja suave */
.email-icon {
  color: #f57c00;
  background: rgba(245, 124, 0, 0.06);
}

/* WhatsApp – verde WhatsApp + fundo suave */
.whatsapp-icon {
  color: #128c7e;
  background: rgba(37, 211, 102, 0.06);
}

/* Facebook – azul Facebook + fundo suave */
.facebook-icon {
  color: #1877f2;
  background: rgba(24, 119, 242, 0.06);
}

/* animação só no scale */
.info-card:hover .contact-icon {
  transform: scale(1.05);
}

.contact-line:hover .contact-icon {
  transform: scale(1.08);
}

/* LINKS (WhatsApp, email, Facebook) – discretos mas com destaque */
.contact-link {
  font-size: 0.9rem;
  font-weight: 600;
  color: #333333;
  /* neutro escuro */
  text-decoration: none;
  padding-bottom: 1px;
  border-bottom: 2px solid rgba(245, 124, 0, 0.45);
  /* laranja suave */
}

.contact-link:hover {
  color: #f57c00;
  /* laranja da loja ao hover */
  border-bottom-color: rgba(245, 124, 0, 1);
  /* sublinhado laranja forte */
}

/* mobile: empilhar melhor */
@media (max-width: 576px) {
  .contact-line {
    align-items: center;
  }
}

/* Card do mapa */
.map-card {
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(13, 59, 92, 0.12);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Cabeçalho do mapa */
.map-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px 8px;
}

.map-card-label {
  display: inline-block;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #6c757d;
}

.map-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #061827;
}

/* Link para Google Maps */
.map-card-link {
  font-size: 0.8rem;
  text-decoration: none;
  color: #0d6efd;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(13, 110, 253, 0.06);
  border: 1px solid rgba(13, 110, 253, 0.16);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.map-card-link:hover {
  background: rgba(13, 110, 253, 0.12);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(13, 110, 253, 0.25);
}

/* Wrapper responsivo do mapa – um pouco mais baixo (3:2) */
.map-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 36.66%;
  /* 3:2 em vez de 16:9 para não ficar tão largo em altura */
  overflow: hidden;
}

.map-wrapper-location {
  position: relative;
  width: 100%;
  padding-bottom: 93%;
  /* Proporção padrão (mobile/tablet) */
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.10);
  border: 1px solid rgba(13, 59, 92, 0.10);
  flex-grow: 1;
  /* Permite que cresça em contentores flex */
}

/* Em desktop, o mapa deixa de ter altura fixa e passa a preencher o espaço total da coluna dos contactos */
@media (min-width: 992px) {
  .map-wrapper-location {
    padding-bottom: 0;
    min-height: 260px;
    height: clamp(260px, 44vh, 420px);
  }
}

/* Laptop/Zenbook: mapa um pouco mais compacto para não dominar a secção */
@media (min-width: 992px) and (max-width: 1440px) {
  .map-wrapper-location {
    height: clamp(250px, 38vh, 360px);
  }
}

.map-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Mobile: cabeçalho em coluna */
@media (max-width: 576px) {
  .map-card-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .map-card-link {
    align-self: flex-start;
  }
}

@media (max-width: 768px) {
  .info-card {
    padding: 18px;
  }

  .map-wrapper-location {
    padding-bottom: 65%;
    margin-top: 8px;
  }
}

/* ===== CARDS DE PRODUTO ===== */
.product-card {
  border-radius: 18px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.product-card img {
  height: 220px;
  width: 100%;
  object-fit: contain;
  /* mostra o produto inteiro, sem cortar */
  background: #f4f6f8;
  /* fundo neutro claro por trás da imagem */
  padding: 12px;
  /* espaço à volta do produto */
}

.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.10);
}

/* Mobile: 2 colunas, imagem e texto mais compactos */
@media (max-width: 576px) {
  .product-card img {
    height: 150px;
    padding: 8px;
  }

  .product-body {
    padding: 10px 12px 12px;
  }

  .product-title {
    font-size: 0.85rem;
  }

  .product-text {
    font-size: 0.78rem;
    margin-bottom: 6px;
  }

  .product-price {
    font-size: 0.9rem;
  }

  .product-link {
    font-size: 0.78rem;
  }
}

.product-body {
  padding: 14px 16px 16px;
}

.product-title {
  font-size: 1rem;
  font-weight: 700;
}

.product-text {
  font-size: 0.85rem;
  color: #6c757d;
  margin-bottom: 8px;
}

.product-price {
  font-weight: 800;
  color: #0d3b5c;
}

.product-link {
  font-size: 0.85rem;
  text-decoration: none;
  color: #f57c00;
}

.product-link:hover {
  text-decoration: underline;
}




/* ===== FOOTER ===== */
.site-footer {
  color: rgba(255, 255, 255, 0.88);
  background: radial-gradient(circle at top left, #0d3b5c 0, #061827 55%, #020b13 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: 0px;
}

/* Parte principal */
.footer-main {
  position: relative;
}

/* Pequeno brilho no topo do footer */
.footer-main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top, rgba(245, 124, 0, 0.16), transparent 50%);
  opacity: 0.9;
  pointer-events: none;
}

/* Conteúdo por cima do brilho */
.footer-main .container,
.footer-main .row,
.footer-main .col-md-6,
.footer-main .col-lg-4,
.footer-main .col-lg-3,
.footer-main .col-md-3,
.footer-main .col-6 {
  position: relative;
  z-index: 1;
}

/* Logo + marca */
.footer-logo {
  height: 46px;
  width: auto;
  object-fit: contain;
}

.footer-dev-credit {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.15rem;
  padding: 0.28rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.footer-dev-credit .bi-linkedin {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.75);
  transition: color 0.15s ease;
}

.footer-dev-credit span {
  color: #fff;
  font-size: 0.78rem;
  transition: color 0.15s ease;
}

.footer-dev-credit:hover {
  color: #f57c00;
  border-color: #f57c00;
  transform: translateX(1px);
  text-decoration: none;
}

.footer-dev-credit:hover .bi-linkedin,
.footer-dev-credit:hover span {
  color: #f57c00;
}

.footer-brand {
  font-weight: 800;
  font-size: 20px;
  letter-spacing: 0.2px;
  color: #ffffff;
}

.footer-text {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.65;
}

/* Badges */
.footer-badges {
  margin-top: 6px;
}

.footer-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  background: rgba(0, 0, 0, 0.28);
  color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

/* ===== CARROSEL DE MARCAS ===== */
.brands-section {
  background: #f6f8fa;
  padding: 30px 0;
  overflow: hidden;
}

@media (max-width: 576px) {
  .brands-section {
    padding: 20px 0;
  }
}

.brands-slider {
  position: relative;
  width: 100%;
  margin-top: 20px;
  padding: 10px 0;
}

.brands-track {
  display: flex;
  width: calc(230px * 20);
  /* 20 logos no total */
  animation: scrollBrands 40s linear infinite;
  gap: 30px;
  align-items: center;
}

@keyframes scrollBrands {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(calc(-230px * 10));
  }

  /* Move exatamente a largura de um pack (10 logos) */
}

.brands-track .brand-logo-item {
  width: 200px;
  flex-shrink: 0;
}

.brand-logo-item {
  --hover-lift: -5px;
  width: 100%;
  height: 140px;
  /* Aumentado para 120px para maior visibilidade */
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid rgba(13, 59, 92, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  padding: 8px;
  /* Padding reduzido de 10px para 8px para aumentar a área útil do logo */
  cursor: pointer;
}

.brand-logo-item.brand-main {
  padding: 18px;
  /* Reduzido ligeiramente de 20px para 18px para acompanhar o aumento geral */
}

.brand-placeholder {
  width: 100%;
  height: 100%;
  max-width: 95%;
  /* Aumentado de 88% para 95% */
  max-height: 115px;
  /* Aumentado de 95px para 115px */
  object-fit: contain;
  --logo-base-scale: 1;
  transform: scale(var(--logo-base-scale));
  transition: transform 0.3s ease;
}

/* Classes utilitárias opcionais para forçar o redimensionamento de logos com excesso de espaço transparente na imagem */
.brand-placeholder.scale-up-1 {
  --logo-base-scale: 1.15;
}

.brand-placeholder.scale-up-2 {
  --logo-base-scale: 1.3;
}

.brand-placeholder.scale-up-3 {
  --logo-base-scale: 1.5;
}

.brand-logo-item:hover {
  transform: translateY(-5px) scale(1.05);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
  border-color: rgba(245, 124, 0, 0.5);
  background: #ffffff;
}

.brand-logo-item:hover .brand-placeholder {
  transform: scale(calc(var(--logo-base-scale) * 1.08));
}

/* Pausa no hover */
.brands-slider:hover .brands-track {
  animation-play-state: paused;
}

/* Responsividade do Carrossel e Grelha de Marcas */
@media (max-width: 768px) {
  .brand-logo-item {
    height: 130px;
    /* Aumentado ligeiramente para melhor visibilidade na grelha */
    padding: 12px;
  }

  .brands-track .brand-logo-item {
    width: 210px;
    height: 105px;
    padding: 5px;
  }

  @keyframes scrollBrands {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(calc(-235px * 10));
    }

    /* 210px + 25px gap * 10 logos */
  }

  .brands-track {
    width: calc(235px * 20);
    gap: 25px;
  }
}

/* Botão Ver Mais */
.brands-action {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.btn-brands-more {
  padding: 12px 30px;
  font-weight: 700;
  border-radius: 999px;
  background: #ffffff;
  border: 2px solid #0d3b5c;
  color: #0d3b5c;
  transition: all 0.3s ease;
}

.btn-brands-more:hover {
  background: #0d3b5c;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(13, 59, 92, 0.2);
  transform: translateY(-2px);
}

/* Página Todas as Marcas */
.marcas-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr) !important;
  /* Força 5 por linha em desktop */
  gap: 15px;
  padding: 0px 0;
}

@media (max-width: 992px) {
  .marcas-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 576px) {
  .marcas-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Títulos das colunas */
.footer-title {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 15px;
}

/* Ajustes de Alinhamento e Long-text no Footer */
.footer-contact-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px;
  margin-bottom: 14px;
}

.footer-contact-item i {
  color: #f57c00;
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-top: 2px;
}

.footer-link.text-break {
  word-break: break-all;
  display: inline-block;
}

/* Responsividade de Contentores e Texto */
@media (max-width: 991px) {
  .sobre-hero {
    text-align: center;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .sobre-hero-pills {
    justify-content: center;
    flex-wrap: wrap;
  }

  .section-heading.centered {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 768px) {
  .info-card {
    padding: 20px !important;
    /* Ganhar espaço lateral em mobile */
  }
}

/* Links */
.footer-links .footer-link,
.footer-contact-item .footer-link {
  display: inline-block;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  padding: 2px 0;
  transition: color 0.15s ease, transform 0.15s ease;
}

.footer-links .footer-link:hover,
.footer-contact-item .footer-link:hover {
  color: #f57c00;
  transform: translateX(1px);
}

/* Lista de navegação */
.footer-links li {
  margin-bottom: 4px;
}

/* Contactos no footer */
.footer-contact-item {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin-bottom: 4px;
}

.footer-contact-item i {
  font-size: 1rem;
  margin-top: 2px;
}

/* Horário */
.footer-hours li {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.78);
  margin-bottom: 2px;
}

/* Social buttons */
.footer-social-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: #ffffff;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.footer-social-btn.facebook {
  background: rgba(24, 119, 242, 0.16);
}

.footer-social-btn.whatsapp {
  background: rgba(37, 211, 102, 0.16);
}

.footer-social-btn.facebook:hover {
  background: #1877f2;
  box-shadow: 0 8px 18px rgba(24, 119, 242, 0.45);
  transform: translateY(-2px);
}

.footer-social-btn.whatsapp:hover {
  background: #25d366;
  box-shadow: 0 8px 18px rgba(37, 211, 102, 0.45);
  transform: translateY(-2px);
}

/* Barra inferior */
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.55);
}

.footer-bottom-text {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
}

/* ===== RESPONSIVO FOOTER ===== */

/* Layout de colunas que encurta bem no mobile:
   - XS: logo ocupa linha; 3 colunas de 6 (lado a lado)
   - MD: distribuição mais "grid"
*/
@media (max-width: 576px) {
  .footer-main {
    padding-top: 18px;
    padding-bottom: 18px;
  }

  .footer-logo {
    height: 38px;
  }

  .footer-brand {
    font-size: 17px;
  }

  .footer-text {
    font-size: 0.8rem;
    margin-bottom: 0.6rem;
  }

  .footer-badge {
    font-size: 0.7rem;
    padding: 3px 8px;
  }



  .footer-links .footer-link,
  .footer-contact-item,
  .footer-contact-item .footer-link {
    font-size: 0.8rem;
  }

  .footer-hours li {
    font-size: 0.78rem;
  }

  .footer-social-btn {
    width: 30px;
    height: 30px;
    font-size: 1rem;
  }
}

/* ===== DVD GRID & CARDS (FROM CURRENT VERSION) ===== */
.dvd-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid rgba(0, 0, 0, 0.05);
  height: 100%;
}

.dvd-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.12);
}

.dvd-cover-wrap {
  position: relative;
  aspect-ratio: 2 / 2.8;
  overflow: hidden;
  background: #000;
}

.dvd-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.dvd-card:hover .dvd-cover {
  transform: scale(1.1);
}

/* CART BUTTON STYLE */
.btn-cart-modern {
  background: linear-gradient(135deg, var(--brand-orange), #ff9124);
  color: #fff !important;
  border-radius: 50px;
  padding: 10px 24px;
  font-weight: 700;
  font-size: 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 8px 20px rgba(245, 124, 0, 0.3);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: none;
}

.btn-cart-modern:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(245, 124, 0, 0.45);
  filter: brightness(1.1);
}

.cart-badge {
  background: #fff;
  color: var(--brand-orange);
  min-width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 900;
  font-size: 0.75rem;
}

/* ===== WHATSAPP FLUTUANTE ===== */

@keyframes pulse-whatsapp {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);
  }

  70% {
    box-shadow: 0 0 0 16px rgba(37, 211, 102, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

.whatsapp-float {
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 25px;
  right: 25px;
  background-color: #25d366;
  color: #ffffff;
  border-radius: 50%;
  text-align: center;
  font-size: 32px;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform 0.25s ease, background-color 0.25s ease, bottom 0.3s ease;
  animation: pulse-whatsapp 2s infinite;
}

.whatsapp-float:hover {
  background-color: #1ebe57;
  color: #ffffff;
  transform: scale(1.1) translateY(-3px);
  animation-play-state: paused;
}

/* ===== COOKIE BANNER (BARRA TOTAL & COMPACTA) ===== */
.aviso-rgpd-banner {
  position: fixed;
  bottom: 0;
  /* Colado em baixo */
  left: 0;
  right: 0;
  background: rgba(6, 24, 39, 0.98);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: #ffffff;
  padding: 8px 30px;
  /* Padding vertical mínimo */
  z-index: 10000;
  box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.5);
  display: none;
  align-items: center;
  justify-content: center;
  gap: 30px;
  transition: all 0.3s ease;
}

.aviso-rgpd-conteudo {
  flex: 1;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.3;
}

.aviso-rgpd-accoes {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Hierarquia de Botões */
.btn-rgpd-aceitar {
  background: #f57c00;
  color: #fff;
  border: none;
  font-weight: 700;
  padding: 8px 22px;
  border-radius: 50px;
  transition: all 0.2s ease;
  white-space: nowrap;
  font-size: 0.82rem;
  box-shadow: 0 4px 12px rgba(245, 124, 0, 0.3);
}

.btn-rgpd-rejeitar {
  background: rgba(255, 255, 255, 0.05);
  /* Ligeiro fundo para não ser totalmente invisível */
  color: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  /* Borda mais forte para mais destaque */
  font-weight: 600;
  padding: 7px 18px;
  border-radius: 50px;
  transition: all 0.2s ease;
  white-space: nowrap;
  font-size: 0.82rem;
}

.btn-rgpd-link {
  display: none;
  /* Removido conforme pedido */
}

.btn-rgpd-aceitar:hover {
  background: #ff8a1a;
  transform: translateY(-1px);
}

.btn-rgpd-rejeitar:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 991px) {
  .aviso-rgpd-banner {
    flex-direction: column;
    text-align: center;
    padding: 10px 15px;
    /* Reduzido de 12px */
    gap: 8px;
    /* Mais colado */
  }

  .aviso-rgpd-conteudo {
    font-size: 0.8rem;
  }

  .aviso-rgpd-conteudo i {
    display: inline-block;
    /* Ícone restaurado conforme pedido */
    font-size: 0.9rem;
    vertical-align: middle;
  }

  .aviso-rgpd-accoes {
    width: 100%;
    flex-direction: row;
    /* Botões LADO A LADO no mobile para poupar altura */
    justify-content: center;
    gap: 8px;
  }

  .aviso-rgpd-accoes button {
    width: auto;
    /* Deixa de ocupar 100% para poupar espaço */
    flex: 1;
    max-width: 150px;
  }

  .aviso-rgpd-accoes .btn-rgpd-aceitar {
    order: 1;
    /* Aceitar à direita ou centro conforme habitual */
    padding: 8px 15px;
    font-size: 0.8rem;
  }

  .aviso-rgpd-accoes .btn-rgpd-rejeitar {
    padding: 8px 15px;
    font-size: 0.8rem;
  }
}

/* ===== PRIVACY & ABOUT PAGES ===== */
.sobre-hero {
  background: radial-gradient(circle at top left, #0d3b5c 0, #061827 100%);
  color: #fff;
  padding: 60px 0 100px;
  position: relative;
}

.sobre-hero-title {
  font-size: 2.8rem;
  font-weight: 800;
  line-height: 1.1;
}

.sobre-hero-text {
  font-size: 1.1rem;
  max-width: 600px;
}

.sobre-breadcrumb .breadcrumb-item,
.sobre-breadcrumb .breadcrumb-item a {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  font-weight: 600;
}

.sobre-breadcrumb .breadcrumb-item.active {
  color: #fff;
}

.info-card {
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(13, 59, 92, 0.04);
}

.smaller {
  font-size: 0.82rem;
}

/* ===== ADMIN LOGIN PAGE ===== */
.login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at top right, var(--brand-blue) 0%, var(--brand-dark) 100%);
  padding: 20px;
  position: relative;
  overflow: hidden;
}

.login-page::before {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(245, 124, 0, 0.1) 0%, transparent 70%);
  top: -250px;
  left: -250px;
  border-radius: 50%;
}

.login-card {
  width: 100%;
  max-width: 420px;
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 32px;
  padding: 40px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.5);
  position: relative;
  z-index: 10;
}

.login-card .form-label {
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: 8px;
  letter-spacing: 0.02em;
}

.login-card .form-control {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  color: #fff;
  padding: 12px 16px;
  transition: all 0.3s ease;
}

.login-card .form-control:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--brand-orange);
  box-shadow: 0 0 0 4px rgba(245, 124, 0, 0.15);
  outline: none;
}

.login-card .form-control::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.login-card .btn-brand {
  background: linear-gradient(135deg, var(--brand-orange), var(--brand-orange-strong));
  border: none;
  padding: 14px;
  font-weight: 700;
  font-size: 1rem;
  margin-top: 10px;
  box-shadow: 0 10px 25px rgba(245, 124, 0, 0.3);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.login-card .btn-brand:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 35px rgba(245, 124, 0, 0.45);
  filter: brightness(1.1);
}

.fade-in-up {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== PRODUCT PAGE REFINEMENTS ===== */
.shadow-2xl {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.leading-tight {
  line-height: 1.15;
}

.description-box {
  transition: all 0.3s ease;
}

.description-box:hover {
  transform: translateX(5px);
  border-left-color: var(--brand-blue) !important;
}

.btn-hero-main.btn-lg {
  padding: 18px 35px;
  font-size: 1.1rem;
}

@media (max-width: 991px) {
  .display-4 {
    font-size: 2.2rem;
  }
}

/* Resumo do carrinho — sticky apenas em desktop */
.cart-summary-card {
  position: sticky;
  top: 100px;
}

@media (max-width: 991.98px) {
  .cart-summary-card {
    position: static;
    top: auto;
  }
}

/* ===== CART MOBILE STACKED CARDS ===== */
@media (max-width: 767.98px) {
  .cart-table-wrap thead {
    display: none;
  }

  .cart-table-wrap table,
  .cart-table-wrap tbody,
  .cart-table-wrap tr,
  .cart-table-wrap td {
    display: block;
    width: 100%;
  }

  .cart-table-wrap tr.cart-item {
    background: #fff;
    border: 1px solid #f1f5f9;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
    display: grid;
    grid-template-columns: 60px 1fr auto;
    grid-template-rows: auto auto;
    gap: 8px 14px;
    align-items: center;
  }

  /* DVD image + info cell */
  .cart-table-wrap tr.cart-item td:nth-child(1) {
    grid-column: 1 / -1;
    padding: 0 !important;
  }

  .cart-table-wrap tr.cart-item td:nth-child(1) .d-flex {
    gap: 12px !important;
  }

  .cart-table-wrap tr.cart-item td:nth-child(1) img {
    width: 52px !important;
    height: 70px !important;
    border-radius: 10px !important;
  }

  /* Price cell */
  .cart-table-wrap tr.cart-item td:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
    padding: 0 !important;
    font-weight: 700;
    color: var(--brand-orange);
    font-size: 0.95rem;
  }

  .cart-table-wrap tr.cart-item td:nth-child(2)::before {
    content: "Preço: ";
    font-weight: 500;
    color: #94a3b8;
    font-size: 0.78rem;
  }

  /* Quantity cell */
  .cart-table-wrap tr.cart-item td:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    padding: 0 !important;
    justify-self: center;
  }

  /* Subtotal cell */
  .cart-table-wrap tr.cart-item td:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
    padding: 0 !important;
    text-align: right;
    font-size: 0.95rem;
  }

  .cart-table-wrap tr.cart-item td:nth-child(4)::before {
    content: "Sub: ";
    font-weight: 500;
    color: #94a3b8;
    font-size: 0.78rem;
  }

  /* Remove button cell */
  .cart-table-wrap tr.cart-item td:nth-child(5) {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 0 !important;
    width: auto !important;
  }

  .cart-table-wrap tr.cart-item {
    position: relative;
  }
}

/* ===== CART TABLE HOVER POLISH ===== */
.cart-item {
  transition: background-color 0.2s ease;
}

.cart-item:hover {
  background-color: #f8fafc;
}

/* ===== STORE IMAGE HOVER EFFECT ===== */
.store-image-container {
  overflow: hidden;
  position: relative;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.store-image-container img {
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), filter 0.8s ease;
}

.store-image-container:hover img {
  transform: scale(1.06);
  filter: brightness(1.05) contrast(1.02);
}

.store-image-container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, transparent 60%, rgba(13, 59, 92, 0.15));
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

.store-image-container:hover::after {
  opacity: 1;
}

/* ===== PERFORMANCE ===== */
.dvd-card,
.highlight-card,
.catalog-filter-card {
  content-visibility: auto;
  contain-intrinsic-size: auto 320px;
}

.dvd-cover,
.dvd-stack-cover {
  max-width: 100%;
  height: auto;
}

img {
  max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal-soft {
    opacity: 1 !important;
    transform: none !important;
  }

  .animate-soft {
    opacity: 1 !important;
    animation: none !important;
  }
}

.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }
.fw-800 { font-weight: 800 !important; }
.fw-900 { font-weight: 900 !important; }

.btn-cart-mobile {
  position: relative;
  padding: 0.45rem 0.65rem;
  min-width: 2.5rem;
  justify-content: center;
}

.btn-cart-mobile .cart-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  font-size: 0.65rem;
}

.page-404-card {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.04) !important;
}

.page-404-code {
  font-size: 3.5rem;
  letter-spacing: -1px;
  line-height: 1;
}

.page-404-text {
  max-width: 400px;
  line-height: 1.6;
}

@keyframes page404-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.page-404-disc {
  animation: page404-spin 8s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .page-404-disc {
    animation: none;
  }
}

/* ===== DVD MEDIA SECTION ===== */
.dvd-media-band {
  background: #f8fafc;
}

.dvd-media-heading .section-eyebrow {
  margin-bottom: 0.15rem;
}

.dvd-media-heading .section-heading {
  margin-bottom: 0;
}

.dvd-media-heading .section-heading::after {
  margin-top: 5px;
}

.dvd-media-panel {
  background: #fff;
  border-radius: 1.25rem;
  border: 1px solid rgba(13, 59, 92, 0.08);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
  padding: 0.75rem 0.85rem;
}

@media (min-width: 768px) {
  .dvd-media-panel {
    padding: 0.85rem 1rem;
  }
}

.dvd-media-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #64748b;
  margin-bottom: 0.45rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.dvd-media-label i {
  color: #f57c00;
  font-size: 0.85rem;
}

@media (min-width: 992px) {
  .dvd-media-split {
    --dvd-media-gallery-gap: 0.45rem;
  }

  .dvd-media-trailer-col,
  .dvd-media-gallery-col {
    display: flex;
    flex-direction: column;
  }

  .dvd-media-trailer--fill {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .dvd-media-trailer--fill .dvd-media-trailer__play,
  .dvd-media-trailer--fill .dvd-media-trailer__frame {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }
}

.dvd-media-trailer__play {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #0f172a;
  cursor: pointer;
  aspect-ratio: 16 / 9;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
  transition: box-shadow 0.25s ease;
}

.dvd-media-trailer__play:hover {
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.dvd-media-trailer__play img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dvd-media-trailer__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  background: linear-gradient(180deg, rgba(6, 24, 39, 0.08), rgba(6, 24, 39, 0.55));
  color: #fff;
  transition: background 0.25s ease;
}

.dvd-media-trailer__play:hover .dvd-media-trailer__overlay {
  background: linear-gradient(180deg, rgba(6, 24, 39, 0.12), rgba(6, 24, 39, 0.62));
}

.dvd-media-trailer__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  background: #f57c00;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  box-shadow: 0 6px 18px rgba(245, 124, 0, 0.4);
}

.dvd-media-trailer__label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dvd-media-trailer__frame {
  border-radius: 0.85rem;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
  aspect-ratio: 16 / 9;
}

@media (min-width: 992px) {
  .dvd-media-trailer--fill .dvd-media-trailer__frame {
    aspect-ratio: auto;
  }
}

.dvd-media-trailer__frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.dvd-media-gallery {
  display: grid;
  gap: 0.45rem;
}

.dvd-media-gallery--side {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 992px) {
  .dvd-media-gallery--side {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    flex: 1 1 auto;
  }
}

.dvd-media-gallery--full {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
  .dvd-media-gallery--full {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.dvd-media-gallery__item {
  border: 0;
  padding: 0;
  background: #eef2f7;
  border-radius: 0.65rem;
  overflow: hidden;
  cursor: zoom-in;
  aspect-ratio: 16 / 10;
  border: 1px solid rgba(13, 59, 92, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dvd-media-gallery__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.1);
}

.dvd-media-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dvd-media-lightbox {
  --bs-backdrop-opacity: 0.92;
}

.dvd-media-lightbox .modal-dialog {
  width: auto;
  max-width: min(94vw, 980px);
  margin: 0.75rem auto;
}

.dvd-media-lightbox .modal-content {
  background: transparent;
  border: 0;
  box-shadow: none;
  position: relative;
  padding: 2.75rem 0 0;
}

.dvd-media-lightbox__close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, transform 0.2s ease;
}

.dvd-media-lightbox__close:hover {
  background: rgba(255, 255, 255, 0.22);
  transform: scale(1.04);
}

.dvd-media-lightbox__stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.dvd-media-lightbox__image {
  display: block;
  max-width: min(88vw, 920px);
  max-height: min(78vh, 760px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.75rem;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  background: #0f172a;
}

.dvd-media-lightbox__nav {
  flex-shrink: 0;
  width: 2.35rem;
  height: 2.35rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}

.dvd-media-lightbox__nav:hover {
  background: rgba(245, 124, 0, 0.85);
}

.dvd-media-lightbox__counter {
  margin: 0.85rem 0 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

@media (max-width: 575.98px) {
  .dvd-media-lightbox .modal-content {
    padding-top: 2.35rem;
  }

  .dvd-media-lightbox__stage {
    gap: 0.15rem;
  }

  .dvd-media-lightbox__nav {
    width: 2rem;
    height: 2rem;
    font-size: 0.85rem;
  }

  .dvd-media-lightbox__image {
    max-width: calc(100vw - 5.5rem);
    max-height: 72vh;
    border-radius: 0.5rem;
  }
}

/* ===== MOBILE FIXES (navbar alinhamento, loja, toast, grelha home) ===== */
@media (max-width: 991.98px) {
  .site-header .site-navbar-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 0;
  }

  .site-header .site-navbar-brand {
    flex: 1 1 0;
    min-width: 0;
    max-width: calc(100% - 6.75rem);
    margin-right: 0;
    margin-bottom: 0;
  }

  .site-header .site-navbar-brand .site-logo {
    flex-shrink: 0;
  }

  .site-header .site-navbar-brand .site-brand {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .site-header .site-navbar-tools {
    flex: 0 0 auto;
    margin-left: auto;
  }

  .site-header .navbar-collapse {
    flex: 0 0 100%;
    width: 100%;
  }

  .site-header .navbar-collapse .navbar-nav {
    padding-top: 0.35rem;
    padding-bottom: 0.15rem;
  }

  .site-header .navbar-collapse .nav-link {
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
  }
}

.store-image-container {
  max-height: 240px;
  aspect-ratio: 16 / 10;
}

.store-image-container__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (min-width: 768px) {
  .store-image-container {
    max-height: 300px;
  }
}

@media (min-width: 992px) {
  .store-image-container {
    max-height: none;
    min-height: 320px;
    aspect-ratio: auto;
    height: 100%;
  }

  .store-image-container__photo {
    min-height: 320px;
  }
}

.home-dvd-grid {
  --bs-gutter-x: 0.85rem;
}

@media (min-width: 992px) {
  .home-dvd-grid {
    --bs-gutter-x: 1.5rem;
  }
}

.cart-toast-container {
  position: fixed;
  left: 50%;
  bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  z-index: 10001;
  width: min(92vw, 22rem);
  pointer-events: none;
}

body:has(#avisoPrivacidadeBarra[style*="flex"]) .cart-toast-container {
  bottom: calc(7.5rem + env(safe-area-inset-bottom, 0px));
}

.cart-toast {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  color: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.cart-toast.show {
  opacity: 1;
  transform: translateY(0);
}

.cart-toast--success {
  background: linear-gradient(135deg, #16a34a, #22c55e);
}

.cart-toast--danger,
.cart-toast--warning {
  background: linear-gradient(135deg, #dc2626, #ef4444);
}

.cart-toast__text {
  flex: 1 1 auto;
  line-height: 1.25;
}

.cart-toast__close {
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.15rem;
  line-height: 1;
  padding: 0 0.15rem;
  cursor: pointer;
}

@media (min-width: 992px) {
  .cart-toast-container {
    left: auto;
    right: 1.25rem;
    bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
    transform: none;
    width: auto;
    max-width: 20rem;
  }

  body:has(#avisoPrivacidadeBarra[style*="flex"]) .cart-toast-container {
    bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px));
  }
}