/* Local brand override: keep the supplied square logo legible in every site slot. */
:root {
  --leoncita-burgundy: #710807;
  --leoncita-white: #ffffff;
}

html {
  background-color: var(--leoncita-burgundy) !important;
}

body:not(.leoncita-template-page) {
  background-color: var(--leoncita-burgundy) !important;
  color: var(--leoncita-white);
}

body:not(.leoncita-template-page) a,
body:not(.leoncita-template-page) h1,
body:not(.leoncita-template-page) h2,
body:not(.leoncita-template-page) h3,
body:not(.leoncita-template-page) h4,
body:not(.leoncita-template-page) h5,
body:not(.leoncita-template-page) h6,
body:not(.leoncita-template-page) p,
body:not(.leoncita-template-page) li,
body:not(.leoncita-template-page) label,
body:not(.leoncita-template-page) dt,
body:not(.leoncita-template-page) dd {
  color: var(--leoncita-white);
}

body:not(.leoncita-template-page) .site-header,
body:not(.leoncita-template-page) .site-header.cloned,
body:not(.leoncita-template-page) .nav-overlay,
body:not(.leoncita-template-page) .nav-overlay .menu-container,
body:not(.leoncita-template-page) #footer {
  background-color: var(--leoncita-burgundy) !important;
  color: var(--leoncita-white) !important;
}

/* The homepage intro is a separate visual layer and must keep its own colors. */
body:not(.leoncita-template-page) .animation-intro .site-header {
  background-color: transparent !important;
}

body:not(.leoncita-template-page) .animation-intro {
  background-color: #fff !important;
  color: var(--leoncita-burgundy) !important;
  transition: background-color .6s ease-in-out 5s, opacity .4s ease-in-out;
}

body:not(.leoncita-template-page) .animation-intro .hero-container.full_vh.bg-white {
  background-color: transparent !important;
  color: var(--leoncita-burgundy) !important;
}

body:not(.leoncita-template-page) .animation-intro.animate,
body:not(.leoncita-template-page) .animation-intro.animate-var {
  background-color: var(--leoncita-burgundy) !important;
}

body:not(.leoncita-template-page) .animation-intro.animate-var {
  transition: opacity .4s ease-in-out;
}

body:not(.leoncita-template-page) .animation-intro.intro-complete {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

body:not(.leoncita-template-page) .global-nav a,
body:not(.leoncita-template-page) .nav-overlay a,
body:not(.leoncita-template-page) #footer a {
  color: var(--leoncita-white) !important;
}

body:not(.leoncita-template-page) .global-nav a:hover,
body:not(.leoncita-template-page) .nav-overlay a:hover,
body:not(.leoncita-template-page) #footer a:hover {
  color: var(--leoncita-white) !important;
  opacity: 0.72;
}

body .nav-overlay .global-nav ul ul {
  border-color: rgba(255, 255, 255, 0.3);
}

/* Small brand mark for the homepage's full-screen navigation. */
body:not(.leoncita-template-page) .nav-overlay .leoncita-menu-corner-logo {
  position: absolute;
  right: clamp(28px, 6vw, 112px);
  bottom: clamp(28px, 5vw, 72px);
  z-index: 2;
  display: block;
  width: 280px;
  opacity: 1;
}

body:not(.leoncita-template-page) .nav-overlay .leoncita-menu-corner-logo img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  body:not(.leoncita-template-page) .nav-overlay .leoncita-menu-corner-logo {
    right: 24px;
    bottom: 24px;
    width: 200px;
  }
}

body:not(.leoncita-template-page) input,
body:not(.leoncita-template-page) textarea,
body:not(.leoncita-template-page) select {
  color: var(--leoncita-burgundy);
  background-color: var(--leoncita-white);
}

body.leoncita-template-page {
  --leoncita-template-accent: #710807;
}

body.leoncita-page-strategy-planning {
  --leoncita-template-accent: #9a6a3a;
}

body.leoncita-page-sponsorship-management {
  --leoncita-template-accent: #1f5d72;
}

body.leoncita-page-activations-integrated-marketing-management {
  --leoncita-template-accent: #b24f3f;
}

body.leoncita-page-talent-business {
  --leoncita-template-accent: #386447;
}

body.leoncita-page-production {
  --leoncita-template-accent: #684b72;
}

body.leoncita-page-hospitality {
  --leoncita-template-accent: #284d69;
}

body.leoncita-page-management-consulting {
  --leoncita-template-accent: #4d5663;
}

body.leoncita-page-events {
  --leoncita-template-accent: #a36a28;
}

body.leoncita-template-page .hero-text-container h1,
body.leoncita-template-page .hero-text-container h2,
body.leoncita-template-page .hero-text-container h3,
body.leoncita-template-page .page-title,
body.leoncita-template-page .section-title {
  color: var(--leoncita-template-accent) !important;
}

body.leoncita-template-page .hero-text-container h1 {
  color: var(--leoncita-white) !important;
}

body.leoncita-template-page .btn-red,
body.leoncita-template-page .button-red,
body.leoncita-template-page .bg-red {
  background-color: var(--leoncita-template-accent) !important;
  border-color: var(--leoncita-template-accent) !important;
}

.leoncita-service-page {
  min-height: 100vh;
  background: var(--leoncita-burgundy) !important;
  color: var(--leoncita-white);
}

.leoncita-service-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 8.3333%;
}

.leoncita-service-logo {
  display: block;
  width: 82px;
}

.leoncita-service-logo img {
  display: block;
  width: 100%;
  height: auto;
}

.leoncita-service-home {
  color: var(--leoncita-white) !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
}

.leoncita-service-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin: 0 auto;
  padding: 0 8.3333%;
  border-top: 1px solid rgba(255, 255, 255, 0.35);
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
}

.leoncita-service-nav div {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 0 26px;
}

.leoncita-service-nav p {
  margin: 0 0 8px;
  color: var(--leoncita-white) !important;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.leoncita-service-nav a {
  color: var(--leoncita-white) !important;
  font-size: 15px;
  line-height: 1.35;
}

.leoncita-service-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 8.3333%;
  border-top: 1px solid rgba(255, 255, 255, 0.35);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.leoncita-service-footer div {
  display: flex;
  gap: 24px;
}

.leoncita-service-footer a {
  color: var(--leoncita-white) !important;
}

.leoncita-service-main {
  max-width: 960px;
  min-height: 70vh;
  margin: 0 auto;
  padding: 12vh 8.3333% 120px;
}

.leoncita-service-kicker {
  margin-bottom: 24px;
  color: var(--leoncita-white) !important;
  font-size: 14px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.leoncita-service-main h1 {
  max-width: 820px;
  margin: 0 0 32px;
  color: var(--leoncita-white) !important;
  font-size: clamp(42px, 8vw, 104px);
  line-height: 0.98;
}

.leoncita-service-placeholder {
  max-width: 620px;
  color: var(--leoncita-white) !important;
  font-size: 20px;
  line-height: 1.5;
}

.leoncita-service-placeholder code {
  color: var(--leoncita-white);
}

@media (max-width: 720px) {
  .leoncita-service-header {
    padding: 22px 6%;
  }

  .leoncita-service-nav {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 6%;
  }

  .leoncita-service-main {
    padding: 10vh 6% 90px;
  }

  .leoncita-service-footer {
    align-items: flex-start;
    flex-direction: column;
    padding: 24px 6%;
  }

  .leoncita-service-footer div {
    flex-wrap: wrap;
    gap: 12px 20px;
  }
}
.leoncita-logo {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

.site-header .logo .leoncita-logo {
  width: 280px;
  height: auto;
}

.site-header .logo {
  width: 280px;
  top: 37px;
}

.site-header .site-header-container .logo,
.animation-intro .site-header-container .logo {
  width: 280px;
  top: 37px;
}

.site-header .logo.speakers-logo {
  align-items: center;
  justify-content: flex-start;
}

.site-header .logo.speakers-logo .leoncita-logo {
  width: 50px;
  height: 50px;
}

.animation-intro .site-header-container .logo .leoncita-logo {
  width: 280px;
  height: auto;
}

/* Apply the original template's wipe sequence to our image logo. */
.animation-intro .site-header-container .red-logo {
  display: block;
}

.animation-intro.animate .site-header-container .red-logo {
  opacity: 1;
}

.animation-intro .site-header-container .red-logo .leoncita-logo,
.animation-intro .animated-scene .caa-logo .leoncita-logo {
  filter: brightness(0) saturate(100%) invert(10%) sepia(81%) saturate(3900%) hue-rotate(352deg) brightness(76%) contrast(106%);
}

.animation-intro.animate .site-header-container .red-logo .leoncita-logo {
  animation: caaHeader .8s ease 2.5s both;
}

.animation-intro.animate .site-header-container .white-logo .leoncita-logo {
  animation: caaHeader .8s ease 5.1s both;
}

.animation-intro.animate .animated-scene .caa-logo .leoncita-logo {
  animation: caaCenter 3s ease 0s both;
}

.animation-intro .animated-scene .slogan-container {
  color: var(--leoncita-burgundy);
}

.animation-intro .animated-scene .caa-logo .leoncita-logo {
  width: 100%;
  height: auto;
}

@media (max-width: 768px) {
  body:not(.leoncita-template-page) .nav-overlay.open nav.global-nav > ul.selected > li:not(.select) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body:not(.leoncita-template-page) .nav-overlay.open nav.global-nav > ul.selected > li.select {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}

.logo-land .leoncita-logo,
.logo-land-2 .leoncita-logo {
  width: 100%;
  height: auto;
}

#footer .content-container .footer-standard .footer-logo-column a.logo .leoncita-logo {
  width: 220px;
  max-width: 100%;
  height: auto;
}

/* Keep the original CAA footer rhythm while using the shorter Leoncita link set. */
#footer .footer-standard .overlay-footer ul {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

#footer .footer-standard .overlay-footer li {
  margin: 0;
}

#footer .footer-bottom .menu--footer-utility ul {
  align-items: center;
}

#footer .footer-bottom .footer-company-name {
  color: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

@media (max-width: 767px) {
  .site-header .logo,
  .site-header .site-header-container .logo,
  .animation-intro .site-header-container .logo {
    width: 200px;
    top: 40px;
  }

  .site-header .logo .leoncita-logo,
  .animation-intro .site-header-container .logo .leoncita-logo {
    width: 200px;
  }

  #footer .footer-standard .overlay-footer ul {
    gap: 10px;
  }
}

/* Template pages use the compact fixed header from the source site. */
body.leoncita-template-page .site-header,
body.leoncita-template-page .site-header.cloned,
body.leoncita-template-page .site-header.cloned.show {
  height: 75px !important;
  background-color: var(--leoncita-burgundy) !important;
}

body.leoncita-template-page .site-header .site-header-container .logo,
body.leoncita-template-page .site-header.cloned .site-header-container .logo {
  width: 220px;
  top: 12px;
}

body.leoncita-template-page .site-header .logo .leoncita-logo,
body.leoncita-template-page .site-header.cloned .logo .leoncita-logo {
  width: 220px;
  height: auto;
}

/* Keep the hamburger geometry stable during hover, scroll cloning, and menu toggle. */
/* The visible bars (and open X) share a center 9px below the button top. */
body.leoncita-template-page .site-header .nav-trigger,
body.leoncita-template-page .site-header.cloned .nav-trigger {
  top: calc(50% - 9px) !important;
  margin-top: 0 !important;
  bottom: auto !important;
}

body .site-header .nav-trigger,
body .site-header .nav-trigger:hover,
body .site-header .nav-trigger:active {
  width: 30px !important;
  height: 25px !important;
  transform: none !important;
}

body .site-header .nav-trigger span,
body .site-header .nav-trigger:hover span,
body .site-header .nav-trigger:active span {
  left: 0 !important;
  width: 30px !important;
  background-color: var(--leoncita-white) !important;
  transform-origin: center center !important;
}

body .site-header .nav-trigger span:nth-child(1),
body .site-header .nav-trigger:hover span:nth-child(1),
body .site-header .nav-trigger:active span:nth-child(1) {
  top: 0 !important;
  transform: none !important;
}

body .site-header .nav-trigger span:nth-child(2),
body .site-header .nav-trigger:hover span:nth-child(2),
body .site-header .nav-trigger:active span:nth-child(2) {
  top: 8px !important;
  transform: none !important;
}

body .site-header .nav-trigger span:nth-child(3),
body .site-header .nav-trigger:hover span:nth-child(3),
body .site-header .nav-trigger:active span:nth-child(3) {
  top: 16px !important;
  transform: none !important;
}

body .site-header .nav-trigger.open span:nth-child(1),
body .site-header .nav-trigger.open:hover span:nth-child(1) {
  top: 8px !important;
  left: 0 !important;
  transform: rotate(45deg) !important;
}

body .site-header .nav-trigger.open span:nth-child(2),
body .site-header .nav-trigger.open:hover span:nth-child(2) {
  top: 8px !important;
  width: 0 !important;
  opacity: 0 !important;
}

body .site-header .nav-trigger.open span:nth-child(3),
body .site-header .nav-trigger.open:hover span:nth-child(3) {
  top: 8px !important;
  left: 0 !important;
  transform: rotate(-45deg) !important;
}

@media (max-width: 767px) {
  body.leoncita-template-page .site-header .site-header-container .logo,
  body.leoncita-template-page .site-header.cloned .site-header-container .logo {
    width: 190px;
    top: 14px;
  }

  body.leoncita-template-page .site-header .logo .leoncita-logo,
  body.leoncita-template-page .site-header.cloned .logo .leoncita-logo {
    width: 190px;
  }
}
