@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap');

.udon-hub-banners,
.udon-hub-banners * { box-sizing: border-box; }
.udon-hub-banners {
  --udon-red: #c8442f;
  position: relative;
  width: 100%;
  max-width: 1920px;
  height: auto;
  aspect-ratio: 1920 / 800;
  max-height: 800px;
  margin: 0 auto;
  overflow: hidden;
  background: #0a0a0a;
  color: #fff;
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  isolation: isolate;
}
/* Mantém a proporção original das artes: desktop 1920x800 e mobile 800x600. */
.udon-hub-banners__track { position: absolute; inset: 0; width: 100%; height: 100%; }
.udon-hub-banners__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 1.1s ease, visibility 1.1s ease;
}
.udon-hub-banners__slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 2; }
.udon-hub-banners__picture { position: absolute; inset: 0; display: block; width: 100%; height: 100%; z-index: 0; }
.udon-hub-banners__picture img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: contain;
  object-position: var(--udon-image-x, 50%) var(--udon-image-y, 50%);
  background: #0a0a0a;
  opacity: .55;
  transform: none;
  transition: opacity .3s ease;
}
.udon-hub-banners__slide.is-active .udon-hub-banners__picture img { transform: none; }
.udon-hub-banners__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, var(--udon-overlay, .25));
  pointer-events: none;
}
.udon-hub-banners__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  padding: 0;
  display: block;
}
.udon-hub-banners__content { position: absolute; left: var(--udon-content-x, 8%); right: auto; top: var(--udon-content-y, 50%); transform: translateY(-50%); width: min(var(--udon-content-width, 580px), 84%); max-width: none; margin: 0; color: #fff; text-align: left !important; }
.udon-hub-banners__slide.is-center .udon-hub-banners__content { left: 50%; right: auto; transform: translate(-50%, -50%); text-align: center !important; }
.udon-hub-banners__slide.is-right .udon-hub-banners__content { left: auto; right: 8%; text-align: right !important; }
.udon-hub-banners__slide.is-top .udon-hub-banners__content { top: 8%; transform: none; }
.udon-hub-banners__slide.is-bottom .udon-hub-banners__content { top: auto; bottom: 12%; transform: none; }
.udon-hub-banners__content.text-center { text-align: center !important; margin-inline: auto; }
.udon-hub-banners__content.text-right { text-align: right !important; margin-left: auto; }
.udon-hub-banners__eyebrow { display: inline-block; margin: 0 0 18px; font-size: var(--udon-eyebrow-size, 11px); font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,.82); }
.udon-hub-banners__content h2 {
  text-align: inherit !important;
  font-family: 'Montserrat', sans-serif;
  font-size: var(--udon-title-size-desktop, clamp(38px, 4.2vw, 64px));
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -.03em;
  color: #fff;
  text-align: inherit;
  margin: 0 0 22px;
  padding: 0;
  max-width: 100%;
  overflow-wrap: break-word;
}
.udon-hub-banners__content p { font-family: 'Montserrat', sans-serif; font-size: var(--udon-description-size, 17px); font-weight: 300; line-height: 1.7; color: rgba(255,255,255,.86); margin: 0 0 30px; max-width: 480px; }
.udon-hub-banners__content.text-center p { margin-left: auto; margin-right: auto; }
.udon-hub-banners__content.text-right p { margin-left: auto; }
.udon-hub-banners__buttons { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: var(--udon-button-gap, 14px); }
.udon-hub-banners__button { font-family: 'Montserrat', sans-serif; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 16px 32px; border-radius: 2px; font-size: var(--udon-button-size, 13px); font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; text-decoration: none !important; border: 1.5px solid transparent; transition: all .3s ease; cursor: pointer; }
.udon-hub-banners__button.is-primary { background: var(--udon-red); color: #fff !important; border-color: var(--udon-red); }
.udon-hub-banners__button.is-primary:hover { background: #fff; color: #0a0a0a !important; border-color: #fff; }
.udon-hub-banners__button.is-secondary { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.55); }
.udon-hub-banners__button.is-secondary:hover { background: rgba(255,255,255,.08); border-color: #fff; }
.udon-hub-banners__content.text-center .udon-hub-banners__buttons { justify-content: center; }
.udon-hub-banners__content.text-right .udon-hub-banners__buttons { justify-content: flex-end; }
.udon-hub-banners__dots { position: absolute; left: 0; right: 0; bottom: 28px; z-index: 5; display: flex; justify-content: center; align-items: center; gap: 10px; }
.udon-hub-banners__dot { width: 34px; min-width: 34px; height: 3px; border: 0; padding: 0; cursor: pointer; background: rgba(255,255,255,.3); transition: background .3s ease; }
.udon-hub-banners__dot.is-active { background: var(--udon-red); }
.udon-hub-banners__dot:focus-visible, .udon-hub-banners__button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

@media (max-width: 768px) {
  .udon-hub-banners { height: auto; aspect-ratio: 800 / 600; max-height: none; }
  .udon-hub-banners__inner { width: 100%; max-width: none; padding: 0; text-align: left; }
  .udon-hub-banners__content { left: 6%; right: auto; width: 88%; max-width: none; text-align: left !important; }
  .udon-hub-banners__slide.is-center .udon-hub-banners__content { left: 50%; right: auto; text-align: center !important; }
  .udon-hub-banners__slide.is-right .udon-hub-banners__content { right: 6%; }
  .udon-hub-banners__content h2 { font-size: var(--udon-title-size-mobile, clamp(30px, 7vw, 42px)); line-height: 1.08; margin-bottom: 18px; }
  .udon-hub-banners__content p { font-size: 15px; line-height: 1.55; margin-bottom: 24px; }
  .udon-hub-banners__eyebrow { font-size: 10px; letter-spacing: 2px; margin-bottom: 13px; }
  .udon-hub-banners__buttons { justify-content: flex-start; gap: 10px; }
  .udon-hub-banners__button { width: auto; min-height: 46px; padding: 13px 18px; font-size: 11px; letter-spacing: 1px; }
  .udon-hub-banners__picture img { opacity: .6; }
  .udon-hub-banners__dots { bottom: 18px; gap: 7px; }
  .udon-hub-banners__dot { width: 25px; min-width: 25px; }
}
@media (max-width: 420px) {
  .udon-hub-banners__content h2 { font-size: clamp(27px, 7.5vw, 34px); }
  .udon-hub-banners__buttons { flex-wrap: wrap; }
  .udon-hub-banners__button { padding-inline: 13px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { .udon-hub-banners__slide, .udon-hub-banners__picture img, .udon-hub-banners__button, .udon-hub-banners__dot { transition: none; } }
/* Pesos e ajustes individuais por elemento */
.udon-hub-banners__eyebrow{font-weight:var(--udon-eyebrow-weight,600);transform:translate(var(--udon-eyebrow-x,0),var(--udon-eyebrow-y,0))}
.udon-hub-banners__content h2{font-weight:var(--udon-title-weight,700);transform:translate(var(--udon-title-x,0),var(--udon-title-y,0))}
.udon-hub-banners__content p{font-weight:var(--udon-description-weight,300);transform:translate(var(--udon-description-x,0),var(--udon-description-y,0))}

/* Correção de alinhamento: impedir overrides do tema e usar coordenadas relativas ao banner inteiro. */
.udon-hub-banners .udon-hub-banners__inner { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
.udon-hub-banners .udon-hub-banners__content { text-align: left !important; }
.udon-hub-banners .udon-hub-banners__content h2, .udon-hub-banners .udon-hub-banners__content p { text-align: inherit !important; }
.udon-hub-banners .udon-hub-banners__content.text-center { text-align: center !important; }
.udon-hub-banners .udon-hub-banners__content.text-right { text-align: right !important; }


/* UDON HUB 1.4.1: alinhamento à esquerda com recuo fixo solicitado. */
.udon-hub-banners .udon-hub-banners__slide .udon-hub-banners__content,
.udon-hub-banners .udon-hub-banners__slide.is-center .udon-hub-banners__content,
.udon-hub-banners .udon-hub-banners__slide.is-right .udon-hub-banners__content {
  left: 50px !important;
  right: auto !important;
  width: min(var(--udon-content-width, 580px), calc(100% - 100px)) !important;
  margin: 0 !important;
  text-align: left !important;
  transform: translateY(-50%) !important;
}
.udon-hub-banners .udon-hub-banners__content h2,
.udon-hub-banners .udon-hub-banners__content p,
.udon-hub-banners .udon-hub-banners__content .udon-hub-banners__eyebrow {
  text-align: left !important;
}
.udon-hub-banners .udon-hub-banners__content .udon-hub-banners__buttons {
  justify-content: flex-start !important;
}
@media (max-width: 768px) {
  .udon-hub-banners .udon-hub-banners__slide .udon-hub-banners__content,
  .udon-hub-banners .udon-hub-banners__slide.is-center .udon-hub-banners__content,
  .udon-hub-banners .udon-hub-banners__slide.is-right .udon-hub-banners__content {
    left: 20px !important;
    right: auto !important;
    width: calc(100% - 40px) !important;
  }
}

/* Imagem de chamada usada quando não há título principal */
.udon-hub-banners__callout-link { display: inline-block; max-width: 100%; line-height: 0; }
.udon-hub-banners__callout-image { display: block; width: auto; height: auto; max-width: min(100%, var(--udon-content-width, 620px)); max-height: calc(var(--udon-height-desktop, 800px) * .78); object-fit: contain; object-position: center; }
.udon-hub-banners__content.text-center .udon-hub-banners__callout-link { margin-inline: auto; }
.udon-hub-banners__content.text-right .udon-hub-banners__callout-link { margin-left: auto; }
@media (max-width: 768px) { .udon-hub-banners__callout-image { max-width: 100%; max-height: calc(var(--udon-height-mobile, 600px) * .72); } }
