/*==================================================
KALPOC SOLUTIONS
CONSTRUCTION.CSS
Premium Outdoor Living & Construction
Version: 1.0
==================================================*/

/*==================================================
VARIABLES
==================================================*/

:root{

    --primary:#0F2747;
    /*--secondary:#D4AF37;*/
	--secondary:#9DC03F;
    --dark:#1D1D1D;
    --text:#555;
    --light:#F8F9FA;
    --white:#FFFFFF;
    --border:#E6E6E6;

    --shadow-sm:0 5px 15px rgba(0,0,0,.08);
    --shadow-md:0 10px 30px rgba(0,0,0,.12);
    --shadow-lg:0 20px 60px rgba(0,0,0,.18);

    --transition:.35s ease;

}

/*==================================================
TOPBAR
==================================================*/

.topbar{

    background:var(--primary);

    color:#fff;

    font-size:14px;

    font-weight:400;

}

.topbar .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    min-height:48px;

    flex-wrap:wrap;

}

.topbar-left{

    display:flex;

    gap:30px;

    flex-wrap:wrap;

}

.top-item{

    display:flex;

    align-items:center;

    gap:8px;

}

.top-item i{

    color:var(--secondary);

}

.top-item a{

    color:#fff;

}

.top-item a:hover{

    color:var(--secondary);

}

.topbar-right{

    display:flex;

    align-items:center;

    gap:8px;

}

.topbar-right i{

    color:var(--secondary);

}

/*==================================================
HEADER
==================================================*/

.header{

    position:sticky;

    top:0;

    left:0;

    width:100%;

    background:#fff;

    z-index:9999;

    box-shadow:var(--shadow-sm);

}

.header.scrolled{

    box-shadow:var(--shadow-md);

}

/*==================================================
NAVBAR
==================================================*/

.navbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    min-height:92px;

}

.logo{

    display:flex;

    align-items:center;

}

.logo img{

    width:210px;

    height:auto;

    transition:.3s;

}

.nav-menu{

    display:flex;

    align-items:center;

    gap:40px;

}

.nav-menu li{

    position:relative;

}

.nav-menu a{

    color:var(--dark);

    font-weight:600;

    font-size:16px;

    transition:var(--transition);

    position:relative;

}

.nav-menu a:hover{

    color:var(--secondary);

}

.nav-menu a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    background:var(--secondary);

    transition:.3s;

}

.nav-menu a:hover::after{

    width:100%;

}

/*==================================================
BUTTON NAVBAR
==================================================*/

.btn-navbar{

    background:var(--secondary);

    color:#fff;

    padding:16px 30px;

    border-radius:40px;

    font-weight:700;

    transition:.35s;

    box-shadow:var(--shadow-sm);

}

.btn-navbar:hover{

    background:var(--primary);

    transform:translateY(-3px);

}

/*==================================================
MOBILE MENU
==================================================*/

.menu-toggle{

    width:35px;

    cursor:pointer;

    display:none;

}

.menu-toggle span{

    display:block;

    width:100%;

    height:3px;

    background:var(--primary);

    margin:7px 0;

    border-radius:20px;

    transition:.35s;

}

/*==================================================
HERO
==================================================*/

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    background-image:url("../images/hero.webp");

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

}

.hero-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        90deg,

        rgba(8,20,35,.82),

        rgba(8,20,35,.45)

    );

}
.hero .container{

    position:relative;

    z-index:5;

}

.hero-content{

    max-width:720px;

    color:#fff;

}

.hero-subtitle{

    display:inline-block;

    padding:12px 24px;

    background:var(--secondary);

    border-radius:40px;

    font-size:14px;

    font-weight:600;

    letter-spacing:1px;

    text-transform:uppercase;

    margin-bottom:28px;

}

.hero h1{

    font-size:68px;

    line-height:1.08;

    margin-bottom:30px;

    font-weight:800;

}

.hero p{

    font-size:20px;

    line-height:1.9;

    color:#f3f3f3;

    margin-bottom:45px;

}

.hero-buttons{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:60px;

}

.hero-features{

    display:flex;

    flex-wrap:wrap;

    gap:35px;

}

.feature{

    display:flex;

    align-items:center;

    gap:10px;

    color:#fff;

}

.feature i{

    color:var(--secondary);

    font-size:18px;

}

/*==================================================
HERO BUTTONS
==================================================*/

.hero .btn-primary{

    box-shadow:var(--shadow-md);

}

.hero .btn-outline{

    color:#fff;

    border:2px solid #fff;

}

.hero .btn-outline:hover{

    background:#fff;

    color:var(--primary);

}

/*==================================================
END PART 1
NEXT:
ABOUT
WHY CHOOSE US
COUNTERS
==================================================*/
/*==================================================
ABOUT
==================================================*/

.about{

    background:#fff;

}

.about-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.about-image{

    position:relative;

}

.about-image img{

    width:100%;

    border-radius:18px;

    box-shadow:var(--shadow-lg);

}

.about-content h2{

    font-size:48px;

    color:var(--primary);

    margin:20px 0 30px;

    line-height:1.2;

}

.about-content p{

    font-size:17px;

    color:var(--text);

    margin-bottom:22px;

    line-height:1.9;

}

.about-list{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:18px;

    margin:40px 0;

}

.about-list div{

    display:flex;

    align-items:center;

    gap:12px;

    font-weight:600;

}

.about-list i{

    color:var(--secondary);

    font-size:18px;

}

/*==================================================
WHY CHOOSE US
==================================================*/

.why-us{

    background:#F8F9FA;

    padding:120px 0;

}

.why-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

    margin-top:70px;

}

.why-card{

    background:#fff;

    padding:45px 35px;

    border-radius:18px;

    text-align:center;

    transition:.35s;

    box-shadow:var(--shadow-sm);

}

.why-card:hover{

    transform:translateY(-12px);

    box-shadow:var(--shadow-lg);

}

.why-card i{

    width:90px;

    height:90px;

    margin:auto;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(212,175,55,.12);

    color:var(--secondary);

    border-radius:50%;

    font-size:36px;

    margin-bottom:28px;

}

.why-card h3{

    color:var(--primary);

    margin-bottom:18px;

    font-size:24px;

}

.why-card p{

    color:var(--text);

    line-height:1.8;

}

/*==================================================
COUNTER
==================================================*/

.counter{

    background:var(--primary);

    padding:90px 0;

}

.counter-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:40px;

    text-align:center;

}

.counter-grid div{

    color:#fff;

}

.counter-grid h2{

    font-size:56px;

    color:var(--secondary);

    margin-bottom:10px;

    font-weight:800;

}

.counter-grid span{

    font-size:17px;

    letter-spacing:.5px;

}

/*==================================================
ABOUT IMAGE EFFECT
==================================================*/

.about-image::before{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    background:var(--secondary);

    opacity:.12;

    border-radius:25px;

    top:-25px;

    left:-25px;

    z-index:-1;

}

.about-image::after{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    border:4px solid var(--secondary);

    border-radius:25px;

    right:-25px;

    bottom:-25px;

    z-index:-1;

}

/*==================================================
SECTION TITLE
==================================================*/

.section-title{

    margin-bottom:65px;

}

.section-title h2{

    font-size:48px;

    color:var(--primary);

    margin-top:20px;

    margin-bottom:20px;

}

.section-title p{

    max-width:720px;

    margin:auto;

    color:#666;

    line-height:1.8;

}

/*==================================================
ABOUT BUTTON
==================================================*/

.about .btn-primary{

    margin-top:15px;

}

/*==================================================
HOVER EFFECTS
==================================================*/

.why-card,
.about-image img{

    transition:.4s;

}

.about-image:hover img{

    transform:scale(1.02);

}

/*==================================================
TABLETS
==================================================*/

@media(max-width:991px){

.about-grid{

grid-template-columns:1fr;

gap:50px;

}

.why-grid{

grid-template-columns:repeat(2,1fr);

}

.counter-grid{

grid-template-columns:repeat(2,1fr);

gap:35px;

}

.about-content{

text-align:center;

}

.about-list{

grid-template-columns:1fr;

}

}

/*==================================================
CELULARES
==================================================*/

@media(max-width:768px){

.about-content h2{

font-size:36px;

}

.section-title h2{

font-size:34px;

}

.why-grid{

grid-template-columns:1fr;

}

.counter-grid{

grid-template-columns:1fr;

}

.counter-grid h2{

font-size:42px;

}

.about-image::before,
.about-image::after{

display:none;

}

}

/*==================================================
END PART 2

NEXT

SERVICES

PORTFOLIO

GALLERY

==================================================*/
/*==================================================
SERVICES
==================================================*/

.services{

    background:#fff;

    padding:120px 0;

}

.services-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

    margin-top:60px;

}

.service-card{

    background:#fff;

    border-radius:18px;

    overflow:hidden;

    position:relative;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    transition:.35s;

}

.service-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 55px rgba(15,39,71,.18);

}

.service-card img{

    width:100%;

    height:280px;

    object-fit:cover;

    transition:.5s;

}

.service-card:hover img{

    transform:scale(1.08);

}

.service-content{

    padding:35px;

}

.service-icon{

    width:72px;

    height:72px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(212,175,55,.12);

    color:var(--secondary);

    border-radius:50%;

    font-size:30px;

    margin-bottom:25px;

}

.service-content h3{

    color:var(--primary);

    font-size:26px;

    margin-bottom:18px;

}

.service-content p{

    color:var(--text);

    line-height:1.8;

}

.services-cta{

    margin-top:90px;

    text-align:center;

}

.services-cta h2{

    color:var(--primary);

    font-size:44px;

    margin-bottom:20px;

}

.services-cta p{

    max-width:720px;

    margin:auto;

    margin-bottom:35px;

    color:#666;

}

/*==================================================
PORTFOLIO
==================================================*/

.portfolio{

    background:#F8F9FA;

    padding:120px 0;

}

.portfolio-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.portfolio-item{

    position:relative;

    overflow:hidden;

    border-radius:18px;

    box-shadow:var(--shadow-sm);

}

.portfolio-item img{

    width:100%;

    height:320px;

    object-fit:cover;

    transition:.5s;

}

.portfolio-item:hover img{

    transform:scale(1.12);

}

.portfolio-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        rgba(0,0,0,0),

        rgba(15,39,71,.92)

    );

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:30px;

    opacity:0;

    transition:.35s;

}

.portfolio-item:hover .portfolio-overlay{

    opacity:1;

}

.portfolio-overlay h3{

    color:#fff;

    font-size:26px;

    margin-bottom:10px;

}

.portfolio-overlay span{

    color:#ddd;

}

/*==================================================
GALLERY BUTTON
==================================================*/

.portfolio-btn{

    margin-top:60px;

    text-align:center;

}

/*==================================================
HOVER BORDER
==================================================*/

.service-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:5px;

    background:var(--secondary);

    transform:scaleX(0);

    transition:.35s;

}

.service-card:hover::before{

    transform:scaleX(1);

}

/*==================================================
IMAGE SHADOW
==================================================*/

.service-card img,

.portfolio-item img{

    display:block;

}

/*==================================================
PORTFOLIO TITLE
==================================================*/

.portfolio .section-title{

    margin-bottom:70px;

}

/*==================================================
TABLET
==================================================*/

@media(max-width:991px){

.services-grid{

grid-template-columns:repeat(2,1fr);

}

.portfolio-grid{

grid-template-columns:repeat(2,1fr);

}

}

/*==================================================
PHONE
==================================================*/

@media(max-width:768px){

.services-grid{

grid-template-columns:1fr;

}

.portfolio-grid{

grid-template-columns:1fr;

}

.service-card img{

height:240px;

}

.portfolio-item img{

height:260px;

}

.services-cta h2{

font-size:34px;

}

}

/*==================================================
END PART 3

NEXT

CTA

CONTACT

FOOTER

ANIMATIONS

==================================================*/
/*==================================================
CALL TO ACTION
==================================================*/

.cta-banner{

    position:relative;

    padding:140px 0;

    background:url("../images/banner-contact.webp") center center;

    background-size:cover;

    background-repeat:no-repeat;

}

.cta-overlay{

    position:absolute;

    inset:0;

    background:rgba(10,25,45,.82);

}

.cta-content{

    position:relative;

    z-index:5;

    text-align:center;

    color:#fff;

    max-width:900px;

    margin:auto;

}

.cta-content h2{

    font-size:60px;

    line-height:1.2;

}

.cta-content p{

    font-size:20px;

    line-height:1.8;

    margin-bottom:45px;

    color:#f2f2f2;

}

.cta-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

/*==================================================
CONTACT
==================================================*/

.contact{

    background:#fff;

    padding:120px 0;

}

.contact-grid{

    display:grid;

    grid-template-columns:420px 1fr;

    gap:60px;

}

.contact-info{

    display:flex;

    flex-direction:column;

    gap:25px;

}

.info-card{

    display:flex;

    gap:20px;

    background:#fff;

    padding:30px;

    border-radius:18px;

    box-shadow:var(--shadow-sm);

    transition:.35s;

}

.info-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-lg);

}

.info-card i{

    width:65px;

    height:65px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(212,175,55,.12);

    border-radius:50%;

    color:var(--secondary);

    font-size:26px;

}

.info-card h3{

    color:var(--primary);

    margin-bottom:8px;

}

.info-card p{

    color:#666;

    line-height:1.8;

}

.contact-form{

    background:#fff;

    padding:50px;

    border-radius:20px;

    box-shadow:var(--shadow-md);

}

.form-group{

    margin-bottom:22px;

}

.contact-form input,

.contact-form textarea,

.contact-form select{

    width:100%;

    padding:18px;

    border:1px solid #ddd;

    border-radius:10px;

    font-size:16px;

    transition:.35s;

}

.contact-form input:focus,

.contact-form textarea:focus,

.contact-form select:focus{

    border-color:var(--secondary);

    outline:none;

    box-shadow:0 0 0 4px rgba(212,175,55,.12);

}

.contact-form textarea{

    resize:vertical;

}

.contact-form button{

    width:100%;

    border:none;

    cursor:pointer;

}

/*==================================================
FOOTER
==================================================*/

.footer{

    background:#0A1D35;

    color:#fff;

    padding:90px 0 25px;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1fr;

    gap:50px;

    margin-bottom:60px;

}

.footer h3{

    margin-bottom:22px;

    color:#fff;

}

.footer p{

    color:#d4d4d4;

    line-height:1.9;

}

.footer ul{

    display:flex;

    flex-direction:column;

    gap:14px;

}

.footer ul a{

    color:#ddd;

}

.footer ul a:hover{

    color:var(--secondary);

}

.footer-social{

    display:flex;

    gap:15px;

    margin-top:25px;

}

.footer-social a{

    width:45px;

    height:45px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    background:#18304e;

    color:#fff;

    transition:.35s;

}

.footer-social a:hover{

    background:var(--secondary);

}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.08);

    padding-top:25px;

    text-align:center;

    color:#bbb;

}

/*==================================================
BACK TO TOP
==================================================*/

.back-top{

    position:fixed;

    right:30px;

    bottom:30px;

    width:55px;

    height:55px;

    background:var(--secondary);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    box-shadow:var(--shadow-md);

    cursor:pointer;

    transition:.35s;

    z-index:999;

}

.back-top:hover{

    background:var(--primary);

    transform:translateY(-6px);

}

/*==================================================
GENERAL ANIMATIONS
==================================================*/

.service-card,
.why-card,
.info-card,
.portfolio-item,
.btn-primary,
.btn-navbar{

    transition:all .35s ease;

}

img{

    transition:.45s;

}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:1200px){

.footer-grid{

grid-template-columns:repeat(2,1fr);

}

.contact-grid{

grid-template-columns:1fr;

}

}

@media(max-width:991px){

.cta-content h2{

font-size:42px;

}

.contact-form{

padding:35px;

}

}

@media(max-width:768px){

.footer-grid{

grid-template-columns:1fr;

}

.cta-banner{

padding:90px 0;

}

.cta-content h2{

font-size:34px;

}

.cta-content p{

font-size:18px;

}

.cta-buttons{

flex-direction:column;

}

.contact-form{

padding:25px;

}

.back-top{

right:15px;

bottom:15px;

width:48px;

height:48px;

}

}

/*==================================================
END OF FILE
==================================================*/

/*==================================================
SELECTION
==================================================*/

::selection{

    background:#D4AF37;

    color:#fff;

}

/*==================================================
SMOOTH HOVER
==================================================*/

img{

    transition:.4s ease;

}

a{

    transition:.35s ease;

}

/*==================================================
BUTTON SHADOW
==================================================*/

.btn-primary{

    box-shadow:0 12px 25px rgba(212,175,55,.35);

}

.btn-primary:hover{

    box-shadow:0 18px 40px rgba(15,39,71,.25);

}

/*==================================================
FOOTER LOGO
==================================================*/

.footer-logo{

    width:180px;

    margin-bottom:25px;

}

.footer-about p{

    margin-top:15px;

    color:#d8d8d8;

}

.footer li{

    display:flex;

    align-items:flex-start;

    gap:10px;

    margin-bottom:14px;

}

.footer li i{

    color:var(--secondary);

    margin-top:4px;

}

.footer li a{

    color:#ddd;

}

.footer li a:hover{

    color:var(--secondary);

}