/* =====================================================
   Bista Bilvård – style.css
   Mörkt premiumtema med guldaccent
   ===================================================== */

/* ---------- Tokens ---------- */
:root{
  --bg:            #07080a;
  --bg-2:          #0c0e11;
  --bg-3:          #111419;
  --line:          rgba(255,255,255,.09);
  --line-strong:   rgba(255,255,255,.16);

  --text:          #ece9e4;
  --muted:         #9a958d;
  --muted-2:       #6f6b64;

  --gold:          #cfa75f;
  --gold-light:    #f0dda9;
  --gold-deep:     #8a6a2b;
  --gold-grad:     linear-gradient(135deg,#f4e6bd 0%,#d5ab5f 45%,#9b7734 100%);
  --gold-glow:     rgba(207,167,95,.35);

  --glass:         rgba(255,255,255,.045);
  --glass-2:       rgba(255,255,255,.07);

  --r-sm: 8px;
  --r:    14px;
  --r-lg: 22px;

  --shadow:     0 18px 50px rgba(0,0,0,.55);
  --shadow-lg:  0 30px 80px rgba(0,0,0,.7);

  --nav-h: 84px;
  --wrap: 1220px;

  --ease: cubic-bezier(.2,.7,.25,1);

  --f-display: 'Oswald', 'Haettenschweiler', 'Arial Narrow', sans-serif;
  --f-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 12px); -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--f-body);
  font-size:16.5px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
h1,h2,h3{ margin:0; font-family:var(--f-display); font-weight:600; line-height:1.05; letter-spacing:.01em; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }

::selection{ background:var(--gold); color:#0a0a0a; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:#111; padding:12px 20px; border-radius:0 0 var(--r-sm) 0; font-weight:600;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }

/* ---------- Layout helpers ---------- */
.wrap{ width:min(100% - 44px, var(--wrap)); margin-inline:auto; }
.section{ position:relative; padding:clamp(80px,10vw,140px) 0; }

.eyebrow{
  font-family:var(--f-body);
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin:0 0 14px;
}
.h2{
  font-size:clamp(2rem,4.6vw,3.35rem);
  text-transform:uppercase;
  letter-spacing:.005em;
  margin:0 0 18px;
}
.lead{ font-size:1.08rem; color:#cfcbc4; }
.sechead{ max-width:720px; margin-bottom:clamp(38px,5vw,60px); }
.sechead--center{ margin-inline:auto; text-align:center; }
.sechead__sub{ color:var(--muted); margin:0; }
.demo-note{
  display:inline-block; margin-top:6px;
  font-size:.8rem; letter-spacing:.06em;
  border:1px dashed var(--line-strong); border-radius:999px;
  padding:5px 14px; color:var(--muted-2);
}
.grad{
  background:var(--gold-grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}

/* ---------- Buttons ---------- */
.btn{
  --btn-y:13px; --btn-x:26px;
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:var(--btn-y) var(--btn-x);
  border:1px solid transparent; border-radius:999px;
  font-family:var(--f-body); font-size:.82rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; white-space:nowrap;
  cursor:pointer; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn--lg{ --btn-y:17px; --btn-x:34px; font-size:.85rem; }
.btn--block{ display:flex; width:100%; }

.btn--gold{
  background:var(--gold-grad); color:#14100a;
  box-shadow:0 10px 30px rgba(207,167,95,.22);
}
.btn--gold::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.55) 46%,transparent 62%);
  transform:translateX(-130%); transition:transform .85s var(--ease);
}
.btn--gold:hover{ transform:translateY(-3px); box-shadow:0 16px 44px rgba(207,167,95,.4); }
.btn--gold:hover::after{ transform:translateX(130%); }

.btn--ghost{
  background:rgba(255,255,255,.05); color:var(--text);
  border-color:var(--line-strong); backdrop-filter:blur(10px);
}
.btn--ghost:hover{ background:rgba(255,255,255,.12); transform:translateY(-3px); border-color:rgba(255,255,255,.3); }

.btn--line{
  background:transparent; color:var(--gold-light); border-color:rgba(207,167,95,.4);
}
.btn--line:hover{
  background:rgba(207,167,95,.12); border-color:var(--gold);
  transform:translateY(-3px); box-shadow:0 12px 30px rgba(207,167,95,.16);
}

/* =====================================================
   1. NAV
   ===================================================== */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-menuopen{
  background:rgba(8,9,11,.96);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border-bottom-color:transparent;
}
.nav.is-stuck{
  background:rgba(8,9,11,.78);
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  border-bottom-color:var(--line);
  box-shadow:0 12px 40px rgba(0,0,0,.45);
}
.nav__inner{
  width:min(100% - 44px, 1340px); margin-inline:auto;
  height:var(--nav-h); display:flex; align-items:center; justify-content:space-between; gap:24px;
  transition:height .4s var(--ease);
}
.nav.is-stuck .nav__inner{ height:70px; }

.nav__brand{ display:flex; align-items:center; gap:13px; }
.nav__brand img{ width:auto; height:48px; transition:height .4s var(--ease); }
.nav.is-stuck .nav__brand img{ height:40px; }
.nav__brandtext{ display:flex; flex-direction:column; line-height:1.1; }
.nav__brandtext strong{
  font-family:var(--f-display); font-weight:600; font-size:1.06rem;
  text-transform:uppercase; letter-spacing:.09em;
}
.nav__brandtext em{
  font-style:normal; font-size:.63rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin-top:3px;
}

.nav__links{ display:flex; align-items:center; gap:34px; }
.nav__links a:not(.btn){
  position:relative; font-size:.83rem; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; color:#cdc9c2;
  transition:color .3s var(--ease);
}
.nav__links a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:-7px; height:1.5px; width:0;
  background:var(--gold-grad); transition:width .35s var(--ease);
}
.nav__links a:not(.btn):hover{ color:#fff; }
.nav__links a:not(.btn):hover::after,
.nav__links a.is-active::after{ width:100%; }
.nav__links a.is-active{ color:var(--gold-light); }
.nav__cta{ --btn-y:11px; --btn-x:22px; margin-left:6px; }

.nav__toggle{
  display:none; width:46px; height:46px; border:1px solid var(--line-strong);
  border-radius:12px; background:rgba(255,255,255,.05); cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.nav__toggle span{
  display:block; width:19px; height:1.8px; background:var(--text); border-radius:2px;
  transition:transform .35s var(--ease), opacity .25s var(--ease);
}
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.8px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.8px) rotate(-45deg); }

/* =====================================================
   2. HERO
   ===================================================== */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  padding:calc(var(--nav-h) + 40px) 0 120px;
  overflow:hidden;
}
.hero__media{ position:absolute; inset:0; }
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 55%;
  animation:kenburns 26s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes kenburns{
  from{ transform:scale(1.04) translate3d(0,0,0); }
  to  { transform:scale(1.18) translate3d(-1.5%,-2%,0); }
}
/* Bakgrundsvideo: ligger ovanpå fallbackbilden och tonas in när den spelar */
.hero__video{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:center 45%;
  opacity:0; transition:opacity 1.2s var(--ease);
  pointer-events:none;
}
.hero__video.is-playing{ opacity:1; }
.hero__media:has(.hero__video.is-playing) img{
  animation:none; opacity:0; transition:opacity .6s var(--ease);
}

.hero__veil{
  position:absolute; inset:0;
  background:
    radial-gradient(115% 88% at 20% 48%, rgba(7,8,10,.38) 0%, rgba(7,8,10,.78) 52%, rgba(7,8,10,.95) 100%),
    linear-gradient(180deg, rgba(7,8,10,.85) 0%, rgba(7,8,10,.25) 35%, rgba(7,8,10,.75) 78%, var(--bg) 100%);
}
.hero__veil::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg, rgba(207,167,95,.13), transparent 42%);
  mix-blend-mode:screen;
}

.hero__content{
  position:relative; z-index:2;
  width:min(100% - 44px, var(--wrap)); margin-inline:auto;
  max-width:min(100% - 44px, 1010px); margin-left:max(22px,calc((100vw - var(--wrap))/2));
}
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:11px;
  font-size:.72rem; letter-spacing:.26em; text-transform:uppercase;
  color:#ded9d0; font-weight:500;
  border:1px solid var(--line-strong); border-radius:999px;
  padding:9px 20px; background:rgba(255,255,255,.05);
  backdrop-filter:blur(10px); margin:0 0 26px;
}
.hero__eyebrow .dot{
  width:7px; height:7px; border-radius:50%; background:var(--gold);
  box-shadow:0 0 0 0 var(--gold-glow); animation:pulse 2.4s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(207,167,95,.55); }
  70%{ box-shadow:0 0 0 11px rgba(207,167,95,0); }
  100%{ box-shadow:0 0 0 0 rgba(207,167,95,0); }
}
.hero__title{
  font-size:clamp(2.6rem,6.6vw,5.1rem);
  text-transform:uppercase; letter-spacing:-.005em;
  margin:0 0 22px; text-shadow:0 6px 40px rgba(0,0,0,.6);
}
.hero__lead{
  font-size:clamp(1rem,1.5vw,1.18rem); color:#c9c4bc;
  max-width:52ch; margin:0 0 34px;
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:44px; }
.hero__trust{
  display:flex; flex-wrap:wrap; gap:12px 30px;
  font-size:.8rem; letter-spacing:.06em; color:var(--muted);
}
.hero__trust li{ display:flex; align-items:center; gap:9px; }
.hero__trust li::before{
  content:""; width:15px; height:15px; flex:none; border-radius:50%;
  background:var(--gold-grad);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12.5 4.5 4.5L19 7'/></svg>") center/100% no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12.5 4.5 4.5L19 7'/></svg>") center/100% no-repeat;
}

.hero__scroll{
  position:absolute; left:50%; bottom:34px; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--muted); transition:color .3s var(--ease);
}
.hero__scroll:hover{ color:var(--gold-light); }
.hero__mouse{
  width:24px; height:38px; border:1.5px solid currentColor; border-radius:14px;
  position:relative; opacity:.65;
}
.hero__mouse::after{
  content:""; position:absolute; left:50%; top:8px; width:3px; height:7px;
  border-radius:2px; background:currentColor; transform:translateX(-50%);
  animation:wheel 1.9s infinite;
}
@keyframes wheel{ 0%{ transform:translate(-50%,0); opacity:1 } 70%{ transform:translate(-50%,13px); opacity:0 } 100%{ opacity:0 } }
.hero__scrolltext{ font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; }

/* =====================================================
   3. OM
   ===================================================== */
.om{ background:linear-gradient(180deg,var(--bg) 0%, var(--bg-2) 100%); }
.om__grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,84px); align-items:center;
}
.om__text .h2{ max-width:14ch; }
.om__text p:not(.eyebrow){ color:#b8b3ab; }
.om__actions{ display:flex; flex-wrap:wrap; gap:13px; margin-top:30px; }

.om__media{ position:relative; }
.om__img{ margin:0; overflow:hidden; border-radius:var(--r-lg); border:1px solid var(--line); box-shadow:var(--shadow); }
.om__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.om__img:hover img{ transform:scale(1.06); }
.om__img--big{ aspect-ratio:4/5; }
.om__img--small{
  position:absolute; right:-6%; bottom:-9%; width:52%; aspect-ratio:1/1;
  box-shadow:var(--shadow-lg); border-color:var(--line-strong);
}
.om__badge{
  position:absolute; left:-22px; top:26px;
  display:grid; place-items:center; width:92px; height:92px; border-radius:50%;
  background:var(--gold-grad); color:#17120a;
  font-family:var(--f-display); line-height:1;
  box-shadow:0 14px 36px rgba(207,167,95,.32);
}
.om__badge strong{ font-size:.62rem; letter-spacing:.2em; font-weight:600; }
.om__badge span{ font-size:1.7rem; font-weight:700; letter-spacing:.04em; }

/* stats */
.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  margin-top:clamp(60px,8vw,110px);
  background:var(--line); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden;
}
.stat{
  background:var(--bg-2); padding:clamp(26px,3.4vw,40px) 22px; text-align:center;
  transition:background .4s var(--ease);
}
.stat:hover{ background:var(--bg-3); }
.stat__num{
  display:block; font-family:var(--f-display); font-weight:600;
  font-size:clamp(2.3rem,4.4vw,3.4rem); line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  margin-bottom:10px;
}
.stat__label{ font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

/* =====================================================
   4. PRISER
   ===================================================== */
.priser{ background:var(--bg-2); }
.priser .sechead{ margin-inline:auto; text-align:center; }

.tabs{
  position:relative; display:inline-flex; gap:4px; padding:5px;
  border:1px solid var(--line); border-radius:999px; background:var(--glass);
  backdrop-filter:blur(12px);
  margin:0 auto clamp(38px,5vw,56px); left:50%; transform:translateX(-50%);
}
.tab{
  position:relative; z-index:2; border:0; background:none; cursor:pointer;
  padding:12px 26px; border-radius:999px;
  font-size:.79rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:var(--muted); transition:color .35s var(--ease);
}
.tab.is-active{ color:#14100a; }
.tab:hover:not(.is-active){ color:var(--text); }
.tabs__pill{
  position:absolute; z-index:1; top:5px; bottom:5px; left:5px;
  border-radius:999px; background:var(--gold-grad);
  box-shadow:0 8px 24px rgba(207,167,95,.28);
  transition:transform .45s var(--ease), width .45s var(--ease);
}

.cards{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px; align-items:stretch;
}
.cards--3{ grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); }
.cards.is-hidden{ display:none; }

.card{
  position:relative; display:flex; flex-direction:column;
  padding:32px 28px 28px;
  border:1px solid var(--line); border-radius:var(--r-lg);
  background:linear-gradient(170deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  overflow:hidden;
  transition:transform .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);
}
.card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(90% 60% at 50% -10%, rgba(207,167,95,.16), transparent 70%);
  opacity:0; transition:opacity .45s var(--ease);
}
.card:hover{
  transform:translateY(-8px);
  border-color:rgba(207,167,95,.42);
  box-shadow:0 26px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(207,167,95,.1);
}
.card:hover::before{ opacity:1; }

.card--featured{
  border-color:rgba(207,167,95,.45);
  background:linear-gradient(170deg, rgba(207,167,95,.14), rgba(255,255,255,.02));
  box-shadow:0 22px 60px rgba(0,0,0,.5);
}
.card__ribbon{
  position:absolute; top:18px; right:-34px; transform:rotate(38deg);
  background:var(--gold-grad); color:#14100a;
  font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  padding:6px 40px; box-shadow:0 6px 18px rgba(0,0,0,.35);
}

.card__top{ position:relative; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.card__name{
  font-size:1.42rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px;
}
.card__price{
  display:flex; align-items:baseline; gap:9px; margin:0 0 8px;
  font-family:var(--f-display); font-size:2.5rem; font-weight:600; line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.card__price .from{
  font-family:var(--f-body); font-size:.72rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase;
  -webkit-text-fill-color:var(--muted); color:var(--muted);
}
.card__price .kr{ font-size:1.4rem; }
.card__tag{ margin:0; font-size:.86rem; color:var(--muted); }

.card__list{ flex:1; display:grid; gap:11px; margin-bottom:26px; }
.card__list li{
  position:relative; padding-left:26px; font-size:.925rem; color:#c1bcb4; line-height:1.5;
}
.card__list li::before{
  content:""; position:absolute; left:0; top:.42em; width:14px; height:14px;
  background:var(--gold-grad);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12.5 4.5 4.5L19 7'/></svg>") center/100% no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12.5 4.5 4.5L19 7'/></svg>") center/100% no-repeat;
}
.card__list strong{ color:var(--gold-light); font-weight:600; }
.card__btn{ width:100%; margin-top:auto; }

.cards--5{ grid-template-columns:repeat(5,1fr); gap:16px; }
@media (max-width:1180px){
  .cards--5{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; }
  .cards--5 .card{ padding:32px 28px 28px; }
  .cards--5 .card__name{ font-size:1.42rem; }
  .cards--5 .card__price{ font-size:2.5rem; }
  .cards--5 .card__price .kr{ font-size:1.4rem; }
  .cards--5 .card__list li{ font-size:.925rem; padding-left:26px; }
  .cards--5 .card__btn{ --btn-x:26px; font-size:.82rem; letter-spacing:.14em; }
}
.cards--5 .card{ padding:28px 22px 24px; }
.cards--5 .card__name{ font-size:1.22rem; }
.cards--5 .card__price{ font-size:2.15rem; }
.cards--5 .card__price .kr{ font-size:1.2rem; }
.cards--5 .card__list li{ font-size:.87rem; padding-left:23px; }
.cards--5 .card__btn{ --btn-x:14px; font-size:.7rem; letter-spacing:.1em; }

.priser__note{ text-align:center; margin-top:38px; color:var(--muted); font-size:.95rem; }
.priser__note a{ color:var(--gold-light); border-bottom:1px solid rgba(207,167,95,.4); }
.priser__note a:hover{ border-color:var(--gold); }

/* =====================================================
   5. VARFÖR
   ===================================================== */
.varfor{ position:relative; overflow:hidden; background:var(--bg); }
.varfor__bg{ position:absolute; inset:-12% 0; z-index:0; }
.varfor__bg img{
  width:100%; height:100%; object-fit:cover; opacity:.2;
  filter:grayscale(.35) contrast(1.05);
  will-change:transform;
}
.varfor__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,var(--bg) 0%, rgba(7,8,10,.75) 30%, rgba(7,8,10,.8) 70%, var(--bg) 100%);
}
.varfor .wrap{ position:relative; z-index:1; }

.usps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; }
.usp{
  padding:34px 28px;
  border:1px solid var(--line); border-radius:var(--r-lg);
  background:rgba(12,14,17,.62); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  transition:transform .45s var(--ease), border-color .45s var(--ease), background .45s var(--ease);
}
.usp:hover{ transform:translateY(-7px); border-color:rgba(207,167,95,.4); background:rgba(17,20,25,.8); }
.usp__icon{
  width:56px; height:56px; display:grid; place-items:center; margin-bottom:22px;
  border-radius:16px; border:1px solid rgba(207,167,95,.32);
  background:linear-gradient(150deg, rgba(207,167,95,.2), rgba(207,167,95,.04));
  color:var(--gold-light);
}
.usp__icon svg{ width:27px; height:27px; }
.usp h3{ font-size:1.2rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:11px; }
.usp p{ margin:0; font-size:.93rem; color:var(--muted); }

.gallery{
  display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
  margin-top:clamp(40px,5vw,64px);
}
.gallery figure{
  margin:0; overflow:hidden; border-radius:var(--r);
  border:1px solid var(--line); aspect-ratio:1/1;
}
.gallery figure:nth-child(1),
.gallery figure:nth-child(6){ grid-column:span 2; aspect-ratio:2/1; }
.gallery img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(.45) brightness(.85);
  transition:transform 1s var(--ease), filter .5s var(--ease);
}
.gallery figure:hover img{ transform:scale(1.09); filter:grayscale(0) brightness(1); }

/* =====================================================
   6. BEFORE / AFTER
   ===================================================== */
.resultat{ background:linear-gradient(180deg,var(--bg) 0%, var(--bg-2) 100%); }
.ba{ max-width:960px; margin-inline:auto; }
.ba__frame{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  border-radius:var(--r-lg); border:1px solid var(--line-strong);
  box-shadow:var(--shadow-lg); cursor:ew-resize; user-select:none; touch-action:pan-y;
  background:#000;
}
.ba__img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 55%; pointer-events:none;
}
.ba__before{
  position:absolute; inset:0; width:100%; overflow:hidden;
  clip-path:inset(0 50% 0 0);
  will-change:clip-path;
}
.ba__label{
  position:absolute; top:18px; z-index:3;
  font-size:.66rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  padding:8px 16px; border-radius:999px; backdrop-filter:blur(10px);
  pointer-events:none;
}
.ba__label--before{ left:18px; background:rgba(0,0,0,.55); border:1px solid var(--line-strong); color:#d8d3cb; }
.ba__label--after{ right:18px; background:var(--gold-grad); color:#14100a; }

.ba__handle{ position:absolute; top:0; bottom:0; left:50%; z-index:4; transform:translateX(-50%); will-change:left; }
.ba__line{ position:absolute; top:0; bottom:0; left:50%; width:2px; transform:translateX(-50%); background:var(--gold-grad); box-shadow:0 0 22px rgba(207,167,95,.6); }
.ba__knob{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:56px; height:56px; border-radius:50%; cursor:grab;
  display:grid; place-items:center; border:1px solid rgba(255,255,255,.4);
  background:rgba(10,10,12,.72); backdrop-filter:blur(10px);
  color:var(--gold-light); box-shadow:0 10px 30px rgba(0,0,0,.6);
  transition:transform .3s var(--ease), background .3s var(--ease);
}
.ba__knob:hover{ transform:translate(-50%,-50%) scale(1.08); background:rgba(207,167,95,.22); }
.ba__knob:active{ cursor:grabbing; }
.ba__knob svg{ width:22px; height:22px; }
.ba__hint{ text-align:center; margin-top:18px; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); }

/* =====================================================
   CTA-band
   ===================================================== */
.cta{ position:relative; overflow:hidden; padding:clamp(64px,7vw,96px) 0; background:var(--bg-2); }
.cta__bg{ position:absolute; inset:0; }
.cta__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; opacity:.42; }
.cta__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(7,8,10,.95) 12%, rgba(7,8,10,.62) 55%, rgba(7,8,10,.85) 100%);
}
.cta__inner{
  position:relative; z-index:1;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:32px;
}
.cta__inner .h2{ margin-bottom:12px; max-width:16ch; }
.cta__sub{ margin:0; color:#c4bfb7; max-width:44ch; }
.cta__actions{ display:flex; flex-wrap:wrap; gap:13px; }

/* =====================================================
   7. OMDÖMEN
   ===================================================== */
.omdomen{ background:var(--bg-2); }
.rating{ display:inline-flex; align-items:center; gap:8px; color:var(--text); font-weight:600; }
.rating__stars{ color:var(--gold); letter-spacing:.12em; }
.rating__empty{ color:rgba(207,167,95,.28); }
.omdomen .sechead__sub a,
.resultat .sechead__sub a{ color:var(--gold-light); border-bottom:1px solid rgba(207,167,95,.4); }
.omdomen .sechead__sub a:hover,
.resultat .sechead__sub a:hover{ border-color:var(--gold); }
.omdomen__more{ display:flex; justify-content:center; margin:28px 0 0; }

.quotes{ max-width:860px; margin-inline:auto; }
.quotes__viewport{ overflow:hidden; }
.quotes__track{
  display:flex; transition:transform .6s var(--ease);
}
.quote{
  flex:0 0 100%; padding:0 6px; text-align:center;
}
.quote__stars{ color:var(--gold); letter-spacing:.3em; font-size:1.05rem; margin-bottom:20px; }
.quote blockquote{
  margin:0 0 22px; font-family:var(--f-display); font-weight:400;
  font-size:clamp(1.25rem,2.7vw,1.85rem); line-height:1.45; color:#e6e2db;
}
.quote blockquote::before{ content:"”"; color:var(--gold); margin-right:2px; }
.quote blockquote::after{ content:"”"; color:var(--gold); margin-left:2px; }
.quote__by{ margin:0; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.quote__by span{ color:var(--muted-2); letter-spacing:.08em; text-transform:none; }

.quotes__nav{ display:flex; align-items:center; justify-content:center; gap:22px; margin-top:38px; }
.quotes__arrow{
  width:46px; height:46px; border-radius:50%; cursor:pointer;
  border:1px solid var(--line-strong); background:var(--glass); color:var(--text);
  display:grid; place-items:center;
  transition:background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.quotes__arrow:hover{ background:rgba(207,167,95,.16); border-color:var(--gold); color:var(--gold-light); transform:scale(1.06); }
.quotes__arrow svg{ width:20px; height:20px; }
.quotes__dots{ display:flex; gap:9px; }
.quotes__dots button{
  width:9px; height:9px; padding:0; border-radius:50%; cursor:pointer;
  border:0; background:rgba(255,255,255,.2); transition:all .35s var(--ease);
}
.quotes__dots button.is-active{ width:28px; border-radius:999px; background:var(--gold-grad); }

/* =====================================================
   8. KONTAKT
   ===================================================== */
.kontakt{ background:var(--bg); }
.kontakt__grid{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:22px;
  grid-template-areas:"info form" "map map";
}
.kontakt__info{ grid-area:info; display:flex; flex-direction:column; gap:14px; }
.kontakt__form{ grid-area:form; }
.kontakt__map{ grid-area:map; }

.infocard{
  padding:24px 26px; border:1px solid var(--line); border-radius:var(--r);
  background:var(--glass); backdrop-filter:blur(12px);
  transition:border-color .35s var(--ease), background .35s var(--ease);
}
.infocard:hover{ border-color:rgba(207,167,95,.35); background:var(--glass-2); }
.infocard h3{
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); font-family:var(--f-body); font-weight:600; margin-bottom:10px;
}
.infocard p{ margin:0; color:#d3cfc8; line-height:1.7; }
.infocard a:hover{ color:var(--gold-light); }
.hours{ width:100%; border-collapse:collapse; font-size:.95rem; }
.hours th{ text-align:left; font-weight:500; color:var(--muted); padding:3px 0; }
.hours td{ text-align:right; color:#d3cfc8; padding:3px 0; }

.kontakt__form{
  padding:clamp(26px,3.5vw,38px);
  border:1px solid var(--line); border-radius:var(--r-lg);
  background:linear-gradient(170deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  backdrop-filter:blur(14px);
}
.field{ margin-bottom:18px; }
.field label{
  display:block; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin-bottom:8px; font-weight:600;
}
.field input, .field textarea{
  width:100%; padding:14px 16px; font:inherit; font-size:.95rem; color:var(--text);
  background:rgba(0,0,0,.28); border:1px solid var(--line); border-radius:var(--r-sm);
  transition:border-color .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
  resize:vertical;
}
.field input::placeholder, .field textarea::placeholder{ color:var(--muted-2); }
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--gold);
  background:rgba(0,0,0,.4); box-shadow:0 0 0 3px rgba(207,167,95,.14);
}
.field input:user-invalid, .field textarea:user-invalid{ border-color:#a5533f; }
.form__note{ margin:14px 0 0; font-size:.78rem; color:var(--muted-2); text-align:center; }
.form__note.is-ok{ color:var(--gold-light); }

.kontakt__map{
  overflow:hidden; border-radius:var(--r-lg); border:1px solid var(--line);
  height:340px; box-shadow:var(--shadow);
}
.kontakt__map iframe{
  width:100%; height:100%; border:0;
  filter:grayscale(1) invert(.92) contrast(.86) brightness(.95) hue-rotate(180deg);
  transition:filter .5s var(--ease);
}
.kontakt__map:hover iframe{ filter:grayscale(.5) invert(.9) contrast(.9) brightness(1) hue-rotate(180deg); }

/* =====================================================
   9. FOOTER
   ===================================================== */
.footer{
  background:var(--bg-2); border-top:1px solid var(--line);
  padding-top:clamp(56px,7vw,84px);
}
.footer__grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
  padding-bottom:clamp(40px,5vw,58px);
}
.footer__brand img{ height:86px; width:auto; margin-bottom:18px; }
.footer__brand p{ color:var(--muted); max-width:26ch; margin:0; font-size:.94rem; }
.social{
  display:inline-flex; align-items:center; gap:9px; margin-top:18px;
  padding:9px 16px 9px 12px; border-radius:999px;
  border:1px solid var(--line); background:var(--glass);
  font-size:.84rem; color:var(--muted);
  transition:border-color .3s var(--ease), color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease);
}
.social svg{ width:19px; height:19px; }
.social:hover{ color:var(--gold-light); border-color:rgba(207,167,95,.45); background:var(--glass-2); transform:translateY(-2px); }
.social--inline{ margin-top:0; }

.footer__col h3{
  font-family:var(--f-body); font-size:.72rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:16px;
}
.footer__col ul{ display:grid; gap:10px; font-size:.94rem; color:var(--muted); }
.footer__col a:hover{ color:var(--gold-light); }
.footer__cta{ --btn-y:11px; --btn-x:22px; margin-top:20px; }

.footer__bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px;
  border-top:1px solid var(--line); padding:22px 0 26px;
  font-size:.8rem; color:var(--muted-2);
}
.footer__bottom p{ margin:0; }

/* ---------- To top ---------- */
.totop{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:48px; height:48px; border-radius:50%; display:grid; place-items:center;
  background:var(--gold-grad); color:#14100a;
  box-shadow:0 12px 30px rgba(0,0,0,.5);
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:all .4s var(--ease);
}
.totop.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.totop:hover{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(207,167,95,.4); }
.totop svg{ width:21px; height:21px; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .85s var(--ease), transform .85s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* =====================================================
   RESPONSIVT
   ===================================================== */
@media (max-width:1080px){
  .footer__grid{ grid-template-columns:1fr 1fr; gap:34px; }
}

@media (max-width:940px){
  :root{ --nav-h:74px; }

  .nav__toggle{ display:flex; }
  .nav__links{
    position:fixed; inset:var(--nav-h) 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:rgba(8,9,11,.96);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid var(--line);
    padding:14px 22px 26px;
    max-height:0; overflow:hidden; opacity:0; visibility:hidden;
    transition:max-height .5s var(--ease), opacity .35s var(--ease), visibility .35s;
  }
  .nav__links.is-open{ max-height:80vh; opacity:1; visibility:visible; overflow-y:auto; }
  .nav__links a:not(.btn){
    padding:16px 2px; border-bottom:1px solid var(--line);
    font-size:.95rem; letter-spacing:.12em;
  }
  .nav__links a:not(.btn)::after{ display:none; }
  .nav__cta{ margin:20px 0 0; }
  .nav.is-stuck .nav__inner{ height:var(--nav-h); }

  .hero{ min-height:92svh; }
  .hero__content{ margin-left:auto; margin-right:auto; }
  .hero__scroll{ display:none; }

  .om__grid{ grid-template-columns:1fr; }
  .om__media{ max-width:520px; margin-inline:auto; }
  .om__badge{ left:-10px; width:78px; height:78px; }
  .stats{ grid-template-columns:repeat(2,1fr); }

  .kontakt__grid{ grid-template-columns:1fr; grid-template-areas:"form" "info" "map"; }
}

@media (max-width:620px){
  .wrap{ width:calc(100% - 34px); }
  body{ font-size:16px; }
  .section{ padding:70px 0; }

  .hero__eyebrow{ font-size:.62rem; letter-spacing:.18em; padding:8px 15px; }
  .hero__cta .btn{ width:100%; }
  .hero__trust{ gap:9px 20px; font-size:.75rem; }

  .tabs{ width:100%; left:0; transform:none; }
  .tab{ flex:1; padding:12px 8px; font-size:.7rem; letter-spacing:.08em; }

  .cards{ grid-template-columns:1fr; }
  .card{ padding:28px 22px 24px; }

  .stats{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .gallery figure:nth-child(1), .gallery figure:nth-child(6){ grid-column:span 2; }

  .ba__frame{ aspect-ratio:4/3; }
  .ba__knob{ width:48px; height:48px; }
  .ba__label{ top:12px; font-size:.6rem; padding:6px 12px; }
  .ba__label--before{ left:12px; } .ba__label--after{ right:12px; }

  .cta__actions{ width:100%; }
  .cta__actions .btn{ flex:1 1 100%; }
  .footer__grid{ grid-template-columns:1fr; }
  .footer__bottom{ justify-content:center; text-align:center; }
  .totop{ right:16px; bottom:16px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .reveal{ opacity:1; transform:none; }
  .hero__media img{ animation:none; transform:scale(1.05); }
}

/* ---------- Print ---------- */
@media print{
  .nav,.totop,.hero__scroll,.kontakt__map,.quotes__nav{ display:none !important; }
  body{ background:#fff; color:#000; }
  .reveal{ opacity:1; transform:none; }
}
