
/* =========================================================
   ROOT
========================================================= */

:root{
    --orange:#ff6338;
    --orange-light:#ff8c66;
    --cream:#fff8f1;
    --dark:#151515;
    --gray:#777;
    --light:#f5f1ec;
    --white:#fff;
}


/* =========================================================
   RESET
========================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'DM Sans',sans-serif;
    color:var(--dark);
    background:#fff;
    overflow-x:hidden;
}

a{
    text-decoration:none;
    color:inherit;
}

img{
    max-width:100%;
    display:block;
}


/* =========================================================
   LOADER
========================================================= */

.loader{
    position:fixed;
    inset:0;
    background:var(--cream);
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    transition:1s;
}

.loader-logo{
    font-family:'Playfair Display',serif;
    font-size:45px;
    font-weight:700;
}

.loader-logo span{
    color:var(--orange);
}

.loader-line{
    width:180px;
    height:3px;
    background:#e4dbd1;
    margin-top:20px;
    overflow:hidden;
}

.loader-line span{
    display:block;
    width:50%;
    height:100%;
    background:var(--orange);
    animation:loader 1.2s infinite;
}

@keyframes loader{

    0%{
        transform:translateX(-150%);
    }

    100%{
        transform:translateX(350%);
    }

}


/* =========================================================
   NAVBAR
========================================================= */

.navbar-custom{
    position:fixed;
    z-index:5000;
    top:18px;
    left:50%;
    transform:translateX(-50%);
    width:92%;
    max-width:1220px;
    padding:13px 18px;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.9);
    border-radius:50px;
    box-shadow:0 15px 50px rgba(0,0,0,.1);
}
/* =========================================
   HAPPY CLICKS UNIQUE LOGO
========================================= */

.happyclicks-logo{
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    width:auto;
    height:auto;
    padding:0;
    margin:0;
}

.happyclicks-logo-box{
    width:150px;
    height:150px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:transparent;
    flex-shrink:0;

    /* Padding */
    padding:8px;
    margin:0;
}

.happyclicks-logo-box img{
    width:100%;
    height:100%;
    object-fit:contain;
    display:block;
}
.nav-links{
    display:flex;
    align-items:center;
    gap:26px;
}

.nav-links a{
    font-size:14px;
    font-weight:700;
    color:#333;
    position:relative;
}

.nav-links a::after{
    content:"";
    position:absolute;
    width:0;
    height:2px;
    left:0;
    bottom:-6px;
    background:var(--orange);
    transition:.3s;
}

.nav-links a:hover::after{
    width:100%;
}

.nav-contact{
    background:var(--dark);
    color:#fff !important;
    padding:11px 20px;
    border-radius:30px;
}

.nav-contact:hover{
    background:var(--orange);
}

.menu-btn{
    display:none;
    font-size:26px;
    cursor:pointer;
}


/* =========================================================
   HERO
========================================================= */

.hero{
    height:60vh;
    min-height:700px;
    position:relative;
    overflow:hidden;
    background:#111;
}

.hero-slider{
    position:absolute;
    inset:0;
}

.hero-slide{
    position:absolute;
    inset:0;
    opacity:0;
    transform:scale(1.10);
    transition:
        opacity 1.5s ease,
        transform 7s ease;
}

.hero-slide.active{
    opacity:1;
    transform:scale(1);
}

.hero-slide img{
    width:100%;
    height:100%;
    object-fit:cover;
}


/* HERO IMAGE OVERLAY */

.hero-slide::after{
    content:"";
    position:absolute;
    inset:0;

}

/* HERO BOTTOM FADE */

.hero::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:180px;

    background:
        linear-gradient(
            transparent,
            rgba(0,0,0,.7)
        );

    z-index:2;
}


/* HERO CONTENT */

.hero-content{
    position:absolute;
    z-index:20;
    left:7%;
    top:50%;
    transform:translateY(-50%);
    max-width:760px;
    color:#fff;
}

.hero-label{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:9px 17px;
    border-radius:30px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.3);
    backdrop-filter:blur(12px);
    font-size:13px;
    font-weight:700;
    margin-bottom:24px;
}

.hero-label i{
    color:#ffd166;
}

.hero-title{
    font-family:'Playfair Display',serif;
    font-size:clamp(55px,7vw,105px);
    line-height:.93;
    letter-spacing:-4px;
}

.hero-title span{
    display:block;
    color:#ff8963;
    font-style:italic;
}

.hero-description{
    max-width:540px;
    font-size:18px;
    line-height:1.75;
    color:rgba(255,255,255,.88);
    margin-top:28px;
}

.hero-buttons{
    display:flex;
    gap:14px;
    margin-top:30px;
    flex-wrap:wrap;
}


/* =========================================================
   BUTTONS
========================================================= */

.btn-main{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 25px;
    background:var(--orange);
    color:#fff;
    border-radius:40px;
    font-weight:800;
    transition:.35s;
}

.btn-main:hover{
    background:#fff;
    color:#111;
    transform:translateY(-4px);
}

.btn-light-outline{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 25px;
    color:#fff;
    border:1px solid rgba(255,255,255,.5);
    border-radius:40px;
    background:rgba(255,255,255,.1);
    backdrop-filter:blur(10px);
    font-weight:800;
    transition:.35s;
}

.btn-light-outline:hover{
    background:#fff;
    color:#111;
    transform:translateY(-4px);
}


/* =========================================================
   SLIDER DOTS
========================================================= */

.slider-dots{
    position:absolute;
    z-index:30;
    right:7%;
    top:50%;
    transform:translateY(-50%);

    display:flex;
    flex-direction:column;
    gap:12px;
}

.slider-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    border:1px solid #fff;
    cursor:pointer;
    transition:.3s;
}

.slider-dot.active{
    background:#fff;
    transform:scale(1.5);
}


/* =========================================================
   SLIDER COUNTER
========================================================= */

.slider-counter{
    position:absolute;
    z-index:30;
    right:7%;
    bottom:60px;

    display:flex;
    align-items:center;
    gap:14px;

    color:#fff;
}

.current-number{
    font-family:'Playfair Display',serif;
    font-size:45px;
}

.total-number{
    opacity:.6;
    font-size:14px;
}

.counter-line{
    width:90px;
    height:1px;
    background:rgba(255,255,255,.4);
    position:relative;
}

.counter-progress{
    position:absolute;
    height:2px;
    left:0;
    top:0;
    width:0;
    background:#fff;
}


/* =========================================================
   SCROLL INDICATOR
========================================================= */

.scroll-down{
    position:absolute;
    z-index:30;
    left:7%;
    bottom:55px;

    color:#fff;

    display:flex;
    align-items:center;
    gap:12px;

    text-transform:uppercase;
    letter-spacing:3px;
    font-size:10px;
}

.scroll-mouse{
    width:25px;
    height:39px;
    border:1px solid rgba(255,255,255,.8);
    border-radius:20px;
    position:relative;
}

.scroll-mouse::before{
    content:"";
    position:absolute;
    width:3px;
    height:7px;
    border-radius:10px;
    background:#fff;
    top:7px;
    left:50%;
    transform:translateX(-50%);
    animation:mouse 1.5s infinite;
}

@keyframes mouse{

    0%{
        opacity:0;
        transform:translate(-50%,0);
    }

    50%{
        opacity:1;
    }

    100%{
        opacity:0;
        transform:translate(-50%,12px);
    }

}


/* =========================================================
   MARQUEE
========================================================= */

/* =========================================================
   COMMON SECTION
========================================================= */

.section{
    padding:120px 0;
}

.small-label{
    color:var(--orange);
    text-transform:uppercase;
    letter-spacing:3px;
    font-size:12px;
    font-weight:800;
    margin-bottom:15px;
}

.section-title{
    font-family:'Playfair Display',serif;
    font-size:clamp(42px,5vw,70px);
    line-height:1.05;
}

.section-title em{
    color:var(--orange);
}


/* =========================================================
   ABOUT
========================================================= */

.about{
    background:#fff;
}

.about-image-wrap{
    position:relative;
    padding:15px;
}

.about-image{
    width:100%;
    height:530px;
    object-fit:cover;
    border-radius:30px;
}

.about-badge{
    position:absolute;
    left:-10px;
    bottom:-10px;

    width:150px;
    height:150px;

    border-radius:50%;

    background:var(--orange);
    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;

    font-weight:800;

    padding:20px;

    transform:rotate(-8deg);
}

.about-text{
    color:#777;
    font-size:18px;
    line-height:1.9;
    margin-top:25px;
}


/* =========================================================
   SERVICES
========================================================= */

.services{
    background:var(--light);
}

.service-card{
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    height:100%;
    position:relative;
    transition:.5s;
}

.service-card:hover{
    transform:translateY(-12px);
    box-shadow:0 25px 70px rgba(0,0,0,.12);
}

.service-image{
    height:310px;
    overflow:hidden;
}

.service-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.7s;
}

.service-card:hover .service-image img{
    transform:scale(1.08);
}

.service-body{
    padding:30px;
}

.service-number{
    color:var(--orange);
    font-size:12px;
    font-weight:800;
    letter-spacing:2px;
}

.service-body h3{
    font-family:'Playfair Display',serif;
    font-size:31px;
    margin:10px 0;
}

.service-body p{
    color:#777;
    line-height:1.7;
}

.service-icon{
    position:absolute;
    right:25px;
    bottom:25px;

    width:46px;
    height:46px;

    border-radius:50%;

    background:#151515;
    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    transition:.3s;
}

.service-card:hover .service-icon{
    background:var(--orange);
    transform:rotate(45deg);
}


/* =========================================================
   WHY SECTION
========================================================= */

.why{
    background:#151515;
    color:#fff;
}

.why .section-title{
    color:#fff;
}

.why-text{
    color:#999;
    line-height:1.8;
    max-width:600px;
    margin-top:25px;
}

.feature{
    display:flex;
    gap:18px;
    padding:20px 0;
    border-bottom:1px solid rgba(255,255,255,.12);
}

.feature-icon{
    min-width:44px;
    height:44px;

    border-radius:50%;

    background:rgba(255,99,56,.15);
    color:var(--orange);

    display:flex;
    align-items:center;
    justify-content:center;
}

.feature h5{
    margin:0 0 5px;
}

.feature p{
    margin:0;
    color:#888;
}


/* =========================================================
   STATS
========================================================= */

.stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
}

.stat{
    min-height:170px;

    padding:30px;

    border-radius:22px;

    border:1px solid rgba(255,255,255,.12);

    background:rgba(255,255,255,.03);

    transition:.4s;
}

.stat:hover{
    transform:translateY(-8px);
    background:rgba(255,255,255,.07);
}

.stat h3{
    color:var(--orange);
    font-family:'Playfair Display',serif;
    font-size:42px;
}

.stat p{
    color:#999;
}


/* =========================================================
   GALLERY
========================================================= */

.gallery{
    background:#fff;
}

.gallery-grid{
    display:grid;

    grid-template-columns:
        1.1fr .9fr .9fr;

    grid-template-rows:
        280px 280px;

    gap:15px;

    margin-top:55px;
}

.gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:22px;
}

.gallery-item:first-child{
    grid-row:span 2;
}

.gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.7s;
}

.gallery-item:hover img{
    transform:scale(1.08);
}

.gallery-overlay{
    position:absolute;
    inset:0;

    display:flex;
    align-items:end;

    padding:25px;

    background:
        linear-gradient(
            transparent,
            rgba(0,0,0,.75)
        );

    opacity:0;

    transition:.4s;
}

.gallery-item:hover .gallery-overlay{
    opacity:1;
}

.gallery-overlay span{
    color:#fff;
    font-weight:700;
}


/* =========================================================
   PROCESS
========================================================= */

.process{
    background:var(--cream);
}

.process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
    margin-top:60px;
}

.process-item{
    padding:25px 15px;
    border-top:2px solid #ddd;
    transition:.3s;
}

.process-item:hover{
    border-color:var(--orange);
}

.process-number{
    font-family:'Playfair Display',serif;
    color:#ddd;
    font-size:55px;
}

.process-item h4{
    margin-top:15px;
}

.process-item p{
    color:#777;
    line-height:1.7;
}




/* =========================================================
   RESPONSIVE - TABLET
========================================================= */

@media(max-width:991px){

    .navbar-custom{
        width:94%;
    }

    .nav-links{
        display:none;

        position:absolute;

        top:70px;
        left:0;
        right:0;

        background:#fff;

        padding:22px;

        border-radius:25px;

        flex-direction:column;

        align-items:flex-start;

        box-shadow:0 20px 50px rgba(0,0,0,.12);
    }

    .nav-links.show{
        display:flex;
    }

    .menu-btn{
        display:block;
    }

    .hero-content{
        left:6%;
        right:6%;
    }

    .hero-title{
        font-size:70px;
    }

    .slider-dots{
        display:none;
    }

    .process-grid{
        grid-template-columns:1fr 1fr;
    }

}


/* =========================================================
   RESPONSIVE - MOBILE
========================================================= */

@media(max-width:767px){

    .navbar-custom{
        top:10px;
        width:94%;
        padding:10px 14px;
    }

    .hero{
        min-height:700px;
    }

    .hero-content{
        top:52%;
    }

    .hero-title{
        font-size:52px;
        letter-spacing:-2px;
    }

    .hero-description{
        font-size:16px;
    }

    .slider-counter{
        right:6%;
        bottom:25px;
    }

    .scroll-down{
        display:none;
    }

    .section{
        padding:80px 0;
    }

    .about-image{
        height:400px;
    }

    .about-badge{
        width:125px;
        height:125px;
        font-size:13px;
    }

    .gallery-grid{

        grid-template-columns:
            1fr 1fr;

        grid-template-rows:
            220px
            220px
            220px;
    }

    .gallery-item:first-child{
        grid-column:span 2;
        grid-row:span 1;
    }

    .process-grid{
        grid-template-columns:1fr;
    }

    .location-info{
        padding:35px 25px;
    }

    .location-title{
        font-size:43px;
    }

    .map-area,
    .map-area iframe{
        min-height:380px;
    }

    .contact-box{
        padding:30px 20px;
    }

    .contact-title{
        font-size:42px;
    }

    .cta{
        padding:90px 20px;
    }

    .cta h2{
        font-size:45px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

    .logo{
        font-size:15px;
    }

    .logo-icon{
        width:36px;
        height:36px;
    }

    .hero-title{
        font-size:43px;
    }

    .hero-label{
        font-size:11px;
        padding:8px 13px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:flex-start;
    }

    .btn-main,
    .btn-light-outline{
        padding:13px 20px;
        font-size:14px;
    }

    .about-image{
        height:350px;
    }

    .stats{
        grid-template-columns:1fr;
    }

    .gallery-grid{
        grid-template-columns:1fr;
        grid-template-rows:auto;
    }

    .gallery-item:first-child{
        grid-column:auto;
    }

    .gallery-item{
        height:260px;
    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        transition-duration:.01ms !important;

        scroll-behavior:auto !important;

    }

}



/* contact */
:root{
    --orange:#ff6338;
    --orange2:#ff8c66;
    --dark:#171717;
    --dark2:#242424;
    --cream:#fff8f3;
    --light:#f7f5f2;
    --white:#ffffff;
    --text:#262626;
    --muted:#777;
    --border:#eeeeee;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'DM Sans',sans-serif;
    background:#fff;
    color:var(--text);
    overflow-x:hidden;
}

a{
    text-decoration:none;
}


/* =========================================
   LOADER
========================================= */

.loader{
    position:fixed;
    inset:0;
    background:#fff;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.6s ease;
}

.loader.hide{
    opacity:0;
    visibility:hidden;
}

.loader-box{
    text-align:center;
}

.loader-logo{
    width:65px;
    height:65px;
    border-radius:50%;
    background:var(--orange);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:25px;
    margin:auto;
    animation:pulseLoader 1.4s infinite;
}

.loader-text{
    margin-top:15px;
    font-size:14px;
    font-weight:700;
    letter-spacing:3px;
}

@keyframes pulseLoader{
    0%,100%{
        transform:scale(1);
    }
    50%{
        transform:scale(1.12);
    }
}


/* =========================================
   NAVBAR
========================================= */

.navbar-custom{
    position:fixed;
    top:27px;
    left:50%;
    transform:translateX(-50%);
    width:min(1180px,92%);
    padding:5px 20px;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border:1px solid rgba(0,0,0,.06);
    border-radius:18px;
    z-index:1000;
    box-shadow:0 12px 35px rgba(0,0,0,.07);
}

.logo{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--dark);
    font-size:20px;
    font-weight:800;
}

.logo-icon{
    width:39px;
    height:39px;
    border-radius:12px;
    
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:19px;
}

.nav-links{
    display:flex;
    align-items:center;
    gap:27px;
}

.nav-links a{
    color:#111;
    font-size:21px;
    font-weight:600;
    position:relative;
    transition:.3s;
}

.nav-links a:hover{
    color:var(--orange);
}

.nav-links a::after{
    content:"";
    position:absolute;
    width:0;
    height:2px;
    left:0;
    bottom:-6px;
    background:var(--orange);
    transition:.3s;
}

.nav-links a:hover::after{
    width:100%;
}

.nav-contact-btn{
    background:var(--dark);
    color:#fff !important;
    padding:11px 18px;
    border-radius:12px;
}

.nav-contact-btn:hover{
    background:var(--orange);
}

.mobile-btn{
    display:none;
    border:0;
    background:none;
    font-size:27px;
}


/* =========================================
   CONTACT HERO
========================================= */

.contact-hero{
    min-height:570px;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 10% 20%,rgba(255,99,56,.18),transparent 30%),
        radial-gradient(circle at 90% 20%,rgba(255,171,120,.20),transparent 32%),
        linear-gradient(135deg,#fff8f3,#fff);
    display:flex;
    align-items:center;
    padding:150px 0 90px;
}

.hero-circle{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}

.circle-one{
    width:430px;
    height:430px;
    right:-130px;
    top:80px;
    border:1px solid rgba(255,99,56,.15);
    animation:rotateCircle 18s linear infinite;
}

.circle-two{
    width:300px;
    height:300px;
    right:-70px;
    top:145px;
    border:1px dashed rgba(255,99,56,.22);
    animation:rotateCircle 12s linear infinite reverse;
}

.circle-three{
    width:90px;
    height:90px;
    background:rgba(255,99,56,.12);
    left:7%;
    top:180px;
    animation:float 4s ease-in-out infinite;
}

@keyframes rotateCircle{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes float{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-20px);
    }
}

.hero-content{
    position:relative;
    z-index:2;
    max-width:750px;
}

.small-label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--orange);
    font-weight:700;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-bottom:18px;
}

.small-label span{
    width:35px;
    height:2px;
    background:var(--orange);
}

.hero-title{
    font-family:'Playfair Display',serif;
    font-size:clamp(48px,7vw,88px);
    line-height:1;
    color:var(--dark);
    margin-bottom:25px;
}

.hero-title em{
    color:var(--orange);
    font-style:normal;
}

.hero-description{
    max-width:590px;
    font-size:18px;
    line-height:1.8;
    color:#6c6c6c;
}

.hero-badge{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:30px;
    padding:11px 16px;
    background:#fff;
    border:1px solid #eee;
    border-radius:50px;
    box-shadow:0 8px 25px rgba(0,0,0,.06);
    font-size:13px;
    font-weight:600;
}

.hero-badge i{
    color:#21b35b;
}


/* =========================================
   MAIN CONTACT
========================================= */

.contact-section{
    padding:110px 0;
    background:#fff;
}

.section-label{
    color:var(--orange);
    font-size:13px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-bottom:12px;
}

.section-title{
    font-family:'Playfair Display',serif;
    font-size:clamp(38px,5vw,60px);
    line-height:1.1;
    margin-bottom:18px;
}

.section-description{
    color:#777;
    line-height:1.8;
    max-width:550px;
}


/* =========================================
   CONTACT INFO CARDS
========================================= */

.info-card{
    position:relative;
    background:#fff;
    border:1px solid var(--border);
    border-radius:22px;
    padding:25px;
    margin-bottom:18px;
    display:flex;
    align-items:flex-start;
    gap:18px;
    transition:.4s ease;
    overflow:hidden;
}

.info-card::before{
    content:"";
    position:absolute;
    width:100px;
    height:100px;
    border-radius:50%;
    background:rgba(255,99,56,.07);
    right:-40px;
    top:-40px;
    transition:.4s;
}

.info-card:hover{
    transform:translateY(-6px);
    border-color:rgba(255,99,56,.25);
    box-shadow:0 18px 40px rgba(0,0,0,.08);
}

.info-card:hover::before{
    transform:scale(1.5);
}

.info-icon{
    min-width:52px;
    width:52px;
    height:52px;
    border-radius:15px;
    background:#fff0eb;
    color:var(--orange);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    position:relative;
    z-index:1;
}

.info-content{
    position:relative;
    z-index:1;
}

.info-content h5{
    margin-bottom:6px;
    font-size:16px;
    font-weight:700;
}

.info-content p{
    margin:0;
    color:#777;
    font-size:14px;
    line-height:1.7;
}

.info-content a{
    color:#777;
    transition:.3s;
}

.info-content a:hover{
    color:var(--orange);
}


/* =========================================
   FORM
========================================= */

.contact-form-box{
    background:#171717;
    border-radius:30px;
    padding:45px;
    position:relative;
    overflow:hidden;
    box-shadow:0 25px 60px rgba(0,0,0,.16);
}

.contact-form-box::before{
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    border-radius:50%;
    background:rgba(255,99,56,.13);
    right:-130px;
    top:-140px;
}

.contact-form-box::after{
    content:"";
    position:absolute;
    width:180px;
    height:180px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.08);
    left:-70px;
    bottom:-80px;
}

.form-title{
    color:#fff;
    font-family:'Playfair Display',serif;
    font-size:38px;
    margin-bottom:8px;
    position:relative;
    z-index:2;
}

.form-subtitle{
    color:#a8a8a8;
    font-size:14px;
    margin-bottom:30px;
    position:relative;
    z-index:2;
}

.form-group{
    position:relative;
    z-index:2;
    margin-bottom:20px;
}

.form-control-custom,
.form-select-custom{
    width:100%;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.07);
    color:#fff;
    border-radius:13px;
    padding:15px 17px;
    outline:none;
    font-family:inherit;
    transition:.3s;
}

.form-control-custom::placeholder{
    color:#858585;
}

.form-control-custom:focus,
.form-select-custom:focus{
    border-color:var(--orange);
    background:rgba(255,255,255,.1);
    box-shadow:0 0 0 3px rgba(255,99,56,.1);
}

.form-select-custom{
    color:#aaa;
}

.form-select-custom option{
    color:#222;
}

textarea.form-control-custom{
    min-height:145px;
    resize:none;
}

.submit-btn{
    width:100%;
    border:0;
    padding:15px 20px;
    border-radius:13px;
    background:linear-gradient(135deg,var(--orange),#ff8b65);
    color:#fff;
    font-weight:700;
    font-size:15px;
    transition:.35s;
    position:relative;
    z-index:2;
    overflow:hidden;
}

.submit-btn:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 30px rgba(255,99,56,.3);
}

.submit-btn i{
    margin-left:8px;
}


/* =========================================
   MAP
========================================= */

.location-section{
    background:var(--light);
    padding:100px 0;
}

.map-wrapper{
    margin-top:45px;
    border-radius:28px;
    overflow:hidden;
    height:450px;
    background:#ddd;
    box-shadow:0 20px 50px rgba(0,0,0,.09);
}

.map-wrapper iframe{
    width:100%;
    height:100%;
    border:0;
}


/* =========================================
   CTA
========================================= */

.cta-section{
    padding:100px 0;
    background:
        radial-gradient(circle at 20% 50%,rgba(255,255,255,.13),transparent 30%),
        linear-gradient(135deg,#ff6338,#ff8d67);
    color:#fff;
    position:relative;
    overflow:hidden;
}

.cta-section::before{
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.12);
    right:-200px;
    top:-200px;
}

.cta-section::after{
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.1);
    left:-120px;
    bottom:-170px;
}

.cta-content{
    position:relative;
    z-index:2;
    text-align:center;
}

.cta-content h2{
    font-family:'Playfair Display',serif;
    font-size:clamp(38px,5vw,62px);
    margin-bottom:15px;
}

.cta-content p{
    max-width:600px;
    margin:0 auto 30px;
    color:rgba(255,255,255,.85);
    line-height:1.8;
}

.cta-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 25px;
    border-radius:50px;
    background:#fff;
    color:var(--orange);
    font-weight:800;
    transition:.3s;
}

.cta-btn:hover{
    transform:translateY(-4px);
    color:var(--dark);
    box-shadow:0 15px 30px rgba(0,0,0,.15);
}


/* =========================================
   FOOTER
========================================= */

footer{
    background:#141414;
    color:#fff;
    padding:70px 0 25px;
}

.footer-logo{
    font-size:22px;
    font-weight:800;
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
}

.footer-logo-icon{
    width:40px;
    height:40px;
    border-radius:12px;
    background:var(--orange);
    display:flex;
    align-items:center;
    justify-content:center;
}

.footer-text{
    color:#888;
    max-width:380px;
    line-height:1.8;
    font-size:14px;
}

.footer-title{
    font-size:15px;
    font-weight:700;
    margin-bottom:18px;
}

.footer-links{
    list-style:none;
    padding:0;
    margin:0;
}

.footer-links li{
    margin-bottom:10px;
}

.footer-links a{
    color:#888;
    font-size:14px;
    transition:.3s;
}

.footer-links a:hover{
    color:var(--orange);
    padding-left:4px;
}

.socials{
    display:flex;
    gap:10px;
    margin-top:20px;
}

.socials a{
    width:38px;
    height:38px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#222;
    color:#fff;
    transition:.3s;
}

.socials a:hover{
    background:var(--orange);
    transform:translateY(-4px);
}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    margin-top:50px;
    padding-top:20px;
    text-align:center;
    color:#666;
    font-size:13px;
}


/* =========================================
   SCROLL REVEAL
========================================= */

.reveal{
    opacity:0;
    transform:translateY(35px);
    transition:1s ease;
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
}


/* =========================================
   FLOATING WHATSAPP
========================================= */

.whatsapp{
    position:fixed;
    right:25px;
    bottom:25px;
    width:58px;
    height:58px;
    border-radius:50%;
    background:#25d366;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:27px;
    z-index:900;
    box-shadow:0 10px 30px rgba(37,211,102,.3);
    animation:whatsappPulse 2s infinite;
}

.whatsapp:hover{
    color:#fff;
    transform:scale(1.08);
}

@keyframes whatsappPulse{
    0%{
        box-shadow:0 0 0 0 rgba(37,211,102,.4);
    }
    70%{
        box-shadow:0 0 0 16px rgba(37,211,102,0);
    }
    100%{
        box-shadow:0 0 0 0 rgba(37,211,102,0);
    }
}


/* =========================================
   RESPONSIVE
========================================= */

@media(max-width:991px){

    .nav-links{
        position:absolute;
        left:0;
        right:0;
        top:70px;
        background:#fff;
        border-radius:18px;
        padding:20px;
        flex-direction:column;
        align-items:flex-start;
        gap:18px;
        box-shadow:0 20px 40px rgba(0,0,0,.1);
        opacity:0;
        visibility:hidden;
        transform:translateY(-10px);
        transition:.3s;
    }

    .nav-links.show{
        opacity:1;
        visibility:visible;
        transform:translateY(0);
    }

    .mobile-btn{
        display:block;
    }

    .nav-contact-btn{
        width:100%;
        text-align:center;
    }

    .contact-hero{
        min-height:520px;
    }

    .contact-form-box{
        margin-top:40px;
    }
}


@media(max-width:767px){

    .navbar-custom{
        top:10px;
        width:94%;
    }

    .logo{
        font-size:17px;
    }

    .logo-icon{
        width:35px;
        height:35px;
    }

    .contact-hero{
        padding:140px 0 75px;
    }

    .hero-title{
        font-size:50px;
    }

    .hero-description{
        font-size:16px;
    }

    .contact-section,
    .location-section,
    .cta-section{
        padding:75px 0;
    }

    .contact-form-box{
        padding:28px 22px;
        border-radius:22px;
    }

    .form-title{
        font-size:31px;
    }

    .map-wrapper{
        height:350px;
        border-radius:20px;
    }

    .whatsapp{
        width:52px;
        height:52px;
        right:18px;
        bottom:18px;
        font-size:24px;
    }
}



/* about */
/* =========================================================
   HAPPY CLICKS - CREATIVE ABOUT
========================================================= */

.hc-about-section{
    position:relative;
    padding:30px 0;
    background:#fff8ef;
    overflow:hidden;
}

/* Decorative circles */

.hc-about-circle{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}

.hc-circle-one{
    width:420px;
    height:420px;
    border:1px solid rgba(239,108,58,.15);
    top:-180px;
    right:-150px;
    animation:hcFloat 7s ease-in-out infinite;
}

.hc-circle-two{
    width:260px;
    height:260px;
    border:1px solid rgba(143,16,43,.12);
    bottom:80px;
    left:-130px;
    animation:hcFloat 9s ease-in-out infinite reverse;
}

@keyframes hcFloat{
    0%,100%{
        transform:translateY(0) rotate(0deg);
    }

    50%{
        transform:translateY(-25px) rotate(8deg);
    }
}


/* TOP LABEL */

.hc-about-top{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-bottom:70px;
}

.hc-about-line{
    width:55px;
    height:1px;
    background:#ef6c3a;
}

.hc-about-label{
    font-size:12px;
    font-weight:700;
    letter-spacing:4px;
    color:#8f102b;
}


/* VISUAL */

.hc-about-visual{
    position:relative;
    min-height:580px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.hc-about-big-text,
.hc-about-small-text{
    position:absolute;
    font-family:'Playfair Display',serif;
    font-weight:700;
    letter-spacing:8px;
    color:transparent;
    -webkit-text-stroke:1px rgba(143,16,43,.18);
    pointer-events:none;
}

.hc-about-big-text{
    top:15px;
    left:-20px;
    font-size:100px;
}

.hc-about-small-text{
    bottom:15px;
    right:-20px;
    font-size:85px;
}


/* IMAGE */

.hc-about-image-wrap{
    position:relative;
    width:75%;
    z-index:2;
}

.hc-about-image{
    height:500px;
    overflow:hidden;
    border-radius:180px 180px 20px 20px;
    box-shadow:0 30px 70px rgba(60,25,10,.15);
}

.hc-about-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .8s ease;
}

.hc-about-image:hover img{
    transform:scale(1.08);
}


/* BADGE */

.hc-about-badge{
    position:absolute;
    width:120px;
    height:120px;
    right:-45px;
    bottom:35px;
    background:#8f102b;
    color:#fff;
    border-radius:50%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    box-shadow:0 20px 40px rgba(143,16,43,.25);
    animation:hcBadge 4s ease-in-out infinite;
}

.hc-about-badge i{
    font-size:25px;
    margin-bottom:6px;
}

.hc-about-badge span{
    font-size:10px;
    font-weight:700;
    letter-spacing:2px;
    line-height:1.5;
}

@keyframes hcBadge{
    0%,100%{
        transform:rotate(-8deg) translateY(0);
    }

    50%{
        transform:rotate(4deg) translateY(-10px);
    }
}


/* CONTENT */

.hc-about-content{
    position:relative;
    z-index:2;
}

.hc-about-mini-title{
    display:inline-block;
    color:#ef6c3a;
    font-size:12px;
    font-weight:800;
    letter-spacing:3px;
    margin-bottom:18px;
}

.hc-about-content h2{
    margin:0 0 25px;
    font-family:'Playfair Display',serif;
    font-size:52px;
    line-height:1.12;
    color:#241815;
}

.hc-about-content h2 span{
    color:#8f102b;
    font-style:italic;
}

.hc-about-content p{
    color:#685c56;
    font-size:15px;
    line-height:1.9;
    margin-bottom:15px;
}


/* HIGHLIGHT */

.hc-about-highlight{
    display:flex;
    align-items:center;
    gap:16px;
    padding:20px;
    margin:28px 0;
    background:#fff;
    border-left:4px solid #ef6c3a;
    box-shadow:0 12px 35px rgba(70,30,10,.07);
}

.hc-highlight-icon{
    width:48px;
    height:48px;
    min-width:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff0e6;
    color:#ef6c3a;
    font-size:20px;
}

.hc-about-highlight strong{
    display:block;
    color:#241815;
    font-size:15px;
    margin-bottom:4px;
}

.hc-about-highlight small{
    color:#85766f;
    font-size:12px;
}


/* BUTTON */

.hc-about-btn{
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:15px 24px;
    background:#8f102b;
    color:#fff;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    letter-spacing:1.5px;
    transition:.35s ease;
}

.hc-about-btn i{
    font-size:17px;
    transition:.35s ease;
}

.hc-about-btn:hover{
    background:#ef6c3a;
    color:#fff;
    transform:translateY(-4px);
}

.hc-about-btn:hover i{
    transform:translate(4px,-4px);
}


/* WHY SECTION */

.hc-why-section{
    margin-top:120px;
}

.hc-why-heading{
    text-align:center;
    margin-bottom:45px;
}

.hc-why-heading span{
    color:#ef6c3a;
    font-size:11px;
    font-weight:800;
    letter-spacing:3px;
}

.hc-why-heading h3{
    margin-top:12px;
    font-family:'Playfair Display',serif;
    font-size:42px;
    line-height:1.2;
    color:#241815;
}

.hc-why-heading em{
    color:#8f102b;
}


/* FEATURE CARD */

.hc-feature-card{
    position:relative;
    height:100%;
    min-height:250px;
    padding:28px 22px;
    background:#fff;
    border:1px solid rgba(143,16,43,.08);
    transition:.4s ease;
    overflow:hidden;
}

.hc-feature-card:before{
    content:"";
    position:absolute;
    width:0;
    height:0;
    background:#fff0e6;
    border-radius:50%;
    right:-40px;
    bottom:-40px;
    transition:.5s ease;
}

.hc-feature-card:hover{
    transform:translateY(-10px);
    box-shadow:0 25px 50px rgba(60,25,10,.1);
    border-color:transparent;
}

.hc-feature-card:hover:before{
    width:170px;
    height:170px;
}

.hc-feature-number{
    position:absolute;
    top:15px;
    right:18px;
    color:#d8cdc7;
    font-size:11px;
    font-weight:700;
}

.hc-feature-icon{
    width:52px;
    height:52px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff0e6;
    color:#ef6c3a;
    font-size:22px;
    margin-bottom:25px;
    position:relative;
    z-index:1;
}

.hc-feature-card h4{
    font-family:'Playfair Display',serif;
    font-size:20px;
    line-height:1.2;
    color:#241815;
    position:relative;
    z-index:1;
}

.hc-feature-card p{
    color:#786b64;
    font-size:12px;
    line-height:1.7;
    margin:12px 0 0;
    position:relative;
    z-index:1;
}


/* STATEMENT */

.hc-about-statement{
    position:relative;
    margin-top:100px;
    padding:70px 30px;
    text-align:center;
    background:#8f102b;
    color:#fff;
    overflow:hidden;
}

.hc-about-statement:before{
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:50%;
    top:-180px;
    left:-100px;
}

.hc-about-statement:after{
    content:"";
    position:absolute;
    width:250px;
    height:250px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    bottom:-160px;
    right:-80px;
}

.hc-statement-icon{
    font-size:38px;
    color:#ffb58d;
    margin-bottom:15px;
}

.hc-about-statement h3{
    position:relative;
    z-index:1;
    max-width:800px;
    margin:auto;
    font-family:'Playfair Display',serif;
    font-size:43px;
    line-height:1.25;
}

.hc-about-statement h3 span{
    color:#ffb58d;
    font-style:italic;
}

.hc-about-statement p{
    position:relative;
    z-index:1;
    margin:20px 0 0;
    color:#f9ded2;
    font-size:11px;
    font-weight:700;
    letter-spacing:3px;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:991px){

    .hc-about-section{
        padding:90px 0;
    }

    .hc-about-visual{
        min-height:520px;
        margin-bottom:30px;
    }

    .hc-about-big-text{
        font-size:75px;
    }

    .hc-about-small-text{
        font-size:65px;
    }

    .hc-about-image{
        height:450px;
    }

    .hc-about-content h2{
        font-size:43px;
    }

    .hc-feature-card{
        min-height:230px;
    }

}


@media(max-width:575px){

    .hc-about-section{
        padding:70px 0;
    }

    .hc-about-top{
        margin-bottom:45px;
    }

    .hc-about-label{
        font-size:9px;
        letter-spacing:2px;
    }

    .hc-about-line{
        width:30px;
    }

    .hc-about-visual{
        min-height:420px;
    }

    .hc-about-image-wrap{
        width:78%;
    }

    .hc-about-image{
        height:370px;
    }

    .hc-about-big-text{
        top:5px;
        left:0;
        font-size:55px;
        letter-spacing:4px;
    }

    .hc-about-small-text{
        bottom:5px;
        right:0;
        font-size:50px;
        letter-spacing:4px;
    }

    .hc-about-badge{
        width:90px;
        height:90px;
        right:-25px;
        bottom:20px;
    }

    .hc-about-badge i{
        font-size:18px;
    }

    .hc-about-badge span{
        font-size:7px;
    }

    .hc-about-content h2{
        font-size:36px;
    }

    .hc-about-content p{
        font-size:14px;
    }

    .hc-why-section{
        margin-top:80px;
    }

    .hc-why-heading h3{
        font-size:32px;
    }

    .hc-feature-card{
        min-height:220px;
        padding:22px 16px;
    }

    .hc-feature-card h4{
        font-size:17px;
    }

    .hc-about-statement{
        margin-top:70px;
        padding:55px 20px;
    }

    .hc-about-statement h3{
        font-size:30px;
    }

}













/* service */

.service-card{

    max-width:1180px;

    min-height:510px;

    margin:auto;

    display:grid;

    grid-template-columns:48% 52%;

    overflow:hidden;

    border-radius:25px;

    background:#ffffff;

    border:1px solid #eee7f0;

    box-shadow:
        0 20px 60px rgba(45,25,50,.09);

}


/* =========================================================
   IMAGE SIDE
========================================================= */

.service-image{

    position:relative;

    min-height:510px;

    overflow:hidden;

    background:

        linear-gradient(
            180deg,
            #fff8fb 0%,
            #eee9ff 100%
        );

}


/* image */

.service-image img{

    width:100%;

    height:100%;

    display:block;

    object-fit:cover;

    object-position:center;

    transition:
        transform .8s ease;

}


/* hover */

.service-card:hover
.service-image img{

    transform:scale(1.05);

}


/* image bottom gradient */

.service-image::after{

    content:"";

    position:absolute;

    left:0;

    right:0;

    bottom:0;

    height:55%;

    background:

        linear-gradient(
            to top,
            rgba(118,88,255,.35),
            rgba(118,88,255,0)
        );

    pointer-events:none;

}


/* =========================================================
   IMAGE BADGE
========================================================= */

.image-badge{

    position:absolute;

    left:28px;

    bottom:20px;

    z-index:5;

    display:flex;

    align-items:center;

    gap:8px;

    padding:10px 15px;

    border-radius:30px;

    color:#ffffff;

    font-size:12px;

    font-weight:700;

    background:

        linear-gradient(
            135deg,
            #ff4d80,
            #7658ff
        );

    box-shadow:
        0 10px 25px rgba(118,88,255,.25);

}

.image-badge i{

    font-size:13px;

}


/* =========================================================
   CONTENT SIDE
========================================================= */

.service-content{

    padding:42px 38px;

    display:flex;

    flex-direction:column;

    justify-content:center;

}


/* =========================================================
   SMALL LABEL
========================================================= */

.service-label{

    color:#7658ff;

    font-size:9px;

    font-weight:800;

    letter-spacing:2px;

    margin-bottom:12px;

}


/* =========================================================
   TITLE
========================================================= */

.service-title{

    font-family:"Playfair Display",serif;

    font-size:43px;

    line-height:.98;

    font-weight:600;

    margin-bottom:14px;

    color:#171522;

}


/* pink part */

.service-title span{

    color:#ff4d80;

}


/* =========================================================
   DESCRIPTION
========================================================= */

.service-description{

    max-width:570px;

    color:#686475;

    font-size:12px;

    line-height:1.8;

    margin-bottom:25px;

}


/* =========================================================
   FEATURES HEADER
========================================================= */

.features-header{

    display:flex;

    align-items:center;

    gap:12px;

    margin-bottom:12px;

    color:#171522;

    font-size:12px;

    font-weight:800;

}

.features-header::after{

    content:"";

    height:1px;

    flex:1;

    background:#eee6ee;

}


/* =========================================================
   FEATURE GRID
========================================================= */

.features-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:9px;

    margin-bottom:23px;

}


/* =========================================================
   FEATURE ITEM
========================================================= */

.feature-item{

    min-height:48px;

    display:flex;

    align-items:center;

    gap:10px;

    padding:9px;

    border-radius:11px;

    border:1px solid #eee5ef;

    background:#ffffff;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;

}

.feature-item:hover{

    transform:translateY(-3px);

    border-color:#ffd0dd;

    box-shadow:
        0 8px 20px rgba(255,77,128,.08);

}


/* =========================================================
   FEATURE ICON
========================================================= */

.feature-icon{

    width:32px;

    height:32px;

    min-width:32px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:9px;

    color:#ff4d80;

    background:#fff1f5;

    font-size:13px;

}


/* purple alternate */

.feature-item:nth-child(even)
.feature-icon{

    color:#7658ff;

    background:#f2efff;

}


/* feature text */

.feature-item span{

    color:#514c5b;

    font-size:9.5px;

    line-height:1.35;

    font-weight:600;

}


/* =========================================================
   BEST FOR BOX
========================================================= */

.best-for{

    width:100%;

    min-height:58px;

    display:flex;

    align-items:center;

    gap:12px;

    padding:10px 13px;

    border-radius:12px;

    color:#ffffff;

    background:

        linear-gradient(
            135deg,
            #ff4d80 0%,
            #c94cb8 45%,
            #7658ff 100%
        );

    box-shadow:
        0 12px 25px rgba(118,88,255,.18);

}


/* best icon */

.best-icon{

    width:34px;

    height:34px;

    min-width:34px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:9px;

    background:
        rgba(255,255,255,.18);

    font-size:14px;

}


/* best content */

.best-text small{

    display:block;

    margin-bottom:3px;

    color:
        rgba(255,255,255,.78);

    font-size:7px;

    font-weight:800;

    letter-spacing:1px;

    text-transform:uppercase;

}

.best-text strong{

    display:block;

    font-size:10px;

    font-weight:700;

    line-height:1.4;

}


/* =========================================================
   ANIMATION
========================================================= */

.service-card{

    animation:
        serviceAppear .8s ease both;

}

@keyframes serviceAppear{

    from{

        opacity:0;

        transform:
            translateY(35px);

    }

    to{

        opacity:1;

        transform:
            translateY(0);

    }

}


/* image floating effect */

.service-image img{

    animation:
        imageZoom 8s ease-in-out infinite alternate;

}

@keyframes imageZoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.035);

    }

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:900px){

    .service-card{

        grid-template-columns:1fr;

    }

    .service-image{

        min-height:420px;

    }

    .service-content{

        padding:35px 28px;

    }

}


@media(max-width:600px){

    .service-section{

        padding:
            20px 15px 60px;

    }

    .service-card{

        border-radius:20px;

    }

    .service-image{

        min-height:350px;

    }

    .image-badge{

        left:18px;

        bottom:18px;

    }

    .service-content{

        padding:30px 20px;

    }

    .service-title{

        font-size:36px;

    }

    .features-grid{

        grid-template-columns:1fr;

    }

    .best-for{

        align-items:flex-start;

    }

}


/* =========================================================
   VERY SMALL SCREEN
========================================================= */

@media(max-width:400px){

    .service-title{

        font-size:32px;

    }

    .service-description{

        font-size:11px;

    }

}




/* gallery */

/* ==========================================================
   HAPPY CLICKS GALLERY
========================================================== */

:root {

    --hc-black: #151313;
    --hc-dark: #211b1b;
    --hc-cream: #fff8f0;
    --hc-white: #ffffff;
    --hc-orange: #ef6c3a;
    --hc-orange-light: #ff9a65;
    --hc-red: #8f102b;
    --hc-pink: #f6d4cf;
    --hc-gold: #d6a85f;
    --hc-text: #595151;
    --hc-border: rgba(21,19,19,.10);

}


/* ==========================================================
   PAGE
========================================================== */

.hc-gallery-page {

    position: relative;
    overflow: hidden;
    background: var(--hc-cream);
    color: var(--hc-black);

}


/* ==========================================================
   FLOATING ORBS
========================================================== */

.gallery-orb {

    position: absolute;

    border-radius: 50%;

    filter: blur(1px);

    pointer-events: none;

    z-index: 0;

}

.orb-1 {

    width: 180px;
    height: 180px;

    background: rgba(239,108,58,.12);

    top: 450px;
    left: -90px;

    animation: floatOrb 8s ease-in-out infinite;

}

.orb-2 {

    width: 240px;
    height: 240px;

    background: rgba(143,16,43,.08);

    right: -120px;
    top: 1000px;

    animation: floatOrb 10s ease-in-out infinite reverse;

}

.orb-3 {

    width: 130px;
    height: 130px;

    background: rgba(214,168,95,.13);

    left: 45%;
    top: 1800px;

    animation: floatOrb 7s ease-in-out infinite;

}


@keyframes floatOrb {

    0%,
    100% {
        transform: translate3d(0,0,0);
    }

    50% {
        transform: translate3d(30px,-40px,0);
    }

}


/* ==========================================================
   HERO
========================================================== */

.gallery-hero {

    min-height:30vh !important;

    position: relative;

    display: flex;
    align-items: center;

    overflow: hidden;

    background:

        linear-gradient(
            120deg,
            rgba(21,19,19,.96),
            rgba(61,32,30,.88)
        );

}


.gallery-hero-bg {

    position: absolute;

    inset: 0;

   
        url("images/gallery/gallery-1.jpg");

    background-size: cover;

    background-position: center;

    transform: scale(1.05);

    animation: heroZoom 12s ease-in-out infinite alternate;

}


@keyframes heroZoom {

    from {
        transform: scale(1.05);
    }

    to {
        transform: scale(1.14);
    }

}


.gallery-hero-content {

    position: relative;

    z-index: 2;

    max-width: 780px;

    padding: 150px 0 120px;

    animation: heroReveal 1.2s ease forwards;

}


@keyframes heroReveal {

    from {
        opacity: 0;
        transform: translateY(45px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


.gallery-eyebrow {

    display: flex;

    align-items: center;

    gap: 14px;

    color: #fff;

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 4px;

    margin-bottom: 25px;

}


.gallery-eyebrow span {

    width: 42px;
    height: 1px;

    background: var(--hc-orange);

}


.gallery-hero h1 {

    margin: 0;

    color: #fff;

    font-family: "Playfair Display", serif;

    font-size: clamp(60px, 8vw, 115px);

    line-height: .90;

    font-weight: 500;

    letter-spacing: -4px;

}


.gallery-hero h1 span {

    display: block;

    color: var(--hc-orange);

    font-style: italic;

}


.gallery-hero p {

    max-width: 560px;

    margin: 35px 0 0;

    color: rgba(255,255,255,.72);

    font-size: 17px;

    line-height: 1.8;

}


.hero-scroll {

    display: flex;

    align-items: center;

    gap: 15px;

    margin-top: 55px;

    color: #fff;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 3px;

}


.hero-scroll i {

    width: 45px;
    height: 45px;

    border: 1px solid rgba(255,255,255,.4);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    animation: scrollBounce 1.8s ease-in-out infinite;

}


@keyframes scrollBounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(8px);
    }

}


.hero-floating-text {

    position: absolute;

    bottom: 30px;

    right: -40px;

    color: rgba(255,255,255,.08);

    font-size: 70px;

    font-weight: 800;

    letter-spacing: 5px;

    white-space: nowrap;

    transform: rotate(-5deg);

}


/* ==========================================================
   INTRO
========================================================== */

.gallery-intro {

    padding: 50px 0 80px;

}


.section-small-title {

    display: block;

    color: var(--hc-red);

    font-size: 15px;

    font-weight: 800;

    letter-spacing: 4px;

    margin-bottom: 20px;

}


.gallery-intro h2 {

    margin: 0;

    font-family: "Playfair Display", serif;

    font-size: clamp(45px, 6vw, 75px);

    line-height: 1;

    font-weight: 500;

}


.gallery-intro h2 em {

    color: var(--hc-orange);

}


.gallery-intro p {

    color: var(--hc-text);

    font-size: 16px;

    line-height: 1.9;

    margin: 0;

}


/* ==========================================================
   GALLERY MAIN
========================================================== */

.gallery-main {

    padding: 30px 0 120px;

}


/* ==========================================================
   FILTER
========================================================== */

.gallery-filter {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

    margin-bottom: 55px;

}


.filter-btn {

    border: 1px solid var(--hc-border);

    background: transparent;

    padding: 13px 24px;

    border-radius: 50px;

    color: var(--hc-black);

    font-size: 12px;

    font-weight: 700;

    letter-spacing: .5px;

    cursor: pointer;

    transition: all .35s ease;

}


.filter-btn:hover {

    background: var(--hc-black);

    color: #fff;

    transform: translateY(-3px);

}


.filter-btn.active {

    background: var(--hc-red);

    color: #fff;

    border-color: var(--hc-red);

}


/* ==========================================================
   GRID
========================================================== */

.gallery-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    grid-auto-rows: 300px;

    gap: 18px;

}


.gallery-item {

    min-width: 0;

    transition:
        opacity .4s ease,
        transform .4s ease;

}


.gallery-item.tall {

    grid-row: span 2;

}


.gallery-item.wide {

    grid-column: span 2;

}


.gallery-item.hide {

    display: none;

}


.gallery-card {

    width: 100%;
    height: 100%;

    position: relative;

    overflow: hidden;

    border-radius: 3px;

    background: #ddd;

    cursor: pointer;

}


.gallery-card::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.80),
            rgba(0,0,0,0) 65%
        );

    opacity: .75;

    transition: opacity .5s ease;

}


.gallery-card img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transition:
        transform .9s cubic-bezier(.2,.7,.2,1),
        filter .7s ease;

}


.gallery-card:hover img {

    transform: scale(1.10) rotate(1deg);

    filter: saturate(1.1);

}


.gallery-card:hover::after {

    opacity: 1;

}


/* ==========================================================
   OVERLAY
========================================================== */

.gallery-overlay {

    position: absolute;

    z-index: 2;

    inset: 0;

    padding: 28px;

    display: flex;

    flex-direction: column;

    justify-content: flex-end;

    color: #fff;

}


.gallery-category {

    color: var(--hc-orange-light);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 3px;

    margin-bottom: 8px;

    transform: translateY(15px);

    opacity: 0;

    transition: all .45s ease;

}


.gallery-overlay h3 {

    margin: 0;

    max-width: 80%;

    font-family: "Playfair Display", serif;

    font-size: 25px;

    font-weight: 500;

    transform: translateY(20px);

    opacity: 0;

    transition: all .5s ease .05s;

}


.gallery-view {

    position: absolute;

    top: 25px;

    right: 25px;

    width: 48px;
    height: 48px;

    border: 1px solid rgba(255,255,255,.45);

    background: rgba(255,255,255,.10);

    backdrop-filter: blur(10px);

    color: #fff;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    transform: scale(.6) rotate(-30deg);

    opacity: 0;

    transition: all .45s ease;

    cursor: pointer;

}


.gallery-card:hover .gallery-category,
.gallery-card:hover .gallery-overlay h3 {

    transform: translateY(0);

    opacity: 1;

}


.gallery-card:hover .gallery-view {

    transform: scale(1) rotate(0);

    opacity: 1;

}


.gallery-view:hover {

    background: var(--hc-orange);

    border-color: var(--hc-orange);

}


/* ==========================================================
   CTA
========================================================== */

.gallery-cta {

    padding: 40px 0 130px;

}


.gallery-cta-box {

    position: relative;

    overflow: hidden;

    padding: 100px 80px;

    background: var(--hc-red);

    color: #fff;

}


.gallery-cta-box::before {

    content: "";

    position: absolute;

    width: 450px;
    height: 450px;

    border: 1px solid rgba(255,255,255,.12);

    border-radius: 50%;

    right: -160px;

    top: -200px;

}


.gallery-cta-box::after {

    content: "";

    position: absolute;

    width: 300px;
    height: 300px;

    border: 1px solid rgba(255,255,255,.10);

    border-radius: 50%;

    right: 40px;

    bottom: -220px;

}


.cta-content {

    position: relative;

    z-index: 2;

    max-width: 750px;

}


.cta-content > span {

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 4px;

    color: #ffc5ae;

}


.cta-content h2 {

    margin: 20px 0;

    font-family: "Playfair Display", serif;

    font-size: clamp(45px, 6vw, 75px);

    line-height: 1;

    font-weight: 500;

}


.cta-content h2 em {

    display: block;

    color: #ffc5ae;

}


.cta-content p {

    max-width: 560px;

    color: rgba(255,255,255,.72);

    line-height: 1.8;

}


.cta-btn {

    display: inline-flex;

    align-items: center;

    gap: 25px;

    margin-top: 30px;

    padding: 17px 24px;

    background: #fff;

    color: var(--hc-red);

    text-decoration: none;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 1px;

    transition: all .35s ease;

}


.cta-btn i {

    font-size: 17px;

    transition: transform .3s ease;

}


.cta-btn:hover {

    color: #fff;

    background: var(--hc-orange);

    transform: translateY(-4px);

}


.cta-btn:hover i {

    transform: translate(4px,-4px);

}


/* ==========================================================
   LIGHTBOX
========================================================== */

.gallery-lightbox {

    position: fixed;

    inset: 0;

    z-index: 99999;

    background: rgba(10,8,8,.96);

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 40px;

    opacity: 0;

    visibility: hidden;

    transition: all .4s ease;

}


.gallery-lightbox.active {

    opacity: 1;

    visibility: visible;

}


.lightbox-content {

    max-width: 1050px;

    width: 100%;

    text-align: center;

    transform: scale(.85);

    transition: transform .5s cubic-bezier(.2,.8,.2,1);

}


.gallery-lightbox.active .lightbox-content {

    transform: scale(1);

}


.lightbox-image-wrap {

    height: min(72vh, 720px);

    display: flex;

    align-items: center;

    justify-content: center;

}


.lightbox-image-wrap img {

    max-width: 100%;

    max-height: 100%;

    object-fit: contain;

    box-shadow: 0 30px 80px rgba(0,0,0,.5);

}


.lightbox-info {

    margin-top: 20px;

    color: #fff;

}


.lightbox-info span {

    display: block;

    color: var(--hc-orange-light);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 3px;

    margin-bottom: 5px;

}


.lightbox-info h3 {

    margin: 0;

    font-family: "Playfair Display", serif;

    font-size: 25px;

    font-weight: 500;

}


.lightbox-close,
.lightbox-prev,
.lightbox-next {

    position: absolute;

    width: 50px;
    height: 50px;

    border-radius: 50%;

    border: 1px solid rgba(255,255,255,.25);

    background: rgba(255,255,255,.06);

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    transition: all .3s ease;

}


.lightbox-close {

    top: 30px;

    right: 30px;

}


.lightbox-prev {

    left: 35px;

    top: 50%;

}


.lightbox-next {

    right: 35px;

    top: 50%;

}


.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover {

    background: var(--hc-orange);

    border-color: var(--hc-orange);

    transform: scale(1.08);

}


/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width: 991px) {

    .gallery-hero {

        min-height: 70vh;

    }

    .gallery-hero-content {

        padding: 120px 0 100px;

    }

    .gallery-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .gallery-cta-box {

        padding: 70px 45px;

    }

}


@media (max-width: 575px) {

    .gallery-hero {

        min-height: 80vh;

    }

    .gallery-hero-content {

        padding: 100px 0 80px;

    }

    .gallery-hero h1 {

        font-size: 58px;

        letter-spacing: -2px;

    }

    .gallery-hero p {

        font-size: 15px;

    }

    .hero-floating-text {

        font-size: 38px;

    }

    .gallery-intro {

        padding: 90px 0 55px;

    }

    .gallery-intro h2 {

        font-size: 48px;

        margin-bottom: 30px;

    }

    .gallery-filter {

        gap: 7px;

    }

    .filter-btn {

        padding: 10px 16px;

        font-size: 10px;

    }

    .gallery-grid {

        grid-template-columns: 1fr 1fr;

        grid-auto-rows: 220px;

        gap: 8px;

    }

    .gallery-item.tall {

        grid-row: span 2;

    }

    .gallery-item.wide {

        grid-column: span 2;

    }

    .gallery-overlay {

        padding: 15px;

    }

    .gallery-overlay h3 {

        font-size: 18px;

    }

    .gallery-category {

        font-size: 8px;

        letter-spacing: 2px;

    }

    .gallery-view {

        width: 38px;
        height: 38px;

        top: 12px;
        right: 12px;

    }

    .gallery-cta {

        padding-bottom: 80px;

    }

    .gallery-cta-box {

        padding: 60px 25px;

    }

    .lightbox-prev {

        left: 10px;

    }

    .lightbox-next {

        right: 10px;

    }

    .lightbox-close {

        top: 15px;

        right: 15px;

    }

}





/* =====================================================
   HAPPY CLICKS - GALLERY HERO
===================================================== */

.hc-gallery-hero {
    position: relative;
      height: 50vh;
    /* min-height: 500px; */
    overflow: hidden;
    display: flex;
    align-items: center;
    isolation: isolate;
}

/* Background Image */
.hc-gallery-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -3;

    background-image: url("images/banner-gallery.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    /* Fixed background */
    background-attachment: fixed;

    transform: scale(1.03);
}

/* Dark / Premium Overlay */
.hc-gallery-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -2;

   
}

/* Content */
.hc-gallery-hero-content {
    position: relative;
    z-index: 2;
    max-width: 720px;
    padding: 50px 0;
}

/* Eyebrow */
.hc-gallery-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 18px;

    font-size: 12px;
    font-weight: 600;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #ffffff;
}

.hc-gallery-eyebrow span {
    display: block;
    width: 35px;
    height: 1px;
    background: #ffffff;
}

/* Heading */
.hc-gallery-hero-content h1 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(48px, 6vw, 78px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -2px;

    color: #ffffff;
}

.hc-gallery-hero-content h1 span {
    display: block;
    color: #e7b98a;
    font-style: italic;
}

/* Paragraph */
.hc-gallery-hero-content p {
    max-width: 550px;

    margin: 24px 0 0;

    font-size: 15px;
    line-height: 1.8;
    font-weight: 400;

    color: rgba(255, 255, 255, 0.86);
}

/* Scroll */
.hc-hero-scroll {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin-top: 28px;

    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;

    cursor: pointer;
}

.hc-hero-scroll i {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;

    transition: all 0.3s ease;
}

.hc-hero-scroll:hover i {
    background: #ffffff;
    color: #222;
    transform: translateY(4px);
}

/* Floating Text */
.hc-hero-floating-text {
    position: absolute;

    right: -25px;
    bottom: 28px;

    color: rgba(255, 255, 255, 0.13);

    font-size: 12px;
    font-weight: 600;
    letter-spacing: 6px;

    white-space: nowrap;

    transform: rotate(-90deg);
    transform-origin: right bottom;

    pointer-events: none;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 991px) {

    .hc-gallery-hero {
        height: 460px;
        min-height: 460px;
    }

    .hc-gallery-hero-content {
        max-width: 620px;
        padding: 40px 20px;
    }

    .hc-gallery-hero-content h1 {
        font-size: 58px;
    }

    .hc-gallery-hero-bg {
        background-attachment: scroll;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 575px) {

    .hc-gallery-hero {
        height: 400px;
        min-height: 400px;
    }

    .hc-gallery-hero-content {
        padding: 35px 18px;
    }

    .hc-gallery-eyebrow {
        font-size: 10px;
        letter-spacing: 3px;
        gap: 8px;
    }

    .hc-gallery-eyebrow span {
        width: 24px;
    }

    .hc-gallery-hero-content h1 {
        font-size: 44px;
        line-height: 1;
        letter-spacing: -1px;
    }

    .hc-gallery-hero-content p {
        margin-top: 18px;
        font-size: 13px;
        line-height: 1.7;
        max-width: 340px;
    }

    .hc-hero-scroll {
        margin-top: 22px;
        font-size: 9px;
        letter-spacing: 1.5px;
    }

    .hc-hero-scroll i {
        width: 30px;
        height: 30px;
    }

    .hc-hero-floating-text {
        display: none;
    }

}




/* =====================================================
   HAPPY CLICKS IMAGE LOADER
===================================================== */

.hc-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;

    transition:
        opacity 0.7s ease,
        visibility 0.7s ease;
}

.hc-loader-content {
    width: 260px;
    text-align: center;
}

/* Logo */
.hc-loader-logo {
    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 30px;

    animation: hcLogoReveal 1.2s ease forwards;
}

.hc-loader-logo img {
    display: block;

    width: 170px;
    max-width: 100%;
    height: auto;

    object-fit: contain;
}

/* Loading Line */
.hc-loader-line {
    position: relative;

    width: 100%;
    height: 2px;

    overflow: hidden;

    background: #eeeeee;
}

.hc-loader-line span {
    position: absolute;
    left: 0;
    top: 0;

    width: 0;
    height: 100%;

    background: #8f102b;

    animation: hcLoaderProgress 2.2s ease-in-out forwards;
}

/* Loading Text */
.hc-loader-text {
    margin-top: 15px;

    font-family: Arial, sans-serif;
    font-size: 9px;
    font-weight: 600;

    letter-spacing: 3px;
    color: #777777;

    animation: hcLoaderText 1s ease-in-out infinite alternate;
}


/* =====================================================
   ANIMATIONS
===================================================== */

@keyframes hcLogoReveal {

    0% {
        opacity: 0;
        transform: translateY(20px) scale(0.92);
    }

    60% {
        opacity: 1;
        transform: translateY(0) scale(1.03);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }

}

@keyframes hcLoaderProgress {

    0% {
        width: 0;
    }

    100% {
        width: 100%;
    }

}

@keyframes hcLoaderText {

    from {
        opacity: 0.4;
    }

    to {
        opacity: 1;
    }

}


/* =====================================================
   LOADER HIDE
===================================================== */

.hc-loader.loader-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 575px) {

    .hc-loader-content {
        width: 210px;
    }

    .hc-loader-logo img {
        width: 145px;
    }

    .hc-loader-line {
        height: 2px;
    }

    .hc-loader-text {
        font-size: 8px;
        letter-spacing: 2.5px;
    }

}




/* =====================================================
   ABOUT PAGE BANNER
===================================================== */

.hc-about-banner {
    position: relative;
    min-height: 400px;
    height: 50vh;
    max-height: 760px;
    overflow: hidden;
    display: flex;
    align-items: center;
    background: #171313;
    color: #fff;
}


/* Background */

.hc-about-banner-bg {
    position: absolute;
    inset: 0;

    background-image: url("images/abt-banner.jpg");
    background-size: cover;
    background-position: center center;

    transform: scale(1.08);
    animation: hcBannerZoom 12s ease-out forwards;
}


/* Overlay */

.hc-about-banner-overlay {
    position: absolute;
    inset: 0;

   

    z-index: 1;
}


/* Content */

.hc-about-banner .container {
    position: relative;
    z-index: 3;
}


.hc-about-banner-content {
    max-width: 800px;

    padding-top: 50px;

    animation: hcBannerContent 1.1s ease forwards;
}


/* Label */

.hc-banner-label {
    display: flex;
    align-items: center;
    gap: 14px;

    font-size: 11px;
    font-weight: 600;
    letter-spacing: 4px;

    color: #f2c6a4;

    margin-bottom: 24px;
}


.hc-banner-label span {
    width: 42px;
    height: 1px;
    background: #f2c6a4;
}


/* Heading */

.hc-about-banner h1 {
    margin: 0;

    font-family: "Playfair Display", serif;

    font-size: clamp(70px, 9vw, 145px);
    line-height: .88;
    font-weight: 500;

    letter-spacing: -5px;

    color: #fff;
}


.hc-about-banner h1 span {
    display: block;

    color: #f0b38d;

    font-style: italic;

    padding-left: 110px;
}


/* Description */

.hc-about-banner-content > p {
    max-width: 520px;

    margin: 38px 0 28px;

    font-size: 16px;
    line-height: 1.8;

    color: rgba(255,255,255,.82);
}


/* Breadcrumb */

.hc-banner-breadcrumb {
    display: flex;
    align-items: center;
    gap: 13px;

    font-size: 10px;
    letter-spacing: 2px;
    font-weight: 600;
}


.hc-banner-breadcrumb a {
    color: #fff;
    text-decoration: none;

    transition: .3s ease;
}


.hc-banner-breadcrumb a:hover {
    color: #f0b38d;
}


.hc-banner-breadcrumb i {
    color: #f0b38d;
    font-size: 13px;
}


.hc-banner-breadcrumb span {
    color: rgba(255,255,255,.55);
}


/* Decorative circles */

.hc-banner-circle {
    position: absolute;
    z-index: 2;

    border: 1px solid rgba(255,255,255,.18);

    border-radius: 50%;

    pointer-events: none;
}


.hc-banner-circle-1 {
    width: 420px;
    height: 420px;

    right: -160px;
    top: -140px;

    animation: hcFloatCircle 7s ease-in-out infinite;
}


.hc-banner-circle-2 {
    width: 240px;
    height: 240px;

    right: 15%;
    bottom: -170px;

    border-color: rgba(240,179,141,.25);

    animation: hcFloatCircle 9s ease-in-out infinite reverse;
}


/* Scroll indicator */

.hc-banner-scroll {
    position: absolute;

    right: 45px;
    bottom: 35px;

    z-index: 4;

    display: flex;
    align-items: center;
    gap: 12px;

    writing-mode: vertical-rl;

    font-size: 9px;
    letter-spacing: 3px;

    color: rgba(255,255,255,.65);
}


.hc-banner-scroll i {
    color: #f0b38d;

    animation: hcScrollArrow 1.6s ease-in-out infinite;
}


/* Bottom line */

.hc-about-banner::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 100%;
    height: 1px;

    background: rgba(255,255,255,.18);

    z-index: 4;
}


/* =====================================================
   ANIMATIONS
===================================================== */

@keyframes hcBannerZoom {

    0% {
        transform: scale(1.08);
    }

    100% {
        transform: scale(1);
    }

}


@keyframes hcBannerContent {

    0% {
        opacity: 0;
        transform: translateY(45px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes hcFloatCircle {

    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-25px) rotate(8deg);
    }

}


@keyframes hcScrollArrow {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(8px);
    }

}


/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 991px) {

    .hc-about-banner {
        min-height: 560px;
        height: 65vh;
    }

    .hc-about-banner h1 {
        font-size: clamp(65px, 12vw, 110px);
    }

}


@media (max-width: 767px) {

    .hc-about-banner {
        min-height: 520px;
        height: 70vh;
    }

    .hc-about-banner-bg {
        background-position: 58% center;
    }

    .hc-about-banner-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(15,10,10,.88),
                rgba(15,10,10,.48)
            );
    }

    .hc-about-banner-content {
        padding-top: 35px;
    }

    .hc-banner-label {
        font-size: 9px;
        letter-spacing: 3px;
    }

    .hc-banner-label span {
        width: 25px;
    }

    .hc-about-banner h1 {
        font-size: clamp(60px, 19vw, 90px);
        letter-spacing: -3px;
    }

    .hc-about-banner h1 span {
        padding-left: 45px;
    }

    .hc-about-banner-content > p {
        max-width: 330px;

        font-size: 14px;

        margin-top: 30px;
    }

    .hc-banner-scroll {
        right: 18px;
        bottom: 25px;
    }

    .hc-banner-circle-1 {
        width: 280px;
        height: 280px;
        right: -160px;
    }

    .hc-banner-circle-2 {
        width: 180px;
        height: 180px;
        right: 10%;
    }

}


@media (max-width: 480px) {

    .hc-about-banner {
        min-height: 500px;
    }

    .hc-about-banner h1 {
        font-size: 64px;
    }

    .hc-about-banner h1 span {
        padding-left: 25px;
    }

    .hc-about-banner-content > p {
        font-size: 13px;
        line-height: 1.7;
    }

}






























```css
/* =========================================================
   GLOBAL
========================================================= */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: "DM Sans", sans-serif;
    background: #fffaf6;
    color: #24201e;
}

html {
    scroll-behavior: smooth;
}


/* =========================================================
   HERO BANNER
========================================================= */

.service-hero {
        height: 50vh;
    /* min-height: 400px !important; */
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;

    background:
        
        url("images/gallery/service-banner.jpg") center center / cover no-repeat;
}


/* Decorative glow */

.service-hero::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.18);
    right: -100px;
    top: 70px;
    animation: heroFloat 7s ease-in-out infinite;
}

.service-hero::after {
    content: "";
    position: absolute;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.12);
    right: 80px;
    bottom: -100px;
    animation: heroFloat 9s ease-in-out infinite reverse;
}


.service-hero-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}


.service-hero .container {
    position: relative;
    z-index: 5;
}


.service-hero-content {
    max-width: 780px;
    padding: 110px 0 90px;
    animation: heroContent 1s ease forwards;
}


.service-hero-label {
    display: flex;
    align-items: center;
    gap: 14px;

    color: #f3b39a;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;

    margin-bottom: 25px;
}


.service-hero-label span {
    width: 45px;
    height: 1px;
    background: #f3b39a;
}


.service-hero h1 {
    margin: 0;

    font-family: "Playfair Display", serif;
    font-size: clamp(52px, 7vw, 92px);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -3px;

    color: #ffffff;
}


.service-hero h1 span {
    display: block;
    color: #ef9c79;
    font-style: italic;
}


.service-hero p {
    max-width: 590px;

    margin: 30px 0 35px;

    color: rgba(255,255,255,0.78);
    font-size: 17px;
    line-height: 1.8;
}


.service-hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}


.hero-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    padding: 15px 24px;

    text-decoration: none;

    font-size: 14px;
    font-weight: 700;

    transition: 0.35s ease;
}


.primary-btn {
    background: #ef9c79;
    color: #241914;
}


.primary-btn:hover {
    background: #ffffff;
    color: #241914;
    transform: translateY(-4px);
}


.outline-btn {
    border: 1px solid rgba(255,255,255,0.5);
    color: #ffffff;
}


.outline-btn:hover {
    background: #ffffff;
    color: #241914;
    transform: translateY(-4px);
}


.hero-scroll {
    position: absolute;
    z-index: 10;

    right: 45px;
    bottom: 35px;

    display: flex;
    align-items: center;
    gap: 12px;

    color: rgba(255,255,255,0.65);

    font-size: 10px;
    letter-spacing: 2px;
    font-weight: 700;

    writing-mode: vertical-rl;
}


.hero-scroll i {
    font-size: 18px;
    animation: scrollArrow 1.5s ease-in-out infinite;
}


/* =========================================================
   SERVICE SECTION
========================================================= */

.service-section {
    position: relative;
    padding: 110px 20px;

    background:
        radial-gradient(
            circle at 10% 20%,
            rgba(239,156,121,0.10),
            transparent 28%
        ),
        #fffaf6;
}


.service-card {
    max-width: 1250px;
    margin: auto;

    display: grid;
    grid-template-columns: 1fr 1fr;

    background: #ffffff;

    box-shadow:
        0 30px 80px rgba(61, 35, 25, 0.10);

    overflow: hidden;

    position: relative;
}


.service-image {
    position: relative;
    min-height: 650px;
    overflow: hidden;
}


.service-image::after {
    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            transparent 50%,
            rgba(20,12,9,0.35)
        );

    pointer-events: none;
}


.service-image img {
    width: 100%;
    height: 100%;

    position: absolute;
    inset: 0;

    object-fit: cover;

    transition: transform 1s cubic-bezier(.2,.8,.2,1);
}


.service-card:hover .service-image img {
    transform: scale(1.06);
}


.image-badge {
    position: absolute;

    left: 30px;
    bottom: 30px;

    z-index: 5;

    display: inline-flex;
    align-items: center;
    gap: 9px;

    padding: 12px 17px;

    background: rgba(255,255,255,0.92);

    color: #542d21;

    font-size: 12px;
    font-weight: 700;

    backdrop-filter: blur(8px);
}


.image-badge i {
    color: #df7650;
}


.image-number {
    position: absolute;

    z-index: 5;

    top: 25px;
    right: 28px;

    color: rgba(255,255,255,0.85);

    font-family: "Playfair Display", serif;

    font-size: 70px;
    font-style: italic;
}


/* =========================================================
   CONTENT
========================================================= */

.service-content {
    padding: 120px 65px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}


.service-label {
    color: #d66e4b;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 2.5px;

    margin-bottom: 18px;
}


.service-title {
    margin: 0;

    font-family: "Playfair Display", serif;

    font-size: clamp(38px, 4vw, 58px);
    line-height: 1.05;

    font-weight: 500;

    color: #2d211d;
}


.service-title span {
    display: block;

    color: #d66e4b;
    font-style: italic;
}


.service-description {
    margin: 25px 0 32px;

    max-width: 500px;

    color: #756a65;

    font-size: 15px;
    line-height: 1.8;
}


.features-header {
    margin-bottom: 15px;

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 1.5px;
    text-transform: uppercase;

    color: #302520;
}


.features-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;

    gap: 14px;

    margin-bottom: 30px;
}


.feature-item {
    display: flex;
    align-items: center;
    gap: 11px;

    color: #5e514c;

    font-size: 12px;
    line-height: 1.5;
}


.feature-icon {
    flex: 0 0 38px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #fff1ea;

    color: #d66e4b;

    border-radius: 50%;

    transition: 0.3s ease;
}


.feature-item:hover .feature-icon {
    background: #d66e4b;
    color: #ffffff;
    transform: rotate(8deg) scale(1.08);
}


/* =========================================================
   BEST FOR
========================================================= */

.best-for {
    display: flex;
    align-items: center;
    gap: 15px;

    padding: 18px;

    background: #fff8f3;

    border-left: 3px solid #d66e4b;

    margin-bottom: 25px;
}


.best-icon {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #d66e4b;
    color: #ffffff;

    font-size: 15px;
}


.best-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}


.best-text small {
    color: #a18d84;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.5px;

    text-transform: uppercase;
}


.best-text strong {
    color: #3d302b;

    font-size: 12px;
    line-height: 1.5;
}


.service-cta {
    width: fit-content;

    display: inline-flex;
    align-items: center;
    gap: 12px;

    padding: 13px 21px;

    background: #30211c;
    color: #ffffff;

    text-decoration: none;

    font-size: 12px;
    font-weight: 700;

    transition: 0.3s ease;
}


.service-cta:hover {
    background: #d66e4b;
    color: #ffffff;
    transform: translateY(-3px);
}


/* =========================================================
   BOTTOM CTA
========================================================= */

.service-bottom-cta {
    padding: 95px 20px;

    background: #30211c;
}


.service-bottom-inner {
    max-width: 1150px;
    margin: auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}


.cta-small {
    display: block;

    margin-bottom: 12px;

    color: #ef9c79;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 3px;
}


.service-bottom-inner h2 {
    margin: 0;

    color: #ffffff;

    font-family: "Playfair Display", serif;

    font-size: clamp(38px, 5vw, 65px);
    line-height: 1.05;
    font-weight: 500;
}


.service-bottom-inner h2 em {
    color: #ef9c79;
}


.cta-button {
    flex-shrink: 0;

    display: inline-flex;
    align-items: center;
    gap: 13px;

    padding: 16px 24px;

    border: 1px solid rgba(255,255,255,0.4);

    color: #ffffff;

    text-decoration: none;

    font-size: 13px;
    font-weight: 700;

    transition: 0.35s ease;
}


.cta-button:hover {
    background: #ffffff;
    border-color: #ffffff;
    color: #30211c;
    transform: translateY(-4px);
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes heroContent {

    from {
        opacity: 0;
        transform: translateY(35px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes heroFloat {

    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-25px) rotate(8deg);
    }

}


@keyframes scrollArrow {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(7px);
    }

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px) {

    .service-hero {
        min-height: 620px;
    }

    .service-card {
        grid-template-columns: 1fr;
    }

    .service-image {
        min-height: 500px;
    }

    .service-content {
        padding: 55px 45px;
    }

    .service-bottom-inner {
        align-items: flex-start;
        flex-direction: column;
    }

}


@media (max-width: 767px) {

    .service-hero {
        min-height: 650px;

        background-position: 60% center;
    }

    .service-hero-content {
        padding: 100px 10px 80px;
    }

    .service-hero h1 {
        font-size: 50px;
        letter-spacing: -2px;
    }

    .service-hero p {
        font-size: 14px;
    }

    .hero-scroll {
        display: none;
    }

    .service-section {
        padding: 65px 15px;
    }

    .service-image {
        min-height: 420px;
    }

    .service-content {
        padding: 45px 25px;
    }

    .service-title {
        font-size: 40px;
    }

    .features-grid {
        grid-template-columns: 1fr;
    }

    .service-bottom-cta {
        padding: 70px 20px;
    }

}


@media (max-width: 480px) {

    .service-hero h1 {
        font-size: 43px;
    }

    .service-hero-buttons {
        flex-direction: column;
    }

    .hero-btn {
        justify-content: center;
    }

    .service-image {
        min-height: 350px;
    }

    .image-number {
        font-size: 55px;
    }

    .best-for {
        align-items: flex-start;
    }

}
```
