/* Cabeçalho, menu por área e rodapé. */
.site-header {
  background: #fff;
}
.header-inner {
  height: 106px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.brand-wave {
  width: 43px;
  height: 43px;
  color: var(--primary);
  stroke-width: 3.5;
}
.brand span {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.brand small {
  font-weight: 800;
  font-size:calc(10px * var(--text-scale,1));
  letter-spacing: 0.28em;
  margin-bottom: 4px;
}
.brand b {
  font-size:calc(22px * var(--text-scale,1));
  letter-spacing: -0.04em;
  font-weight: 800;
}
.site-navigation {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px;
  border-radius: 16px;
  background: #f5f3f6;
  border: 1px solid #eeebf0;
}
.site-navigation a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 11px 10px;
  border-radius: 11px;
  font-size:calc(12px * var(--text-scale,1));
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  white-space: nowrap;
  transition:
    color 0.2s,
    background 0.2s,
    box-shadow 0.2s,
    transform 0.2s;
}
.site-navigation .icon {
  width: 17px;
  height: 17px;
  stroke-width: 2;
  color: #8d7287;
}
.site-navigation a:hover {
  color: #b92135;
  background: #ffe5e8;
  transform: translateY(-2px);
}
.site-navigation a:hover .icon {
  color: #c63044;
}
.site-navigation a[aria-current="page"] {
  background: linear-gradient(135deg, #ff5963, #e23a53);
  color: #fff;
  box-shadow: 0 4px 11px #ed405338;
}
.site-navigation a[aria-current="page"] .icon {
  color: #fff;
}
.request-header {
  padding: 10px 13px;
  min-height: 44px;
  font-size:calc(12px * var(--text-scale,1));
  border-radius: 12px;
  font-weight: 800;
  white-space: nowrap;
  gap: 8px;
}
button[data-open-request] {
  text-transform: uppercase;
  letter-spacing: 0.035em;
}
.request-header .icon {
  width: 19px;
  height: 19px;
}
.menu-toggle {
  display: none;
}
.site-footer {
  border-top: 1px solid var(--border);
  padding-top: 25px;
}

.footer-main {
  display: flex;
  align-items: center;
  gap: 26px;
  padding-bottom: 24px;
}

.brand-small .brand-wave {
  width: 39px;
  height: 39px;
}

.brand-small b {
  font-size:calc(19px * var(--text-scale,1));
}

.brand-small small {
  font-size:calc(9px * var(--text-scale,1));
}

.brand-small {
  gap: 10px;
}

.footer-slogan {
  font-size:calc(12px * var(--text-scale,1));
  color: var(--muted);
}

.social-links {
  display: flex;
  gap: 6px;
  margin-inline: auto;
}

.social-links .icon {
  height: 19px;
  width: 19px;
}

.powered {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  border-left: 1px solid var(--border);
  padding-left: 28px;
  font-size:calc(11px * var(--text-scale,1));
  color: var(--muted);
}

.powered b {
  font-weight: 600;
}
.powered a {
  display: inline-flex;
  align-items: center;
  padding: 4px 6px;
  border-radius: 4px;
  background: #fff;
  font-weight: 800;
  color: var(--ink);
  text-underline-offset: 4px;
  transition: color 0.2s;
}
.powered-logo {
  display: block;
  width: 96px;
  height: auto;
}
.powered a:hover,
.powered a:focus-visible {
  color: var(--primary-dark);
  text-decoration: underline;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  font-size:calc(10px * var(--text-scale,1));
  color: var(--muted);
  border-top: 1px solid #f1f2f4;
  padding: 12px 0 18px;
}

@media (min-width: 1281px) and (max-width: 1380px) {
  .header-inner {
    gap: 12px;
  }
  .brand-wave {
    width: 35px;
    height: 35px;
  }
  .brand b {
    font-size:calc(19px * var(--text-scale,1));
  }
  .brand {
    gap: 7px;
  }
  .site-navigation a {
    padding: 10px 7px;
    font-size:calc(11px * var(--text-scale,1));
    gap: 5px;
  }
  .site-navigation .icon {
    width: 15px;
    height: 15px;
  }
  .request-header span {
    display: none;
  }
}
@media (max-width: 1280px) {
  .header-inner {
    height: 88px;
    gap: 12px;
  }
  .brand-wave {
    width: 38px;
    height: 38px;
  }
  .brand b {
    font-size:calc(21px * var(--text-scale,1));
  }
  .menu-toggle {
    display: flex;
    margin-left: auto;
    order: 2;
    background: #f5f3f6;
    border: 1px solid #eee8ef;
    width: 42px;
    height: 42px;
  }
  .request-header {
    order: 1;
    margin-left: auto;
  }
  .menu-toggle {
    margin-left: 0;
  }
  .site-navigation {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 78px;
    z-index: 50;
    padding: 10px;
    background: #fff;
    border: 1px solid #eee5ec;
    box-shadow: 0 16px 35px #34213b24;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  .site-navigation.is-open {
    display: grid;
  }
  .site-navigation a {
    padding: 13px 12px;
    justify-content: flex-start;
    background: #f8f5f8;
    font-size:calc(13px * var(--text-scale,1));
    white-space: normal;
  }
  .site-navigation .icon {
    width: 19px;
    height: 19px;
  }
}
@media (max-width: 760px) {
  .brand b {
    font-size:calc(20px * var(--text-scale,1));
  }
  .brand small {
    font-size:calc(9px * var(--text-scale,1));
  }
  .brand-wave {
    width: 35px;
    height: 35px;
  }
  .request-header {
    font-size:calc(11px * var(--text-scale,1));
    padding: 9px 10px;
    gap: 6px;
  }
  .request-header .icon {
    width: 17px;
    height: 17px;
  }
  .site-navigation a {
    font-size:calc(12px * var(--text-scale,1));
    padding: 12px 10px;
    gap: 8px;
  }
  .footer-main {
    flex-wrap: wrap;
    gap: 16px;
  }
  .footer-slogan {
    margin-left: auto;
    font-size:calc(10px * var(--text-scale,1));
  }
  .social-links {
    margin: 0;
    flex: 1;
  }
  .powered {
    border: 0;
    padding: 0;
    font-size:calc(10px * var(--text-scale,1));
  }
}
@media (max-width: 440px) {
  .brand {
    gap: 7px;
  }
  .brand b {
    font-size:calc(18px * var(--text-scale,1));
  }
  .brand-wave {
    width: 31px;
    height: 34px;
  }
  .header-inner {
    gap: 8px;
  }
  .request-header {
    font-size:calc(10px * var(--text-scale,1));
    padding: 9px;
    gap: 5px;
  }
  .footer-slogan {
    font-size:calc(9px * var(--text-scale,1));
  }
  .site-navigation a {
    font-size:calc(11px * var(--text-scale,1));
    gap: 6px;
  }
}
@media (max-width: 360px) {
  .request-header span {
    display: none;
  }
}

/* Convite para pedidos: destaque coral e halo discreto. */
.request-header {
  position: relative;
  border: 0;
  background: var(--primary);
  color: #fff;
  box-shadow: 0 4px 12px #ff474d28;
  animation: request-halo 3.2s ease-out infinite;
}
.request-header:hover {
  background: var(--primary-dark);
  color: #fff;
}
.request-header .icon {
  animation: request-note 3.2s ease-in-out infinite;
}
@keyframes request-halo {
  0%,
  65%,
  100% {
    box-shadow:
      0 4px 12px #ff474d28,
      0 0 0 0 #ff474d00;
  }
  25% {
    box-shadow:
      0 4px 12px #ff474d28,
      0 0 0 5px #ff474d18;
  }
  50% {
    box-shadow:
      0 4px 12px #ff474d28,
      0 0 0 9px #ff474d00;
  }
}
@keyframes request-note {
  0%,
  55%,
  100% {
    transform: rotate(0);
  }
  12% {
    transform: rotate(-10deg);
  }
  24% {
    transform: rotate(8deg);
  }
  36% {
    transform: rotate(-5deg);
  }
}

/* Controles adicionados sem mudar os limites do menu responsivo da base. */
.header-actions { display: flex; align-items: center; flex-shrink: 0; gap: 8px; }
.header-actions .request-header { margin-left: 0; order: 0; }
.theme-toggle { width: 42px; height: 42px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); }
.theme-toggle .icon { width: 22px; height: 22px; }
@media (min-width: 1101px) { .header-inner { gap: 12px; } }
@media (min-width: 1101px) and (max-width: 1350px) {
  .site-navigation a { padding: 10px 7px; font-size:calc(11px * var(--text-scale,1)); gap: 5px; }
  .site-navigation .icon { width: 15px; height: 15px; }
}
@media (max-width: 1280px) { .header-actions { margin-left: auto; order: 1; } }
@media (max-width: 440px) {
  .header-actions { gap: 7px; }
  .theme-toggle { width: 38px; height: 38px; }
  .theme-toggle .icon { width: 20px; height: 20px; }
  .request-header span { display: none; }
}

/* Acesso discreto ao painel, compartilhado pelos quatro temas. */
.footer-bottom{flex-wrap:wrap;align-items:center;gap:8px 20px}.footer-access{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;min-width:0;max-width:100%}.footer-admin-link{display:inline-flex;align-items:center;min-height:32px;font-size:calc(12px * var(--text-scale,1));color:inherit;text-underline-offset:4px;transition:transform .18s ease}.footer-admin-link:hover,.footer-admin-link:focus-visible{color:inherit;text-decoration:underline}.footer-admin-link:hover{transform:translateY(-1px)}.footer-admin-link:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}
.footer-access button.footer-admin-link{appearance:none;font-family:inherit;font-size:calc(12px * var(--text-scale,1));line-height:1.5;font-weight:500;color:inherit;background:transparent;border:0;padding:0;cursor:pointer;text-align:left;max-width:100%;white-space:normal}
.footer-access button.footer-notifications-button{gap:7px;min-height:44px;padding:8px 12px;border:1px solid currentColor;border-radius:6px;font-weight:600;transition:transform .18s ease,box-shadow .18s ease}.footer-notifications-button svg{width:16px;height:16px;flex:none}.footer-notifications-button span{min-width:0;overflow-wrap:anywhere}.footer-access button.footer-notifications-button:hover{box-shadow:inset 0 0 0 1px currentColor}.footer-access button.footer-admin-link[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.footer-admin-link,.footer-access button.footer-notifications-button{transition:none}.footer-admin-link:hover{transform:none}}
