/* =========================================================
   NOVIA – KONSULT SOCIONOM
   Aesthetic: Nordic editorial luxury for healthcare staffing.
   Forest green base, gold accents, generous editorial space.
   Type: Fraunces (variable display) / Outfit (body) / JetBrains Mono (numerics).
   ========================================================= */

/* ---------- Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:clamp(96px,12vh,120px)}
body{font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;font-feature-settings:"ss01","cv11","kern"}
img,svg,video{display:block;max-width:100%}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
a{color:inherit;text-decoration:none;transition:color .25s ease}
::selection{background:var(--gold-500);color:var(--green-950)}
:focus-visible{outline:2px solid var(--gold-500);outline-offset:3px;border-radius:1px}

/* ---------- Tokens ---------- */
:root{
  /* Greens */
  --green-1000:#04190F;
  --green-950:#06231A;
  --green-900:#0B2E1F;
  --green-850:#0F3526;
  --green-800:#133C2A;
  --green-700:#1F4A38;
  --green-600:#2D5C44;
  --green-500:#3F7458;
  --green-400:#5A9077;
  --green-300:#87B5A0;
  /* Golds */
  --gold-700:#957938;
  --gold-600:#B0904F;
  --gold-500:#C9A86B;
  --gold-400:#D4B984;
  --gold-300:#E8D5A8;
  --gold-200:#F2E5C5;
  --gold-100:#FAF3E1;
  /* Neutrals */
  --cream:#FAF6EE;
  --cream-2:#F4ECDB;
  --cream-3:#EDE3CE;
  --paper:#FCFAF4;
  --ink:#15211B;
  --ink-2:#4A544F;
  --ink-3:#6F7A74;
  --line:rgba(11,46,31,.1);
  --line-gold:rgba(201,168,107,.28);
  /* Type */
  --serif:'Cormorant Garamond','EB Garamond',Georgia,serif;
  --sans:'Outfit',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  /* Sizing */
  --gutter:clamp(20px,5vw,72px);
  --maxw:1280px;
  --section-pad:clamp(90px,12vw,160px);
  /* Easing */
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-in-out:cubic-bezier(.65,.05,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}

/* ---------- Grain & atmospheric overlay ---------- */
.grain{
  pointer-events:none;position:fixed;inset:0;z-index:1;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/></svg>");
  background-size:240px 240px;
}

/* ---------- Container ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);position:relative}

/* ---------- Typography ---------- */
.serif{font-family:var(--serif)}
.italic{font-style:italic;font-weight:500}
.mono{font-family:var(--mono);font-feature-settings:"tnum","ss01"}
h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:500;color:var(--green-900);text-wrap:balance;font-feature-settings:"dlig","liga","ss01"}
h1{font-size:clamp(48px,8.4vw,116px);line-height:.98;letter-spacing:-.022em;font-weight:500}
h2{font-size:clamp(36px,5.4vw,72px);line-height:1.02;letter-spacing:-.018em;font-weight:500}
h3{font-size:clamp(22px,2.5vw,32px);line-height:1.18;letter-spacing:-.012em;font-weight:500}
h4{font-size:21px;line-height:1.3;letter-spacing:-.008em;font-weight:500}
p{color:var(--ink-2);text-wrap:pretty}

.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--sans);font-weight:500;font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-600)}
.eyebrow::before,.eyebrow::after{content:"";height:1px;width:28px;background:currentColor;opacity:.55}
.eyebrow.solo::after{display:none}
.eyebrow.solo::before{margin-right:0}
.eyebrow.light{color:var(--gold-300)}
.eyebrow.light::before,.eyebrow.light::after{background:var(--gold-400);opacity:.55}

.lead{font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--ink-2);max-width:54ch;font-weight:400}

.section-mark{
  width:14px;height:14px;color:var(--gold-500);opacity:.55;
  flex:none;
  transition:transform .8s var(--ease-out),opacity .6s ease;
}
.reveal.is-in .section-mark{animation:markFloat 6s ease-in-out infinite}
@keyframes markFloat{
  0%,100%{transform:rotate(0deg) scale(1)}
  50%{transform:rotate(180deg) scale(1.08)}
}

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--gold-500);--fg:var(--green-950);--bd:var(--gold-500);
  position:relative;display:inline-flex;align-items:center;gap:12px;
  padding:17px 30px;border-radius:2px;
  font-weight:500;font-size:14px;letter-spacing:.02em;
  background:var(--bg);color:var(--fg);border:1.5px solid var(--bd);
  transition:transform .35s var(--ease-out),background .3s ease,color .3s ease,box-shadow .3s ease,border-color .3s ease;
  white-space:nowrap;overflow:hidden;isolation:isolate;
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(135deg,var(--gold-300) 0%,var(--gold-500) 50%,var(--gold-400) 100%);
  opacity:0;transition:opacity .35s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 40px -16px rgba(201,168,107,.55)}
.btn:hover::before{opacity:1}
.btn .arrow{display:inline-block;transition:transform .35s var(--ease-spring)}
.btn:hover .arrow{transform:translateX(5px)}

.btn--ghost{--bg:transparent;--fg:var(--gold-300);--bd:rgba(201,168,107,.45)}
.btn--ghost:hover{--bg:var(--gold-500);--fg:var(--green-950);--bd:var(--gold-500)}
.btn--ghost-dark{--bg:transparent;--fg:var(--green-900);--bd:rgba(11,46,31,.25)}
.btn--ghost-dark:hover{--bg:var(--green-900);--fg:var(--gold-300);--bd:var(--green-900)}
.btn--dark{--bg:var(--green-900);--fg:var(--gold-300);--bd:var(--green-900)}
.btn--dark:hover{--bg:var(--green-800);--fg:var(--gold-400);--bd:var(--green-800)}

/* ---------- Cursor: standard (custom cursor removed) ---------- */
.cursor{display:none !important}

/* ---------- Scroll progress ---------- */
.scrollprog{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}
.scrollprog__bar{height:100%;width:0;background:linear-gradient(90deg,var(--gold-500),var(--gold-300));transition:width .1s linear}

/* ---------- Page intro curtain ---------- */
.intro{position:fixed;inset:0;z-index:200;background:var(--green-950);display:grid;place-items:center;transition:transform 1s var(--ease-in-out) .3s,opacity .6s ease 1.1s;pointer-events:none}
.intro.is-done{transform:translateY(-100%);opacity:0}
.intro__mark{width:96px;height:auto;animation:introPulse 1.4s ease infinite alternate;filter:drop-shadow(0 12px 36px rgba(201,168,107,.25))}
@keyframes introPulse{from{opacity:.5;transform:scale(.96)}to{opacity:1;transform:scale(1.02)}}

/* =========================================================
   Header
   ========================================================= */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;padding:18px 0;transition:background .4s ease,backdrop-filter .4s ease,border-color .4s ease,padding .4s ease}
.hdr.is-scrolled{padding:14px 0;background:rgba(6,35,26,.78);backdrop-filter:saturate(140%) blur(18px);-webkit-backdrop-filter:saturate(140%) blur(18px);border-bottom:1px solid rgba(201,168,107,.16)}
/* Subpages without a hero: lock header into scrolled-state styling so gold text stays legible on cream sections. */
body:not(:has(.hero)) .hdr{padding:14px 0;background:rgba(6,35,26,.92);backdrop-filter:saturate(140%) blur(18px);-webkit-backdrop-filter:saturate(140%) blur(18px);border-bottom:1px solid rgba(201,168,107,.16)}
.hdr__inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hdr__nav{display:flex;align-items:center;gap:36px}
.hdr__nav a{font-size:13.5px;font-weight:400;color:var(--gold-300);position:relative;padding:6px 0}
.hdr__nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold-400);transition:width .35s var(--ease-out)}
.hdr__nav a:hover{color:var(--gold-400)}
.hdr__nav a:hover::after{width:100%}
/* Active page */
.hdr__nav a.is-active{color:var(--gold-400)}
.hdr__nav a.is-active::after{width:100%;opacity:.9}
.hdr__cta{padding:11px 22px;font-size:13px}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid rgba(201,168,107,.3);border-radius:2px;color:var(--gold-300);place-items:center;background:rgba(6,35,26,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .25s ease,border-color .25s ease}
.menu-toggle:hover{background:rgba(6,35,26,.75);border-color:var(--gold-500)}

/* Mobile menu overlay */
.menu-overlay{
  position:fixed;inset:0;z-index:55;background:var(--green-1000);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out);
  padding:80px 32px 40px;
}
.menu-overlay.is-open{opacity:1;pointer-events:auto}
.menu-overlay::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(circle at 1px 1px,rgba(201,168,107,.06) 1px,transparent 0);
  background-size:36px 36px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);
}
.menu-overlay__close{position:absolute;top:24px;right:24px;width:44px;height:44px;border:1px solid rgba(201,168,107,.3);border-radius:2px;color:var(--gold-300);display:grid;place-items:center;font-size:24px;line-height:1}
.menu-overlay__close:hover{border-color:var(--gold-500);color:var(--gold-400)}
.menu-overlay a{
  font-family:var(--serif);font-size:clamp(34px,7vw,52px);font-weight:500;
  color:var(--gold-300);letter-spacing:-.02em;line-height:1.05;
  position:relative;padding:8px 0;transition:color .25s ease,transform .35s var(--ease-out);
  opacity:0;transform:translateY(20px);
}
.menu-overlay.is-open a{opacity:1;transform:translateY(0)}
.menu-overlay.is-open a:nth-child(1){transition-delay:.1s}
.menu-overlay.is-open a:nth-child(2){transition-delay:.16s}
.menu-overlay.is-open a:nth-child(3){transition-delay:.22s}
.menu-overlay.is-open a:nth-child(4){transition-delay:.28s}
.menu-overlay.is-open a:nth-child(5){transition-delay:.34s}
.menu-overlay.is-open a:nth-child(6){transition-delay:.4s}
.menu-overlay a:hover{color:var(--gold-400)}
.menu-overlay a.is-active{color:var(--gold-400)}
.menu-overlay a.is-active .num{color:var(--gold-400)}
.menu-overlay a .num{font-family:var(--mono);font-size:12px;color:var(--gold-600);margin-right:14px;vertical-align:.5em;letter-spacing:.1em}
.menu-overlay__cta{margin-top:32px;background:var(--gold-500);color:var(--green-950);padding:16px 28px;font-family:var(--sans)!important;font-size:14px!important;font-weight:500!important;letter-spacing:.04em;border-radius:2px;display:inline-flex;align-items:center;gap:12px}
.menu-overlay__cta:hover{background:var(--gold-400)!important;color:var(--green-950)!important}
.menu-overlay__sig{position:absolute;bottom:32px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:11px;color:var(--gold-500);letter-spacing:.22em;text-transform:uppercase;opacity:.6}

/* Logo */
.logo{display:flex;align-items:center;gap:14px;color:var(--gold-400)}
.logo__mark{width:52px;height:auto;flex:none;object-fit:contain}
.logo__full{width:auto;height:68px;flex:none;object-fit:contain;display:block}
.footer .logo__full{height:150px}
@media (max-width:720px){.logo__full{height:54px}.footer .logo__full{height:120px}}
.logo__txt{display:flex;flex-direction:column;line-height:1}
.logo__name{font-family:var(--serif);font-size:25px;font-weight:500;color:var(--gold-400);letter-spacing:.005em;}
.logo__sub{font-family:var(--sans);font-size:9px;letter-spacing:.34em;color:var(--gold-500);opacity:.8;margin-top:5px;text-transform:uppercase}

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative;color:var(--cream);overflow:hidden;isolation:isolate;
  padding:170px 0 130px;
  background:
    radial-gradient(ellipse 70% 55% at 78% 20%, rgba(201,168,107,.18), transparent 60%),
    radial-gradient(ellipse 60% 70% at 8% 90%, rgba(63,116,88,.32), transparent 65%),
    radial-gradient(ellipse 100% 100% at 50% 110%, rgba(11,46,31,.6), transparent 70%),
    linear-gradient(180deg, var(--green-1000) 0%, var(--green-950) 50%, var(--green-900) 100%);
}
/* Hero atmospheric grid */
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background-image:radial-gradient(circle at 1px 1px, rgba(201,168,107,.07) 1px, transparent 0);
  background-size:36px 36px;
  mask-image:linear-gradient(180deg,black,transparent 85%);
  -webkit-mask-image:linear-gradient(180deg,black,transparent 85%);
}
/* Floating ornaments */
.hero__orn{position:absolute;color:var(--gold-500);opacity:.3;animation:floatY 8s ease-in-out infinite alternate}
.hero__orn--a{top:18%;left:48%;width:18px;height:18px;animation-delay:.4s}
.hero__orn--b{top:35%;right:8%;width:12px;height:12px;animation-delay:1.2s}
.hero__orn--c{bottom:20%;left:42%;width:10px;height:10px;animation-delay:.8s;opacity:.2}
@keyframes floatY{from{transform:translateY(0) rotate(0)}to{transform:translateY(-12px) rotate(8deg)}}

.hero__head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:90px;flex-wrap:wrap}
.hero__crumbs{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--gold-300);text-transform:uppercase;opacity:.85}
.hero__crumbs .sep{opacity:.45}

.hero__grid{display:grid;grid-template-columns:1.18fr .82fr;gap:90px;align-items:center}
.hero__copy{position:relative}
.hero__title{display:block;color:var(--cream);line-height:1.05}
/* Cormorant Garamond has deep descenders that get clipped by overflow:hidden
   (which masks the word-reveal animation). Pad inside the line for descender room,
   then pull subsequent lines up with negative margin to preserve the tight stacked
   rhythm between "Jobba flexibelt." and "Trygghet i ryggen.". */
.hero__title .ln{display:block;overflow:hidden;padding-bottom:.28em;margin-bottom:-.22em}
.hero__title .ln:last-child{margin-bottom:0}
.hero__title .ln > span{display:inline-block;will-change:transform,opacity}
.hero__title .accent{color:var(--gold-400);font-style:italic;}

.hero__lead{margin:36px 0 84px;color:var(--cream);max-width:46ch;font-size:19px;line-height:1.62}

.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px}

.hero__meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:34px;border-top:1px solid rgba(201,168,107,.18);max-width:580px}
.hero__meta-item{display:flex;flex-direction:column;gap:4px}
.hero__meta-num{font-family:var(--serif);font-size:38px;font-weight:500;color:var(--gold-400);line-height:1}
.hero__meta-num .unit{font-family:var(--sans);font-size:14px;color:var(--gold-300);font-weight:400;margin-left:2px}
.hero__meta-lbl{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-300);opacity:.75}

/* Hero visual – editorial composition */
.hero__visual{position:relative;aspect-ratio:4/5;width:100%}
.hero__card{
  position:absolute;inset:0;border-radius:3px;overflow:hidden;
  background:linear-gradient(135deg, #2d5c44 0%, #1F4A38 40%, #0B2E1F 100%);
  box-shadow:0 60px 100px -40px rgba(0,0,0,.6),inset 0 0 0 1px rgba(201,168,107,.2);
  isolation:isolate;
}
.hero__card-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:contrast(1.04) saturate(.78) brightness(.88);
  transform:scale(1.02);transition:transform 1.4s var(--ease-out);
}
.hero:hover .hero__card-img{transform:scale(1.06)}
.hero__card-tint{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 75% 25%, rgba(201,168,107,.32), transparent 55%),
    linear-gradient(160deg, rgba(15,53,38,.32) 0%, rgba(11,46,31,.55) 60%, rgba(6,35,26,.78) 100%);
  mix-blend-mode:normal;
}
.hero__card-grain{position:absolute;inset:0;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.hero__card-mark{
  position:absolute;top:50%;right:32px;transform:translateY(-50%);
  width:140px;height:auto;opacity:.22;
  pointer-events:none;
}

.hero__badge{
  position:absolute;left:-36px;bottom:50px;
  background:var(--cream);color:var(--green-900);
  padding:24px 26px;border-radius:3px;
  box-shadow:0 30px 60px -22px rgba(0,0,0,.5),0 0 0 1px rgba(201,168,107,.3);
  display:flex;align-items:center;gap:18px;max-width:300px;
  transform:translateZ(0);
}
.hero__badge-icon{width:48px;height:48px;flex:none;border-radius:50%;background:var(--green-900);color:var(--gold-400);display:grid;place-items:center}
.hero__badge-text strong{display:block;font-family:var(--serif);font-size:19px;line-height:1.15;color:var(--green-900);margin-bottom:4px;font-weight:500;}
.hero__badge-text span{font-size:12.5px;color:var(--ink-3);line-height:1.4}

/* Scroll cue */
.hero__scroll{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--gold-300);font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;opacity:.7}
.hero__scroll .line{width:1px;height:32px;background:linear-gradient(180deg,transparent,var(--gold-500));position:relative;overflow:hidden}
.hero__scroll .line::after{content:"";position:absolute;top:-32px;left:0;width:100%;height:32px;background:var(--gold-300);animation:scrollCue 1.8s ease-in-out infinite}
@keyframes scrollCue{0%{top:-32px}50%{top:32px}100%{top:32px}}

/* =========================================================
   Marquee – trust signals
   ========================================================= */
.marquee{
  background:var(--green-900);color:var(--gold-300);
  border-block:1px solid rgba(201,168,107,.16);
  padding:24px 0;overflow:hidden;position:relative;
}
.marquee__track{display:flex;gap:48px;width:max-content;animation:marquee 38s linear infinite}
.marquee__item{display:inline-flex;align-items:center;gap:20px;font-family:var(--serif);font-size:26px;font-style:italic;color:var(--gold-300);white-space:nowrap;font-weight:500;letter-spacing:.005em}
.marquee__star{width:14px;height:14px;color:var(--gold-500);flex:none}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee:hover .marquee__track{animation-play-state:paused}

/* =========================================================
   Interlude – full-bleed atmospheric
   ========================================================= */
.interlude{
  position:relative;min-height:75vh;display:grid;align-items:center;
  overflow:hidden;color:var(--cream);padding:160px 0;isolation:isolate;
  background:linear-gradient(135deg,var(--green-900),var(--green-1000));
}
.interlude__bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:-2;filter:contrast(1.03) saturate(.7) brightness(.85);
  transform:scale(1.04);
}
.interlude__overlay{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(11,46,31,.55) 0%,rgba(4,25,15,.92) 80%),
    linear-gradient(180deg,rgba(6,35,26,.6) 0%,rgba(6,35,26,.78) 100%);
}
.interlude__grain{
  position:absolute;inset:0;z-index:-1;opacity:.08;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.interlude__inner{position:relative;text-align:center;max-width:840px;margin:0 auto}
.interlude__quote{
  font-family:var(--serif);font-size:clamp(36px,5.4vw,72px);
  line-height:1.05;color:var(--cream);font-weight:500;
  letter-spacing:-.02em;margin:28px 0 32px;text-wrap:balance;
}
.interlude__quote .italic{color:var(--gold-300);font-style:italic;font-weight:500}
.interlude__quote .mark{color:var(--gold-400);font-style:italic;display:inline-block;font-size:1.2em;line-height:0;vertical-align:-.18em;margin-right:.05em;font-weight:400}
.interlude p{color:rgba(250,246,238,.8);font-size:clamp(16px,1.4vw,19px);max-width:54ch;margin:0 auto;line-height:1.6}
.interlude__sig{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;
  color:var(--gold-400);text-transform:uppercase;margin-top:48px;display:inline-flex;
  align-items:center;gap:14px;opacity:.85;
}
.interlude__sig::before,.interlude__sig::after{content:"";height:1px;width:40px;background:currentColor;opacity:.5}
.interlude__corners{position:absolute;inset:24px;pointer-events:none;z-index:1}
.interlude__corner{position:absolute;width:48px;height:48px;color:var(--gold-400);opacity:.5}
.interlude__corner--tl{top:0;left:0;border-top:1px solid;border-left:1px solid}
.interlude__corner--tr{top:0;right:0;border-top:1px solid;border-right:1px solid}
.interlude__corner--bl{bottom:0;left:0;border-bottom:1px solid;border-left:1px solid}
.interlude__corner--br{bottom:0;right:0;border-bottom:1px solid;border-right:1px solid}

/* =========================================================
   Sections base
   ========================================================= */
.section{padding-block:var(--section-pad);position:relative}
.section--cream{background:var(--cream)}
.section--paper{background:var(--paper)}
.section--green{background:var(--green-900);color:var(--cream)}
.section--green-deep{background:radial-gradient(ellipse at 50% 0%,rgba(201,168,107,.1),transparent 65%),var(--green-950);color:var(--cream)}
.section--green h2,.section--green-deep h2{color:var(--cream)}
.section--green p,.section--green-deep p{color:rgba(250,246,238,.78)}

.section__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px;margin-bottom:90px;max-width:780px;margin-inline:auto}
.section__head h2{max-width:18ch}
.section__head p{max-width:60ch}
.section__head .section-mark{margin-bottom:-12px}

/* Left-aligned heads: kill orphan left hairline, strengthen the right one
   so it leads the eye into the adjacent content column. */
.section__head--left .eyebrow::before,
.assignments__intro .eyebrow::before,
.faq__intro .eyebrow::before,
.support__copy .eyebrow::before{display:none}
.section__head--left .eyebrow::after,
.assignments__intro .eyebrow::after,
.faq__intro .eyebrow::after,
.support__copy .eyebrow::after{width:44px;opacity:.7}
/* Star sits closer to the eyebrow on left-aligned heads. */
.assignments__intro .section-mark,
.faq__intro .section-mark,
.support__copy .section-mark{margin-bottom:-4px}

.section__head--left{align-items:flex-start;text-align:left;margin-inline:0}

/* Divider */
.divider{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold-500)}
.divider .ln{height:1px;width:60px;background:currentColor;opacity:.5}
.divider .star{width:14px;height:14px;color:currentColor}

/* =========================================================
   Why us – magazine grid
   ========================================================= */
.why{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.why-card{
  position:relative;overflow:hidden;
  grid-column:span 4;
  background:var(--white,#fff);
  border:1px solid var(--line);
  padding:42px 36px 38px;border-radius:3px;
  transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color .45s ease;
}
.why-card:hover{transform:translateY(-6px);box-shadow:0 30px 70px -32px rgba(11,46,31,.22);border-color:var(--line-gold)}
.why-card__top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:36px}
.why-card__num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--gold-600);text-transform:uppercase}
.why-card__icon{width:46px;height:46px;border-radius:50%;background:var(--cream-2);color:var(--green-800);display:grid;place-items:center;border:1px solid var(--line-gold)}
.why-card h3{margin-bottom:14px;color:var(--green-900)}
.why-card p{font-size:15.5px;line-height:1.6}
.why-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:linear-gradient(90deg,var(--gold-500),transparent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.why-card:hover::after{transform:scaleX(1)}

.why-card--feature{
  grid-column:span 8;grid-row:span 2;
  background:var(--green-900);color:var(--cream);border-color:transparent;
  padding:48px 44px;display:flex;flex-direction:column;justify-content:space-between;
  position:relative;
}
.why-card--feature::before{
  content:"";position:absolute;inset:0;opacity:.18;
  background:radial-gradient(ellipse at 80% 20%,rgba(201,168,107,.5),transparent 55%);
}
.why-card--feature h3{color:var(--cream);font-size:clamp(28px,3vw,40px);max-width:14ch;line-height:1.05;font-weight:500}
.why-card--feature p{color:rgba(250,246,238,.78);max-width:46ch;font-size:16.5px}
.why-card--feature .why-card__icon{background:rgba(201,168,107,.15);color:var(--gold-400);border-color:rgba(201,168,107,.35)}
.why-card--feature .why-card__num{color:var(--gold-400)}
.why-card--feature:hover{transform:translateY(-6px);box-shadow:0 50px 90px -40px rgba(0,0,0,.6)}
.why-card--feature .feature-art{position:absolute;right:-30px;bottom:-30px;width:240px;height:240px;color:var(--gold-500);opacity:.18;pointer-events:none}

/* =========================================================
   By-the-numbers
   ========================================================= */
.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.number{padding:64px 32px;border-right:1px solid var(--line);position:relative;transition:background .35s ease}
.number:last-child{border-right:0}
.number:hover{background:var(--cream)}
.number__big{font-family:var(--serif);font-size:clamp(64px,9vw,128px);line-height:.9;color:var(--green-900);font-weight:400;letter-spacing:-.04em;display:block;margin-bottom:18px}
.number__big .unit{color:var(--gold-600);font-size:.4em;margin-left:4px;font-style:italic}
.number__lbl{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--gold-600);text-transform:uppercase;margin-bottom:10px;display:block}
.number__txt{font-size:14.5px;color:var(--ink-2);line-height:1.55;max-width:24ch}

/* =========================================================
   Assignments
   ========================================================= */
.assignments{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:start}
.assignments__intro p{margin-top:24px}

.assignments__list{list-style:none}
.assignments__list li{
  display:flex;align-items:center;gap:24px;
  padding:30px 4px;border-bottom:1px solid var(--line);
  transition:padding .35s var(--ease-out),background .35s ease;
  cursor:default;position:relative;overflow:hidden;
}
.assignments__list li:first-child{border-top:1px solid var(--line)}
.assignments__list li::before{
  content:"";position:absolute;left:-100%;top:0;height:100%;width:100%;
  background:linear-gradient(90deg,transparent,rgba(201,168,107,.08),transparent);
  transition:left .8s var(--ease-out);
}
.assignments__list li:hover{padding-inline:18px}
.assignments__list li:hover::before{left:100%}
.assignments__list .num{font-family:var(--mono);font-size:12px;color:var(--gold-600);width:36px;flex:none;letter-spacing:.1em}
.assignments__list .name{font-family:var(--serif);font-size:clamp(22px,2.4vw,32px);font-weight:500;color:var(--green-900);flex:1;letter-spacing:-.02em;line-height:1.1;}
.assignments__list .meta{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;opacity:.7;transition:opacity .35s ease}
.assignments__list li:hover .meta{opacity:1;color:var(--gold-600)}
.assignments__list .arrow{color:var(--gold-500);transform:translateX(-8px);opacity:0;transition:all .35s var(--ease-spring);flex:none}
.assignments__list li:hover .arrow{opacity:1;transform:translateX(0)}

/* =========================================================
   Steps – connected nodes
   ========================================================= */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;position:relative}
.steps::before{content:"";position:absolute;top:38px;left:60px;right:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500) 10%,var(--gold-500) 90%,transparent);opacity:.35}
.step{position:relative;padding-top:8px}
.step__num{position:relative;width:76px;height:76px;border-radius:50%;border:1px solid rgba(201,168,107,.45);background:var(--green-1000);color:var(--gold-400);display:grid;place-items:center;margin-bottom:32px;font-family:var(--serif);font-size:30px;font-weight:500;z-index:1}
.step__num::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(201,168,107,.18)}
.step__num::before{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dashed rgba(201,168,107,.1)}
.step h3{color:var(--cream);margin-bottom:12px;font-size:22px;font-weight:500}
.step p{font-size:15px;line-height:1.6}
.step__time{font-family:var(--mono);font-size:10.5px;color:var(--gold-400);letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px;display:block;opacity:.75}

/* =========================================================
   Personal support
   ========================================================= */
.support{display:grid;grid-template-columns:1.05fr 1fr;gap:90px;align-items:center}
.support__visual{
  position:relative;aspect-ratio:5/6;border-radius:3px;overflow:hidden;
  background:linear-gradient(135deg,var(--green-700) 0%,var(--green-900) 100%);
  box-shadow:0 50px 90px -40px rgba(11,46,31,.35),inset 0 0 0 1px rgba(255,255,255,.08);
  isolation:isolate;
}
.support__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:contrast(1.04) saturate(.78) brightness(.9);
  transform:scale(1.02);transition:transform 1.4s var(--ease-out);
}
.support__visual:hover .support__img{transform:scale(1.06)}
.support__visual-tint{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 25% 30%, rgba(201,168,107,.22), transparent 55%),
    linear-gradient(165deg, rgba(15,53,38,.55) 0%, rgba(11,46,31,.78) 70%, rgba(6,35,26,.92) 100%);
  mix-blend-mode:multiply;
}
.support__visual-grain{position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.support__quote{position:absolute;bottom:0;left:0;right:0;padding:36px 36px 38px;background:linear-gradient(180deg,transparent,rgba(11,46,31,.85));color:var(--cream)}
.support__quote .q{font-family:var(--serif);font-size:clamp(20px,1.8vw,26px);line-height:1.32;font-style:italic;color:var(--cream);margin-bottom:20px;text-wrap:balance;max-width:32ch}
.support__quote .who{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--gold-300);letter-spacing:.04em}
.support__quote .who::before{content:"";width:24px;height:1px;background:var(--gold-400)}

.support__art{position:absolute;top:32px;right:32px;width:60px;height:60px;color:var(--green-900);opacity:.4}

.support__points{margin-top:42px;display:flex;flex-direction:column;gap:22px}
.support__point{display:flex;gap:18px;align-items:flex-start}
.support__point .check{flex:none;width:30px;height:30px;border-radius:50%;background:var(--green-800);color:var(--gold-400);display:grid;place-items:center}
.support__point strong{display:block;font-family:var(--serif);font-size:19px;color:var(--green-900);margin-bottom:4px;font-weight:500;}
.support__point span{font-size:15px;color:var(--ink-2)}

/* =========================================================
   Testimonials – editorial spread
   ========================================================= */
.tmrs{display:grid;grid-template-columns:repeat(12,1fr);gap:28px}
.tmr{
  grid-column:span 4;display:flex;flex-direction:column;
  padding:36px 34px 32px;border:1px solid var(--line);border-radius:3px;
  background:var(--paper);position:relative;overflow:hidden;
  transition:border-color .35s ease,transform .35s var(--ease-out),box-shadow .35s ease;
}
.tmr:hover{border-color:var(--line-gold);transform:translateY(-4px);box-shadow:0 30px 60px -30px rgba(11,46,31,.18)}
.tmr--lead{grid-column:span 8;background:var(--green-900);color:var(--cream);border-color:transparent;padding:48px 44px;justify-content:space-between}
.tmr--lead .tmr__quote{font-size:clamp(22px,2.2vw,30px);color:var(--cream);}
.tmr--lead .tmr__role{color:var(--gold-300)}
.tmr--lead .tmr__avatar{background:rgba(201,168,107,.15);color:var(--gold-400);border-color:rgba(201,168,107,.3)}
.tmr--lead .tmr__name{color:var(--gold-100)}

.tmr__qmark{font-family:var(--serif);font-size:64px;color:var(--gold-500);line-height:.6;font-style:italic;margin-bottom:8px}
.tmr--lead .tmr__qmark{color:var(--gold-400)}
.tmr__quote{font-family:var(--serif);font-size:18px;line-height:1.45;color:var(--green-900);margin-bottom:32px;text-wrap:pretty;font-weight:400}
.tmr__person{display:flex;align-items:center;gap:14px;margin-top:auto}
.tmr__avatar{width:46px;height:46px;border-radius:50%;background:var(--cream-2);color:var(--green-800);display:grid;place-items:center;font-family:var(--serif);font-size:17px;font-weight:500;border:1px solid var(--line-gold);}
.tmr__name{font-family:var(--serif);font-size:16px;color:var(--green-900);font-weight:500;display:block;line-height:1.1;margin-bottom:3px;}
.tmr__role{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}

/* =========================================================
   FAQ accordion
   ========================================================= */
.faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.faq__intro h2{margin-top:18px}
.faq__intro p{margin-top:20px}
.faq__intro .help{margin-top:38px;padding:24px;border:1px solid var(--line-gold);border-radius:3px;background:var(--cream)}
.faq__intro .help strong{display:block;font-family:var(--serif);font-size:18px;color:var(--green-900);margin-bottom:6px;font-weight:500}
.faq__intro .help p{font-size:14.5px;margin:0 0 14px}
.faq__intro .help a{color:var(--green-800);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold-500);font-weight:500;font-size:14px}

.faq__list{list-style:none;border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:28px 4px;text-align:left;
  font-family:var(--serif);font-size:clamp(19px,1.8vw,23px);font-weight:500;color:var(--green-900);
  letter-spacing:-.01em;line-height:1.25;
  transition:color .25s ease;
}
.faq__btn:hover{color:var(--green-700)}
.faq__btn .plus{position:relative;width:22px;height:22px;flex:none;color:var(--gold-600)}
.faq__btn .plus::before,.faq__btn .plus::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transition:transform .35s var(--ease-out)}
.faq__btn .plus::before{width:14px;height:1.5px;transform:translate(-50%,-50%)}
.faq__btn .plus::after{width:1.5px;height:14px;transform:translate(-50%,-50%)}
.faq__item.is-open .faq__btn .plus::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq__panel{max-height:0;overflow:hidden;transition:max-height .55s var(--ease-out)}
.faq__inner{padding:0 4px 28px;color:var(--ink-2);font-size:15.5px;line-height:1.65;max-width:62ch}
.faq__inner p + p{margin-top:12px}

/* =========================================================
   Forms
   ========================================================= */
.section--form{position:relative;background:linear-gradient(180deg,var(--cream) 0%,var(--cream-2) 100%)}
.form-wrap{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start;
  padding:64px;background:#fff;border:1px solid var(--line-gold);border-radius:3px;
  position:relative;overflow:hidden;
}
.form-wrap::before{content:"";position:absolute;top:0;left:0;width:90px;height:90px;border-top:1px solid var(--gold-500);border-left:1px solid var(--gold-500);pointer-events:none}
.form-wrap::after{content:"";position:absolute;bottom:0;right:0;width:90px;height:90px;border-bottom:1px solid var(--gold-500);border-right:1px solid var(--gold-500);pointer-events:none}
/* Both form-wraps inherit the white background from .form-wrap base – no override. */

.form-intro h2{font-size:clamp(28px,3vw,42px);margin-bottom:22px;line-height:1.05}
/* Standalone /arbetsgivare/ page promotes the form-intro heading to H1 + left-aligned eyebrow. */
.form-intro h1{font-family:var(--serif);font-size:clamp(34px,3.6vw,52px);font-weight:500;line-height:1.05;letter-spacing:-.02em;color:var(--green-900);margin:18px 0 22px}
.form-intro .eyebrow::before{display:none}
.form-intro p{font-size:16px;margin-bottom:28px;max-width:34ch}
.form-intro .meta{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-3);line-height:1.6}
.form-intro .meta + .meta{margin-top:18px;padding-top:18px}
.form-intro .meta strong{color:var(--green-800);font-family:var(--serif);font-size:16px;display:block;margin-bottom:6px;font-weight:500;}

/* Floating-label fields */
.form{display:flex;flex-direction:column;gap:18px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form__field{position:relative}
.form__field--full{grid-column:1 / -1}
.form__input,.form__textarea{
  width:100%;padding:24px 18px 14px;
  border:1px solid rgba(11,46,31,.18);background:var(--paper);border-radius:2px;
  font-family:var(--sans);font-size:15.5px;color:var(--ink);
  transition:border-color .25s ease,background .25s ease,box-shadow .25s ease,padding-top .2s ease;
  -webkit-appearance:none;appearance:none;
}
.form__input:focus,.form__textarea:focus{outline:none;border-color:var(--gold-500);background:#fff;box-shadow:0 0 0 4px rgba(201,168,107,.14)}
.form__textarea{resize:vertical;min-height:130px;font-family:inherit;line-height:1.5}
.form__field label.float{
  position:absolute;left:18px;top:18px;
  font-size:14px;color:var(--ink-3);font-weight:400;
  pointer-events:none;transition:all .22s var(--ease-out);
  background:transparent;padding:0 4px;
}
.form__field label.float .req{color:var(--gold-600);margin-left:3px}
.form__input:focus + label.float,
.form__input:not(:placeholder-shown) + label.float,
.form__textarea:focus + label.float,
.form__textarea:not(:placeholder-shown) + label.float{
  top:6px;font-size:11px;color:var(--green-700);letter-spacing:.14em;text-transform:uppercase;font-weight:500;
}
.form__input:user-valid + label.float .check,
.form__input:not(:placeholder-shown):valid + label.float .check{opacity:1;transform:scale(1)}
.form__field .valid-mark{
  position:absolute;right:14px;top:50%;transform:translateY(-50%) scale(.8);
  width:20px;height:20px;border-radius:50%;background:var(--green-700);color:var(--gold-300);display:grid;place-items:center;
  opacity:0;transition:opacity .25s ease,transform .25s var(--ease-spring);pointer-events:none;
}
.form__input:not(:placeholder-shown):valid ~ .valid-mark{opacity:1;transform:translateY(-50%) scale(1)}

/* File upload */
.form__file{
  position:relative;display:flex;align-items:center;gap:16px;
  padding:22px;border:1px dashed rgba(11,46,31,.25);border-radius:2px;
  background:var(--paper);cursor:pointer;
  transition:border-color .25s ease,background .25s ease;
}
.form__file:hover,.form__file.is-drag{border-color:var(--gold-500);background:#fff}
.form__file input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.form__file-icon{width:42px;height:42px;border-radius:50%;background:var(--green-800);color:var(--gold-400);display:grid;place-items:center;flex:none;transition:transform .35s var(--ease-spring)}
.form__file:hover .form__file-icon{transform:rotate(-8deg) scale(1.06)}
.form__file-text strong{display:block;font-size:14.5px;color:var(--green-900);font-weight:500;margin-bottom:3px}
.form__file-text span{font-size:12.5px;color:var(--ink-3)}
.form__file-text .muted{display:block;font-size:11px;color:var(--gold-600);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-top:5px;opacity:.85}

.form__consent{display:flex;align-items:flex-start;gap:14px;font-size:13.5px;color:var(--ink-2);line-height:1.5;padding:6px 0;cursor:pointer}
.form__consent input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--green-800)}
.form__consent a{color:var(--green-800);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold-500)}

.form__submit{
  margin-top:8px;align-self:flex-start;
  background:var(--green-900);color:var(--gold-300);
  padding:18px 32px;font-weight:500;letter-spacing:.04em;font-size:14px;border-radius:2px;
  display:inline-flex;align-items:center;gap:12px;
  transition:background .3s ease,color .3s ease,transform .3s var(--ease-out),box-shadow .3s ease;
}
.form__submit:hover{background:var(--green-800);color:var(--gold-400);transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(11,46,31,.45)}
.form__submit .arrow{transition:transform .3s var(--ease-spring)}
.form__submit:hover .arrow{transform:translateX(5px)}

.section--employer{background:linear-gradient(180deg,var(--cream) 0%,var(--cream-2) 100%)}

/* =========================================================
   Contact Form 7 – editorial form using form__row / form__field
   markup with floating labels. Scoped to .form--cf7.
   ========================================================= */
.form--cf7 .wpcf7-form{display:flex;flex-direction:column;gap:18px}
.form--cf7 .wpcf7-form p{margin:0}
.form--cf7 .wpcf7-form br{display:none}

/* Inputs – apply .form__input look to all CF7-rendered text inputs and textareas */
.form--cf7 .form__field .wpcf7-form-control:not(.wpcf7-acceptance):not(.wpcf7-submit):not([type=file]){
  width:100%;padding:24px 18px 14px;
  border:1px solid rgba(11,46,31,.18);background:var(--paper);border-radius:2px;
  font-family:var(--sans);font-size:15.5px;color:var(--ink);
  transition:border-color .25s ease,background .25s ease,box-shadow .25s ease;
  -webkit-appearance:none;appearance:none;
}
.form--cf7 .form__field .wpcf7-form-control:focus{
  outline:none;border-color:var(--gold-500);background:#fff;
  box-shadow:0 0 0 4px rgba(201,168,107,.14);
}
.form--cf7 .form__field textarea.wpcf7-form-control{resize:vertical;min-height:130px;line-height:1.5;padding-top:28px}
/* CF7 wraps input in <span class="wpcf7-form-control-wrap"> – make it
   layout-transparent so the input becomes a direct child of .form__field
   and floating-label CSS can target the input properly. */
.form--cf7 .form__field .wpcf7-form-control-wrap{display:contents}

/* CF7 placeholders are required (CF7 parser breaks on empty values) but we
   hide them visually so the <label class="float"> is the only visible label. */
.form--cf7 .form__field .wpcf7-form-control::placeholder{color:transparent}

/* Floating labels – trigger via :has() since input is one level deep in wrap. */
.form--cf7 .form__field:has(.wpcf7-form-control:focus) label.float,
.form--cf7 .form__field:has(.wpcf7-form-control:not(:placeholder-shown)) label.float{
  top:6px;font-size:11px;color:var(--green-700);
  letter-spacing:.14em;text-transform:uppercase;font-weight:500;
}

/* File upload – custom drop-zone wraps the [file*] field.
   Hide CF7's input wrap visually but keep it clickable across the whole label. */
.form--cf7 .form__file{position:relative;cursor:pointer}
.form--cf7 .form__file .wpcf7-form-control-wrap{
  position:absolute;inset:0;display:block;
}
.form--cf7 .form__file input[type=file].wpcf7-form-control{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer;border:0;padding:0;
}

/* Consent / GDPR checkbox – override the absolute-positioned label.float styling
   that would apply otherwise (acceptance has its own structure). */
.form--cf7 .form__consent{display:flex;align-items:flex-start;gap:14px;cursor:pointer}
.form--cf7 .form__consent .wpcf7-form-control-wrap{display:contents}
.form--cf7 .form__consent .wpcf7-acceptance{display:contents}
.form--cf7 .form__consent .wpcf7-list-item{margin:0;display:flex;align-items:flex-start;gap:14px}
.form--cf7 .form__consent .wpcf7-list-item > label{
  display:flex;flex-direction:row;align-items:flex-start;gap:14px;
  font-size:13.5px;letter-spacing:0;text-transform:none;font-weight:400;
  color:var(--ink-2);line-height:1.5;cursor:pointer;
}
.form--cf7 .form__consent input[type=checkbox]{
  margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--green-800);
}
.form--cf7 .form__consent a{
  color:var(--green-800);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--gold-500);font-weight:500;
}

/* Choice group (checkboxes) – e.g. "Vilken typ av konsult söker ni?".
   Rendered as selectable pills. Scoped so the generic input styling does not
   apply (block uses .form__choice, not .form__field). */
.form--cf7 .form__choice{display:flex;flex-direction:column;gap:14px}
.form--cf7 .form__choice-label{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--green-700);
}
.form--cf7 .form__choice-label .req{color:var(--gold-600);margin-left:3px}
.form--cf7 .form__choice .wpcf7-form-control-wrap{display:contents}
.form--cf7 .form__choice .wpcf7-checkbox{display:flex;flex-wrap:wrap;gap:12px}
.form--cf7 .form__choice .wpcf7-list-item{margin:0}
.form--cf7 .form__choice .wpcf7-list-item > label{
  display:flex;align-items:center;gap:10px;padding:13px 18px;
  border:1px solid rgba(11,46,31,.18);border-radius:2px;background:var(--paper);
  font-size:14.5px;color:var(--ink);cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
.form--cf7 .form__choice .wpcf7-list-item > label:hover{border-color:var(--gold-500);background:#fff}
.form--cf7 .form__choice input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--green-800)}

/* Submit – beat theme.json's .wp-element-button + CF7 default styles with
   higher specificity (no !important needed). */
.form-wrap .form--cf7 input[type=submit].wpcf7-submit.form__submit,
body .form--cf7 input[type=submit].wpcf7-submit.form__submit{
  margin-top:8px;align-self:flex-start;
  background:var(--green-900);color:var(--gold-300);
  padding:18px 32px;font-weight:500;letter-spacing:.04em;font-size:14px;border-radius:2px;
  border:0;cursor:pointer;font-family:var(--sans);
  text-transform:none;
  transition:background .3s ease,color .3s ease,transform .3s var(--ease-out),box-shadow .3s ease;
}
.form-wrap .form--cf7 input[type=submit].wpcf7-submit.form__submit:hover,
body .form--cf7 input[type=submit].wpcf7-submit.form__submit:hover{
  background:var(--green-800);color:var(--gold-400);
  transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(11,46,31,.45);
}

/* Validation tip + response */
.form--cf7 .wpcf7-not-valid-tip{margin-top:6px;font-size:12.5px;color:#b3261e;letter-spacing:0;text-transform:none}
.form--cf7 .wpcf7-response-output{
  margin-top:18px;padding:14px 18px;border-radius:2px;border:1px solid rgba(11,46,31,.18);
  font-size:13.5px;line-height:1.5;color:var(--ink);background:var(--paper);
}
.form--cf7 .wpcf7-validation-errors{border-color:rgba(179,38,30,.4);background:rgba(179,38,30,.06);color:#b3261e}
.form--cf7 .wpcf7-spinner{align-self:center;margin-left:14px}

/* =========================================================
   Final CTA
   ========================================================= */
.final-cta{text-align:center;padding-block:140px;background:radial-gradient(ellipse 60% 40% at 50% 100%,rgba(201,168,107,.18),transparent 70%),var(--green-1000);color:var(--cream);position:relative;overflow:hidden}
.final-cta::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(201,168,107,.06) 1px,transparent 0);background-size:36px 36px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%)}
.final-cta__inner{position:relative;max-width:740px;margin:0 auto}
.final-cta h2{color:var(--cream);font-size:clamp(40px,6vw,84px);margin:28px 0 24px;line-height:1.02}
.final-cta h2 .accent{color:var(--gold-400);font-style:italic;}
.final-cta p{color:rgba(250,246,238,.78);max-width:48ch;margin:0 auto 44px;font-size:17.5px}


/* =========================================================
   Footer
   ========================================================= */
.footer{background:var(--green-1000);color:var(--gold-300);padding:90px 0 36px;border-top:1px solid rgba(201,168,107,.16)}
.footer__top{font-family:var(--serif);font-size:clamp(54px,9vw,150px);line-height:1.05;color:var(--gold-400);letter-spacing:-.04em;font-weight:400;margin-bottom:80px;font-style:italic}
/* same descender-room trick as hero H1 — Cormorant Garamond's italic "g" descender
   gets clipped without padding inside the overflow:hidden mask. */
.footer__top .ln{display:block;overflow:hidden;padding-bottom:.28em;margin-bottom:-.22em}
.footer__top .ln:last-child{margin-bottom:0}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;padding-bottom:60px;border-bottom:1px solid rgba(201,168,107,.16)}
.footer__col h4{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-500);margin-bottom:20px;font-weight:500}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer__col a{color:var(--gold-300);font-size:14.5px;opacity:.78;transition:opacity .25s ease,color .25s ease}
.footer__col a:hover{opacity:1;color:var(--gold-400)}
/* Logo link is not a faded nav link */
.footer .logo{opacity:1}
.footer__about p{color:rgba(232,213,168,.7);font-size:14.5px;line-height:1.65;margin-top:18px;max-width:34ch}
.footer__legal{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:32px;font-family:var(--mono);font-size:11.5px;color:rgba(232,213,168,.55);letter-spacing:.08em;flex-wrap:wrap;text-transform:uppercase}
.footer__legal a{color:rgba(232,213,168,.7);margin-left:18px}
.footer__legal a:hover{color:var(--gold-400)}
.footer__sig{display:flex;align-items:center;gap:10px}
.footer__sig svg{width:14px;height:14px;color:var(--gold-500)}

/* =========================================================
   Reveal animation
   ========================================================= */
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
  .reveal.is-in{opacity:1;transform:translateY(0)}
  .reveal-stagger > *{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
  .reveal-stagger.is-in > *{opacity:1;transform:translateY(0)}
  .reveal-stagger.is-in > *:nth-child(1){transition-delay:.05s}
  .reveal-stagger.is-in > *:nth-child(2){transition-delay:.13s}
  .reveal-stagger.is-in > *:nth-child(3){transition-delay:.21s}
  .reveal-stagger.is-in > *:nth-child(4){transition-delay:.29s}
  .reveal-stagger.is-in > *:nth-child(5){transition-delay:.37s}
  .reveal-stagger.is-in > *:nth-child(6){transition-delay:.45s}

  .word{display:inline-block;will-change:transform,opacity;transform:translateY(105%);opacity:0;transition:transform 1s var(--ease-out),opacity 1s var(--ease-out)}
  .word.is-in{transform:translateY(0);opacity:1}
}
@media (prefers-reduced-motion: reduce){
  *,::before,::after{animation:none!important;transition:none!important}
  .word{transform:none;opacity:1}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1180px){
  .hero__grid{grid-template-columns:1fr;gap:80px}
  .hero__visual{max-width:520px;margin-inline:auto;width:100%}
  .why-card,.why-card--feature{grid-column:span 6}
  .why-card--feature{grid-row:auto}
  .numbers{grid-template-columns:repeat(2,1fr)}
  .number:nth-child(2){border-right:0}
  .number:nth-child(1),.number:nth-child(2){border-bottom:1px solid var(--line)}
  .assignments,.support,.faq{grid-template-columns:1fr;gap:60px}
  .form-wrap{grid-template-columns:1fr;gap:48px;padding:48px}
  .footer__grid{grid-template-columns:1fr 1fr;gap:48px}
  .steps{grid-template-columns:repeat(2,1fr);gap:60px 36px}
  .steps::before{display:none}
  .tmrs{grid-template-columns:1fr 1fr}
  .tmr,.tmr--lead{grid-column:span 1}
}
@media (max-width:760px){
  .section{padding-block:80px}
  .hero{padding:140px 0 90px}
  .hero__head{margin-bottom:60px}
  .hdr__nav,.hdr__cta{display:none}
  .menu-toggle{display:grid}
  .why-card,.why-card--feature{grid-column:span 12}
  .form__row{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr;gap:40px}
  .form-wrap{padding:36px 24px}
  .hero__meta{grid-template-columns:repeat(2,1fr)}
  .hero__meta-item:last-child{grid-column:span 2}
  .hero__badge{left:0;bottom:-30px;max-width:none;width:calc(100% - 24px);margin-left:12px}
  .tmrs{grid-template-columns:1fr}
  body{cursor:auto}
  .cursor{display:none}
}