:root {
  --font-sans: "Figtree", ui-sans-serif, system-ui, sans-serif;
  --font-display: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  --radius: 1rem;

  --text-xs: .75rem;
  --text-xs--line-height: calc(1 / .75);
  --text-sm: .875rem;
  --text-sm--line-height: calc(1.25 / .875);
  --text-base: 1rem;
  --text-base--line-height: calc(1.5 / 1);
  --text-lg: 1.125rem;
  --text-lg--line-height: calc(1.75 / 1.125);
  --text-xl: 1.25rem;
  --text-xl--line-height: calc(1.75 / 1.25);
  --text-2xl: 1.5rem;
  --text-2xl--line-height: calc(2 / 1.5);
  --text-3xl: 1.875rem;
  --text-3xl--line-height: calc(2.25 / 1.875);
  --text-4xl: 2.25rem;
  --text-4xl--line-height: calc(2.5 / 2.25);
  --text-5xl: 3rem;
  --text-5xl--line-height: 1;
  --text-7xl: 4.5rem;
  --text-7xl--line-height: 1;
  --text-8xl: 6rem;
  --text-8xl--line-height: 1;

  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;

  --tracking-tight: -.025em;
  --tracking-wide: .025em;
  --tracking-widest: .1em;

  --leading-tight: 1.25;
  --leading-snug: 1.375;
  --leading-relaxed: 1.625;

  --background: oklch(100% 0 0);
  --foreground: oklch(24% .03 245);
  --surface: oklch(96.8% .008 242);
  --card: oklch(100% 0 0);
  --card-foreground: oklch(24% .03 245);
  --popover: oklch(100% 0 0);
  --popover-foreground: oklch(24% .03 245);

  --primary: oklch(41% .103 248);
  --primary-foreground: oklch(99% .004 245);
  --secondary: oklch(95.5% .011 244);
  --secondary-foreground: oklch(34% .084 248);
  --muted: oklch(96.3% .009 244);
  --muted-foreground: oklch(52% .03 245);
  --accent: oklch(75.4% .165 63);
  --accent-foreground: oklch(28% .06 55);

  --sun: oklch(78.4% .159 73);
  --sun-foreground: oklch(28% .06 55);
  --river: oklch(63.6% .133 242);
  --river-foreground: oklch(99% .004 245);
  --leaf: oklch(62.4% .23 3);
  --leaf-foreground: oklch(99% .004 245);

  --destructive: oklch(57.7% .245 27.325);
  --destructive-foreground: oklch(98.4% .003 247.858);

  --border: oklch(91.2% .012 244);
  --input: oklch(91.2% .012 244);
  --ring: oklch(51% .123 247);

  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
  --blur-md: 12px;
}

.dark {
  --background: oklch(12.9% .042 264.695);
  --foreground: oklch(98.4% .003 247.858);
  --card: oklch(20.8% .042 265.755);
  --card-foreground: oklch(98.4% .003 247.858);
  --popover: oklch(20.8% .042 265.755);
  --popover-foreground: oklch(98.4% .003 247.858);

  --primary: oklch(92.9% .013 255.508);
  --primary-foreground: oklch(20.8% .042 265.755);
  --secondary: oklch(27.9% .041 260.031);
  --secondary-foreground: oklch(98.4% .003 247.858);
  --muted: oklch(27.9% .041 260.031);
  --muted-foreground: oklch(70.4% .04 256.788);
  --accent: oklch(27.9% .041 260.031);
  --accent-foreground: oklch(98.4% .003 247.858);

  --destructive: oklch(70.4% .191 22.216);
  --destructive-foreground: oklch(98.4% .003 247.858);

  --border: oklch(100% 0 0 / .1);
  --input: oklch(100% 0 0 / .15);
  --ring: oklch(55.1% .027 264.364);

  --surface: oklch(20% .03 245);
  --sun: oklch(80% .155 73);
  --sun-foreground: oklch(24% .05 55);
  --river: oklch(70% .12 242);
  --river-foreground: oklch(18% .03 245);
  --leaf: oklch(68% .2 3);
  --leaf-foreground: oklch(18% .03 245);
}

body {
  background-color: var(--background);
  color: var(--foreground);
}

h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  letter-spacing: -.015em;
}

a {
  color: inherit;
  text-decoration: inherit;
}

hr {
  height: 0;
  color: inherit;
  border: 0;
  border-top: 1px solid var(--border);
}

code,
kbd,
samp,
pre {
  font-family: var(--font-mono);
}

:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}


/*Novos estilos*/
body.bg-black.single-page .navbar-custom:not(.navbar-solid) {
  background: radial-gradient(ellipse 60% 93% at 103% 12%, #ef9517a6 2%, #b56268d9 43%, #174c7a9c 70%, #174c7aea 140%);
}



/*Menu Principal*/
.navbar-custom {
  padding-top: 10px;
}

/*Logo*/
.navbar-brand {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.portal-logo img {
  filter: brightness(100);
  height: 60px;
  padding: 0px !important;
}

.navbar-instituicao {
  padding-left: 12px;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  color: var(--primary-foreground);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: 1.2;
  max-width: 150px;
  min-height: 40px;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
}


/*Menu quando scrolla*/
.navbar-solid,
.navbar .navbar-custom .navbar-expand-md .fixed-top .navbar-solid {
  background-color: color-mix(in oklab, var(--background) 85%, transparent) !important;
  box-shadow: var(--shadow-sm);
  -webkit-backdrop-filter: blur(var(--blur-md));
  backdrop-filter: blur(var(--blur-md));
  border-bottom-color: var(--border);
}

.navbar-solid .navbar-nav>li>a,
.navbar .navbar-custom .navbar-expand-md .fixed-top .navbar-solid .navbar-nav>li>a {
  color: darkgray !important;
}

.navbar-solid .navbar-instituicao {
  border-left-color: rgba(0, 0, 0, 0.15);
  color: darkgray;
}

.navbar-solid .portal-logo img {
  filter: none !important;
  height: 70px !important;
  padding: 10px 0px 10px 0px !important;
}

/*Hover dos itens do menu*/
.navbar-nav .nav-link {
  border-radius: 5px;
  border: 0px;
  transition: background-color .2s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  background-color: color-mix(in oklab, var(--primary-foreground) 15%, transparent) !important;
  border-color: transparent;
  border: 0px;
}

.navbar-solid .navbar-nav .nav-link:hover,
.navbar-solid .navbar-nav .nav-link:focus {
  background-color: color-mix(in oklab, var(--primary) 15%, transparent) !important;
  border-color: transparent;
  border: 0px;
  color: var(--primary) !important;
}

/*Botão Acessar*/
.navbar-nav a[href*="accounts/login"],
.navbar-nav a[href*="users/"] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 8px;
  background: var(--sun);
  color: var(--primary) !important;
  padding: 8px 20px !important;
  text-transform: none !important;
}



.navbar-nav a[href*="accounts/login"]::before,
.navbar-nav a[href*="users/"]::before {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f007";
}

.navbar-solid .navbar-nav a[href*="accounts/login"] {
  color: var(--primary) !important;

}

.navbar-solid .navbar-nav a[href*="users/"] {
  color: var(--primary) !important;

}

.container:has(.navbar-collapse.collapse.show) {
  padding-bottom: var(--bs-gutter-x, .75rem);
}


/*Seções da Expotec*/
.section-eyebrow {
  display: block;
  color: var(--river);
  font-size: var(--text-sm);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 12px;
}

.section-title {
  text-align: left;
  text-transform: none;
  color: var(--foreground);
  font-size: var(--text-4xl);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 20px;
}

.section-text {
  color: var(--muted-foreground);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
}

.about-figure {
  position: relative;
  margin: 0;
}

.about-figure::before {
  content: "";
  position: absolute;
  top: -24px;
  left: -24px;
  width: 140px;
  height: 140px;
  background: color-mix(in oklab, var(--sun) 35%, transparent);
  border-radius: var(--radius);
  z-index: 0;
}

.about-figure img {
  position: relative;
  z-index: 1;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
}

/*Áreas Temáticas*/
#schedule {
  background-color: var(--background);
}

#schedule .schedule-box {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  height: 100%;
  width: 100%;
  background-color: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  text-align: left;
  color: var(--foreground);
  transition: box-shadow .2s ease, transform .2s ease;
}

#schedule .schedule-box::before {
  content: none;
}

#schedule .schedule-box:hover,
#schedule .schedule-box:focus {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  color: var(--foreground);
}

#schedule .schedule-info {
  min-width: calc(100% - 40px);
}

#schedule .schedule-title {
  display: block;
  margin: 0 0 4px;
  font-size: 2;
  font-weight: 700;
  color: var(--popover-foreground));
  text-align: justify;
  color: var(--primary);
  font-size: 1.25rem;
}

#schedule .schedule-desc {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--muted-foreground);
  line-height: 1.5;
}

/*Parceiros*/
#partner {
  background-color: var(--background);
}

#partner .partner-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  text-align: center;
  text-decoration: none;
  color: var(--foreground);
  transition: box-shadow .2s ease, transform .2s ease;
}

#partner .partner-card:hover,
#partner .partner-card:focus {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  color: var(--foreground);
}

#partner .partner-logo img {
  height: 45px;
}

#partner .partner-name {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--foreground);
}

#partner .partner-type {
  margin-top: 4px;
  font-size: var(--text-sm);
  color: var(--muted-foreground);
}

/*Rodapé*/
.site-footer {
  position: relative;
  background-color: var(--primary);
  color: color-mix(in oklab, var(--primary-foreground) 85%, transparent);
  text-align: left;
  padding: 64px 0 24px;
}

.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--river), var(--sun), var(--leaf));
}

.site-footer .footer-brand .portal-logo {
  display: inline-block;
  margin-bottom: 16px;
}

.site-footer .footer-brand .portal-logo img {
  height: 40px;
}

.site-footer .footer-brand-text {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 800;
  color: var(--primary-foreground);
}

.site-footer .footer-tagline {
  font-weight: 600;
  color: var(--primary-foreground);
  margin: 0 0 8px;
}

.site-footer .footer-desc {
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  margin: 0 0 20px;
}

.site-footer .footer-social {
  display: flex;
  gap: 12px;
  padding: 0;
  margin: 0;
  list-style: none;
  justify-content: start;
}

.site-footer .footer-social li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  background-color: color-mix(in oklab, var(--primary-foreground) 12%, transparent);
  color: var(--primary-foreground);
  transition: background-color .2s ease;
}

.site-footer .footer-social li a:hover,
.site-footer .footer-social li a:focus {
  background-color: color-mix(in oklab, var(--primary-foreground) 22%, transparent);
  opacity: 1;
}

.site-footer .footer-heading {
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--sun);
  margin: 0 0 20px;
}

.site-footer .footer-nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer .footer-nav li {
  margin-bottom: 14px;
  font-size: var(--text-sm);
  line-height: 1.5;
}

.site-footer .footer-nav a {
  color: color-mix(in oklab, var(--primary-foreground) 85%, transparent);
}

.site-footer .footer-nav a:hover,
.site-footer .footer-nav a:focus {
  color: var(--primary-foreground);
  text-decoration: underline;
}

.site-footer .footer-nav i {
  width: 16px;
  color: var(--sun);
}

.site-footer .footer-divider {
  border-color: color-mix(in oklab, var(--primary-foreground) 15%, transparent);
  margin: 40px 0 24px;
}

.site-footer .footer-copyright {
  font-size: var(--text-sm);
  color: color-mix(in oklab, var(--primary-foreground) 60%, transparent);
  margin: 0;
}

@media (max-width: 767.98px) {
  .site-footer .col-md-4 {
    margin-bottom: 32px;
  }
}

/*Informações do evento*/
#facts {
  background-color: var(--secondary) !important;
  background-image: none !important;
  text-align: left !important;
  color: var(--foreground) !important;
  font-size: var(--text-base) !important;
}

#facts::before {
  content: none;
}

#facts .row {
  row-gap: 1.5rem;
}

#facts .col-sm-3 {
  text-align: left !important;
  background-color: var(--card);
  background-clip: padding-box;
  border: 16px solid transparent;
  border-radius: calc(var(--radius) + 16px);
  padding: 28px;
  /* box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--border); */
}

#facts .col-sm-3 i {
  display: block;
  font-size: 28px !important;
  color: var(--river) !important;
  margin-bottom: 16px;
}

#facts h3 {
  font-weight: 700;
  color: var(--foreground) !important;
  margin: 0 0 6px;
  line-height: 1.3;
}

#facts h3 small {
  display: block;
  font-size: var(--text-base) !important;
  font-weight: 400;
  color: var(--muted-foreground) !important;
  line-height: 1.5;
}

/*Chamada para Submissão de Trabalhos*/
#contribution {
  background: none;
  text-align: left;
  color: var(--primary-foreground);
}

#contribution::before {
  content: none;
}

#contribution .container {
  background-image:
    radial-gradient(ellipse 70% 100% at 90% 0%, color-mix(in oklab, var(--leaf) 55%, transparent) 0%, transparent 60%),
    radial-gradient(ellipse 60% 90% at 78% 0%, color-mix(in oklab, var(--sun) 55%, transparent) 0%, transparent 65%),
    linear-gradient(120deg, var(--primary) 0%, var(--primary) 55%, var(--river) 100%);
  border-radius: calc(var(--radius) + 8px);
  padding: 56px 48px;
}

#contribution h3 {
  text-transform: none !important;
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 800;
  color: var(--primary-foreground);
  margin: 0 0 16px;
}

#contribution p {
  font-size: var(--text-lg);
  font-weight: 400;
  color: color-mix(in oklab, var(--primary-foreground) 85%, transparent);
  max-width: 640px;
  line-height: var(--leading-relaxed);
  margin-bottom: 28px;
}

#contribution .btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--sun);
  color: var(--primary);
  border: none;
  border-radius: 5px;
  padding: 12px 28px;
  font-weight: 600;
  text-transform: none;
}

#contribution .btn-secondary::after {
  content: "\2192";
}

#contribution .btn-secondary:hover,
#contribution .btn-secondary:focus {
  transform: translateY(-5px);
  color: var(--primary);
}

#contribution .btn-outline-light {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
  background: transparent;
  color: var(--primary-foreground);
  border: 1px solid color-mix(in oklab, var(--primary-foreground) 40%, transparent);
  border-radius: 5px;
  padding: 12px 28px;
  font-weight: 600;
  text-transform: none;
}

#contribution .btn-outline-light:hover,
#contribution .btn-outline-light:focus {
  background: color-mix(in oklab, var(--primary-foreground) 12%, transparent);
  color: var(--primary-foreground);
  border-color: var(--primary-foreground);
  transform: translateY(-5px);
}

@media (max-width: 767.98px) {
  #contribution .container {
    padding: 40px 24px;
  }

  #contribution h3 {
    font-size: var(--text-2xl);
  }
}


/*Hero*/
.site-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  min-height: auto;
  height: 100vh;
}


.site-header .intro::before {
  background: radial-gradient(ellipse 60% 93% at 103% 12%, #ef9517a6 2%, #b56268d9 43%, #174c7a9c 70%, #174c7aea 140%) !important;
  z-index: 1 !important;
  pointer-events: none;
}

.site-header .intro .carousel-caption {
  z-index: 2;
}

/*Cabeçalho de páginas internas*/
.site-header.page-header {
  height: auto;
  min-height: 320px;
}

.site-header.page-header .intro {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 140px 0 48px;
}

.site-header.page-header .container {
  position: relative;
  z-index: 2;
}

.page-header-eyebrow {
  color: var(--sun);
}

.page-header-title {
  margin: 0;
  color: var(--primary-foreground);
  font-size: var(--text-4xl);
  font-weight: 800;
  line-height: 1.15;
}

.site-header .carousel-caption {
  top: 50%;
  bottom: auto;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  width: 100%;
  max-width: 540px;
  margin-inline: auto;
  padding-inline: .75rem;
  box-sizing: border-box;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  pointer-events: none;
}

.site-header .carousel-caption a,
.site-header .carousel-caption button {
  pointer-events: auto;
}


.site-header .carousel-caption h1 {
  order: 1;
  margin: 0 0 16px;
  max-width: 640px;
  color: var(--sun);
  font-size: var(--text-7xl);
}

.site-header .carousel-caption h2 {
  order: 2;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.85);
  background: color-mix(in oklab, var(--primary-foreground) 10%, transparent);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 5px;
  padding: 6px 16px;
  margin: 0 0 16px;
}

.site-header .carousel-caption h2::before {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f0e7";
  color: #f5c451;
  font-size: 12px;
}

.site-header .carousel-caption p {
  order: 3;
  font-size: 16px;
  font-weight: 400;
  text-transform: none;
  color: rgba(255, 255, 255, 0.8);
  max-width: 520px;
}

.site-header .carousel-caption .btn-success {
  order: 4;
  align-self: flex-start;
  background-image: linear-gradient(135deg, var(--sun) 0%, var(--leaf) 100%);
  color: var(--primary) !important;
  margin: 16px 0 16px 0px;
  border-radius: 5px;
  padding: 10px 28px;
  font-weight: 600;
  text-transform: none;
  cursor: pointer;
  border-radius: calc(var(--radius) - 2px);
  box-shadow: var(--shadow-md);
}

.site-header .carousel-caption .btn-success:hover,
.site-header .carousel-caption .btn-success:focus {
  transform: translateY(-5px);
}


/* Video*/
#promo::before {
  background: transparent !important;
}

/*carrossel*/
.site-header .carousel {
  height: 100%;
  box-sizing: border-box;
}

.site-header .carousel-inner,
.site-header .carousel-item {
  height: 100%;
}

.site-header .carousel-item img,
.site-header video#promo_video {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/*Indicadores do carrossel*/
#carousel_noticias .carousel-indicators {
  z-index: 2;
}

#carousel_noticias .carousel-indicators [data-bs-target] {
  background-color: var(--primary-foreground);
}

/*Setas prev/next: sÃ³ o hotspot clicÃ¡vel, sem Ã­cone visÃ­vel*/
#carousel_noticias .carousel-control-prev,
#carousel_noticias .carousel-control-next {
  opacity: 0;
  background: none;
}

#carousel_noticias .carousel-control-prev:hover,
#carousel_noticias .carousel-control-next:hover,
#carousel_noticias .carousel-control-prev:focus,
#carousel_noticias .carousel-control-next:focus {
  opacity: 0;
}

.location {
  background-color: #f8f8f8;
}

/*Breakpoints*/
@media (max-width: 767.98px) {
  .site-header .carousel-caption {
    padding-inline: 1.25rem;
  }

  .site-header .carousel-caption h1 {
    font-size: var(--text-4xl);
    margin: 0 0 12px;
  }

  .site-header .carousel-caption h2 {
    font-size: 11px;
    padding: 4px 12px;
    margin: 0 0 12px;
  }

  .site-header .carousel-caption p {
    font-size: 14px;
    max-width: 100%;
  }

  .site-header .carousel-caption .btn-success {
    padding: 8px 22px;
    margin: 12px 0;
  }

  .site-header .intro,
  .site-header {
    height: 100vh;
  }

  .site-header .carousel-caption h1 {
    font-size: 4rem;
  }

  .site-header .carousel {
    padding-top: 40px;
  }

  .site-header .carousel-caption {
    max-width: 720px;
  }

  .navbar-custom {
    background-color: transparent;
  }

  .section-title {
    font-size: var(--text-3xl);
  }

  .navbar-instituicao {
    display: none;
  }
}

/*Tablet*/
@media (min-width: 768px) and (max-width: 991.98px) {
  .navbar-instituicao {
    display: none;
  }
}


@media (min-width: 992px) {
  .site-header .carousel-caption {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .site-header .carousel-caption {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {
  .site-header .carousel-caption {
    max-width: 1320px;
  }
}


#schedule .schedule-badge {
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  color: white;
  font-size: large;
  font-weight: 700;
}


.navbar-instituicao,
.schedule-badge {
  display: flex !important;
}