/* Garudateknusa Elementor Widgets — frontend helpers */
.gt-hero { background: linear-gradient(135deg,#4E9BD8 0%,#2B66AE 100%); }
.gt-hero h1, .gt-hero-sub, .gt-hero-desc, .gt-hero-badge,
.gt-stat-number, .gt-stat-label,
.gt-svc-heading, .gt-testi-heading, .gt-social-heading, .gt-blog-heading,
.gt-cta-banner h2, .gt-sh-heading,
.gt-pc-heading, .gt-ph-card h3, .gt-svc-card h3, .gt-blog-card h3,
.gt-stats-number, .gt-social-name { font-family: var(--font-heading, inherit); }

.gt-hero-glow {
  right: -120px; top: 50%; transform: translateY(-50%);
  width: 900px; height: 900px;
  background: radial-gradient(circle, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0) 60%);
}
.gt-ph-dots {
  background-image: radial-gradient(circle, #0f75bc22 1px, transparent 1px);
  background-size: 32px 32px;
}
.gt-pc-card h3, .gt-pc-card p { font-family: inherit; }

/* Logo marquee */
.gt-logo-marquee { animation: gtw-marquee 30s linear infinite; }
@keyframes gtw-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Fallback tampilan normal/grid ketika kolom kontrol dipakai */
@media (max-width: 1024px) {
  .gt-svc-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 640px) {
  .gt-svc-grid { grid-template-columns: 1fr !important; }
  .gt-testi-slide { grid-template-columns: 1fr !important; }
}
.line-clamp-3 {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

/* GT Industry — fallback default */
.gt-industry { background-color: #0F75BC; }

/* Fallback default background section (Elementor tidak generate CSS utk nilai default) */
.gt-services { background-color: #F0F7FF; }
.gt-philosophy { background-color: #FFFFFF; }
.gt-social { background-color: #FFFFFF; }
.gt-blog { background-color: #F9F9F9; }
.gt-testi { background-color: #F9F9F9; }

/* v1.0.2: default warna section biru (industri) + tombol hero (live parity) */
.gt-ind-eyebrow { color: rgba(255,255,255,0.8); }
.gt-ind-desc { color: rgba(255,255,255,0.85); }
.gt-ind-heading { color: #FFFFFF; }

/* v1.0.4: hero ring & circle default sizes (live parity) */
.gt-hero-ring { width: 520px; height: 520px; }
.gt-hero-circle { width: 230px; height: 230px; }
.gt-hero-logo img { width: 160px; height: 160px; }

/* v1.0.5: problem cards — accent biru + eyebrow biru */
.gt-pc-accent { color: #0f75bc; }
.gt-pc-eyebrow { color: #0f75bc; }

/* v1.0.6: section vertical padding (live: py-20 lg:py-28) */
.gt-problems, .gt-philosophy, .gt-services, .gt-industry, .gt-testi, .gt-social, .gt-blog {
  padding-top: 80px; padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .gt-problems, .gt-philosophy, .gt-services, .gt-industry, .gt-testi, .gt-social, .gt-blog {
    padding-top: 112px; padding-bottom: 112px;
  }
}

/* v1.0.7: philosophy — kartu putih+shadow, kotak ikon biru, warna teks (live parity) */
.gt-ph-card { background-color: #FFFFFF; border-color: #F1F5F9; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); }
.gt-ph-icon { background-color: #0F75BC; box-shadow: 0 4px 6px -1px rgb(15 117 188 / 0.3); }
.gt-ph-icon svg { color: #FFFFFF; }
.gt-ph-number { color: #0F75BC; }
.gt-philosophy .gt-ph-eyebrow { color: #0F75BC; }
.gt-philosophy .gt-ph-heading { color: var(--c-heading, #0F172A); }
.gt-philosophy .gt-ph-desc { color: var(--c-body, #475569); }
.gt-ph-card h3 { color: var(--c-heading, #0F172A); }
.gt-ph-card p { color: var(--c-body, #475569); }

/* v1.0.8: services — kartu putih, kotak ikon biru 8%, teks (live parity) */
.gt-svc-card { background-color: #FFFFFF; border-color: rgba(15,117,188,0.1); }
.gt-svc-icon { background-color: rgba(15,117,188,0.08); }
.gt-svc-icon svg { color: #0F75BC; }
.gt-services .gt-svc-eyebrow { color: #0F75BC; }
.gt-services .gt-svc-heading { color: var(--c-heading, #0F172A); }
.gt-services .gt-svc-sub { color: var(--c-body, #475569); }
.gt-svc-card h3 { color: var(--c-heading, #0F172A); }
.gt-svc-card .gt-svc-desc { color: var(--c-body, #475569); }
.gt-svc-card .gt-svc-cta { color: #0F75BC; }
.gt-svc-cta-btn { background-color: #0F75BC; color: #FFFFFF; }

/* v1.0.10: testimonials = live parity */
.gt-testi-card { background-color: #FFFFFF !important; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
.gt-testi-card .gt-testi-star { color: #FBBF24; }
.gt-testi-card .gt-testi-name { color: var(--c-heading, #111827); }
.gt-testi-card .gt-testi-role { color: var(--c-body, #6B7280); }
.gt-testi-card .gt-testi-quote { color: var(--c-body, #374151); }
.gt-testi-nav { background-color: #FFFFFF; color: var(--c-heading, #111827); }

/* v1.0.11: social cards = live parity */
.gt-social-card { background-color: #FFFFFF !important; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
.gt-social-card .gt-social-name { color: var(--c-heading, #111827); }
.gt-social-card .gt-social-handle { color: #0F75BC; }
.gt-social-card .gt-social-tagline { color: var(--c-body, #6B7280); }
.gt-social-heading { color: var(--c-heading, #0F172A) !important; }
.gt-social-desc { color: var(--c-body, #475569); }

/* v1.0.12: blog = live parity */
.gt-blog-card { background-color: #FFFFFF !important; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }
.gt-blog-card h3 { color: var(--c-heading, #0F172A); }
.gt-blog-card .gt-blog-card:hover h3 { color: #0F75BC; }
.gt-blog-card h3:hover { color: #0F75BC; }
.gt-blog-card .gt-blog-excerpt { color: var(--c-body, #475569); }
.gt-blog-card .gt-blog-meta { color: var(--c-body, #6B7280); }
.gt-blog-heading { color: var(--c-heading, #0F172A) !important; }

/* v1.0.13: entrance animations = live (garuda.js/garuda.css parity) */
.gtw-anim { opacity: 0; transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); will-change: opacity, transform; }
.gtw-anim-up { transform: translateY(24px); }
.gtw-anim-left { transform: translateX(-32px); }
.gtw-anim-right { transform: translateX(32px); }
.gtw-anim-visible { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .gtw-anim { opacity: 1; transform: none; transition: none; } }

/* v1.0.16: hero anim eksplisit di markup (paritas live) */
.anim { opacity: 0; transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1); will-change: opacity, transform; }
.anim-up { transform: translateY(24px); }
.anim-left { transform: translateX(-32px); }
.anim-right { transform: translateX(32px); }
.anim-visible { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .anim { opacity: 1; transform: none; transition: none; } }

/* v1.0.17: halaman Tentang Kami (paritas live) */
.gt-ab-hero { background-color: #0B1220; }
.gt-abh-overlay { background: linear-gradient(to bottom, rgba(0,0,0,0.75), rgba(0,0,0,0.65), rgba(0,0,0,0.8)); }
.gt-abh-tint { background: rgba(15,117,188,0.1); }
.gt-ab-story { background-color: #FFFFFF; padding: 80px 0; }
.gt-ab-values { background-color: #F9F9F9; padding: 80px 0; }
.gt-ab-values-dots { background-image: radial-gradient(circle, #0F75BC 1px, transparent 1px); background-size: 32px 32px; opacity: 0.2; z-index: 0; }
.gt-ab-values .max-w-7xl { position: relative; z-index: 1; }
.gt-ab-team { background-color: #FFFFFF; padding: 80px 0; }
.gt-ab-step { background-color: #F9F9F9; }
.gt-ab-step-title { color: var(--c-heading, #0F172A); }
.gt-ab-strong { color: var(--c-heading, #0F172A); }
.gt-ab-body { color: var(--c-body, #475569); }
.gt-ab-quote-mark { color: rgba(15,117,188,0.1); font-size: 120px; line-height: 1; font-family: serif; }
.gt-ab-since { background-color: #F9F9F9; }
.gt-ab-since-text { color: var(--c-heading2, #0F172A); }
.gt-ab-heading { color: var(--c-heading, #0F172A) !important; }
.gt-ab-value-card { background-color: #FFFFFF; }
.gt-ab-value-title { color: var(--c-heading, #0F172A); }
.gt-ab-value-desc { color: var(--c-body, #475569); }
.gt-ab-member { background-color: #FFFFFF; }
.gt-ab-member-photo { background: linear-gradient(to bottom right, #0F75BC, #0A2D5E); }
.gt-ab-member-name { color: var(--c-heading, #0F172A); }
.gt-ab-member-role { color: #0F75BC; }
.gt-ab-member-point { color: var(--c-body, #475569); }
.gt-ab-team-cta { background-color: #0F75BC; box-shadow: 0 10px 15px -3px rgba(15,117,188,0.3); }
.gt-ab-team-cta:hover { background-color: #0A5D96; }

/* About hero accent (live: #4DB8FF) */
.gt-abh-accent { color: #4DB8FF; }

/* ===== Layanan page widgets ===== */
.gt-lay-circuit { opacity: 0.12; }
.gt-lay-hero-shade { background: linear-gradient(to bottom, rgba(0,0,0,0.4), transparent 40%, rgba(0,0,0,0.45)); }
.gt-lay-accent { color: #4db8ff; }
.gt-lay-hero-btn:hover { background: rgba(255,255,255,0.15); transform: translateY(-2px); }
.gt-lay-cta-dots { background-image: radial-gradient(circle, #ffffff 1px, transparent 1px); background-size: 36px 36px; }
.gt-lay-cta-line { background: linear-gradient(to right, transparent, rgba(15,117,188,0.6), transparent); }
.gt-lay-btn1:hover { transform: translateY(-2px); }
.gt-lay-btn2:hover { border-color: rgba(255,255,255,0.6); transform: translateY(-2px); }
.gt-lay-vtablist { scrollbar-width: none; }
.gt-lay-vtablist::-webkit-scrollbar { display: none; }
.vtab .vtab-pilar { color: #0f75bc; opacity: .85; }
.vtab.vtab-active .vtab-pilar { color: rgba(255,255,255,.75); opacity: 1; }
.gt-lay-tab-ic svg { stroke: #0f75bc; }
.vtab.vtab-active .gt-lay-tab-ic svg { stroke: currentColor; }
.vsvc-skel { background: linear-gradient(100deg, #e2e8f0 40%, #f1f5f9 50%, #e2e8f0 60%); background-size: 200% 100%; }
.vsvc-skel.vsvc-loading { animation: gt-vsvc-shimmer 1.4s linear infinite; }
@keyframes gt-vsvc-shimmer { to { background-position: -200% 0; } }
.vsvc-img.vsvc-loaded { opacity: 1 !important; }

/* Galeri */
.gt-gal-badge { border-color: #bfdbfe; background: #eff6ff; }

/* Kontak */
.gt-kontak-hero-ov { background: linear-gradient(to right, rgba(10,45,94,0.9), rgba(10,45,94,0.7) 50%, rgba(15,117,188,0.5)); }
.gt-input { width: 100%; padding: 12px 16px; border-radius: 12px; border: 1px solid #e5e7eb; background: #fff; font-size: 14px; color: #111827; transition: all .2s; }
.gt-input::placeholder { color: #9ca3af; }
.gt-input:focus { outline: none; box-shadow: 0 0 0 2px rgba(59,130,246,0.5); border-color: transparent; }
.gt-kontak-card:hover { background: #eff6ff; }

@media (min-width: 1024px){ .gt-ab-story, .gt-ab-values, .gt-ab-team { padding: 112px 0; } }

/* Full-bleed widget sections (kolom elementor tanpa gutter) */
.elementor .elementor-section-full_width .elementor-element-populated.elementor-widget-wrap { padding-left: 0 !important; padding-right: 0 !important; }
.elementor-widget:not(:last-child) { margin-block-end: 0; }

/* ===== Hero right column interaktif: orbit tiles + magnetic hover + logo tilt ===== */
.gt-orbit-wrap{pointer-events:none}
.gt-orbit-spin{position:absolute;left:50%;top:50%;width:0;height:0}
.gt-orbit-counter{position:relative;pointer-events:auto;animation:none}.gt-orbit-counter svg{transform:rotate(calc(-1 * var(--gt-oa, 0deg)))}
.gt-orbit-counter>div{position:relative;left:-32px;top:-260px}
@keyframes gtOrbit{from{transform:rotate(var(--gt-oa,0deg))}to{transform:rotate(calc(var(--gt-oa,0deg) + 360deg))}}
@keyframes gtOrbitCounter{from{transform:rotate(calc(-1*var(--gt-oa,0deg)))}to{transform:rotate(calc(-1*var(--gt-oa,0deg) - 360deg))}}
.gt-parallax{will-change:transform}
.gt-parallax.gt-magnet{box-shadow:0 10px 30px rgba(15,117,188,.45)!important;background:#fff;z-index:30}
.gt-hero-logo-wrap{transition:transform .25s ease-out;transform-style:preserve-3d}
@keyframes gtLogoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.gt-hero-logo-float{animation:gtLogoFloat 5s ease-in-out infinite}
.gt-orbit-glow{position:absolute;border-radius:9999px;pointer-events:none;box-shadow:0 0 60px 14px rgba(255,255,255,.28);animation:gtGlowPulse 3.2s ease-in-out infinite}
@keyframes gtGlowPulse{0%,100%{opacity:.5}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.gt-orbit-spin,.gt-orbit-counter,.gt-hero-logo-float{animation:none}}

/* ===== Brand marquee (paritas tema :8080) ===== */
.brand-marquee-wrap { position: relative; }
.brand-marquee { animation: gtwMarquee 30s linear infinite; }
.brand-marquee:hover { animation-play-state: paused; }
@keyframes gtwMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .brand-marquee { animation: none; } }

/* GTW: editor/preview — reveal states off so content always visible in Elementor editor */
body.elementor-editor-active .anim,
body.elementor-editor-preview .anim,
body.elementor-editor-active .gtw-anim,
body.elementor-editor-preview .gtw-anim,
.elementor-editor-active .anim,
.elementor-editor-preview .anim,
.elementor-editor-active .gtw-anim,
.elementor-editor-preview .gtw-anim {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
