:root{--paper:#dce2df;--surface:#cbd5d2;--ink:#253438;--green:#65797c;--action:#405b60;--muted:#4f6265;--line:#b5c3c0;--light:#edf1ee}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 Arial,Helvetica,sans-serif}
a{color:inherit;text-decoration:none}
a:focus-visible,summary:focus-visible{outline:2px solid var(--action);outline-offset:5px}
h1,h2,h3,p{margin:0}
.wrap{max-width:1280px;margin:auto;padding:0 64px}
.draft{background:var(--green);color:var(--light);text-align:center;padding:6px 16px;font-size:10px;letter-spacing:.16em}
header{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:26px 0;border-bottom:1px solid var(--line)}
.brand-logo{display:block;width:260px;flex-shrink:0}
.brand-logo img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
nav{display:flex;gap:22px;align-items:center;font-size:13px}
nav a{white-space:nowrap}
nav a:hover,.way a:hover,.contact-links a:hover{color:var(--action)}
.nav-contact{border:1px solid var(--action);padding:9px 16px}
.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;padding:72px 0;align-items:center}
h1{font:clamp(44px,5vw,64px)/1.08 Georgia,serif;letter-spacing:-2px;margin:22px 0 26px;overflow-wrap:break-word}
h1 em{font-weight:normal;color:var(--action)}
.lead{font-size:18px;color:var(--muted);max-width:550px;line-height:1.75}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.button{display:inline-flex;align-items:center;gap:14px;justify-content:space-between;padding:13px 18px;background:var(--action);color:var(--light);border:1px solid var(--action);font-size:13px}
.button:hover{background:#344e52}
.button.secondary{background:transparent;color:var(--action)}
.button.secondary:hover{background:var(--surface)}
.hero-image{background:var(--surface);border:1px solid var(--line);padding:5px}
.hero-image img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.section{padding:68px 0;border-top:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:34px}
h2{font:clamp(32px,3.6vw,43px)/1.18 Georgia,serif;letter-spacing:-1.2px;margin-top:12px}
.section-head p{max-width:340px;color:var(--muted);font-size:14px}
h3{font:25px/1.25 Georgia,serif}
.illustration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.illustration-card{margin:0}
.illustration-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line);filter:saturate(.7)}
.illustration-card figcaption{font:25px/1.25 Georgia,serif;margin-top:20px}
.area-copy{font-size:14px;color:var(--muted);line-height:1.75;margin-top:13px}
.case-group{margin-top:38px}
.group-title{font:19px Georgia,serif;margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px}
.case-group-three .cases{grid-template-columns:repeat(3,minmax(0,1fr))}
.case{background:var(--surface);padding:26px;border:1px solid var(--line)}
.case-logo{height:74px;display:flex;align-items:center;margin-bottom:22px}
.case-logo img{display:block;max-width:190px;width:100%;height:74px;object-fit:contain;object-position:left center;filter:grayscale(1) sepia(.32) hue-rotate(110deg) saturate(.65);mix-blend-mode:multiply;opacity:.9}
.case h3{font-size:24px;margin:0 0 14px}
.case p{font-size:14px;color:var(--muted)}
.case-intro{min-height:74px}
.case-details{margin-top:22px;border-top:1px solid #aabcb8}
.case-details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:14px 0 0;font-size:13px;color:var(--action)}
.case-details summary::-webkit-details-marker{display:none}
.case-details .open-label{display:none}
.case-details[open] .closed-label{display:none}
.case-details[open] .open-label{display:inline}
.toggle{font-size:20px;transition:transform .2s}
.case-details[open] .toggle{transform:rotate(45deg)}
.case-full{padding-top:18px}
.case-full p+p{margin-top:16px}
.note{font-size:12px;color:var(--muted);margin-top:24px}
.ways{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.way{border-top:1px solid var(--line);padding-top:22px}
.way h3{font-size:27px;margin-bottom:16px}
.way p{color:var(--muted);font-size:15px;max-width:460px}
.way a{display:inline-block;margin-top:24px;font-size:13px;color:var(--action);border-bottom:1px solid var(--line);padding-bottom:7px}
.about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr;gap:64px;padding:68px 0;align-items:start}
.logo-symbol{width:72px;margin-bottom:24px}
.logo-symbol img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.about p{color:var(--muted);font-size:15px}
.about p+p{margin-top:20px}
.team-heading{margin-bottom:28px}
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:68px}
.team-portrait{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;margin-bottom:20px;border:1px solid var(--line)}
.person h3{font-size:23px;margin-bottom:7px}
.person p{font-size:13px;color:var(--muted)}
.contact{background:#c4d0cd;padding:60px 0;border-top:1px solid var(--line)}
.contact-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}
.contact p{color:var(--muted);margin-top:20px;max-width:490px;font-size:15px}
.contact-links{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.contact-links a{border-bottom:1px solid #9eafac;padding-bottom:6px;font-size:17px;overflow-wrap:anywhere}
.contact-links small{font-size:12px;color:var(--muted)}
footer{padding:26px 0;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}
@media(max-width:1050px){.wrap{padding:0 32px}.brand-logo{width:230px}nav{gap:15px}.hero{gap:32px}.about,.contact-inner{gap:40px}}
@media(max-width:850px){header{align-items:flex-start;flex-direction:column;gap:18px}.hero{grid-template-columns:1.1fr 1fr;gap:26px}h1{font-size:46px}.lead{font-size:16px}.case-group-three .cases{grid-template-columns:repeat(2,minmax(0,1fr))}.illustration-grid{gap:18px}.illustration-card figcaption{font-size:22px}}
@media(max-width:650px){.wrap{padding:0 22px}header{padding:22px 0;gap:20px}.brand-logo{width:220px}nav{width:100%;flex-wrap:wrap;gap:12px 18px;font-size:12px}.nav-contact{padding:6px 12px}.hero{grid-template-columns:1fr;padding:44px 0;gap:32px}h1{font-size:clamp(36px,10.7vw,48px);letter-spacing:-1.5px}.hero-image{max-width:480px}.section{padding:48px 0}.section-head{display:block;margin-bottom:28px}.section-head p{margin-top:18px;max-width:none}.illustration-grid,.cases,.case-group-three .cases,.ways,.about,.team,.contact-inner{grid-template-columns:1fr}.illustration-grid{gap:32px}.case-group{margin-top:30px}.case{padding:24px}.case-intro{min-height:0}.ways{gap:34px}.about{padding:48px 0;gap:28px}.logo-symbol{width:58px}.team{padding-bottom:48px;gap:32px}.team-portrait{max-width:480px}.contact{padding:48px 0}.contact-inner{gap:28px}.contact-links a{font-size:16px}footer{flex-direction:column;gap:8px}.button{padding:12px 16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.toggle{transition:none}}

.cases-banner{margin:0 0 36px}.cases-banner img{display:block;width:100%;height:auto;border:1px solid var(--line)}.cases-banner figcaption{font-size:11px;color:var(--muted);margin-top:8px}@media(max-width:650px){.cases-banner img{aspect-ratio:2/1;object-fit:cover;object-position:center}}

.team-email{display:inline-block;font-size:13px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.team-email:hover{color:var(--action);text-decoration:underline}.team-social{margin-top:16px}.team-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--action);border:1px solid var(--line)}.team-social a:hover{background:var(--surface)}.team-social svg{display:block;width:23px;height:23px}

/* Align team links beneath the tallest contact block. */
.person{display:flex;flex-direction:column;align-items:flex-start}.team-social{margin-top:auto;padding-top:16px}.team-portrait{flex-shrink:0}@media(max-width:650px){.team-social{margin-top:16px;padding-top:0}}


/* Smaller engagement cards. */
.case-group{margin-top:28px}.group-title{font-size:18px;padding-bottom:10px;margin-bottom:16px}
.case-group .cases,.case-group-three .cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.case{display:block;padding:18px 20px;background:var(--surface);border:1px solid var(--line)}
.case-logo{height:44px;margin-bottom:14px}.case-logo img{max-width:125px;height:44px}
.case h3{font-size:21px;margin:0 0 10px}.case-intro{min-height:0;font-size:13px;line-height:1.65}
.case-details{margin-top:14px;border-top:1px solid #aabcb8}.case-details summary{padding-top:10px;font-size:12px}.toggle{font-size:18px}
.case-full{padding-top:14px}.case-full p{font-size:13px;line-height:1.7}
.cases-banner{margin-bottom:28px}.cases-banner img{max-height:240px;object-fit:cover}
.cooperation-banner{margin:0 0 32px}.cooperation-banner img{display:block;width:100%;height:auto;max-height:265px;object-fit:cover;border:1px solid var(--line)}
@media(max-width:850px){.case-group .cases,.case-group-three .cases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.case-group .cases,.case-group-three .cases{grid-template-columns:1fr;gap:14px}.case{padding:18px 20px}.case-group{margin-top:24px}.cooperation-banner img{aspect-ratio:2/1;object-fit:cover}}

.about-section{border-top:1px solid var(--line);padding:60px 0}.about-section .about{border-top:0;padding:0 0 36px}.about-section .team{padding-bottom:0}.about-section .team-heading{margin-bottom:24px}.about-section .team-heading h2{font-size:30px}.about-section .team-heading .eyebrow{display:none}@media(max-width:650px){.about-section{padding:48px 0}.about-section .about{padding-bottom:30px}}

/* Equal engagement cards; expanded details remain readable. */
.case-group .cases,.case-group-three .cases{align-items:start}
.case{height:260px;display:flex;flex-direction:column;align-items:stretch}
.case-logo{height:44px;flex:0 0 44px}.case-logo img{height:44px;max-width:125px}
.case h3{height:54px;flex:0 0 54px;display:flex;align-items:flex-start}
.case-intro{flex:1;margin:0}
.case-details{flex:0 0 auto;margin-top:12px}
.case:has(.case-details[open]){height:auto;min-height:260px}
@media(max-width:650px){.case{height:260px}}

.contact{background:var(--paper);padding:0 0 48px;border:0}
.contact-panel{display:grid;grid-template-columns:1fr 1fr;background:#506669;color:var(--light);border:1px solid #506669}
.contact-copy{padding:38px}.contact-copy .eyebrow,.contact-copy p,.contact-copy .contact-links small{color:#e0e8e4}
.contact-copy h2{color:var(--light)}.contact-copy p{margin-bottom:24px}.contact-copy .contact-links a{color:var(--light);border-color:#90a3a2;font-size:16px}
.contact-map{min-width:0;display:flex;flex-direction:column;background:#cbd5d2}.contact-map iframe{display:block;width:100%;height:100%;min-height:330px;border:0;filter:grayscale(.9) saturate(.35)}
.contact-map>a{display:block;background:#40585c;color:var(--light);font-size:12px;padding:12px 20px}
@media(max-width:650px){.contact{padding-bottom:24px}.contact-panel{grid-template-columns:1fr}.contact-copy{padding:28px 24px}.contact-map iframe{height:260px;min-height:260px}}

/* Smaller team portraits and full-width contact background. */
.team-portrait{width:88%;max-width:300px;align-self:flex-start}
.contact{background:#506669;padding:0;border-top:1px solid #506669}
.contact-panel{border:0}.contact-copy{padding:38px 38px 38px 0}
@media(max-width:650px){.team-portrait{width:88%;max-width:300px}.contact{padding:0}.contact-copy{padding:30px 0}.contact-map{margin:0 -22px}.contact-panel{border:0}}

/* Dark header matches the full-width contact section. */
.header-band{background:#506669;color:var(--light)}
.header-band header{border-bottom:0}
.header-band .brand-logo img{mix-blend-mode:screen;filter:invert(1)}
.header-band nav a{color:var(--light)}
.header-band nav a:hover{color:#cbdad5}
.header-band .nav-contact{border-color:#a7bab6}
.header-band a:focus-visible{outline-color:var(--light)}
.draft{background:#40585c}

/* Softer pale grey-green header lettering. */
.header-band{color:#dde7e1}
.header-band nav a{color:#dde7e1}
.header-band nav a:hover{color:#e3ebe6}
.header-band .brand-logo img{filter:invert(1) sepia(.12) saturate(.65) hue-rotate(85deg);opacity:.88}

/* Slightly larger headings and softly rounded controls. */
h1{font-size:clamp(46px,5.3vw,68px)}
h2{font-size:clamp(35px,3.9vw,47px)}
.illustration-card figcaption{font-size:27px}.way h3{font-size:29px}.group-title{font-size:20px}.case h3{font-size:22px}.person h3{font-size:25px}
.button,.nav-contact{border-radius:9px}.team-social a{border-radius:7px}.case-details summary{border-radius:5px}
.about-section .team-heading h2{font-size:33px}
@media(max-width:850px){h1{font-size:49px}.illustration-card figcaption{font-size:24px}}
@media(max-width:650px){h1{font-size:clamp(38px,11vw,51px)}h2{font-size:38px}.way h3{font-size:28px}.case h3{font-size:22px}}

/* Clearer section labels and navigation, with restrained hover feedback. */
.eyebrow{font-size:13px;letter-spacing:.13em;line-height:1.5}
nav{font-size:15px;gap:20px}
nav a{transition:color .18s,background-color .18s;position:relative}
nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .18s}
nav a:not(.nav-contact):hover::after,nav a:not(.nav-contact):focus-visible::after{transform:scaleX(1)}
.button,.nav-contact,.team-social a{transition:background-color .18s,border-color .18s,box-shadow .18s}
.header-band .nav-contact:hover{background:#657d7f;color:#edf1ee;border-color:#d4e0da}
.button:hover{box-shadow:0 3px 10px #25343818}
.case{transition:background-color .18s,border-color .18s,box-shadow .18s}
.case:hover,.case:focus-within{background:#d1dcd7;border-color:#8da5a3;box-shadow:0 3px 12px #2534380c}
.case-details summary:hover{color:#253438;background:#25343808}
.way a{transition:color .18s,border-color .18s}.way a:hover{border-color:var(--action)}
.team-email:hover,.contact-links a:hover{color:inherit;text-decoration:underline;text-underline-offset:4px}
.contact-map>a:hover{background:#344e52;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1050px){nav{gap:14px;font-size:14px}}
@media(max-width:650px){nav{font-size:14px;gap:12px 16px}.eyebrow{font-size:12px}}
@media(prefers-reduced-motion:reduce){nav a,nav a::after,.button,.nav-contact,.team-social a,.case,.way a{transition:none}}

/* Align discussion links across the two collaboration columns. */
.ways{align-items:stretch}.way{display:flex;flex-direction:column;align-items:flex-start}.way a{margin-top:auto;padding-top:24px}@media(max-width:650px){.way a{margin-top:24px;padding-top:0}}

.about-image{margin:26px 0 0}.about-image img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line)}

.about-section>.about-image{margin:0 0 34px}.about-section>.about-image img{aspect-ratio:4/1;max-height:250px;object-fit:cover;opacity:.88}@media(max-width:650px){.about-section>.about-image img{aspect-ratio:2.5/1}}

.about-section>.about-image img{aspect-ratio:3/1;max-height:300px;opacity:1}@media(max-width:650px){.about-section>.about-image img{aspect-ratio:2.5/1}}

/* Unified team cards with a medium-dark grey-green frame. */
.person{background:var(--green);color:#edf1ee;padding:18px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid #5d7275;transition:background-color .18s,box-shadow .18s}
.person .team-portrait{width:100%;max-width:none;border:1px solid #91a4a2;margin-bottom:18px;align-self:stretch}
.person h3{color:#edf1ee;font-size:24px}
.person p,.person .team-email{color:#edf1ee}
.person .team-email:hover{color:#fff}
.person .team-social{margin-top:auto;padding-top:20px}
.person .team-social a{color:#edf1ee;border-color:#a2b4af}
.person .team-social a:hover{background:#506669;border-color:#dce2df}
.person a:focus-visible{outline-color:#edf1ee}
.person:hover,.person:focus-within{background:#607579;box-shadow:0 4px 14px #25343818}
@media(max-width:650px){.person{max-width:380px;width:100%}.person .team-social{margin-top:16px;padding-top:0}}
@media(prefers-reduced-motion:reduce){.person{transition:none}}

/* Team cards share the lighter engagement-card palette. */
.person{background:var(--surface);color:var(--ink);border-color:var(--line)}
.person h3{color:var(--ink)}
.person p,.person .team-email{color:var(--muted)}
.person .team-email:hover{color:var(--action)}
.person .team-portrait{border-color:var(--line)}
.person .team-social a{color:var(--action);border-color:var(--line)}
.person .team-social a:hover{background:#d1dcd7;border-color:#8da5a3}
.person a:focus-visible{outline-color:var(--action)}
.person:hover,.person:focus-within{background:#d1dcd7;border-color:#8da5a3;box-shadow:0 3px 12px #2534380c}

/* Shared rows align names, roles, contact details and social links. */
.team .person{display:grid;grid-template-rows:auto 38px 26px 26px 32px 60px;align-content:start;align-items:start}
.team .person .team-portrait{grid-row:1;margin-bottom:18px}
.team .person h3{grid-row:2;margin:0}
.team .person>p:first-of-type{grid-row:3}
.team .person>p:nth-of-type(2){grid-row:4}
.team .person .team-email{grid-row:5;margin-top:0;align-self:center}
.team .person .team-social{grid-row:6;margin:0;padding-top:16px;align-self:start}
@media(max-width:650px){.team .person{grid-template-rows:auto 38px 26px 26px 32px 60px}}

/* Even green framing around the map and its directions link. */
.contact-map{margin:28px;background:#506669;padding:0;align-self:stretch}
.contact-map iframe{min-height:280px;flex:1;border:1px solid #8da3a2}
.contact-map>a{border:1px solid #8da3a2;border-top:0}
@media(max-width:650px){.contact-map{margin:0 24px 24px}.contact-map iframe{height:250px;min-height:250px;flex:auto}}

/* Soft green map tint, without blocking map interaction. */
.map-tint{position:relative;display:flex;flex:1;min-height:280px;background:var(--paper)}
.map-tint iframe{width:100%;height:100%;min-height:280px;filter:grayscale(1)}
.map-tint::after{content:"";position:absolute;inset:0;background:#cbded2;opacity:.3;mix-blend-mode:multiply;pointer-events:none}
@media(max-width:650px){.map-tint{min-height:250px}.map-tint iframe{height:250px;min-height:250px}}

.language-switch{display:flex;gap:8px;padding-left:14px;border-left:1px solid #a7bab6}.language-switch a{font-size:12px;padding:4px 6px;border-radius:4px}.language-switch a[aria-current="page"]{background:#70878a;font-weight:bold}.language-switch a::after{display:none}@media(max-width:1050px){.header-band header{flex-wrap:wrap}nav{flex-wrap:wrap}}

/* Two-line project summaries with safe spacing above details. */
.case{height:auto;min-height:260px}
.case p.case-intro{flex:0 0 auto;min-height:3.3em;line-height:1.65;margin:0 0 12px}
.case-details{margin-top:auto}
.case-logo.region-skane-logo img{filter:none;mix-blend-mode:normal;opacity:1;width:auto;max-width:125px;background:white}
@media(min-width:651px) and (max-width:1100px){.case-group .cases,.case-group-three .cases{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Monochrome project marks and room for the approved longer summaries. */
.case-logo.region-skane-logo img{filter:grayscale(1) brightness(.3);mix-blend-mode:multiply;background:transparent;opacity:.9}
.case-logo.karlastaden-logo img{filter:brightness(0);mix-blend-mode:multiply;opacity:.85}
.case p.case-intro{min-height:3.3em}
.case-details{margin-top:auto;padding-top:0}
.case{min-height:280px}



/* Clear text links without platform-dependent emoji arrows. */
.button,.nav-contact,.way a,.contact-links a,.contact-map>a{font-weight:700}

.case-logo.swedish-match-logo img{filter:brightness(0);mix-blend-mode:multiply;opacity:.85}

/* Match the visible logo height despite padding in the source image. */
.case-logo.hop-logo{position:relative}
.case-logo.hop-logo img{position:absolute;width:267px;max-width:none;height:104px;left:-10px;top:-29px}

/* Experience groups start collapsed and work with keyboard and touch. */
.case-group>summary.experience-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:20px 0;border-bottom:1px solid var(--line);color:var(--action)}
.experience-toggle::-webkit-details-marker{display:none}
.experience-toggle .group-title{margin:0;padding:0;border:0;font-weight:700}
.experience-toggle:hover .group-title{text-decoration:underline;text-underline-offset:5px}
.experience-toggle:focus-visible{outline:2px solid var(--action);outline-offset:5px}
.experience-symbol{position:relative;flex:0 0 16px;width:16px;height:16px}
.experience-symbol::before,.experience-symbol::after{content:"";position:absolute;background:currentColor;left:0;top:7px;width:16px;height:2px}
.experience-symbol::after{transform:rotate(90deg)}
.case-group[open]>.experience-toggle .experience-symbol::after{display:none}
.case-group[open]>.cases{margin-top:24px}
.case-group:not([open])>.cases{display:none}
