/* Blixtflow – bransch: fastighetsförvaltning (prefix fst-). Nattkänsla: stjärnor, en måne och hus vars
   fönster tänds, planritningar och trapphusets namntavla. ind-property.js låter natten gå när man skrollar,
   sköter felanmälan, namntavlan och språken. Bygger på ai.css. */
.page-property { --night: #1a0827; --win: #1b0726; --lamp: #FFE59A; --wall: #3a1550; }

.fst-ch { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #fff; background: var(--primar-ink); }
.fst-ch .ic { width: 15px; height: 15px; }
.fst-ch--phone { color: var(--natt); background: var(--gnista); }
.fst-ch--mail { background: #BE185D; }
.fst-ch--sms { background: #1D4ED8; }
.fst-ch--whatsapp { background: #15803D; }
.fst-ch--messenger { background: #0E7490; }

/* ==========================================================================
   1. Hjälten
   ========================================================================== */
.fst-hero { background: radial-gradient(60% 50% at 82% 12%, rgba(155, 93, 229, .3), transparent 64%), linear-gradient(180deg, var(--natt) 40%, var(--night)); }
.fst-sky { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.fst-sky b { position: absolute; left: var(--x); top: calc(var(--y) + 6%); width: 3px; height: 3px; border-radius: 50%; background: var(--gnista); opacity: .7; box-shadow: 0 0 6px rgba(242, 250, 163, .8); }
.fst-sky b:nth-child(3n) { width: 2px; height: 2px; opacity: .45; }
.motion .fst-sky b { animation: twinkle 3.2s ease-in-out infinite; animation-delay: calc(var(--i) * -.37s); }
.fst-moon { position: absolute; right: 7%; top: 13%; width: 74px; height: 74px; border-radius: 50%; box-shadow: inset -16px 8px 0 0 var(--gnista), 0 0 60px -10px rgba(242, 250, 163, .5); transform: rotate(-20deg); }
.motion .fst-moon { animation: bob 9s ease-in-out infinite; }
.fst-skyline { position: absolute; left: 0; right: 0; bottom: var(--sheet-r); z-index: -1; display: flex; align-items: flex-end; gap: 8px; height: 200px; padding: 0 2%; opacity: .55; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent 0 34%, #000 72%); mask-image: linear-gradient(90deg, transparent 0 34%, #000 72%); }
.fst-bldg { display: grid; flex: none; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); align-content: start; gap: 7px; width: var(--w); height: calc(var(--rows) * 23px + 18px); padding: 12px 10px 0; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, #3a1550, #250b36); }
.fst-bldg i { height: 14px; border-radius: 2px; background: rgba(255, 255, 255, .06); }
.fst-bldg i.is-lit { background: var(--lamp); box-shadow: 0 0 12px rgba(255, 229, 154, .55); }
.motion .fst-bldg i.is-lit { animation: fst-flick 7s ease-in-out infinite; animation-delay: calc(var(--k) * -.9s); }
.fst-hero .air-title { max-width: 15ch; }

.fst-show { position: relative; display: grid; justify-items: end; padding: 54px 0 20px; }
.fst-clockchip { position: absolute; right: 0; top: 0; z-index: 3; display: flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; border-radius: 999px; color: var(--natt); background: var(--gnista); box-shadow: 0 16px 40px -14px rgba(242, 250, 163, .55); }
.fst-clockchip .ic { width: 16px; height: 16px; }
.fst-clockchip b { font-variant-numeric: tabular-nums; }
.fst-clockchip span { font-size: .78rem; font-weight: 700; opacity: .7; }
.motion .fst-clockchip { animation: pop-in .6s .6s var(--spring) backwards; }
.fst-call { width: min(350px, 88%); margin-right: 40px; padding: 16px 16px 40px; border-radius: 24px; color: var(--ink); background: #fff; box-shadow: 0 0 0 1px rgba(255, 255, 255, .1), 0 60px 110px -40px rgba(0, 0, 0, .95), 0 30px 90px -40px rgba(155, 93, 229, .7); }
.motion .fst-call { animation: chp-rise 1.1s .2s var(--ease-out) backwards; }
.fst-call__top { display: flex; align-items: center; gap: 10px; }
.fst-call__top > span:nth-child(2) { display: grid; }
.fst-call__top small { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ok); }
.fst-call__top b { font-variant-numeric: tabular-nums; }
.fst-call__top em { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; padding: 4px 9px; border-radius: 999px; font-size: .72rem; font-style: normal; font-weight: 800; color: var(--primar-ink); background: #F1E9FC; }
.fst-call__top em .ic { width: 13px; height: 13px; }
.fst-call__ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: var(--ok); }
.fst-call__ic .ic { width: 17px; height: 17px; }
.motion .fst-call__ic { animation: air-buzz 1.4s 1.2s ease-in-out 3; }
.fst-call__lines { display: grid; gap: 8px; margin-top: 12px; }
.fst-line { max-width: 88%; padding: 8px 12px; border-radius: 15px; font-size: .84rem; line-height: 1.4; }
.fst-line--in { justify-self: start; background: var(--line-2); border-bottom-left-radius: 4px; }
.fst-line--out { justify-self: end; color: #fff; background: var(--primar-ink); border-bottom-right-radius: 4px; }
.motion .fst-line { animation: fade-up .5s var(--ease-out) backwards; animation-delay: calc(1.4s + var(--i) * .7s); }
.fst-ticket { position: relative; z-index: 2; display: grid; gap: 8px; width: min(310px, 76%); margin-top: -26px; padding: 15px; border-radius: 20px; color: var(--ink); background: #fff; box-shadow: 0 0 0 3px var(--gnista), 0 40px 80px -24px rgba(0, 0, 0, .9); }
.motion .fst-ticket { animation: fst-ticket .9s 3.6s var(--spring) backwards; }
.fst-ticket__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .78rem; }
.fst-ticket__top b { display: inline-flex; align-items: center; gap: 6px; }
.fst-ticket__top .ic { width: 15px; height: 15px; color: var(--primar-ink); }
.fst-ticket__top em { padding: 3px 9px; border-radius: 999px; font-style: normal; font-weight: 800; color: var(--natt); background: var(--gnista); }
.fst-ticket__title { font-size: 1.05rem; font-weight: 800; line-height: 1.25; }
.fst-ticket__apt { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 5px 10px; border-radius: 10px; font-size: .8rem; font-weight: 700; background: var(--ljus); box-shadow: inset 0 0 0 1px var(--line); }
.fst-ticket__apt .ic { width: 14px; height: 14px; color: var(--primar-ink); }
.fst-ticket__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.fst-ticket__chips span { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; color: var(--ok); background: var(--ok-soft); }
.fst-ticket__chips .ic { width: 12px; height: 12px; stroke-width: 3; }
.fst-bx { position: absolute; left: -20px; bottom: -12px; z-index: 3; width: 156px; }
.motion .fst-bx { animation: blixten-in 1s .9s var(--spring) backwards; }
@media (max-width: 1023px) { .fst-show { justify-items: center; } .fst-call { margin-right: 0; } .fst-ticket { justify-self: end; } }
@media (max-width: 599px) {
  .fst-show { padding-top: 56px; }
  .fst-call { width: 100%; }
  .fst-ticket { width: 72%; }
  .fst-bx { left: -10px; bottom: -14px; width: 100px; }
  .fst-moon { right: 6%; top: 9%; width: 52px; height: 52px; box-shadow: inset -11px 6px 0 0 var(--gnista), 0 0 40px -10px rgba(242, 250, 163, .5); }
  .fst-skyline { height: 130px; }
}

/* ==========================================================================
   2. En natt i huset
   ========================================================================== */
.fst-night { --winw: 38px; --wgap: 10px; --rowh: 58px; --roof: 46px; overflow: clip; color: #fff; background: linear-gradient(180deg, var(--night), var(--natt)); }
.fst-night .lp-pin__sticky { position: relative; }
.fst-night__sky { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg, transparent 20%, rgba(155, 93, 229, .35) 60%, rgba(242, 160, 120, .45)); opacity: calc(var(--sun) * .9); transition: opacity .3s; }
.fst-night__grid { position: relative; z-index: 1; display: grid; gap: 26px; align-items: center; }
@media (min-width: 1000px) { .fst-night__grid { grid-template-columns: minmax(0, .95fr) auto minmax(0, 1fr); gap: 40px; } }
.fst-night__copy .lead { color: var(--on-dark-muted); }
.fst-night .h2 { font-size: clamp(2rem, 1.2rem + 2.3vw, 3.1rem); }
@media (min-width: 1000px) { .fst-night.is-pinned .fst-list ol { min-height: 372px; align-content: start; } .fst-night.is-pinned .fst-list li.is-older { display: none; } }
.fst-meter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 22px; }
.fst-meter p { display: grid; gap: 4px; padding: 14px; border-radius: 18px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px var(--on-dark-line); }
.fst-meter b { font-size: 2rem; font-weight: 800; line-height: 1; color: var(--gnista); font-variant-numeric: tabular-nums; }
.fst-meter b.is-bump { animation: bump .45s var(--spring); }
.fst-meter span { font-size: .84rem; color: var(--on-dark-muted); }
.fst-meter .fst-meter__clock { grid-column: 1 / -1; grid-template-columns: auto 1fr; align-items: center; gap: 14px; }
.fst-meter__clock b { font-size: 2.6rem; color: #fff; letter-spacing: -.02em; }
.fst-meter--zero b { color: #fff; }
.fst-house { position: relative; justify-self: center; }
.fst-house__roof { position: relative; height: var(--roof); display: grid; place-items: end center; padding-bottom: 8px; clip-path: polygon(8% 100%, 18% 0, 82% 0, 92% 100%); background: #2a0d3b; }
.fst-house__roof span { padding: 3px 12px; border-radius: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--natt); background: var(--ton); }
.fst-house__face { position: relative; display: grid; gap: 0; padding: 10px 14px 0 34px; border-radius: 6px 6px 0 0; background: repeating-linear-gradient(180deg, transparent 0 11px, rgba(0, 0, 0, .12) 11px 12px), var(--wall); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9); }
.fst-floor { position: relative; display: flex; align-items: center; gap: var(--wgap); height: var(--rowh); }
.fst-floor small { position: absolute; left: -26px; font-size: .64rem; font-weight: 800; color: var(--ton); opacity: .7; }
.fst-win { width: var(--winw); height: calc(var(--rowh) - 14px); border-radius: 4px; background: linear-gradient(90deg, transparent 47%, #4d2166 47% 53%, transparent 53%), linear-gradient(180deg, transparent 40%, #4d2166 40% 46%, transparent 46%), var(--win); box-shadow: inset 0 0 0 3px #4d2166; transition: background-color .4s, box-shadow .4s; }
.fst-win.is-on { background-color: var(--lamp); box-shadow: inset 0 0 0 3px #4d2166, 0 0 26px rgba(255, 229, 154, .65); }
.fst-win.is-new { animation: fst-light .8s var(--ease-out); }
.fst-house__door { display: flex; justify-content: center; height: 34px; margin: 0 -14px 0 -34px; background: #2a0d3b; }
.fst-house__door i { width: 44px; height: 30px; margin-top: 4px; border-radius: 8px 8px 0 0; background: linear-gradient(90deg, transparent 49%, #2a0d3b 49% 51%, transparent 51%), #6f3e8c; }
.fst-callout { position: absolute; z-index: 3; left: calc(34px + var(--c) * (var(--winw) + var(--wgap)) + var(--winw) / 2); top: calc(var(--roof) + 10px + var(--f) * var(--rowh) + 4px); display: flex; align-items: center; gap: 8px; width: 210px; padding: 8px 10px; border-radius: 14px; color: var(--ink); background: #fff; box-shadow: 0 20px 40px -14px rgba(0, 0, 0, .9); transform: translate(calc(var(--c) * -16%), -100%); transition: left .4s var(--ease-out), top .4s var(--ease-out), transform .4s var(--ease-out); }
.fst-callout > i { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; color: var(--natt); background: var(--gnista); }
.fst-callout .ic { width: 14px; height: 14px; }
.fst-callout span { display: grid; min-width: 0; font-size: .76rem; line-height: 1.3; }
.fst-callout small { color: var(--muted); }
.fst-callout.is-pop { animation: pop-in .45s var(--spring); }
.fst-callout[hidden] { display: none; }
.fst-list { align-self: center; padding: 14px; border-radius: 22px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px var(--on-dark-line); }
.fst-list__h { display: flex; align-items: center; gap: 8px; padding: 2px 4px 10px; }
.fst-list__h .ic { width: 17px; height: 17px; color: var(--gnista); }
.fst-list ol { display: grid; gap: 6px; }
.fst-list li { display: none; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px 10px; border-radius: 14px; color: var(--ink); background: #fff; }
.fst-list li.is-on { display: grid; }
.fst-list li.is-new { animation: fst-in .5s var(--spring); }
.fst-list li > span { display: grid; min-width: 0; }
.fst-list li b { font-size: .82rem; font-variant-numeric: tabular-nums; }
.fst-list li small { font-size: .78rem; color: var(--muted); }
.fst-tag { grid-column: 2; justify-self: start; padding: 2px 8px; border-radius: 999px; font-size: .68rem; font-style: normal; font-weight: 800; }
.fst-tag--help { color: var(--primar-ink); background: #F1E9FC; }
.fst-tag--urgent { color: #9A1C1C; background: #FDE2E2; }
.fst-list template { display: none; }
@media (max-width: 999px) {
  .fst-night { --winw: 26px; --wgap: 7px; --rowh: 38px; --roof: 32px; }
  .fst-night__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .fst-night.is-pinned .fst-night__copy .lead { display: none; }
  .fst-night.is-pinned .h2 { font-size: clamp(1.6rem, 6.6vw, 2.2rem); }
  .fst-meter { grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin-top: 12px; }
  .fst-meter p { padding: 9px 10px; }
  .fst-meter .fst-meter__clock { grid-column: auto; grid-template-columns: 1fr; gap: 2px; }
  .fst-meter b, .fst-meter__clock b { font-size: 1.45rem; }
  .fst-meter span { font-size: .72rem; }
  .fst-house__roof span { font-size: .62rem; }
  .fst-callout { width: 170px; padding: 6px 8px; }
  .fst-callout span { font-size: .68rem; }
  .fst-list { padding: 8px; }
  .fst-list__h { display: none; }
  .fst-night.is-pinned .fst-list li.is-old { display: none; }
}

/* ==========================================================================
   3. Gör en felanmälan
   ========================================================================== */
.fst-form { display: grid; gap: 18px; padding: clamp(20px, 3vw, 28px); border-radius: 28px; background: #fff; box-shadow: 0 0 0 1px var(--line), var(--shadow-2); }
.fst-form__h { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.fst-form__h > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: .74rem; letter-spacing: 0; color: var(--natt); background: var(--gnista); }
.fst-form__h small { margin-left: auto; font-size: .7rem; letter-spacing: .04em; text-transform: none; color: var(--primar-ink); }
.fst-plan { display: grid; grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); grid-template-areas: "a1 st a2" "a3 st a4"; padding: 10px; border-radius: 16px; background: linear-gradient(rgba(126, 69, 201, .07) 1px, transparent 1px) 0 0 / 14px 14px, linear-gradient(90deg, rgba(126, 69, 201, .07) 1px, transparent 1px) 0 0 / 14px 14px, #FBF9FD; box-shadow: inset 0 0 0 3px var(--natt); }
.fst-apt--1 { grid-area: a1; } .fst-apt--2 { grid-area: a2; } .fst-apt--3 { grid-area: a3; } .fst-apt--4 { grid-area: a4; }
.fst-apt { position: relative; display: grid; align-content: center; justify-items: center; gap: 2px; min-height: 86px; padding: 10px; border: 0; cursor: pointer; font: inherit; color: var(--ink); background: transparent; box-shadow: inset 0 0 0 1.5px rgba(44, 14, 61, .55); transition: background-color .2s, box-shadow .2s; }
.fst-apt::before { content: ""; position: absolute; top: 0; bottom: 40%; left: 58%; border-left: 1.5px solid rgba(44, 14, 61, .35); }
.fst-apt i { position: absolute; bottom: 0; width: 20px; height: 20px; border-top: 1.5px dashed rgba(44, 14, 61, .4); border-left: 1.5px solid rgba(44, 14, 61, .55); border-radius: 20px 0 0 0; }
.fst-apt--1 i, .fst-apt--3 i { right: 2px; transform: scaleX(-1); }
.fst-apt--2 i, .fst-apt--4 i { left: 2px; }
.fst-apt--3 i, .fst-apt--4 i { top: 0; bottom: auto; transform: scaleY(-1); }
.fst-apt--3 i { transform: scale(-1, -1); }
.fst-apt b { position: relative; padding: 2px 8px; border-radius: 6px; font-size: .95rem; font-variant-numeric: tabular-nums; background: #FBF9FD; }
.fst-apt small { position: relative; font-size: .72rem; color: var(--muted); }
.fst-apt:hover { background: rgba(155, 93, 229, .07); }
.fst-apt[aria-pressed="true"] { background: rgba(155, 93, 229, .16); box-shadow: inset 0 0 0 3px var(--primar-ink); }
.fst-apt[aria-pressed="true"] b { color: var(--natt); background: var(--gnista); }
.fst-plan__stair { grid-area: st; display: grid; place-items: center; background: repeating-linear-gradient(180deg, transparent 0 9px, rgba(44, 14, 61, .25) 9px 10.5px); box-shadow: inset 1.5px 0 0 rgba(44, 14, 61, .55), inset -1.5px 0 0 rgba(44, 14, 61, .55); }
.fst-plan__stair b { padding: 3px 4px; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); background: #FBF9FD; color: var(--muted); }
.fst-issues { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.fst-issues button, .fst-techs button { padding: 11px 10px; border: 0; border-radius: 14px; cursor: pointer; font: inherit; font-weight: 700; color: var(--ink); background: var(--ljus); box-shadow: inset 0 0 0 1px var(--line); transition: background-color .2s, color .2s, transform .3s var(--spring); }
.fst-issues button:hover, .fst-techs button:hover { transform: translateY(-2px); }
.fst-issues button[aria-pressed="true"], .fst-techs button[aria-pressed="true"] { color: #fff; background: var(--natt); box-shadow: 0 12px 24px -12px rgba(44, 14, 61, .7); }
.fst-made { display: grid; gap: 8px; padding: 14px; border-radius: 18px; background: var(--ljus); box-shadow: inset 0 0 0 1px var(--line); }
.fst-made.is-new { animation: fst-in .45s var(--spring); }
.fst-made__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .8rem; }
.fst-made__top b { display: inline-flex; align-items: center; gap: 6px; }
.fst-made__top .ic { width: 15px; height: 15px; color: var(--primar-ink); }
.fst-made__top em { padding: 3px 10px; border-radius: 999px; font-style: normal; font-weight: 800; color: var(--natt); background: var(--gnista); }
.fst-made__title { font-weight: 800; line-height: 1.35; }
.fst-made__pick { font-size: .78rem; color: var(--muted); }
.fst-techs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.fst-techs button { display: flex; align-items: center; gap: 8px; padding: 8px; text-align: left; background: #fff; }
.fst-techs i { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-style: normal; font-size: .78rem; font-weight: 800; color: #fff; background: var(--primar-ink); }
.fst-techs button[aria-pressed="true"] i { color: var(--natt); background: var(--gnista); }
.fst-techs span { display: grid; min-width: 0; }
.fst-techs b { font-size: .84rem; }
.fst-techs small { overflow: hidden; font-size: .7rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; opacity: .7; }
.fst-made__ok { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 12px; font-size: .86rem; font-weight: 800; color: var(--ok); background: var(--ok-soft); }
.fst-made__ok[hidden] { display: none; }
.fst-made__ok:not([hidden]) { animation: fade-up .4s var(--ease-out); }
.fst-made__ok .ic { width: 16px; height: 16px; stroke-width: 3; }
.fst-form__note { font-size: .8rem; color: var(--muted); }
@media (max-width: 479px) {
  .fst-issues { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fst-techs { grid-template-columns: minmax(0, 1fr); }
  .fst-plan { grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr); }
  .fst-apt { min-height: 74px; }
}

/* ==========================================================================
   4. Namntavlan
   ========================================================================== */
.fst-calc { background: radial-gradient(50% 50% at 20% 60%, rgba(255, 229, 154, .08), transparent 70%), linear-gradient(180deg, var(--natt), #321147); }
.fst-sliders { display: grid; gap: 16px; margin-top: 24px; }
.fst-range p { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.fst-range label { font-weight: 700; }
.fst-range output { font-size: 1.1rem; font-weight: 800; color: var(--gnista); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fst-range input { --fill: 50%; width: 100%; height: 28px; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; cursor: pointer; }
.fst-range input::-webkit-slider-runnable-track { height: 8px; border-radius: 99px; background: linear-gradient(90deg, var(--lamp) var(--fill), rgba(255, 255, 255, .15) var(--fill)); }
.fst-range input::-moz-range-track { height: 8px; border-radius: 99px; background: linear-gradient(90deg, var(--lamp) var(--fill), rgba(255, 255, 255, .15) var(--fill)); }
.fst-range input::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -9px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px var(--lamp), 0 0 18px rgba(255, 229, 154, .6); }
.fst-range input::-moz-range-thumb { width: 20px; height: 20px; border: 4px solid var(--lamp); border-radius: 50%; background: #fff; }
.fst-range input:focus-visible { outline: 3px solid var(--gnista); outline-offset: 4px; border-radius: 8px; }
.fst-board { display: grid; justify-items: center; }
.fst-board__frame { width: min(480px, 100%); padding: 12px; border-radius: 14px; background: linear-gradient(135deg, #ECE8EF, #A7A0AE 45%, #E2DDE6 60%, #8E8796); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .8); }
.motion .fst-board.is-in .fst-board__frame { animation: fst-hang 1.1s var(--spring) backwards; }
.fst-board__felt { display: grid; gap: 4px; padding: 22px 20px 20px; border-radius: 4px; color: #F4F1F6; background: repeating-linear-gradient(180deg, rgba(255, 255, 255, .055) 0 1.5px, transparent 1.5px 9px), #151016; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; text-transform: uppercase; letter-spacing: .06em; box-shadow: inset 0 0 30px rgba(0, 0, 0, .8); }
.fst-board__head { margin-bottom: 10px; padding-bottom: 12px; border-bottom: 2px solid rgba(255, 255, 255, .2); font-size: 1.15rem; font-weight: 700; letter-spacing: .2em; text-align: center; }
.fst-board__row { display: flex; align-items: baseline; gap: 8px; padding: 7px 0; font-size: .86rem; }
.fst-board__row i { flex: 1; min-width: 12px; border-bottom: 2px dotted rgba(255, 255, 255, .28); }
.fst-board__row b { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fst-board__row--sum { margin-top: 4px; padding-top: 12px; border-top: 2px solid rgba(255, 255, 255, .2); font-size: 1rem; }
.fst-board__row--sum b { font-size: 1.5rem; color: var(--lamp); }
.fst-board__row--vs b { color: #9BE7C4; }
.fst-board__row--vs .air-price { font: inherit; color: inherit; }
.fst-calc__note { max-width: 440px; margin-top: 20px; font-size: .78rem; line-height: 1.5; text-align: center; color: var(--on-dark-muted); }
@media (max-width: 420px) { .fst-board__row { font-size: .74rem; letter-spacing: .02em; } .fst-board__row--sum b { font-size: 1.2rem; } .fst-board__felt { padding: 18px 14px; } }

/* ==========================================================================
   5. Hjälpcenter och språk
   ========================================================================== */
.fst-hc { position: relative; display: grid; }
.fst-hc__center { width: min(460px, 90%); padding: 18px 18px 56px; border-radius: 24px; background: #fff; box-shadow: 0 0 0 1px var(--line), var(--shadow-2); }
.fst-hc__search { display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-radius: 14px; font-size: .9rem; color: var(--muted); background: var(--ljus); box-shadow: inset 0 0 0 1px var(--line); }
.fst-hc__search .ic { width: 16px; height: 16px; }
.fst-hc__cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.fst-hc__cats li { display: grid; justify-items: start; gap: 8px; padding: 12px; border-radius: 14px; font-size: .8rem; font-weight: 700; background: #FBF9FD; box-shadow: inset 0 0 0 1px var(--line); }
.fst-hc__cats span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #fff; background: hsl(calc(265 + var(--i) * 22) 55% 52%); }
.fst-hc__cats .ic { width: 15px; height: 15px; }
.reveal-on .fst-hc.is-in .fst-hc__cats li { animation: pop-in .5s var(--spring) backwards; animation-delay: calc(.3s + var(--i) * .08s); }
.fst-hc__arts { display: grid; margin-top: 12px; }
.fst-hc__arts li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 2px; border-top: 1px solid var(--line-2); font-size: .84rem; }
.fst-hc__arts span { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.fst-hc__arts .ic { width: 15px; height: 15px; color: var(--primar-ink); }
.fst-hc__arts small { font-size: .72rem; color: var(--muted); white-space: nowrap; }
.fst-hc__call { position: relative; justify-self: end; margin-top: -40px; z-index: 2; display: grid; gap: 10px; width: min(330px, 76%); padding: 16px; border-radius: 22px; color: #fff; background: var(--natt); box-shadow: 0 40px 80px -30px rgba(44, 14, 61, .9); }
.fst-hc__tabs { display: flex; gap: 5px; }
.fst-hc__tabs button { flex: 1; padding: 7px 0; border: 0; border-radius: 999px; cursor: pointer; font: inherit; font-size: .78rem; font-weight: 800; letter-spacing: .08em; color: var(--ton); background: rgba(255, 255, 255, .08); transition: background-color .2s, color .2s; }
.fst-hc__tabs button[aria-pressed="true"] { color: var(--natt); background: var(--gnista); }
.fst-hc__chat { display: grid; gap: 8px; min-height: 150px; align-content: start; }
.fst-hc__chat[hidden] { display: none; }
.fst-hc__chat:not([hidden]) { animation: fade-up .45s var(--ease-out); }
.fst-hc__q { display: grid; gap: 3px; justify-self: start; max-width: 90%; padding: 9px 12px; border-radius: 16px 16px 16px 4px; font-size: .86rem; background: rgba(255, 255, 255, .1); }
.fst-hc__q small { display: inline-flex; align-items: center; gap: 4px; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ton); }
.fst-hc__q .ic { width: 11px; height: 11px; }
.fst-hc__a { justify-self: end; max-width: 92%; padding: 9px 12px; border-radius: 16px 16px 4px 16px; font-size: .86rem; line-height: 1.45; color: #fff; background: var(--primar-ink); }
.fst-hc__chat[dir="rtl"] .fst-hc__q { justify-self: end; border-radius: 16px 16px 4px 16px; }
.fst-hc__chat[dir="rtl"] .fst-hc__a { justify-self: start; border-radius: 16px 16px 16px 4px; }
.fst-hc__src { display: flex; align-items: center; gap: 6px; padding-top: 8px; border-top: 1px solid var(--on-dark-line); font-size: .74rem; color: var(--ton); }
.fst-hc__src .ic { width: 13px; height: 13px; }
@media (max-width: 599px) {
  .fst-hc__center { width: 100%; }
  .fst-hc__cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fst-hc__call { justify-self: stretch; width: auto; margin: -40px 10px 0; }
}

/* ==========================================================================
   6. Underhållsplanen
   ========================================================================== */
.fst-upkeep { background: linear-gradient(rgba(200, 168, 242, .05) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, rgba(200, 168, 242, .05) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(rgba(200, 168, 242, .07) 1px, transparent 1px) 0 0 / 140px 140px, linear-gradient(90deg, rgba(200, 168, 242, .07) 1px, transparent 1px) 0 0 / 140px 140px, var(--natt); }
.fst-up { display: grid; gap: 18px; align-items: start; max-width: 1080px; margin: 0 auto; }
@media (min-width: 1000px) { .fst-up { grid-template-columns: minmax(0, 1fr) 300px; } }
.fst-table { overflow: hidden; border-radius: 24px; color: var(--ink); background: #fff; box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .9); }
.fst-table__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line-2); }
.fst-table__top b { display: inline-flex; align-items: center; gap: 8px; font-size: 1.05rem; }
.fst-table__top b .ic { width: 18px; height: 18px; color: var(--primar-ink); }
.fst-table__top span { display: flex; gap: 4px; }
.fst-table__top em { padding: 5px 11px; border-radius: 999px; font-size: .74rem; font-style: normal; font-weight: 700; color: var(--muted); background: var(--ljus); }
.fst-table__top em.is-on { color: #fff; background: var(--natt); }
.fst-table__row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, .85fr) minmax(0, 1.15fr) minmax(0, .7fr); align-items: center; gap: 10px; padding: 11px 18px; border-bottom: 1px solid var(--line-2); font-size: .84rem; }
.fst-table__row:last-child { border-bottom: 0; }
.fst-table__row--head { padding-block: 9px; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); background: #FBF9FD; }
.fst-table__row > span { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; min-width: 0; }
.fst-from { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: .68rem; font-weight: 800; color: var(--natt); background: var(--gnista); }
.fst-from .ic { width: 11px; height: 11px; }
.fst-st { padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-style: normal; font-weight: 800; }
.fst-st--0, .fst-st--3 { color: #9A5B00; background: #FDF1D6; }
.fst-st--1 { color: #1D4ED8; background: #DBEAFE; }
.fst-st--2 { color: var(--muted); background: var(--line-2); }
.fst-st--4 { color: var(--ok); background: var(--ok-soft); }
.fst-who { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: .66rem; font-style: normal; font-weight: 800; color: #fff; background: var(--primar-ink); }
.fst-who--guest { color: var(--natt); background: var(--ton); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--primar); }
.reveal-on .fst-up.is-in .fst-table__row:not(.fst-table__row--head) { animation: fst-in .6s var(--spring) backwards; animation-delay: calc(.35s + var(--i) * .12s); }
.fst-guest { display: grid; gap: 10px; padding: 18px; border-radius: 24px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px var(--on-dark-line); }
.fst-guest__who { display: flex; align-items: center; gap: 12px; }
.fst-guest__who i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; font-style: normal; font-weight: 800; color: var(--natt); background: var(--ton); }
.fst-guest__who span { display: grid; gap: 4px; }
.fst-guest__who em { justify-self: start; padding: 2px 9px; border-radius: 999px; font-size: .72rem; font-style: normal; font-weight: 800; color: var(--natt); background: var(--gnista); }
.fst-guest__label { margin-top: 4px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ton); }
.fst-guest__yes { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 14px; font-weight: 700; color: var(--ink); background: #fff; }
.fst-guest__yes .ic { width: 18px; height: 18px; padding: 3px; border-radius: 50%; stroke-width: 3; color: #fff; background: var(--ok); }
.fst-guest__no { display: grid; gap: 6px; }
.fst-guest__no li { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; font-size: .86rem; color: var(--on-dark-muted); text-decoration: line-through; text-decoration-color: rgba(200, 168, 242, .5); background: rgba(255, 255, 255, .03); }
.fst-guest__no .ic { width: 14px; height: 14px; color: #F48B8B; }
.fst-guest__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-weight: 700; color: var(--gnista); }
.fst-guest__more .ic { width: 16px; height: 16px; transition: transform .3s var(--spring); }
.fst-guest__more:hover .ic { transform: translateX(4px); }
@media (max-width: 639px) {
  .fst-table__row { grid-template-columns: minmax(0, 1.5fr) minmax(0, .9fr) minmax(0, 1fr); padding-inline: 14px; }
  .fst-table__row > :nth-child(2), .fst-table__row > :nth-child(5) { display: none; }
}

.fst-def { padding-bottom: calc(clamp(76px, 10vw, 136px) + var(--sheet-r)); }

@keyframes fst-flick { 0%, 100% { opacity: 1; } 46% { opacity: 1; } 50% { opacity: .15; } 70% { opacity: .15; } 74% { opacity: 1; } }
@keyframes fst-ticket { from { opacity: 0; transform: translateY(30px) scale(.9) rotate(3deg); } }
@keyframes fst-light { 0% { background-color: #fff; box-shadow: inset 0 0 0 3px #4d2166, 0 0 50px 10px rgba(255, 229, 154, .9); } }
@keyframes fst-in { from { opacity: 0; transform: translateY(-12px) scale(.96); } }
@keyframes fst-hang { 0% { opacity: 0; transform: translateY(-40px) rotate(-4deg); } 60% { opacity: 1; transform: rotate(1.5deg); } }
