/* GN Homepage Modern Patch (v1.0) */
/* Apply scope: body.home (homepage) */

:root{
  --gn-home-bg:#f8fafc;
  --gn-home-surface:rgba(255,255,255,0.78);
  --gn-home-text:#0f172a;
  --gn-home-muted:rgba(15,23,42,0.62);
  --gn-home-border:rgba(15,23,42,0.12);
  --gn-home-accent:#0ea5e9;
  --gn-home-accent2:#22c55e;
  --gn-home-shadow-sm:0 6px 18px rgba(0,0,0,0.10);
  --gn-home-shadow-md:0 14px 40px rgba(0,0,0,0.14);
  --gn-home-radius-card:16px;
  --gn-home-pill:999px;
  --gn-home-focus:0 0 0 4px rgba(14,165,233,0.35);
}

/* ----------------------------- */
/* Base */
body.home{
  background: var(--gn-home-bg);
  color: var(--gn-home-text);
}
body.home main.container{
  max-width: 1200px;
}

/* ----------------------------- */
/* HEADER – layout + logo + search */
body.home header.site-header{
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
body.home header.site-header .header-container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:nowrap; /* KEY: bawas “mabababa” na search wrap */
  padding: 10px 18px;
}

/* Logo: bigger + consistent */
body.home header.site-header .site-logo img.custom-logo,
body.home header.site-header img.custom-logo{
  height: 44px;
  max-height: 44px;
  width:auto;
  object-fit:contain;
  transform-origin:center;
  transition: transform .18s ease, filter .18s ease;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.18));
}
body.home header.site-header .site-logo a.custom-logo-link:hover img.custom-logo{
  transform: translateY(-1px) scale(1.01); /* Hover effect #10 (zoom micro-scale) */
  filter: drop-shadow(0 14px 26px rgba(0,0,0,.22));
}

/* Search: min height 44 + focus ring */
body.home header.site-header .header-search{
  width:auto;
  max-width: 340px;
  flex: 0 0 auto;
}
body.home header.site-header .header-search .search-form{
  min-height:44px;
  border-radius: var(--gn-home-pill);
  border:1px solid rgba(148,163,184,.55);
  background: rgba(15,23,42,.50);
  overflow:hidden;
  box-shadow: 0 0 0 1px rgba(15,23,42,.25), 0 10px 24px rgba(0,0,0,.22);
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
body.home header.site-header .header-search .search-form:focus-within{
  border-color: rgba(14,165,233,.75);
  box-shadow: var(--gn-home-focus), 0 14px 30px rgba(0,0,0,.25); /* Hover/Focus effect #3 (glow ring) */
  transform: translateY(-1px); /* Hover effect #2 (lift) */
}
body.home header.site-header .header-search .search-field{
  min-height:44px;
  font-size: 14.5px;
  letter-spacing: .2px;
}
body.home header.site-header .header-search .search-submit{
  min-height:44px;
  position:relative;
  overflow:hidden;
  border-radius: var(--gn-home-pill);
  will-change: transform, filter;
}

/* Sheen sweep (Hover effect #6) */
body.home header.site-header .header-search .search-submit::after{
  content:"";
  position:absolute;
  inset:-40% -60%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  transform: translateX(-60%) rotate(10deg);
  opacity:0;
  transition: opacity .18s ease;
}
body.home header.site-header .header-search .search-submit:hover::after{
  opacity:1;
  animation: gnSheen 900ms ease-out both;
}

/* Responsive header */
@media (max-width: 860px){
  body.home header.site-header .header-container{
    flex-wrap:wrap;
  }
  body.home header.site-header .header-search{
    width:100%;
    max-width:none;
    order: 3;
  }
}

/* ----------------------------- */
/* NAV – fix “double active” + modern hover */
body.home header.site-header .nav-menu{
  display:flex;
  align-items:center;
  gap: 6px;
  flex-wrap:wrap;
}

/* Baseline links */
body.home header.site-header .nav-menu a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: var(--gn-home-pill);
  padding: 10px 14px;
  text-decoration:none;
  letter-spacing:.35px;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, filter .18s ease;
  will-change: transform;
}

/* Underline slide (Hover effect #1) */
body.home header.site-header .nav-menu a::after{
  content:"";
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: 7px;
  height: 2px;
  background: linear-gradient(90deg, var(--gn-home-accent), var(--gn-home-accent2));
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin:left;
  opacity:.95;
  transition: transform .22s ease;
}

/* Hover: gradient pill + lift + glow */
body.home header.site-header .nav-menu a:hover,
body.home header.site-header .nav-menu a:focus{
  outline:none;
  color: rgb(249,250,251);
  background: radial-gradient(circle at left top, rgb(59,130,246) 0px, rgb(29,78,216) 50%, rgb(2,6,23) 100%);
  box-shadow: rgba(15,23,42,.55) 0 12px 26px;
  transform: translateY(-1px); /* Hover effect #2 (lift) */
  filter: saturate(1.06) contrast(1.05); /* Hover effect #8 (saturate/contrast) */
}
body.home header.site-header .nav-menu a:hover::after{
  transform: scaleX(1);
}

/* Active: SINGLE source of highlight (no heavy background) */
body.home header.site-header .nav-menu li.current-menu-item > a,
body.home header.site-header .nav-menu li.current_page_item > a,
body.home header.site-header .nav-menu li.current-menu-ancestor > a,
body.home header.site-header .nav-menu li.current_page_ancestor > a{
  color: var(--gn-home-accent);
  background: rgba(14,165,233,.10);
  box-shadow: none;
}
body.home header.site-header .nav-menu li.current-menu-item > a::after,
body.home header.site-header .nav-menu li.current_page_item > a::after{
  transform: scaleX(1);
}

/* Hard-fix: kung may .active-link na may sariling gradient/shadow, i-neutralize kapag current ang parent */
body.home header.site-header .nav-menu li.current-menu-item > a.active-link,
body.home header.site-header .nav-menu li.current_page_item > a.active-link{
  background-image: none !important;
  box-shadow: none !important;
}

/* Ripple (Hover effect #7) – subtle on active hover */
body.home header.site-header .nav-menu li.current-menu-item > a:hover{
  background-image:
    radial-gradient(circle at 30% 20%, rgba(34,197,94,.18), transparent 40%),
    radial-gradient(circle at left top, rgb(59,130,246) 0px, rgb(29,78,216) 50%, rgb(2,6,23) 100%);
}

/* ----------------------------- */
/* BODY – cards + CTA + consistent surface */
body.home main.container section{
  scroll-margin-top: 90px;
}

/* Hero: surface card + gradient motion (Animation #10) */
body.home main.container section.hero{
  position:relative;
  border-radius: calc(var(--gn-home-radius-card) + 10px);
  padding: clamp(28px, 3vw, 46px);
  background: radial-gradient(circle at 20% 10%, rgba(14,165,233,.16), transparent 42%),
              radial-gradient(circle at 80% 20%, rgba(34,197,94,.14), transparent 46%),
              rgba(255,255,255,.72);
  border: 1px solid var(--gn-home-border);
  box-shadow: var(--gn-home-shadow-md);
  overflow:hidden;
}
@media (prefers-reduced-motion: no-preference){
  body.home main.container section.hero{
    animation: gnGradientShift 10s ease-in-out infinite;
  }
}

/* CTA button: glow ring + pulse (Hover effect #3 + Animation #8) */
body.home a.cta-button{
  border-radius: var(--gn-home-pill);
  border: 1px solid rgba(14,165,233,.28);
  background: linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.55));
  box-shadow: var(--gn-home-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  position:relative;
  overflow:hidden;
}
body.home a.cta-button:hover{
  transform: translateY(-2px);
  box-shadow: 0 0 0 4px rgba(14,165,233,.20), 0 18px 46px rgba(0,0,0,.18);
  filter: saturate(1.08) contrast(1.05);
}
@media (prefers-reduced-motion: no-preference){
  body.home a.cta-button{
    animation: gnPulseGlow 2.8s ease-in-out infinite;
  }
}

/* Cards: consistent look + 4 hover effects (lift, gradient border draw, inset wash, tilt) */
body.home .card,
body.home .col.card{
  background: var(--gn-home-surface);
  border: 1px solid var(--gn-home-border);
  border-radius: var(--gn-home-radius-card);
  box-shadow: var(--gn-home-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  position:relative;
  overflow:hidden;
  transform-style: preserve-3d;
}

/* Border gradient draw (Hover effect #5) */
body.home .card::before,
body.home .col.card::before{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(14,165,233,.55), rgba(34,197,94,.45));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity:.0;
  transition: opacity .18s ease;
}

/* Inset shadow wash (Hover effect #9) */
body.home .card::after,
body.home .col.card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 999px rgba(15,23,42,.02);
  opacity:0;
  transition: opacity .18s ease;
}

body.home .card:hover,
body.home .col.card:hover{
  transform: translateY(-3px) rotateX(.6deg) rotateY(-.6deg); /* Hover effect #4 (tilt) + #2 (lift) */
  box-shadow: 0 26px 70px rgba(0,0,0,.14);
  filter: saturate(1.06) contrast(1.05); /* Hover effect #8 */
}
body.home .card:hover::before,
body.home .col.card:hover::before{ opacity:1; }
body.home .card:hover::after,
body.home .col.card:hover::after{ opacity:1; }

/* ----------------------------- */
/* FOOTER – underline slide + spacing */
body.home footer.site-footer a{
  position:relative;
  text-decoration:none;
}
body.home footer.site-footer a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-2px;
  height:2px;
  background: linear-gradient(90deg, rgba(14,165,233,.9), rgba(34,197,94,.85));
  transform: scaleX(0);
  transform-origin:left;
  transition: transform .22s ease;
  opacity:.9;
}
body.home footer.site-footer a:hover::after{
  transform: scaleX(1);
}

/* ----------------------------- */
/* 10 ANIMATIONS (keyframes) */
@keyframes gnFadeIn{ from{opacity:0} to{opacity:1} }
@keyframes gnFadeUp{ from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:translateY(0)} }
@keyframes gnFadeDown{ from{opacity:0; transform:translateY(-10px)} to{opacity:1; transform:translateY(0)} }
@keyframes gnSlideLeft{ from{opacity:0; transform:translateX(14px)} to{opacity:1; transform:translateX(0)} }
@keyframes gnSlideRight{ from{opacity:0; transform:translateX(-14px)} to{opacity:1; transform:translateX(0)} }
@keyframes gnPop{ 0%{opacity:0; transform:scale(.98)} 60%{opacity:1; transform:scale(1.01)} 100%{transform:scale(1)} }
@keyframes gnFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes gnSheen{ from{transform:translateX(-60%) rotate(10deg)} to{transform:translateX(60%) rotate(10deg)} }
@keyframes gnPulseGlow{
  0%,100%{ box-shadow: var(--gn-home-shadow-sm); }
  50%{ box-shadow: 0 0 0 4px rgba(14,165,233,.18), 0 18px 46px rgba(0,0,0,.16); }
}
@keyframes gnRotateIn{ from{opacity:0; transform:rotate(-1.5deg) scale(.99)} to{opacity:1; transform:rotate(0) scale(1)} }
@keyframes gnGradientShift{
  0%,100%{ filter:hue-rotate(0deg) }
  50%{ filter:hue-rotate(10deg) }
}

/* Use existing “visible / move-* / scale-* / rotate” classes (best-effort) */
@media (prefers-reduced-motion: no-preference){
  body.home .visible{ animation: gnFadeIn .55s ease both; }
  body.home .visible.move-up{ animation-name: gnFadeUp; }
  body.home .visible.move-down{ animation-name: gnFadeDown; }
  body.home .visible.move-left{ animation-name: gnSlideRight; }
  body.home .visible.move-right{ animation-name: gnSlideLeft; }
  body.home .visible.scale-up{ animation-name: gnPop; }
  body.home .visible.rotate{ animation-name: gnRotateIn; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  body.home *{
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* -------------------------------------------------- */
/* GN Homepage Modern Patch (v1.1) – extra animation application */
/* NOTE: This section only APPLY/USES the existing keyframes in v1.0, so you get >=10 unique animations in-action. */

@media (prefers-reduced-motion: no-preference){
  /* Header entrance choreography */
  body.home header.site-header{
    animation: gnFadeDown .55s ease both;
  }
  body.home header.site-header .site-logo{
    animation: gnSlideLeft .60s ease both;
  }
  body.home header.site-header .header-search{
    animation: gnSlideRight .65s ease both;
  }
  body.home header.site-header .nav-menu{
    animation: gnFadeIn .70s ease both;
  }

  /* Main + hero */
  body.home main.container{
    animation: gnFadeIn .70s ease both;
  }
  body.home main.container section.hero{
    animation: gnFadeUp .70s ease both;
  }
  body.home main.container section.hero :is(h1, h2){
    animation: gnPop .62s ease both;
  }

  /* Services cards – gentle stagger */
  body.home section#services :is(.card, .col.card){
    animation: gnFadeUp .62s ease both;
  }
  body.home section#services :is(.card, .col.card):nth-child(2){ animation-delay: .08s; }
  body.home section#services :is(.card, .col.card):nth-child(3){ animation-delay: .16s; }
  body.home section#services :is(.card, .col.card):nth-child(4){ animation-delay: .24s; }

  /* Testimonials – alternating slide */
  body.home section#testimonials :is(.card, .col.card):nth-child(odd){
    animation: gnSlideLeft .62s ease both;
  }
  body.home section#testimonials :is(.card, .col.card):nth-child(even){
    animation: gnSlideRight .62s ease both;
  }

  /* CTA sheen (re-uses gnSheen already defined) */
  body.home a.cta-button,
  body.home .wp-block-button__link{
    position: relative;
    overflow: hidden;
  }
  body.home a.cta-button::after,
  body.home .wp-block-button__link::after{
    content:"";
    position:absolute;
    inset:-2px;
    background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.28) 45%, rgba(255,255,255,.10) 55%, transparent 100%);
    transform: translateX(-120%) skewX(-14deg);
    pointer-events:none;
  }
  body.home a.cta-button:hover::after,
  body.home .wp-block-button__link:hover::after{
    animation: gnSheen 900ms ease-out both;
  }

  /* Subtle “alive” accent: float just the primary CTA, not everything */
  body.home section.hero a.cta-button{
    animation: gnFloat 7.5s ease-in-out infinite;
  }

  /* Footer reveal */
  body.home footer.site-footer{
    animation: gnFadeUp .70s ease both;
  }
  body.home footer.site-footer .social-links a{
    animation: gnRotateIn .60s ease both;
  }
}

/* Safety: keep your hover/active fix dominant (avoid stacking gradients/shadows) */
body.home header.site-header .nav-menu a.active-link,
body.home header.site-header .nav-menu li.current-menu-item > a,
body.home header.site-header .nav-menu li.current_page_item > a{
  background-image: none !important;
  box-shadow: none !important;
}
