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

.hero{position:relative;overflow:hidden;padding:72px 0 56px;background:linear-gradient(180deg,#f7fbff 0%,#eef7ff 70%,#fff 100%)}

.hero-glow{position:absolute;border-radius:50%;filter:blur(4px)}
.hero-glow-one{width:460px;height:460px;background:rgba(121,186,255,.15);right:2%;top:-130px}
.hero-glow-two{width:320px;height:320px;background:rgba(255,255,255,.85);left:34%;bottom:0}

.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;min-height:430px}

.hero-content{max-width:640px}
.hero-content p{max-width:600px;font-size:19px;color:var(--text);margin:0 0 30px}

.hero-actions{display:flex;gap:12px;flex-wrap:wrap}

.hero-cta-pulse{animation:heroCtaPulse 2.2s ease-in-out infinite}

.hero-cta-pulse:hover{animation-play-state:paused;transform:translateY(-2px) scale(1.05)!important}

@keyframes heroCtaPulse{
  0%,60%,100%{transform:scale(1);box-shadow:0 12px 28px rgba(61,149,247,.25),0 0 0 0 rgba(61,149,247,.45)}
  30%{transform:scale(1.08);box-shadow:0 12px 28px rgba(61,149,247,.25),0 0 0 12px rgba(61,149,247,0)}
}

@media(prefers-reduced-motion: reduce){
  .hero-cta-pulse{animation:none}
}

/* Hero ticket / runner illustration */
.hero-ticket{display:flex;align-items:center;justify-content:center;min-height:350px}

.ticket-shape{width:min(410px,90%);aspect-ratio:1.68/1;position:relative;transform:rotate(-7deg);border:22px solid var(--blue);border-radius:28px;background:rgba(255,255,255,.55);box-shadow:0 30px 60px rgba(61,149,247,.20)}
.ticket-shape:before,.ticket-shape:after{content:"";position:absolute;width:58px;height:58px;border-radius:50%;background:#f1f8ff;top:50%;transform:translateY(-50%)}
.ticket-shape:before{left:-50px}
.ticket-shape:after{right:-50px}

.runner{position:absolute;left:50%;top:50%;width:125px;height:130px;transform:translate(-42%,-48%) rotate(4deg)}
.runner-head{position:absolute;width:34px;height:34px;border-radius:50%;background:var(--blue);right:20px;top:3px}
.runner-body{position:absolute;width:36px;height:78px;background:var(--blue);border-radius:30px 30px 10px 10px;left:48px;top:31px;transform:rotate(29deg)}
.runner-arm{position:absolute;width:70px;height:18px;background:var(--blue);border-radius:20px;left:60px;top:50px;transform:rotate(-10deg)}
.runner-leg{position:absolute;width:74px;height:20px;background:var(--blue);border-radius:20px;left:33px;top:91px;transform-origin:left center}
.runner-leg-one{transform:rotate(128deg)}
.runner-leg-two{transform:rotate(30deg)}

/* Hero carousel (banners dos eventos aprovados) */
.hero-carousel{position:relative;width:min(410px,90%);aspect-ratio:1.68/1;border-radius:28px;overflow:hidden;box-shadow:0 30px 60px rgba(61,149,247,.20);background:#eef7ff}
.hero-carousel-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease}
.hero-carousel-slide.active{opacity:1}
.hero-carousel-slide a{display:block;width:100%;height:100%}
.hero-carousel-slide img{width:100%;height:100%;object-fit:contain;display:block}
.hero-carousel-dots{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:7px;z-index:2}
.hero-carousel-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.6);border:none;padding:0;cursor:pointer;transition:background .2s ease,transform .2s ease}
.hero-carousel-dot.active{background:#fff;transform:scale(1.3)}

.speed{position:absolute;height:6px;border-radius:99px;background:var(--blue);left:65px}
.speed-1{width:62px;top:49%}
.speed-2{width:42px;top:59%;left:78px}
.speed-3{width:27px;top:69%;left:90px}

/* ==========================================================================
   SEARCH PANEL
   ========================================================================== */

.search-panel{position:relative;z-index:5;display:grid;grid-template-columns:1.3fr .75fr .75fr .75fr auto;background:#fff;border:1px solid #e8f0f7;border-radius:18px;box-shadow:var(--shadow);padding:16px;margin-top:40px;margin-bottom:60px}

#eventsFilterBar{margin-top:0;margin-bottom:40px}

.search-field{height:62px;display:flex;align-items:center;gap:12px;padding:0 20px;border-right:1px solid #e6eef5}
.search-field span{font-size:27px;color:var(--blue-strong)}
.search-field input,.search-field select{width:100%;border:0;outline:0;background:transparent;color:#374151}

.search-button{margin-left:16px;min-width:170px}

/* ==========================================================================
   SECTION LAYOUT (generic)
   ========================================================================== */

.section{padding:110px 0}
.events-section{padding-top:70px}

.section-heading,.about-grid{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}
.section-heading h2,.center-heading h2,.organizer-card h2,.about-grid h2{font-size:clamp(30px,3.2vw,46px);letter-spacing:-.035em;margin-bottom:0}

.link-button{border:0;background:transparent;color:var(--blue-strong);font-weight:800}

/* ==========================================================================
   TRUST STRIP
   ========================================================================== */

.trust-strip{padding:0 0 65px}

.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:linear-gradient(180deg,#f8fcff,#f1f8ff);border:1px solid #e3f0fb;border-radius:20px;padding:24px;box-shadow:var(--shadow-soft)}

.trust-item{display:flex;align-items:center;gap:14px;padding:10px}
.trust-item>span{width:48px;height:48px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue-strong));border-radius:16px;font-size:24px;font-weight:800}
.trust-item strong,.trust-item small{display:block}
.trust-item small{color:#667085;margin-top:3px}

/* ==========================================================================
   HOW IT WORKS / STEPS
   ========================================================================== */

.how-section{background:#fbfdff}

.center-heading{text-align:center;max-width:700px;margin:0 auto 44px}
.center-heading p{color:#667085}

.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.steps-grid article{padding:34px;border-radius:20px;border:1px solid #e1edf7;background:#fff;box-shadow:var(--shadow-soft)}
.steps-grid article>span{width:46px;height:46px;border-radius:14px;background:var(--blue-soft);color:var(--blue-strong);display:grid;place-items:center;font-weight:800;font-size:20px}
.steps-grid h3{font-size:21px;margin:22px 0 10px}
.steps-grid p{margin:0;color:#667085}

/* ==========================================================================
   ORGANIZER CARD
   ========================================================================== */

.organizer-section{background:linear-gradient(135deg,#f3faff,#fff)}

.organizer-card{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;border:1px solid #dcecf9;border-radius:30px;padding:60px;background:#fff;box-shadow:var(--shadow)}
.organizer-card p{color:#667085;font-size:17px;max-width:650px;margin-bottom:28px}

.organizer-preview{min-height:310px;border-radius:26px;background:linear-gradient(155deg,#e9f5ff,#c8e6ff);padding:30px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}

.preview-top{display:flex;gap:8px;background:#fff;padding:16px;border-radius:14px 14px 0 0}
.preview-top span{width:10px;height:10px;border-radius:50%;background:#9bcfff}

.preview-chart{height:170px;background:#fff;display:flex;align-items:flex-end;justify-content:center;gap:17px;padding:24px}
.preview-chart i{width:28px;border-radius:8px 8px 0 0;background:linear-gradient(var(--blue),var(--blue-strong))}
.preview-chart i:nth-child(1){height:38%}
.preview-chart i:nth-child(2){height:62%}
.preview-chart i:nth-child(3){height:50%}
.preview-chart i:nth-child(4){height:82%}
.preview-chart i:nth-child(5){height:70%}

.preview-list{background:#fff;padding:14px;border-radius:0 0 14px 14px}
.preview-list b{display:block;height:9px;border-radius:99px;background:#e5f1fb;margin:9px 0}
.preview-list b:nth-child(2){width:78%}
.preview-list b:nth-child(3){width:61%}

/* ==========================================================================
   ABOUT
   ========================================================================== */

.about-grid{align-items:center;margin-bottom:0}
.about-grid>div{max-width:610px}
.about-grid>p{max-width:540px;color:#667085;font-size:18px}


/* ==========================================================================
   BREAKPOINT: TABLET (≤1080px)
   ========================================================================== */

@media (max-width:1080px){

    .hero{padding-top:56px}
    .hero-grid{grid-template-columns:1fr;min-height:auto;gap:44px}
    .hero-content{max-width:640px;margin:0 auto;text-align:center}
    .hero-content p{margin-left:auto;margin-right:auto}
    .hero-actions{justify-content:center}
    .hero-ticket{min-height:320px}

    .search-panel{grid-template-columns:1fr 1fr;gap:10px}
    .search-field{border-right:0;border-bottom:1px solid #e6eef5}
    .search-button{grid-column:1 / -1;margin-left:0;width:100%}

    .section{padding:80px 0}
    .trust-grid{grid-template-columns:repeat(2,1fr)}

    .organizer-card{grid-template-columns:1fr;gap:44px;padding:44px;text-align:center}
    .organizer-card>div{margin:0 auto}
    .organizer-preview{min-height:280px}

    .about-grid{flex-direction:column;align-items:flex-start}

}


/* ==========================================================================
   BREAKPOINT: MOBILE (≤760px)
   ========================================================================== */

@media (max-width:760px){

    .hero{padding-top:36px}
    .hero-grid{gap:36px}

    .hero-content h1{
        font-size:clamp(34px,9vw,44px);
        line-height:1.08;
        margin-bottom:18px;
    }
    .hero-content h1 strong{display:block}
    .hero-content p{font-size:16px;max-width:100%}

    .hero-actions{flex-direction:column;align-items:center;width:100%}
    .hero-actions .btn{width:100%;max-width:340px}

    .hero-ticket{min-height:250px}

    .ticket-shape{width:min(320px,90vw);border-width:16px}
    .hero-carousel{width:min(320px,90vw)}
    .runner{transform:translate(-42%,-48%) rotate(4deg) scale(.78)}

    .search-panel{grid-template-columns:1fr;gap:8px;margin:28px 0 40px}
    .search-field input,
    .search-field select{font-size:16px}
    .search-button{margin:8px 0 0}

    .events-section{padding-top:20px}
    .section-heading{flex-direction:column;align-items:flex-start}

    /* seletores que colapsam para 1 coluna no mobile — agrupados por
       compartilharem exatamente a mesma regra */
    .hero-grid,
    .trust-grid,
    .steps-grid{
        grid-template-columns:1fr;
    }
    .trust-grid{padding:12px}

    .organizer-card{gap:35px;padding:30px}
    .organizer-preview{min-height:260px}

    .about-grid>p{margin-top:25px}

}


/* ==========================================================================
   BREAKPOINT: SMALL PHONES (≤480px)
   ========================================================================== */

@media (max-width:480px){

    .hero-content h1{font-size:clamp(28px,9vw,36px)}
    .hero-content p{font-size:15px}

    .ticket-shape{border-width:12px}
    .runner{transform:translate(-42%,-48%) rotate(4deg) scale(.65)}

    .search-field{height:54px;padding:0 14px}

    .steps-grid article,
    .organizer-card{padding:22px}

}
