/* =========================================================
   GREGORIO GLADSET — STYLE.CSS
   ========================================================= */

:root {
  --bg: #050705;
  --surface: #0b0f0b;
  --surface-2: #111611;

  --text: #f4f7f4;
  --muted: #a9b0a9;

  --green: #39e600;
  --green-dark: #1fa900;

  --border: rgba(57, 230, 0, 0.22);

  --shadow:
          0 0 35px rgba(57, 230, 0, 0.16);
}


/* =========================================================
   LIGHT MODE
   ========================================================= */

body.light {

  --bg: #f6f8f6;
  --surface: #ffffff;
  --surface-2: #edf2ed;

  --text: #101410;
  --muted: #596259;

  --border: rgba(31, 169, 0, 0.25);
}


/* =========================================================
   RESET
   ========================================================= */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}


html {
  scroll-behavior: smooth;
  scroll-padding-top: 74px;
}


body {
  background: var(--bg);
  color: var(--text);

  font-family: "Inter", sans-serif;

  line-height: 1.6;

  overflow-x: hidden;

  transition:
          background 0.3s ease,
          color 0.3s ease;
}


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


button {
  font-family: inherit;
  color: inherit;
  cursor: pointer;
}


/* =========================================
   HEADER
========================================= */

.site-header {
  position: fixed;
  top: 0;
  left: 0;

  width: 100%;
  height: 72px;

  padding: 0 4%;

  display: flex;
  align-items: center;

  background: rgba(3, 5, 3, 0.92);

  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  border-bottom: 1px solid rgba(255, 255, 255, 0.08);

  z-index: 1000;
}


/* =========================================
   LOGO
========================================= */

.brand {
  display: flex;
  align-items: center;

  flex-shrink: 0;

  width: 180px;
}

.brand-logo {
  display: block;

  width: 125px;
  height: auto;

  object-fit: contain;
}


/* =========================================
   NAVBAR
========================================= */

.nav {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 38px;

  flex: 1;

  height: 100%;
}


.nav a {
  position: relative;

  display: flex;
  align-items: center;

  height: 100%;

  color: #ffffff;

  font-size: 11px;
  font-weight: 700;

  white-space: nowrap;

  transition: color 0.25s ease;
}


.nav a:hover {
  color: #39e600;
}


/* Linha verde */

.nav a::after {
  content: "";

  position: absolute;

  left: 0;
  bottom: 0;

  width: 0;
  height: 2px;

  background: #39e600;

  transition: width 0.25s ease;
}


.nav a:hover::after,
.nav a.active::after {
  width: 100%;
}


/* =========================================
   BOTÃO DARK / LIGHT
========================================= */

.theme-toggle {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 5px;

  width: 70px;
  height: 30px;

  padding: 4px 7px;

  border: 1px solid rgba(57, 230, 0, 0.5);

  border-radius: 30px;

  background: #0b0f0b;

  flex-shrink: 0;
}


.theme-toggle i {
  position: relative;

  display: block;

  width: 25px;
  height: 14px;

  border-radius: 20px;

  background: #39e600;
}


.theme-toggle i::after {
  content: "";

  position: absolute;

  top: 2px;
  right: 2px;

  width: 10px;
  height: 10px;

  border-radius: 50%;

  background: #ffffff;
}


/* =========================================================
   MENU MOBILE
   ========================================================= */

.menu-toggle {

  display: none;

  width: 40px;

  height: 40px;

  border: none;

  background: transparent;

  color: var(--text);

  font-size: 25px;
}


/* =========================================================
   HERO
   ========================================================= */

.hero {
  position: relative;
  min-height: 100vh;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding-top: 74px;
}

.hero-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  z-index: -3;
}


.hero-overlay {

  position: absolute;

  inset: 0;

  z-index: -2;

  background:

          linear-gradient(
                  90deg,
                  rgba(0, 0, 0, 0.88),
                  rgba(0, 0, 0, 0.45) 50%,
                  rgba(0, 0, 0, 0.9)
          ),

          linear-gradient(
                  0deg,
                  rgba(0, 0, 0, 0.75),
                  transparent 50%
          );
}


.hero-grid {

  width: min(1250px, 90%);

  margin: auto;

  display: grid;

  grid-template-columns:
        1fr 1fr;

  align-items: center;

  gap: 30px;
}


.hero-athlete {

  height:
          calc(100vh - 74px);

  display: flex;

  align-items: flex-end;

  justify-content: center;
}


.hero-athlete img {

  height: 94%;

  max-width: 100%;

  object-fit: contain;

  filter:
          drop-shadow(
                  0 0 30px
                  rgba(57, 230, 0, 0.08)
          );
}


.hero-content {

  padding: 40px 0;
}


.eyebrow,
.section-kicker {

  color:
          var(--green);

  font-size: 12px;

  font-weight: 800;

  letter-spacing: 4px;
}


.hero h1 {

  font-family:
          "Barlow Condensed",
          sans-serif;

  font-size:
          clamp(70px, 8vw, 130px);

  line-height:
          0.82;

  letter-spacing:
          2px;

  margin:
          10px 0 20px;

  font-weight:
          900;
}


.hero h1 span {

  color:
          var(--green);
}


.discipline {

  letter-spacing:
          10px;

  font-weight:
          600;

  margin-bottom:
          20px;
}


.hero-points {

  list-style:
          none;

  border-left:
          2px solid var(--green);

  padding-left:
          18px;

  margin-bottom:
          28px;
}


.hero-points li {

  font-size:
          13px;

  margin:
          4px 0;
}


/* =========================================================
   BUTTON
   ========================================================= */

.btn {

  display:
          inline-flex;

  align-items:
          center;

  gap:
          18px;

  border:
          1px solid var(--green);

  background:
          var(--green);

  color:
          #061006;

  padding:
          11px 20px;

  border-radius:
          4px;

  font-size:
          11px;

  font-weight:
          800;

  transition:
          0.25s ease;
}


.btn:hover {

  box-shadow:
          var(--shadow);

  transform:
          translateY(-2px);
}


.btn.outline {

  background:
          transparent;

  color:
          var(--text);

  margin:
          25px auto 0;

  display:
          flex;

  width:
          max-content;
}


/* =========================================================
   SOM DO HERO
   ========================================================= */

.sound-indicator {

  position:
          absolute;

  left:
          3%;

  bottom:
          20px;

  padding:
          7px 12px;

  background:
          rgba(0, 0, 0, 0.55);

  border:
          1px solid
          rgba(255, 255, 255, 0.2);

  border-radius:
          4px;

  font-size:
          10px;
}


/* =========================================================
   SOCIAL FLOAT
   ========================================================= */

.social-float {

  position:
          fixed;

  z-index:
          40;

  right:
          25px;

  top:
          45%;

  display:
          flex;

  flex-direction:
          column;

  gap:
          13px;
}


.social {
  width: 48px;
  height: 48px;

  border-radius: 50%;

  display: grid;
  place-items: center;

  color: #ffffff;

  transition:
          transform 0.3s ease,
          box-shadow 0.3s ease;
}


/* INSTAGRAM */

.social.instagram {
  background:
          radial-gradient(
                  circle at 30% 107%,
                  #fdf497 0%,
                  #fdf497 5%,
                  #fd5949 45%,
                  #d6249f 60%,
                  #285aeb 90%
          );

  box-shadow:
          0 0 22px rgba(214, 36, 159, 0.45);
}


.social.instagram:hover {
  transform: scale(1.1);

  box-shadow:
          0 0 30px rgba(214, 36, 159, 0.7);
}


/* ÍCONE INSTAGRAM */

.social.instagram svg {
  width: 27px;
  height: 27px;

  color: #ffffff;
}


/* YOUTUBE */

.social.youtube {
  background: #ff0000;

  color: #ffffff;

  box-shadow:
          0 0 22px rgba(255, 0, 0, 0.45);
}


.social.youtube:hover {
  transform: scale(1.1);

  box-shadow:
          0 0 30px rgba(255, 0, 0, 0.7);
}


/* =========================================================
   SEÇÕES
   ========================================================= */

.section {

  width:
          min(1180px, 90%);

  margin:
          auto;

  padding:
          75px 0;
}


/* =========================================================
   SOBRE
   ========================================================= */

.about {

  display:
          grid;

  grid-template-columns:
        330px 1fr;

  gap:
          55px;

  align-items:
          center;
}


.about-image {

  border:
          1px solid var(--green);

  padding:
          7px;

  box-shadow:
          var(--shadow);
}


.about-image img {

  width:
          100%;

  height:
          360px;

  object-fit:
          cover;

  display:
          block;
}


.about-copy h2 {

  font-family:
          "Barlow Condensed",
          sans-serif;

  font-size:
          48px;

  line-height:
          1;

  margin:
          7px 0 18px;
}


.about-copy p {

  color:
          var(--muted);

  font-size:
          13px;

  margin-bottom:
          12px;
}


.about-copy strong {

  color:
          var(--green);

  font-size:
          12px;
}


/* =========================================================
   STATS
   ========================================================= */

.stats {

  display:
          grid;

  grid-template-columns:
        repeat(5, 1fr);

  gap:
          10px;

  margin-top:
          25px;
}


.stats div {

  background:
          var(--surface-2);

  border:
          1px solid
          rgba(255, 255, 255, 0.08);

  padding:
          12px 8px;

  text-align:
          center;

  border-radius:
          5px;
}


.stats span {

  display:
          block;

  color:
          var(--green);

  font-size:
          19px;
}


.stats b,
.stats small {

  display:
          block;
}


.stats b {

  font-size:
          14px;
}


.stats small {

  font-size:
          8px;

  color:
          var(--muted);
}


/* =========================================================
   CONQUISTAS
   ========================================================= */

.achievements {

  border-top:
          1px solid
          rgba(255, 255, 255, 0.07);

  border-bottom:
          1px solid
          rgba(255, 255, 255, 0.07);
}


.centered {

  text-align:
          center;
}


.achievement-grid {

  display:
          grid;

  grid-template-columns:
        repeat(4, 1fr);

  gap:
          16px;

  margin-top:
          15px;
}


.achievement-grid article {

  display:
          flex;

  align-items:
          center;

  gap:
          15px;

  padding:
          20px;

  background:
          var(--surface-2);

  border:
          1px solid
          var(--border);

  border-radius:
          5px;
}


.achievement-grid span {

  font-size:
          34px;

  color:
          var(--green);
}


.achievement-grid b,
.achievement-grid small {

  display:
          block;
}


.achievement-grid b {

  font-size:
          14px;
}


.achievement-grid small {

  font-size:
          10px;

  color:
          var(--green);
}


/* =========================================================
   GALERIA
   ========================================================= */

.gallery-section {

  text-align:
          center;
}


.filters {

  display:
          flex;

  justify-content:
          center;

  gap:
          7px;

  margin:
          15px 0 22px;

  flex-wrap:
          wrap;
}


.filters button {

  border:
          0;

  background:
          var(--surface-2);

  padding:
          7px 15px;

  font-size:
          9px;

  border-radius:
          4px;
}


.filters button.active {

  background:
          var(--green);

  color:
          #061006;
}


.gallery-grid {

  display:
          grid;

  grid-template-columns:
        repeat(7, 1fr);

  gap:
          7px;
}


.gallery-item {

  height:
          220px;

  border:
          1px solid
          rgba(255, 255, 255, 0.12);

  padding:
          0;

  overflow:
          hidden;

  background:
          #111;
}


.gallery-item img {

  width:
          100%;

  height:
          100%;

  object-fit:
          cover;

  transition:
          0.4s;
}


.gallery-item:hover img {

  transform:
          scale(1.06);
}


.gallery-item.hidden {

  display:
          none;
}


/* =========================================================
   PATROCINADORES
   ========================================================= */

.sponsors-section {

  border-top:
          1px solid
          rgba(255, 255, 255, 0.07);

  text-align:
          center;
}

.sponsor-card {
  min-width: calc((100% - 60px) / 6);
  height: 100px;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 15px 20px;

  background: var(--surface-2);

  border: 1px solid var(--border);

  border-radius: 5px;

  transition:
          transform 0.3s ease,
          border-color 0.3s ease,
          box-shadow 0.3s ease;
}


.sponsor-card:hover {
  transform: translateY(-4px);

  border-color: var(--green);

  box-shadow:
          0 0 25px rgba(57, 230, 0, 0.15);
}


.sponsor-card img {
  display: block;

  width: 100%;
  max-width: 150px;

  height: 65px;

  object-fit: contain;
}


.subtitle {

  font-size:
          12px;

  color:
          var(--muted);

  margin-top:
          4px;
}


.sponsor-wrap {

  display:
          flex;

  align-items:
          center;

  gap:
          12px;

  margin-top:
          22px;
}


.sponsor-track {

  display:
          flex;

  gap:
          12px;

  overflow:
          hidden;

  flex:
          1;
}


.sponsor-card {

  min-width:
          calc((100% - 60px) / 6);

  height:
          100px;

  background:
          var(--surface-2);

  border:
          1px solid
          var(--border);

  display:
          grid;

  place-items:
          center;

  font-weight:
          900;

  font-size:
          17px;

  padding:
          10px;
}


.sponsor-card small {

  font-size:
          7px;

  letter-spacing:
          1px;
}


.carousel-arrow {

  width:
          34px;

  height:
          34px;

  border-radius:
          50%;

  background:
          transparent;

  border:
          1px solid
          var(--green);

  color:
          var(--green);

  font-size:
          25px;
}


/* =========================================================
   CUPOM
   ========================================================= */

.coupon-box {

  margin:
          25px auto 0;

  max-width:
          760px;

  display:
          flex;

  align-items:
          center;

  justify-content:
          space-between;

  gap:
          20px;

  padding:
          18px 22px;

  background:
          linear-gradient(
                  100deg,
                  rgba(57, 230, 0, 0.12),
                  var(--surface-2)
          );

  border:
          1px solid
          var(--border);

  border-radius:
          6px;

  text-align:
          left;
}


.coupon-box span,
.coupon-box strong,
.coupon-box small {

  display:
          block;
}


.coupon-box span {

  font-size:
          9px;

  letter-spacing:
          2px;

  color:
          var(--green);

  font-weight:
          800;
}


.coupon-box strong {

  font-family:
          "Barlow Condensed",
          sans-serif;

  font-size:
          35px;

  letter-spacing:
          2px;
}


.coupon-box small {

  font-size:
          10px;

  color:
          var(--muted);
}


.copy-feedback {

  opacity:
          0;

  color:
          var(--green);

  font-size:
          10px !important;

  transition:
          0.2s;
}


.copy-feedback.show {

  opacity:
          1;
}


/* =========================================================
   VÍDEO + REDES
   ========================================================= */

.media-section {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 35px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.video-card {
  width: 100%;
  margin: 12px 0;
  overflow: hidden;
}

.video-card iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  border: 1px solid var(--border);
}

.latest-video h3 {
  font-family: "Barlow Condensed", sans-serif;
  font-size: 30px;
}

.latest-video > p:not(.section-kicker) {
  font-size: 12px;
  color: var(--muted);
  margin: 5px 0 15px;
}


/* =========================================================
   FRASE
   ========================================================= */

.quote-banner {

  padding:
          55px 8%;

  display:
          flex;

  justify-content:
          center;

  align-items:
          center;

  gap:
          30px;

  background:
          linear-gradient(
                  90deg,
                  rgba(0, 0, 0, 0.95),
                  rgba(30, 100, 15, 0.5),
                  rgba(0, 0, 0, 0.95)
          );

  border-top:
          1px solid
          var(--border);

  border-bottom:
          1px solid
          var(--border);
}


.quote-banner span {

  font-family:
          serif;

  color:
          var(--green);

  font-size:
          80px;

  line-height:
          0.5;
}


.quote-banner h2 {

  font-family:
          "Barlow Condensed",
          sans-serif;

  font-style:
          italic;

  text-align:
          center;

  font-size:
          32px;

  line-height:
          1.1;
}


/* =========================================================
   CONTATO
   ========================================================= */

.contact {

  padding-bottom:
          55px;
}


.contact-grid {

  display:
          grid;

  grid-template-columns:
        1fr 1.4fr;

  gap:
          15px;

  margin-top:
          18px;
}


.contact-cta,
.contact-info {

  background:
          var(--surface-2);

  border:
          1px solid
          rgba(255, 255, 255, 0.1);

  padding:
          25px;

  display:
          flex;

  gap:
          20px;
}


.contact-icon {

  width:
          70px;

  height:
          70px;

  min-width:
          70px;

  border-radius:
          50%;

  display:
          grid;

  place-items:
          center;

  background:
          var(--green);

  color:
          #061006;

  font-size:
          30px;

  box-shadow:
          var(--shadow);
}


.contact h3 {

  font-size:
          14px;
}


.contact p {

  font-size:
          11px;

  color:
          var(--muted);

  margin:
          5px 0 12px;
}


.contact-info {

  align-items:
          center;

  justify-content:
          space-around;
}


.contact-info div {

  display:
          flex;

  flex-direction:
          column;

  gap:
          4px;
}


.contact-info b {

  font-size:
          9px;

  color:
          var(--green);
}


.contact-info span {

  font-size:
          10px;

  color:
          var(--muted);
}


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

.footer {

  border-top:
          1px solid
          rgba(255, 255, 255, 0.1);

  padding:
          28px 5%;

  display:
          grid;

  grid-template-columns:
        1fr 2fr 1fr;

  align-items:
          center;

  gap:
          20px;
}


.footer-links {

  display:
          flex;

  justify-content:
          center;

  gap:
          22px;
}


.footer-links a,
.footer p {

  font-size:
          9px;

  color:
          var(--muted);
}


.footer p {

  text-align:
          right;
}


/* =========================================================
   LIGHTBOX
   ========================================================= */

.lightbox {

  position:
          fixed;

  z-index:
          1000;

  inset:
          0;

  background:
          rgba(0, 0, 0, 0.94);

  display:
          none;

  place-items:
          center;

  padding:
          5%;
}


.lightbox.open {

  display:
          grid;
}


.lightbox img {

  max-width:
          90%;

  max-height:
          90%;

  object-fit:
          contain;
}


.lightbox button {

  position:
          absolute;

  right:
          30px;

  top:
          20px;

  border:
          0;

  background:
          none;

  color:
          #ffffff;

  font-size:
          40px;
}


/* =========================================================
   RESPONSIVIDADE
   ========================================================= */

@media (max-width: 900px) {

  .site-header {

    height:
            64px;
  }


  .brand {

    width:
            130px;
  }


  .brand-logo {

    width:
            120px;

    max-height:
            50px;
  }


  .menu-toggle {

    display:
            block;
  }


  .theme-toggle {

    margin-left:
            auto;

    margin-right:
            12px;
  }


  .nav {

    position:
            absolute;

    top:
            64px;

    left:
            0;

    width:
            100%;

    height:
            auto;

    display:
            none;

    flex-direction:
            column;

    gap:
            0;

    margin:
            0;

    background:
            rgba(3, 5, 3, 0.98);

    border-bottom:
            1px solid
            var(--border);
  }


  body.light .nav {

    background:
            rgba(255, 255, 255, 0.98);
  }


  .nav.open {

    display:
            flex;
  }


  .nav a {

    width:
            100%;

    height:
            auto;

    padding:
            15px 6%;

    border-bottom:
            1px solid
            rgba(255, 255, 255, 0.05);
  }


  .hero {

    padding-top:
            64px;

    min-height:
            850px;
  }


  .hero-grid {

    grid-template-columns:
            1fr;

    position:
            relative;
  }


  .hero-athlete {

    position:
            absolute;

    inset:
            0;

    height:
            100%;

    opacity:
            0.42;

    z-index:
            -1;
  }


  .hero-athlete img {

    height:
            100%;

    width:
            100%;

    object-fit:
            contain;

    object-position:
            center bottom;
  }


  .hero-content {

    padding:
            80px 0;
  }


  .hero h1 {

    font-size:
            clamp(65px, 18vw, 110px);
  }


  .social-float {

    right:
            15px;
  }


  .social {

    width:
            43px;

    height:
            43px;
  }


  .about {

    grid-template-columns:
            1fr;

    gap:
            30px;
  }


  .about-image {

    max-width:
            400px;

    margin:
            auto;
  }


  .stats {

    grid-template-columns:
            repeat(3, 1fr);
  }


  .achievement-grid {

    grid-template-columns:
            repeat(2, 1fr);
  }


  .gallery-grid {

    grid-template-columns:
            repeat(4, 1fr);
  }


  .gallery-item {

    height:
            180px;
  }


  .sponsor-card {

    min-width:
            calc((100% - 24px) / 3);
  }


  .coupon-box {

    flex-wrap:
            wrap;
  }


  .media-section {

    grid-template-columns:
            1fr;
  }


  .contact-grid {

    grid-template-columns:
            1fr;
  }


  .footer {

    grid-template-columns:
            1fr;

    text-align:
            center;
  }


  .footer .brand {

    justify-content:
            center;
  }


  .footer p {

    text-align:
            center;
  }
}


/* =========================================================
   CELULAR
   ========================================================= */

@media (max-width: 560px) {

  .site-header {

    padding:
            0 5%;
  }


  .brand-logo {

    width:
            110px;
  }


  .section {

    padding:
            55px 0;
  }


  .hero-grid {

    width:
            88%;
  }


  .hero-content {

    padding-top:
            120px;
  }


  .hero h1 {

    font-size:
            72px;
  }


  .discipline {

    letter-spacing:
            5px;

    font-size:
            11px;
  }


  .hero-points li {

    font-size:
            11px;
  }


  .sound-indicator {

    bottom:
            15px;
  }


  .stats {

    grid-template-columns:
            repeat(2, 1fr);
  }


  .achievement-grid {

    grid-template-columns:
            1fr;
  }


  .gallery-grid {

    grid-template-columns:
            repeat(2, 1fr);
  }


  .gallery-item {

    height:
            220px;
  }


  .sponsor-card {

    min-width:
            100%;
  }


  .sponsor-wrap {

    gap:
            5px;
  }


  .coupon-box {

    align-items:
            flex-start;

    flex-direction:
            column;
  }


  .social-grid {

    grid-template-columns:
            1fr;
  }


  .quote-banner {

    padding:
            45px 5%;

    gap:
            10px;
  }


  .quote-banner h2 {

    font-size:
            24px;
  }


  .quote-banner span {

    font-size:
            55px;
  }


  .contact-info {

    flex-direction:
            column;

    align-items:
            flex-start;
  }


  .footer-links {

    flex-wrap:
            wrap;
  }

}

