/* ==========================================================
   RESET
========================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Inter',sans-serif;

    background:#fff;

    color:#111;

    overflow-x:hidden;

}


/* ==========================================================
   HERO
========================================================== */

.hero{

    position:relative;

    width:100%;

    height:100vh;

    overflow:hidden;

}


/* ==========================================================
   HERO BACKGROUND
========================================================== */

.background{

    position:absolute;

    inset:0;

    z-index:1;

}

.background img{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    opacity:0;

    transition:opacity 2.5s ease;

    animation:zoom 18s linear infinite;

}

.background img.active{

    opacity:1;

}

.overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        rgba(0,0,0,.30),

        rgba(0,0,0,.72)

    );

    z-index:2;

}

@keyframes zoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.08);

    }

}


/* ==========================================================
   HERO CONTENT
========================================================== */

.hero-content{

    position:relative;

    z-index:10;

    height:100%;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:white;

    padding:40px;

}

.container{

    max-width:950px;

}

.hero h1{

    font-family:"Cormorant Garamond",serif;

    font-size:84px;

    font-weight:600;

    letter-spacing:6px;

    margin-bottom:20px;

}

.hero h2{

    font-family:"Cormorant Garamond",serif;

    font-size:42px;

    font-weight:400;

    margin-bottom:35px;

}

.tagline{

    font-size:22px;

    line-height:1.8;

    max-width:900px;

    margin:auto;

    margin-bottom:25px;

}

.word{

    height:35px;

    font-size:18px;

    letter-spacing:5px;

    margin-bottom:50px;

    opacity:.85;

}


/* ==========================================================
   BUTTONS
========================================================== */

.buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

.button{

    display:inline-block;

    padding:18px 42px;

    border:1px solid rgba(255,255,255,.9);

    color:white;

    text-decoration:none;

    letter-spacing:3px;

    text-transform:uppercase;

    transition:.35s;

}

.button:hover{

    background:white;

    color:black;

}


/* ==========================================================
   PHILOSOPHY
========================================================== */

.philosophy{

    background:white;

    position:relative;

    z-index:100;

    padding:140px 30px;

}

.content{

    max-width:900px;

    margin:auto;

}

.section-subtitle{

    display:block;

    font-size:13px;

    letter-spacing:5px;

    text-transform:uppercase;

    color:#888;

    margin-bottom:20px;

}

.philosophy h2{

    font-family:"Cormorant Garamond",serif;

    font-size:58px;

    line-height:1.15;

    font-weight:500;

    margin-bottom:35px;

}

.divider{

    width:90px;

    height:2px;

    background:#111;

    margin-bottom:55px;

}

.philosophy-text{

    max-width:760px;

}

.philosophy-text p{

    font-size:20px;

    line-height:2;

    color:#333;

    margin-bottom:30px;

}

blockquote{

    margin:90px 0;

    padding-left:35px;

    border-left:3px solid black;

    font-family:"Cormorant Garamond",serif;

    font-size:44px;

    line-height:1.45;

    font-style:italic;

}

.signature{

    margin-top:80px;

}

.signature h3{

    font-family:"Cormorant Garamond",serif;

    font-size:34px;

    margin-bottom:8px;

}

.signature span{

    font-size:13px;

    letter-spacing:2px;

    text-transform:uppercase;

    color:#777;

}


/* ==========================================================
   FOOTER
========================================================== */

.footer{

    background:#111;

    color:#f5f5f5;

    padding:90px 8% 35px;

}

.footer-container{

    display:grid;

    grid-template-columns:
        2fr
        1fr
        1fr
        1fr;

    gap:70px;

    max-width:1600px;

    margin:auto;

}

.footer-column h3{

    font-family:"Cormorant Garamond",serif;

    font-size:42px;

    font-weight:500;

    margin-bottom:25px;

}

.footer-column h4{

    font-family:"Cormorant Garamond",serif;

    font-size:26px;

    font-weight:500;

    margin-bottom:25px;

    color:#fff;

}

.footer-column p{

    color:#bfbfbf;

    line-height:1.9;

    margin-bottom:18px;

    font-size:16px;

}

.footer-column ul{

    list-style:none;

    padding:0;

    margin:0;

}

.footer-column li{

    margin-bottom:16px;

}

.footer-column a{

    color:#bfbfbf;

    text-decoration:none;

    transition:.3s;

}

.footer-column a:hover{

    color:#fff;

    padding-left:8px;

}

/* ===========================
   RECONOCIMIENTO
=========================== */

.footer-column ul li{

    line-height:1.8;

}

/* ===========================
   PARTE INFERIOR
=========================== */

.footer-bottom{

    margin-top:70px;

    padding-top:30px;

    border-top:1px solid rgba(255,255,255,.08);

    display:flex;

    justify-content:space-between;

    align-items:center;

    flex-wrap:wrap;

    gap:20px;

    color:#8d8d8d;

    font-size:14px;

    letter-spacing:1px;

}

.footer-bottom a{

    color:#8d8d8d;

    text-decoration:none;

    transition:.3s;

}

.footer-bottom a:hover{

    color:#fff;

}

/* ===========================
   RESPONSIVE
=========================== */

@media(max-width:1100px){

.footer-container{

grid-template-columns:1fr 1fr;

gap:50px;

}

}

@media(max-width:768px){

.footer{

padding:70px 30px 30px;

}

.footer-container{

grid-template-columns:1fr;

gap:45px;

}

.footer-column h3{

font-size:34px;

}

.footer-column h4{

font-size:24px;

}

.footer-bottom{

flex-direction:column;

text-align:center;

}

}
.stars-gold{

    color:#C8A75B;

}


/* ==========================================================
   RESPONSIVE
========================================================== */

@media(max-width:900px){

    .hero h1{

        font-size:50px;

    }

    .hero h2{

        font-size:30px;

    }

    .tagline{

        font-size:18px;

    }

    .philosophy{

        padding:90px 25px;

    }

    .philosophy h2{

        font-size:42px;

    }

    .philosophy-text p{

        font-size:18px;

    }

    blockquote{

        font-size:30px;

        padding-left:20px;

    }

}

/* ==========================================================
   SERVICIOS
========================================================== */

.services{

    background:#f8f6f2;

    color:#222;

    padding:140px 40px;

}

.service-list{

    margin-top:80px;

}

.service-item{

    display:grid;

    grid-template-columns:120px 1fr;

    gap:50px;

    padding:60px 0;

    border-bottom:1px solid rgba(0,0,0,.12);

    transition:.45s;

}

.service-item:hover{

    transform:translateX(12px);

}

.service-number{

    font-family:"Cormorant Garamond",serif;

    font-size:72px;

    color:#cfcfcf;

    font-weight:600;

    line-height:1;

}

.service-info h3{

    font-family:"Cormorant Garamond",serif;

    font-size:40px;

    margin-bottom:18px;

    font-weight:500;

}

.service-info p{

    max-width:760px;

    color:#555;

    line-height:1.9;

    font-size:18px;

}

@media(max-width:900px){

.service-item{

grid-template-columns:1fr;

gap:20px;

}

.service-number{

font-size:48px;

}

.service-info h3{

font-size:30px;

}

.service-info p{

font-size:17px;

}

}

/* ==========================================================
   EDITORIAL
========================================================== */

.editorial{

    position:relative;

    min-height:170vh;

    background:#faf9f7;

    overflow:hidden;

    padding:120px 8%;

}

.editorial-gallery{

    display:flex;

    justify-content:center;

    align-items:flex-start;

    gap:3vw;

    margin-bottom:120px;

}

.editorial-photo{

    overflow:hidden;

    border-radius:4px;

    box-shadow:
        0 25px 60px rgba(0,0,0,.12);

    will-change:transform;

}

.photo-left{

    width:24%;

    margin-top:180px;

}

.photo-center{

    width:32%;

    margin-top:0;

}

.photo-right{

    width:24%;

    margin-top:260px;

}

.editorial-photo img{

    display:block;

    width:100%;

    height:auto;

}

.editorial-text{

    text-align:center;

    max-width:900px;

    margin:auto;

}

.editorial-text h2{

    font-family:"Cormorant Garamond",serif;

    font-size:72px;

    font-weight:500;

    margin-bottom:30px;

}

.editorial-text p{

    font-size:22px;

    color:#555;

    line-height:1.9;

    margin-bottom:50px;

}

.editorial .button{

    border:1px solid #111;

    color:#111;

}

.editorial .button:hover{

    background:#111;

    color:white;

}

@media(max-width:900px){

.editorial{

padding:80px 30px;

}

.editorial-gallery{

flex-direction:column;

gap:40px;

margin-bottom:80px;

}

.photo-left,
.photo-center,
.photo-right{

width:100%;

margin-top:0;

}

.editorial-text h2{

font-size:42px;

}

.editorial-text p{

font-size:18px;

}

}

/* ==========================================================
   REVIEWS
========================================================== */

.reviews{

    background:#faf9f7;

    color:#222;

    padding:160px 40px;

}

.reviews .content{

    max-width:1100px;

    margin:auto;

    text-align:center;

}

.reviews-slider{

    position:relative;

    margin:90px auto 60px;

    min-height:320px;

}

.review{

    position:absolute;

    inset:0;

    opacity:0;

    transform:translateY(30px);

    transition:
        opacity .8s ease,
        transform .8s ease;

    pointer-events:none;

}

.review.active{

    opacity:1;

    transform:translateY(0);

    pointer-events:auto;

}

.stars{

    font-size:28px;

    letter-spacing:8px;

    color:#c8a75b;

    margin-bottom:40px;

}

.review p{

    font-family:"Cormorant Garamond",serif;

    font-size:42px;

    line-height:1.55;

    font-weight:400;

    max-width:900px;

    margin:auto;

    color:#111;

}

.review h4{

    margin-top:55px;

    font-size:22px;

    font-weight:500;

    letter-spacing:2px;

    text-transform:uppercase;

}

.review span{

    display:block;

    margin-top:12px;

    font-size:14px;

    letter-spacing:3px;

    color:#888;

    text-transform:uppercase;

}

/* ---------------------------------- */

.review-dots{

    display:flex;

    justify-content:center;

    gap:14px;

    margin-top:40px;

}

.dot{

    width:10px;

    height:10px;

    border-radius:50%;

    background:#d5d5d5;

    transition:.3s;

    cursor:pointer;

}

.dot.active{

    background:#111;

    transform:scale(1.3);

}

/* ---------------------------------- */

.google-link{

    display:inline-block;

    margin-top:70px;

    text-decoration:none;

    color:#111;

    letter-spacing:3px;

    text-transform:uppercase;

    font-size:14px;

    border-bottom:1px solid transparent;

    transition:.35s;

}

.google-link:hover{

    border-color:#111;

}

/* ---------------------------------- */

@media(max-width:900px){

.reviews{

padding:100px 25px;

}

.review p{

font-size:28px;

}

.review h4{

font-size:18px;

}

.stars{

font-size:22px;

letter-spacing:4px;

}

}

/* ==========================================================
   EDITORIAL FEED
========================================================== */

.editorial-feed{

    background:#ffffff;

    padding:140px 40px;

    text-align:center;

}

.editorial-feed h2{

    font-family:"Cormorant Garamond",serif;

    font-size:64px;

    font-weight:500;

    margin-bottom:20px;

    color:#111;

}

.editorial-feed p{

    max-width:700px;

    margin:0 auto 70px;

    color:#666;

    font-size:20px;

    line-height:1.8;

}

.feed-slider{

    position:relative;

    max-width:1300px;

    margin:auto;

    min-height:700px;

}

.feed-page{

    position:absolute;

    inset:0;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

    opacity:0;

    visibility:hidden;

    transform:translateY(40px);

    transition:

        opacity .8s ease,

        transform .8s ease,

        visibility .8s;

}

.feed-page.active{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.feed-page img{

    width:100%;

    aspect-ratio:4/5;

    object-fit:cover;

    border-radius:10px;

    cursor:pointer;

    transition:

        transform .45s ease,

        filter .45s ease,

        box-shadow .45s ease;

    box-shadow:

        0 20px 50px rgba(0,0,0,.08);

}

.feed-page img:hover{

    transform:translateY(-10px) scale(1.02);

    filter:brightness(.92);

    box-shadow:

        0 35px 70px rgba(0,0,0,.18);

}

/* -------------------------------- */

.instagram-button{

    display:inline-block;

    margin-top:80px;

    padding:18px 38px;

    border:1px solid #111;

    color:#111;

    text-decoration:none;

    text-transform:uppercase;

    letter-spacing:3px;

    font-size:14px;

    transition:.35s;

}

.instagram-button:hover{

    background:#111;

    color:#fff;

}

/* -------------------------------- */

@media(max-width:1000px){

.feed-slider{

min-height:520px;

}

.feed-page{

gap:18px;

}

}

@media(max-width:768px){

.editorial-feed{

padding:90px 25px;

}

.editorial-feed h2{

font-size:42px;

}

.editorial-feed p{

font-size:17px;

margin-bottom:45px;

}

.feed-slider{

min-height:auto;

}

.feed-page{

position:relative;

display:none;

grid-template-columns:1fr;

gap:20px;

opacity:1;

visibility:visible;

transform:none;

}

.feed-page.active{

display:grid;

}

.feed-page img{

aspect-ratio:4/5;

}

.instagram-button{

margin-top:50px;

}

}

/* ==========================================================
   NAVBAR
========================================================== */

.navbar{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:9999;

    padding:20px 0;

    background:rgba(18,18,18,.18);

    backdrop-filter:blur(8px) saturate(140%);

    -webkit-backdrop-filter:blur(8px) saturate(140%);

    border-bottom:1px solid rgba(255,255,255,.06);

    transition:
        background .35s ease,
        backdrop-filter .35s ease,
        border-color .35s ease;

}

.navbar:hover{

    background:rgba(18,18,18,.24);

}

/* ==========================================================
   CONTENEDOR
========================================================== */

.nav-container{

    max-width:1500px;

    margin:auto;

    padding:0 60px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

/* ==========================================================
   LOGO
========================================================== */

.logo{

    font-family:"Cormorant Garamond",serif;

    font-size:34px;

    font-weight:600;

    letter-spacing:3px;

    text-decoration:none;

    color:#fff;

    transition:opacity .3s ease;

}

.logo:hover{

    opacity:.8;

}

/* ==========================================================
   MENÚ
========================================================== */

nav{

    display:flex;

    gap:42px;

}

nav a{

    color:#fff;

    text-decoration:none;

    font-size:14px;

    font-weight:400;

    letter-spacing:2px;

    text-transform:uppercase;

    position:relative;

    transition:
        opacity .3s ease,
        color .3s ease;

}

nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-7px;

    width:0;

    height:1px;

    background:rgba(255,255,255,.9);

    transition:width .35s ease;

}

nav a:hover{

    opacity:.8;

}

nav a:hover::after{

    width:100%;

}

/* ==========================================================
   BOTÓN
========================================================== */

.nav-button{

    padding:13px 28px;

    border:1px solid rgba(255,255,255,.75);

    border-radius:2px;

    color:#fff;

    text-decoration:none;

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:13px;

    transition:
        background .35s ease,
        color .35s ease,
        border-color .35s ease;

}

.nav-button:hover{

    background:#fff;

    border-color:#fff;

    color:#111;

}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media(max-width:1050px){

    nav{

        display:none;

    }

    .nav-container{

        padding:0 25px;

    }

    .logo{

        font-size:28px;

    }

    .nav-button{

        padding:12px 22px;

        font-size:12px;

    }

}