/* ==========================================================
   Geo Equilibria brand layer (loaded after the theme CSS)
   ========================================================== */
:root {
    --thm-base: #5fa832;          /* Geo green */
    --thm-base-rgb: 95, 168, 50;
    --thm-black: #13291c;         /* deep forest */
    --thm-black-rgb: 19, 41, 28;
    --thm-primary: #0f2318;
    --thm-primary-rgb: 15, 35, 24;
    --thm-gray: #6b7570;
    --geo-sand: #f4f6f1;
    --geo-accent: #c9a24a;        /* earth / ochre */
}

body { color: var(--thm-gray); }
.geo-muted { color: var(--thm-gray); font-size: 16px; line-height: 28px; }
img { max-width: 100%; }

/* ---------- Logo ---------- */
.geo-logo { display: inline-flex !important; align-items: center; gap: 12px; text-decoration: none; }
.geo-logo img { width: 54px; height: 54px; object-fit: contain; background: #fff; border-radius: 50%; padding: 4px; }
.geo-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.geo-logo__text strong { font-family: var(--thm-font-2); font-size: 22px; font-weight: 800; color: var(--thm-black); letter-spacing: .2px; }
.geo-logo__text small { font-size: 11px; text-transform: uppercase; letter-spacing: 1.4px; color: var(--thm-base); font-weight: 700; margin-top: 4px; }
.geo-logo--light .geo-logo__text strong { color: #fff; }
.geo-logo--light .geo-logo__text small { color: rgba(255,255,255,.85); }

/* ---------- Header ---------- */
.geo-header .main-header-one__left { width: 340px; flex: 0 0 340px; background: var(--thm-base); }
.geo-header .main-header-one__middle p { white-space: nowrap; }
.geo-header .main-header-one__left .geo-logo--light .geo-logo__text small { color: #fff; opacity: .9; }
.geo-header .main-header-one__middle { margin-left: auto; margin-right: 40px; }
.geo-header .main-header-one__bottom .container-fluid { padding-left: 100px; }
.geo-header .main-menu__list > li > a.geo-active { color: var(--thm-base); }
.geo-header .main-header-one__bottom-right { gap: 20px; }
.geo-header__social a {
    display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
    background: #fff; color: var(--thm-black); font-size: 15px; box-shadow: 0 6px 20px rgba(0,0,0,.06); transition: .3s;
}
.geo-header__social a:hover { background: var(--thm-base); color: #fff; }
.geo-header__mobile-toggle { display: none; padding-right: 20px; }

.geo-burger { background: transparent; border: 0; display: flex; flex-direction: column; gap: 6px; padding: 10px; cursor: pointer; }
.geo-burger span { display: block; width: 28px; height: 2px; background: #fff; }
.geo-mnav-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); opacity: 0; visibility: hidden; transition: .3s; z-index: 9998; }
.geo-mnav-overlay.is-open { opacity: 1; visibility: visible; }
.geo-mnav { position: fixed; top: 0; right: -330px; width: 320px; max-width: 88vw; height: 100%; background: var(--thm-black); z-index: 9999; transition: right .35s ease; overflow-y: auto; padding: 24px; }
.geo-mnav.is-open { right: 0; }
.geo-mnav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.geo-mnav__head .geo-logo img { width: 44px; height: 44px; }
.geo-mnav__head .geo-logo__text strong { font-size: 18px; }
.geo-mnav__close { background: transparent; border: 0; color: #fff; font-size: 34px; line-height: 1; cursor: pointer; }
.geo-mnav ul { list-style: none; padding: 0; margin: 0; }
.geo-mnav > ul > li { border-bottom: 1px solid rgba(255,255,255,.1); }
.geo-mnav__row { display: flex; align-items: center; justify-content: space-between; }
.geo-mnav__row a { display: block; padding: 14px 0; color: #fff; font-weight: 600; font-size: 16px; }
.geo-mnav__row button { background: transparent; border: 0; color: #fff; padding: 10px; }
.geo-mnav__sub { padding-bottom: 10px !important; }
.geo-mnav__sub a { display: block; padding: 8px 0 8px 14px; color: rgba(255,255,255,.75); font-size: 14px; }
.geo-mnav__sub a:hover, .geo-mnav__row a:hover { color: var(--thm-base); }
.geo-mnav__contact { margin-top: 24px; }
.geo-mnav__contact p { color: #fff; margin-bottom: 8px; font-size: 14px; }
.geo-mnav__contact i { color: var(--thm-base); width: 20px; }
.geo-mnav__contact a { color: #fff; }

/* ---------- Buttons ---------- */
.thm-btn { border-radius: 0 !important; }
.geo-btn-outline { background: transparent !important; box-shadow: inset 0 0 0 2px #fff; margin-left: 12px; }
.geo-btn-outline::after { background: transparent !important; }
.geo-btn-outline::before { background: #fff !important; color: var(--thm-black) !important; }
.geo-link { display: inline-flex; align-items: center; gap: 8px; color: var(--thm-base); font-weight: 700; font-size: 15px; }
.geo-link:hover { color: var(--thm-black); }
.geo-link span { font-size: 12px; }

/* ---------- Hero ---------- */
.geo-hero .slider-one__single .image-layer::before { background: linear-gradient(90deg, rgba(var(--thm-black-rgb), .78) 0%, rgba(var(--thm-black-rgb), .45) 55%, rgba(var(--thm-black-rgb), .15) 100%); }
.geo-hero .slider-one__single-content h3 { color: #b7e08f; font-size: 16px; letter-spacing: 2px; }
.geo-hero .slider-one__single-content h2 { font-size: 56px; line-height: 1.12em; }
.geo-hero .slider-one__single { padding-top: 130px; padding-bottom: 110px; }
.geo-hero .slider-one__single-content p { font-size: 18px; line-height: 30px; }
.geo-hero__btns { display: flex; flex-wrap: wrap; gap: 0; }
.geo-hero.slider-one-sec.style3 { margin-top: 0; }
.geo-hero .owl-dots { position: absolute; left: 50%; transform: translateX(-50%); bottom: 30px; z-index: 10; }
.geo-hero .owl-dots .owl-dot span { background: rgba(255,255,255,.4); }
.geo-hero .owl-dots .owl-dot.active span { background: var(--thm-base); }

/* ---------- Section titles ---------- */
.sec-title__tagline h6 { color: var(--thm-base); }
.geo-light .sec-title__title { color: #fff; }

/* ---------- Services (dark) ---------- */
.geo-services { background: var(--thm-black); }
.geo-services .shape1, .geo-services .shape2 { display: none; }
.geo-services__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 30px; }
.geo-services .services-three__single { grid-column: span 2; margin-bottom: 0; height: 100%; padding: 44px 40px 40px; border-radius: 0; display: flex; flex-direction: column; }

.geo-services .services-three__single-icon { margin-bottom: 22px; }
.geo-services .services-three__single-icon span { font-size: 46px; }
.geo-services .services-three__single h3 { font-size: 24px; line-height: 32px; margin-bottom: 14px; }
.geo-services .services-three__single p { font-size: 16px; line-height: 28px; margin-bottom: 26px; max-width: 480px; }
.geo-services .services-three__single .btn-box { margin-top: auto; }

/* ---------- Service cards (light) ---------- */
.geo-svc-cards { padding: 110px 0 80px; background: var(--geo-sand); }
.geo-svc-card { background: #fff; border-radius: 0; overflow: hidden; margin-bottom: 30px; box-shadow: 0 12px 40px rgba(19,41,28,.07); height: calc(100% - 30px); display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s; }
.geo-svc-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(19,41,28,.12); }
.geo-svc-card__img { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; }
.geo-svc-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.geo-svc-card:hover .geo-svc-card__img img { transform: scale(1.06); }
.geo-svc-card__icon { position: absolute; left: 24px; bottom: -26px; width: 60px; height: 60px; border-radius: 0; background: var(--thm-base); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px; border: 4px solid #fff; }
.geo-svc-card__body { padding: 42px 28px 30px; display: flex; flex-direction: column; flex: 1; }
.geo-svc-card__body h3 { font-size: 22px; font-weight: 700; margin-bottom: 12px; }
.geo-svc-card__body h3 a { color: var(--thm-black); }
.geo-svc-card__body h3 a:hover { color: var(--thm-base); }
.geo-svc-card__body p { font-size: 15px; line-height: 26px; margin-bottom: 16px; }
.geo-svc-card__body ul { list-style: none; padding: 0; margin: 0 0 20px; }
.geo-svc-card__body ul li { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; color: var(--thm-black); padding: 5px 0; }
.geo-svc-card__body ul li span { color: var(--thm-base); font-size: 12px; }
.geo-svc-card__body .geo-link { margin-top: auto; }
.geo-svc-card--cta { background: var(--thm-black); justify-content: center; }
.geo-svc-card--cta .geo-svc-card__body { justify-content: center; padding: 40px 32px; }
.geo-svc-card--cta i { font-size: 44px; color: var(--thm-base); margin-bottom: 18px; }
.geo-svc-card--cta h3 { color: #fff; }
.geo-svc-card--cta p { color: rgba(255,255,255,.75); }
.geo-svc-card--cta .thm-btn { align-self: flex-start; }

/* ---------- About ---------- */
.geo-about { padding: 120px 0; }
.geo-about__imgs { position: relative; padding: 0 60px 70px 0; }
.geo-about__img1 { width: 100%; border-radius: 0; aspect-ratio: 4/3; object-fit: cover; }
.geo-about__img2 { position: absolute; right: 0; bottom: 0; width: 38%; aspect-ratio: 3/5; object-position: center 70%; object-fit: cover; border-radius: 0; border: 8px solid #fff; box-shadow: 0 20px 40px rgba(0,0,0,.15); }
.geo-about__badge { position: absolute; left: 30px; bottom: 20px; background: var(--thm-base); color: #fff; padding: 20px 26px; border-radius: 0; max-width: 220px; box-shadow: 0 16px 30px rgba(var(--thm-base-rgb), .35); }
.geo-about__badge strong { display: block; font-size: 42px; line-height: 1; font-family: var(--thm-font-2); }
.geo-about__badge span { font-size: 14px; font-weight: 600; }
.geo-about .about-three__content { padding-left: 30px; }

/* ---------- Stats ---------- */
.geo-stats { position: relative; padding: 90px 0 60px; background: var(--thm-black); overflow: hidden; }
.geo-stats__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .18; }
.geo-stats__item { position: relative; text-align: center; margin-bottom: 30px; padding: 10px; }
.geo-stats__item h3 { font-size: 58px; font-weight: 800; color: #fff; line-height: 1; margin-bottom: 12px; font-family: var(--thm-font-2); }
.geo-stats__item h3 span { color: #fff; }
.geo-stats__item p { color: #b7e08f; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; font-size: 14px; margin: 0; }

/* ---------- Values ---------- */
.geo-values { padding: 110px 0 80px; }
.geo-value { margin-bottom: 30px; height: calc(100% - 30px); border-radius: 0; }
.geo-value .feature-four__single-icon span { font-size: 40px; }

/* ---------- Vision / mission ---------- */
.geo-vm { position: relative; padding: 110px 0 80px; overflow: hidden; }
.geo-vm__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.geo-vm__bg::after { content: ""; position: absolute; inset: 0; background: rgba(var(--thm-black-rgb), .85); }
.geo-vm .container { position: relative; z-index: 2; }
.geo-vm__card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 0; padding: 44px 40px; margin-bottom: 30px; height: calc(100% - 30px); backdrop-filter: blur(4px); }
.geo-vm__icon { width: 70px; height: 70px; border-radius: 0; background: var(--thm-base); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 26px; margin-bottom: 22px; }
.geo-vm__card h3 { color: #fff; font-size: 30px; font-weight: 700; margin-bottom: 14px; }
.geo-vm__card p { color: rgba(255,255,255,.8); font-size: 17px; line-height: 30px; margin: 0; }

/* ---------- Why choose / FAQ ---------- */
.geo-why { background: var(--geo-sand); padding: 110px 0; }
.geo-why__lead { margin-top: -20px; margin-bottom: 30px; }
.geo-why__item { display: flex; gap: 20px; background: #fff; padding: 22px 24px; border-radius: 0; margin-bottom: 16px; box-shadow: 0 8px 26px rgba(19,41,28,.05); }
.geo-why__num { flex: 0 0 52px; height: 52px; border-radius: 0; background: rgba(var(--thm-base-rgb), .12); color: var(--thm-base); font-weight: 800; font-size: 20px; display: flex; align-items: center; justify-content: center; font-family: var(--thm-font-2); }
.geo-why__item h4 { font-size: 19px; font-weight: 700; color: var(--thm-black); margin-bottom: 6px; }
.geo-why__item p { margin: 0; font-size: 15px; line-height: 25px; }
.geo-why .faq-one__accordion { padding-left: 30px; }
.geo-why .accordion-box .acc-btn { cursor: pointer; }

/* ---------- Testimonials ---------- */
.geo-testi { padding: 110px 0 100px; }
.geo-testi .testimonials-three__single { margin-top: 50px; }
.geo-initials { display: flex !important; align-items: center; justify-content: center; background: var(--thm-base); color: #fff; font-weight: 800; font-size: 26px; font-family: var(--thm-font-2); border-radius: 50%; width: 80px; height: 80px; }
.geo-testi .owl-nav { position: absolute; top: -110px; right: 0; display: flex; gap: 10px; }
.geo-testi .owl-nav button { width: 50px; height: 50px; border-radius: 50% !important; border: 1px solid #dde3dc !important; color: var(--thm-black) !important; transition: .3s; }
.geo-testi .owl-nav button:hover { background: var(--thm-base) !important; color: #fff !important; border-color: var(--thm-base) !important; }
.geo-testi .owl-nav .left { display: inline-block; transform: rotate(180deg); }

/* ---------- Team ---------- */
.geo-team { padding: 110px 0 80px; background: var(--geo-sand); }
.geo-team .shape1 { display: none; }
.geo-member { background: #fff; border-radius: 0; overflow: hidden; margin-bottom: 30px; box-shadow: 0 12px 34px rgba(19,41,28,.07); height: calc(100% - 30px); transition: transform .3s; }
.geo-member:hover { transform: translateY(-6px); }
.geo-member__img { aspect-ratio: 1/1; overflow: hidden; background: #e8ede6; }
.geo-member__img img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.geo-member__placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--thm-black), #2e5a3a); }
.geo-member__placeholder span { font-size: 64px; color: #fff; font-weight: 800; font-family: var(--thm-font-2); opacity: .9; }
.geo-member__body { padding: 22px 22px 24px; }
.geo-member__body h3 { font-size: 18px; font-weight: 700; color: var(--thm-black); margin-bottom: 4px; text-transform: capitalize; }
.geo-member__body > span { display: block; color: var(--thm-base); font-weight: 700; font-size: 14px; margin-bottom: 12px; }
.geo-member__body ul { list-style: none; padding: 0; margin: 0; }
.geo-member__body li { font-size: 13px; line-height: 20px; padding: 3px 0 3px 16px; position: relative; }
.geo-member__body li::before { content: ""; position: absolute; left: 0; top: 11px; width: 6px; height: 6px; border-radius: 0; background: var(--thm-base); }

/* ---------- Projects teaser ---------- */
.geo-proj-teaser { padding: 110px 0 80px; }
.geo-proj-teaser__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 10px; }
.geo-proj-card { border-radius: 0; overflow: hidden; background: #fff; box-shadow: 0 12px 34px rgba(19,41,28,.08); margin-bottom: 30px; height: calc(100% - 30px); }
.geo-proj-card__img { aspect-ratio: 16/11; overflow: hidden; }
.geo-proj-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.geo-proj-card:hover .geo-proj-card__img img { transform: scale(1.06); }
.geo-proj-card__body { padding: 24px 26px 26px; }
.geo-proj-card__tag { display: inline-block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--thm-base); margin-bottom: 10px; }
.geo-proj-card__body h3 { font-size: 20px; font-weight: 700; color: var(--thm-black); line-height: 28px; margin-bottom: 10px; }
.geo-proj-card__body p { font-size: 14px; line-height: 22px; margin: 0; }
.geo-proj-card__body p i { color: var(--thm-base); margin-right: 4px; }

/* ---------- Projects page ---------- */
.geo-projects { padding: 110px 0 80px; }
.geo-projects__intro { margin-bottom: 20px; }
.geo-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 40px; }
.geo-tabs button { border: 1px solid #dde3dc; background: #fff; padding: 12px 26px; border-radius: 0; font-weight: 700; color: var(--thm-black); transition: .3s; }
.geo-tabs button.is-active, .geo-tabs button:hover { background: var(--thm-base); border-color: var(--thm-base); color: #fff; }
.geo-proj-group { margin-bottom: 50px; }
.geo-proj-group__head { display: flex; align-items: center; gap: 24px; background: var(--thm-black); border-radius: 0; overflow: hidden; margin-bottom: 24px; }
.geo-proj-group__head img { width: 260px; height: 150px; object-fit: cover; flex: 0 0 260px; }
.geo-proj-group__head h3 { color: #fff; font-size: 28px; font-weight: 700; margin-bottom: 6px; }
.geo-proj-group__head p { color: rgba(255,255,255,.75); margin: 0; padding-right: 20px; }
.geo-proj-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.geo-proj-item { display: flex; gap: 18px; background: var(--geo-sand); border-radius: 0; padding: 22px 24px; border-left: 4px solid var(--thm-base); transition: .3s; }
.geo-proj-item:hover { background: #fff; box-shadow: 0 12px 30px rgba(19,41,28,.08); }
.geo-proj-item__num { font-size: 28px; font-weight: 800; color: rgba(var(--thm-base-rgb), .5); font-family: var(--thm-font-2); line-height: 1; }
.geo-proj-item__body h3 { font-size: 18px; font-weight: 700; color: var(--thm-black); line-height: 26px; margin-bottom: 8px; }
.geo-proj-item__body p { font-size: 14px; line-height: 22px; margin: 0 0 4px; }
.geo-proj-item__body p i { color: var(--thm-base); margin-right: 4px; }
.geo-proj-item__note { font-style: italic; }

/* ---------- Industries ---------- */
.geo-industries { padding: 20px 0 110px; }
.geo-svc-cards + .geo-stats + .geo-industries { padding-top: 110px; }
.geo-industries .sec-title__title { font-size: 40px; line-height: 50px; }
.geo-industries__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.geo-industries__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 30px 12px; border-radius: 0; background: var(--geo-sand); text-align: center; transition: .3s; }
.geo-industries__item i { font-size: 34px; color: var(--thm-base); transition: .3s; }
.geo-industries__item span { font-weight: 700; color: var(--thm-black); }
.geo-industries__item:hover { background: var(--thm-black); }
.geo-industries__item:hover span, .geo-industries__item:hover i { color: #fff; }

/* ---------- Clients ---------- */
.geo-clients { padding: 100px 0; background: #fff; border-top: 1px solid #eef1ec; }
.geo-clients .sec-title { margin-bottom: 40px; }
.geo-clients .geo-muted { max-width: 620px; margin: 10px auto 0; }
.geo-clients__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.geo-clients__item { display: flex; align-items: center; justify-content: center; height: 130px; border: 1px solid #e6ebe4; border-radius: 0; background: #fff; padding: 16px; transition: .3s; }
.geo-clients__item img { width: auto; height: auto; max-height: 90px; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .75; transition: .3s; }
.geo-clients__item:hover { box-shadow: 0 12px 30px rgba(19,41,28,.08); border-color: transparent; }
.geo-clients__item:hover img { filter: none; opacity: 1; }

/* ---------- CTA ---------- */
.geo-cta { position: relative; padding: 80px 0; overflow: hidden; }
.geo-cta__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.geo-cta__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(var(--thm-base-rgb), .96) 0%, rgba(var(--thm-base-rgb), .88) 60%, rgba(var(--thm-black-rgb), .75) 100%); }
.geo-cta .container { position: relative; z-index: 2; }
.geo-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.geo-cta h6 { color: var(--thm-black); text-transform: uppercase; font-weight: 800; letter-spacing: 2px; font-size: 14px; margin-bottom: 10px; }
.geo-cta h2 { color: #fff; font-size: 34px; line-height: 44px; font-weight: 700; margin: 0; }
.geo-cta__btns { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.geo-cta .thm-btn::after { background: var(--thm-black); color: #fff; }
.geo-cta .thm-btn::before { background: #fff; color: var(--thm-black); }
.geo-cta__phone { color: #fff; font-size: 22px; font-weight: 800; }
.geo-cta__phone i { margin-right: 6px; }
.geo-cta__phone:hover { color: var(--thm-black); }

/* ---------- Page header ---------- */
.geo-page-header { padding: 150px 0 140px; }
.geo-page-header .page-header__bg { background-position: center; }
.geo-page-header .page-header__bg::before { background: linear-gradient(90deg, rgba(var(--thm-black-rgb), .92) 0%, rgba(var(--thm-black-rgb), .6) 60%, rgba(var(--thm-black-rgb), .35) 100%); }
.geo-page-header .page-header__content h2 { color: #fff; font-size: 62px; }
.geo-page-header .page-header__menu ul li, .geo-page-header .page-header__menu ul li a { color: #fff; font-size: 18px; }
.geo-page-header .page-header__menu ul li a:hover { color: var(--thm-base); }
.geo-page-header .page-header__menu ul li::before { background: var(--thm-base); }

/* ---------- Service details ---------- */
.geo-svc-details { padding: 110px 0 80px; }
.geo-svc-details .services-details__img1 img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 0; }
.geo-svc-details .services-details__text-box2-img img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 0; }
.geo-detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 30px 0 40px; }
.geo-detail-card { background: var(--geo-sand); border-radius: 0; padding: 26px; border-top: 3px solid var(--thm-base); }
.geo-detail-card h4 { font-size: 19px; font-weight: 700; color: var(--thm-black); margin-bottom: 8px; }
.geo-detail-card p { margin: 0; font-size: 15px; line-height: 26px; }
.geo-process h3 { font-size: 28px; font-weight: 700; color: var(--thm-black); margin-bottom: 20px; }
.geo-process__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.geo-process__step { border: 1px solid #e6ebe4; border-radius: 0; padding: 22px 18px; }
.geo-process__step span { display: inline-flex; width: 40px; height: 40px; border-radius: 0; background: var(--thm-base); color: #fff; font-weight: 800; align-items: center; justify-content: center; margin-bottom: 12px; }
.geo-process__step h5 { font-size: 17px; font-weight: 700; color: var(--thm-black); margin-bottom: 6px; }
.geo-process__step p { font-size: 14px; line-height: 22px; margin: 0; }
.geo-sidebar-email { margin-top: 10px; }
.geo-sidebar-email a { color: #fff; font-weight: 600; }
.services-details-contact-box { background: var(--thm-black) !important; }

/* ---------- Contact ---------- */
.geo-contact { padding-top: 110px; }
.geo-contact .contact-page__content-single .content-box p { font-size: 15px; line-height: 24px; }
.geo-contact .contact-page__content-single .content-box a { color: var(--thm-gray); }
.geo-contact .contact-page__content-single .content-box a:hover { color: var(--thm-base); }
.geo-form-title { font-size: 34px; font-weight: 700; color: var(--thm-black); margin-bottom: 8px; }
.geo-contact .geo-muted { margin-bottom: 26px; }
.geo-select { width: 100%; height: 60px; border: 1px solid #e0e4e8; padding: 0 20px; color: var(--thm-gray); font-size: 14px; outline: none; background: #fff; appearance: auto; }
.geo-sent { margin-top: 16px; color: var(--thm-base); font-weight: 600; }
.geo-map { padding: 20px 0 100px; }
.geo-map iframe { width: 100%; height: 420px; border: 0; border-radius: 0; }

/* ---------- Footer ---------- */
.footer-one-sec { background: var(--thm-primary); }
.footer-one__top-img { display: none; }
.footer-widget__about-logo .geo-logo img { width: 58px; height: 58px; }
.geo-footer-contact ul { list-style: none; padding: 0; margin: 0; }
.geo-footer-contact li { display: flex; gap: 12px; color: rgba(255,255,255,.75); margin-bottom: 16px; font-size: 15px; line-height: 24px; }
.geo-footer-contact li i { color: var(--thm-base); margin-top: 5px; width: 16px; }
.geo-footer-contact li a { color: rgba(255,255,255,.75); }
.geo-footer-contact li a:hover { color: var(--thm-base); }

/* ---------- Hero service strip ---------- */
.geo-hero { position: relative; }
.geo-hero__strip { position: relative; z-index: 20; background: var(--thm-black); }
.geo-hero__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid rgba(255,255,255,.1); }
.geo-hero__cell { position: relative; display: flex; align-items: flex-start; gap: 14px; padding: 24px 22px; border-right: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); color: #fff; transition: background .25s; }
.geo-hero__cell::before { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0; background: var(--thm-base); transition: width .3s; }
a.geo-hero__cell:hover { background: rgba(255,255,255,.04); color: #fff; }
a.geo-hero__cell:hover::before { width: 100%; }
.geo-hero__cell strong { display: block; font-family: var(--thm-font-2); font-size: 16px; line-height: 22px; font-weight: 700; color: #fff; padding-right: 18px; }
.geo-hero__num { font-family: var(--thm-font-2); font-size: 13px; font-weight: 700; color: var(--thm-base); letter-spacing: 1px; padding-top: 3px; }
.geo-hero__go { position: absolute; right: 18px; bottom: 18px; font-size: 11px; color: rgba(255,255,255,.35); transition: .25s; }
a.geo-hero__cell:hover .geo-hero__go { color: var(--thm-base); transform: translateX(3px); }
.geo-hero__cell--area { flex-direction: column; gap: 6px; background: var(--thm-base); border-color: var(--thm-base); }
.geo-hero__cell--area .geo-hero__label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.8px; color: var(--thm-black); }
.geo-hero__cell--area strong { font-size: 17px; padding: 0; }
.geo-hero .owl-dots { bottom: 30px !important; }

/* ---------- Service area band ---------- */
.geo-area { padding: 80px 0; background: var(--geo-sand); }
.geo-area__inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: 50px; align-items: center; }
.geo-area__text h6 { color: var(--thm-base); text-transform: uppercase; font-weight: 800; letter-spacing: 2px; font-size: 14px; margin-bottom: 10px; }
.geo-area__text h2 { font-size: 36px; line-height: 46px; font-weight: 700; color: var(--thm-black); margin-bottom: 16px; }
.geo-area__text p { font-size: 16px; line-height: 28px; margin: 0; }
.geo-area__list { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d9e0d6; border-left: 1px solid #d9e0d6; }
.geo-area__list span { display: block; padding: 14px 16px; border-right: 1px solid #d9e0d6; border-bottom: 1px solid #d9e0d6; font-weight: 700; color: var(--thm-black); font-size: 15px; background: #fff; position: relative; }
.geo-area__list span::before { content: ""; display: inline-block; width: 8px; height: 8px; background: var(--thm-base); margin-right: 10px; vertical-align: middle; }
.geo-area__list .geo-area__intl { background: var(--thm-black); color: #fff; border-color: rgba(255,255,255,.12); }

/* ---------- Wide CTA card on services page ---------- */
.geo-svc-card--wide { height: auto; }
.geo-svc-card--wide .geo-svc-card__body { flex-direction: row; align-items: center; gap: 24px; flex-wrap: wrap; padding: 34px 40px; }
.geo-svc-card--wide .geo-svc-card__body i { margin: 0; }
.geo-svc-card--wide h3 { margin: 0; }
.geo-svc-card--wide p { margin: 0; flex: 1; min-width: 240px; }
.geo-svc-card--wide .thm-btn { align-self: center; }

/* ---------- Form extras ---------- */
.geo-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.geo-sent--err { color: #c0392b; }

/* ---------- WhatsApp popup ---------- */
.geo-wa { position: fixed; right: 24px; bottom: 24px; z-index: 9990; font-family: var(--thm-font); }
.geo-wa__fab { width: 62px; height: 62px; border-radius: 50%; border: 0; background: #25d366; color: #fff; font-size: 32px; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0,0,0,.25); cursor: pointer; transition: .3s; position: relative; }
.geo-wa__fab:not(.is-open)::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #25d366; animation: geoPulse 2s infinite; }
@keyframes geoPulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.5); opacity: 0; } }
.geo-wa__fab.is-open { background: var(--thm-black); }
.geo-wa__fab-x { font-size: 36px; line-height: 1; }
.geo-wa__panel { position: absolute; right: 0; bottom: 78px; width: 340px; max-width: calc(100vw - 32px); background: #fff; border-radius: 0; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transform: translateY(12px); transition: .3s; }
.geo-wa__panel.is-open { opacity: 1; visibility: visible; transform: none; }
.geo-wa__head { display: flex; align-items: center; gap: 12px; background: #075e54; padding: 16px 18px; color: #fff; position: relative; }
.geo-wa__head img { width: 44px; height: 44px; border-radius: 50%; background: #fff; padding: 3px; }
.geo-wa__head strong { display: block; font-size: 16px; }
.geo-wa__head span { font-size: 12px; opacity: .9; display: flex; align-items: center; gap: 6px; }
.geo-wa__head span i { width: 8px; height: 8px; border-radius: 50%; background: #25d366; display: inline-block; }
.geo-wa__x { position: absolute; right: 12px; top: 8px; background: transparent; border: 0; color: #fff; font-size: 24px; cursor: pointer; }
.geo-wa__body { background: #ece5dd; padding: 18px; }
.geo-wa__bubble { background: #fff; border-radius: 0 12px 12px 12px; padding: 12px 14px; font-size: 14px; line-height: 21px; color: #303030; box-shadow: 0 1px 1px rgba(0,0,0,.08); }
.geo-wa__form { padding: 16px 18px 18px; }
.geo-wa__form label { display: block; font-size: 11px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: #6b7570; margin-bottom: 6px; }
.geo-wa__form textarea { width: 100%; border: 1px solid #dde3dc; border-radius: 0; padding: 10px 12px; font-size: 14px; resize: vertical; outline: none; background: #f7f7f5; }
.geo-wa__form textarea:focus { border-color: #25d366; }
.geo-wa__send { width: 100%; margin-top: 12px; border: 0; border-radius: 0; background: #25d366; color: #fff; font-weight: 800; font-size: 15px; padding: 13px; display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.geo-wa__send i { font-size: 20px; }
.geo-wa__send:hover { background: #1ebe5b; }
.geo-wa__form p { text-align: center; font-size: 13px; margin: 10px 0 0; }
.geo-wa__form p a { color: var(--thm-base); font-weight: 700; }
.scrollUp { bottom: 100px !important; right: 30px !important; }

/* ---------- Field gallery ---------- */
.geo-field { padding: 110px 0 100px; }
.geo-field__lead { max-width: 440px; margin: 0 0 40px; }
.geo-gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 240px; gap: 16px; grid-auto-flow: dense; }
.geo-gallery__item { position: relative; display: block; overflow: hidden; border-radius: 0; }
.geo-gallery__item--wide { grid-column: span 2; }
.geo-gallery__item--tall { grid-row: span 2; }
.geo-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.geo-gallery__item:hover img { transform: scale(1.06); }
.geo-gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 18px 14px; color: #fff; font-size: 14px; font-weight: 600; background: linear-gradient(0deg, rgba(var(--thm-black-rgb), .85), transparent); opacity: 0; transform: translateY(10px); transition: .35s; }
.geo-gallery__item:hover .geo-gallery__cap { opacity: 1; transform: none; }
.geo-gallery__cap i { color: var(--thm-base); margin-right: 6px; }
@media (max-width: 1199px) {
    .geo-hero__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991px) {
    .geo-area__inner { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 767px) {
    .geo-hero .slider-one__single { padding-bottom: 120px; padding-top: 110px; }
    .geo-hero .owl-dots { bottom: 20px !important; }
    .geo-hero__cell { padding: 18px 16px; gap: 10px; }
    .geo-hero__cell strong { font-size: 14px; line-height: 20px; }
    .geo-area__list { grid-template-columns: repeat(2, 1fr); }
    .geo-area__text h2 { font-size: 28px; line-height: 38px; }
    .geo-wa { right: 16px; bottom: 16px; }
    .geo-wa__fab { width: 56px; height: 56px; font-size: 28px; }
}
@media (max-width: 991px) {
    .geo-gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
}
@media (max-width: 575px) {
    .geo-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 10px; }
    .geo-gallery__cap { opacity: 1; transform: none; font-size: 12px; padding: 30px 10px 8px; }
}

/* ---------- Blog ---------- */
.geo-blog-teaser { padding: 110px 0 80px; background: var(--geo-sand); }
.geo-blog-card { background: #fff; border-radius: 0; overflow: hidden; box-shadow: 0 12px 34px rgba(19,41,28,.08); margin-bottom: 30px; height: calc(100% - 30px); display: flex; flex-direction: column; transition: transform .3s; }
.geo-blog-card:hover { transform: translateY(-6px); }
.geo-blog-card__img { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; }
.geo-blog-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.geo-blog-card:hover .geo-blog-card__img img { transform: scale(1.06); }
.geo-blog-card__cat { position: absolute; left: 18px; top: 18px; background: var(--thm-base); color: #fff; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; padding: 6px 14px; border-radius: 0; }
.geo-blog-card__catinline { display: inline-block; color: var(--thm-base); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 12px; }
.geo-blog-card__body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.geo-blog-card__meta { display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; color: var(--thm-gray); margin-bottom: 12px; }
.geo-blog-card__meta i { color: var(--thm-base); margin-right: 4px; }
.geo-blog-card__body h3 { font-size: 20px; line-height: 28px; font-weight: 700; margin-bottom: 12px; }
.geo-blog-card__body h3 a { color: var(--thm-black); }
.geo-blog-card__body h3 a:hover { color: var(--thm-base); }
.geo-blog-card__body p { font-size: 15px; line-height: 26px; margin-bottom: 18px; }
.geo-blog-card__body .geo-link { margin-top: auto; }
.geo-blog-list { padding: 110px 0 80px; }
.geo-blog-featured { display: grid; grid-template-columns: 1.15fr 1fr; background: var(--thm-black); border-radius: 0; overflow: hidden; margin: 20px 0 40px; }
.geo-blog-featured__img { display: block; min-height: 380px; }
.geo-blog-featured__img img { width: 100%; height: 100%; object-fit: cover; }
.geo-blog-featured__body { padding: 48px 46px; display: flex; flex-direction: column; justify-content: center; }
.geo-blog-featured__body h2 { font-size: 32px; line-height: 42px; font-weight: 700; margin-bottom: 14px; }
.geo-blog-featured__body h2 a { color: #fff; }
.geo-blog-featured__body h2 a:hover { color: var(--thm-base); }
.geo-blog-featured__body .geo-blog-card__meta { color: rgba(255,255,255,.7); }
.geo-blog-featured__body p { color: rgba(255,255,255,.8); font-size: 16px; line-height: 28px; margin-bottom: 26px; }
.geo-blog-featured__body .thm-btn { align-self: flex-start; }
.geo-post { padding: 100px 0 80px; }
.geo-post__article h1 { font-size: 42px; line-height: 52px; font-weight: 800; color: var(--thm-black); margin-bottom: 16px; }
.geo-post__meta { margin-bottom: 28px; font-size: 14px; }
.geo-post__hero { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 0; margin-bottom: 34px; }
.geo-post__article h2 { font-size: 28px; line-height: 38px; font-weight: 700; color: var(--thm-black); margin: 38px 0 14px; }
.geo-post__article p { font-size: 17px; line-height: 31px; color: #4d5652; margin-bottom: 18px; }
.geo-post__article ul { list-style: none; padding: 0; margin: 0 0 24px; }
.geo-post__article ul li { position: relative; padding: 6px 0 6px 32px; font-size: 16px; line-height: 28px; color: #4d5652; }
.geo-post__article ul li::before { content: "\f00c"; font-family: "Font Awesome 5 Free"; font-weight: 900; position: absolute; left: 0; top: 7px; width: 22px; height: 22px; border-radius: 50%; background: rgba(var(--thm-base-rgb), .14); color: var(--thm-base); font-size: 11px; display: flex; align-items: center; justify-content: center; }
.geo-post__article figure { margin: 30px 0; }
.geo-post__article figure img { width: 100%; border-radius: 0; aspect-ratio: 16/9; object-fit: cover; }
.geo-post__article figcaption { font-size: 14px; color: var(--thm-gray); margin-top: 10px; font-style: italic; }
.geo-post__article blockquote { margin: 34px 0; padding: 28px 32px; background: var(--thm-black); color: #fff; font-size: 22px; line-height: 34px; font-weight: 600; border-radius: 0; border-left: 6px solid var(--thm-base); font-family: var(--thm-font-2); }
.geo-post__cta { margin-top: 44px; padding: 36px; border-radius: 0; background: var(--geo-sand); border: 1px solid #e3e9e0; }
.geo-post__cta h3 { font-size: 26px; font-weight: 700; color: var(--thm-black); margin-bottom: 8px; }
.geo-post__cta-btns { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 18px; }
.geo-post__phone { font-size: 20px; font-weight: 800; color: var(--thm-black); }
.geo-post__phone i { color: var(--thm-base); margin-right: 6px; }
.geo-post__side { position: sticky; top: 20px; }
.geo-post__recent { list-style: none; padding: 0; margin: 0; }
.geo-post__recent li { display: flex; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid #e3e6e3; }
.geo-post__recent li:last-child { border-bottom: 0; }
.geo-post__recent img { width: 76px; height: 64px; object-fit: cover; border-radius: 0; flex: 0 0 76px; }
.geo-post__recent a { color: var(--thm-black); font-weight: 700; font-size: 15px; line-height: 22px; display: block; }
.geo-post__recent a:hover { color: var(--thm-base); }
.geo-post__recent span { font-size: 12px; color: var(--thm-gray); }
@media (max-width: 991px) {
    .geo-blog-featured { grid-template-columns: 1fr; }
    .geo-blog-featured__img { min-height: 240px; }
    .geo-post__side { position: static; margin-top: 40px; }
}
@media (max-width: 767px) {
    .geo-post__article h1 { font-size: 30px; line-height: 40px; }
    .geo-post__article h2 { font-size: 23px; line-height: 32px; }
    .geo-blog-featured__body { padding: 30px 24px; }
    .geo-blog-featured__body h2 { font-size: 24px; line-height: 34px; }
}

/* ---------- 404 ---------- */
.geo-404 { padding: 110px 0; }
.geo-404 h2 { font-size: 140px; font-weight: 800; color: var(--thm-base); line-height: 1; }

/* ---------- Scroll to top ---------- */
.scrollUp { background: var(--thm-base) !important; }
.scrollUp svg { color: #fff; fill: #fff; }

/* Make theme animation classes visible even without WOW.js */
.wow { visibility: visible !important; }

/* ==========================================================
   Responsive
   ========================================================== */
@media (max-width: 1399px) {
    .geo-header .main-header-one__bottom .container-fluid { padding-left: 40px; }
    .geo-header .main-header-one__middle ul li { margin-left: 20px; padding-right: 20px; }
}
@media (max-width: 1199px) {
    .geo-services__grid { grid-template-columns: repeat(2, 1fr); }
    .geo-services .services-three__single { grid-column: span 1; }
    .geo-hero .slider-one__single-content h2 { font-size: 50px; }
    .geo-header .main-header-one__middle { display: none; }
    .geo-about .about-three__content { padding-left: 0; margin-top: 50px; }
    .geo-why .faq-one__accordion { padding-left: 0; margin-top: 40px; }
    .geo-clients__grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 991px) {
    .geo-header .main-header-one__bottom { display: none; }
    .geo-header__mobile-toggle { display: block; }
    .geo-header .main-header-one__left { width: auto; padding-right: 30px; }
    .geo-proj-list { grid-template-columns: 1fr; }
    .geo-process__steps { grid-template-columns: repeat(2, 1fr); }
    .geo-clients__grid { grid-template-columns: repeat(3, 1fr); }
    .geo-page-header .page-header__content h2 { font-size: 46px; }
    .geo-hero .owl-nav { display: none !important; }
    .geo-svc-details .services-details__sidebar { margin-top: 40px; }
}
@media (max-width: 767px) {
    .geo-services__grid { grid-template-columns: 1fr; }
    .geo-services .services-three__single { grid-column: span 1; padding: 34px 28px; }
    .geo-hero .slider-one__single-content h2 { font-size: 36px; }
    .geo-hero .slider-one__single-content p br, .geo-hero .slider-one__single-content h2 br { display: none; }
    .geo-btn-outline { margin-left: 0; margin-top: 12px; }
    .geo-detail-grid, .geo-process__steps { grid-template-columns: 1fr; }
    .geo-clients__grid { grid-template-columns: repeat(2, 1fr); }
    .geo-industries__grid { grid-template-columns: repeat(2, 1fr); margin-top: 30px; }
    .geo-proj-group__head { flex-direction: column; align-items: flex-start; gap: 0; }
    .geo-proj-group__head img { width: 100%; flex: none; }
    .geo-proj-group__head > div { padding: 20px; }
    .geo-cta h2 { font-size: 26px; line-height: 36px; }
    .geo-cta h2 br { display: none; }
    .geo-stats__item h3 { font-size: 40px; }
    .geo-about__imgs { padding: 0 30px 60px 0; }
    .geo-about__badge { left: 12px; padding: 14px 18px; }
    .geo-about__badge strong { font-size: 32px; }
    .geo-logo__text strong { font-size: 18px; }
    .geo-logo img { width: 44px; height: 44px; }
    .geo-page-header { padding: 100px 0 90px; }
    .geo-page-header .page-header__content h2 { font-size: 36px; }
}
.geo-post__recent li > a:first-child { flex: 0 0 76px; display: block; }
.geo-post__recent li > div { flex: 1; }
.geo-hero .owl-theme .owl-nav { margin-top: 0 !important; }
.geo-hero .slider-carousel { margin-bottom: 0 !important; }
@media (max-width: 767px) { .geo-hero .owl-theme .owl-nav { display: none !important; } }
.geo-hero .owl-dots { margin-top: 0 !important; }

/* Flat design: no rounded corners on theme blocks */
.services-three__single, .feature-four__single, .testimonials-three__single, .accordion-box .acc-btn, .accordion-box .acc-content, .services-details__sidebar-single, .comment-form__input-box input, .comment-form__input-box textarea, .contact-page__form, .geo-select { border-radius: 0 !important; }
.geo-hero { background: var(--thm-black); }
.geo-hero__strip .container { padding-left: 15px !important; padding-right: 15px !important; }
/* Flat: swap soft shadows for hairline borders */
.geo-svc-card, .geo-proj-card, .geo-blog-card, .geo-member, .geo-why__item, .geo-clients__item:hover, .testimonials-three__single, .geo-proj-item:hover { box-shadow: none !important; border: 1px solid #dfe5dc; }
.geo-svc-card:hover, .geo-blog-card:hover, .geo-member:hover { transform: none; border-color: var(--thm-base); }
.geo-about__img2 { box-shadow: none; }
