/* Motion only: scoped to the public layout, preserving brand and geometry. */
.kgc-public { --kgc-ease:cubic-bezier(.22,1,.36,1); --kgc-distance:16px; }
.kgc-public .kgc-reveal {
  transition:opacity 500ms var(--kgc-ease) var(--kgc-delay,0ms), transform 500ms var(--kgc-ease) var(--kgc-delay,0ms);
}
.kgc-public .kgc-reveal-pending { opacity:0; transform:translateY(var(--kgc-distance)); }
.kgc-public .kgc-reveal-image.kgc-reveal-pending { transform:scale(.99); }
.kgc-public #header { animation:kgc-enter 500ms var(--kgc-ease); transition:background-color 250ms ease, box-shadow 250ms ease; }
@keyframes kgc-enter { from { opacity:0; } to { opacity:1; } }
.kgc-public .btn, .kgc-public .kgc-motion-card, .kgc-public .gbtn {
  transition:transform 250ms var(--kgc-ease), box-shadow 250ms ease, background-color 250ms ease, border-color 250ms ease, color 250ms ease;
}
.kgc-public .form-control, .kgc-public .form-select {
  transition:border-color 250ms ease, box-shadow 250ms ease, background-color 250ms ease;
}
.kgc-public :is(a,button,input,select,textarea):focus-visible { outline:2px solid var(--brand-accent,#ef4056); outline-offset:3px; }
.kgc-public .btn:active { transform:translateY(1px); }
.kgc-public .bi-arrow-right { display:inline-block; transition:transform 250ms var(--kgc-ease); }
.kgc-public .gallery-picture img { transition:transform 500ms var(--kgc-ease); }
.kgc-public .kgc-gallery-lightbox .gfadeIn { animation-duration:250ms; }
.kgc-public .kgc-gallery-lightbox .gzoomIn { animation:kgc-lightbox-enter 350ms var(--kgc-ease); }
@keyframes kgc-lightbox-enter { from { opacity:0; transform:scale(.97); } to { opacity:1; transform:scale(1); } }
@media (hover:hover) and (pointer:fine) {
  .kgc-public .kgc-motion-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(6,40,47,.12); }
  .kgc-public .btn:hover { transform:translateY(-2px); }
  .kgc-public a:hover > .bi-arrow-right { transform:translateX(3px); }
  .kgc-public .kgc-gallery-lightbox .gbtn:hover { transform:translateY(-2px); background-color:rgba(0,0,0,.9); }
}
@media (min-width:1280px) {
  .kgc-public #header.header .navbar > ul > li > a::after {
    content:''; position:absolute; left:0; right:0; bottom:-6px; height:2px;
    background:var(--sec-accent); border-radius:999px; transform:scaleX(0); transform-origin:left;
    transition:transform 250ms var(--kgc-ease);
  }
  .kgc-public #header.header .navbar > ul > li > a:is(:hover,:focus-visible,.active)::after,
  .kgc-public #header.header .navbar > ul > li:hover > a::after { transform:scaleX(1); }
  .kgc-public #header .navbar .dropdown > ul { transform:translateY(6px); transition:opacity 250ms ease, transform 250ms var(--kgc-ease), visibility 250ms; }
  .kgc-public #header .navbar .dropdown:is(:hover,:focus-within) > ul { opacity:1; visibility:visible; transform:translateY(0); }
}
@media (max-width:767px) { .kgc-public { --kgc-distance:8px; } .kgc-public .kgc-reveal { transition-delay:0ms; transition-duration:350ms; } }
/* Visible without JS, immediate with reduced motion; never leave AOS content hidden. */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  .kgc-public *, .kgc-public *::before, .kgc-public *::after {
    animation-duration:.01ms !important; animation-delay:0ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; transition-delay:0ms !important; scroll-behavior:auto !important;
  }
  .kgc-public .kgc-reveal, .kgc-public [data-aos] { opacity:1 !important; transform:none !important; }
  .kgc-public .kgc-motion-card:hover, .kgc-public .btn:hover, .kgc-public .gallery-picture:hover img,
  .kgc-public .gbtn:hover, .kgc-public a:hover > .bi-arrow-right { transform:none; }
}
@media print { .kgc-public .kgc-reveal, .kgc-public [data-aos] { opacity:1 !important; transform:none !important; } }
