/*=========================================================
    RECORRIDOS TEMÁTICOS
=========================================================*/

:root{

    --theme:#A04DFF;
    --theme-light:#C56CFF;

    --bg:#0B0A10;
    --card:#14131B;

    --border:rgba(160,77,255,.25);

    --text:#F5F5F5;
    --muted:#B5B5B5;

    --radius:24px;

    --transition:.35s ease;

}

/*=========================================================
PAGE
=========================================================*/

.themeToursPage{

    width:min(1400px,92%);
    margin:auto;
    padding:70px 0 100px;

}

/*=========================================================
HERO
=========================================================*/

.themeHero{

    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:70px;

    margin-bottom:100px;

}

.heroBadge{

    display:inline-block;

    padding:8px 18px;

    border-radius:40px;

    background:rgba(160,77,255,.15);

    border:1px solid rgba(160,77,255,.35);

    color:#C56CFF;

    letter-spacing:1px;

    font-size:.85rem;

    margin-bottom:28px;

}

.themeHero h1{

    font-size:clamp(3.5rem,7vw,5.8rem);

    line-height:.95;

    margin-bottom:30px;

    color:white;

}

.themeHero h1 span{

    display:block;

    color:var(--theme);

    text-shadow:0 0 20px rgba(160,77,255,.45);

}

.themeHero p{

    max-width:620px;

    line-height:1.9;

    color:var(--muted);

    font-size:1.15rem;

}

.themeHeroImage{

    display:flex;
    justify-content:center;

}

.themeHeroImage img{

    width:100%;
    max-width:650px;

    border-radius:26px;

    border:1px solid rgba(160,77,255,.20);

}

/*=========================================================
SECTION
=========================================================*/

.themeSection{

    display:flex;

    flex-direction:column;

    gap:40px;

}

.sectionTitle{

    margin-bottom:10px;

}

.sectionTitle h2{

    font-size:2.4rem;

    color:white;

    margin-bottom:12px;

}

.sectionTitle p{

    color:#9E9E9E;

}

/*=========================================================
CARD
=========================================================*/

.themeCard{

    display:grid;

    grid-template-columns:48% 52%;

    background:linear-gradient(
        180deg,
        #17161D 0%,
        #111117 100%
    );

    border-radius:28px;

    overflow:hidden;

    border:1px solid rgba(160,77,255,.18);

    transition:var(--transition);

    position:relative;

}

.themeCard::before{

    content:"";

    position:absolute;

    inset:0;

    padding:1px;

    border-radius:inherit;

    background:linear-gradient(
        90deg,
        rgba(160,77,255,.15),
        rgba(160,77,255,.45),
        rgba(160,77,255,.15)
    );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;

            mask-composite:exclude;

    opacity:0;

    transition:.35s;

}

.themeCard:hover{

    transform:translateY(-8px);

    box-shadow:
        0 20px 60px rgba(160,77,255,.12),
        0 0 35px rgba(160,77,255,.10);

}

.themeCard:hover::before{

    opacity:1;

}

/*=========================================================
VIDEO
=========================================================*/

.themeVideo{

    position:relative;

    overflow:hidden;

}

.themeVideo img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.45s;

}

.themeCard:hover .themeVideo img{

    transform:scale(1.06);

}

.playButton{

    position:absolute;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    width:90px;
    height:90px;

    border:none;

    border-radius:50%;

    background:rgba(160,77,255,.90);

    color:white;

    font-size:34px;

    cursor:pointer;

    transition:.35s;

    box-shadow:
        0 0 20px rgba(160,77,255,.50),
        0 0 45px rgba(160,77,255,.25);

}

.playButton:hover{

    transform:translate(-50%,-50%) scale(1.10);

}

.videoDuration{

    position:absolute;

    right:20px;
    bottom:18px;

    background:rgba(0,0,0,.70);

    color:white;

    padding:6px 12px;

    border-radius:10px;

    font-size:.9rem;

}

.themeBadge{

    position:absolute;

    left:18px;
    top:18px;

    padding:8px 16px;

    border-radius:30px;

    background:rgba(160,77,255,.20);

    border:1px solid rgba(160,77,255,.45);

    color:#D6B6FF;

    font-size:.82rem;

    backdrop-filter:blur(10px);

}

/*=========================================================
CONTENT
=========================================================*/

.themeContent{

    display:flex;

    flex-direction:column;

    justify-content:center;

    padding:50px;

}

.themeContent h3{

    font-size:2.2rem;

    color:white;

    margin-bottom:20px;

    line-height:1.2;

}

.themeContent p{

    color:#B5B5B5;

    line-height:1.9;

    margin-bottom:30px;

}

.themeMeta{

    display:flex;

    gap:30px;

    color:#A4A4A4;

    margin-bottom:35px;

}

.themeMeta span{

    display:flex;

    align-items:center;

    gap:8px;

}

/*=========================================================
BUTTON
=========================================================*/

.themeButton{

    width:max-content;

    text-decoration:none;

    color:white;

    padding:14px 28px;

    border-radius:14px;

    border:1px solid rgba(160,77,255,.45);

    transition:.35s;

    font-weight:600;

}

.themeButton:hover{

    background:var(--theme);

    box-shadow:
        0 0 18px rgba(160,77,255,.45);

}

/*=========================================================
RESPONSIVE
=========================================================*/

@media(max-width:1100px){

    .themeHero{

        grid-template-columns:1fr;

    }

    .themeCard{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .themeHero h1{

    font-size:clamp(2.5rem,7vw,4.8rem);

    line-height:.95;

    margin-bottom:30px;

    color:white;

}


    .themeToursPage{

        width:94%;

    }

    .themeContent{

        padding:32px;

    }

    .themeContent h3{

        font-size:1.8rem;

    }

    .playButton{

        width:74px;
        height:74px;

        font-size:28px;

    }

    .themeMeta{

        flex-direction:column;

        gap:10px;

    }

}

/*=========================================================
    MODAL
=========================================================*/

.themeModal{

    position:fixed;
    inset:0;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:40px;

    opacity:0;
    visibility:hidden;

    transition:.35s ease;

    z-index:9999;

}

.themeModal.show{

    opacity:1;
    visibility:visible;

}

.themeModalOverlay{

    position:absolute;
    inset:0;

    background:rgba(0,0,0,.80);

    backdrop-filter:blur(10px);

}

.themeModalContent{

    position:relative;

    width:min(1100px,95vw);

    max-height:90vh;

    overflow:auto;

    background:#14131B;

    border-radius:28px;

    border:1px solid rgba(160,77,255,.25);

    box-shadow:
        0 25px 80px rgba(0,0,0,.60),
        0 0 40px rgba(160,77,255,.12);

    transform:scale(.95);

    transition:.35s ease;

    z-index:2;

}

.themeModal.show .themeModalContent{

    transform:scale(1);

}

.themeModalClose{

    position:absolute;

    top:18px;
    right:18px;

    width:48px;
    height:48px;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    color:white;

    font-size:1.4rem;

    cursor:pointer;

    transition:.25s;

    z-index:10;

}

.themeModalClose:hover{

    background:var(--theme);

    transform:rotate(90deg);

}

.themeModalVideo{

    background:black;

}

.themeModalVideo video{

    display:block;

    width:100%;

    aspect-ratio:16/9;

    object-fit:cover;

}

.themeModalBody{

    padding:40px;

}

.modalBadge{

    display:inline-block;

    margin-bottom:18px;

    padding:8px 18px;

    border-radius:30px;

    background:rgba(160,77,255,.15);

    border:1px solid rgba(160,77,255,.35);

    color:#D9B9FF;

    font-size:.85rem;

}

.themeModalBody h2{

    font-size:2rem;

    color:white;

    margin-bottom:18px;

}

.themeModalBody p{

    color:#BDBDBD;

    line-height:1.8;

    margin-bottom:35px;

}

.modalMeta{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:20px;

}

.modalMeta div{

    padding:18px;

    border-radius:18px;

    background:rgba(255,255,255,.03);

    border:1px solid rgba(255,255,255,.05);

}

.modalMeta strong{

    display:block;

    color:white;

    margin-bottom:8px;

}

.modalMeta span{

    color:#BDBDBD;

}

@media(max-width:768px){

    .themeModal{

        padding:15px;

    }

    .themeModalBody{

        padding:25px;

    }

    .modalMeta{

        grid-template-columns:1fr;

    }

    .themeModalBody h2{

        font-size:1.6rem;

    }

}