/* SavonAI component kit v1 (CD-029 F3 / D-060) — ship UNCHANGED as assets/kit.css.
   Colors ride on the site's own custom properties with plain fallbacks. */

/* carousel */
.kit-carousel{position:relative}
.kit-carousel .kit-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding-bottom:4px}
.kit-carousel .kit-track::-webkit-scrollbar{display:none}
.kit-carousel .kit-track>*{flex:0 0 min(320px,85%);scroll-snap-align:start;margin:0}
.kit-carousel__btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;
  border-radius:50%;border:1px solid rgba(0,0,0,.12);background:#fff;color:inherit;
  font-size:22px;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:2}
.kit-carousel__btn--prev{left:-8px}
.kit-carousel__btn--next{right:-8px}
.kit-carousel__btn:hover{background:var(--brand,#0b5cad);color:#fff}

/* tabs */
[data-kit="tabs"] [role="tablist"]{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid rgba(0,0,0,.08)}
[data-kit="tabs"] [role="tab"]{border:0;background:none;padding:10px 16px;cursor:pointer;
  font:inherit;color:inherit;border-bottom:2px solid transparent;margin-bottom:-2px}
[data-kit="tabs"] [role="tab"][aria-selected="true"]{border-bottom-color:var(--brand,#0b5cad);font-weight:600}
[data-kit="tabs"] [role="tabpanel"]{padding:16px 0}

/* marquee (pure CSS): .kit-marquee > .kit-marquee__track with the content DUPLICATED once */
.kit-marquee{overflow:hidden}
.kit-marquee__track{display:flex;gap:48px;width:max-content;align-items:center;
  animation:kit-marquee 28s linear infinite}
.kit-marquee:hover .kit-marquee__track{animation-play-state:paused}
@keyframes kit-marquee{to{transform:translateX(-50%)}}

/* back to top */
.kit-backtotop{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;
  border:0;background:var(--brand,#0b5cad);color:#fff;font-size:20px;cursor:pointer;
  opacity:0;pointer-events:none;transition:opacity .25s;box-shadow:0 4px 14px rgba(0,0,0,.2);z-index:50}
.kit-backtotop.is-on{opacity:1;pointer-events:auto}

/* before/after — two stacked images, the top one clipped by --kit-cut */
.kit-beforeafter{position:relative;overflow:hidden;border-radius:12px}
.kit-beforeafter img{display:block;width:100%;height:auto}
.kit-beforeafter img+img{position:absolute;inset:0;height:100%;object-fit:cover;
  clip-path:inset(0 calc(100% - var(--kit-cut,50%)) 0 0)}
.kit-beforeafter input[data-kit="beforeafter"]{position:absolute;inset:auto 0 12px 0;width:90%;
  margin:0 auto;z-index:2}

/* mega-menu */
.kit-megamenu{position:relative}
.kit-megamenu__panel{position:absolute;left:0;top:100%;min-width:280px;background:#fff;
  border:1px solid rgba(0,0,0,.08);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.14);
  padding:16px;display:none;z-index:40}
.kit-megamenu.is-open>.kit-megamenu__panel{display:block}
@media (hover:hover){.kit-megamenu:hover>.kit-megamenu__panel{display:block}}

/* floating CTA (CD-048 I2) — persistent booking/action anchor; kit.js adds the dismiss button */
.kit-floating-cta{position:fixed;right:18px;bottom:18px;z-index:45;display:inline-flex;
  align-items:center;gap:10px;background:var(--brand,var(--c,#0b5cad));color:#fff;
  padding:14px 22px;border-radius:999px;font-weight:700;text-decoration:none;
  box-shadow:0 6px 20px rgba(0,0,0,.25);transition:transform .18s,box-shadow .18s,opacity .18s,visibility .18s}
.kit-floating-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.3);
  text-decoration:none;color:#fff}
.kit-floating-cta[hidden]{display:none}  /* the display rule would beat the UA [hidden] */
.kit-floating-cta--yield{opacity:0;visibility:hidden;pointer-events:none}  /* D-2275: the same link is on screen in <main> */
.kit-floating-cta__close{border:0;background:rgba(255,255,255,.22);color:#fff;width:22px;
  height:22px;border-radius:50%;font-size:15px;line-height:1;cursor:pointer;padding:0}
@media (max-width:760px){.mobile-call ~ .kit-floating-cta{bottom:84px}}  /* clears the .mobile-call bar — only when one precedes it (D-1798) */
@media print{.kit-floating-cta{display:none}}

/* newsletter (CD-048 I2) — inline signup form; the demo intercept lives in kit.js */
.kit-newsletter{display:flex;gap:10px;flex-wrap:wrap;align-items:center;max-width:560px}
.kit-newsletter input[type="email"]{flex:1 1 240px;padding:12px 14px;border-radius:10px;
  border:1px solid rgba(0,0,0,.18);font:inherit}
.kit-newsletter button[type="submit"]{padding:12px 22px;border:0;border-radius:10px;
  background:var(--brand,var(--c,#0b5cad));color:#fff;font-weight:700;font:inherit;cursor:pointer}
.kit-newsletter button[type="submit"]:disabled{opacity:.55;cursor:default}
.kit-newsletter__done{flex-basis:100%;margin:6px 0 0;font-weight:600;
  color:var(--brand,var(--c,#0b5cad))}

/* newsletter popup (CD-048 I2) — session-once panel; kit.js opens/closes it */
.kit-newsletter-popup{position:fixed;inset:auto 18px 18px auto;max-width:min(380px,calc(100vw - 36px));
  background:#fff;color:#16202b;border:1px solid rgba(0,0,0,.1);border-radius:16px;
  box-shadow:0 18px 48px rgba(0,0,0,.28);padding:22px;z-index:60}
.kit-newsletter-popup__close{position:absolute;top:10px;right:10px;border:0;background:none;
  font-size:20px;line-height:1;cursor:pointer;color:inherit;padding:6px}
@media (max-width:760px){.kit-newsletter-popup{inset:auto 12px 12px 12px;max-width:none}}

@media (prefers-reduced-motion:reduce){
  .kit-marquee__track{animation:none}
  .kit-carousel .kit-track{scroll-behavior:auto}
  .kit-floating-cta{transition:none}
}
