/* Animations- och footer-lager ovanpå takteam-skin.css.
   Motion: en signaturrörelse (hero) + stegvis reveal av kort + mikro-hover. Ease-out, ingen bounce. */

:root {
  --ease-quart: cubic-bezier(.25, 1, .5, 1);
  --ease-expo: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- HERO med takbild ---------- */
.tt-hero2 { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 1rem; min-height: 340px; }
.tt-hero2__text { max-width: 540px; }
.tt-hero2__roofwrap { position: relative; align-self: stretch; }
.tt-hero2__roof { position: absolute; right: -2.6rem; bottom: -3.2rem; width: 128%; max-width: none; filter: drop-shadow(0 18px 30px rgba(0,0,0,.45)); animation: tt-wipe 1s var(--ease-expo) both .12s; }

@keyframes tt-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes tt-wipe { from { opacity: 0; clip-path: inset(0 0 0 78%); } to { opacity: 1; clip-path: inset(0 0 0 0); } }

.tt-hero2__since { animation: tt-rise .65s var(--ease-expo) both .02s; }
.tt-hero2__wordmark { animation: tt-rise .7s var(--ease-expo) both .08s; }
.tt-hero2__tag { animation: tt-rise .7s var(--ease-expo) both .16s; }
.tt-hero2 .tt-btn { animation: tt-rise .7s var(--ease-expo) both .24s; }
.tt-hero2__rule { width: 64px; height: 4px; background: var(--tt-yellow); border-radius: 4px; margin: .9rem 0; animation: tt-rise .7s var(--ease-expo) both .12s; }

/* ---------- Knappar: flair-fill på hover ---------- */
.tt-btn { position: relative; overflow: hidden; transition: transform .2s var(--ease-quart), box-shadow .2s var(--ease-quart); z-index: 0; }
.tt-btn::before { content: ""; position: absolute; inset: 0; background: #fff; transform: translateY(101%); transition: transform .38s var(--ease-quart); z-index: -1; }
.tt-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(245,215,34,.42); }
.tt-btn:hover::before { transform: translateY(0); }
.tt-btn:active { transform: translateY(0) scale(.98); }

/* ---------- Reveal (stegvis entré på render, inte IO-gated) ---------- */
.reveal { animation: tt-rise .55s var(--ease-expo) both; animation-delay: calc(var(--i, 0) * 55ms); }

/* kort-hover lite rikare */
.tt-svc-card { position: relative; }
.tt-svc-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 0; background: linear-gradient(180deg, transparent, rgba(45,106,191,.06)); transition: height .25s var(--ease-quart); border-radius: 0 0 12px 12px; pointer-events: none; }
.tt-svc-card:hover::after { height: 38%; }
.tt-svc-card__ico { width: 38px; height: 38px; border-radius: 10px; background: var(--tt-pale); color: var(--tt-navy); display: inline-flex; align-items: center; justify-content: center; margin-bottom: .6rem; }
.tt-svc-card__ico svg { width: 20px; height: 20px; }

/* fix: ta bort side-stripe på .tt-note (slop-ban) */
.tt-note { border: 1px solid var(--tt-line); border-left: 1px solid var(--tt-line); }

/* ---------- TAKTEAM-FOOTER ---------- */
.tt-footer { background: var(--tt-navy); color: #cfd8e6; margin: 2.2rem 0 0; border-radius: 18px; padding: 2.4rem 2.2rem 1.4rem; }
.tt-footer__grid { display: grid; grid-template-columns: 1.1fr 1fr 1.15fr; gap: 2rem; }
.tt-footer h4 { color: #fff; font-size: 1.05rem; font-weight: 800; margin: 0 0 .5rem; }
.tt-footer p { font-size: .85rem; line-height: 1.55; color: #9fb1c9; max-width: 34ch; margin: 0; }
.tt-footer__contact { list-style: none; padding: 0; margin: .85rem 0 0; display: grid; gap: .35rem; }
.tt-footer__contact a { color: #fff; text-decoration: none; font-weight: 600; font-size: .9rem; display: inline-flex; align-items: center; gap: .5rem; }
.tt-footer__contact a:hover { color: var(--tt-yellow); }
.tt-footer__social { display: flex; gap: .55rem; margin-top: .9rem; }
.tt-footer__social a { width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.1); display: inline-flex; align-items: center; justify-content: center; color: #fff; transition: background .25s, color .25s; }
.tt-footer__social a:hover { background: var(--tt-yellow); color: var(--tt-navy); }
.tt-footer__social svg { width: 16px; height: 16px; }
.tt-footer__badges { display: flex; gap: .7rem; align-items: center; margin-top: 1rem; }
.tt-footer__badges img { height: 44px; width: auto; background: #fff; border-radius: 8px; padding: 4px 8px; }
.tt-footer__nav { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.tt-fbtn { display: inline-flex; align-items: center; gap: .5rem; border: 1.5px solid rgba(255,255,255,.26); color: #fff; border-radius: 999px; padding: .48rem 1rem; font-weight: 600; font-size: .84rem; text-decoration: none; position: relative; overflow: hidden; transition: color .3s, border-color .3s; cursor: pointer; }
.tt-fbtn > span { position: relative; z-index: 1; }
.tt-fbtn::before { content: ""; position: absolute; inset: 0; background: var(--tt-yellow); transform: translateX(-101%); transition: transform .36s var(--ease-quart); z-index: 0; }
.tt-fbtn:hover { color: var(--tt-navy); border-color: var(--tt-yellow); }
.tt-fbtn:hover::before { transform: translateX(0); }
.tt-footer__form { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 1.1rem; }
.tt-footer__form input { width: 100%; box-sizing: border-box; background: #fff; border: none; border-radius: 8px; padding: .58rem .8rem; margin-bottom: .5rem; font-family: inherit; font-size: .88rem; color: var(--tt-text); }
.tt-footer__form input::placeholder { color: #8893a3; }
.tt-footer__form .tt-btn { width: 100%; margin-top: .25rem; }
.tt-footer__legal { border-top: 1px solid rgba(255,255,255,.12); margin-top: 1.7rem; padding-top: 1rem; font-size: .74rem; color: #7e92ad; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }

/* ---------- Responsivt ---------- */
@media (max-width: 760px) {
  .tt-hero2 { grid-template-columns: 1fr; min-height: 0; }
  .tt-hero2__roofwrap { display: none; }
  .tt-footer__grid { grid-template-columns: 1fr; gap: 1.4rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .tt-hero2__since, .tt-hero2__wordmark, .tt-hero2__tag, .tt-hero2 .tt-btn, .tt-hero2__rule, .tt-hero2__roof { animation: none; clip-path: none; opacity: 1; transform: none; }
  .reveal { animation: none; opacity: 1; transform: none; }
  .tt-btn, .tt-btn::before, .tt-fbtn::before, .tt-svc-card::after { transition: none; }
}
