
.category-page{
    animation:categorySlideIn .55s cubic-bezier(.22,1,.36,1);
}

@keyframes categorySlideIn{
    from{opacity:0; transform:translateX(42px);}
    to{opacity:1; transform:translateX(0);}
}

.category-hero{
    min-height:520px;
    border-radius:36px;
    padding:64px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    background:
        radial-gradient(circle at 70% 20%, rgba(201,120,88,.18), transparent 35%),
        linear-gradient(180deg, #111, #050505);
    box-shadow:0 40px 100px rgba(0,0,0,.48);
}

.category-hero h1{
    margin:14px 0 16px;
    color:#fff;
    font-size:clamp(48px, 7vw, 92px);
    line-height:.92;
    letter-spacing:-.07em;
}

.category-hero p{
    max-width:620px;
    color:rgba(255,255,255,.74);
    font-size:22px;
    line-height:1.48;
}

@media(max-width:900px){
    .category-hero{
        min-height:430px;
        padding:34px 24px;
        border-radius:32px;
    }
}


/* SOBRE MIM RESPONSIVO */

.about-category-hero{
    background:
        radial-gradient(circle at 72% 18%, rgba(217,149,110,.22), transparent 36%),
        linear-gradient(180deg, #141414, #050505) !important;
}

@media(max-width:900px){
    .about-category-hero{
        min-height:430px;
        padding:34px 24px;
        border-radius:32px;
    }
}

/* =====================================================
   CASAMENTO & PRÉ WEDDING - VERSÃO LIMPA
   Layout responsivo + cards premium + modal YouTube
===================================================== */

.wedding-page{
    background:#050708;
}

.wedding-page .tv-app{
    grid-template-columns:clamp(220px, 17vw, 280px) minmax(0, 1fr);
    background:
        radial-gradient(circle at 58% 42%, rgba(255,255,255,.07), transparent 28%),
        radial-gradient(circle at 78% 5%, rgba(217,149,110,.12), transparent 26%),
        linear-gradient(180deg, #050505 0%, #101719 100%) !important;
}

.wedding-content{
    width:100%;
    max-width:100%;
    min-width:0;
    padding:clamp(92px, 7vw, 112px) clamp(18px, 3vw, 44px) clamp(54px, 6vw, 90px) !important;
}

.wedding-hero{
    position:relative;
    width:100%;
    min-height:clamp(440px, 48vw, 650px);
    border-radius:clamp(28px, 3vw, 46px);
    overflow:hidden;
    display:flex;
    align-items:center;
    padding:clamp(34px, 5vw, 72px);
    isolation:isolate;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.82) 0%,
            rgba(0,0,0,.58) 34%,
            rgba(0,0,0,.22) 58%,
            rgba(0,0,0,.42) 100%
        ),
        url("images/banner.png") center center / cover no-repeat;
    box-shadow:
        0 40px 110px rgba(0,0,0,.46),
        inset 0 1px 1px rgba(255,255,255,.14);
}

.wedding-hero::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:
        radial-gradient(circle at 32% 12%, rgba(217,149,110,.14), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.06), transparent 38%, rgba(0,0,0,.16));
}

.wedding-hero-text{
    position:relative;
    z-index:2;
    width:min(100%, 660px);
}

.wedding-hero-text span{
    display:block;
    margin-bottom:16px;
    color:#D9956E;
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
    font-size:clamp(12px, .85vw, 14px);
    font-weight:800;
    letter-spacing:.22em;
    text-transform:uppercase;
}

.wedding-hero-text h1{
    margin:0 0 22px;
    color:#fff;
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
    font-size:clamp(48px, 6vw, 96px);
    line-height:.92;
    letter-spacing:-.075em;
    font-weight:850;
}

.wedding-hero-text h1 em{
    font-family:inherit;
    font-style:normal;
    font-weight:850;
    letter-spacing:inherit;
}

.wedding-hero-text p{
    max-width:min(570px, 92vw);
    margin:0 0 26px;
    color:rgba(255,255,255,.82);
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
    font-size:clamp(16px, 1.25vw, 20px);
    font-weight:500;
    line-height:1.45;
    letter-spacing:-.02em;
}

.wedding-hero-text a,
.wedding-cta a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 28px;
    border-radius:999px;
    color:#fff !important;
    text-decoration:none !important;
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
    font-size:14px;
    font-weight:800;
    letter-spacing:.02em;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.28);
    backdrop-filter:blur(18px) saturate(150%);
    -webkit-backdrop-filter:blur(18px) saturate(150%);
    transition:
        transform .32s cubic-bezier(.22,1,.36,1),
        background .32s ease,
        border-color .32s ease;
}

.wedding-hero-text a:hover,
.wedding-cta a:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.18);
    border-color:rgba(255,255,255,.42);
}

.wedding-gallery{
    margin-top:clamp(46px, 5vw, 74px);
}

.wedding-gallery-header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:clamp(18px, 2.2vw, 28px);
}

.wedding-gallery-header h2{
    margin:0;
    color:#fff;
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
    font-size:clamp(34px, 4vw, 60px);
    font-weight:850;
    line-height:.95;
    letter-spacing:-.075em;
    text-transform:none;
}

.wedding-video-row{
    display:flex;
    gap:clamp(18px, 2.2vw, 34px);
    overflow-x:auto;
    overflow-y:visible;
    padding:8px 4px 34px;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}

.wedding-video-row::-webkit-scrollbar{
    display:none;
}

.wedding-video-card{
    position:relative;
    flex:0 0 clamp(300px, 31vw, 520px);
    min-width:clamp(300px, 31vw, 520px);
    color:#fff;
    text-decoration:none;
    scroll-snap-align:start;
    transform:translate3d(0,0,0);
    transition:transform .42s cubic-bezier(.22,1,.36,1);
}

.wedding-card-media{
    position:relative;
    width:100%;
    height:clamp(170px, 17vw, 292px);
    overflow:hidden;
    border-radius:24px;
    isolation:isolate;
    background:#050505;
    box-shadow:0 18px 48px rgba(0,0,0,.30);
    transform:translateZ(0);
    -webkit-mask-image:-webkit-radial-gradient(white, black);
}

.wedding-card-media img,
.wedding-card-media video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    border-radius:inherit;
    filter:brightness(.80) saturate(1.06);
    transform:scale(1);
    transition:
        transform .55s cubic-bezier(.22,1,.36,1),
        filter .45s ease;
    will-change:transform;
}

.wedding-card-media::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    border-radius:inherit;
    background:linear-gradient(180deg, transparent 45%, rgba(0,0,0,.62));
    pointer-events:none;
}

.wedding-video-card:hover{
    transform:translate3d(0,-8px,0);
}

.wedding-video-card:hover .wedding-card-media img,
.wedding-video-card:hover .wedding-card-media video{
    transform:scale(1.055);
    filter:brightness(.9) saturate(1.12);
}

.wedding-video-card .play{
    position:absolute;
    left:16px;
    bottom:18px;
    z-index:2;
    color:#fff;
    font-size:20px;
    line-height:1;
}

.wedding-video-card .time{
    position:absolute;
    right:12px;
    bottom:14px;
    z-index:2;
    padding:5px 9px;
    border-radius:8px;
    background:rgba(0,0,0,.56);
    color:#fff;
    font-size:13px;
    line-height:1;
}

.wedding-video-card h3{
    margin:18px 0 6px;
    color:#fff;
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
    font-size:clamp(20px, 1.6vw, 28px);
    font-weight:800;
    letter-spacing:-.04em;
    text-transform:none;
}

.wedding-video-card p{
    margin:0;
    color:rgba(255,255,255,.58);
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
    font-size:15px;
    font-weight:650;
    letter-spacing:.01em;
    text-transform:none;
}

.wedding-cta{
    margin-top:clamp(42px, 5vw, 78px);
    min-height:150px;
    padding:36px 24px;
    border-radius:30px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:22px;
    background:
        radial-gradient(circle at 50% 0%, rgba(217,149,110,.14), transparent 42%),
        linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
    border:1px solid rgba(255,255,255,.08);
}

.wedding-cta h2{
    margin:0;
    color:#fff;
    font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
    font-size:clamp(22px, 2.2vw, 34px);
    font-weight:820;
    line-height:1.1;
    letter-spacing:-.05em;
    text-align:center;
}

/* Modal YouTube preservado */
.video-modal{
    position:fixed;
    inset:0;
    z-index:2147483647;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:clamp(14px, 3vw, 44px);
    opacity:0;
    pointer-events:none;
    transition:opacity .28s ease;
}

.video-modal.is-open{
    opacity:1;
    pointer-events:auto;
}

.video-modal-backdrop{
    position:absolute;
    inset:0;
    z-index:1;
    border:0;
    cursor:pointer;
    background:rgba(230,225,220,.24);
    backdrop-filter:blur(34px) brightness(1.28) saturate(118%);
    -webkit-backdrop-filter:blur(34px) brightness(1.28) saturate(118%);
}

.video-modal-player{
    position:relative;
    z-index:2;
    width:min(94vw, 1120px);
    aspect-ratio:16/9;
    border-radius:clamp(18px, 2.2vw, 32px);
    overflow:hidden;
    background:#000;
    transform:scale(.96) translateY(14px);
    opacity:0;
    transition:
        transform .34s cubic-bezier(.22,1,.36,1),
        opacity .28s ease;
    box-shadow:
        0 44px 140px rgba(0,0,0,.68),
        0 0 0 1px rgba(255,255,255,.18);
}

.video-modal.is-open .video-modal-player{
    transform:scale(1) translateY(0);
    opacity:1;
}

.video-modal-player iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    border:0;
    background:#000;
}

.video-modal-close{
    position:absolute;
    top:14px;
    right:14px;
    z-index:5;
    width:44px;
    height:44px;
    border:0;
    border-radius:999px;
    cursor:pointer;
    color:#fff;
    font-size:30px;
    line-height:1;
    background:rgba(0,0,0,.42);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

body.video-modal-open{
    overflow:hidden;
}

/* Responsivo */
@media(max-width:1100px){
    .wedding-page .tv-app{
        grid-template-columns:220px minmax(0,1fr);
    }

    .wedding-content{
        padding-left:24px !important;
        padding-right:24px !important;
    }
}

@media(max-width:900px){
    .wedding-page .tv-app{
        display:block !important;
    }

    .wedding-page .tv-sidebar{
        display:none !important;
    }

    .wedding-content{
        padding:108px 20px 54px !important;
    }

    .wedding-hero{
        min-height:clamp(460px, 82vw, 560px);
        padding:30px 24px;
        border-radius:32px;
        align-items:flex-end;
        background-position:center center;
    }

    .wedding-hero-text h1{
        font-size:clamp(42px, 12vw, 64px);
        letter-spacing:-.065em;
    }

    .wedding-gallery{
        margin-top:42px;
    }

    .wedding-gallery-header{
        flex-direction:column;
        align-items:flex-start;
    }

    .wedding-video-card{
        flex-basis:82vw;
        min-width:82vw;
    }

    .wedding-card-media{
        height:48vw;
        min-height:210px;
        border-radius:22px;
    }

    .video-modal-player{
        width:94vw;
        border-radius:22px;
    }
}

@media(max-width:520px){
    .wedding-content{
        padding-left:14px !important;
        padding-right:14px !important;
    }

    .wedding-hero{
        padding:28px 18px;
        min-height:500px;
    }

    .wedding-hero-text span{
        letter-spacing:.18em;
        font-size:11px;
    }

    .wedding-hero-text p{
        font-size:15px;
    }

    .wedding-hero-text a,
    .wedding-cta a{
        width:100%;
        min-height:50px;
    }
}









/* === CORREÇÃO FINAL LAYOUT CASAMENTO === */

@media (min-width:901px){

    .wedding-page .tv-app{
        display:grid !important;
        grid-template-columns:280px minmax(0, 1fr) !important;
    }

    .wedding-page .tv-sidebar{
        width:280px !important;
        min-width:280px !important;
        max-width:280px !important;
        box-sizing:border-box !important;
    }

    .wedding-content{
        grid-column:2 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin-left:0 !important;
        padding:128px 48px 80px 64px !important;
        box-sizing:border-box !important;
    }

    .wedding-hero{
        width:100% !important;
        max-width:100% !important;
        min-height:clamp(520px, 42vw, 690px) !important;
        border-radius:42px !important;
        box-sizing:border-box !important;
        background-position:center center !important;
    }

    .wedding-gallery{
        margin-top:74px !important;
        padding-left:0 !important;
    }

    .wedding-gallery-header h2{
        margin-left:0 !important;
    }
}

@media (min-width:901px) and (max-width:1280px){

    .wedding-content{
        padding:126px 34px 70px 54px !important;
    }

    .wedding-hero{
        min-height:560px !important;
        padding:48px !important;
    }

    .wedding-hero-text h1{
        font-size:clamp(56px, 6vw, 86px) !important;
    }
}

@media (max-width:900px){

    .wedding-page .tv-app{
        display:block !important;
        grid-template-columns:1fr !important;
    }

    .wedding-page .tv-sidebar{
        display:none !important;
    }

    .wedding-content{
        width:100% !important;
        margin-left:0 !important;
        padding:112px 20px 60px !important;
        box-sizing:border-box !important;
    }

    .wedding-hero{
        width:100% !important;
        min-height:560px !important;
        padding:34px 24px !important;
        border-radius:30px !important;
        align-items:flex-end !important;
        background-position:center center !important;
    }

    .wedding-hero-text h1{
        font-size:clamp(42px, 11vw, 62px) !important;
        line-height:.92 !important;
    }

    .wedding-gallery{
        margin-top:52px !important;
    }
}

@media (max-width:520px){

    .wedding-content{
        padding:104px 14px 52px !important;
    }

    .wedding-hero{
        min-height:520px !important;
        padding:28px 18px !important;
        border-radius:24px !important;
    }
}

/* === FIM CORREÇÃO FINAL === */



.gallery-scroll-controls{
    display:flex;
    justify-content:center;
    gap:18px;
    margin:34px 0 56px;
}

.gallery-arrow{
    width:54px;
    height:54px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.18);
    background:#181818;
    color:#fff;
    font-size:24px;
    cursor:pointer;
    transition:.25s;
}

.gallery-arrow:hover{
    background:#2a2a2a;
    transform:translateY(-2px);
}

.gallery-arrow:active{
    transform:scale(.96);
}



/* === SETAS GALERIA DE VÍDEOS === */

.wedding-gallery-controls{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:18px !important;
    margin:6px 0 48px !important;
}

.wedding-gallery-arrow{
    width:58px !important;
    height:58px !important;
    border-radius:999px !important;
    border:1px solid rgba(255,255,255,.25) !important;
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
    font-size:42px !important;
    line-height:1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    cursor:pointer !important;
    backdrop-filter:blur(14px) !important;
    -webkit-backdrop-filter:blur(14px) !important;
    transition:transform .2s ease, background .2s ease !important;
}

.wedding-gallery-arrow:hover{
    background:rgba(255,255,255,.18) !important;
    transform:translateY(-2px) !important;
}

/* === FIM SETAS GALERIA === */


/* ===== ÍCONES DAS SETAS ===== */

.wedding-gallery-arrow{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}

.wedding-gallery-arrow i{
    font-size:22px !important;
    color:#fff !important;
    transition:.25s;
}

.wedding-gallery-prev i{
    transform:rotate(180deg);
}

.wedding-gallery-arrow:hover i{
    transform:scale(1.12);
}

.wedding-gallery-prev:hover i{
    transform:rotate(180deg) scale(1.12);
}

/* ============================ */



/* ===========================================================
   NETFLIX / APPLE TV STYLE
=========================================================== */

.wedding-video-card{
    flex:0 0 420px !important;
    width:420px !important;
    cursor:pointer;
}

.wedding-video-thumb{

    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;

    border-radius:28px;

    background:#111;

    box-shadow:
        0 12px 34px rgba(0,0,0,.38);

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}

.wedding-video-thumb img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
        transform .55s ease;

}

.wedding-video-card:hover .wedding-video-thumb{

    transform:translateY(-4px);

    box-shadow:
        0 22px 55px rgba(0,0,0,.50);

}

.wedding-video-card:hover img{

    transform:scale(1.06);

}

.wedding-video-thumb::after{

    content:"";

    position:absolute;
    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.42),
        rgba(0,0,0,0) 45%
    );

}

.wedding-video-play{

    position:absolute;

    left:18px;
    bottom:18px;

    z-index:5;

    width:52px;
    height:52px;

    border-radius:50%;

    background:rgba(0,0,0,.58);

    backdrop-filter:blur(12px);

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

}

.wedding-video-play i{

    color:#fff;
    font-size:20px;

}

.wedding-video-duration{

    position:absolute;

    right:18px;
    bottom:18px;

    z-index:5;

    padding:7px 12px;

    border-radius:999px;

    background:rgba(0,0,0,.65);

    color:#fff;

    font-size:15px;
    font-weight:600;

}

.wedding-video-card h3{

    margin-top:18px;

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

    color:#fff;

}

.wedding-video-card p{

    margin-top:4px;

    font-size:18px;

    color:#A8A8A8;

}

/* =========================================================== */



/* === CORREÇÃO HOVER CORTADO GALERIA === */

.wedding-gallery{
    overflow:visible !important;
}

.wedding-video-row{
    overflow-x:auto !important;
    padding-top:34px !important;
    margin-top:-26px !important;
    padding-left:8px !important;
    padding-right:8px !important;
    position:relative !important;
}

.wedding-video-card{
    position:relative !important;
    z-index:1 !important;
    overflow:visible !important;
}

.wedding-video-card:hover{
    z-index:50 !important;
}

.wedding-video-thumb{
    position:relative !important;
    z-index:2 !important;
    transform-origin:center center !important;
    will-change:transform !important;
}

/* === FIM CORREÇÃO HOVER CORTADO GALERIA === */



/* === BANNER VIDEO PRODUTOS === */

.produtos-page .wedding-hero{
    background:#050505 !important;
}

.produtos-page .produtos-hero-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    z-index:0;
    pointer-events:none;
}

.produtos-page .wedding-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(
        90deg,
        rgba(0,0,0,.82) 0%,
        rgba(0,0,0,.58) 34%,
        rgba(0,0,0,.22) 58%,
        rgba(0,0,0,.42) 100%
    );
}

.produtos-page .wedding-hero::after{
    z-index:1 !important;
}

.produtos-page .wedding-hero-text{
    position:relative;
    z-index:2;
}

/* === FIM BANNER VIDEO PRODUTOS === */


/* === BANNER VIDEO SERVICOS AJUSTE === */

.servicos-page .wedding-hero{
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.82) 0%,
            rgba(0,0,0,.58) 34%,
            rgba(0,0,0,.22) 58%,
            rgba(0,0,0,.42) 100%
        ) !important;
}

.servicos-page .servicos-hero-video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    z-index:-2 !important;
    pointer-events:none !important;
}

.servicos-page .wedding-hero-text{
    position:relative !important;
    z-index:2 !important;
}

/* === FIM BANNER VIDEO SERVICOS AJUSTE === */



/* === SERVICOS H1 TEXT SHADOW === */

.servicos-page .wedding-hero-text h1{
    text-shadow:
        0 2px 8px rgba(0,0,0,.18),
        0 8px 20px rgba(0,0,0,.22);
}

/* === FIM SERVICOS H1 TEXT SHADOW === */







/* === VIDEO BANNER CASAMENTOS CORRIGIDO === */

.casamentos-page .wedding-hero{
    position:relative !important;
    overflow:hidden !important;
    background:#050505 !important;
}

.casamentos-page .casamentos-hero-video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    z-index:0 !important;
    pointer-events:none !important;
}

.casamentos-page .wedding-hero::before{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    pointer-events:none !important;
    background:linear-gradient(
        90deg,
        rgba(0,0,0,.82) 0%,
        rgba(0,0,0,.58) 34%,
        rgba(0,0,0,.22) 58%,
        rgba(0,0,0,.42) 100%
    ) !important;
}

.casamentos-page .wedding-hero::after{
    z-index:1 !important;
}

.casamentos-page .wedding-hero-text{
    position:relative !important;
    z-index:2 !important;
}

/* === FIM VIDEO BANNER CASAMENTOS CORRIGIDO === */



/* === VIDEO BANNER OUTROS === */

.outros-page .wedding-hero{
    position:relative !important;
    overflow:hidden !important;
    background:#050505 !important;
}

.outros-page .outros-hero-video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    z-index:0 !important;
    pointer-events:none !important;
}

.outros-page .wedding-hero::before,
.outros-page .wedding-hero::after{
    z-index:1 !important;
}

.outros-page .wedding-hero-text{
    position:relative !important;
    z-index:2 !important;
}

/* === FIM VIDEO BANNER OUTROS === */



.wedding-gallery-empty{
    min-height:220px;
    margin-top:24px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:24px;
    background:rgba(255,255,255,.045);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:36px 24px;
}

.wedding-gallery-empty i{
    font-size:2rem;
    color:#f1b083;
    margin-bottom:12px;
}

.wedding-gallery-empty h3{
    margin:0 0 8px;
}

.wedding-gallery-empty p{
    max-width:560px;
    margin:0;
    color:rgba(255,255,255,.68);
    line-height:1.55;
}

/* =====================================================
   SOBRE MIM — LAYOUT CINEMATOGRÁFICO
   Vídeo quadrado + apresentação, responsivo
===================================================== */

.about-page{
    background:#050708;
}

.about-page .tv-app{
    grid-template-columns:clamp(220px, 17vw, 280px) minmax(0, 1fr);
    background:
        radial-gradient(circle at 76% 4%, rgba(201,120,88,.16), transparent 27%),
        radial-gradient(circle at 52% 78%, rgba(201,120,88,.08), transparent 25%),
        linear-gradient(180deg, #050505 0%, #0d1214 100%);
}

.about-content{
    width:100%;
    min-width:0;
    min-height:100vh;
    padding:clamp(105px, 7.5vw, 132px) clamp(22px, 3.1vw, 54px) clamp(46px, 5vw, 78px) !important;
    display:flex;
    align-items:center;
}

.about-hero{
    position:relative;
    width:min(100%, 1500px);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(360px, .92fr) minmax(440px, 1.18fr);
    align-items:center;
    gap:clamp(40px, 5vw, 88px);
}

.about-hero::after{
    content:"";
    position:absolute;
    left:18%;
    right:9%;
    bottom:-12%;
    height:180px;
    z-index:-1;
    pointer-events:none;
    background:radial-gradient(ellipse at center, rgba(201,120,88,.13), transparent 68%);
    filter:blur(32px);
}

.about-video-column{
    min-width:0;
}

.about-video-frame{
    position:relative;
    width:100%;
    max-width:620px;
    aspect-ratio:1 / 1;
    margin-inline:auto;
    overflow:hidden;
    border-radius:clamp(22px, 2vw, 30px);
    background:#090909;
    border:1px solid rgba(255,255,255,.16);
    box-shadow:
        0 36px 90px rgba(0,0,0,.50),
        inset 0 1px 0 rgba(255,255,255,.12),
        0 0 55px rgba(201,120,88,.05);
    isolation:isolate;
}

.about-video-frame::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    border-radius:inherit;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}

.about-video{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    background:#050505;
}

.about-video-play{
    position:absolute;
    z-index:4;
    left:50%;
    top:50%;
    transform:translate(-50%, -50%);
    width:clamp(78px, 6.5vw, 104px);
    height:clamp(78px, 6.5vw, 104px);
    display:grid;
    place-items:center;
    padding:0;
    border-radius:50%;
    border:2px solid rgba(255,255,255,.94);
    color:#fff;
    background:rgba(10,10,10,.24);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    box-shadow:0 18px 42px rgba(0,0,0,.34), 0 0 30px rgba(201,120,88,.18);
    cursor:pointer;
    transition:opacity .25s ease, transform .3s cubic-bezier(.22,1,.36,1), background .25s ease;
}

.about-video-play:hover{
    transform:translate(-50%, -50%) scale(1.06);
    background:rgba(201,120,88,.46);
}

.about-video-play.is-hidden{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-50%, -50%) scale(.96);
}

.about-video-play span,
.about-action-play{
    width:0;
    height:0;
    border-top:10px solid transparent;
    border-bottom:10px solid transparent;
    border-left:16px solid currentColor;
    margin-left:5px;
}

.about-copy{
    min-width:0;
    max-width:760px;
}

.about-kicker{
    display:block;
    margin-bottom:14px;
    color:#D98762;
    font-size:clamp(11px, .85vw, 14px);
    font-weight:850;
    letter-spacing:.20em;
    text-transform:uppercase;
}

.about-copy h1{
    margin:0;
    color:#fff;
    font-size:clamp(58px, 6vw, 98px);
    line-height:.88;
    letter-spacing:-.072em;
    font-weight:850;
}

.about-lead{
    max-width:690px;
    margin:24px 0 0;
    color:rgba(255,255,255,.72);
    font-size:clamp(17px, 1.25vw, 21px);
    line-height:1.48;
    letter-spacing:-.022em;
}

.about-divider{
    width:96px;
    height:1px;
    margin:22px 0 20px;
    background:linear-gradient(90deg, #D98762, rgba(217,135,98,.05));
}

.about-story{
    display:grid;
    gap:12px;
}

.about-story p{
    margin:0;
    max-width:720px;
    color:rgba(255,255,255,.86);
    font-size:clamp(14px, .98vw, 16.5px);
    line-height:1.46;
    letter-spacing:-.012em;
}

.about-highlights{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:10px;
    margin-top:24px;
}

.about-chip{
    min-width:0;
    min-height:60px;
    padding:10px 11px;
    border-radius:13px;
    display:flex;
    align-items:center;
    gap:9px;
    background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
    border:1px solid rgba(255,255,255,.14);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

.about-chip-icon{
    flex:0 0 auto;
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    color:#E78354;
    font-size:22px;
    line-height:1;
}

.about-chip span:last-child{
    min-width:0;
}

.about-chip strong,
.about-chip small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.about-chip strong{
    color:#fff;
    font-size:12.5px;
    line-height:1.15;
}

.about-chip small{
    margin-top:3px;
    color:rgba(255,255,255,.50);
    font-size:9.5px;
    line-height:1.15;
}

.about-actions{
    margin-top:22px;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
}

.about-primary-button,
.about-secondary-button{
    min-height:50px;
    padding:0 24px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    font-size:14px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
    transition:transform .28s cubic-bezier(.22,1,.36,1), border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

.about-primary-button{
    border:1px solid rgba(255,255,255,.20);
    color:#fff;
    background:linear-gradient(135deg, #D97950, #F29A6A);
    box-shadow:0 16px 34px rgba(201,120,88,.20), inset 0 1px 0 rgba(255,255,255,.30);
}

.about-primary-button .about-action-play{
    border-top-width:6px;
    border-bottom-width:6px;
    border-left-width:10px;
    margin-left:0;
}

.about-secondary-button{
    border:1px solid rgba(255,255,255,.24);
    color:#fff;
    background:rgba(255,255,255,.035);
}

.about-primary-button:hover,
.about-secondary-button:hover{
    transform:translateY(-2px);
}

.about-primary-button:hover{
    box-shadow:0 20px 38px rgba(201,120,88,.28), inset 0 1px 0 rgba(255,255,255,.34);
}

.about-secondary-button:hover{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.40);
}

.about-back-link{
    margin-left:auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.72);
    font-size:14px;
    font-weight:650;
    text-decoration:none;
    transition:color .2s ease, transform .25s ease;
}

.about-back-link:hover{
    color:#fff;
    transform:translateX(-3px);
}

@media (max-width:1320px){
    .about-hero{
        grid-template-columns:minmax(340px, .92fr) minmax(400px, 1.08fr);
        gap:clamp(30px, 3.8vw, 58px);
    }

    .about-highlights{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .about-back-link{
        margin-left:0;
    }
}

@media (max-width:1100px){
    .about-content{
        align-items:flex-start;
    }

    .about-hero{
        grid-template-columns:minmax(310px, .86fr) minmax(380px, 1.14fr);
        gap:32px;
    }

    .about-copy h1{
        font-size:clamp(54px, 7vw, 82px);
    }

    .about-story p{
        font-size:14px;
    }
}

@media (max-width:900px){
    .about-page .tv-app{
        display:block;
    }

    .about-content{
        min-height:100vh;
        padding:104px 22px 58px !important;
    }

    .about-hero{
        width:min(100%, 760px);
        grid-template-columns:1fr;
        gap:38px;
    }

    .about-video-frame{
        width:min(100%, 620px);
    }

    .about-copy{
        max-width:680px;
        margin-inline:auto;
    }

    .about-copy h1{
        font-size:clamp(58px, 11vw, 86px);
    }

    .about-lead{
        font-size:18px;
    }

    .about-story p{
        font-size:15px;
        line-height:1.52;
    }

    .about-highlights{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
}

@media (max-width:620px){
    .about-content{
        padding:92px 14px 44px !important;
    }

    .about-hero{
        gap:30px;
    }

    .about-video-frame{
        border-radius:22px;
    }

    .about-copy h1{
        font-size:clamp(52px, 17vw, 72px);
    }

    .about-kicker{
        margin-bottom:11px;
        font-size:11px;
    }

    .about-lead{
        margin-top:18px;
        font-size:16px;
        line-height:1.48;
    }

    .about-divider{
        margin:19px 0 18px;
    }

    .about-story{
        gap:13px;
    }

    .about-story p{
        font-size:14px;
        line-height:1.52;
    }

    .about-highlights{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:9px;
        margin-top:22px;
    }

    .about-chip{
        min-height:58px;
    }

    .about-actions{
        align-items:stretch;
    }

    .about-primary-button,
    .about-secondary-button{
        flex:1 1 calc(50% - 6px);
        padding-inline:16px;
        white-space:nowrap;
    }

    .about-back-link{
        flex:1 0 100%;
        justify-content:center;
        margin-top:8px;
        min-height:42px;
    }
}

@media (max-width:410px){
    .about-content{
        padding-inline:12px !important;
    }

    .about-highlights{
        grid-template-columns:1fr 1fr;
    }

    .about-chip{
        padding-inline:9px;
        gap:7px;
    }

    .about-primary-button,
    .about-secondary-button{
        flex-basis:100%;
    }
}

@media (prefers-reduced-motion:reduce){
    .about-page *,
    .about-page *::before,
    .about-page *::after{
        scroll-behavior:auto !important;
        transition-duration:.01ms !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
    }
}
