/* =========================================================
   VERO ESCOLA DE DANÇA
   assets/css/style.css
   HOME MODERNA / PROFISSIONAL
   ========================================================= */

/* =========================================================
   1. TOKENS / RESET
   ========================================================= */

:root{
    --vinho:#651b3a;
    --vinho-2:#7d274b;
    --vinho-dark:#3e1026;
    --rosa:#c9a4b5;
    --rosa-claro:#f5edf1;
    --dourado:#d7a85d;
    --dourado-dark:#b8873f;
    --bege:#faf7f3;
    --bege-2:#f4eee8;
    --branco:#ffffff;
    --preto:#1f1c1d;
    --texto:#595457;
    --texto-suave:#817a7e;
    --borda:rgba(101,27,58,.10);
    --borda-clara:rgba(31,28,29,.08);

    --shadow-xs:0 6px 18px rgba(41,18,30,.05);
    --shadow-sm:0 12px 35px rgba(41,18,30,.08);
    --shadow-md:0 22px 55px rgba(41,18,30,.12);
    --shadow-lg:0 35px 90px rgba(32,12,23,.18);

    --radius-sm:14px;
    --radius-md:20px;
    --radius-lg:30px;
    --radius-pill:999px;

    --section-space:112px;
    --transition:.28s cubic-bezier(.2,.7,.2,1);
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

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

body{
    margin:0;
    overflow-x:hidden;
    background:var(--branco);
    color:var(--texto);
    font-family:'Poppins',sans-serif;
    font-size:16px;
    line-height:1.75;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
}

img{
    max-width:100%;
    height:auto;
}

a{
    color:inherit;
}

::selection{
    background:var(--vinho);
    color:#fff;
}

h1,
h2,
h3,
h4,
h5,
h6{
    margin-top:0;
    color:var(--vinho);
    font-family:'Cormorant Garamond',serif;
    font-weight:700;
    line-height:1.06;
    letter-spacing:-.02em;
}

p{
    color:var(--texto);
    font-size:16px;
}

section{
    position:relative;
}

/* =========================================================
   2. TIPOGRAFIA / TÍTULOS
   ========================================================= */

.section-small,
.section-subtitle{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
    color:var(--dourado-dark);
    font-size:11px;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
}

.section-small::before,
.section-subtitle::before{
    content:"";
    width:28px;
    height:1px;
    background:currentColor;
}

.text-center .section-small,
.text-center .section-subtitle{
    justify-content:center;
}

.section-title{
    max-width:850px;
    margin-bottom:18px;
    color:var(--vinho);
    font-size:clamp(42px,5vw,68px);
    line-height:.98;
}

.text-center .section-title{
    margin-left:auto;
    margin-right:auto;
}

.section-description{
    max-width:720px;
    margin:0 auto;
    color:var(--texto-suave);
    font-size:16px;
    line-height:1.8;
}

/* =========================================================
   3. BOTÕES
   ========================================================= */

.btn{
    min-height:50px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-radius:var(--radius-pill);
    font-weight:600;
    letter-spacing:.01em;
    transition:
        transform var(--transition),
        box-shadow var(--transition),
        background-color var(--transition),
        border-color var(--transition),
        color var(--transition);
}

.btn-vero{
    padding:13px 28px;
    border:1px solid var(--vinho);
    background:linear-gradient(135deg,var(--vinho),var(--vinho-2));
    color:#fff;
    box-shadow:0 12px 28px rgba(101,27,58,.20);
}

.btn-vero:hover,
.btn-vero:focus{
    border-color:var(--vinho-dark);
    background:linear-gradient(135deg,var(--vinho-2),var(--vinho-dark));
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 18px 34px rgba(101,27,58,.28);
}

.btn-outline-light{
    padding:13px 28px;
    border:1px solid rgba(255,255,255,.58);
    color:#fff;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(8px);
}

.btn-outline-light:hover{
    border-color:#fff;
    background:#fff;
    color:var(--vinho);
    transform:translateY(-2px);
}

.btn:focus-visible,
.nav-link:focus-visible,
.gallery-card:focus-visible,
.gallery-filter-btn:focus-visible,
.schedule-filter-btn:focus-visible{
    outline:3px solid rgba(215,168,93,.48);
    outline-offset:3px;
}

/* =========================================================
   4. MENU
   ========================================================= */

.navbar{
    z-index:1040;
    padding:18px 0;
    background:linear-gradient(
        to bottom,
        rgba(26,8,18,.68),
        rgba(26,8,18,.16)
    );
    transition:
        padding var(--transition),
        background var(--transition),
        box-shadow var(--transition);
}

.navbar.scrolled{
    padding:10px 0;
    background:rgba(62,16,38,.94);
    backdrop-filter:blur(18px);
    box-shadow:0 12px 35px rgba(22,5,14,.18);
}

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

.navbar-brand img{
    width:auto;
    height:68px;
    object-fit:contain;
    transition:height var(--transition);
}

.navbar.scrolled .navbar-brand img{
    height:54px;
}

.navbar-nav{
    gap:6px;
}

.navbar .nav-link{
    position:relative;
    padding:10px 12px !important;
    color:rgba(255,255,255,.90) !important;
    font-size:13px;
    font-weight:500;
}

.navbar .nav-link::after{
    content:"";
    position:absolute;
    right:12px;
    bottom:4px;
    left:12px;
    height:2px;
    border-radius:2px;
    background:var(--dourado);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform var(--transition);
}

.navbar .nav-link:hover,
.navbar .nav-link.active{
    color:#fff !important;
}

.navbar .nav-link:hover::after,
.navbar .nav-link.active::after{
    transform:scaleX(1);
}

.navbar-toggler{
    border:1px solid rgba(255,255,255,.28);
    border-radius:12px;
    box-shadow:none !important;
}

.navbar-toggler-icon{
    filter:brightness(0) invert(1);
}

/* =========================================================
   5. HERO / SLIDER
   ========================================================= */

.hero-slider-section{
    position:relative;
    min-height:100svh;
    overflow:hidden;
    background:var(--vinho-dark);
}

.hero-slider-section .carousel,
.hero-slider-section .carousel-inner,
.hero-slider-section .carousel-item,
.hero-slide{
    min-height:100svh;
}

.hero-slide{
    position:relative;
    overflow:hidden;
}

.hero-slide-picture{
    position:absolute;
    inset:0;
    display:block;
}

.hero-slide-image{
    width:100%;
    height:100svh;
    min-height:680px;
    display:block;
    object-fit:cover;
    object-position:center;
    transform:scale(1.015);
}

.carousel-item.active .hero-slide-image{
    animation:heroZoom 7s ease-out both;
}

@keyframes heroZoom{
    from{ transform:scale(1.07); }
    to{ transform:scale(1.015); }
}

.hero-slide-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:
        linear-gradient(
            90deg,
            rgba(32,8,20,var(--hero-overlay-opacity,.58)) 0%,
            rgba(32,8,20,calc(var(--hero-overlay-opacity,.58) * .80)) 48%,
            rgba(32,8,20,calc(var(--hero-overlay-opacity,.58) * .38)) 100%
        ),
        linear-gradient(
            180deg,
            rgba(15,4,10,.28) 0%,
            transparent 34%,
            rgba(15,4,10,.18) 100%
        );
}

.hero-slide-container{
    position:relative;
    z-index:2;
    min-height:100svh;
    display:flex;
    align-items:center;
    padding-top:125px;
    padding-bottom:85px;
}

.hero-slide-row{
    width:100%;
    display:flex;
}

.hero-content-left{
    justify-content:flex-start;
    text-align:left;
}

.hero-content-center{
    justify-content:center;
    text-align:center;
}

.hero-content-right{
    justify-content:flex-end;
    text-align:right;
}

.hero-slide-content{
    width:min(780px,100%);
}

.hero-content-center .hero-slide-content{
    margin-inline:auto;
}

.hero-content-right .hero-slide-content{
    margin-left:auto;
}

.hero-subtitle{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:20px;
    color:#f1d29e;
    font-size:11px;
    font-weight:700;
    letter-spacing:.25em;
    text-transform:uppercase;
}

.hero-subtitle::before{
    content:"";
    width:34px;
    height:1px;
    background:currentColor;
}

.hero-title{
    max-width:900px;
    margin-bottom:22px;
    color:#fff;
    font-size:clamp(52px,6.7vw,96px);
    line-height:.92;
    text-wrap:balance;
    text-shadow:0 4px 22px rgba(0,0,0,.18);
}

.hero-text{
    max-width:690px;
    margin-bottom:34px;
    color:rgba(255,255,255,.87);
    font-size:clamp(16px,1.35vw,20px);
    line-height:1.7;
}

.hero-content-center .hero-text{
    margin-inline:auto;
}

.hero-content-right .hero-text{
    margin-left:auto;
}

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

.hero-content-center .hero-actions{
    justify-content:center;
}

.hero-content-right .hero-actions{
    justify-content:flex-end;
}

.hero-indicators{
    bottom:26px;
    gap:7px;
}

.hero-indicators [data-bs-target]{
    width:30px;
    height:4px;
    margin:0;
    border:0;
    border-radius:5px;
    background:#fff;
    opacity:.42;
    transition:width var(--transition),opacity var(--transition);
}

.hero-indicators .active{
    width:54px;
    opacity:1;
    background:var(--dourado);
}

.hero-control{
    width:78px;
    opacity:1;
}

.hero-control-button{
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.30);
    border-radius:50%;
    background:rgba(20,6,13,.28);
    color:#fff;
    backdrop-filter:blur(10px);
    transition:var(--transition);
}

.hero-control:hover .hero-control-button{
    border-color:#fff;
    background:rgba(255,255,255,.94);
    color:var(--vinho);
}

.hero-fallback{
    position:relative;
    min-height:100svh;
    display:flex;
    align-items:center;
    overflow:hidden;
    background:
        linear-gradient(135deg,#3e1026,#7c294c);
}

.hero-fallback::after{
    content:"";
    position:absolute;
    width:560px;
    height:560px;
    right:-140px;
    bottom:-190px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    box-shadow:
        0 0 0 80px rgba(255,255,255,.025),
        0 0 0 160px rgba(255,255,255,.02);
}

.hero-fallback-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(34,7,20,.72),rgba(34,7,20,.12));
}

/* =========================================================
   6. SOBRE
   ========================================================= */

#sobre{
    padding:var(--section-space) 0;
    background:
        radial-gradient(circle at 10% 20%,rgba(215,168,93,.08),transparent 25%),
        #fff;
}

#sobre .col-lg-6:last-child{
    position:relative;
}

#sobre .col-lg-6:last-child::before{
    content:"";
    position:absolute;
    z-index:0;
    top:-24px;
    right:-24px;
    width:54%;
    height:58%;
    border-radius:28px;
    background:var(--rosa-claro);
}

#sobre .col-lg-6:last-child img{
    position:relative;
    z-index:1;
    width:100%;
    min-height:520px;
    object-fit:cover;
    border-radius:28px;
    box-shadow:var(--shadow-lg);
}

#sobre p{
    max-width:620px;
    color:var(--texto-suave);
}

.feature-box{
    position:relative;
    height:100%;
    padding:24px 20px;
    overflow:hidden;
    border:1px solid var(--borda);
    border-radius:18px;
    background:#fff;
    box-shadow:var(--shadow-xs);
    transition:var(--transition);
}

.feature-box::after{
    content:"";
    position:absolute;
    right:-35px;
    bottom:-35px;
    width:95px;
    height:95px;
    border-radius:50%;
    background:rgba(215,168,93,.08);
}

.feature-box:hover{
    border-color:rgba(101,27,58,.18);
    transform:translateY(-5px);
    box-shadow:var(--shadow-sm);
}

.feature-box > i{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:16px;
    border-radius:13px;
    background:var(--rosa-claro);
    color:var(--vinho);
    font-size:17px;
}

.feature-box h5{
    margin-bottom:8px;
    font-family:'Poppins',sans-serif;
    font-size:15px;
    font-weight:700;
}

.feature-box p{
    position:relative;
    z-index:1;
    color:var(--texto-suave);
    font-size:12px !important;
    line-height:1.65;
}

/* =========================================================
   7. MODALIDADES
   ========================================================= */

.section-modalidades{
    padding:var(--section-space) 0;
    background:var(--bege);
}

.card-modalidade{
    height:100%;
    overflow:hidden;
    border:1px solid rgba(101,27,58,.07);
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.card-modalidade:hover{
    transform:translateY(-9px);
    box-shadow:var(--shadow-md);
}

.card-modalidade .imagem{
    position:relative;
    height:310px;
    overflow:hidden;
    background:var(--rosa-claro);
}

.card-modalidade .imagem img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

.card-modalidade:hover .imagem img{
    transform:scale(1.065);
}

.card-modalidade .overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(
        180deg,
        transparent 20%,
        rgba(62,16,38,.82) 100%
    );
    opacity:0;
    transition:opacity var(--transition);
}

.card-modalidade:hover .overlay{
    opacity:1;
}

.card-modalidade .overlay i{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.50);
    border-radius:50%;
    color:#fff;
    font-size:20px;
    backdrop-filter:blur(8px);
}

.card-modalidade .conteudo{
    padding:28px;
    text-align:left;
}

.card-modalidade .conteudo > span{
    display:inline-flex;
    margin-bottom:12px;
    padding:6px 11px;
    border-radius:var(--radius-pill);
    background:var(--rosa-claro);
    color:var(--vinho);
    font-size:10px;
    font-weight:700;
    letter-spacing:.04em;
}

.card-modalidade h4{
    margin-bottom:12px;
    font-size:31px;
}

.card-modalidade p{
    min-height:76px;
    margin-bottom:22px;
    color:var(--texto-suave);
    font-size:14px;
    line-height:1.7;
}

/* =========================================================
   8. PROFESSORES
   ========================================================= */

.section-professores{
    padding:var(--section-space) 0;
    background:#fff;
}

.professor-card{
    overflow:hidden;
    border:1px solid var(--borda-clara);
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.professor-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-md);
}

.professor-image{
    position:relative;
    height:360px;
    overflow:hidden;
    background:var(--rosa-claro);
}

.professor-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    transition:transform .65s ease;
}

.professor-card:hover .professor-image img{
    transform:scale(1.055);
}

.professor-image-empty{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:rgba(101,27,58,.22);
    font-size:70px;
}

.professor-featured{
    position:absolute;
    z-index:3;
    top:16px;
    left:16px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 11px;
    border-radius:var(--radius-pill);
    background:rgba(255,255,255,.92);
    color:var(--vinho);
    font-size:10px;
    font-weight:700;
    box-shadow:var(--shadow-xs);
}

.professor-featured i{
    color:var(--dourado);
}

.professor-image-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    padding:18px;
    background:linear-gradient(to top,rgba(62,16,38,.58),transparent 55%);
    opacity:0;
    transition:opacity var(--transition);
}

.professor-card:hover .professor-image-overlay{
    opacity:1;
}

.professor-image-overlay-content a{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff;
    color:var(--vinho);
    text-decoration:none;
    box-shadow:var(--shadow-sm);
}

.professor-content{
    padding:26px;
}

.professor-content h4{
    margin-bottom:4px;
    font-size:29px;
}

.professor-specialty{
    display:block;
    margin-bottom:14px;
    color:var(--dourado-dark);
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.07em;
}

.professor-modalidades{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:16px;
}

.professor-modalidade-tag{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 9px;
    border:1px solid rgba(101,27,58,.10);
    border-radius:var(--radius-pill);
    background:var(--rosa-claro);
    color:var(--vinho);
    font-size:10px;
    font-weight:600;
}

.professor-modalidade-tag i{
    color:var(--dourado-dark);
    font-size:9px;
}

.professor-content p{
    color:var(--texto-suave);
    font-size:13px;
    line-height:1.7;
}

.professor-instagram{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:7px;
    color:var(--vinho);
    font-size:12px;
    font-weight:600;
    text-decoration:none;
}

.professor-instagram:hover{
    color:var(--dourado-dark);
}

/* =========================================================
   9. NÚMEROS
   ========================================================= */

.section-numeros{
    position:relative;
    overflow:hidden;
    padding:86px 0;
    background:
        radial-gradient(circle at 10% 50%,rgba(215,168,93,.18),transparent 25%),
        radial-gradient(circle at 85% 30%,rgba(255,255,255,.08),transparent 25%),
        linear-gradient(135deg,var(--vinho-dark),var(--vinho));
    color:#fff;
}

.section-numeros::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
    background-size:34px 34px;
    mask-image:linear-gradient(to right,transparent,black 25%,black 75%,transparent);
}

.numero{
    position:relative;
    z-index:1;
    padding:24px;
}

.numero h2{
    margin-bottom:5px;
    color:#fff;
    font-size:clamp(48px,5vw,76px);
    line-height:.9;
}

.numero p{
    margin:0;
    color:rgba(255,255,255,.70);
    font-size:12px;
    font-weight:500;
    letter-spacing:.04em;
}

/* =========================================================
   10. INSTITUCIONAL
   ========================================================= */

.section-institucional{
    padding:var(--section-space) 0;
    background:#fff;
}

.institucional-card{
    position:relative;
    height:100%;
    overflow:hidden;
    padding:34px;
    border:1px solid var(--borda);
    border-radius:24px;
    background:linear-gradient(145deg,#fff,#fdfbfc);
    box-shadow:var(--shadow-xs);
    transition:var(--transition);
}

.institucional-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-sm);
}

.institucional-card::after{
    content:"";
    position:absolute;
    right:-60px;
    bottom:-60px;
    width:150px;
    height:150px;
    border-radius:50%;
    background:rgba(215,168,93,.07);
}

.institucional-icon{
    width:56px;
    height:56px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:24px;
    border-radius:17px;
    background:var(--vinho);
    color:#fff;
    font-size:20px;
    box-shadow:0 12px 28px rgba(101,27,58,.18);
}

.institucional-card h4{
    margin-bottom:12px;
    font-size:30px;
}

.institucional-card p{
    position:relative;
    z-index:1;
    margin:0;
    color:var(--texto-suave);
    font-size:14px;
    line-height:1.75;
}

/* =========================================================
   11. GRADE DE HORÁRIOS
   ========================================================= */

.schedule-section{
    padding:var(--section-space) 0;
    background:var(--bege);
}

.schedule-filters{
    display:grid;
    gap:20px;
    margin-bottom:42px;
    padding:24px;
    border:1px solid var(--borda);
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow-xs);
}

.schedule-filter-group{
    display:grid;
    grid-template-columns:120px 1fr;
    align-items:flex-start;
    gap:16px;
}

.schedule-filter-label{
    display:flex;
    align-items:center;
    gap:8px;
    padding-top:8px;
    color:var(--vinho);
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.schedule-filter-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.schedule-filter-btn{
    min-height:38px;
    padding:8px 14px;
    border:1px solid rgba(101,27,58,.11);
    border-radius:var(--radius-pill);
    background:#fff;
    color:#6c6267;
    font-size:11px;
    font-weight:600;
    transition:var(--transition);
}

.schedule-filter-btn:hover,
.schedule-filter-btn.active{
    border-color:var(--vinho);
    background:var(--vinho);
    color:#fff;
    box-shadow:0 8px 18px rgba(101,27,58,.15);
}

.schedule-item{
    transition:
        opacity .25s ease,
        transform .25s ease;
}

.schedule-card{
    height:100%;
    padding:26px;
    border:1px solid var(--borda);
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.schedule-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-md);
}

.schedule-card-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:20px;
}

.schedule-day,
.schedule-vacancies{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:10px;
    font-weight:700;
}

.schedule-day{
    color:var(--vinho);
    text-transform:uppercase;
    letter-spacing:.06em;
}

.schedule-vacancies{
    padding:6px 9px;
    border-radius:var(--radius-pill);
    background:#f2f7f2;
    color:#2d7a42;
}

.schedule-time{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:6px;
    color:var(--vinho);
    font-family:'Cormorant Garamond',serif;
    font-size:36px;
    font-weight:700;
    line-height:1;
}

.schedule-time span{
    color:var(--dourado);
    font-weight:400;
}

.schedule-modality{
    margin-bottom:22px;
    color:var(--texto-suave);
    font-size:12px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.schedule-professor{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
    padding:13px;
    border-radius:16px;
    background:var(--bege);
}

.schedule-professor img,
.schedule-professor-empty{
    width:48px;
    height:48px;
    flex:0 0 48px;
    border-radius:50%;
}

.schedule-professor img{
    object-fit:cover;
}

.schedule-professor-empty{
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--rosa-claro);
    color:var(--vinho);
}

.schedule-professor span{
    display:block;
    color:#9a9296;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.schedule-professor strong{
    display:block;
    color:#3d373a;
    font-size:12px;
}

.schedule-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.schedule-meta span{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 9px;
    border-radius:var(--radius-pill);
    background:var(--rosa-claro);
    color:var(--vinho);
    font-size:10px;
}

.schedule-empty{
    padding:50px 20px;
    text-align:center;
    color:var(--texto-suave);
}

.schedule-empty i{
    margin-bottom:15px;
    color:var(--rosa);
    font-size:48px;
}

/* =========================================================
   12. GALERIA
   ========================================================= */

#galeria,
.gallery-section{
    padding:var(--section-space) 0 !important;
    background:#fff;
}

.gallery-filter{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
}

.gallery-filter-btn{
    padding:9px 16px;
    border:1px solid var(--borda);
    border-radius:var(--radius-pill);
    background:#fff;
    color:var(--texto-suave);
    font-size:11px;
    font-weight:600;
    transition:var(--transition);
}

.gallery-filter-btn:hover,
.gallery-filter-btn.active{
    border-color:var(--vinho);
    background:var(--vinho);
    color:#fff;
}

.gallery-item{
    animation:galleryFade .28s ease;
}

@keyframes galleryFade{
    from{
        opacity:0;
        transform:translateY(8px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.gallery-card{
    display:block;
    overflow:hidden;
    border-radius:22px;
    background:#111;
    color:#fff;
    text-decoration:none;
    box-shadow:var(--shadow-sm);
}

.gallery-image{
    position:relative;
    height:330px;
    overflow:hidden;
}

.gallery-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .65s ease;
}

.gallery-card:hover .gallery-image img{
    transform:scale(1.075);
}

.gallery-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    padding:24px;
    background:linear-gradient(to top,rgba(34,8,21,.88),rgba(34,8,21,.10) 65%);
    opacity:.92;
    transition:opacity var(--transition);
}

.gallery-card:hover .gallery-overlay{
    opacity:1;
}

.gallery-overlay-content i{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:15px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
    color:#fff;
}

.gallery-overlay-content h5{
    margin-bottom:5px;
    color:#fff;
    font-size:25px;
}

.gallery-overlay-content p{
    margin:0;
    color:rgba(255,255,255,.72);
    font-size:12px;
}

#galleryModal .modal-content{
    overflow:hidden;
    border:0;
    border-radius:20px;
    background:#111;
    box-shadow:var(--shadow-lg);
}

#galleryModalImage{
    width:100%;
    max-height:78vh;
    display:block;
    object-fit:contain;
    background:#111;
}

#galleryModalCaption:empty{
    display:none;
}

/* =========================================================
   13. DEPOIMENTOS
   ========================================================= */

.testimonials-section,
.section-depoimentos{
    padding:var(--section-space) 0;
    overflow:hidden;
    background:
        radial-gradient(circle at 85% 15%,rgba(215,168,93,.10),transparent 25%),
        var(--bege);
}

#carouselDepoimentos .carousel-inner{
    overflow:visible;
}

.testimonial-wrapper{
    max-width:900px;
    margin:auto;
    padding:12px 60px 40px;
}

.testimonial-card{
    position:relative;
    padding:52px 58px;
    border:1px solid var(--borda);
    border-radius:30px;
    background:#fff;
    text-align:center;
    box-shadow:var(--shadow-md);
}

.quote-icon{
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:-83px auto 24px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--vinho),var(--vinho-2));
    color:#fff;
    box-shadow:0 14px 30px rgba(101,27,58,.20);
}

.testimonial-stars{
    margin-bottom:20px;
    color:var(--dourado);
    font-size:15px;
    letter-spacing:4px;
}

.testimonial-text{
    max-width:720px;
    margin:0 auto 28px;
    color:#4c4649;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(24px,2.4vw,34px);
    font-style:italic;
    line-height:1.35;
    overflow-wrap:anywhere;
}

.testimonial-author{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
}

.testimonial-photo,
.testimonial-photo-empty{
    width:56px;
    height:56px;
    flex:0 0 56px;
    border-radius:50%;
}

.testimonial-photo{
    object-fit:cover;
    background:#eee;
}

.testimonial-photo-empty{
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--rosa-claro);
    color:var(--vinho);
}

.testimonial-person{
    text-align:left;
}

.testimonial-person strong{
    display:block;
    color:var(--vinho);
    font-size:13px;
}

.testimonial-person span{
    display:block;
    color:#999;
    font-size:10px;
}

.testimonials-section .carousel-control-prev,
.testimonials-section .carousel-control-next,
.section-depoimentos .carousel-control-prev,
.section-depoimentos .carousel-control-next{
    width:48px;
    height:48px;
    top:50%;
    border-radius:50%;
    background:var(--vinho);
    opacity:1;
    transform:translateY(-50%);
    box-shadow:var(--shadow-sm);
}

.testimonials-section .carousel-control-prev,
.section-depoimentos .carousel-control-prev{
    left:4%;
}

.testimonials-section .carousel-control-next,
.section-depoimentos .carousel-control-next{
    right:4%;
}

/* =========================================================
   14. CTA / FORMULÁRIO
   ========================================================= */

.section-formulario,
#formulario{
    padding:var(--section-space) 0;
    background:
        radial-gradient(circle at 10% 30%,rgba(215,168,93,.10),transparent 30%),
        #fff;
}

.section-formulario .row,
#formulario .row{
    align-items:center;
}

.section-formulario h2,
#formulario h2{
    font-size:clamp(42px,4.5vw,62px);
}

#leadForm{
    padding:34px;
    border:1px solid var(--borda);
    border-radius:28px;
    background:#fff;
    box-shadow:var(--shadow-md);
    transition:opacity .2s ease;
}

#leadForm[aria-busy="true"]{
    opacity:.92;
}

.form-label{
    margin-bottom:7px;
    color:#51494d;
    font-size:11px;
    font-weight:600;
}

.form-control,
.form-select{
    min-height:54px;
    padding:13px 15px;
    border:1px solid rgba(31,28,29,.12);
    border-radius:13px;
    background:#fff;
    color:#373236;
    font-size:13px;
    box-shadow:none;
    transition:
        border-color var(--transition),
        box-shadow var(--transition),
        background var(--transition);
}

textarea.form-control{
    min-height:125px;
    resize:vertical;
}

.form-control::placeholder{
    color:#aaa3a7;
}

.form-control:focus,
.form-select:focus{
    border-color:rgba(101,27,58,.45);
    background:#fff;
    box-shadow:0 0 0 .22rem rgba(101,27,58,.08);
}

.form-control[readonly]{
    background:var(--bege);
}

.mensagem-formulario{
    position:relative;
    margin-bottom:20px;
    padding:14px 17px;
    border-radius:13px;
    font-size:12px;
    font-weight:500;
}

.mensagem-sucesso{
    border:1px solid #bce6c8;
    background:#eaf8ee;
    color:#24763b;
}

.mensagem-erro{
    border:1px solid #efc6c6;
    background:#fdeeee;
    color:#a52828;
}

/* =========================================================
   15. FOOTER
   ========================================================= */

footer{
    position:relative;
    overflow:hidden;
    padding:80px 0 30px;
    background:
        radial-gradient(circle at 85% 0%,rgba(215,168,93,.10),transparent 24%),
        #250b18;
    color:#fff;
}

footer::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background-image:
        linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
    background-size:34px 34px;
}

footer .container{
    position:relative;
    z-index:1;
}

footer h4,
footer h5{
    color:#fff;
}

footer p,
footer address,
footer li{
    color:rgba(255,255,255,.64);
    font-size:13px;
}

footer a{
    color:rgba(255,255,255,.72);
    text-decoration:none;
    transition:var(--transition);
}

footer a:hover{
    color:#fff;
}

footer ul{
    margin:0;
    padding:0;
    list-style:none;
}

footer ul li{
    margin-bottom:10px;
}

footer .social{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:18px;
}

footer .social a{
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.10);
    border-radius:50%;
    background:rgba(255,255,255,.05);
    color:#fff;
}

footer .social a:hover{
    border-color:var(--dourado);
    background:var(--dourado);
    transform:translateY(-3px);
}

/* =========================================================
   16. BOTÕES FLUTUANTES
   ========================================================= */

.btn-whatsapp{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:1030;
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#25d366;
    color:#fff;
    font-size:27px;
    text-decoration:none;
    box-shadow:0 16px 35px rgba(22,117,55,.30);
    transition:var(--transition);
}

.btn-whatsapp:hover{
    color:#fff;
    transform:translateY(-4px) scale(1.03);
}

.back-top{
    position:fixed;
    left:22px;
    bottom:22px;
    z-index:1029;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--vinho);
    color:#fff;
    text-decoration:none;
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.back-top.show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

/* =========================================================
   17. UTILITÁRIOS
   ========================================================= */

.bg-vero{ background:var(--vinho)!important; }
.text-vero{ color:var(--vinho)!important; }
.text-gold{ color:var(--dourado)!important; }
.bg-light{ background:var(--bege)!important; }

.rounded-xl{
    border-radius:var(--radius-lg)!important;
}

.section-padding{
    padding:var(--section-space) 0;
}

.shadow-hover{
    transition:var(--transition);
}

.shadow-hover:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
}

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:#f2eff0;
}

::-webkit-scrollbar-thumb{
    border:2px solid #f2eff0;
    border-radius:20px;
    background:var(--vinho);
}

/* =========================================================
   18. RESPONSIVO
   ========================================================= */

@media(max-width:1199.98px){

    :root{
        --section-space:96px;
    }

    .navbar .nav-link{
        padding-inline:8px !important;
        font-size:12px;
    }

    .hero-title{
        font-size:clamp(52px,7vw,78px);
    }

    .professor-image{
        height:340px;
    }
}

@media(max-width:991.98px){

    :root{
        --section-space:82px;
    }

    .navbar{
        padding:10px 0;
        background:rgba(62,16,38,.96);
        backdrop-filter:blur(16px);
    }

    .navbar-brand img,
    .navbar.scrolled .navbar-brand img{
        height:52px;
    }

    .navbar-collapse{
        max-height:calc(100vh - 85px);
        overflow-y:auto;
        margin-top:10px;
        padding:16px;
        border:1px solid rgba(255,255,255,.08);
        border-radius:18px;
        background:rgba(52,12,31,.98);
        box-shadow:var(--shadow-lg);
    }

    .navbar .nav-link{
        padding:10px 8px !important;
    }

    .navbar .nav-link::after{
        right:8px;
        left:8px;
    }

    .hero-slide-overlay{
        background:
            linear-gradient(
                90deg,
                rgba(32,8,20,.72),
                rgba(32,8,20,.42)
            );
    }

    .hero-control{
        display:none;
    }

    #sobre .col-lg-6:last-child::before{
        display:none;
    }

    #sobre .col-lg-6:last-child img{
        min-height:430px;
    }

    .schedule-filter-group{
        grid-template-columns:1fr;
        gap:8px;
    }

    .testimonial-wrapper{
        padding-inline:20px;
    }

    .testimonial-card{
        padding:50px 35px 38px;
    }
}

@media(max-width:767.98px){

    :root{
        --section-space:70px;
    }

    html{
        scroll-padding-top:76px;
    }

    body{
        line-height:1.65;
    }

    .section-small,
    .section-subtitle{
        letter-spacing:.17em;
    }

    .section-title{
        font-size:clamp(38px,11vw,50px);
    }

    .section-description{
        font-size:14px;
    }

    .hero-slider-section,
    .hero-slider-section .carousel,
    .hero-slider-section .carousel-inner,
    .hero-slider-section .carousel-item,
    .hero-slide{
        min-height:760px;
    }

    .hero-slide-image{
        height:760px;
        min-height:760px;
    }

    .hero-slide-overlay{
        background:
            linear-gradient(
                180deg,
                rgba(32,8,20,.48) 0%,
                rgba(32,8,20,.72) 52%,
                rgba(32,8,20,.84) 100%
            );
    }

    .hero-slide-container{
        min-height:760px;
        align-items:flex-end;
        padding-top:110px;
        padding-bottom:90px;
    }

    .hero-slide-row,
    .hero-content-left,
    .hero-content-center,
    .hero-content-right{
        justify-content:center;
        text-align:center;
    }

    .hero-subtitle{
        justify-content:center;
        font-size:10px;
    }

    .hero-title{
        margin-left:auto;
        margin-right:auto;
        font-size:clamp(48px,15vw,64px);
        line-height:.94;
    }

    .hero-text{
        margin-left:auto;
        margin-right:auto;
        font-size:15px;
    }

    .hero-actions,
    .hero-content-right .hero-actions{
        justify-content:center;
    }

    .hero-actions .btn{
        width:100%;
        margin:0 !important;
    }

    .hero-indicators{
        bottom:18px;
    }

    #sobre .col-lg-6:last-child img{
        min-height:360px;
        border-radius:22px;
    }

    .feature-box{
        padding:20px;
    }

    .card-modalidade .imagem{
        height:280px;
    }

    .card-modalidade .conteudo{
        padding:24px;
    }

    .card-modalidade p{
        min-height:0;
    }

    .professor-image{
        height:390px;
    }

    .numero{
        padding:20px 8px;
    }

    .numero h2{
        font-size:50px;
    }

    .schedule-filters{
        padding:18px;
    }

    .schedule-filter-buttons{
        flex-wrap:nowrap;
        overflow-x:auto;
        padding-bottom:5px;
        scrollbar-width:thin;
    }

    .schedule-filter-btn{
        flex:0 0 auto;
    }

    .schedule-card{
        padding:22px;
    }

    .schedule-time{
        font-size:32px;
    }

    .gallery-filter{
        justify-content:flex-start;
        flex-wrap:nowrap;
        overflow-x:auto;
        padding:0 2px 8px;
        scrollbar-width:thin;
    }

    .gallery-filter-btn{
        flex:0 0 auto;
    }

    .gallery-image{
        height:290px;
    }

    .testimonial-wrapper{
        padding:20px 0 30px;
    }

    .testimonial-card{
        padding:46px 24px 30px;
        border-radius:24px;
    }

    .quote-icon{
        margin-top:-75px;
    }

    .testimonial-author{
        justify-content:flex-start;
        max-width:260px;
        margin:auto;
    }

    .testimonials-section .carousel-control-prev,
    .testimonials-section .carousel-control-next,
    .section-depoimentos .carousel-control-prev,
    .section-depoimentos .carousel-control-next{
        display:none;
    }

    #leadForm{
        padding:24px 20px;
        border-radius:22px;
    }

    footer{
        padding-top:64px;
    }

    .btn-whatsapp{
        right:14px;
        bottom:14px;
        width:54px;
        height:54px;
        font-size:25px;
    }

    .back-top{
        left:14px;
        bottom:14px;
        width:44px;
        height:44px;
    }
}

@media(max-width:575.98px){

    .container{
        padding-left:18px;
        padding-right:18px;
    }

    .professor-image{
        height:350px;
    }

    .gallery-image{
        height:270px;
    }

    .schedule-card-top{
        align-items:flex-start;
    }
}

/* =========================================================
   19. ACESSIBILIDADE / MOVIMENTO
   ========================================================= */

@media(prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
        scroll-behavior:auto!important;
    }

    .carousel-item.active .hero-slide-image{
        animation:none!important;
    }
}
