/*==================================================
                GOOGLE FONTS
==================================================*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@300;400;500;600;700&display=swap');

/*==================================================
                RESET
==================================================*/

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

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Manrope',sans-serif;
    background:#f8f4ef;
    color:#2b2b2b;
    overflow-x:hidden;
    line-height:1.7;
}

img{
    width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

button,
input,
textarea{
    font-family:inherit;
    outline:none;
    border:none;
}

button{
    cursor:pointer;
}

/*==================================================
                ROOT VARIABLES
==================================================*/

:root{

    --primary:#b08d57;
    --primary-dark:#8d6d3d;

    --secondary:#1d1d1d;

    --white:#ffffff;

    --light:#f8f4ef;

    --gray:#777777;

    --border:#e6ddd3;

    --shadow:0 15px 40px rgba(0,0,0,.08);

    --shadow-hover:0 25px 60px rgba(0,0,0,.15);

    --radius:18px;

    --transition:.4s ease;

    --max-width:1280px;

}

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

h1,
h2,
h3,
h4{
    font-family:'Cormorant Garamond',serif;
    font-weight:600;
    line-height:1.1;
    color:#222;
}

h1{
    font-size:clamp(3.5rem,7vw,6.8rem);
}

h2{
    font-size:clamp(2.4rem,5vw,4.2rem);
}

h3{
    font-size:1.8rem;
}

p{
    color:var(--gray);
    font-size:1rem;
}

.section{

    padding:120px 0;

    position:relative;

}

.container{

    width:min(92%,var(--max-width));

    margin:auto;

}

/*==================================================
                BUTTONS
==================================================*/

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:12px;

    padding:16px 38px;

    border-radius:100px;

    font-weight:600;

    transition:var(--transition);

    cursor:pointer;

}

.btn-primary{

    background:var(--primary);

    color:#fff;

}

.btn-primary:hover{

    background:var(--primary-dark);

    transform:translateY(-4px);

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

}

.btn-outline{

    border:2px solid #fff;

    color:#fff;

}

.btn-outline:hover{

    background:#fff;

    color:#222;

    transform:translateY(-4px);

}

/*==================================================
            SECTION HEADING
==================================================*/

.section-heading{

    max-width:720px;

    margin:0 auto 70px;

    text-align:center;

}

.section-tag{

    display:inline-block;

    color:var(--primary);

    font-size:.85rem;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:18px;

    font-weight:700;

}

.section-heading h2{

    margin-bottom:20px;

}

.section-heading p{

    max-width:620px;

    margin:auto;

}

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

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#ece4db;

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary-dark);

}

/*==================================================
                UTILITIES
==================================================*/

.text-center{

    text-align:center;

}

.mt-5{

    margin-top:50px;

}

.mb-5{

    margin-bottom:50px;

}

.hidden{

    opacity:0;

    visibility:hidden;

}

.show{

    opacity:1;

    visibility:visible;

}

.reveal-left,
.reveal-right,
.reveal-up{

    opacity:0;

    transition:1s ease;

}

/*==================================================
        PART 4A.2.1
        LOADER • CURSOR • TOP BUTTON
==================================================*/

/*========== LOADER ==========*/

.loader{
    position:fixed;
    inset:0;
    background:#f8f4ef;
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:99999;
    transition:.8s ease;
}

.loader.hide{
    opacity:0;
    visibility:hidden;
}

.loader-circle{
    width:70px;
    height:70px;
    border:4px solid rgba(176,141,87,.2);
    border-top:4px solid var(--primary);
    border-radius:50%;
    animation:loaderSpin 1s linear infinite;
}

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

.cursor,
.cursor2{
    position:fixed;
    top:0;
    left:0;
    pointer-events:none;
    z-index:9999;
    transition:
        transform .15s ease,
        width .25s ease,
        height .25s ease,
        background .25s ease,
        border .25s ease;
}

.cursor{
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--primary);
    transform:translate(-50%,-50%);
}

.cursor2{
    width:42px;
    height:42px;
    border-radius:50%;
    border:1px solid rgba(176,141,87,.6);
    transform:translate(-50%,-50%);
}

.cursor.expand{
    width:16px;
    height:16px;
}

.cursor2.expand{
    width:70px;
    height:70px;
    background:rgba(176,141,87,.12);
}

/* Hide cursor on touch devices */

@media (hover:none){

    .cursor,
    .cursor2{
        display:none;
    }

}

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

.top-btn{

    position:fixed;

    right:35px;

    bottom:35px;

    width:58px;

    height:58px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    box-shadow:0 12px 35px rgba(0,0,0,.18);

    opacity:0;

    visibility:hidden;

    transform:translateY(25px);

    transition:.4s ease;

    z-index:999;

}

.top-btn.show{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.top-btn:hover{

    background:var(--primary-dark);

    transform:translateY(-6px);

    box-shadow:0 18px 40px rgba(0,0,0,.22);

}

.top-btn i{

    font-size:18px;

}

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

.glass{

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

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

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

}

/*========== HELPER CLASSES ==========*/

.radius{
    border-radius:var(--radius);
}

.shadow{
    box-shadow:var(--shadow);
}

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

.overflow-hidden{
    overflow:hidden;
}

.position-relative{
    position:relative;
}

/*========== LOADER ANIMATION ==========*/

@keyframes loaderSpin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

/*==================================================
        PART 4A.2.2
        FLOATING SHAPES & DECORATIONS
==================================================*/

/*========== GLOBAL DECORATIVE SHAPES ==========*/

.hero-shape,
.circle-decoration{
    position:absolute;
    pointer-events:none;
    z-index:1;
}

.shape-1{
    width:320px;
    height:320px;
    border-radius:50%;
    background:rgba(176,141,87,.08);
    top:-80px;
    right:-80px;
    animation:floatOne 8s ease-in-out infinite;
}

.shape-2{
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(255,255,255,.06);
    bottom:80px;
    left:-70px;
    animation:floatTwo 10s ease-in-out infinite;
}

.circle-decoration{
    width:120px;
    height:120px;
    border:2px solid rgba(176,141,87,.25);
    border-radius:50%;
    right:-40px;
    bottom:20px;
    animation:rotateCircle 18s linear infinite;
}

/*========== SECTION BACKGROUND BLOBS ==========*/

.section::before{
    content:"";
    position:absolute;
    width:260px;
    height:260px;
    background:rgba(176,141,87,.04);
    border-radius:50%;
    filter:blur(30px);
    top:60px;
    left:-120px;
    z-index:-1;
}

.section::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    background:rgba(176,141,87,.05);
    border-radius:50%;
    filter:blur(35px);
    right:-100px;
    bottom:60px;
    z-index:-1;
}

/*========== HERO DECORATIVE LINES ==========*/

.hero::before{
    content:"";
    position:absolute;
    width:2px;
    height:120px;
    background:rgba(255,255,255,.25);
    left:80px;
    top:50%;
    transform:translateY(-50%);
}

.hero::after{
    content:"";
    position:absolute;
    width:120px;
    height:2px;
    background:rgba(255,255,255,.25);
    left:22px;
    top:50%;
}

/*========== IMAGE FRAME DECORATION ==========*/

.about-main-image,
.expertise-image,
.portfolio-item{
    position:relative;
    overflow:hidden;
}

.about-main-image::before,
.expertise-image::before,
.portfolio-item::before{

    content:"";

    position:absolute;

    inset:14px;

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

    opacity:0;

    transition:.45s ease;

    z-index:2;

}

.about-main-image:hover::before,
.expertise-card:hover .expertise-image::before,
.portfolio-item:hover::before{

    opacity:1;

}

/*========== GOLD CORNER ACCENT ==========*/

.about-main-image::after,
.portfolio-item::after{

    content:"";

    position:absolute;

    width:70px;

    height:70px;

    border-top:3px solid var(--primary);

    border-left:3px solid var(--primary);

    top:20px;

    left:20px;

    opacity:.8;

}

/*========== FLOATING CARD EFFECT ==========*/

.floating-card{

    animation:floatingCard 5s ease-in-out infinite;

}

/*========== IMAGE HOVER ==========*/

.about-main-image img,
.about-small-image img,
.expertise-image img,
.portfolio-item img{

    transition:transform .8s ease;

}

.about-main-image:hover img,
.about-small-image:hover img,
.expertise-card:hover img,
.portfolio-item:hover img{

    transform:scale(1.08);

}

/*==================================================
        PART 4A.2.3
        GLOBAL ANIMATION KEYFRAMES
==================================================*/

/*========== FADE UP ==========*/

@keyframes fadeUp{

    0%{
        opacity:0;
        transform:translateY(60px);
    }

    100%{
        opacity:1;
        transform:translateY(0);
    }

}

/*========== FADE LEFT ==========*/

@keyframes fadeLeft{

    0%{
        opacity:0;
        transform:translateX(-70px);
    }

    100%{
        opacity:1;
        transform:translateX(0);
    }

}

/*========== FADE RIGHT ==========*/

@keyframes fadeRight{

    0%{
        opacity:0;
        transform:translateX(70px);
    }

    100%{
        opacity:1;
        transform:translateX(0);
    }

}

/*========== ZOOM IN ==========*/

@keyframes zoomIn{

    0%{
        opacity:0;
        transform:scale(.85);
    }

    100%{
        opacity:1;
        transform:scale(1);
    }

}

/*========== FLOATING CIRCLE ==========*/

@keyframes floatOne{

    0%,
    100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-35px);
    }

}

/*========== FLOATING SHAPE ==========*/

@keyframes floatTwo{

    0%,
    100%{
        transform:translateY(0) rotate(0deg);
    }

    50%{
        transform:translateY(30px) rotate(10deg);
    }

}

/*========== FLOATING CARD ==========*/

@keyframes floatingCard{

    0%,
    100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-18px);
    }

}

/*========== PULSE ==========*/

@keyframes pulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.08);
    }

    100%{
        transform:scale(1);
    }

}

/*========== ROTATE ==========*/

@keyframes rotateCircle{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

/*========== HERO IMAGE SCALE ==========*/

@keyframes heroZoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.12);

    }

}

/*========== HERO FADE ==========*/

@keyframes heroFade{

    from{

        opacity:0;

    }

    to{

        opacity:1;

    }

}

/*========== BUTTON SHINE ==========*/

@keyframes shine{

    from{

        left:-120%;

    }

    to{

        left:120%;

    }

}

/*========== BOUNCE ==========*/

@keyframes bounce{

    0%,
    100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-12px);

    }

}

/*========== SCROLL MOUSE ==========*/

@keyframes wheel{

    0%{

        transform:translateY(0);

        opacity:1;

    }

    100%{

        transform:translateY(14px);

        opacity:0;

    }

}

/*========== BORDER GLOW ==========*/

@keyframes glow{

    0%{

        box-shadow:0 0 0 rgba(176,141,87,0);

    }

    50%{

        box-shadow:0 0 30px rgba(176,141,87,.35);

    }

    100%{

        box-shadow:0 0 0 rgba(176,141,87,0);

    }

}

/*========== CARD LIFT ==========*/

@keyframes cardLift{

    from{

        transform:translateY(20px);

        opacity:0;

    }

    to{

        transform:translateY(0);

        opacity:1;

    }

}

/*========== ROTATE ICON ==========*/

@keyframes iconSpin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

/*========== FADE SCALE ==========*/

@keyframes fadeScale{

    from{

        opacity:0;

        transform:scale(.9);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}

/*==================================================
        SCROLL REVEAL STATES
==================================================*/

.reveal-up,
.reveal-left,
.reveal-right{

    opacity:0;

    transition:1s ease;

}

.reveal-up.active{

    opacity:1;

    transform:translateY(0);

    animation:fadeUp 1s forwards;

}

.reveal-left.active{

    opacity:1;

    transform:translateX(0);

    animation:fadeLeft 1s forwards;

}

.reveal-right.active{

    opacity:1;

    transform:translateX(0);

    animation:fadeRight 1s forwards;

}

/*==================================================
                PART 4B.1
        NAVBAR + MOBILE NAVIGATION
==================================================*/

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

#header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;
    transition:.4s ease;
}

#header.scrolled{

    background:rgba(248,244,239,.92);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    box-shadow:0 10px 35px rgba(0,0,0,.08);

}

#header.scrolled .logo{
    color:#222;
}

#header.scrolled .nav-links a{
    color:#222;
}

/*==========================
        NAVBAR
===========================*/

.navbar{

    max-width:1280px;

    margin:auto;

    height:90px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    padding:0 25px;

}

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

.logo{

    font-family:'Cormorant Garamond',serif;

    font-size:2rem;

    font-weight:700;

    color:#fff;

    letter-spacing:1px;

}

.logo span{

    color:var(--primary);

    font-size:2.3rem;

}

/*==========================
        NAV LINKS
===========================*/

.nav-links{

    display:flex;

    align-items:center;

    gap:40px;

}

.nav-links a{

    position:relative;

    font-size:.95rem;

    font-weight:600;

    transition:.35s;

    color: #fff;

}

.nav-links a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    background:var(--primary);

    transition:.35s;

}

.nav-links a:hover{

    color:var(--primary);

}

.nav-links a:hover::after{

    width:100%;

}

/*==========================
        RIGHT AREA
===========================*/

.nav-right{

    display:flex;

    align-items:center;

    gap:20px;

}

.quote-btn{

    background:var(--primary);

    color:#fff;

    padding:14px 28px;

    border-radius:999px;

    font-size:.92rem;

    font-weight:600;

    transition:.35s;

}

.quote-btn:hover{

    background:var(--primary-dark);

    transform:translateY(-3px);

}

/*==========================
        HAMBURGER
===========================*/

.menu-btn{

    width:48px;

    height:48px;

    display:none;

    flex-direction:column;

    justify-content:center;

    gap:6px;

    cursor:pointer;

}

.menu-btn span{

    width:28px;

    height:2px;

    background:#222;

    transition:.35s;

}

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

.mobile-menu{

    position:fixed;

    top:0;

    right:-100%;

    width:320px;

    height:100vh;

    background:#fff;

    padding:90px 40px;

    transition:.45s ease;

    z-index:2000;

    box-shadow:-15px 0 40px rgba(0,0,0,.12);

}

.mobile-menu.active{

    right:0;

}

.mobile-menu ul{

    display:flex;

    flex-direction:column;

    gap:25px;

}

.mobile-menu a{

    font-size:1.1rem;

    font-weight:600;

    transition:.3s;

}

.mobile-menu a:hover{

    color:var(--primary);

    padding-left:8px;

}

.close-menu{

    position:absolute;

    top:30px;

    right:30px;

    width:45px;

    height:45px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#f4efe9;

    cursor:pointer;

    transition:.3s;

}

.close-menu:hover{

    background:var(--primary);

    color:#fff;

}

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

@media(max-width:992px){

    .nav-links{

        display:none;

    }

    .quote-btn{

        display:none;

    }

    .menu-btn{

        display:flex;

    }

}

@media(max-width:576px){

    .navbar{

        height:80px;

        padding:0 18px;

    }

    .logo{

        font-size:1.8rem;

    }

    .logo span{

        font-size:2rem;

    }

    .mobile-menu{

        width:100%;

    }

}

/*==================================================
                PART 4B.2.1
        HERO LAYOUT + HERO SLIDER
==================================================*/

/*==========================
        HERO SECTION
===========================*/

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    background:#111;

    color:#fff;

}

/*==========================
        HERO SLIDER
===========================*/

.hero-slider{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    z-index:1;

}

.slide{

    position:absolute;

    inset:0;

    opacity:0;

    visibility:hidden;

    transition:opacity 1.2s ease;

}

.slide.active{

    opacity:1;

    visibility:visible;

}

.slide img{

    width:100%;

    height:100%;

    object-fit:cover;

    animation:heroZoom 8s linear forwards;

}

/*==========================
        HERO OVERLAY
===========================*/

.hero-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        90deg,
        rgba(0,0,0,.72) 0%,
        rgba(0,0,0,.52) 45%,
        rgba(0,0,0,.35) 100%
    );

    z-index:2;

}

/*==========================
        HERO CONTAINER
===========================*/

.hero-container{

    position:relative;

    z-index:5;

    width:100%;

    display:flex;

    align-items:center;

    min-height:100vh;

    padding-top:90px;

    padding-bottom:60px;

}

/*==========================
        HERO CONTENT WRAPPER
===========================*/

.hero-content{

    max-width:700px;

    animation:fadeLeft 1s ease forwards;

}

/*==========================
        HERO SHAPES
===========================*/

.hero-shape{

    position:absolute;

    border-radius:50%;

    z-index:3;

    pointer-events:none;

}

.shape-1{

    width:340px;

    height:340px;

    background:rgba(176,141,87,.08);

    top:-100px;

    right:-120px;

    filter:blur(5px);

}

.shape-2{

    width:220px;

    height:220px;

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

    bottom:80px;

    left:-60px;

}

/*==========================
        SLIDE TRANSITION
===========================*/

.slide::after{

    content:"";

    position:absolute;

    inset:0;

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

}

/*==========================
        IMAGE OPTIMIZATION
===========================*/

.slide img{

    user-select:none;

    -webkit-user-drag:none;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .hero{

        min-height:90vh;

    }

    .hero-container{

        padding-top:110px;

        justify-content:center;

    }

    .hero-content{

        max-width:100%;

        text-align:center;

    }

}

@media(max-width:768px){

    .hero{

        min-height:100vh;

    }

    .shape-1{

        width:220px;

        height:220px;

    }

    .shape-2{

        display:none;

    }

}

@media(max-width:576px){

    .hero-container{

        padding-inline:10px;

    }

}

/*==================================================
                PART 4B.2.2
        HERO CONTENT • BUTTONS • STATS
==================================================*/

/*==========================
        HERO SUBTITLE
===========================*/

.hero-subtitle{

    display:inline-block;

    margin-bottom:20px;

    color:var(--primary);

    text-transform:uppercase;

    letter-spacing:4px;

    font-size:.9rem;

    font-weight:700;

    animation:fadeUp .9s ease forwards;

}

/*==========================
        HERO TITLE
===========================*/

.hero-content h1{

    color:#fff;

    margin-bottom:28px;

    line-height:1.05;

    max-width:650px;

    animation:fadeUp 1.1s ease forwards;

}

.hero-content h1 br{

    display:block;

}

/*==========================
        HERO PARAGRAPH
===========================*/

.hero-content p{

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

    font-size:1.08rem;

    max-width:600px;

    margin-bottom:40px;

    animation:fadeUp 1.3s ease forwards;

}

/*==========================
        HERO BUTTONS
===========================*/

.hero-buttons{

    display:flex;

    gap:20px;

    margin-bottom:60px;

    flex-wrap:wrap;

    animation:fadeUp 1.5s ease forwards;

}

.hero-buttons .btn{

    min-width:200px;

}

.hero-buttons .btn-primary{

    position:relative;

    overflow:hidden;

}

.hero-buttons .btn-primary::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:60%;

    height:100%;

    background:linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.45),
        transparent
    );

}

.hero-buttons .btn-primary:hover::before{

    animation:shine .8s linear;

}

/*==========================
        HERO STATS
===========================*/

.hero-stats{

    display:flex;

    gap:50px;

    flex-wrap:wrap;

    animation:fadeUp 1.7s ease forwards;

}

.stat{

    position:relative;

    padding-right:40px;

}

.stat:not(:last-child)::after{

    content:"";

    position:absolute;

    right:15px;

    top:50%;

    transform:translateY(-50%);

    width:1px;

    height:55px;

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

}

.stat h2{

    color:#fff;

    font-size:2.2rem;

    margin-bottom:8px;

}

.stat span{

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

    font-size:.95rem;

}

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

@media(max-width:992px){

    .hero-buttons{

        justify-content:center;

    }

    .hero-stats{

        justify-content:center;

        gap:35px;

    }

    .stat{

        padding-right:0;

        text-align:center;

    }

    .stat::after{

        display:none;

    }

}

@media(max-width:768px){

    .hero-content h1{

        font-size:clamp(2.7rem,8vw,4.2rem);

    }

    .hero-content p{

        margin-inline:auto;

    }

    .hero-buttons{

        flex-direction:column;

        align-items:center;

    }

    .hero-buttons .btn{

        width:100%;

        max-width:320px;

    }

}

@media(max-width:576px){

    .hero-subtitle{

        letter-spacing:2px;

        font-size:.78rem;

    }

    .hero-content p{

        font-size:1rem;

    }

    .hero-stats{

        gap:25px;

    }

    .stat h2{

        font-size:1.8rem;

    }

}

/*==================================================
        PART 4B.2.3.1
        HERO SOCIAL + SCROLL INDICATOR
==================================================*/

/*==========================
        HERO SOCIAL
===========================*/

.hero-social{

    position:absolute;

    left:45px;

    bottom:70px;

    display:flex;

    flex-direction:column;

    gap:18px;

    z-index:10;

}

.hero-social a{

    width:48px;

    height:48px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

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

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

    color:#fff;

    backdrop-filter:blur(12px);

    transition:.35s ease;

}

.hero-social a:hover{

    background:var(--primary);

    border-color:var(--primary);

    color:#fff;

    transform:translateY(-5px) scale(1.08);

    box-shadow:0 15px 35px rgba(176,141,87,.35);

}

/* Decorative Line */

.hero-social::before{

    content:"";

    width:2px;

    height:70px;

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

    margin:auto;

    margin-bottom:10px;

}

/*==========================
        SCROLL INDICATOR
===========================*/

.scroll-indicator{

    position:absolute;

    right:55px;

    bottom:60px;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:15px;

    z-index:10;

}

.scroll-indicator span{

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

    font-size:.8rem;

    letter-spacing:4px;

    text-transform:uppercase;

    writing-mode:vertical-rl;

    transform:rotate(180deg);

}

/* Mouse */

.mouse{

    width:34px;

    height:58px;

    border:2px solid rgba(255,255,255,.6);

    border-radius:30px;

    display:flex;

    justify-content:center;

    padding-top:10px;

}

.wheel{

    width:5px;

    height:10px;

    background:#fff;

    border-radius:20px;

    animation:wheel 1.6s infinite;

}

/*==========================
        HOVER EFFECTS
===========================*/

.hero-social a i{

    transition:.35s;

}

.hero-social a:hover i{

    transform:rotate(12deg);

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .hero-social{

        left:25px;

        bottom:40px;

    }

    .scroll-indicator{

        right:25px;

        bottom:40px;

    }

}

@media(max-width:768px){

    .hero-social{

        display:none;

    }

    .scroll-indicator{

        display:none;

    }

}

/*==================================================
        PART 4B.2.3.2
    FLOATING CARD + FINAL HERO RESPONSIVE
==================================================*/

/*==========================
    FLOATING FEATURE CARD
===========================*/

.floating-card{

    position:absolute;

    right:8%;

    top:50%;

    transform:translateY(-50%);

    width:320px;

    padding:35px;

    border-radius:24px;

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

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

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

    box-shadow:0 25px 60px rgba(0,0,0,.18);

    z-index:12;

    animation:floatingCard 5s ease-in-out infinite;

}

.card-small{

    display:inline-block;

    margin-bottom:15px;

    padding:8px 16px;

    border-radius:50px;

    background:rgba(176,141,87,.18);

    color:#fff;

    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:2px;

    font-weight:700;

}

.floating-card h3{

    color:#fff;

    font-size:2rem;

    margin-bottom:15px;

}

.floating-card p{

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

    font-size:.95rem;

    line-height:1.7;

}

/* Decorative line */

.floating-card::before{

    content:"";

    position:absolute;

    left:35px;

    top:25px;

    width:55px;

    height:3px;

    border-radius:5px;

    background:var(--primary);

}

/*==========================
    HERO CONTENT SPACING
===========================*/

.hero-content{

    padding-top:30px;

}

.hero-content>*{

    position:relative;

    z-index:5;

}

/*==========================
    HERO BUTTON IMPROVEMENTS
===========================*/

.hero-buttons .btn{

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

}

.hero-buttons .btn:hover{

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

}

/*==========================
    HERO STAT HOVER
===========================*/

.stat{

    transition:.35s ease;

}

.stat:hover{

    transform:translateY(-6px);

}

/*==========================
    RESPONSIVE
===========================*/

@media(max-width:1200px){

    .floating-card{

        width:280px;

        right:40px;

        padding:28px;

    }

}

@media(max-width:992px){

    .floating-card{

        position:relative;

        right:auto;

        top:auto;

        transform:none;

        margin:60px auto 0;

        width:min(100%,420px);

    }

}

@media(max-width:768px){

    .floating-card{

        display:none;

    }

    .hero-content{

        text-align:center;

    }

}

@media(max-width:576px){

    .hero{

        min-height:100vh;

    }

    .hero-container{

        padding-top:95px;

        padding-bottom:80px;

    }

    .hero-content h1{

        margin-bottom:22px;

    }

    .hero-content p{

        margin-bottom:32px;

    }

}

/*==================================================
                PART 4C.1
        ABOUT SECTION LAYOUT + IMAGES
==================================================*/

/*==========================
        ABOUT SECTION
===========================*/

.about{

    background:#fff;

    overflow:hidden;

    position:relative;

}

/*==========================
        WRAPPER
===========================*/

.about-wrapper{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:100px;

    align-items:center;

}

/*==========================
        IMAGE COLUMN
===========================*/

.about-images{

    position:relative;

    min-height:700px;

}

/*==========================
        MAIN IMAGE
===========================*/

.about-main-image{

    position:relative;

    width:80%;

    border-radius:28px;

    overflow:hidden;

    box-shadow:0 30px 70px rgba(0,0,0,.12);

}

.about-main-image img{

    width:100%;

    height:700px;

    object-fit:cover;

}

/*==========================
        SECOND IMAGE
===========================*/

.about-small-image{

    position:absolute;

    right:0;

    bottom:60px;

    width:300px;

    border-radius:22px;

    overflow:hidden;

    border:10px solid #fff;

    box-shadow:0 20px 55px rgba(0,0,0,.16);

}

.about-small-image img{

    width:100%;

    height:360px;

    object-fit:cover;

}

/*==========================
        EXPERIENCE CARD
===========================*/

.experience-box{

    position:absolute;

    left:-40px;

    bottom:80px;

    width:180px;

    height:180px;

    border-radius:50%;

    background:var(--primary);

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    color:#fff;

    text-align:center;

    box-shadow:0 25px 60px rgba(176,141,87,.35);

    animation:pulse 4s infinite;

}

.experience-box h2{

    color:#fff;

    font-size:3rem;

    margin-bottom:5px;

}

.experience-box span{

    width:120px;

    line-height:1.4;

    font-size:.9rem;

}

/*==========================
        DECORATIVE CIRCLE
===========================*/

.circle-decoration{

    position:absolute;

    width:170px;

    height:170px;

    border-radius:50%;

    border:2px dashed rgba(176,141,87,.35);

    top:40px;

    right:-60px;

    animation:rotateCircle 18s linear infinite;

}

/*==========================
        IMAGE HOVER
===========================*/

.about-main-image img,
.about-small-image img{

    transition:transform .8s ease;

}

.about-main-image:hover img{

    transform:scale(1.08);

}

.about-small-image:hover img{

    transform:scale(1.08);

}

/*==========================
        IMAGE SHADOW
===========================*/

.about-main-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.18),
        transparent 55%
    );

    pointer-events:none;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:1100px){

    .about-wrapper{

        gap:60px;

    }

}

@media(max-width:992px){

    .about-wrapper{

        grid-template-columns:1fr;

    }

    .about-images{

        min-height:auto;

        max-width:700px;

        margin:auto;

    }

    .about-main-image{

        width:100%;

    }

    .about-small-image{

        width:260px;

        right:20px;

    }

}

@media(max-width:768px){

    .about-images{

        display:flex;

        flex-direction:column;

        gap:25px;

    }

    .about-small-image{

        position:relative;

        right:auto;

        bottom:auto;

        width:100%;

        border-width:0;

    }

    .about-main-image img{

        height:500px;

    }

    .about-small-image img{

        height:300px;

    }

    .experience-box{

        left:20px;

        bottom:20px;

        width:140px;

        height:140px;

    }

    .experience-box h2{

        font-size:2.3rem;

    }

    .circle-decoration{

        display:none;

    }

}

@media(max-width:576px){

    .about{

        padding:90px 0;

    }

    .about-main-image img{

        height:420px;

    }

    .about-small-image img{

        height:240px;

    }

}

/*==================================================
                PART 4C.2
    ABOUT CONTENT • FEATURES • COUNTERS • CTA
==================================================*/

/*==========================
        CONTENT
===========================*/

.about-content{

    position:relative;

    z-index:2;

}

.about-content h2{

    margin:20px 0 30px;

    max-width:600px;

}

.about-intro{

    margin-bottom:40px;

    font-size:1.05rem;

    color:#666;

    line-height:1.9;

}

/*==========================
        FEATURES
===========================*/

.about-features{

    display:grid;

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

    gap:22px;

    margin-bottom:50px;

}

.feature{

    display:flex;

    align-items:center;

    gap:15px;

    padding:18px 20px;

    background:#faf7f2;

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

    border-radius:16px;

    transition:.35s ease;

}

.feature:hover{

    transform:translateY(-6px);

    box-shadow:var(--shadow);

    border-color:rgba(176,141,87,.35);

}

.feature i{

    width:42px;

    height:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--primary);

    color:#fff;

    font-size:.9rem;

}

.feature span{

    font-weight:600;

    color:#333;

}

/*==========================
        COUNTERS
===========================*/

.about-stats{

    display:grid;

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

    gap:25px;

    margin-bottom:45px;

}

.counter-box{

    background:#fff;

    padding:30px 20px;

    text-align:center;

    border-radius:18px;

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

    transition:.35s ease;

}

.counter-box:hover{

    transform:translateY(-8px);

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

}

.counter-box h3{

    font-size:2.6rem;

    color:var(--primary);

    margin-bottom:8px;

}

.counter-box p{

    font-size:.95rem;

    color:#666;

}

/*==========================
        CTA BUTTON
===========================*/

.about-content .btn{

    margin-top:10px;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .about-content{

        text-align:center;

    }

    .about-content h2{

        margin-left:auto;

        margin-right:auto;

    }

}

@media(max-width:768px){

    .about-features{

        grid-template-columns:1fr;

    }

    .about-stats{

        grid-template-columns:1fr;

    }

}

@media(max-width:576px){

    .feature{

        padding:16px;

    }

    .counter-box{

        padding:25px 18px;

    }

    .counter-box h3{

        font-size:2.2rem;

    }

}

/*==================================================
                PART 4C.3
        FOUNDER • DIVIDER • FINAL ABOUT
==================================================*/

/*==========================
        FOUNDER SECTION
===========================*/

.founder{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:25px;

    margin-top:50px;

    padding:30px;

    background:#faf7f2;

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

    border-radius:20px;

    transition:.35s ease;

}

.founder:hover{

    transform:translateY(-6px);

    box-shadow:var(--shadow);

}

.founder-image{

    width:85px;

    height:85px;

    border-radius:50%;

    overflow:hidden;

    flex-shrink:0;

}

.founder-image img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.founder-info{

    flex:1;

}

.founder-info h4{

    font-size:1.5rem;

    margin-bottom:6px;

}

.founder-info span{

    color:var(--gray);

    font-size:.95rem;

}

.signature{

    font-family:'Cormorant Garamond',serif;

    font-size:2rem;

    color:var(--primary);

    font-style:italic;

    white-space:nowrap;

}

/*==========================
        DIVIDER SECTION
===========================*/

.divider{

    padding:100px 0;

    background:linear-gradient(
        135deg,
        #1f1f1f,
        #2b2b2b
    );

    position:relative;

    overflow:hidden;

}

.divider::before{

    content:"";

    position:absolute;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(176,141,87,.08);

    top:-120px;

    left:-120px;

}

.divider::after{

    content:"";

    position:absolute;

    width:240px;

    height:240px;

    border-radius:50%;

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

    right:-120px;

    bottom:-120px;

}

.divider-content{

    position:relative;

    z-index:2;

    max-width:900px;

    margin:auto;

    text-align:center;

}

.divider-content span{

    display:block;

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

    font-family:'Cormorant Garamond',serif;

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

    line-height:1.4;

    font-style:italic;

}

/*==========================
        ABOUT ANIMATIONS
===========================*/

.about-images{

    animation:fadeRight .9s ease both;

}

.about-content{

    animation:fadeLeft .9s ease both;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .founder{

        flex-direction:column;

        text-align:center;

    }

    .signature{

        margin-top:10px;

    }

}

@media(max-width:768px){

    .divider{

        padding:80px 0;

    }

    .divider-content span{

        font-size:2rem;

    }

}

@media(max-width:576px){

    .founder{

        padding:22px;

    }

    .founder-image{

        width:70px;

        height:70px;

    }

    .founder-info h4{

        font-size:1.3rem;

    }

    .signature{

        font-size:1.6rem;

    }

}

/*==================================================
                PART 5A.1
        EXPERTISE LAYOUT + HORIZONTAL SCROLL
==================================================*/

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

.expertise{

    position:relative;

    background:#f8f4ef;

    overflow:hidden;

}

.expertise::before{

    content:"";

    position:absolute;

    top:-120px;

    right:-120px;

    width:280px;

    height:280px;

    border-radius:50%;

    background:rgba(176,141,87,.06);

    filter:blur(40px);

}

.expertise::after{

    content:"";

    position:absolute;

    bottom:-120px;

    left:-120px;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(176,141,87,.05);

    filter:blur(35px);

}

/*==========================
        WRAPPER
===========================*/

.expertise-wrapper{

    position:relative;

    width:100%;

    margin-top:70px;

    overflow-x:auto;

    overflow-y:hidden;

    scroll-behavior:smooth;

    cursor:grab;

    padding:20px 0 40px;

}

.expertise-wrapper:active{

    cursor:grabbing;

}

/* Hide scrollbar */

.expertise-wrapper::-webkit-scrollbar{

    height:8px;

}

.expertise-wrapper::-webkit-scrollbar-track{

    background:#e9dfd3;

    border-radius:50px;

}

.expertise-wrapper::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:50px;

}

/*==========================
        TRACK
===========================*/

.expertise-track{

    display:flex;

    gap:35px;

    width:max-content;

    padding-inline:calc((100vw - min(92%,1280px))/2);

    scroll-snap-type:x mandatory;

}

/*==========================
        CARD BASE
===========================*/

.expertise-card{

    position:relative;

    width:390px;

    flex-shrink:0;

    border-radius:24px;

    overflow:hidden;

    background:#fff;

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

    transition:.45s ease;

    scroll-snap-align:start;
    scroll-snap-stop:always;

}

.expertise-card:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 65px rgba(0,0,0,.15);

}

/*==========================
        IMAGE
===========================*/

.expertise-image{

    position:relative;

    overflow:hidden;

    height:290px;

}

.expertise-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:transform .9s ease;

}

.expertise-card:hover img{

    transform:scale(1.08);

}

/* Dark overlay */

.expertise-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        to top,

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

        transparent 55%

    );

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .expertise-card{

        width:340px;

    }

}

@media(max-width:768px){

    .expertise-track{

        gap:25px;

    }

    .expertise-card{

        width:300px;

    }

    .expertise-image{

        height:230px;

    }

}

@media(max-width:576px){

    .expertise-card{

        width:280px;

    }

    .expertise-wrapper{

        padding-bottom:25px;

    }

}

/*==================================================
                PART 5A.2
        EXPERTISE CARD CONTENT
==================================================*/

/*==========================
        CARD CONTENT
===========================*/

.expertise-content{

    position:relative;

    padding:35px 30px;

    background:#fff;

}

.expertise-content span{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:55px;

    height:55px;

    border-radius:50%;

    background:rgba(176,141,87,.12);

    color:var(--primary);

    font-weight:700;

    font-size:1rem;

    margin-bottom:22px;

    transition:.35s ease;

}

.expertise-card:hover .expertise-content span{

    background:var(--primary);

    color:#fff;

    transform:rotate(360deg);

}

.expertise-content h3{

    font-size:2rem;

    margin-bottom:16px;

    transition:.35s ease;

}

.expertise-card:hover h3{

    color:var(--primary);

}

.expertise-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:28px;

}

/*==========================
        LEARN MORE LINK
===========================*/

.expertise-content a{

    display:inline-flex;

    align-items:center;

    gap:10px;

    color:#222;

    font-weight:600;

    transition:.35s ease;

}

.expertise-content a i{

    transition:.35s ease;

}

.expertise-card:hover a{

    color:var(--primary);

}

.expertise-card:hover a i{

    transform:translateX(8px);

}

/*==========================
        TOP BORDER
===========================*/

.expertise-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:0;

    height:5px;

    background:var(--primary);

    transition:.5s ease;

    z-index:5;

}

.expertise-card:hover::before{

    width:100%;

}

/*==========================
        CARD GLOW
===========================*/

.expertise-card::after{

    content:"";

    position:absolute;

    inset:0;

    border-radius:24px;

    box-shadow:0 0 0 rgba(176,141,87,0);

    transition:.4s ease;

    pointer-events:none;

}

.expertise-card:hover::after{

    box-shadow:0 0 35px rgba(176,141,87,.15);

}

/*==========================
        IMAGE OVERLAY
===========================*/

.expertise-image::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        transparent,

        rgba(0,0,0,.25)

    );

    opacity:0;

    transition:.45s ease;

    z-index:1;

}

.expertise-card:hover .expertise-image::before{

    opacity:1;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

    .expertise-content{

        padding:28px 22px;

    }

    .expertise-content h3{

        font-size:1.6rem;

    }

}

@media(max-width:576px){

    .expertise-content{

        padding:24px 20px;

    }

    .expertise-content span{

        width:48px;

        height:48px;

    }

}

/*==================================================
                PART 5A.3
        EXPERTISE CTA + FINAL POLISH
==================================================*/

/*==========================
        SECTION FOOTER
===========================*/

.expertise-footer{

    margin-top:80px;

    padding:45px 50px;

    border-radius:24px;

    background:linear-gradient(
        135deg,
        #ffffff,
        #f6f1eb
    );

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:40px;

    border:1px solid rgba(176,141,87,.12);

    box-shadow:0 20px 50px rgba(0,0,0,.06);

}

.expertise-footer p{

    font-size:1.2rem;

    color:#333;

    font-weight:600;

    max-width:520px;

    line-height:1.7;

}

.expertise-footer .btn{

    flex-shrink:0;

}

/*==========================
        CARD HOVER DETAILS
===========================*/

.expertise-card{

    will-change:transform;

}

.expertise-card:hover{

    transform:translateY(-12px) scale(1.02);

}

.expertise-card:hover .expertise-content{

    background:#fcfaf7;

}

/*==========================
        SCROLL BEHAVIOUR
===========================*/

.expertise-wrapper{

    scroll-padding-left:calc((100vw - min(92%,1280px))/2);

}

.expertise-wrapper{

    -ms-overflow-style:none;

    scrollbar-width:thin;

}

/*==========================
        FADE EDGES
===========================*/

.expertise{

    position:relative;

}

.expertise::before{

    z-index:0;

}

.expertise-wrapper::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:90px;

    height:100%;

    background:linear-gradient(
        to right,
        #f8f4ef,
        transparent
    );

    z-index:10;

    pointer-events:none;

}

.expertise-wrapper::after{

    content:"";

    position:absolute;

    right:0;

    top:0;

    width:90px;

    height:100%;

    background:linear-gradient(
        to left,
        #f8f4ef,
        transparent
    );

    z-index:10;

    pointer-events:none;

}

/*==========================
        ENTRANCE ANIMATION
===========================*/

/* .expertise-card{

    opacity:0;

    transform:translateY(40px);

} */

/* .expertise-card.show{

    opacity:1;

    transform:translateY(0);

    transition:
        opacity .8s ease,
        transform .8s ease;

} */

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .expertise-footer{

        flex-direction:column;

        text-align:center;

        padding:40px 30px;

    }

}

@media(max-width:768px){

    .expertise-footer{

        margin-top:60px;

    }

    .expertise-wrapper::before,

    .expertise-wrapper::after{

        width:40px;

    }

}

@media(max-width:576px){

    .expertise-footer{

        padding:30px 20px;

        border-radius:18px;

    }

    .expertise-footer p{

        font-size:1rem;

    }

}

/*==================================================
                PART 5B.1
        PROCESS LAYOUT + TIMELINE
==================================================*/

/*==========================
        PROCESS SECTION
===========================*/

.process{

    position:relative;

    background:#ffffff;

    overflow:hidden;

}

.process::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(176,141,87,.05);

    top:-140px;

    left:-140px;

    filter:blur(45px);

}

.process::after{

    content:"";

    position:absolute;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(176,141,87,.04);

    right:-120px;

    bottom:-120px;

    filter:blur(35px);

}

/*==========================
        TIMELINE
===========================*/

.process-timeline{

    position:relative;

    display:grid;

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

    gap:35px;

    margin-top:80px;

}

/*==========================
        CONNECTOR LINE
===========================*/

.timeline-line{

    position:absolute;

    top:50%;

    left:0;

    width:100%;

    height:2px;

    background:linear-gradient(
        to right,
        rgba(176,141,87,.15),
        rgba(176,141,87,.5),
        rgba(176,141,87,.15)
    );

    transform:translateY(-50%);

    z-index:0;

}

/*==========================
        PROCESS CARD BASE
===========================*/

.process-card{

    position:relative;

    background:#fff;

    padding:40px 35px;

    border-radius:24px;

    border:1px solid rgba(176,141,87,.12);

    box-shadow:0 15px 45px rgba(0,0,0,.06);

    transition:.45s ease;

    z-index:2;

}

.process-card:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 70px rgba(0,0,0,.12);

}

/*==========================
        STEP NUMBER
===========================*/

.process-number{

    position:absolute;

    top:-18px;

    right:25px;

    width:58px;

    height:58px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:700;

    font-size:1rem;

    box-shadow:0 12px 28px rgba(176,141,87,.35);

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:1100px){

    .process-timeline{

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

    }

    .timeline-line{

        display:none;

    }

}

@media(max-width:768px){

    .process-timeline{

        grid-template-columns:1fr;

        gap:28px;

    }

    .process-card{

        padding:32px 26px;

    }

}

@media(max-width:576px){

    .process-card{

        padding:28px 22px;

        border-radius:18px;

    }

    .process-number{

        width:50px;

        height:50px;

        font-size:.9rem;

    }

}

/*==================================================
                PART 5B.2
        PROCESS CARDS • ICONS • ANIMATIONS
==================================================*/

/*==========================
        PROCESS ICON
===========================*/

.process-icon{

    width:80px;

    height:80px;

    border-radius:50%;

    background:rgba(176,141,87,.12);

    display:flex;

    align-items:center;

    justify-content:center;

    margin-bottom:28px;

    transition:.45s ease;

}

.process-icon i{

    font-size:2rem;

    color:var(--primary);

    transition:.45s ease;

}

.process-card:hover .process-icon{

    background:var(--primary);

    transform:rotate(10deg) scale(1.08);

}

.process-card:hover .process-icon i{

    color:#fff;

    transform:rotate(-10deg);

}

/*==========================
        TITLE
===========================*/

.process-card h3{

    font-size:2rem;

    margin-bottom:18px;

    transition:.35s ease;

}

.process-card:hover h3{

    color:var(--primary);

}

/*==========================
        DESCRIPTION
===========================*/

.process-card p{

    color:#666;

    line-height:1.9;

    margin-bottom:10px;

}

/*==========================
        GOLD BORDER
===========================*/

.process-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:0;

    height:5px;

    background:var(--primary);

    transition:.5s ease;

    border-radius:20px;

}

.process-card:hover::before{

    width:100%;

}

/*==========================
        GLOW EFFECT
===========================*/

.process-card::after{

    content:"";

    position:absolute;

    inset:0;

    border-radius:24px;

    pointer-events:none;

    transition:.4s ease;

}

.process-card:hover::after{

    box-shadow:0 0 35px rgba(176,141,87,.15);

}

/*==========================
        ENTRANCE
===========================*/

.process-card{

    opacity:0;

    transform:translateY(45px);

}

.process-card.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        HOVER DETAILS
===========================*/

.process-card:hover{

    background:#fcfaf7;

}

.process-card:hover .process-number{

    animation:pulse 1s ease;

}

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

@media(max-width:768px){

    .process-icon{

        width:70px;

        height:70px;

    }

    .process-icon i{

        font-size:1.7rem;

    }

    .process-card h3{

        font-size:1.7rem;

    }

}

@media(max-width:576px){

    .process-icon{

        width:60px;

        height:60px;

        margin-bottom:20px;

    }

    .process-icon i{

        font-size:1.4rem;

    }

    .process-card h3{

        font-size:1.5rem;

    }

}

/*==================================================
                PART 5B.3
        PROCESS STATS + PARALLAX BANNER
==================================================*/

/*==========================
        PROCESS STATS
===========================*/

.process-stats{

    margin-top:80px;

    display:grid;

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

    gap:30px;

}

.stat-box{

    background:#fff;

    border-radius:22px;

    padding:40px 20px;

    text-align:center;

    border:1px solid rgba(176,141,87,.12);

    transition:.4s ease;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

}

.stat-box:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 55px rgba(0,0,0,.12);

    border-color:rgba(176,141,87,.3);

}

.stat-box h2{

    font-size:3rem;

    color:var(--primary);

    margin-bottom:12px;

}

.stat-box span{

    display:block;

    color:#666;

    font-size:.95rem;

    font-weight:500;

}

/*==========================
        PARALLAX SECTION
===========================*/

.parallax-banner{

    position:relative;

    padding:160px 0;

    background:url("images/parallax.jpg") center center/cover fixed;

    overflow:hidden;

}

.parallax-banner .overlay{

    position:absolute;

    inset:0;

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

}

.banner-content{

    position:relative;

    z-index:2;

    max-width:820px;

    margin:auto;

    text-align:center;

}

.banner-content span{

    display:inline-block;

    color:var(--primary);

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:22px;

    font-size:.9rem;

    font-weight:700;

}

.banner-content h2{

    color:#fff;

    margin-bottom:28px;

    line-height:1.2;

}

.banner-content .btn{

    margin-top:10px;

}

/*==========================
        PARALLAX EFFECT
===========================*/

.parallax-banner::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        rgba(0,0,0,.12),

        rgba(0,0,0,.12)

    );

}

/*==========================
        ENTRANCE
===========================*/

.banner-content{

    opacity:0;

    transform:translateY(40px);

}

.banner-content.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .process-stats{

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

    }

}

@media(max-width:768px){

    .parallax-banner{

        background-attachment:scroll;

        padding:120px 0;

    }

    .process-stats{

        gap:20px;

    }

}

@media(max-width:576px){

    .process-stats{

        grid-template-columns:1fr;

    }

    .stat-box{

        padding:30px 20px;

    }

    .stat-box h2{

        font-size:2.4rem;

    }

    .banner-content h2{

        font-size:2rem;

    }

}

/*==================================================
                PART 5C.1
        PORTFOLIO LAYOUT + FILTERS + GRID
==================================================*/

/*==========================
        PORTFOLIO SECTION
===========================*/

.portfolio{

    position:relative;

    background:#f8f4ef;

    overflow:hidden;

    padding:120px 0;

}

.portfolio::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(176,141,87,.05);

    top:-140px;

    left:-120px;

    filter:blur(45px);

}

.portfolio::after{

    content:"";

    position:absolute;

    width:280px;

    height:280px;

    border-radius:50%;

    background:rgba(176,141,87,.04);

    right:-120px;

    bottom:-120px;

    filter:blur(40px);

}

/*==========================
        FILTER BUTTONS
===========================*/

.portfolio-filter{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:18px;

    margin:60px 0;

}

.filter-btn{

    padding:14px 30px;

    border-radius:50px;

    background:#fff;

    border:1px solid rgba(176,141,87,.15);

    color:#333;

    font-weight:600;

    cursor:pointer;

    transition:.35s ease;

    box-shadow:0 10px 25px rgba(0,0,0,.05);

}

.filter-btn:hover{

    background:var(--primary);

    color:#fff;

    transform:translateY(-4px);

    box-shadow:0 15px 35px rgba(176,141,87,.25);

}

.filter-btn.active{

    background:var(--primary);

    color:#fff;

    border-color:var(--primary);

}

/*==========================
        PORTFOLIO GRID
===========================*/

.portfolio-grid{

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(320px,1fr));

    gap:28px;

}

/*==========================
        BASE ITEM
===========================*/

.portfolio-item{

    position:relative;

    border-radius:24px;

    overflow:hidden;

    cursor:pointer;

    background:#fff;

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

    transition:.45s ease;

    opacity:1;

    transform:scale(1);

}

.portfolio-item.hide{

    opacity:0;

    transform:scale(.85);

    pointer-events:none;

}

/*==========================
        CTA
===========================*/

.portfolio-cta{

    margin-top:90px;

    padding:70px 0;

}

.portfolio-cta-content{

    background:#fff;

    border-radius:28px;

    padding:70px 60px;

    text-align:center;

    box-shadow:0 20px 55px rgba(0,0,0,.08);

    border:1px solid rgba(176,141,87,.12);

}

.portfolio-cta-content span{

    display:inline-block;

    color:var(--primary);

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:18px;

    font-weight:700;

    font-size:.85rem;

}

.portfolio-cta-content h2{

    margin-bottom:22px;

}

.portfolio-cta-content p{

    max-width:650px;

    margin:0 auto 35px;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .portfolio-grid{

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

    }

}

@media(max-width:768px){

    .portfolio-grid{

        grid-template-columns:1fr;

    }

    .portfolio-cta-content{

        padding:50px 35px;

    }

}

@media(max-width:576px){

    .portfolio-filter{

        gap:10px;

    }

    .filter-btn{

        padding:12px 22px;

        font-size:.9rem;

    }

    .portfolio-cta-content{

        padding:40px 20px;

        border-radius:20px;

    }

}

/*==================================================
                PART 5C.2
        PORTFOLIO CARDS • HOVER • OVERLAY
==================================================*/

/*==========================
        PORTFOLIO IMAGE
===========================*/

.portfolio-item img{

    width:100%;

    height:380px;

    object-fit:cover;

    transition:
        transform .9s ease,
        filter .5s ease;

}

.portfolio-item:hover img{

    transform:scale(1.1);

    filter:brightness(.8);

}

/*==========================
        OVERLAY
===========================*/

.portfolio-overlay{

    position:absolute;

    inset:0;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:35px;

    background:linear-gradient(

        transparent,

        rgba(0,0,0,.82)

    );

    opacity:0;

    transition:.45s ease;

}

.portfolio-item:hover .portfolio-overlay{

    opacity:1;

}

/*==========================
        CATEGORY
===========================*/

.portfolio-overlay span{

    display:inline-block;

    width:max-content;

    padding:8px 18px;

    border-radius:40px;

    background:rgba(176,141,87,.92);

    color:#fff;

    font-size:.8rem;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:15px;

    transform:translateY(25px);

    transition:.45s ease;

}

.portfolio-item:hover .portfolio-overlay span{

    transform:translateY(0);

}

/*==========================
        PROJECT TITLE
===========================*/

.portfolio-overlay h3{

    color:#fff;

    font-size:2rem;

    margin-bottom:20px;

    transform:translateY(35px);

    transition:.5s ease;

}

.portfolio-item:hover .portfolio-overlay h3{

    transform:translateY(0);

}

/*==========================
        EXPAND BUTTON
===========================*/

.view-project{

    width:60px;

    height:60px;

    border-radius:50%;

    background:#fff;

    color:#222;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:1.2rem;

    transition:.35s ease;

    transform:translateY(45px);

}

.portfolio-item:hover .view-project{

    transform:translateY(0);

}

.view-project:hover{

    background:var(--primary);

    color:#fff;

    transform:scale(1.1);

}

/*==========================
        GOLD BORDER
===========================*/

.portfolio-item::before{

    content:"";

    position:absolute;

    inset:18px;

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

    opacity:0;

    transition:.45s ease;

    z-index:2;

}

.portfolio-item:hover::before{

    opacity:1;

}

/*==========================
        TOP ACCENT
===========================*/

.portfolio-item::after{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:0;

    height:5px;

    background:var(--primary);

    transition:.5s ease;

    z-index:3;

}

.portfolio-item:hover::after{

    width:100%;

}

/*==========================
        ENTRANCE
===========================*/

.portfolio-item{

    opacity:0;

    transform:translateY(50px);

}

.portfolio-item.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

    .portfolio-item img{

        height:320px;

    }

    .portfolio-overlay{

        padding:25px;

    }

    .portfolio-overlay h3{

        font-size:1.7rem;

    }

}

@media(max-width:576px){

    .portfolio-item img{

        height:260px;

    }

    .view-project{

        width:50px;

        height:50px;

    }

}

/*==================================================
                PART 5C.3
        LIGHTBOX + FINAL PORTFOLIO
==================================================*/

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

.lightbox{

    position:fixed;

    inset:0;

    background:rgba(10,10,10,.95);

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:0;

    visibility:hidden;

    transition:.4s ease;

    z-index:99999;

    padding:40px;

}

.lightbox.active{

    opacity:1;

    visibility:visible;

}

/*==========================
        IMAGE
===========================*/

.lightbox-image{

    max-width:85%;

    max-height:85vh;

    border-radius:18px;

    box-shadow:0 25px 70px rgba(0,0,0,.45);

    animation:zoomIn .4s ease;

}

/*==========================
        CLOSE BUTTON
===========================*/

.lightbox-close{

    position:absolute;

    top:35px;

    right:40px;

    width:60px;

    height:60px;

    border-radius:50%;

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

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    cursor:pointer;

    transition:.35s ease;

}

.lightbox-close:hover{

    background:var(--primary);

    transform:rotate(90deg);

}

/*==========================
        NAV BUTTONS
===========================*/

.lightbox-prev,
.lightbox-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:65px;

    height:65px;

    border-radius:50%;

    border:none;

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

    color:#fff;

    cursor:pointer;

    transition:.35s ease;

}

.lightbox-prev{

    left:35px;

}

.lightbox-next{

    right:35px;

}

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

    background:var(--primary);

    transform:translateY(-50%) scale(1.08);

}

/*==========================
        CAPTION
===========================*/

.lightbox-caption{

    position:absolute;

    bottom:45px;

    left:50%;

    transform:translateX(-50%);

    text-align:center;

    color:#fff;

    max-width:650px;

}

.lightbox-caption h3{

    color:#fff;

    margin-bottom:12px;

    font-size:2rem;

}

.lightbox-caption p{

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

}

/*==========================
        CTA HOVER
===========================*/

.portfolio-cta-content{

    transition:.4s ease;

}

.portfolio-cta-content:hover{

    transform:translateY(-8px);

    box-shadow:0 30px 70px rgba(0,0,0,.12);

}

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

@media(max-width:768px){

    .lightbox{

        padding:20px;

    }

    .lightbox-image{

        max-width:100%;

    }

    .lightbox-prev,
    .lightbox-next{

        width:50px;

        height:50px;

    }

    .lightbox-prev{

        left:15px;

    }

    .lightbox-next{

        right:15px;

    }

    .lightbox-caption{

        width:90%;

        bottom:20px;

    }

    .lightbox-caption h3{

        font-size:1.5rem;

    }

}

@media(max-width:576px){

    .lightbox-close{

        width:48px;

        height:48px;

        top:20px;

        right:20px;

    }

    .lightbox-prev,
    .lightbox-next{

        display:none;

    }

}

/*==================================================
                PART 6A.1
        TESTIMONIALS LAYOUT + SLIDER
==================================================*/

/*==========================
        TESTIMONIALS
===========================*/

.testimonials{

    position:relative;

    background:#ffffff;

    overflow:hidden;

    padding:120px 0;

}

.testimonials::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(176,141,87,.05);

    top:-140px;

    right:-120px;

    filter:blur(40px);

}

.testimonials::after{

    content:"";

    position:absolute;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(176,141,87,.04);

    left:-120px;

    bottom:-120px;

    filter:blur(35px);

}

/*==========================
        SLIDER
===========================*/

.testimonial-slider{

    position:relative;

    max-width:900px;

    margin:70px auto 50px;

    overflow:hidden;

}

.testimonial-card{

    position:absolute;

    inset:0;

    background:#fff;

    border-radius:26px;

    padding:60px;

    border:1px solid rgba(176,141,87,.12);

    box-shadow:0 25px 60px rgba(0,0,0,.08);

    opacity:0;

    visibility:hidden;

    transform:translateX(80px);

    transition:
        opacity .6s ease,
        transform .6s ease;

}

.testimonial-card.active{

    position:relative;

    opacity:1;

    visibility:visible;

    transform:translateX(0);

}

/*==========================
        QUOTE ICON
===========================*/

.quote-icon{

    width:80px;

    height:80px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(176,141,87,.12);

    margin-bottom:35px;

}

.quote-icon i{

    color:var(--primary);

    font-size:2rem;

}

/*==========================
        REVIEW TEXT
===========================*/

.testimonial-card p{

    font-size:1.15rem;

    line-height:2;

    color:#555;

    margin-bottom:35px;

}

/*==========================
        ENTRANCE
===========================*/

.testimonial-card.show{

    animation:fadeScale .8s ease forwards;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

    .testimonial-card{

        padding:40px 30px;

    }

}

@media(max-width:576px){

    .testimonial-slider{

        margin-top:50px;

    }

    .testimonial-card{

        padding:30px 22px;

        border-radius:20px;

    }

    .quote-icon{

        width:65px;

        height:65px;

        margin-bottom:25px;

    }

    .quote-icon i{

        font-size:1.6rem;

    }

    .testimonial-card p{

        font-size:1rem;

        line-height:1.8;

    }

}

/*==================================================
                PART 6A.2
    CLIENT INFO • STARS • PROFILE • HOVER EFFECTS
==================================================*/

/*==========================
        STAR RATING
===========================*/

.stars{

    display:flex;

    align-items:center;

    gap:8px;

    margin-bottom:35px;

}

.stars i{

    color:#f4b400;

    font-size:1.1rem;

    transition:.35s ease;

}

.testimonial-card:hover .stars i{

    transform:scale(1.15);

}

/*==========================
        CLIENT
===========================*/

.client{

    display:flex;

    align-items:center;

    gap:20px;

    margin-top:10px;

}

/*==========================
        CLIENT IMAGE
===========================*/

.client img{

    width:80px;

    height:80px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid rgba(176,141,87,.18);

    transition:.4s ease;

}

.testimonial-card:hover .client img{

    transform:scale(1.08);

    border-color:var(--primary);

}

/*==========================
        CLIENT DETAILS
===========================*/

.client h4{

    font-size:1.45rem;

    margin-bottom:6px;

    color:#222;

}

.client span{

    color:#777;

    font-size:.95rem;

}

/*==========================
        CARD HOVER
===========================*/

.testimonial-card{

    transition:

        transform .4s ease,

        box-shadow .4s ease,

        border-color .4s ease;

}

.testimonial-card:hover{

    transform:translateY(-10px);

    border-color:rgba(176,141,87,.3);

    box-shadow:0 30px 70px rgba(0,0,0,.12);

}

/* Decorative gold line */

.testimonial-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:0;

    height:5px;

    background:var(--primary);

    transition:.45s ease;

}

.testimonial-card:hover::before{

    width:100%;

}

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

@media(max-width:768px){

    .client{

        gap:15px;

    }

    .client img{

        width:70px;

        height:70px;

    }

    .client h4{

        font-size:1.25rem;

    }

}

@media(max-width:576px){

    .stars{

        justify-content:center;

    }

    .client{

        flex-direction:column;

        text-align:center;

    }

    .client img{

        width:65px;

        height:65px;

    }

}

/*==================================================
                PART 6A.3
    TESTIMONIAL CONTROLS • STATS • RESPONSIVE
==================================================*/

/*==========================
        CONTROLS
===========================*/

.testimonial-controls{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:18px;

    margin:45px 0 35px;

}

.testimonial-prev,
.testimonial-next{

    width:58px;

    height:58px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#fff;

    border:1px solid rgba(176,141,87,.18);

    color:#333;

    cursor:pointer;

    transition:.35s ease;

    box-shadow:0 10px 25px rgba(0,0,0,.06);

}

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

    background:var(--primary);

    color:#fff;

    transform:translateY(-5px);

    box-shadow:0 18px 40px rgba(176,141,87,.28);

}

/*==========================
        DOTS
===========================*/

.testimonial-dots{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    margin-bottom:70px;

}

.dot{

    width:12px;

    height:12px;

    border-radius:50%;

    background:#d8cfc2;

    cursor:pointer;

    transition:.35s ease;

}

.dot.active{

    width:42px;

    border-radius:20px;

    background:var(--primary);

}

.dot:hover{

    background:var(--primary);

}

/*==========================
        STATISTICS
===========================*/

.testimonial-stats{

    display:grid;

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

    gap:25px;

    margin-top:40px;

}

.review-box{

    background:#fff;

    border-radius:22px;

    padding:35px 20px;

    text-align:center;

    border:1px solid rgba(176,141,87,.12);

    transition:.4s ease;

    box-shadow:0 15px 35px rgba(0,0,0,.06);

}

.review-box:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 55px rgba(0,0,0,.12);

    border-color:rgba(176,141,87,.3);

}

.review-box h2{

    font-size:2.8rem;

    color:var(--primary);

    margin-bottom:10px;

}

.review-box span{

    display:block;

    color:#666;

    font-size:.95rem;

}

/*==========================
        ENTRANCE
===========================*/

.review-box{

    opacity:0;

    transform:translateY(35px);

}

.review-box.show{

    opacity:1;

    transform:translateY(0);

    transition:
        opacity .8s ease,
        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:992px){

    .testimonial-stats{

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

    }

}

@media(max-width:768px){

    .testimonial-controls{

        margin:35px 0 25px;

    }

}

@media(max-width:576px){

    .testimonial-stats{

        grid-template-columns:1fr;

    }

    .review-box{

        padding:28px 18px;

    }

    .review-box h2{

        font-size:2.2rem;

    }

    .testimonial-prev,
    .testimonial-next{

        width:50px;

        height:50px;

    }

}

/*==================================================
                PART 6B.1
        CONTACT LAYOUT + INFO CARDS
==================================================*/

/*==========================
        CONTACT SECTION
===========================*/

.contact{

    position:relative;

    background:#f8f4ef;

    overflow:hidden;

    padding:120px 0;

}

.contact::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(176,141,87,.05);

    top:-140px;

    left:-120px;

    filter:blur(45px);

}

.contact::after{

    content:"";

    position:absolute;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(176,141,87,.04);

    bottom:-120px;

    right:-120px;

    filter:blur(35px);

}

/*==========================
        WRAPPER
===========================*/

.contact-wrapper{

    display:grid;

    grid-template-columns:420px 1fr;

    gap:60px;

    align-items:start;

    margin-top:70px;

}

/*==========================
        CONTACT INFO
===========================*/

.contact-info{

    display:flex;

    flex-direction:column;

    gap:25px;

}

/*==========================
        INFO CARD
===========================*/

.info-card{

    display:flex;

    align-items:flex-start;

    gap:20px;

    padding:28px;

    background:#fff;

    border-radius:22px;

    border:1px solid rgba(176,141,87,.12);

    box-shadow:0 15px 40px rgba(0,0,0,.06);

    transition:.4s ease;

}

.info-card:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 55px rgba(0,0,0,.12);

    border-color:rgba(176,141,87,.30);

}

/*==========================
        ICON
===========================*/

.info-icon{

    width:65px;

    height:65px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(176,141,87,.12);

    flex-shrink:0;

    transition:.35s ease;

}

.info-icon i{

    font-size:1.4rem;

    color:var(--primary);

    transition:.35s ease;

}

.info-card:hover .info-icon{

    background:var(--primary);

    transform:rotate(12deg);

}

.info-card:hover .info-icon i{

    color:#fff;

    transform:rotate(-12deg);

}

/*==========================
        TEXT
===========================*/

.info-card h4{

    margin-bottom:8px;

    font-size:1.45rem;

    color:#222;

}

.info-card p{

    color:#666;

    line-height:1.8;

}

/*==========================
        ENTRANCE
===========================*/

.info-card{

    opacity:0;

    transform:translateY(35px);

}

.info-card.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:1100px){

    .contact-wrapper{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .contact-wrapper{

        gap:40px;

    }

    .info-card{

        padding:24px;

    }

}

@media(max-width:576px){

    .contact{

        padding:90px 0;

    }

    .info-card{

        flex-direction:column;

        text-align:center;

        align-items:center;

    }

    .info-icon{

        width:58px;

        height:58px;

    }

    .info-card h4{

        font-size:1.3rem;

    }

}

/*==================================================
                PART 6B.2
        CONTACT FORM + INPUTS + BUTTON
==================================================*/

/*==========================
        CONTACT FORM
===========================*/

.contact-form{

    background:#fff;

    padding:45px;

    border-radius:26px;

    border:1px solid rgba(176,141,87,.12);

    box-shadow:0 20px 55px rgba(0,0,0,.08);

}

.contact-form form{

    display:flex;

    flex-direction:column;

    gap:22px;

}

/*==========================
        FORM GROUP
===========================*/

.form-group{

    display:grid;

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

    gap:20px;

}

/*==========================
        INPUTS
===========================*/

.contact-form input,
.contact-form textarea{

    width:100%;

    padding:18px 22px;

    border:1px solid rgba(176,141,87,.18);

    border-radius:16px;

    background:#faf8f5;

    font-size:1rem;

    color:#333;

    transition:.35s ease;

    resize:none;

}

.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color:#999;

}

/*==========================
        FOCUS
===========================*/

.contact-form input:focus,
.contact-form textarea:focus{

    background:#fff;

    border-color:var(--primary);

    box-shadow:0 0 0 5px rgba(176,141,87,.12);

}

/*==========================
        SUBMIT BUTTON
===========================*/

.contact-form button{

    margin-top:10px;

    width:fit-content;

    min-width:220px;

}

.contact-form button:hover{

    transform:translateY(-4px);

}

/*==========================
        FORM ANIMATION
===========================*/

.contact-form{

    opacity:0;

    transform:translateY(40px);

}

.contact-form.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

    .contact-form{

        padding:35px 25px;

    }

    .form-group{

        grid-template-columns:1fr;

        gap:18px;

    }

    .contact-form button{

        width:100%;

    }

}

@media(max-width:576px){

    .contact-form{

        padding:28px 20px;

        border-radius:20px;

    }

    .contact-form input,
    .contact-form textarea{

        padding:16px 18px;

        font-size:.95rem;

    }

}

/*==================================================
                PART 6B.3
        GOOGLE MAP • SOCIAL • FINAL CONTACT
==================================================*/

/*==========================
        GOOGLE MAP
===========================*/

.map{

    margin-top:30px;

    border-radius:22px;

    overflow:hidden;

    border:1px solid rgba(176,141,87,.15);

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

    transition:.4s ease;

}

.map:hover{

    transform:translateY(-6px);

    box-shadow:0 28px 60px rgba(0,0,0,.12);

}

.map iframe{

    width:500px;

    height:320px;

    border:0;

    display:block;

}

/*==========================
        SOCIAL LINKS
===========================*/

.contact-social{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:18px;

    margin-top:70px;

}

.contact-social a{

    width:58px;

    height:58px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#fff;

    border:1px solid rgba(176,141,87,.15);

    color:var(--primary);

    font-size:1.2rem;

    box-shadow:0 12px 30px rgba(0,0,0,.06);

    transition:.35s ease;

}

.contact-social a:hover{

    background:var(--primary);

    color:#fff;

    transform:translateY(-8px) rotate(8deg);

    box-shadow:0 20px 45px rgba(176,141,87,.28);

}

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

.contact::before{

    animation:floatOne 8s ease-in-out infinite;

}

.contact::after{

    animation:floatTwo 10s ease-in-out infinite;

}

/*==========================
        ENTRANCE
===========================*/

.contact-social{

    opacity:0;

    transform:translateY(30px);

}

.contact-social.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

    .map iframe{

        height:280px;

    }

    .contact-social{

        margin-top:50px;

        gap:15px;

    }

}

@media(max-width:576px){

    .map iframe{

        height:240px;

    }

    .contact-social{

        gap:12px;

    }

    .contact-social a{

        width:50px;

        height:50px;

        font-size:1rem;

    }

}

/*==================================================
                PART 6C.1
        FOOTER LAYOUT + COLUMNS
==================================================*/

/*==========================
        FOOTER
===========================*/

.footer{

    position:relative;

    background:#181818;

    color:#fff;

    padding:110px 0 0;

    overflow:hidden;

}

.footer::before{

    content:"";

    position:absolute;

    top:-140px;

    left:-140px;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(176,141,87,.08);

    filter:blur(45px);

}

.footer::after{

    content:"";

    position:absolute;

    bottom:-140px;

    right:-140px;

    width:280px;

    height:280px;

    border-radius:50%;

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

    filter:blur(45px);

}

/*==========================
        GRID
===========================*/

.footer-grid{

    position:relative;

    z-index:2;

    display:grid;

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

    gap:60px;

    padding-bottom:70px;

}

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

.footer-logo{

    display:inline-block;

    font-family:'Cormorant Garamond',serif;

    font-size:2.4rem;

    font-weight:700;

    color:#fff;

    margin-bottom:25px;

}

.footer-logo span{

    color:var(--primary);

    font-size:2.8rem;

}

/*==========================
        COMPANY TEXT
===========================*/

.footer-column p{

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

    line-height:1.9;

    margin-bottom:30px;

}

/*==========================
        COLUMN TITLE
===========================*/

.footer-column h3{

    color:#fff;

    margin-bottom:28px;

    font-size:1.6rem;

    position:relative;

}

.footer-column h3::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-10px;

    width:45px;

    height:3px;

    background:var(--primary);

    border-radius:5px;

}

/*==========================
        LINKS
===========================*/

.footer-column ul{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.footer-column ul li a{

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

    transition:.35s ease;

    position:relative;

    padding-left:0;

}

.footer-column ul li a:hover{

    color:var(--primary);

    padding-left:10px;

}

.footer-column ul li a::before{

    content:"";

    position:absolute;

    left:-18px;

    top:50%;

    transform:translateY(-50%);

    width:8px;

    height:2px;

    background:var(--primary);

    opacity:0;

    transition:.35s ease;

}

.footer-column ul li a:hover::before{

    opacity:1;

    left:-10px;

}

/*==========================
        ENTRANCE
===========================*/

.footer-column{

    opacity:0;

    transform:translateY(35px);

}

.footer-column.show{

    opacity:1;

    transform:translateY(0);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:1100px){

    .footer-grid{

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

    }

}

@media(max-width:768px){

    .footer{

        padding-top:90px;

    }

    .footer-grid{

        gap:45px;

    }

}

@media(max-width:576px){

    .footer-grid{

        grid-template-columns:1fr;

        gap:40px;

    }

    .footer-column{

        text-align:center;

    }

    .footer-column h3::after{

        left:50%;

        transform:translateX(-50%);

    }

}

/*==================================================
                PART 6C.2
    NEWSLETTER • SOCIAL • COPYRIGHT
==================================================*/

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

.footer-newsletter{

    margin-top:20px;

}

.footer-newsletter p{

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

    margin-bottom:20px;

    line-height:1.8;

}

.newsletter-form{

    display:flex;

    align-items:center;

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

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

    border-radius:60px;

    overflow:hidden;

    transition:.35s ease;

}

.newsletter-form:focus-within{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(176,141,87,.15);

}

.newsletter-form input{

    flex:1;

    padding:18px 22px;

    background:transparent;

    color:#fff;

    border:none;

    font-size:.95rem;

}

.newsletter-form input::placeholder{

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

}

.newsletter-form button{

    width:60px;

    height:60px;

    border:none;

    background:var(--primary);

    color:#fff;

    cursor:pointer;

    transition:.35s ease;

}

.newsletter-form button:hover{

    background:var(--primary-dark);

}

/*==========================
        SOCIAL ICONS
===========================*/

.footer-social{

    display:flex;

    gap:15px;

    margin-top:30px;

}

.footer-social a{

    width:48px;

    height:48px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

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

    color:#fff;

    transition:.35s ease;

}

.footer-social a:hover{

    background:var(--primary);

    transform:translateY(-6px);

}

/*==========================
        FOOTER BOTTOM
===========================*/

.footer-bottom{

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

    margin-top:70px;

    padding:28px 0;

}

.footer-bottom-content{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

}

.footer-bottom p{

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

    font-size:.95rem;

}

.footer-bottom-links{

    display:flex;

    gap:28px;

}

.footer-bottom-links a{

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

    transition:.35s ease;

}

.footer-bottom-links a:hover{

    color:var(--primary);

}

/*==========================
        RESPONSIVE
===========================*/

@media(max-width:768px){

    .footer-bottom-content{

        flex-direction:column;

        text-align:center;

    }

    .footer-social{

        justify-content:center;

    }

}

@media(max-width:576px){

    .newsletter-form{

        flex-direction:column;

        border-radius:20px;

    }

    .newsletter-form input{

        width:100%;

        text-align:center;

        padding:18px;

    }

    .newsletter-form button{

        width:100%;

        border-radius:0;

    }

    .footer-bottom-links{

        flex-wrap:wrap;

        justify-content:center;

        gap:18px;

    }

}

/*==================================================
                PART 6C.3.1
        GLOBAL RESPONSIVE + FINAL LAYOUT FIXES
==================================================*/

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

section{

    position:relative;

    padding:120px 0;

}

@media(max-width:992px){

    section{

        padding:100px 0;

    }

}

@media(max-width:768px){

    section{

        padding:90px 0;

    }

}

@media(max-width:576px){

    section{

        padding:75px 0;

    }

}

/*==========================
        CONTAINER
===========================*/

.container{

    width:min(92%,1280px);

    margin:auto;

}

@media(max-width:576px){

    .container{

        width:90%;

    }

}

/*==========================
        IMAGES
===========================*/

img{

    display:block;

    max-width:100%;

    height:auto;

}

picture{

    display:block;

}

/*==========================
        BUTTONS
===========================*/

.btn{

    white-space:nowrap;

}

@media(max-width:576px){

    .btn{

        width:100%;

        justify-content:center;

    }

}

/*==========================
        HEADINGS
===========================*/

.section-title{

    max-width:700px;

    margin:0 auto 20px;

    text-align:center;

}

.section-subtitle{

    text-align:center;

    margin-bottom:18px;

}

.section-description{

    max-width:700px;

    margin:0 auto 60px;

    text-align:center;

}

/*==========================
        FLEX HELPERS
===========================*/

.flex{

    display:flex;

}

.flex-center{

    display:flex;

    justify-content:center;

    align-items:center;

}

.space-between{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

@media(max-width:768px){

    .space-between{

        flex-direction:column;

        gap:20px;

    }

}

/*==========================
        GRID HELPERS
===========================*/

.grid-2{

    display:grid;

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

    gap:40px;

}

.grid-3{

    display:grid;

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

    gap:30px;

}

.grid-4{

    display:grid;

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

    gap:25px;

}

@media(max-width:992px){

    .grid-3,

    .grid-4{

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

    }

}

@media(max-width:768px){

    .grid-2,

    .grid-3,

    .grid-4{

        grid-template-columns:1fr;

    }

}

/*==========================
        OVERFLOW FIXES
===========================*/

body{

    overflow-x:hidden;

}

html{

    scroll-padding-top:90px;

}

/*==========================
        SELECTION
===========================*/

::selection{

    background:var(--primary);

    color:#fff;

}

::-moz-selection{

    background:var(--primary);

    color:#fff;

}

/*==================================================
                PART 6C.3.2
    ACCESSIBILITY • PERFORMANCE • FINAL POLISH
==================================================*/

/*==========================
    SMOOTH SCROLL
===========================*/

html{
    scroll-behavior:smooth;
}

/*==========================
    FOCUS STATES
===========================*/

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{

    outline:3px solid var(--primary);

    outline-offset:4px;

    border-radius:8px;

}

/*==========================
    CLICKABLE ELEMENTS
===========================*/

button,
.btn,
a,
input[type="submit"]{

    cursor:pointer;

}

button:disabled{

    opacity:.6;

    cursor:not-allowed;

}

/*==========================
    TRANSITIONS
===========================*/

a,
button,
.btn,
input,
textarea,
img{

    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        transform .3s ease,
        box-shadow .3s ease,
        opacity .3s ease;

}

/*==========================
    SVG
===========================*/

svg{

    display:block;

    max-width:100%;

}

/*==========================
    RESPONSIVE VIDEO
===========================*/

iframe,
video{

    max-width:100%;

    display:block;

}

/*==========================
    FORM FIXES
===========================*/

input,
textarea,
button{

    font:inherit;

}

textarea{

    min-height:170px;

}

/*==========================
    IMAGE RENDERING
===========================*/

img{

    image-rendering:auto;

}

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

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

    *{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto !important;

    }

}

/*==========================
    PRINT
===========================*/

@media print{

    .loader,
    .cursor,
    .cursor2,
    .top-btn,
    .hero-social,
    .scroll-indicator,
    .menu-btn{

        display:none !important;

    }

    body{

        background:#fff;

        color:#000;

    }

    a{

        color:#000;

        text-decoration:none;

    }

}

/*==========================
    PERFORMANCE
===========================*/

.hero img,
.portfolio img,
.about img,
.expertise img{

    will-change:transform;

}

/*==========================
    FINAL UTILITIES
===========================*/

.hidden{

    display:none !important;

}

.visible{

    display:block !important;

}

.text-center{

    text-align:center;

}

.w-100{

    width:100%;

}

.h-100{

    height:100%;

}

/*==========================
        END OF CSS
===========================*/

