/* =========================================================
   GeoTech Design Consultants — 13-Oct updates
   Header (logo / topbar) · Moving strip · About photo ·
   Testimonials · Footer map (Maharashtra)
   ========================================================= */

/* ---------- Header: topbar text white ---------- */
.topbar a,
.topbar a.text-muted,
.topbar .text-muted { color: #fff !important; }
.topbar a:hover { color: #ffd2b8 !important; }

/* ---------- Header: logo bigger, image cropped (no empty space around it) ---------- */
.navbar { padding-top: .55rem !important; padding-bottom: .55rem !important; }
.navbar .navbar-brand { padding: 0 !important; display: flex; align-items: center; }
.navbar .navbar-brand img { max-height: 72px !important; height: 72px; width: auto; }
@media (max-width: 991px) {
    .navbar .navbar-brand img { max-height: 54px !important; height: 54px; }
}

/* ---------- Moving strip: lower height ---------- */
.gt-strip-item { padding: 18px 28px; gap: 16px; align-items: center; }
.gt-strip-ico { width: 52px; height: 52px; font-size: 20px; }
.gt-strip-item h4 { font-size: 17px; margin-bottom: 4px; }
.gt-strip-item p { font-size: 13.5px; line-height: 1.55; margin-bottom: 0; }
@media (max-width: 767px) {
    .gt-strip-item { padding: 14px 16px !important; }
    .gt-strip-ico { width: 44px; height: 44px; font-size: 17px; }
}

/* ---------- About photo: professional / innovative frame ---------- */
.gu-ab-media { padding: 0 0 2.2rem 1.6rem; isolation: isolate; }
.gu-ab-media::before {                      /* offset navy frame */
    content: ""; position: absolute; left: 0; top: 1.6rem; right: 1.6rem; bottom: 3.8rem;
    border: 2px solid #001659; border-radius: 6px; z-index: -1;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.gu-ab-media::after {                       /* blueprint dot grid */
    content: ""; position: absolute; right: -1.4rem; top: -1.4rem; width: 150px; height: 150px; z-index: -2;
    background-image: radial-gradient(#ff5e14 1.6px, transparent 1.7px);
    background-size: 15px 15px; opacity: .55;
}
.gu-ab-media img.rounded {
    aspect-ratio: 4 / 4.4; border-radius: 0 !important;
    clip-path: polygon(0 0, calc(100% - 56px) 0, 100% 56px, 100% 100%, 56px 100%, 0 calc(100% - 56px));
    box-shadow: 0 24px 50px rgba(0, 22, 89, .25);
    filter: saturate(1.05) contrast(1.03);
}
.gu-ab-media .gu-ab-photo-tag {
    position: absolute; left: 0; top: 2.4rem; background: #ff5e14; color: #fff; font-size: .72rem;
    letter-spacing: .18em; text-transform: uppercase; font-weight: 700; padding: .5rem .9rem .5rem 1.1rem;
    border-radius: 0 4px 4px 0; box-shadow: 0 8px 20px rgba(255, 94, 20, .35);
}
@media (max-width: 575px) { .gu-ab-media { padding-left: 0; } .gu-ab-media::before { display: none; } }

/* ---------- Testimonials: premium split card ---------- */
.gu-testi-track.gu-one .gu-tcard {
    background: linear-gradient(180deg, #fff 0%, #f6f8fd 100%);
    border-radius: 18px; padding: 3.4rem 3.2rem 2.2rem 3.6rem; min-height: 320px;
    border-left: 6px solid var(--gu-org);
    overflow: visible;
}
.gu-testi-track.gu-one .gu-tcard::before { display: none; }
.gu-testi-track.gu-one .gu-tcard .q {       /* quote badge */
    position: absolute; left: 3.2rem; top: -28px; width: 58px; height: 58px; border-radius: 14px;
    background: linear-gradient(135deg, #ff5e14, #ff8a4d); color: #fff; font-size: 1.35rem; margin: 0;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 12px 26px rgba(255, 94, 20, .45);
    transform: rotate(-6deg);
}
.gu-testi-track.gu-one .gu-tcard p {
    font-style: normal; font-weight: 500; font-size: clamp(1.1rem, 1.7vw, 1.4rem); line-height: 1.7; color: #14214a;
}
.gu-testi-track.gu-one .gu-tperson { border-top: 1px dashed #cdd6ea; margin-top: 1.4rem; padding-top: 1.2rem; }
.gu-testi-track.gu-one .gu-tperson::after {
    content: "Verified Client"; margin-left: auto; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase;
    font-weight: 700; color: #001659; background: #e8eefc; border-radius: 30px; padding: .4rem .8rem;
}
.gu-testi-track.gu-one .gu-tav { box-shadow: 0 0 0 3px #fff, 0 0 0 5px #ff5e14; }
@media (max-width: 767px) {
    .gu-testi-track.gu-one .gu-tcard { padding: 3rem 1.4rem 1.6rem 1.6rem; }
    .gu-testi-track.gu-one .gu-tcard .q { left: 1.4rem; }
    .gu-testi-track.gu-one .gu-tperson::after { display: none; }
}

/* ---------- Footer map: Maharashtra highlighted & bigger ---------- */
.india-map { max-width: 520px; }
.india-map .map-pin.map-pin-hq { z-index: 4; }
.india-map .map-pin.map-pin-hq .pin-icon { font-size: 36px; color: #ff5e14; }
.india-map .map-pin.map-pin-hq::before { left: -18px; top: -5px; width: 36px; height: 12px; }
.india-map .map-pin.map-pin-hq .pin-label {
    opacity: 1; font-size: 13px; font-weight: 700; padding: 5px 10px; border-radius: 6px;
    background: #ff5e14; color: #fff; top: 8px; box-shadow: 0 6px 16px rgba(0, 0, 0, .35);
}
.india-map .map-hq-glow {
    position: absolute; width: 26%; aspect-ratio: 1.15; border-radius: 50%; pointer-events: none;
    left: 26.3%; top: 58.1%; transform: translate(-50%, -62%);
    background: radial-gradient(circle, rgba(255, 94, 20, .5) 0%, rgba(255, 94, 20, .18) 45%, transparent 70%);
    animation: hqGlow 3s ease-in-out infinite;
}
@keyframes hqGlow { 0%, 100% { opacity: .65; transform: translate(-50%, -62%) scale(1); } 50% { opacity: 1; transform: translate(-50%, -62%) scale(1.12); } }

/* =========================================================
   Home banner — slow zoom-in (Ken Burns) on the active slide
   ========================================================= */
@keyframes gdcBannerZoom { from { transform: scale(1); } to { transform: scale(1.09); } }
#carouselId.gt-banners .carousel-item.active img {
    animation: gdcBannerZoom 8s ease-out forwards;
    transform-origin: 50% 50%;
    will-change: transform;
}

/* =========================================================
   GeoTech Advantage — moving background
   ========================================================= */
.gt-adv { background: linear-gradient(120deg, #f4f6fa, #e8edf8, #fdf1ea, #eaeef5); background-size: 300% 300%; animation: gdcAdvShift 18s ease-in-out infinite; }
@keyframes gdcAdvShift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

/* contour lines slowly drift */
.gt-adv::before { inset: -8%; opacity: .1; animation: gdcContour 28s ease-in-out infinite alternate; }
@keyframes gdcContour { from { transform: translate3d(-2.5%, -1.5%, 0) scale(1); } to { transform: translate3d(2.5%, 1.5%, 0) scale(1.08); } }

/* floating colour orbs + drifting dot grid */
.gt-adv::after {
    content: ""; position: absolute; inset: -4%; pointer-events: none; z-index: 0;
    background:
        radial-gradient(circle at 15% 25%, rgba(255, 94, 20, .20) 0, transparent 22%),
        radial-gradient(circle at 85% 70%, rgba(0, 22, 89, .16) 0, transparent 26%),
        radial-gradient(circle at 60% 15%, rgba(255, 138, 77, .14) 0, transparent 18%),
        radial-gradient(rgba(0, 22, 89, .16) 1.4px, transparent 1.6px);
    background-size: 100% 100%, 100% 100%, 100% 100%, 26px 26px;
    animation: gdcOrbs 16s ease-in-out infinite alternate;
}
@keyframes gdcOrbs {
    0%   { background-position: 0 0, 0 0, 0 0, 0 0; transform: translate3d(0, 0, 0); }
    100% { background-position: 0 0, 0 0, 0 0, 26px 26px; transform: translate3d(1.5%, -2%, 0); }
}

@media (prefers-reduced-motion: reduce) {
    #carouselId.gt-banners .carousel-item.active img,
    .gt-adv, .gt-adv::before, .gt-adv::after { animation: none !important; }
}
