/*==============================================================================
    THAYLA VILELA
    PREMIUM DESIGN SYSTEM
    --------------------------------------------------------------------------
    01 • DESIGN TOKENS
==============================================================================*/

:root{

    /*==========================================================================
        COLORS
    ==========================================================================*/

    --color-white:#ffffff;

    --color-black:#111111;

    --color-bg:#fcfaf8;

    --color-bg-soft:#f8f3ed;

    --color-bg-alt:#f4ece5;

    --color-surface:#ffffff;

    --color-surface-2:#faf7f4;

    --color-surface-dark:#221917;

    --color-border:#ece2d7;

    --color-border-soft:#f5ede6;

    --color-text:#403833;

    --color-text-soft:#76695f;

    --color-text-light:#ffffff;

    --color-title:#241a18;

    /*==========================================================================
        GOLD SYSTEM
    ==========================================================================*/

    --gold-50:#fffdf8;

    --gold-100:#faf3de;

    --gold-200:#f4e4b7;

    --gold-300:#e8cf83;

    --gold-400:#d8b85d;

    --gold:#b68b49;

    --gold-600:#987039;

    --gold-700:#7c5b2f;

    --gold-800:#624826;

    --gold-900:#46331c;

    /*==========================================================================
        SUCCESS
    ==========================================================================*/

    --success:#2d9d67;

    --warning:#c78d2f;

    --danger:#c44f4f;

    /*==========================================================================
        SHADOWS
    ==========================================================================*/

    --shadow-xs:
        0 2px 6px rgba(0,0,0,.03);

    --shadow-sm:
        0 8px 20px rgba(0,0,0,.05);

    --shadow-md:
        0 18px 45px rgba(0,0,0,.08);

    --shadow-lg:
        0 35px 90px rgba(0,0,0,.10);

    --shadow-xl:
        0 60px 120px rgba(0,0,0,.16);

    --shadow-gold:
        0 20px 60px rgba(182,139,73,.18);

    /*==========================================================================
        GLASS
    ==========================================================================*/

    --glass-bg:
        rgba(255,255,255,.68);

    --glass-dark:
        rgba(20,16,14,.55);

    --glass-border:
        rgba(255,255,255,.35);

    --glass-blur:
        blur(18px);

    /*==========================================================================
        TYPOGRAPHY
    ==========================================================================*/

    --font-display:
        "Cormorant Garamond",
        Georgia,
        serif;

    --font-body:
        "Outfit",
        system-ui,
        sans-serif;

    /*==========================================================================
        FONT WEIGHTS
    ==========================================================================*/

    --fw-light:300;

    --fw-normal:400;

    --fw-medium:500;

    --fw-semibold:600;

    --fw-bold:700;

    /*==========================================================================
        FONT SIZES
    ==========================================================================*/

    --fs-xs:.75rem;

    --fs-sm:.875rem;

    --fs-base:1rem;

    --fs-md:1.125rem;

    --fs-lg:1.25rem;

    --fs-xl:1.5rem;

    --fs-2xl:2rem;

    --fs-3xl:2.8rem;

    --fs-4xl:4rem;

    --fs-hero:clamp(3.8rem,7vw,6.5rem);

    /*==========================================================================
        SPACING
    ==========================================================================*/

    --space-2xs:.25rem;

    --space-xs:.5rem;

    --space-sm:1rem;

    --space-md:1.5rem;

    --space-lg:2.5rem;

    --space-xl:4rem;

    --space-2xl:6rem;

    --space-3xl:8rem;

    --space-4xl:11rem;

    /*==========================================================================
        RADIUS
    ==========================================================================*/

    --radius-sm:8px;

    --radius:16px;

    --radius-lg:24px;

    --radius-xl:36px;

    --radius-round:999px;

    /*==========================================================================
        CONTAINERS
    ==========================================================================*/

    --container-xs:760px;

    --container-sm:980px;

    --container:1240px;

    --container-wide:1440px;

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

    --header-height:96px;

    --header-scroll:78px;

    /*==========================================================================
        EASING
    ==========================================================================*/

    --ease:
        cubic-bezier(.16,1,.3,1);

    --ease-out:
        cubic-bezier(.22,.61,.36,1);

    /*==========================================================================
        DURATIONS
    ==========================================================================*/

    --fast:.25s;

    --normal:.45s;

    --slow:.8s;

    --slower:1.2s;

}
/*==============================================================================
    02 • RESET
==============================================================================*/

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

*:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

html{

    font-size:100%;

    scroll-behavior:smooth;

    scroll-padding-top:var(--header-height);

    -webkit-text-size-adjust:100%;

}

body{

    min-height:100vh;

    overflow-x:hidden;

    font-family:var(--font-body);

    font-size:var(--fs-base);

    font-weight:var(--fw-normal);

    line-height:1.75;

    color:var(--color-text);

    background:var(--color-bg);

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

    -moz-osx-font-smoothing:grayscale;

}

img,
picture{

    display:block;

    max-width:100%;

}

svg{

    display:block;

}

a{

    color:inherit;

    text-decoration:none;

}

button{

    border:none;

    outline:none;

    cursor:pointer;

    background:none;

    font:inherit;

}

input,
textarea,
select{

    font:inherit;

    color:inherit;

    background:none;

    border:none;

    outline:none;

}

textarea{

    resize:vertical;

}

ul,
ol{

    list-style:none;

}

table{

    border-collapse:collapse;

}

::selection{

    background:var(--gold);

    color:white;

}

/*==============================================================================
    03 • BASE
==============================================================================*/

body.menu-open{

    overflow:hidden;

}

main{

    position:relative;

}

section{

    position:relative;

}

iframe{

    border:0;

}

hr{

    border:none;

    height:1px;

    background:var(--color-border);

}

strong{

    font-weight:600;

}

small{

    font-size:.85em;

}

address{

    font-style:normal;

}


/*==============================================================================
    04 • TYPOGRAPHY
==============================================================================*/

h1,
h2,
h3,
h4,
h5,
h6{

    color:var(--color-title);

    font-family:var(--font-display);

    font-weight:400;

    line-height:1.1;

    letter-spacing:-.02em;

}

h1{

    font-size:var(--fs-hero);

}

h2{

    font-size:clamp(2.8rem,5vw,4.5rem);

}

h3{

    font-size:clamp(2rem,3vw,3rem);

}

h4{

    font-size:1.75rem;

}

h5{

    font-size:1.35rem;

}

h6{

    font-size:1.15rem;

}

p{

    color:var(--color-text-soft);

    margin-bottom:1.2rem;

}

p:last-child{

    margin-bottom:0;

}

em{

    color:var(--gold);

    font-style:italic;

}

.lead{

    font-size:1.3rem;

    line-height:1.9;

    max-width:760px;

}

.display{

    font-size:clamp(5rem,10vw,8rem);

    line-height:.95;

}

.text-center{

    text-align:center;

}

.text-right{

    text-align:right;

}

.text-gold{

    color:var(--gold);

}

.text-light{

    color:white;

}

.text-muted{

    color:var(--color-text-soft);

}

.uppercase{

    text-transform:uppercase;

}

/*==============================================================================
    05 • CONTAINERS
==============================================================================*/

.container{

    width:min(calc(100% - 48px),var(--container));

    margin-inline:auto;

}

.container-sm{

    width:min(calc(100% - 48px),var(--container-sm));

    margin-inline:auto;

}

.container-xs{

    width:min(calc(100% - 48px),var(--container-xs));

    margin-inline:auto;

}

.container-wide{

    width:min(calc(100% - 48px),var(--container-wide));

    margin-inline:auto;

}

.section{

    padding-block:var(--space-4xl);

}

.section-small{

    padding-block:var(--space-3xl);

}

.section-large{

    padding-block:13rem;

}

/*==============================================================================
    06 • UTILITIES
==============================================================================*/

.flex{

    display:flex;

}

.grid{

    display:grid;

}

.center{

    display:flex;

    align-items:center;

    justify-content:center;

}

.align-center{

    align-items:center;

}

.justify-between{

    justify-content:space-between;

}

.justify-center{

    justify-content:center;

}

.flex-column{

    flex-direction:column;

}

.w-100{

    width:100%;

}

.h-100{

    height:100%;

}

.relative{

    position:relative;

}

.absolute{

    position:absolute;

}

.overflow-hidden{

    overflow:hidden;

}

.rounded{

    border-radius:var(--radius);

}

.rounded-lg{

    border-radius:var(--radius-lg);

}

.shadow{

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

}

.shadow-lg{

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

}

.glass{

    background:var(--glass-bg);

    backdrop-filter:var(--glass-blur);

    -webkit-backdrop-filter:var(--glass-blur);

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

}

.border{

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

}

.bg-white{

    background:white;

}

.bg-soft{

    background:var(--color-bg-soft);

}

.bg-dark{

    background:var(--color-surface-dark);

}

.opacity-0{

    opacity:0;

}

.opacity-100{

    opacity:1;

}
/*==============================================================================
    07 • MOTION SYSTEM
==============================================================================*/

/*
|--------------------------------------------------------------------------
| Transitions
|--------------------------------------------------------------------------
*/

.transition{

    transition:
        all
        var(--normal)
        var(--ease);

}

.transition-fast{

    transition:
        all
        var(--fast)
        var(--ease);

}

.transition-slow{

    transition:
        all
        var(--slow)
        var(--ease);

}

/*
|--------------------------------------------------------------------------
| Reveal Base
|--------------------------------------------------------------------------
*/

.reveal{

    opacity:0;

    visibility:hidden;

    transition:

        opacity .9s var(--ease),

        transform .9s var(--ease),

        filter .9s var(--ease);

}

/*
|--------------------------------------------------------------------------
| Fade Up
|--------------------------------------------------------------------------
*/

.reveal-up{

    transform:translateY(80px);

    filter:blur(10px);

}

.reveal-up.active{

    opacity:1;

    visibility:visible;

    transform:none;

    filter:none;

}

/*
|--------------------------------------------------------------------------
| Fade Down
|--------------------------------------------------------------------------
*/

.reveal-down{

    transform:translateY(-80px);

    filter:blur(10px);

}

.reveal-down.active{

    opacity:1;

    visibility:visible;

    transform:none;

    filter:none;

}

/*
|--------------------------------------------------------------------------
| Fade Left
|--------------------------------------------------------------------------
*/

.reveal-left{

    transform:translateX(-80px);

    filter:blur(10px);

}

.reveal-left.active{

    opacity:1;

    visibility:visible;

    transform:none;

    filter:none;

}

/*
|--------------------------------------------------------------------------
| Fade Right
|--------------------------------------------------------------------------
*/

.reveal-right{

    transform:translateX(80px);

    filter:blur(10px);

}

.reveal-right.active{

    opacity:1;

    visibility:visible;

    transform:none;

    filter:none;

}

/*
|--------------------------------------------------------------------------
| Zoom
|--------------------------------------------------------------------------
*/

.reveal-scale{

    transform:scale(.88);

    opacity:0;

}

.reveal-scale.active{

    transform:scale(1);

    opacity:1;

    visibility:visible;

}

/*
|--------------------------------------------------------------------------
| Rotate
|--------------------------------------------------------------------------
*/

.reveal-rotate{

    opacity:0;

    transform:

        rotate(-8deg)

        scale(.92);

}

.reveal-rotate.active{

    opacity:1;

    visibility:visible;

    transform:none;

}

/*
|--------------------------------------------------------------------------
| Blur Only
|--------------------------------------------------------------------------
*/

.reveal-blur{

    opacity:0;

    filter:blur(18px);

}

.reveal-blur.active{

    opacity:1;

    visibility:visible;

    filter:none;

}

/*==============================================================================
    STAGGER
==============================================================================*/

.delay-100{

    transition-delay:.1s;

}

.delay-200{

    transition-delay:.2s;

}

.delay-300{

    transition-delay:.3s;

}

.delay-400{

    transition-delay:.4s;

}

.delay-500{

    transition-delay:.5s;

}

.delay-600{

    transition-delay:.6s;

}

.delay-700{

    transition-delay:.7s;

}

.delay-800{

    transition-delay:.8s;

}

/*==============================================================================
    PREMIUM HOVER
==============================================================================*/

.hover-lift{

    transition:

        transform var(--normal) var(--ease),

        box-shadow var(--normal) var(--ease);

}

.hover-lift:hover{

    transform:

        translateY(-10px);

    box-shadow:

        var(--shadow-lg);

}

.hover-grow{

    transition:

        transform var(--normal) var(--ease);

}

.hover-grow:hover{

    transform:

        scale(1.03);

}

.hover-zoom{

    overflow:hidden;

}

.hover-zoom img{

    transition:

        transform 1.2s var(--ease);

}

.hover-zoom:hover img{

    transform:

        scale(1.08);

}

.hover-dark{

    position:relative;

}

.hover-dark::after{

    content:"";

    position:absolute;

    inset:0;

    background:

        rgba(0,0,0,.18);

    opacity:0;

    transition:

        opacity .5s;

}

.hover-dark:hover::after{

    opacity:1;

}

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

.float{

    animation:

        floating 6s ease-in-out infinite;

}

@keyframes floating{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0);

    }

}

.pulse-gold{

    animation:

        pulseGold 3s infinite;

}

@keyframes pulseGold{

    0%{

        box-shadow:

        0 0 0 0 rgba(182,139,73,.35);

    }

    70%{

        box-shadow:

        0 0 0 18px rgba(182,139,73,0);

    }

    100%{

        box-shadow:

        0 0 0 0 rgba(182,139,73,0);

    }

}

.shine{

    position:relative;

    overflow:hidden;

}

.shine::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:60%;

    height:100%;

    background:

        linear-gradient(

            90deg,

            transparent,

            rgba(255,255,255,.45),

            transparent

        );

    transform:skewX(-25deg);

}

.shine:hover::before{

    animation:

        shine 1s;

}

@keyframes shine{

    to{

        left:150%;

    }

}

.scroll-indicator{

    position:absolute;

    bottom:40px;

    left:50%;

    transform:translateX(-50%);

    width:28px;

    height:48px;

    border:1px solid rgba(255,255,255,.5);

    border-radius:999px;

}

.scroll-indicator::before{

    content:"";

    position:absolute;

    left:50%;

    top:10px;

    width:5px;

    height:8px;

    border-radius:50%;

    background:white;

    transform:translateX(-50%);

    animation:

        scrollWheel 2s infinite;

}

@keyframes scrollWheel{

    0%{

        opacity:0;

        transform:

            translate(-50%,0);

    }

    50%{

        opacity:1;

    }

    100%{

        opacity:0;

        transform:

            translate(-50%,18px);

    }

}

/*==============================================================================
    08 • BUTTON SYSTEM
==============================================================================*/

.btn{

    --btn-height:58px;

    --btn-padding:0 34px;

    --btn-radius:999px;

    --btn-font:.82rem;

    --btn-spacing:.18em;

    --btn-shadow:var(--shadow-md);

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:.8rem;

    height:var(--btn-height);

    padding:var(--btn-padding);

    border-radius:var(--btn-radius);

    cursor:pointer;

    position:relative;

    overflow:hidden;

    isolation:isolate;

    font-size:var(--btn-font);

    font-weight:600;

    letter-spacing:var(--btn-spacing);

    text-transform:uppercase;

    white-space:nowrap;

    transition:

        transform var(--normal) var(--ease),

        box-shadow var(--normal) var(--ease),

        color var(--normal) var(--ease),

        background var(--normal) var(--ease),

        border-color var(--normal) var(--ease);

}

.btn:focus-visible{

    outline:2px solid var(--gold);

    outline-offset:4px;

}

.btn:active{

    transform:translateY(2px);

}

.btn i,
.btn svg{

    transition:

        transform .45s var(--ease);

}

.btn:hover i,
.btn:hover svg{

    transform:translateX(6px);

}

/*==============================================================================
    PRIMARY
==============================================================================*/

.btn-primary{

    color:white;

    border:1px solid transparent;

    background:

    linear-gradient(

        135deg,

        var(--gold-300),

        var(--gold),

        var(--gold-700)

    );

    box-shadow:

        var(--shadow-gold);

}

.btn-primary:hover{

    transform:

        translateY(-5px);

    box-shadow:

        0 30px 70px rgba(182,139,73,.30);

}

.btn-white{

    background:white;

    color:var(--color-title);

    border:1px solid white;

}

.btn-white:hover{

    background:transparent;

    color:white;

}

.btn-outline{

    background:transparent;

    color:var(--gold);

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

}

.btn-outline:hover{

    color:white;

    background:var(--gold);

}

.btn-ghost{

    background:

        rgba(255,255,255,.08);

    backdrop-filter:

        blur(12px);

    color:white;

    border:

        1px solid rgba(255,255,255,.25);

}

.btn-ghost:hover{

    background:

        rgba(255,255,255,.18);

}

.btn-dark{

    background:

        var(--color-title);

    color:white;

}

.btn-dark:hover{

    background:

        black;

}
.btn-glass{

    background:

        rgba(255,255,255,.18);

    backdrop-filter:

        blur(20px);

    border:

        1px solid rgba(255,255,255,.25);

    color:white;

}

.btn-glass:hover{

    background:

        rgba(255,255,255,.30);

}

.btn-floating{

    position:fixed;

    right:32px;

    bottom:32px;

    width:72px;

    height:72px;

    padding:0;

    border-radius:50%;

    z-index:500;

    background:

        linear-gradient(

            135deg,

            var(--gold),

            var(--gold-700)

        );

    color:white;

    box-shadow:

        0 20px 60px rgba(182,139,73,.35);

}

.btn-floating:hover{

    transform:

        translateY(-8px);

}

.btn-arrow{

    display:flex;

    align-items:center;

    gap:12px;

}

.btn-arrow span:last-child{

    transition:

        transform .5s var(--ease);

}

.btn-arrow:hover span:last-child{

    transform:

        translateX(8px);

}

.btn::before{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            120deg,

            transparent,

            rgba(255,255,255,.35),

            transparent

        );

    transform:

        translateX(-130%);

}

.btn:hover::before{

    animation:

        buttonShine

        .9s;

}

@keyframes buttonShine{

    to{

        transform:

        translateX(130%);

    }

}

.btn::after{

    content:"";

    position:absolute;

    width:12px;

    height:12px;

    border-radius:50%;

    background:

        rgba(255,255,255,.25);

    transform:

        scale(0);

    opacity:0;

}

.btn:active::after{

    animation:

        ripple .6s;

}

@keyframes ripple{

    from{

        transform:scale(0);

        opacity:.5;

    }

    to{

        transform:scale(25);

        opacity:0;

    }

}

.btn-sm{

    height:46px;

    padding:0 24px;

    font-size:.75rem;

}

.btn-lg{

    height:66px;

    padding:0 44px;

}

.btn-xl{

    height:74px;

    padding:0 54px;

    font-size:.95rem;

}

.btn-block{

    width:100%;

}

.button-group{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

    align-items:center;

}

.button-group{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

    align-items:center;

}

.header-container{

    width:min(94%,1400px);

    margin:auto;

    display:flex;

    align-items:center;

    justify-content:space-between;

}

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

.site-logo{

    display:flex;

    align-items:center;

    transition:

        transform .45s var(--ease);

}

.site-logo img{

    height:72px;

    transition:

        height .45s var(--ease);

}

.site-header.scrolled .site-logo img{

    height:56px;

}

.site-logo:hover{

    transform:scale(1.04);

}

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

.main-nav{

    display:flex;

    align-items:center;

}

.main-nav > .nav-list{

    display:flex;

    align-items:center;

    gap:42px;

}

.main-nav .nav-dropdown-menu{

    display:block;

    align-items:stretch;

    gap:0;

}

.main-nav a{

    position:relative;

    font-size:.82rem;

    letter-spacing:.18em;

    text-transform:uppercase;

    font-weight:500;

    color:var(--color-title);

    transition:

        color .35s;

}

.main-nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-12px;

    width:0;

    height:2px;

    background:var(--gold);

    transition:

        width .45s var(--ease);

}

.main-nav a:hover::after{

    width:100%;

}

.main-nav .active::after{

    width:100%;

}

.main-nav a:hover{

    color:var(--gold);

}

.header-cta{

    margin-left:50px;

}

/*==============================================================================
    SCROLL PROGRESS
==============================================================================*/

.scroll-progress{

    position:fixed;

    top:0;

    left:0;

    width:0;

    height:3px;

    background:

        linear-gradient(

            90deg,

            var(--gold-300),

            var(--gold),

            var(--gold-700)

        );

    z-index:10001;

}

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

.menu-toggle{

    display:none;

    width:52px;

    height:52px;

    position:relative;

    cursor:pointer;

}

.menu-toggle span{

    position:absolute;

    left:12px;

    width:28px;

    height:2px;

    background:var(--color-title);

    transition:

        all .4s var(--ease);

}

.menu-toggle span:nth-child(1){

    top:17px;

}

.menu-toggle span:nth-child(2){

    top:25px;

}

.menu-toggle span:nth-child(3){

    top:33px;

}

.menu-toggle.active span:nth-child(1){

    transform:

        rotate(45deg);

    top:25px;

}

.menu-toggle.active span:nth-child(2){

    opacity:0;

}

.menu-toggle.active span:nth-child(3){

    transform:

        rotate(-45deg);

    top:25px;

}

.mobile-menu{

    position:fixed;

    inset:0;

    background:

        rgba(255,255,255,.94);

    backdrop-filter:

        blur(18px);

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:

        all .45s var(--ease);

}

.mobile-menu.open{

    opacity:1;

    visibility:visible;

}

.mobile-menu ul{

    display:flex;

    flex-direction:column;

    gap:28px;

    text-align:center;

}

.mobile-menu a{

    font-size:2rem;

    font-family:var(--font-display);

    color:var(--color-title);

    transition:

        color .4s;

}

.mobile-menu a:hover{

    color:var(--gold);

}

.header-backdrop{

    position:fixed;

    inset:0;

    background:

        rgba(0,0,0,.35);

    opacity:0;

    visibility:hidden;

    transition:

        .4s;

}

.header-backdrop.show{

    opacity:1;

    visibility:visible;

}

@media(max-width:992px){

    .main-nav{

        display:none;

    }

    .menu-toggle{

        display:block;

    }

    .site-logo img{

        height:58px;

    }

}
/*==============================================================================
    10 • HERO
==============================================================================*/

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    isolation:isolate;

    background:#111;

}

.hero-media{

    position:absolute;

    inset:0;

    overflow:hidden;

}

.hero-media img,
.hero-media video{

    width:100%;

    height:100%;

    object-fit:cover;

    animation:

        heroZoom 18s ease-in-out infinite alternate;

}

@keyframes heroZoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.12);

    }

}

.hero-overlay{

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            to right,

            rgba(18,15,13,.78),

            rgba(18,15,13,.42),

            rgba(18,15,13,.18)

        );

    z-index:2;

}

.hero-overlay::before{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            to bottom,

            rgba(0,0,0,.35),

            transparent 35%,

            transparent 65%,

            rgba(0,0,0,.45)

        );

}

.hero-overlay::after{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    right:-180px;

    top:-180px;

    border-radius:50%;

    background:

        radial-gradient(

            rgba(182,139,73,.22),

            transparent 70%

        );

    filter:blur(40px);

}

.hero-content{

    position:relative;

    z-index:5;

    width:min(760px,100%);

}

.hero-label{

    display:inline-flex;

    align-items:center;

    gap:12px;

    padding:10px 20px;

    border-radius:999px;

    background:

        rgba(255,255,255,.12);

    backdrop-filter:blur(18px);

    border:

        1px solid rgba(255,255,255,.18);

    color:white;

    font-size:.78rem;

    letter-spacing:.22em;

    text-transform:uppercase;

    margin-bottom:28px;

}

.hero-label::before{

    content:"";

    width:36px;

    height:1px;

    background:var(--gold);

}

.hero-title{

    color:white;

    font-size:clamp(4rem,8vw,7rem);

    line-height:.95;

    margin-bottom:30px;

    text-shadow:

        0 10px 40px rgba(0,0,0,.30);

}

.hero-title span{

    color:var(--gold-300);

}

.hero-text{

    max-width:620px;

    font-size:1.25rem;

    line-height:2;

    color:

        rgba(255,255,255,.88);

    margin-bottom:42px;

}

.hero-actions{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

    align-items:center;

}

.hero-badge{

    position:absolute;

    right:80px;

    bottom:80px;

    z-index:6;

    width:170px;

    height:170px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

    background:

        rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    border:

        1px solid rgba(255,255,255,.2);

    color:white;

    font-size:.85rem;

    line-height:1.6;

    animation:

        floating 7s ease-in-out infinite;

}

.hero-badge::before{

    content:"";

    position:absolute;

    inset:10px;

    border-radius:50%;

    border:

        1px solid rgba(255,255,255,.2);

}

.hero-social{

    position:absolute;

    left:50px;

    bottom:60px;

    display:flex;

    flex-direction:column;

    gap:18px;

    z-index:6;

}

.hero-social a{

    width:48px;

    height:48px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:

        rgba(255,255,255,.08);

    backdrop-filter:blur(12px);

    color:white;

    transition:

        .45s;

}

.hero-social a:hover{

    transform:

        translateY(-6px);

    background:var(--gold);

}

.hero-decoration{

    position:absolute;

    right:8%;

    top:18%;

    width:380px;

    height:380px;

    border-radius:50%;

    border:

        1px solid rgba(255,255,255,.08);

    animation:

        floating 10s ease-in-out infinite;

}

.hero-scroll{

    position:absolute;

    bottom:35px;

    left:50%;

    transform:translateX(-50%);

    z-index:20;

}

.hero-grid{

    position:absolute;

    inset:0;

    opacity:.05;

    background-image:

        linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px),

        linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px);

    background-size:

        80px 80px;

    z-index:1;

}

@media(max-width:992px){

    .hero{

        text-align:center;

    }

    .hero-content{

        margin:auto;

    }

    .hero-actions{

        justify-content:center;

    }

    .hero-social{

        display:none;

    }

    .hero-decoration{

        display:none;

    }

    .hero-badge{

        display:none;

    }

}

/*==============================================================================
    11 • SECTION SYSTEM
==============================================================================*/

.section{

    position:relative;

    padding:var(--space-4xl) 0;

    overflow:hidden;

}

.section-small{

    padding:var(--space-3xl) 0;

}

.section-large{

    padding:14rem 0;

}

.section-dark{

    background:var(--color-surface-dark);

    color:white;

}

.section-light{

    background:var(--color-bg);

}

.section-soft{

    background:var(--color-bg-soft);

}

.section-white{

    background:white;

}

.section-gradient{

    background:

        linear-gradient(

            180deg,

            white,

            var(--color-bg-soft)

        );

}

/*==============================================================================
    SECTION DECORATION
==============================================================================*/

.section::before{

    content:"";

    position:absolute;

    width:550px;

    height:550px;

    border-radius:50%;

    background:

        radial-gradient(

            rgba(182,139,73,.06),

            transparent 72%

        );

    top:-260px;

    right:-180px;

    pointer-events:none;

}

.section::after{

    content:"";

    position:absolute;

    left:-220px;

    bottom:-220px;

    width:450px;

    height:450px;

    border-radius:50%;

    background:

        radial-gradient(

            rgba(182,139,73,.04),

            transparent 70%

        );

}

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

.section-header{

    max-width:760px;

    margin:0 auto 90px;

    text-align:center;

}

.section-header.left{

    margin-left:0;

    text-align:left;

}

.section-header.right{

    margin-right:0;

    text-align:right;

}

.section-eyebrow{

    display:inline-flex;

    align-items:center;

    gap:14px;

    margin-bottom:20px;

    color:var(--gold);

    text-transform:uppercase;

    letter-spacing:.28em;

    font-size:.75rem;

    font-weight:600;

}

.section-eyebrow::before{

    content:"";

    width:42px;

    height:1px;

    background:var(--gold);

}

.section-eyebrow::after{

    content:"";

    width:42px;

    height:1px;

    background:var(--gold);

}

.section-title{

    margin-bottom:28px;

    font-size:clamp(3rem,5vw,4.7rem);

    line-height:1;

}

.section-title span{

    color:var(--gold);

}

.section-description{

    max-width:720px;

    margin:auto;

    font-size:1.15rem;

    line-height:2;

    color:var(--color-text-soft);

}

.section-header.left .section-description{

    margin-left:0;

}

.section-header.right .section-description{

    margin-right:0;

}

.section-divider{

    width:120px;

    height:2px;

    margin:35px auto;

    background:

        linear-gradient(

            to right,

            transparent,

            var(--gold),

            transparent

        );

}

.section-header.left .section-divider{

    margin-left:0;

}

.section-header.right .section-divider{

    margin-right:0;

}

/*==============================================================================
    EDITORIAL LAYOUT
==============================================================================*/

.editorial{

    display:grid;

    grid-template-columns:

        1fr

        1fr;

    gap:100px;

    align-items:center;

}

.editorial.reverse{

    direction:rtl;

}

.editorial.reverse>*{

    direction:ltr;

}

.editorial-content{

    max-width:620px;

}

.editorial-image{

    position:relative;

}

.editorial-image img{

    width:100%;

    border-radius:28px;

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

}

.editorial-image::before{

    content:"";

    position:absolute;

    inset:-20px;

    border:1px solid rgba(182,139,73,.25);

    border-radius:34px;

}

.editorial-card{

    position:absolute;

    right:-40px;

    bottom:40px;

    width:240px;

    padding:28px;

    border-radius:24px;

    background:

        rgba(255,255,255,.75);

    backdrop-filter:

        blur(20px);

    box-shadow:

        var(--shadow-lg);

}

/*==============================================================================
    PREMIUM CARD
==============================================================================*/

.card{

    position:relative;

    overflow:hidden;

    background:white;

    border-radius:28px;

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

    transition:

        transform .6s var(--ease),

        box-shadow .6s var(--ease);

}

.card:hover{

    transform:

        translateY(-14px);

    box-shadow:

        var(--shadow-xl);

}

.card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:4px;

    height:0;

    background:var(--gold);

    transition:

        height .7s var(--ease);

}

.card:hover::before{

    height:100%;

}

.card-image{

    overflow:hidden;

}

.card-image img{

    width:100%;

    transition:

        transform 1.4s var(--ease);

}

.card:hover .card-image img{

    transform:

        scale(1.08);

}

.card-body{

    padding:36px;

}

.card-title{

    margin-bottom:18px;

    font-size:2rem;

}

.card-text{

    color:var(--color-text-soft);

    line-height:1.9;

}

.card-link{

    display:inline-flex;

    align-items:center;

    gap:12px;

    margin-top:26px;

    color:var(--gold);

    font-weight:600;

}

.card-link svg{

    transition:

        transform .45s var(--ease);

}

.card:hover .card-link svg{

    transform:

        translateX(8px);

}

.card-glass{

    background:

        rgba(255,255,255,.65);

    backdrop-filter:

        blur(18px);

    border:

        1px solid rgba(255,255,255,.35);

}

.card-shadow{

    box-shadow:

        0 40px 90px rgba(0,0,0,.08);

}

.card-number{

    font-size:4rem;

    color:

        rgba(182,139,73,.12);

    font-weight:700;

    position:absolute;

    right:26px;

    top:18px;

}

/*==============================================================================
    12 • LUXURY GALLERY
==============================================================================*/

.gallery{

    position:relative;

}

.gallery-grid{

    display:grid;

    grid-template-columns:

        repeat(12,1fr);

    gap:28px;

}

.gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:26px;

    cursor:pointer;

    background:#111;

    min-height:320px;

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

    transition:

        transform .7s var(--ease),

        box-shadow .7s var(--ease);

}

.gallery-item img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:

        transform 1.4s var(--ease),

        filter 1s;

}

.gallery-item:hover{

    transform:

        translateY(-14px);

    box-shadow:

        var(--shadow-xl);

}

.gallery-item:hover img{

    transform:

        scale(1.09);

}

.gallery-overlay{

    position:absolute;

    inset:0;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:40px;

    background:

        linear-gradient(

            transparent,

            rgba(0,0,0,.82)

        );

    opacity:0;

    transition:

        opacity .55s;

}

.gallery-item:hover .gallery-overlay{

    opacity:1;

}

.gallery-category{

    color:var(--gold-300);

    font-size:.72rem;

    text-transform:uppercase;

    letter-spacing:.24em;

    margin-bottom:10px;

}

.gallery-title{

    color:white;

    font-size:2rem;

    margin-bottom:12px;

}
.gallery-description{

    color:

        rgba(255,255,255,.78);

    margin-bottom:22px;

}
.gallery-button{

    display:inline-flex;

    align-items:center;

    gap:12px;

    color:white;

    font-weight:600;

}

.gallery-button svg{

    transition:

        transform .45s;

}

.gallery-item:hover .gallery-button svg{

    transform:

        translateX(8px);

}
.gallery-item::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:5px;

    height:0;

    background:var(--gold);

    transition:

        height .7s;

    z-index:3;

}

.gallery-item:hover::before{

    height:100%;

}

.gallery-label{

    position:absolute;

    top:26px;

    left:26px;

    z-index:5;

    padding:12px 18px;

    border-radius:999px;

    background:

        rgba(255,255,255,.15);

    backdrop-filter:

        blur(20px);

    color:white;

    font-size:.75rem;

}

.gallery-featured{

    position:relative;

}

.gallery-featured::after{

    content:"Destaque";

    position:absolute;

    top:26px;

    right:26px;

    padding:12px 18px;

    border-radius:999px;

    background:var(--gold);

    color:white;

    font-size:.75rem;

}

.gallery-masonry{

    columns:3;

    column-gap:28px;

}

.gallery-masonry .gallery-item{

    margin-bottom:28px;

    break-inside:avoid;

}

.gallery-filter{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:16px;

    margin-bottom:70px;

}

.gallery-filter button{

    padding:14px 28px;

    border-radius:999px;

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

    transition:.45s;

}

.gallery-filter button:hover{

    background:var(--gold);

    color:white;

}

.gallery-filter .active{

    background:var(--gold);

    color:white;

}

.gallery-item{

    cursor:zoom-in;

}

@media(max-width:992px){

    .gallery-grid{

        grid-template-columns:1fr;

    }

    .gallery-item.large,
    .gallery-item.medium,
    .gallery-item.small,
    .gallery-item.wide,
    .gallery-item.tall{

        grid-column:auto;

        min-height:420px;

    }

    .gallery-masonry{

        columns:1;

    }

}

@media(max-width:992px){

    .gallery-grid{

        grid-template-columns:1fr;

    }

    .gallery-item.large,
    .gallery-item.medium,
    .gallery-item.small,
    .gallery-item.wide,
    .gallery-item.tall{

        grid-column:auto;

        min-height:420px;

    }

    .gallery-masonry{

        columns:1;

    }

}
.before-after-wrapper{

    position:relative;

    width:100%;

    aspect-ratio:16/9;

    overflow:hidden;

}

.before-after img{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    user-select:none;

    pointer-events:none;

}
.before-image{

    z-index:1;

}
.after-image{

    z-index:2;

    width:50%;

    overflow:hidden;

}
.after-image img{

    width:100vw;

    max-width:none;

}
.before-after-line{

    position:absolute;

    left:50%;

    top:0;

    width:3px;

    height:100%;

    background:

        linear-gradient(

            to bottom,

            transparent,

            white,

            var(--gold),

            white,

            transparent

        );

    z-index:8;

}
.before-after-handle{

    position:absolute;

    left:50%;

    top:50%;

    width:78px;

    height:78px;

    border-radius:50%;

    transform:translate(-50%,-50%);

    background:white;

    box-shadow:

        0 20px 60px rgba(0,0,0,.20);

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:10;

    cursor:ew-resize;

    transition:

        transform .45s var(--ease);

}
.before-after-handle:hover{

    transform:

        translate(-50%,-50%)

        scale(1.08);

}
.before-after-handle::before{

    content:"";

    position:absolute;

    inset:8px;

    border-radius:50%;

    border:

        2px solid var(--gold);

}
.before-after-handle svg{

    color:var(--gold);

}
.before-label,
.after-label{

    position:absolute;

    top:30px;

    padding:12px 20px;

    border-radius:999px;

    background:

        rgba(255,255,255,.15);

    backdrop-filter:

        blur(20px);

    color:white;

    font-size:.72rem;

    letter-spacing:.18em;

    text-transform:uppercase;

    z-index:12;

}
.before-label{

    left:30px;

}
.before-after::before{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    right:-220px;

    top:-220px;

    border-radius:50%;

    background:

        radial-gradient(

            rgba(182,139,73,.20),

            transparent 70%

        );

    filter:blur(30px);

    pointer-events:none;

}
.before-after::after{

    content:"";

    position:absolute;

    left:0;

    bottom:0;

    width:100%;

    height:180px;

    background:

        linear-gradient(

            transparent,

            rgba(0,0,0,.35)

        );

}
.before-after-badge{

    position:absolute;

    left:50%;

    bottom:30px;

    transform:translateX(-50%);

    padding:14px 24px;

    border-radius:999px;

    background:

        rgba(255,255,255,.15);

    backdrop-filter:blur(18px);

    color:white;

    z-index:15;

}
.before-after img{

    transition:

        transform 1.8s var(--ease);

}

.before-after:hover img{

    transform:

        scale(1.04);

}
.before-after-shadow{

    position:absolute;

    inset:0;

    box-shadow:

        inset

        0 0 120px

        rgba(0,0,0,.20);

    pointer-events:none;

}
@media(max-width:768px){

    .before-after-wrapper{

        aspect-ratio:4/5;

    }

    .before-after-handle{

        width:62px;

        height:62px;

    }

}

/*==============================================================================
    14 • TESTIMONIALS PREMIUM
==============================================================================*/

.testimonials{

    position:relative;

}

.testimonial-slider{

    display:flex;

    gap:32px;

    overflow:hidden;

}

.testimonial-card{

    position:relative;

    flex:0 0 520px;

    border-radius:30px;

    overflow:hidden;

    background:white;

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

    transition:
        transform .6s var(--ease),
        box-shadow .6s var(--ease);

}

.testimonial-card:hover{

    transform:translateY(-12px);

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

}

.testimonial-video{

    position:relative;

    overflow:hidden;

    aspect-ratio:16/10;

}

.testimonial-video img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:transform 1.2s var(--ease);

}

.testimonial-card:hover .testimonial-video img{

    transform:scale(1.08);

}

.testimonial-video::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        transparent,
        rgba(0,0,0,.55)
    );

}

.testimonial-play{

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    width:86px;

    height:86px;

    border-radius:50%;

    background:rgba(255,255,255,.20);

    backdrop-filter:blur(20px);

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    transition:all .45s;

    z-index:3;

}

.testimonial-card:hover .testimonial-play{

    background:var(--gold);

    transform:translate(-50%,-50%) scale(1.08);

}

.testimonial-content{

    padding:42px;

}

.testimonial-stars{

    display:flex;

    gap:6px;

    color:var(--gold);

    margin-bottom:22px;

}

.testimonial-text{

    font-size:1.08rem;

    line-height:2;

    margin-bottom:34px;

    color:var(--color-text-soft);

}

.testimonial-author{

    display:flex;

    align-items:center;

    gap:18px;

}

.testimonial-avatar{

    width:72px;

    height:72px;

    border-radius:50%;

    overflow:hidden;

}

.testimonial-avatar img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.testimonial-name{

    font-size:1.2rem;

    margin-bottom:6px;

}

.testimonial-location{

    color:var(--gold);

    font-size:.82rem;

    text-transform:uppercase;

    letter-spacing:.18em;

}

.testimonial-featured{

    border:2px solid rgba(182,139,73,.18);

}

.testimonial-featured::before{

    content:"Mais Procurado";

    position:absolute;

    top:28px;

    right:28px;

    padding:12px 18px;

    border-radius:999px;

    background:var(--gold);

    color:white;

    font-size:.72rem;

    letter-spacing:.18em;

    z-index:10;

}

/*==============================================================================
    15 • STATS
==============================================================================*/

.stats{

    display:grid;

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

    gap:40px;

}

.stat{

    text-align:center;

}

.stat-number{

    font-size:4rem;

    color:var(--gold);

    line-height:1;

    margin-bottom:18px;

}

.stat-title{

    text-transform:uppercase;

    letter-spacing:.18em;

    font-size:.8rem;

}

.stat-divider{

    width:50px;

    height:2px;

    background:var(--gold);

    margin:24px auto;

}

/*==============================================================================
    16 • PROCESS TIMELINE
==============================================================================*/

.timeline{

    position:relative;

    max-width:1100px;

    margin:auto;

}

.timeline::before{

    content:"";

    position:absolute;

    left:50%;

    top:0;

    bottom:0;

    width:2px;

    background:rgba(182,139,73,.25);

}

.timeline-item{

    position:relative;

    display:grid;

    grid-template-columns:1fr 120px 1fr;

    align-items:center;

    margin-bottom:90px;

}

.timeline-item:nth-child(even) .timeline-content{

    grid-column:3;

}

.timeline-item:nth-child(odd) .timeline-content{

    grid-column:1;

}

.timeline-dot{

    width:26px;

    height:26px;

    border-radius:50%;

    background:var(--gold);

    margin:auto;

    box-shadow:0 0 0 12px rgba(182,139,73,.12);

}

.timeline-content{

    background:white;

    padding:36px;

    border-radius:24px;

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

    transition:.5s;

}

.timeline-content:hover{

    transform:translateY(-8px);

}

.timeline-step{

    color:var(--gold);

    font-size:.8rem;

    text-transform:uppercase;

    letter-spacing:.22em;

    margin-bottom:14px;

}

.timeline-title{

    font-size:2rem;

    margin-bottom:18px;

}

.timeline-text{

    line-height:1.9;

    color:var(--color-text-soft);

}

/*==============================================================================
    17 • CTA PREMIUM
==============================================================================*/

.cta{

    position:relative;

    overflow:hidden;

    border-radius:40px;

    padding:120px 80px;

    background:

        linear-gradient(
            135deg,
            #1b1715,
            #2a221d
        );

    color:white;

}

.cta::before{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    right:-250px;

    top:-250px;

    border-radius:50%;

    background:radial-gradient(
        rgba(182,139,73,.22),
        transparent 70%
    );

}

.cta-content{

    position:relative;

    z-index:3;

    max-width:720px;

}

.cta-title{

    color:white;

    font-size:clamp(3rem,5vw,5rem);

    margin-bottom:26px;

}

.cta-text{

    color:rgba(255,255,255,.82);

    font-size:1.15rem;

    margin-bottom:40px;

    line-height:2;

}

/*==============================================================================
    18 • PREMIUM FORMS
==============================================================================*/

.form{

    width:100%;

}

.form-grid{

    display:grid;

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

    gap:28px;

}

.form-group{

    position:relative;

}

.form-group.full{

    grid-column:1/-1;

}

.form-label{

    display:block;

    margin-bottom:12px;

    font-size:.78rem;

    font-weight:600;

    letter-spacing:.18em;

    text-transform:uppercase;

    color:var(--color-title);

}

.form-control{

    width:100%;

    min-height:62px;

    padding:0 22px;

    border-radius:18px;

    background:white;

    border:1px solid rgba(0,0,0,.08);

    transition:
        border-color .35s,
        box-shadow .35s,
        transform .35s;

}

textarea.form-control{

    min-height:180px;

    padding:22px;

}

.form-control:hover{

    border-color:rgba(182,139,73,.35);

}

.form-control:focus{

    border-color:var(--gold);

    box-shadow:0 0 0 5px rgba(182,139,73,.12);

}

.form-helper{

    margin-top:10px;

    font-size:.85rem;

    color:var(--color-text-soft);

}

.form-error{

    color:#d43838;

    margin-top:8px;

    font-size:.85rem;

}

.form-success{

    color:#2c9c5a;

    margin-top:8px;

    font-size:.85rem;

}

/*==============================================================================
    CHECKBOX
==============================================================================*/

.checkbox{

    display:flex;

    align-items:flex-start;

    gap:14px;

}

.checkbox input{

    width:22px;

    height:22px;

    accent-color:var(--gold);

}

.checkbox label{

    line-height:1.8;

}

/*==============================================================================
    SELECT
==============================================================================*/

.form-select{

    appearance:none;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23B68B49' stroke-width='2'%3E%3Cpath d='M4 7l5 5 5-5'/%3E%3C/svg%3E");

    background-repeat:no-repeat;

    background-position:right 20px center;

}

/*==============================================================================
    19 • FAQ
==============================================================================*/

.faq{

    display:grid;

    gap:22px;

}

.faq-item{

    background:white;

    border-radius:22px;

    overflow:hidden;

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

    transition:.45s;

}

.faq-item:hover{

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

}

.faq-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:30px;

    cursor:pointer;

}

.faq-title{

    font-size:1.2rem;

}

.faq-icon{

    width:44px;

    height:44px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(182,139,73,.08);

    transition:.35s;

}

.faq-item.active .faq-icon{

    transform:rotate(45deg);

    background:var(--gold);

    color:white;

}

.faq-body{

    max-height:0;

    overflow:hidden;

    transition:max-height .45s ease;

}

.faq-content{

    padding:0 30px 30px;

    line-height:1.9;

}

/*==============================================================================
    20 • BLOG CARDS
==============================================================================*/

.blog-grid{

    display:grid;

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

    gap:34px;

}

.blog-card{

    border-radius:26px;

    overflow:hidden;

    background:white;

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

    transition:.5s;

}

.blog-card:hover{

    transform:translateY(-12px);

}

.blog-image{

    overflow:hidden;

}

.blog-image img{

    width:100%;

    aspect-ratio:16/10;

    object-fit:cover;

    transition:1.2s;

}

.blog-card:hover img{

    transform:scale(1.08);

}

.blog-content{

    padding:34px;

}

.blog-category{

    display:inline-block;

    margin-bottom:18px;

    color:var(--gold);

    text-transform:uppercase;

    font-size:.72rem;

    letter-spacing:.22em;

}

.blog-title{

    font-size:1.7rem;

    margin-bottom:18px;

}

.blog-meta{

    display:flex;

    gap:18px;

    margin-top:28px;

    color:var(--color-text-soft);

    font-size:.88rem;

}

/*==============================================================================
    21 • FOOTER
==============================================================================*/

.footer{

    background:#171412;

    color:white;

    position:relative;

    overflow:hidden;

}

.footer-top{

    padding:120px 0 70px;

}

.footer-grid{

    display:grid;

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

    gap:60px;

}

.footer-logo{

    margin-bottom:26px;

}

.footer-description{

    color:rgba(255,255,255,.72);

    line-height:2;

}

.footer-title{

    margin-bottom:26px;

    font-size:1.1rem;

    color:white;

}

.footer-links{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.footer-links a{

    color:rgba(255,255,255,.70);

    transition:.35s;

}

.footer-links a:hover{

    color:var(--gold);

    padding-left:8px;

}

.footer-bottom{

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

    padding:28px 0;

}

.footer-copy{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.footer-social{

    display:flex;

    gap:16px;

}

.footer-social a{

    width:46px;

    height:46px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.08);

    transition:.35s;

}

.footer-social a:hover{

    background:var(--gold);

    transform:translateY(-5px);

}

/*==============================================================================
    NEWSLETTER
==============================================================================*/

.newsletter{

    display:flex;

    gap:16px;

    margin-top:30px;

}

.newsletter input{

    flex:1;

    height:60px;

    border-radius:999px;

    padding:0 24px;

    background:rgba(255,255,255,.08);

    color:white;

}

.newsletter input::placeholder{

    color:rgba(255,255,255,.45);

}

/*==============================================================================
    22 • MODAL + LIGHTBOX
==============================================================================*/

.modal{

    position:fixed;

    inset:0;

    z-index:99999;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:40px;

    opacity:0;

    visibility:hidden;

    transition:
        opacity .45s,
        visibility .45s;

}

.modal.open{

    opacity:1;

    visibility:visible;

}

.modal-backdrop{

    position:absolute;

    inset:0;

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

    backdrop-filter:blur(12px);

}

.modal-content{

    position:relative;

    width:min(1100px,100%);

    max-height:90vh;

    overflow:auto;

    border-radius:28px;

    background:white;

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

    animation:modalShow .5s var(--ease);

}

@keyframes modalShow{

    from{

        opacity:0;

        transform:translateY(40px) scale(.96);

    }

    to{

        opacity:1;

        transform:none;

    }

}

.modal-close{

    position:absolute;

    top:20px;

    right:20px;

    width:54px;

    height:54px;

    border-radius:50%;

    background:white;

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

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    transition:.35s;

    z-index:20;

}

.modal-close:hover{

    transform:rotate(90deg);

    background:var(--gold);

    color:white;

}

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

.lightbox{

    position:relative;

    background:#111;

}

.lightbox img{

    display:block;

    width:100%;

    max-height:88vh;

    object-fit:contain;

}

.lightbox-prev,
.lightbox-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:62px;

    height:62px;

    border-radius:50%;

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(14px);

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    transition:.35s;

}

.lightbox-prev{

    left:24px;

}

.lightbox-next{

    right:24px;

}

.lightbox-prev:hover,
.lightbox-next:hover{

    background:var(--gold);

    color:white;

}

.lightbox-counter{

    position:absolute;

    bottom:24px;

    left:50%;

    transform:translateX(-50%);

    padding:12px 24px;

    border-radius:999px;

    background:rgba(255,255,255,.14);

    backdrop-filter:blur(14px);

    color:white;

}

/*==============================================================================
    23 • LOADER
==============================================================================*/

.page-loader{

    position:fixed;

    inset:0;

    background:white;

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:999999;

}

.loader-logo{

    animation:loaderPulse 1.8s infinite;

}

@keyframes loaderPulse{

    0%{

        transform:scale(.96);

        opacity:.5;

    }

    50%{

        transform:scale(1);

        opacity:1;

    }

    100%{

        transform:scale(.96);

        opacity:.5;

    }

}

.loader-ring{

    position:absolute;

    width:140px;

    height:140px;

    border-radius:50%;

    border:3px solid rgba(182,139,73,.12);

    border-top-color:var(--gold);

    animation:spin 1.2s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}

/*==============================================================================
    SKELETON
==============================================================================*/

.skeleton{

    position:relative;

    overflow:hidden;

    background:#efefef;

}

.skeleton::after{

    content:"";

    position:absolute;

    inset:0;

    transform:translateX(-100%);

    background:linear-gradient(

        90deg,

        transparent,

        rgba(255,255,255,.55),

        transparent

    );

    animation:skeletonLoading 1.4s infinite;

}

@keyframes skeletonLoading{

    to{

        transform:translateX(100%);

    }

}

/*==============================================================================
    BACK TO TOP
==============================================================================*/

.back-top{

    position:fixed;

    right:34px;

    bottom:34px;

    width:64px;

    height:64px;

    border-radius:50%;

    background:var(--gold);

    color:white;

    display:flex;

    align-items:center;

    justify-content:center;

    box-shadow:0 18px 50px rgba(182,139,73,.35);

    opacity:0;

    visibility:hidden;

    transform:translateY(20px);

    transition:.4s;

    z-index:999;

}

.back-top.show{

    opacity:1;

    visibility:visible;

    transform:none;

}

.back-top:hover{

    transform:translateY(-8px);

}

/*==============================================================================
    CURSOR
==============================================================================*/

.cursor{

    position:fixed;

    width:18px;

    height:18px;

    border-radius:50%;

    background:var(--gold);

    pointer-events:none;

    z-index:999999;

    mix-blend-mode:difference;

    transition:

        transform .18s ease,

        width .25s ease,

        height .25s ease;

}

.cursor.hover{

    width:64px;

    height:64px;

    opacity:.35;

}

/*==============================================================================
    SCROLLBAR
==============================================================================*/

::-webkit-scrollbar{

    width:12px;

}

::-webkit-scrollbar-track{

    background:#ececec;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(

        var(--gold),

        var(--gold-700)

    );

    border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--gold-700);

}

/*==============================================================================
    DIVIDERS
==============================================================================*/

.divider{

    width:100%;

    height:1px;

    background:linear-gradient(

        to right,

        transparent,

        rgba(182,139,73,.5),

        transparent

    );

}

.divider-vertical{

    width:1px;

    height:100%;

    background:linear-gradient(

        transparent,

        rgba(182,139,73,.4),

        transparent

    );

}

/*==============================================================================
    BADGES
==============================================================================*/

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:10px 18px;

    border-radius:999px;

    font-size:.72rem;

    font-weight:600;

    letter-spacing:.18em;

    text-transform:uppercase;

}

.badge-gold{

    background:rgba(182,139,73,.12);

    color:var(--gold);

}

.badge-dark{

    background:#222;

    color:white;

}

.badge-white{

    background:white;

    color:var(--color-title);

}

/*==============================================================================
    TAGS
==============================================================================*/

.tags{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

}

.tag{

    padding:10px 18px;

    border-radius:999px;

    background:#f5f5f5;

    transition:.35s;

}

.tag:hover{

    background:var(--gold);

    color:white;

}

/*==============================================================================
    SEPARATORS
==============================================================================*/

.separator{

    width:90px;

    height:3px;

    border-radius:999px;

    background:var(--gold);

}

.separator-center{

    margin-inline:auto;

}

.separator-left{

    margin-right:auto;

}

.separator-right{

    margin-left:auto;

}

/*==============================================================================
    25 • RESPONSIVE MASTER
==============================================================================*/

/******************************************************************************
    DESKTOP XL
******************************************************************************/

@media (min-width:1600px){

    .container{

        max-width:1500px;

    }

    .hero-title{

        font-size:7rem;

    }

    .section{

        padding:180px 0;

    }

}

/******************************************************************************
    DESKTOP
******************************************************************************/

@media (max-width:1400px){

    .container{

        width:min(94%,1300px);

    }

    .editorial{

        gap:80px;

    }

    .stats{

        gap:30px;

    }

    .gallery-grid{

        gap:22px;

    }

}

/******************************************************************************
    LAPTOP
******************************************************************************/

@media (max-width:1200px){

    .section{

        padding:120px 0;

    }

    .hero-title{

        font-size:5rem;

    }

    .hero-text{

        font-size:1.1rem;

    }

    .editorial{

        gap:60px;

    }

    .footer-grid{

        grid-template-columns:

            repeat(2,1fr);

    }

    .blog-grid{

        grid-template-columns:

            repeat(2,1fr);

    }

    .stats{

        grid-template-columns:

            repeat(2,1fr);

    }

}

/******************************************************************************
    TABLET
******************************************************************************/

@media (max-width:992px){

    .container{

        width:min(92%,100%);

    }

    .section{

        padding:100px 0;

    }

    .hero{

        min-height:auto;

        padding:180px 0 120px;

        text-align:center;

    }

    .hero-content{

        margin:auto;

    }

    .hero-title{

        font-size:4rem;

    }

    .hero-actions{

        justify-content:center;

    }

    .hero-social{

        display:none;

    }

    .hero-badge{

        display:none;

    }

    .hero-decoration{

        display:none;

    }

    .editorial{

        grid-template-columns:1fr;

        gap:60px;

    }

    .editorial.reverse{

        direction:ltr;

    }

    .editorial-card{

        position:relative;

        right:auto;

        bottom:auto;

        margin-top:25px;

    }

    .gallery-grid{

        grid-template-columns:

            repeat(2,1fr);

    }

    .gallery-item.large,

    .gallery-item.medium,

    .gallery-item.small,

    .gallery-item.tall,

    .gallery-item.wide{

        grid-column:auto;

        min-height:380px;

    }

    .timeline::before{

        left:18px;

    }

    .timeline-item{

        grid-template-columns:

            40px

            1fr;

    }

    .timeline-dot{

        grid-column:1;

    }

    .timeline-content{

        grid-column:2 !important;

    }

    .cta{

        padding:90px 50px;

        text-align:center;

    }

    .cta-content{

        margin:auto;

    }

    .button-group{

        justify-content:center;

    }

    .testimonial-slider{

        overflow:auto;

        scroll-snap-type:x mandatory;

    }

    .testimonial-card{

        scroll-snap-align:start;

    }

}

/******************************************************************************
    MOBILE LARGE
******************************************************************************/

@media (max-width:768px){

    h1{

        font-size:3rem;

    }

    h2{

        font-size:2.5rem;

    }

    h3{

        font-size:2rem;

    }

    .hero-title{

        font-size:3rem;

    }

    .hero-text{

        font-size:1rem;

    }

    .lead{

        font-size:1rem;

    }

    .section{

        padding:80px 0;

    }

    .section-header{

        margin-bottom:60px;

    }

    .gallery-grid{

        grid-template-columns:1fr;

    }

    .blog-grid{

        grid-template-columns:1fr;

    }

    .stats{

        grid-template-columns:1fr;

    }

    .footer-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

    .form-grid{

        grid-template-columns:1fr;

    }

    .newsletter{

        flex-direction:column;

    }

    .newsletter input{

        width:100%;

    }

    .button-group{

        flex-direction:column;

        width:100%;

    }

    .button-group .btn{

        width:100%;

    }

    .btn{

        width:100%;

    }

    .card-body{

        padding:28px;

    }

    .testimonial-card{

        flex:0 0 100%;

    }

    .modal{

        padding:20px;

    }

    .modal-content{

        border-radius:18px;

    }

}

/******************************************************************************
    MOBILE
******************************************************************************/

@media (max-width:576px){

    .container{

        width:min(94%,100%);

    }

    .hero{

        padding-top:140px;

    }

    .hero-title{

        font-size:2.5rem;

    }

    .hero-label{

        font-size:.68rem;

    }

    .section-title{

        font-size:2.2rem;

    }

    .section-description{

        font-size:1rem;

    }

    .btn{

        height:56px;

    }

    .card{

        border-radius:20px;

    }

    .gallery-item{

        min-height:320px;

    }

    .timeline-content{

        padding:26px;

    }

    .timeline-title{

        font-size:1.5rem;

    }

    .cta{

        padding:70px 30px;

        border-radius:24px;

    }

    .cta-title{

        font-size:2.3rem;

    }

    .footer-copy{

        flex-direction:column;

        gap:18px;

        text-align:center;

    }

    .footer-social{

        justify-content:center;

    }

}

/******************************************************************************
    SMALL MOBILE
******************************************************************************/

@media (max-width:420px){

    html{

        font-size:93%;

    }

    .hero-title{

        font-size:2.1rem;

    }

    .section-title{

        font-size:2rem;

    }

    .btn{

        padding:0 22px;

    }

    .card-body{

        padding:22px;

    }

    .testimonial-content{

        padding:28px;

    }

    .faq-header{

        padding:22px;

    }

    .faq-content{

        padding:0 22px 22px;

    }

    .modal-close{

        width:46px;

        height:46px;

    }

    .back-top{

        width:56px;

        height:56px;

        right:18px;

        bottom:18px;

    }

}

/******************************************************************************
    LANDSCAPE
******************************************************************************/

@media (max-height:650px){

    .hero{

        min-height:auto;

        padding:140px 0 100px;

    }

}

/******************************************************************************
    REDUCED MOTION
******************************************************************************/

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

    *{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto !important;

    }

}

/******************************************************************************
    PRINT
******************************************************************************/

@media print{

    .site-header,

    .footer,

    .btn,

    .back-top,

    .hero-scroll,

    .scroll-progress,

    .menu-toggle{

        display:none !important;

    }

    body{

        background:white;

        color:black;

    }

}



.hero-section {
    position: relative;
    background: #0b1220;
}

.hero-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 30%, #1d4ed8 0%, transparent 40%),
                radial-gradient(circle at 80% 70%, #9333ea 0%, transparent 45%);
    opacity: 0.6;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.4), rgba(0,0,0,0.8));
}

.hero-title {
    line-height: 1.1;
}

.hero-subtitle {
    color: rgba(255,255,255,0.75);
}

.hero-badge span {
    background: rgba(255,255,255,0.1);
    padding: 6px 12px;
    border-radius: 50px;
    font-size: 0.85rem;
    backdrop-filter: blur(10px);
}

.stat-box {
    background: rgba(255,255,255,0.05);
    padding: 12px;
    border-radius: 12px;
    text-align: center;
    backdrop-filter: blur(10px);
}

.stat-box h3 {
    margin: 0;
    font-weight: bold;
}

.hero-card {
    position: relative;
}

.code-window {
    background: #111827;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

.code-header {
    display: flex;
    gap: 6px;
    padding: 10px;
    background: #0f172a;
}

.dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.dot.red { background: #ef4444; }
.dot.yellow { background: #facc15; }
.dot.green { background: #22c55e; }

.code-content {
    padding: 20px;
    color: #22c55e;
    font-size: 0.85rem;
    margin: 0;
}

/* Floating cards */
.floating-card {
    position: absolute;
    background: rgba(255,255,255,0.08);
    padding: 10px 14px;
    border-radius: 12px;
    color: white;
    font-size: 0.85rem;
    backdrop-filter: blur(10px);
}

.card-1 { top: 10%; left: -10%; }
.card-2 { top: 40%; right: -10%; }
.card-3 { bottom: 10%; left: 20%; }

/*==============================================================================
    THAYLA VILELA - SITE CONSOLIDATION
==============================================================================*/

.site-header{
    position:fixed;
    inset:0 0 auto;
    z-index:1000;
    background:rgba(252,250,248,.84);
    border-bottom:1px solid rgba(36,26,24,.08);
    backdrop-filter:blur(18px);
    transition:box-shadow .3s ease, background .3s ease;
}

.site-header.is-scrolled{
    background:rgba(252,250,248,.96);
    box-shadow:0 16px 40px rgba(36,26,24,.08);
}

.header-inner{
    min-height:86px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.logo{
    display:flex;
    align-items:center;
    gap:12px;
    line-height:1;
    flex-shrink:0;
}

.logo-mark{
    width:44px;
    height:44px;
    object-fit:cover;
    border:1.5px solid var(--gold);
    border-radius:50%;
    box-shadow:0 5px 14px rgba(36,26,24,.12);
}

.logo-copy{
    display:grid;
    gap:2px;
}

.logo-name{
    font-family:var(--font-display);
    font-size:1.25rem;
    color:var(--color-title);
    letter-spacing:.12em;
}

.logo-sub{
    font-size:.68rem;
    color:var(--gold);
    letter-spacing:.24em;
    text-transform:uppercase;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:28px;
}

.nav-list{
    display:flex;
    align-items:center;
    gap:28px;
}

.main-nav a{
    font-size:.76rem;
    font-weight:600;
    color:var(--color-title);
    letter-spacing:.16em;
    text-transform:uppercase;
    white-space:nowrap;
}

.main-nav a:hover,
.main-nav a.active{
    color:var(--gold);
}

.header-action{
    --btn-height:46px;
    --btn-padding:0 22px;
    --btn-font:.72rem;
}

.header-mobile-controls{
    display:contents;
}

.mobile-language-switcher{
    display:none;
}

.nav-toggle{
    display:none;
    width:44px;
    height:44px;
    border:1px solid var(--color-border);
    border-radius:50%;
    place-items:center;
}

.nav-toggle span{
    display:block;
    width:18px;
    height:2px;
    margin:3px auto;
    background:var(--color-title);
}

.eyebrow{
    margin:0 0 18px;
    color:var(--gold);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.28em;
    text-transform:uppercase;
}

.btn-outline{
    color:var(--color-title);
    border:1px solid rgba(36,26,24,.24);
    background:rgba(255,255,255,.5);
}

.btn-outline:hover{
    border-color:var(--gold);
    color:var(--gold-700);
    transform:translateY(-4px);
}

.btn-outline.light{
    color:white;
    border-color:rgba(255,255,255,.42);
    background:rgba(255,255,255,.08);
}

.text-link{
    display:inline-flex;
    align-items:center;
    padding-bottom:8px;
    color:var(--color-title);
    font-size:.8rem;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
    border-bottom:2px solid var(--gold);
}

.tv-hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    color:white;
    background:#171210;
}

.tv-hero-media{
    position:absolute;
    inset:0;
    background-image: image-set(
        url("../images/luxury_bridal_hair.webp") type("image/webp"),
        url("../images/luxury_bridal_hair.jpg") type("image/jpeg")
    );
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    transform:scale(1.02);
}

.tv-hero-shade{
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, rgba(18,14,13,.88), rgba(18,14,13,.54) 48%, rgba(18,14,13,.18)),
        linear-gradient(0deg, rgba(18,14,13,.42), rgba(18,14,13,.16));
}

.tv-hero-inner{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,760px) minmax(260px,360px);
    align-items:end;
    gap:80px;
    padding:170px 0 90px;
}

.tv-hero-copy h1{
    max-width:860px;
    color:white;
    font-size:clamp(3.1rem,7vw,6.6rem);
    letter-spacing:0;
}

.tv-hero-lead{
    max-width:680px;
    margin:28px 0 0;
    color:rgba(255,255,255,.82);
    font-size:1.18rem;
    line-height:1.9;
}

.tv-actions{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    margin-top:34px;
}

.tv-hero-panel{
    padding:32px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.11);
    backdrop-filter:blur(18px);
}

.tv-hero-panel span{
    color:var(--gold-200);
    font-size:.72rem;
    letter-spacing:.22em;
    text-transform:uppercase;
}

.tv-hero-panel strong{
    display:block;
    margin:12px 0;
    color:white;
    font-family:var(--font-display);
    font-size:2rem;
    font-weight:400;
}

.tv-hero-panel p{
    color:rgba(255,255,255,.76);
}

.tv-trust{
    background:#191412;
    color:white;
}

.tv-trust-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
}

.tv-trust-grid div{
    padding:30px 26px;
    border-left:1px solid rgba(255,255,255,.1);
}

.tv-trust-grid div:last-child{
    border-right:1px solid rgba(255,255,255,.1);
}

.tv-trust-grid strong,
.tv-trust-grid span{
    display:block;
}

.tv-trust-grid strong{
    color:white;
    font-family:var(--font-display);
    font-size:1.45rem;
    font-weight:400;
}

.tv-trust-grid span{
    margin-top:8px;
    color:rgba(255,255,255,.62);
    font-size:.9rem;
}

.tv-section{
    padding:120px 0;
}

.tv-split,
.tv-before-grid,
.tv-instagram-inner,
.tv-faq-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px;
    align-items:center;
}

.tv-copy h2,
.section-heading h2{
    margin-bottom:24px;
    letter-spacing:0;
}

.tv-copy p,
.section-heading p{
    font-size:1.05rem;
    line-height:1.85;
}

.section-heading{
    max-width:780px;
    margin:0 auto 62px;
    text-align:center;
}

.tv-image-stack{
    position:relative;
}

.tv-image-stack img{
    width:82%;
    aspect-ratio:3/4;
    object-fit:cover;
    box-shadow:0 30px 70px rgba(36,26,24,.12);
}

.tv-mini-card{
    position:absolute;
    right:0;
    bottom:42px;
    width:min(310px,55%);
    padding:28px;
    background:white;
    box-shadow:0 22px 50px rgba(36,26,24,.14);
}

.tv-mini-card strong,
.tv-mini-card span{
    display:block;
}

.tv-mini-card strong{
    color:var(--color-title);
    font-family:var(--font-display);
    font-size:1.45rem;
    font-weight:400;
}

.tv-mini-card span{
    margin-top:8px;
    color:var(--color-text-soft);
    font-size:.9rem;
    line-height:1.65;
}

.tv-services,
.tv-testimonials,
.tv-faq{
    background:var(--color-bg-soft);
}

.tv-card-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.tv-service-card,
.tv-quote,
.tv-comparison article,
.tv-steps article,
.tv-faq-list article{
    padding:34px;
    background:white;
    border:1px solid var(--color-border);
    box-shadow:0 14px 38px rgba(36,26,24,.05);
}

.tv-service-card span,
.tv-comparison span,
.tv-steps span{
    color:var(--gold);
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.22em;
    text-transform:uppercase;
}

.tv-service-card h3,
.tv-comparison h3,
.tv-steps h3,
.tv-faq-list h3{
    margin:14px 0 12px;
    font-size:1.7rem;
    letter-spacing:0;
}

.tv-center-action{
    margin-top:42px;
    text-align:center;
}

.tv-portfolio{
    background:white;
}

.tv-gallery-preview{
    display:grid;
    grid-template-columns:1.08fr .92fr;
    grid-auto-rows:300px;
    gap:24px;
}

.tv-gallery-item{
    position:relative;
    display:block;
    overflow:hidden;
    background:#111;
}

.tv-gallery-item.tall{
    grid-row:span 2;
}

.tv-gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform 1.2s var(--ease), opacity .5s ease;
}

.tv-gallery-item::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg, rgba(0,0,0,.56), transparent 55%);
}

.tv-gallery-item span{
    position:absolute;
    left:28px;
    bottom:26px;
    z-index:1;
    color:white;
    font-family:var(--font-display);
    font-size:2rem;
}

.tv-gallery-item:hover img{
    transform:scale(1.06);
    opacity:.86;
}

.tv-before{
    background:#171210;
    color:white;
}

.tv-before h2,
.tv-before h3{
    color:white;
}

.tv-before p{
    color:rgba(255,255,255,.72);
}

.tv-comparison{
    display:grid;
    gap:22px;
}

.tv-comparison article{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.12);
}

.tv-quote p{
    color:var(--color-title);
    font-family:var(--font-display);
    font-size:1.7rem;
    line-height:1.35;
}

.tv-quote span{
    display:block;
    margin-top:22px;
    color:var(--gold);
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.2em;
    text-transform:uppercase;
}

.tv-steps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.tv-instagram{
    background:white;
}

.tv-insta-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
}

.tv-insta-grid img{
    width:100%;
    aspect-ratio:1;
    object-fit:cover;
}

.tv-faq-layout{
    align-items:start;
}

.tv-faq-list{
    display:grid;
    gap:16px;
}

.tv-final-cta{
    padding:120px 0;
    text-align:center;
    color:white;
    background:
        linear-gradient(rgba(18,14,13,.78), rgba(18,14,13,.82)),
        url("https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&q=80&w=1600") center/cover;
}

.tv-final-cta h2{
    color:white;
    font-size:clamp(2.6rem,5vw,4.8rem);
    letter-spacing:0;
}

.tv-final-cta p{
    max-width:680px;
    margin:20px auto 0;
    color:rgba(255,255,255,.78);
    font-size:1.1rem;
}

.tv-final-cta .tv-actions{
    justify-content:center;
}

.site-footer{
    padding-top:90px;
    color:white;
    background:#171412;
}

.site-footer .footer-grid{
    display:grid;
    grid-template-columns:1.5fr .8fr 1fr 1.1fr;
    gap:54px;
}

.footer-logo{
    margin:0 0 18px;
    color:white;
    font-family:var(--font-display);
    font-size:2rem;
}

.footer-tagline,
.footer-location,
.site-footer p,
.site-footer li,
.site-footer a{
    color:rgba(255,255,255,.68);
}

.site-footer h3{
    margin-bottom:18px;
    color:white;
    font-size:1.35rem;
}

.site-footer ul{
    display:grid;
    gap:10px;
}

.site-footer a:hover{
    color:var(--gold-200);
}

.footer-bottom{
    margin-top:70px;
    padding:24px 0;
    border-top:1px solid rgba(255,255,255,.1);
}

.footer-copy{
    display:flex;
    justify-content:space-between;
    gap:18px;
}

@media (max-width:1100px){
    .tv-hero-inner,
    .tv-split,
    .tv-before-grid,
    .tv-instagram-inner,
    .tv-faq-layout{
        grid-template-columns:1fr;
        gap:56px;
    }

    .tv-hero-panel{
        max-width:520px;
    }

    .tv-card-grid,
    .tv-trust-grid,
    .tv-steps,
    .site-footer .footer-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

/* Adaptive header states: full -> compact -> collapsed. */
.site-header.header-compact .header-inner{
    gap:20px;
}

.site-header.header-compact .logo{
    gap:9px;
}

.site-header.header-compact .logo-mark{
    width:40px;
    height:40px;
}

.site-header.header-compact .logo-name{
    font-size:1.08rem;
    letter-spacing:.1em;
}

.site-header.header-compact .logo-sub{
    font-size:.6rem;
    letter-spacing:.19em;
}

.site-header.header-compact .main-nav,
.site-header.header-compact .nav-list{
    gap:18px;
}

.site-header.header-compact .main-nav a{
    font-size:.7rem;
    letter-spacing:.11em;
}

.site-header.header-compact .nav-dropdown-trigger{
    font-size:.76rem !important;
    letter-spacing:.02em;
}

.site-header.header-compact .header-action{
    --btn-padding:0 16px;
    --btn-font:.68rem;
}

.site-header.header-collapsed .header-mobile-controls{
    display:flex;
    align-items:center;
    gap:10px;
}

.site-header.header-collapsed .mobile-language-switcher{
    display:flex;
    align-items:center;
    gap:1px;
    padding:2px 4px;
    border-radius:999px;
    background:rgba(255,255,255,.4);
    border:1px solid rgba(36,26,24,.1);
}

.site-header.header-collapsed .mobile-language-switcher .lang-switcher__btn{
    width:30px;
    height:30px;
    color:var(--color-text-soft);
}

.site-header.header-collapsed .mobile-language-switcher .lang-switcher__btn.active{
    background:transparent;
    color:var(--gold);
}

.site-header.header-collapsed .mobile-language-separator{
    color:rgba(36,26,24,.28);
    font-size:.75rem;
}

.site-header.header-collapsed .nav-toggle{
    display:block;
}

.site-header.header-collapsed .main-nav{
    position:fixed;
    left:18px;
    right:18px;
    top:96px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    padding:26px;
    background:white;
    box-shadow:0 20px 50px rgba(36,26,24,.15);
    max-height:calc(100vh - 120px);
    overflow-y:auto;
}

.site-header.header-collapsed .main-nav.is-open{
    display:flex;
}

.site-header.header-collapsed .nav-list{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
}

.site-header.header-collapsed .header-action{
    width:100%;
    margin-top:8px;
}

.site-header.header-collapsed .main-nav > .lang-switcher{
    display:none;
}

body.menu-open{
    overflow:hidden;
}
@media (max-width:820px){
    .header-mobile-controls{
        display:flex;
        align-items:center;
        gap:10px;
    }

    .mobile-language-switcher{
        display:flex;
        align-items:center;
        gap:1px;
        padding:2px 4px;
        border-radius:999px;
        background:rgba(255,255,255,.4);
        border:1px solid rgba(36,26,24,.1);
    }

    .mobile-language-switcher .lang-switcher__btn{
        width:30px;
        height:30px;
        color:var(--color-text-soft);
    }

    .mobile-language-switcher .lang-switcher__btn.active{
        background:transparent;
        color:var(--gold);
    }

    .mobile-language-separator{
        color:rgba(36,26,24,.28);
        font-size:.75rem;
    }

    .nav-toggle{
        display:block;
    }

    .main-nav{
        position:fixed;
        left:18px;
        right:18px;
        top:96px;
        display:none;
        flex-direction:column;
        align-items:stretch;
        padding:26px;
        background:white;
        box-shadow:0 20px 50px rgba(36,26,24,.15);
        max-height: calc(100vh - 120px);
        overflow-y: auto;
    }

    .main-nav.is-open{
        display:flex;
    }

    .nav-list{
        flex-direction:column;
        align-items:flex-start;
        gap:18px;
    }

    .header-action{
        width:100%;
        margin-top:8px;
    }

    .tv-hero{
        min-height:auto;
    }

    .tv-hero-inner{
        padding:150px 0 70px;
    }

    .tv-hero-copy h1{
        font-size:clamp(2.7rem,12vw,4.2rem);
    }

    .tv-actions,
    .tv-actions .btn{
        width:100%;
    }

    .tv-section,
    .tv-final-cta{
        padding:82px 0;
    }

    .tv-card-grid,
    .tv-trust-grid,
    .tv-steps,
    .site-footer .footer-grid,
    .tv-gallery-preview{
        grid-template-columns:1fr;
    }

    .tv-gallery-preview{
        grid-auto-rows:360px;
    }

    .tv-gallery-item.tall{
        grid-row:auto;
    }

    .tv-image-stack img,
    .tv-mini-card{
        width:100%;
    }

    .tv-mini-card{
        position:relative;
        right:auto;
        bottom:auto;
        margin-top:18px;
    }

    .footer-copy{
        flex-direction:column;
    }
}

@media (max-width:520px){
    .container{
        width:min(calc(100% - 32px),100%);
    }

    .logo-mark{
        width:36px;
        height:36px;
    }

    .logo{
        gap:9px;
    }

    .logo-name{
        font-size:1rem;
    }

    .logo-sub{
        font-size:.58rem;
    }

    .tv-service-card,
    .tv-quote,
    .tv-comparison article,
    .tv-steps article,
    .tv-faq-list article,
    .tv-hero-panel{
        padding:26px;
    }

    .tv-gallery-preview{
        grid-auto-rows:310px;
    }
}

/*==============================================================================
    PRICE COMPONENTS (service cards)
==============================================================================*/

/* Row que alinha preço + link CTA lado a lado */
.price-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-top:1.25rem;
    border-top:1px solid var(--color-border);
    margin-top:auto;
}

/* Valor de preço em tipografia display */
.price-value{
    font-family:var(--font-display);
    font-size:2rem;
    font-weight:400;
    color:var(--color-title);
    line-height:1;
}

/* Lista de variantes de preço (Curto / Médio / Longo) */
.price-list{
    list-style:none;
    margin:0;
    padding:0;
    padding-top:1.25rem;
    border-top:1px solid var(--color-border);
}

.price-list li{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0.45rem 0;
    border-bottom:1px solid rgba(36,26,24,.06);
    font-size:.92rem;
}

.price-list li:last-child{
    border-bottom:none;
}

.price-list li span{
    color:var(--color-text-soft);
}

.price-list li strong{
    font-family:var(--font-display);
    font-size:1.15rem;
    font-weight:400;
    color:var(--color-title);
}

/*==============================================================================
    SECTION-DARK HERO VARIANT (page-level heroes)
==============================================================================*/

/* Garante que section-dark funciona como contexto para hero-media absoluto */
.section-dark.relative,
.section.section-dark.relative{
    position:relative;
    overflow:hidden;
}

/*==============================================================================
    LANGUAGE SWITCHER (i18n UI Component)
==============================================================================*/

.lang-switcher{
    display:flex;
    align-items:center;
    gap:2px;
    padding:4px;
    border-radius:999px;
    background:rgba(36,26,24,.07);
    border:1px solid var(--color-border);
}

.lang-switcher__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:28px;
    border-radius:999px;
    border:none;
    background:transparent;
    color:var(--color-text-soft);
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.12em;
    cursor:pointer;
    transition:
        background .25s var(--ease),
        color .25s var(--ease);
}

.lang-switcher__btn:hover{
    color:var(--color-title);
}

.lang-switcher__btn.active{
    background:var(--gold);
    color:white;
}

/* Versão clara (dentro de header dark / hero) */
.site-header.is-scrolled .lang-switcher{
    background:rgba(255,255,255,.14);
    border-color:rgba(255,255,255,.18);
}

/* Responsivo — mantém alinhado com restante nav em mobile */
@media (max-width:900px){
    .lang-switcher{
        margin: 20px auto 0 !important;
        align-self: center !important;
        width: fit-content !important;
        background: rgba(182, 139, 73, 0.08) !important;
        border: 1px solid rgba(182, 139, 73, 0.2) !important;
    }
    .lang-switcher__btn {
        color: var(--color-text) !important;
    }
    .lang-switcher__btn.active {
        background: var(--gold) !important;
        color: white !important;
    }
}

/* ==========================================================================
   MOTION DESIGN SYSTEM (PREMIUM ENTRANCES)
   ========================================================================== */

/* Efeito reveal padrão: fade e translação vertical */
.reveal {
    opacity: 0;
    filter: blur(8px);
    transform: translateY(30px);
    transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.9s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform, opacity, filter;
}

.reveal-up {
    transform: translateY(40px);
}

.reveal-left {
    transform: translateX(-40px);
}

.reveal-right {
    transform: translateX(40px);
}

/* Estado ativo: revelado */
.reveal.active {
    opacity: 1;
    filter: blur(0);
    transform: translate(0);
}

/* Staggered Delay (Atrasos progressivos) */
.reveal-stagger > *:nth-child(1) { transition-delay: 0.1s; }
.reveal-stagger > *:nth-child(2) { transition-delay: 0.2s; }
.reveal-stagger > *:nth-child(3) { transition-delay: 0.3s; }
.reveal-stagger > *:nth-child(4) { transition-delay: 0.4s; }
.reveal-stagger > *:nth-child(5) { transition-delay: 0.5s; }
.reveal-stagger > *:nth-child(6) { transition-delay: 0.6s; }

/* Frosted Glass base class utility */
.frosted-glass {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}

.frosted-glass-gold {
    background: rgba(25, 25, 25, 0.65);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(212, 175, 55, 0.15);
    box-shadow: var(--shadow-lg);
}

/*==============================================================================
    COOKIE CONSENT BANNER (Premium Glassmorphic Design)
==============================================================================*/

#cookie-consent-banner {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translate(-50%, 30px);
    width: 90%;
    max-width: 850px;
    z-index: 9999;
    
    /* Glassmorphism design */
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(182, 139, 73, 0.25);
    border-radius: 14px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    
    /* Layout & Spacing */
    padding: 20px 24px;
    opacity: 0;
    pointer-events: none;
    transition: 
        opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform, opacity;
}

#cookie-consent-banner.show {
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
}

.cookie-consent-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

#cookie-consent-description {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #241a18;
    font-family: var(--font-body);
}

.cookie-policy-link {
    color: #b68b49;
    text-decoration: underline;
    font-weight: 500;
    transition: color 0.2s var(--ease);
}

.cookie-policy-link:hover {
    color: #8c652d;
}

.cookie-consent-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* Luxury Buttons */
.btn-cookie {
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 10px 20px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    border: none;
    outline: none;
}

/* Accept: Champagne Gold Gradient */
.btn-cookie-primary {
    background: linear-gradient(135deg, #d4af37 0%, #b68b49 100%);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(182, 139, 73, 0.2);
}

.btn-cookie-primary:hover {
    background: linear-gradient(135deg, #e5c158 0%, #cfa35c 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(182, 139, 73, 0.3);
}

.btn-cookie-primary:active {
    transform: translateY(0);
}

/* Reject: Elegant Gold Outline */
.btn-cookie-outline {
    background: transparent;
    color: #b68b49 !important;
    border: 1px solid rgba(182, 139, 73, 0.6);
}

.btn-cookie-outline:hover {
    background: rgba(182, 139, 73, 0.05);
    border-color: #b68b49;
    transform: translateY(-2px);
}

.btn-cookie-outline:active {
    transform: translateY(0);
}

/* Responsive style: vertically stacked for mobile */
@media (max-width: 768px) {
    #cookie-consent-banner {
        padding: 20px;
        bottom: 15px;
    }
    
    .cookie-consent-content {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }
    
    #cookie-consent-description {
        text-align: center;
        font-size: 0.85rem;
    }
    
    .cookie-consent-actions {
        flex-direction: column-reverse;
        align-items: stretch;
        gap: 8px;
    }
    
    .btn-cookie {
        width: 100%;
        text-align: center;
        padding: 12px;
    }
}

/* ==========================================================================
   FOOTER LEGAL & LIVRO DE RECLAMAÇÕES
   ========================================================================== */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 24px 0;
    background: rgba(18, 14, 13, 0.95);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
}

.footer-bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-copy-block p {
    margin: 0;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.5;
}

.footer-copy-block .footer-nipc {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.5);
    margin-top: 2px;
}

.footer-legal-links {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.footer-legal-links a {
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    font-size: 0.82rem;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.footer-legal-links a:hover {
    color: var(--gold, #b68b49);
    text-decoration: underline;
}

.footer-legal-links .legal-sep {
    color: rgba(255, 255, 255, 0.25);
    font-size: 0.7rem;
}

.livro-reclamacoes-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(182, 139, 73, 0.35);
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.25s ease;
    line-height: 1.2;
}

.livro-reclamacoes-btn:hover {
    background: rgba(182, 139, 73, 0.18);
    border-color: var(--gold, #b68b49);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.livro-reclamacoes-btn:focus-visible {
    outline: 2px solid var(--gold, #b68b49);
    outline-offset: 2px;
}

@media (max-width: 992px) {
    .footer-bottom-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 16px;
    }

    .footer-copy-block {
        text-align: center;
    }

    .footer-legal-links {
        justify-content: center;
    text-decoration: underline;
    font-weight: 500;
    transition: color 0.2s var(--ease);
}

.cookie-policy-link:hover {
    color: #8c652d;
}

.cookie-consent-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* Luxury Buttons */
.btn-cookie {
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 10px 20px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    border: none;
    outline: none;
}

/* Accept: Champagne Gold Gradient */
.btn-cookie-primary {
    background: linear-gradient(135deg, #d4af37 0%, #b68b49 100%);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(182, 139, 73, 0.2);
}

.btn-cookie-primary:hover {
    background: linear-gradient(135deg, #e5c158 0%, #cfa35c 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(182, 139, 73, 0.3);
}

.btn-cookie-primary:active {
    transform: translateY(0);
}

/* Reject: Elegant Gold Outline */
.btn-cookie-outline {
    background: transparent;
    color: #b68b49 !important;
    border: 1px solid rgba(182, 139, 73, 0.6);
}

.btn-cookie-outline:hover {
    background: rgba(182, 139, 73, 0.05);
    border-color: #b68b49;
    transform: translateY(-2px);
}

.btn-cookie-outline:active {
    transform: translateY(0);
}

/* Responsive style: vertically stacked for mobile */
@media (max-width: 768px) {
    #cookie-consent-banner {
        padding: 20px;
        bottom: 15px;
    }
    
    .cookie-consent-content {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }
    
    #cookie-consent-description {
        text-align: center;
        font-size: 0.85rem;
    }
    
    .cookie-consent-actions {
        flex-direction: column-reverse;
        align-items: stretch;
        gap: 8px;
    }
    
    .btn-cookie {
        width: 100%;
        text-align: center;
        padding: 12px;
    }
}

/* ==========================================================================
   FOOTER LEGAL & LIVRO DE RECLAMAÇÕES
   ========================================================================== */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 24px 0;
    background: rgba(18, 14, 13, 0.95);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
}

.footer-bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-copy-block p {
    margin: 0;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.5;
}

.footer-copy-block .footer-nipc {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.5);
    margin-top: 2px;
}

.footer-legal-links {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.footer-legal-links a {
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    font-size: 0.82rem;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.footer-legal-links a:hover {
    color: var(--gold, #b68b49);
    text-decoration: underline;
}

.footer-legal-links .legal-sep {
    color: rgba(255, 255, 255, 0.25);
    font-size: 0.7rem;
}

.livro-reclamacoes-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(182, 139, 73, 0.35);
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.25s ease;
    line-height: 1.2;
}

.livro-reclamacoes-btn:hover {
    background: rgba(182, 139, 73, 0.18);
    border-color: var(--gold, #b68b49);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.livro-reclamacoes-btn:focus-visible {
    outline: 2px solid var(--gold, #b68b49);
    outline-offset: 2px;
}

@media (max-width: 992px) {
    .footer-bottom-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 16px;
    }

    .footer-copy-block {
        text-align: center;
    }

    .footer-legal-links {
        justify-content: center;
    }
}

/* ==========================================================================
   TV STUDIO LUXURY LIGHTBOX
   ========================================================================== */
html.tv-lightbox-open, body.tv-lightbox-open {
    overflow: hidden !important;
}

.tv-lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.tv-lightbox-overlay.active {
    opacity: 1;
    visibility: visible;
}

.tv-lightbox-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(8, 8, 10, 0.94);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

.tv-lightbox-container {
    position: relative;
    z-index: 10;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    box-sizing: border-box;
}

.tv-lightbox-content-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 90vw;
    max-height: 94vh;
    gap: 14px;
}

.tv-lightbox-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-height: 72vh;
    max-width: 88vw;
    user-select: none;
}

.tv-lightbox-img {
    max-width: 88vw;
    max-height: 70vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 12px;
    box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(212, 175, 55, 0.2);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.tv-lightbox-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.tv-lightbox-spinner {
    width: 42px;
    height: 42px;
    border: 3px solid rgba(212, 175, 55, 0.2);
    border-top-color: var(--gold, #d4af37);
    border-radius: 50%;
    animation: tv-lb-spin 0.8s linear infinite;
}

@keyframes tv-lb-spin {
    to { transform: rotate(360deg); }
}

.tv-lightbox-btn {
    position: absolute;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #ffffff;
    border-radius: 50%;
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    z-index: 25;
    backdrop-filter: blur(10px);
}

.tv-lightbox-btn:hover {
    background: var(--gold, #d4af37);
    border-color: var(--gold, #d4af37);
    color: #0d0d0d;
    transform: scale(1.08);
}

.tv-lightbox-close {
    top: 1.5rem;
    right: 1.5rem;
}

.tv-lightbox-prev {
    left: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
}

.tv-lightbox-prev:hover {
    transform: translateY(-50%) scale(1.08);
}

.tv-lightbox-next {
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
}

.tv-lightbox-next:hover {
    transform: translateY(-50%) scale(1.08);
}

.tv-lightbox-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: rgba(18, 18, 22, 0.85);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(212, 175, 55, 0.28);
    border-radius: 16px;
    padding: 0.75rem 1.6rem;
    width: auto;
    max-width: 680px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.55);
}

.tv-lightbox-cat {
    display: inline-block;
    text-transform: uppercase;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    color: var(--gold, #d4af37);
    font-weight: 700;
    margin-bottom: 0.2rem;
}

.tv-lightbox-title {
    font-family: var(--font-display, 'Cinzel', serif);
    font-size: 1.15rem;
    color: #ffffff;
    margin: 0 0 0.25rem;
    font-weight: 600;
    line-height: 1.3;
}

.tv-lightbox-desc {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.82);
    margin: 0 0 0.35rem;
    line-height: 1.45;
}

.tv-lightbox-counter {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gold, #d4af37);
    background: rgba(212, 175, 55, 0.12);
    padding: 0.18rem 0.65rem;
    border-radius: 20px;
    border: 1px solid rgba(212, 175, 55, 0.25);
    letter-spacing: 0.05em;
}

.gallery-item,
.tv-gallery-item,
.blog-body-content img,
.blog-detail-content img,
.blog-gallery-section img,
#blogPostCarousel img,
article img {
    cursor: zoom-in !important;
}

@media (max-width: 768px) {
    .tv-lightbox-prev, .tv-lightbox-next {
        width: 42px;
        height: 42px;
    }
    .tv-lightbox-prev { left: 0.5rem; }
    .tv-lightbox-next { right: 0.5rem; }
    .tv-lightbox-close { top: 0.75rem; right: 0.75rem; width: 42px; height: 42px; }
    .tv-lightbox-stage { max-height: 60vh; }
    .tv-lightbox-img { max-height: 58vh; max-width: 92vw; }
    .tv-lightbox-footer { padding: 0.6rem 1rem; max-width: 90vw; }
    .tv-lightbox-title { font-size: 1rem; }
    .tv-lightbox-desc { font-size: 0.78rem; }
}
