/* Custom styles: animations, parallax, nav, form fields */
html { scroll-padding-top: 5rem; }

/* Header states */
#site-header { background: linear-gradient(to bottom, rgba(7,21,37,.75), transparent); }
#site-header.is-scrolled { background: rgba(7,21,37,.96); box-shadow: 0 6px 24px rgba(0,0,0,.35); backdrop-filter: blur(8px); }
.nav-link { position: relative; padding-block: .25rem; transition: color .25s; }
.nav-link::after { content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:#FFB800; transition: width .3s; }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.nav-link.active { color:#FFB800; }

/* Burger + mobile menu */
.burger { position:relative; display:block; width:24px; height:18px; }
.burger span { position:absolute; left:0; height:2px; width:100%; background:#fff; border-radius:2px; transition: transform .3s, opacity .2s, top .3s; }
.burger span:nth-child(1){ top:0 } .burger span:nth-child(2){ top:8px } .burger span:nth-child(3){ top:16px }
.menu-open .burger span:nth-child(1){ top:8px; transform:rotate(45deg); background:#FFB800 }
.menu-open .burger span:nth-child(2){ opacity:0 }
.menu-open .burger span:nth-child(3){ top:8px; transform:rotate(-45deg); background:#FFB800 }
.mobile-menu { max-height:0; overflow:hidden; background:rgba(7,21,37,.98); transition: max-height .45s ease; }
.menu-open .mobile-menu { max-height:90vh; }
.mobile-link { opacity:0; transform:translateY(10px); transition: opacity .4s, transform .4s; transition-delay: calc(var(--i) * 60ms + 120ms); }
.menu-open .mobile-link { opacity:1; transform:none; }

/* Reveal on scroll */
.reveal { opacity:0; transform:translateY(28px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0ms); }
.reveal.in-view { opacity:1; transform:none; }
.img-reveal { clip-path: inset(0 100% 0 0); transform:none; transition: clip-path 1.1s cubic-bezier(.2,.7,.2,1), opacity .6s; }
.img-reveal.in-view { clip-path: inset(0 0 0 0); }

/* Accent line */
.accent-line { height:3px; width:0; background: linear-gradient(90deg,#FFB800,#FF7A00); border-radius:2px; transition: width 1s ease .3s; }
.accent-line.in-view { width:80px; }

/* Cards & images */
.service-card { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease, opacity .8s, transform .8s; }
.service-card.in-view:hover { transform: translateY(-6px); border-color:#FFB800; box-shadow: 0 18px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(255,184,0,.35); }
.why-card { transition: border-color .3s, transform .3s; }
.why-card:hover { border-color: rgba(255,184,0,.6); }
.zoom-img { transition: transform .7s ease; }
.service-card:hover .zoom-img, figure:hover .zoom-img, .img-reveal:hover .zoom-img { transform: scale(1.06); }

/* Buttons */
.btn-shine { position:relative; overflow:hidden; }
.btn-shine::after { content:""; position:absolute; top:0; left:-120%; width:60%; height:100%; background:linear-gradient(110deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-20deg); transition:left .6s; }
.btn-shine:hover::after { left:140%; }
.float-btn { transition: transform .25s, filter .25s; position:relative; }
.float-btn:hover { transform: translateY(-3px) scale(1.06); }
.float-btn::before { content:""; position:absolute; inset:0; border-radius:9999px; box-shadow:0 0 0 0 currentColor; opacity:.35; animation: pulse-ring 2.8s ease-out infinite; }
@keyframes pulse-ring { 0%{ box-shadow:0 0 0 0 rgba(255,255,255,.35) } 70%,100%{ box-shadow:0 0 0 16px rgba(255,255,255,0) } }

/* Hero details */
.hero-img { will-change: transform; transform-origin:center; animation: slow-zoom 30s ease-in-out infinite alternate; }
@keyframes slow-zoom { from{ scale:1 } to{ scale:1.06 } }
.geo { position:absolute; z-index:1; border:2px solid rgba(255,184,0,.25); pointer-events:none; }
.geo-1 { width:140px; height:140px; right:8%; top:22%; transform:rotate(15deg); animation: float-y 9s ease-in-out infinite; }
.geo-2 { width:70px; height:70px; right:20%; bottom:18%; border-color:rgba(255,122,0,.3); animation: float-y 11s ease-in-out infinite reverse; }
@keyframes float-y { 0%,100%{ translate:0 0 } 50%{ translate:0 -18px } }
.scroll-cue { animation: bounce-y 2s ease-in-out infinite; }
@keyframes bounce-y { 0%,100%{ transform:translate(-50%,0) } 50%{ transform:translate(-50%,8px) } }

/* Form */
.field { width:100%; border-radius:.25rem; border:1px solid rgba(255,255,255,.15); background:#101E30; padding:.75rem 1rem; color:#fff; transition:border-color .2s, box-shadow .2s; }
.field:focus { outline:none; border-color:#FFB800; box-shadow:0 0 0 3px rgba(255,184,0,.2); }
.field[aria-invalid="true"] { border-color:#f87171; }
.field-error { min-height:1.1rem; margin-top:.25rem; font-size:.8rem; color:#f87171; }

/* Reduced motion: show everything, no movement */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition-duration:.01ms !important; transition-delay:0ms !important; }
  .reveal, .img-reveal { opacity:1; transform:none; clip-path:none; }
  .accent-line { width:80px; }
  .hero-img { transform:none !important; }
}
