:root{
  --navy:#22395A;        /* hero */
  --navy-deep:#16263D;   /* sidfot, citat */
  --bone:#F7F5F0;        /* ljus varm bakgrund */
  --bone-2:#EFECE5;      /* alternerande sektion */
  --sand:#E8E4DA;        /* rutor */
  --ink:#1E2A3A;         /* brödtext */
  --ink-70:rgba(30,42,58,.72);
  --gold:#C4A265;
  --line:rgba(30,42,58,.14);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.5;color:var(--ink);background:var(--bone)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding-left:24px;padding-right:24px}
@media(min-width:768px){.wrap{padding-left:40px;padding-right:40px}}

/* Typografi */
h1,h2,h3,.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em}
h1{font-size:clamp(36px,10.5vw,96px);line-height:.95;color:var(--bone)}
h2{font-size:clamp(34px,4.5vw,48px);line-height:1;color:var(--ink)}
h3{font-size:30px;line-height:1.2;color:var(--ink)}
.label{font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:400}
.lead{font-size:18px;line-height:1.6;max-width:600px}

/* Sidhuvud */
header{position:absolute;top:0;left:0;right:0;z-index:30}
header .wrap{padding-top:24px;padding-bottom:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:56px;width:56px;object-fit:contain}
.brand .name{display:flex;flex-direction:column;line-height:1}
.brand .name b{font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:.12em;color:var(--bone)}
.brand .name span{font-size:10px;letter-spacing:.4em;color:rgba(247,245,240,.7);margin-top:4px}
nav{display:flex;gap:40px;margin-left:auto}
nav a{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,245,240,.8);font-weight:300}
nav a:hover,nav a[aria-current]{color:var(--bone)}
@media(max-width:767px){nav{gap:12px 18px;margin-left:0;width:100%;flex-wrap:wrap}nav a{font-size:11px;letter-spacing:.18em}}

/* Hero */
.hero{background:var(--navy);color:var(--bone);padding:176px 0 112px}
@media(max-width:767px){.hero{padding:150px 0 72px}}
.hero .label{color:rgba(247,245,240,.6);margin-bottom:28px}
.hero .lead{color:rgba(247,245,240,.72);margin-top:28px}
.btns{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px}
.btn{display:inline-block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:300;padding:14px 28px;line-height:1;transition:opacity .2s}
.btn:hover{opacity:.85}
.btn-fill{background:var(--bone);color:var(--navy)}
.btn-line{border:1px solid rgba(247,245,240,.5);color:var(--bone)}
.btn-ink{background:var(--navy);color:var(--bone)}

/* Sektioner */
section{padding:128px 0}
@media(max-width:767px){section{padding:80px 0}}
.alt{background:var(--bone-2)}
.sec-label{color:var(--ink-70);margin-bottom:24px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.sec-head a.more{font-size:12px;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px;color:var(--ink)}

/* Tre rutor */
.grid3{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);margin-top:56px}
@media(min-width:768px){.grid3{grid-template-columns:repeat(3,1fr)}}
.box{background:var(--sand);padding:40px 32px 48px}
.box .num{font-size:11px;letter-spacing:.3em;color:var(--ink-70);margin-bottom:56px}
.box h3{margin-bottom:16px}
.box p{color:var(--ink-70);font-size:15px;line-height:1.6;max-width:300px}

/* Projektkort */
.cards{display:grid;grid-template-columns:1fr;gap:32px;margin-top:56px}
@media(min-width:768px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.cards.two{grid-template-columns:repeat(2,1fr)}}
.card{background:var(--bone);border:1px solid var(--line)}
.card .img{aspect-ratio:16/9;background:var(--navy);overflow:hidden;position:relative}
.card .img .cap{position:absolute;left:0;bottom:0;padding:8px 14px;background:rgba(22,38,61,.82);font-size:10px;line-height:1.4;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,245,240,.92)}
.card .img img{width:100%;height:100%;object-fit:cover}
.card .img.empty{aspect-ratio:16/5;background:var(--sand);position:relative}
.card .img.empty::after{content:"";position:absolute;left:32px;bottom:28px;width:48px;height:1px;background:var(--gold)}
.card .body{padding:32px 32px 36px}
.card h3{font-size:28px;margin-bottom:12px}
.card p{color:var(--ink-70);font-size:15px;line-height:1.6}
.tags{display:flex;gap:24px;flex-wrap:wrap;margin-top:28px}
.tags span{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-70)}

/* Citat */
.quote{background:var(--navy);color:var(--bone);padding:112px 0;text-align:center}
.quote p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,3.2vw,36px);line-height:1.35;max-width:820px;margin:0 auto}

/* Koncernen */
.group{padding:96px 0;border-top:1px solid var(--line)}
.group .cols{display:grid;grid-template-columns:1fr;gap:32px}
@media(min-width:768px){.group .cols{grid-template-columns:1fr 2fr;gap:64px}}
.group .cols > div > p{font-size:17px;line-height:1.65;max-width:680px}
.group a.more{display:inline-block;margin-top:24px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px}
.group .cols > div > p + p{margin-top:20px}
.group.plain{border-top:0}
.pillars{background:var(--sand)}
.pillars .grid3{margin-top:0}
.closing{text-align:center}
.closing h2{margin-bottom:24px}
.closing p{max-width:760px;margin:0 auto;font-size:16px;line-height:1.7;color:var(--ink-70)}

/* Kontakt */
.contact{text-align:center}
.contact h2{margin-bottom:40px}
.contact .info{display:flex;justify-content:center;gap:64px;flex-wrap:wrap;margin-top:48px;font-size:15px;line-height:1.7;color:var(--ink-70)}
.contact .info .label{display:block;color:var(--ink);margin-bottom:8px}

/* Undersidor */
.page-hero{background:var(--navy);color:var(--bone);padding:160px 0 80px}
@media(max-width:767px){.page-hero{padding:140px 0 56px}}
.page-hero .label{color:rgba(247,245,240,.6);margin-bottom:24px}
.page-hero h1{font-size:clamp(40px,6vw,72px)}
.page-hero .lead{color:rgba(247,245,240,.72);margin-top:24px}
.prose{max-width:720px}
.prose p{font-size:17px;line-height:1.7;margin-bottom:20px}
.prose p:last-child{margin-bottom:0}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:1fr;gap:16px;padding:40px 0;border-bottom:1px solid var(--line)}
@media(min-width:768px){.row{grid-template-columns:120px 1fr 1fr;gap:40px}}
.row .num{font-size:11px;letter-spacing:.3em;color:var(--ink-70)}
.row h3{margin-bottom:8px}
.row .sub{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-70)}
.row p{color:var(--ink-70);font-size:15px;line-height:1.65}
.feature{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
@media(min-width:900px){.feature{grid-template-columns:1fr 1fr;gap:64px}.feature.flip .visual{order:2}}
.proj.sand{background:var(--sand)}
.proj.sand .ftable div{background:var(--bone)}
.panel{aspect-ratio:5/4;background:var(--navy);color:var(--bone);display:flex;flex-direction:column;justify-content:flex-end;padding:40px;position:relative}
.panel::before{content:"";position:absolute;left:40px;top:40px;width:48px;height:1px;background:var(--gold)}
.panel .big{font-family:var(--serif);font-weight:400;font-size:clamp(72px,10vw,128px);line-height:.9}
.panel .big.sm{font-size:clamp(34px,4.2vw,52px);line-height:1.05}
.panel .cap{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(247,245,240,.7);margin-top:16px}
.proj-cta h2{font-size:clamp(28px,3vw,36px);line-height:1.3;max-width:820px;margin:0 auto 40px}
.feature img{width:100%;aspect-ratio:5/4;object-fit:cover}
figure.visual{margin:0}
figure.visual figcaption{font-size:13px;line-height:1.5;color:var(--ink-70);margin-top:12px}

/* Förvärv */
.acq{background:var(--navy);color:var(--bone)}
.acq .label{color:rgba(247,245,240,.6)}
.acq h2{color:var(--bone);max-width:820px}
.acq p.txt{color:rgba(247,245,240,.72);font-size:17px;line-height:1.65;max-width:640px;margin-top:24px}
.acq .btn{margin-top:40px}
.feature .sub{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-70);margin-bottom:16px}
.feature h2{margin-bottom:20px}
.feature p.txt{font-size:17px;line-height:1.7;color:var(--ink-70)}
.ftable{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:32px}
.ftable div{background:var(--sand);padding:20px 24px}
.ftable dt{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-70)}
.ftable dd{font-size:16px;margin-top:6px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;align-content:start}
.facts dt{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-70)}
.facts dd{font-size:15px;margin-top:4px}
.kv{display:grid;grid-template-columns:1fr;gap:40px;margin-top:56px}
@media(min-width:768px){.kv{grid-template-columns:repeat(3,1fr)}}
.kv .label{color:var(--ink);margin-bottom:12px}
.kv p{font-size:16px;line-height:1.7;color:var(--ink-70)}
.kv a.u{border-bottom:1px solid var(--line)}

/* Sidfot */
footer{background:var(--navy-deep);color:rgba(247,245,240,.8);padding:72px 0 40px}
footer .cols{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:768px){footer .cols{grid-template-columns:2fr 1fr 1fr}}
footer .brand .name b{font-size:22px}
footer .tag{font-size:13px;margin-top:20px;color:rgba(247,245,240,.6)}
footer .label{color:rgba(247,245,240,.6);margin-bottom:20px}
footer ul{list-style:none}
footer li{margin-bottom:10px;font-size:15px}
footer li a:hover{color:var(--bone)}
footer .copy{margin-top:64px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,245,240,.5)}
