:root{--ink:#173b3e;--paper:#f6f7f5;--line:#cbd3d0;--accent:#c9e95e;--muted:#516568}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #689800;outline-offset:6px}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.header{display:flex;align-items:center;justify-content:space-between;padding:25px 5.5%;border-bottom:1px solid var(--line);gap:24px}.brand{font-size:42px;line-height:1;font-weight:600;letter-spacing:-2px}.brand-dot{color:#729634}.brand small{display:block;font-size:10px;letter-spacing:2.2px;margin-top:10px;font-weight:500}nav{display:flex;align-items:center;gap:30px;font-size:14px}nav a:hover,.text-link:hover{color:#53762b}.nav-contact{border:1px solid var(--ink);padding:10px 19px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;gap:4%;padding:64px 5.5% 50px;max-width:1700px;margin:auto}.eyebrow{font-size:12px;letter-spacing:2.2px;font-weight:700;margin:0 0 25px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,5.5vw,86px);letter-spacing:-4px;line-height:1.04;font-weight:500;margin-bottom:28px}h1 em{font-family:Georgia,serif;font-weight:400}p{color:var(--muted)}.intro{max-width:510px;font-size:18px;line-height:1.7}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:30px}.button{display:inline-block;background:var(--ink);color:#fff;padding:14px 22px;font-size:14px;font-weight:600;text-align:center;border:1px solid var(--ink);transition:background .2s}.button:hover{background:#2c5558}.text-link{font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:6px}.hero-note{font-size:12px;margin-top:30px}.hero-image{margin:0;align-self:stretch;min-width:0;display:flex;flex-direction:column}.hero-image img{width:100%;height:100%;min-height:420px;max-height:580px;object-fit:cover;display:block;background:#d8dfdf}.hero-image figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px;margin-top:13px;font-size:12px;color:var(--muted)}.hero-image figcaption span:first-child{font-weight:600;color:var(--ink)}.service-strip{margin:0 5.5%;padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:14px}.section{padding:92px 5.5%;scroll-margin-top:20px}.section-heading{display:grid;grid-template-columns:.65fr 1.2fr 1fr;gap:40px;align-items:start;margin-bottom:48px}h2{font-size:clamp(36px,4vw,60px);font-weight:500;line-height:1.12;letter-spacing:-2.2px;margin-bottom:0}.section-heading>p:last-child{max-width:350px;margin:8px 0 0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.service{border-top:1px solid var(--ink);padding-top:25px;display:flex;flex-direction:column}.number{font-family:Georgia,serif;font-size:22px;margin-bottom:23px;color:#6c8683}h3{font-size:25px;line-height:1.3;letter-spacing:-.5px;font-weight:500;margin-bottom:18px}.service p{font-size:16px;max-width:370px}.service ul{list-style:none;padding:0;margin:5px 0 28px;font-size:14px;color:var(--muted)}.service li{border-bottom:1px solid var(--line);padding:9px 0}.service .text-link{margin-top:auto}.process{background:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:9%;color:white}.process .eyebrow{color:var(--accent)}.process h2{margin-bottom:25px}.process p{color:#c4d1cf}.process-intro>p:not(.eyebrow){max-width:365px}.light{background:var(--accent);color:var(--ink);border-color:var(--accent);margin-top:16px}.light:hover{background:#d7f278}.steps{list-style:none;padding:0;margin:0}.steps li{display:flex;gap:28px;padding:24px 0;border-top:1px solid #547073}.steps li:first-child{padding-top:0;border-top:0}.steps li>span{font-family:Georgia,serif;font-size:28px;color:var(--accent)}.steps h3{font-size:22px;margin-bottom:9px}.steps p{margin-bottom:0}.bim{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;border-bottom:1px solid var(--line)}.bim h2{font-size:clamp(32px,3.6vw,52px)}.bim-copy{padding-top:45px;max-width:470px}.outline{background:transparent;color:var(--ink);margin-top:12px}.outline:hover{background:var(--ink);color:white}.contact{background:#e6edeb}.contact h2{font-size:clamp(50px,6.5vw,92px);line-height:1.02;margin-bottom:36px}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}.contact-bottom>p{max-width:510px;font-size:18px;margin:0}.contact-note{font-size:12px;margin-top:13px;max-width:340px}footer{padding:33px 5.5%;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px}footer p{margin:0}.footer-brand{font-size:32px;font-weight:600;letter-spacing:-1.6px}footer a:last-child{text-decoration:underline;text-underline-offset:4px}@media(min-width:1600px){.section,footer{padding-left:max(5.5%,calc((100vw - 1515px)/2));padding-right:max(5.5%,calc((100vw - 1515px)/2))}}@media(max-width:1000px){nav{gap:18px}.hero{gap:30px}h1{letter-spacing:-2.5px}.hero-image img{min-height:390px}.section-heading{grid-template-columns:1fr 2fr}.section-heading>p:last-child{grid-column:2}.service-grid{gap:25px}.service-strip{flex-wrap:wrap}.process{gap:5%}.section{padding-top:65px;padding-bottom:65px}}@media(max-width:720px){html{scroll-padding-top:20px}.header{position:relative;padding-top:20px;padding-bottom:20px}.brand{font-size:35px}.brand small{font-size:9px}.menu-toggle{display:flex;gap:15px;align-items:center;border:1px solid var(--line);padding:8px 12px;background:transparent;font-size:14px}nav{display:none;position:absolute;left:0;right:0;top:100%;z-index:5;background:var(--paper);padding:25px 5.5%;border-bottom:1px solid var(--line);box-shadow:0 15px 25px #173b3e15}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:20px}.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:30px}.eyebrow{font-size:12px;letter-spacing:1.6px;margin-bottom:23px}h1{font-size:58px;letter-spacing:-3px}.intro{font-size:17px}.hero-actions{gap:20px}.hero-note{margin-bottom:0}.hero-image{margin-top:8px}.hero-image img{min-height:0;height:auto;aspect-ratio:4/3}.hero-image figcaption{font-size:12px}.service-strip{display:grid;grid-template-columns:1fr 1fr;font-size:12px;gap:10px;padding:20px 0}.section{padding-top:55px;padding-bottom:55px}.section-heading{display:block;margin-bottom:35px}.section-heading>p:last-child{margin-top:22px}h2{font-size:40px;letter-spacing:-1.6px}.service-grid{grid-template-columns:1fr;gap:38px}.service{padding-top:20px}.number{margin-bottom:14px}.service p{max-width:none}.service ul{margin-bottom:22px}.process,.bim,.contact-bottom{grid-template-columns:1fr;gap:35px}.steps{margin-top:10px}.steps li{gap:20px}.bim-copy{padding-top:0;max-width:none}.contact h2{font-size:60px}.contact-bottom>p{font-size:17px}footer{display:grid;grid-template-columns:1fr 1fr;gap:18px}footer p{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
.brand{display:block;letter-spacing:normal}.brand img{display:block;width:190px;height:auto}.brand small{font-size:10px;letter-spacing:1.5px;margin-top:7px}.footer-brand img{display:block;width:130px;height:auto}@media(max-width:720px){.brand img{width:145px}.brand small{font-size:9px}}
.brand,.footer-brand{border:1px solid #383838;padding:5px;line-height:0;display:inline-block}.brand img,.footer-brand img{filter:grayscale(1) contrast(10) invert(1) contrast(.7) brightness(1.46);mix-blend-mode:multiply}.brand img{width:180px}.footer-brand img{width:120px}@media(max-width:720px){.brand img{width:140px}}
:root{--ink:#1e6575;--paper:#f5f8f9;--line:#c6d8dd;--accent:#ffffff;--muted:#435f67}.brand,.footer-brand{background:#383838;border-color:#383838}.brand img,.footer-brand img{filter:grayscale(1) contrast(10);mix-blend-mode:screen}.brand-dot{color:var(--ink)}.button:hover{background:#174e5b}.text-link:hover,nav a:hover{color:#143f4a}.light{background:#fff;color:#1e6575;border-color:#fff}.light:hover{background:#dbeaf0}.process p{color:#deedf0}.steps li{border-color:#75a2ad}.steps li>span,.process .eyebrow{color:#fff}.contact{background:#e2eef1}.number{color:#457e8b}.outline:hover{background:#1e6575;color:#fff}a:focus-visible,button:focus-visible{outline-color:#1e6575}
.brand,.footer-brand{background:transparent;border:0;padding:0;line-height:0}.brand img,.footer-brand img{filter:none;mix-blend-mode:normal}
.hero-copy .intro{color:#000}
.hero{display:flex;flex-direction:column;gap:36px;max-width:none;padding:55px 0 40px}.hero-copy{padding:0 5.5%;width:100%}.hero-copy h1 br{display:none}.hero-copy h1{max-width:1200px;font-size:clamp(46px,5.5vw,86px)}.hero-copy h1 em:before{content:" "}.hero-copy .intro{max-width:800px}.hero-image{width:100%;margin:0}.hero-image img{width:100%;height:clamp(320px,48vw,760px);min-height:0;max-height:none;object-fit:cover;object-position:center}.hero-image figcaption{padding:0 5.5%}@media(max-width:720px){.hero{padding-top:35px;gap:28px}.hero-copy h1{font-size:48px;letter-spacing:-2px;line-height:1.1}.hero-image img{height:340px;aspect-ratio:auto}}
.hero{position:relative;display:grid;grid-template-columns:1fr;padding:0 0 38px;gap:0;isolation:isolate}.hero-image{grid-area:1/1;position:relative;display:block;z-index:0}.hero-image:before{content:"";position:absolute;inset:0 0 32px;background:linear-gradient(90deg,rgba(245,248,249,.96) 0%,rgba(245,248,249,.88) 29%,rgba(245,248,249,.48) 52%,rgba(245,248,249,0) 78%);pointer-events:none}.hero-image img{height:clamp(640px,52vw,850px)}.hero-image figcaption{min-height:32px;margin-top:0;padding-top:10px}.hero-copy{grid-area:1/1;position:relative;z-index:1;align-self:center;padding:50px 5.5% 65px;width:64%;margin-bottom:32px}.hero-copy h1{font-size:clamp(48px,5.4vw,80px);max-width:750px}.hero-copy h1 br{display:block}.hero-copy .intro{max-width:610px}.hero-note{color:#173b3e}@media(max-width:720px){.hero{padding-top:0;gap:0;padding-bottom:28px}.hero-copy{width:100%;padding:35px 5.5% 55px}.hero-copy h1{font-size:48px}.hero-image img{height:750px;object-position:65% center}.hero-image:before{inset:0 0 50px;background:linear-gradient(180deg,rgba(245,248,249,.95),rgba(245,248,249,.85) 55%,rgba(245,248,249,.16))}.hero-image figcaption{min-height:50px}.hero-copy .intro{font-size:17px}.hero-copy{margin-bottom:50px}}
.hero-image img{object-position:center center}@media(max-width:720px){.hero-image img{object-position:35% center}}
.hero-image img{height:auto;min-height:0;max-height:none;object-fit:contain;object-position:center}.hero-copy{width:51%;padding-top:35px;padding-bottom:45px}.hero-copy h1{font-size:clamp(44px,4.8vw,74px)}.hero-image:before{background:linear-gradient(90deg,rgba(245,248,249,.94),rgba(245,248,249,.78) 25%,rgba(245,248,249,.18) 48%,transparent 62%)}@media(max-width:1000px){.hero-copy{width:58%}.hero-copy h1{font-size:44px}.hero-copy .intro{font-size:16px}}@media(max-width:720px){.hero-copy{width:100%;align-self:start;padding:30px 5.5% 240px}.hero-copy h1{font-size:46px}.hero-image img{min-height:920px;object-fit:contain;object-position:center bottom;background:#f5f8f9}.hero-image:before{background:linear-gradient(180deg,rgba(245,248,249,.95),rgba(245,248,249,.85) 48%,transparent 75%)}.hero-image{align-self:stretch}}
body{background:#e2eef1;isolation:isolate}.page-background{position:fixed;inset:0;z-index:-1;pointer-events:none;background:#e2eef1}.page-background img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.header{background:rgba(245,248,249,.9);backdrop-filter:blur(12px)}.hero{display:block;min-height:calc(100svh - 150px);padding:0;isolation:auto}.hero-copy{width:51%;margin:0;padding:60px 5.5%;min-height:calc(100svh - 150px);background:linear-gradient(90deg,rgba(245,248,249,.92),rgba(245,248,249,.75) 70%,rgba(245,248,249,0))}.hero-image{position:absolute;bottom:12px;left:0;width:100%;margin:0}.hero{position:relative}.hero-image img,.hero-image:before{display:none}.hero-image figcaption{padding:0 5.5%;color:#173b3e;font-size:12px;min-height:0}.hero-image figcaption span{background:rgba(245,248,249,.82);padding:2px 8px}.service-strip{margin:0;padding:24px 5.5%;background:rgba(245,248,249,.88);backdrop-filter:blur(8px)}.services,.bim{background:rgba(245,248,249,.86);backdrop-filter:blur(12px)}.process{background:rgba(30,101,117,.88);backdrop-filter:blur(10px)}.contact{background:rgba(226,238,241,.88);backdrop-filter:blur(12px)}footer{background:rgba(245,248,249,.9);backdrop-filter:blur(12px)}@media(max-width:1000px){.hero-copy{width:65%}}@media(max-width:720px){.page-background img{object-fit:contain;object-position:center bottom}.hero{min-height:850px}.hero-copy{width:100%;min-height:850px;padding:35px 5.5% 240px;background:linear-gradient(180deg,rgba(245,248,249,.95),rgba(245,248,249,.84) 55%,rgba(245,248,249,.1))}.hero-image{bottom:10px}.hero-image figcaption{gap:6px}.header{backdrop-filter:blur(8px)}}
.service-strip,.services,.bim{background:rgba(245,248,249,.62);backdrop-filter:none}.contact{background:rgba(226,238,241,.62);backdrop-filter:none}.process{background:rgba(30,101,117,.64);backdrop-filter:none}footer{background:rgba(245,248,249,.68);backdrop-filter:none}
.page-background img{position:absolute;inset:0}.background-evening{opacity:var(--evening-opacity,0)}.process{background:rgba(30,101,117,.78)}@media(prefers-reduced-motion:reduce){.background-evening{transition:none}}
.contact{position:relative;isolation:isolate;min-height:80svh;background:transparent;backdrop-filter:none;display:flex;flex-direction:column;padding-bottom:65px}.contact:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(245,248,249,.92) 0%,rgba(245,248,249,.75) 35%,rgba(245,248,249,.28) 54%,transparent 72%);pointer-events:none}.contact .eyebrow{color:#435f67}.contact h2{color:var(--ink);font-size:clamp(48px,4.8vw,74px);max-width:750px}.contact-bottom{display:flex;flex-direction:column;gap:36px;width:100%}.contact-bottom>p{color:#000;max-width:610px;font-size:18px}.contact-bottom>div{align-self:center;text-align:center;margin-top:12px}.contact .contact-note{color:#173b3e;max-width:none;display:block;background:rgba(245,248,249,.88);padding:5px 10px}.contact .button{background:var(--ink);color:#fff}.contact .button:hover{background:#174e5b}@media(max-width:720px){.contact{min-height:850px;padding-bottom:65px}.contact:before{background:linear-gradient(180deg,rgba(245,248,249,.95),rgba(245,248,249,.84) 55%,rgba(245,248,249,.1))}.contact h2{font-size:46px}.contact-bottom>p{font-size:17px}.contact-bottom>div{margin-top:18px;max-width:100%}}
.contact-bottom>p{max-width:450px;width:48%;line-height:1.65}.contact-bottom>div{align-self:flex-start;text-align:left;margin-top:0}.contact .contact-note{width:fit-content;max-width:100%;padding:5px 10px}@media(max-width:720px){.contact-bottom>p{width:100%;max-width:450px}.contact-bottom>div{align-self:flex-start;text-align:left;margin-top:0}}
.hero-copy .intro{width:100%;max-width:450px;line-height:1.65}
.hero-copy>.eyebrow{margin-bottom:8px}.hero-copy>.hero-note{margin:0 0 26px;font-size:14px}.hero-image figcaption{justify-content:flex-end}
/* Undersidor och gemensam meny */
.header nav{gap:clamp(12px,1.5vw,28px);font-size:15px}
.nav-services{position:relative}.nav-services summary{cursor:pointer;list-style:none}.nav-services summary::after{content:' ▾'}.nav-services>div{position:absolute;top:32px;left:-20px;min-width:245px;padding:20px;background:#f5f8f9;border:1px solid #c6d6da;box-shadow:0 12px 24px #183c3e22;z-index:50;display:grid;gap:15px}.header a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
.subpage-intro{padding:80px max(5.4vw,24px) 90px;min-height:650px;background:linear-gradient(90deg,rgba(245,248,249,.94),rgba(245,248,249,.74) 40%,rgba(245,248,249,0) 75%)}
.subpage-intro h1{font-size:clamp(42px,5.8vw,88px);line-height:1.07;font-weight:400;letter-spacing:-.045em;max-width:850px;color:#1e6575;margin:35px 0}
.subpage-intro h1 em{font-family:Georgia,serif;font-weight:400}.subpage-intro .intro{max-width:540px;color:#000;margin-bottom:32px}.subpage-intro .hero-actions{flex-wrap:wrap}
.subpage-panel{padding:70px max(5.4vw,24px);background:rgba(245,248,249,.87);border-top:1px solid #ffffff80;color:#183c3e}.subpage-panel h2{font-size:clamp(32px,3.6vw,54px);line-height:1.12;font-weight:400;color:#1e6575;margin:0 0 30px}.subpage-panel h3{font-size:25px;line-height:1.3;margin:0 0 15px}.subpage-panel p{line-height:1.7;font-size:19px;max-width:850px}.subpage-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin:35px 0}.subpage-columns article,.subpage-columns>div{padding-top:20px;border-top:1px solid #aac0c6}.reading-width{max-width:740px}.subpage-panel blockquote{margin:0;font-size:24px;line-height:1.55;font-family:Georgia,serif}.subpage-panel cite{display:block;font:16px Arial,sans-serif;margin-top:18px}.image-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:35px}.image-pair figure,.project-picture{margin:0}.image-pair img,.project-picture img{display:block;width:100%;height:auto}.project-picture img{max-height:650px;object-fit:contain;background:#eef2f2}.subpage-panel figcaption,.image-note{font-size:14px!important;margin-top:12px;color:#435f67}.newsletter-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;list-style:none;padding:0}.newsletter-list a{display:block;padding:22px;border:1px solid #aac0c6}.subpage-panel a{overflow-wrap:anywhere}
@media(max-width:1000px){.header{flex-wrap:wrap}.header nav{flex-wrap:wrap}.nav-services>div{position:absolute}}
@media(max-width:720px){.subpage-intro{padding-top:40px;min-height:560px;background:rgba(245,248,249,.8)}.subpage-intro h1{font-size:48px;overflow-wrap:anywhere}.subpage-panel{padding-top:45px;padding-bottom:45px}.image-pair{grid-template-columns:1fr}.nav-services{width:100%}.nav-services>div{position:static;margin-top:15px;box-shadow:none}.header nav{font-size:17px}.subpage-columns{grid-template-columns:1fr}}

.background-husdrommar{opacity:0}body[data-page="husdrommar"] .background-husdrommar{opacity:1;object-position:center center}body[data-page="husdrommar"] .background-day,body[data-page="husdrommar"] .background-evening{opacity:0}@media(max-width:720px){body[data-page="husdrommar"] .background-husdrommar{object-fit:cover;object-position:60% center}}
/* Visa hela stugbilden utan att beskära skog och sjö. */
body[data-page="husdrommar"] .page-background{background:#34433e}
body[data-page="husdrommar"] .background-husdrommar{object-fit:contain;object-position:center center}
@media(max-width:720px){body[data-page="husdrommar"] .background-husdrommar{object-fit:contain;object-position:center center}}
body[data-page="husdrommar"] .background-husdrommar{object-fit:cover;object-position:center center}@media(max-width:720px){body[data-page="husdrommar"] .background-husdrommar{object-fit:cover;object-position:60% center}}
.text-editor-bar{position:fixed;bottom:16px;right:16px;z-index:1000;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:12px;background:#f5f8f9;border:1px solid #aac0c6;box-shadow:0 4px 20px #0003;color:#183c3e;font:14px Arial,sans-serif}.text-editor-bar button{border:1px solid #1e6575;background:#1e6575;color:white;padding:10px 14px;cursor:pointer;font:inherit;white-space:nowrap}.text-editor-bar button[aria-pressed=true]{background:#183c3e}.editable-text{outline:1px dashed #1e6575;outline-offset:5px;cursor:text}.editable-text:focus{outline:2px solid #1e6575;background:#ffffffb0}.empty-text-slot{min-height:130px}.empty-text-slot:empty{border:1px dashed #aac0c6;padding:12px}.empty-text-slot:empty::before{content:attr(data-placeholder);font-size:17px;color:#435f67}.editable-text:empty::before{pointer-events:none}@media(max-width:720px){.text-editor-bar{flex-wrap:wrap;bottom:8px;right:8px}.text-editor-bar span{font-size:12px;max-width:250px}}@media print{.text-editor-bar{display:none}.editable-text{outline:none}}
.background-ritningstjanster{opacity:0}body[data-page="ritningstjanster"] .background-ritningstjanster{opacity:1;object-fit:cover;object-position:center center}body[data-page="ritningstjanster"] .background-day,body[data-page="ritningstjanster"] .background-evening{opacity:0}@media(max-width:720px){body[data-page="ritningstjanster"] .background-ritningstjanster{object-position:65% center}}
.team-layout>article{display:flow-root;margin-bottom:65px}.team-layout>article:last-child{margin-bottom:0}.team-portrait{float:right;width:clamp(220px,24vw,360px);height:auto;margin:0 0 30px 60px;display:block}.team-layout>article p{max-width:850px}@media(max-width:720px){.team-portrait{float:none;width:100%;max-width:320px;margin:0 0 30px}.team-layout>article{margin-bottom:50px}}
/* Om Linjera: separata svartvita bakgrundsporträtt. */
.team-background{display:none;position:absolute;inset:0;background:#d1d1d1;overflow:hidden}body[data-page="om-linjera"] .page-background>img{display:none}body[data-page="om-linjera"] .team-background{display:block}.page-background .team-background img{width:65%;left:auto;right:0;height:100%;object-fit:contain;object-position:right center;filter:grayscale(1)}.portrait-nanna,.portrait-anna{opacity:0}body[data-page="om-linjera"] .portrait-nanna{animation:portrait-nanna-fade 30s infinite}body[data-page="om-linjera"] .portrait-anna{animation:portrait-anna-fade 30s infinite}body[data-page="om-linjera"] .portrait-sara{animation:portrait-drift 30s ease-in-out infinite}body[data-page="om-linjera"] .subpage-intro{background:linear-gradient(90deg,rgba(245,248,249,.97),rgba(245,248,249,.86) 35%,rgba(245,248,249,.25) 64%,transparent 84%)}body[data-page="om-linjera"] .subpage-panel{background:rgba(245,248,249,.87)}.portrait-pause{margin-top:28px;padding:9px 14px;border:1px solid #435f67;background:#f5f8f9bd;color:#183c3e;font:14px Arial,sans-serif;cursor:pointer}body.portraits-paused .team-background img{animation-play-state:paused!important}
@keyframes portrait-nanna-fade{0%,25%{opacity:0;transform:translateX(1.5%)}33%,58%{opacity:1;transform:translateX(0)}66%,100%{opacity:0;transform:translateX(-1.5%)}}@keyframes portrait-anna-fade{0%,58%{opacity:0;transform:translateX(1.5%)}66%,92%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-1.5%)}}@keyframes portrait-drift{0%,100%{transform:translateX(0)}50%{transform:translateX(-1.5%)}}
@media(max-width:720px){.page-background .team-background img{width:100%;object-position:right top}body[data-page="om-linjera"] .subpage-intro{background:linear-gradient(90deg,rgba(245,248,249,.95),rgba(245,248,249,.8) 45%,rgba(245,248,249,.35))}}@media(prefers-reduced-motion:reduce){body[data-page="om-linjera"] .team-background img{animation:none}.portrait-pause{display:none}}
/* Överlappande porträttsvep från höger till vänster. */
body[data-page="om-linjera"] .team-background{background:#fff;mask-image:linear-gradient(90deg,transparent 0%,#000 33%,#000 68%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 33%,#000 68%,transparent 100%)}
body[data-page="om-linjera"] .page-background{background:#fff}
body[data-page="om-linjera"] .page-background .team-background img{width:65%;left:18%;right:auto;object-position:center center;object-fit:contain;opacity:0;animation:portrait-sweep 36s linear infinite;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
body[data-page="om-linjera"] .page-background .portrait-sara{animation-delay:-6s}
body[data-page="om-linjera"] .page-background .portrait-nanna{animation-delay:-30s}
body[data-page="om-linjera"] .page-background .portrait-anna{animation-delay:-18s}
@keyframes portrait-sweep{0%{transform:translateX(85%);opacity:0}8%{opacity:.7}17%{opacity:1}27%{opacity:1}40%{opacity:.65}50%{transform:translateX(-85%);opacity:0}100%{transform:translateX(-85%);opacity:0}}
body[data-page="om-linjera"] .subpage-intro{background:linear-gradient(90deg,rgba(255,255,255,.94),rgba(255,255,255,.78) 28%,rgba(255,255,255,.15) 58%,transparent 78%)}
@media(max-width:720px){body[data-page="om-linjera"] .page-background .team-background img{width:100%;left:0}body[data-page="om-linjera"] .subpage-intro{background:rgba(255,255,255,.68)}}
@media(prefers-reduced-motion:reduce){body[data-page="om-linjera"] .page-background .team-background img{animation:none;opacity:0;transform:none}body[data-page="om-linjera"] .page-background .portrait-sara{opacity:1}}
/* Tre porträtt kant i kant, duplicerade för en obruten loop. */
.portrait-track{--portrait-width:max(33.333333vw,48svh);position:absolute;inset:0 auto 0 0;display:flex;width:max-content;height:100%;animation:none}.portrait-set{display:flex;flex:none;height:100%;gap:0}
body[data-page="om-linjera"] .portrait-track{animation:portrait-continuous-loop 45s linear infinite}
body[data-page="om-linjera"] .page-background .team-background .portrait-set img{position:static;inset:auto;display:block;flex:0 0 var(--portrait-width);width:var(--portrait-width);height:100%;object-fit:cover;object-position:center 28%;opacity:1;animation:none;transform:none;mask-image:none;-webkit-mask-image:none;filter:grayscale(1)}
body[data-page="om-linjera"] .team-background{mask-image:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent)}
body.portraits-paused .portrait-track{animation-play-state:paused!important}
@keyframes portrait-continuous-loop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){body[data-page="om-linjera"] .portrait-track{animation:none}}
/* Mjuka överlapp vid skarvarna utan att ändra loopens takt. */
.portrait-track{--portrait-overlap:clamp(35px,5vw,100px)}
.portrait-set{width:calc(3 * var(--portrait-width))}
body[data-page="om-linjera"] .page-background .team-background .portrait-set img{flex-basis:calc(var(--portrait-width) + var(--portrait-overlap));width:calc(var(--portrait-width) + var(--portrait-overlap));max-width:none;margin-right:calc(-1 * var(--portrait-overlap));mask-image:linear-gradient(90deg,transparent 0,#000 var(--portrait-overlap),#000 calc(100% - var(--portrait-overlap)),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--portrait-overlap),#000 calc(100% - var(--portrait-overlap)),transparent 100%)}
/* Snabbare loop och en mjuk ljusblixt längs de rörliga skarvarna. */
body[data-page="om-linjera"] .portrait-track{animation-duration:36s}
.portrait-set{position:relative}
.portrait-set::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--portrait-width) - 45px),rgba(255,255,255,.08) calc(var(--portrait-width) - 26px),rgba(255,255,255,.75) calc(var(--portrait-width) - 5px),rgba(255,255,255,.95) calc(var(--portrait-width) - 2px),rgba(255,255,255,.35) var(--portrait-width));filter:blur(8px);opacity:.85}
@media(prefers-reduced-motion:reduce){body[data-page="om-linjera"] .portrait-track{animation:none}.portrait-set::after{display:none}}
/* Återställ tydliga skarvar mellan porträtten. */
.portrait-set::after{display:none}
body[data-page="om-linjera"] .page-background .team-background .portrait-set img{flex-basis:var(--portrait-width);width:var(--portrait-width);margin-right:0;mask-image:none;-webkit-mask-image:none}
/* Individuell inramning för jämnare axelhöjd i porträttremsan. */
body[data-page="om-linjera"] .page-background .team-background .portrait-set img:nth-child(1){object-fit:contain;object-position:center 45%;background:#cecece;transform:scale(.94);clip-path:inset(0)}
body[data-page="om-linjera"] .page-background .team-background .portrait-set img:nth-child(2){object-position:center 35%;transform:scale(1.08);clip-path:inset(0)}
body[data-page="om-linjera"] .page-background .team-background .portrait-set img:nth-child(3){object-position:center 32%}
.portrait-frame{flex:0 0 var(--portrait-width);width:var(--portrait-width);height:100%;position:relative;overflow:hidden;background:#cecece}
body[data-page="om-linjera"] .page-background .team-background .portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transform:none;background:none}
body[data-page="om-linjera"] .page-background .team-background .portrait-frame:nth-child(1) img{object-fit:contain;object-position:center 45%;transform:scale(.94)}
body[data-page="om-linjera"] .page-background .team-background .portrait-frame:nth-child(2) img{object-fit:cover;object-position:center 35%;transform:scale(1.08)}
body[data-page="om-linjera"] .page-background .team-background .portrait-frame:nth-child(3) img{object-fit:cover;object-position:center 32%}
/* Fyll varje bildruta och justera Nannas utsnitt uppåt. */
body[data-page="om-linjera"] .page-background .team-background .portrait-frame:nth-child(1) img{object-fit:cover;object-position:center 28%;transform:none}
body[data-page="om-linjera"] .page-background .team-background .portrait-frame:nth-child(2) img{object-fit:cover;object-position:center top;transform:scale(1.12);transform-origin:center top}
.portrait-set,.portrait-track{gap:0}.portrait-frame{margin:0;padding:0;border:0}
/* En gemensam porträttremsa med samma bakgrund och höjd. */
.uniform-portrait-track{gap:0;height:100%;width:max-content}
body[data-page="om-linjera"] .page-background .team-background .uniform-portrait-strip{position:static;inset:auto;flex:none;display:block;width:auto;height:100%;max-width:none;object-fit:fill;opacity:1;animation:none;transform:none;margin:0;padding:0;border:0;mask-image:none;-webkit-mask-image:none;filter:grayscale(1)}
.subpage-panel p[data-edit-id="reviews-google-intro"]{max-width:none;width:100%;font-size:clamp(14px,1.23vw,19px)}
@media(min-width:1100px){.subpage-panel p[data-edit-id="reviews-google-intro"]{white-space:nowrap}}
.social-icons{display:flex;align-items:center;gap:12px}.social-icons a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #1e6575;border-radius:50%;color:#1e6575;background:#f5f8f980;transition:background .15s,color .15s}.social-icons a:hover,.social-icons a:focus-visible{background:#1e6575;color:#fff}.social-icons svg{width:23px;height:23px;display:block}
.profile-linkedin{display:inline-flex;align-items:center;gap:8px;margin:-12px 0 20px;color:#1e6575;font-size:17px;font-weight:600;text-decoration:none}.profile-linkedin svg{width:26px;height:26px}.profile-linkedin:hover span,.profile-linkedin:focus-visible span{text-decoration:underline;text-underline-offset:4px}
body[data-page="om-linjera"] .page-background .team-background .uniform-portrait-strip{filter:none}

.background-byggprojekt{opacity:0}body[data-page="byggprojekt"] .background-byggprojekt{opacity:1;object-fit:cover;object-position:center center}body[data-page="byggprojekt"] .background-day,body[data-page="byggprojekt"] .background-evening{opacity:0}@media(max-width:720px){body[data-page="byggprojekt"] .background-byggprojekt{object-fit:cover;object-position:60% center}}

body[data-page="byggprojekt"] p[data-edit-id="project-original-contact"]{margin-bottom:0}

.drawing-background{display:none;position:absolute;inset:0;overflow:hidden;background:#fff;mask-image:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent)}
body[data-page="bygglovshandlingar"] .page-background>img{display:none}
body[data-page="bygglovshandlingar"] .page-background{background:#fff}
body[data-page="bygglovshandlingar"] .drawing-background{display:block}
.drawing-track{display:flex;position:absolute;inset:0 auto 0 0;width:max-content;height:100%;gap:0;transform:translate3d(var(--drawing-offset,0px),0,0);will-change:transform}
.drawing-set{display:flex;flex:none;height:100%;gap:0}
.page-background .drawing-set img{position:static;inset:auto;display:block;flex:none;height:100%;width:auto;min-width:50vw;max-width:none;object-fit:contain;margin:0;padding:0;border:0;background:#fff}

body.portraits-paused .drawing-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.drawing-track{animation:none}}
/* Medlemsansökan i förslagsversionen. */
.membership-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(35px,6vw,100px);max-width:1400px;margin:auto;align-items:start}
.membership-copy{max-width:600px}.membership-copy h3{margin-bottom:22px}.membership-price{padding:20px 24px;background:#e6f0f2;border-left:3px solid #1e6575;border-radius:0 8px 8px 0}.subpage-panel .membership-small{font-size:14px;line-height:1.6}.membership-signoff{margin-top:40px!important}
.membership-form{padding:clamp(22px,3vw,42px);border:1px solid #c6d8dd;border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 12px 35px #173b3e0b}.membership-form h2{font-size:32px;margin-bottom:15px;letter-spacing:-1px}.form-required-note{display:block;font-size:13px;color:#435f67;margin-bottom:24px}.membership-fields{display:grid;gap:22px}.membership-fields>label{display:grid;gap:8px;font-size:15px;font-weight:600;color:#183c3e}.membership-fields input:not([type=radio]):not([type=checkbox]),.membership-fields textarea{display:block;width:100%;padding:13px 15px;border:1px solid #b4c7ce;border-radius:7px;background:#fff;font:16px/1.5 Arial,sans-serif;color:#183c3e}.membership-fields textarea{resize:vertical}.membership-fields input:focus-visible,.membership-fields textarea:focus-visible{outline:2px solid #1e6575;outline-offset:2px}.membership-fields input::placeholder,.membership-fields textarea::placeholder{color:#74858a}.membership-fields fieldset{border:0;margin:0;padding:0;min-width:0}.membership-fields legend{font-size:15px;font-weight:600;margin-bottom:10px}.form-options{display:flex;gap:28px;flex-wrap:wrap}.form-options label,.form-consent{display:flex;align-items:baseline;gap:10px;font-size:15px;font-weight:400;line-height:1.6}.membership-fields input[type=radio],.membership-fields input[type=checkbox]{accent-color:#1e6575;width:18px;height:18px;flex-shrink:0}.membership-fields a{text-decoration:underline;text-underline-offset:3px}.membership-form>.button{margin-top:28px;width:100%;border-radius:7px;cursor:pointer}.membership-form>.membership-small{margin:14px 0 0}.membership-status{font-size:14px;color:#183c3e;margin-top:12px}
@media(max-width:900px){.membership-layout{grid-template-columns:1fr}.membership-copy{max-width:none}.membership-form{max-width:700px;width:100%}}

.membership-fields>label.form-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400}.membership-fields>label.form-consent input{margin:3px 0 0}.membership-fields>label.form-consent span{min-width:0}
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.membership-form>.button:disabled{opacity:.65;cursor:wait}

.services{color:#15383f}.services p,.services li,.services .eyebrow,.services .number{color:#213b42}.services h2,.services h3,.services a{color:#15383f}.services a:hover{color:#0c252b}

.bim{color:#15383f}.bim p,.bim .eyebrow{color:#213b42}.bim h2,.bim h3,.bim a{color:#15383f}.bim a.outline{border-color:#15383f}.bim a.outline:hover{background:#15383f;color:#fff}

.bim .bim-copy{background:rgba(255,255,255,.92);padding:32px 36px;max-width:550px;align-self:start}@media(max-width:720px){.bim .bim-copy{padding:24px;max-width:none}}

#contact-title em{font-family:Georgia,serif;font-style:italic;font-weight:400}

#contact-title .contact-script,#contact-title .contact-script *{font-family:Georgia,serif!important;font-style:italic!important;font-weight:400!important}

.services .section-heading{display:block;text-align:center;margin-bottom:48px}.services #services-title{margin:0 auto}

.services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}@media(max-width:1100px){.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.services .service-grid{grid-template-columns:1fr}}

.background-visualisering{opacity:0}body[data-page="visualisering"] .background-visualisering{opacity:1;object-fit:cover;object-position:center center}body[data-page="visualisering"] .background-day,body[data-page="visualisering"] .background-evening{opacity:0}@media(max-width:720px){body[data-page="visualisering"] .background-visualisering{object-fit:cover;object-position:60% center}}

.industry-panel .image-pair img{aspect-ratio:3840/3191;height:auto;object-fit:cover;object-position:center top}

.villa-holiday-picture{margin:35px 0 0}.villa-holiday-picture img{display:block;width:100%;height:auto}

body[data-page="om-linjera"] .subpage-intro h1{font-size:clamp(34px,4vw,72px);max-width:1250px}
body[data-page="om-linjera"] .subpage-intro h1 em{white-space:nowrap}
@media(max-width:720px){body[data-page="om-linjera"] .subpage-intro h1{font-size:clamp(28px,5.2vw,37px)}body[data-page="om-linjera"] .subpage-intro h1 em{white-space:normal}}
.cookie-banner[hidden]{display:none}.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;gap:28px;padding:22px 5.4%;background:#142b31;color:#fff;box-shadow:0 -4px 24px #0002;font-size:15px}.cookie-banner strong{font-size:17px}.cookie-banner p{margin:8px 0 0;line-height:1.55}.cookie-banner a{text-decoration:underline;color:#fff}.cookie-actions{display:flex;gap:14px;flex-shrink:0}.cookie-actions button{border:1px solid #fff;background:transparent;color:#fff;padding:13px 20px;font:600 15px Arial,sans-serif;cursor:pointer}.cookie-actions button:hover{background:#fff;color:#142b31}.cookie-settings{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}@media(max-width:720px){.cookie-banner{display:block;padding:20px 24px}.cookie-actions{margin-top:18px;flex-wrap:wrap}}

/* Keep the shared menu above the page's backdrop-filter layers. */
.header{position:relative;z-index:100;padding-left:5.5%;padding-right:5.5%}.header .brand{flex-shrink:0}.header .menu-toggle{cursor:pointer}
@media(max-width:720px){.header{flex-wrap:nowrap}.header #navigation{max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}.header #navigation.open{display:flex}.header .nav-services>div{min-width:0}}

/* Mobile content stays in document flow, including the footer navigation. */
footer .social-icons{position:static;inset:auto;max-height:none;overflow:visible;padding:0;border-bottom:0;box-shadow:none;background:transparent}
@media(max-width:720px){
  main,main section,main article,.hero-copy,.subpage-columns>*{min-width:0}
  main h1,main h2,main h3,main p,.eyebrow,footer{overflow-wrap:anywhere}
  .subpage-intro{min-height:0;padding:36px 24px 48px}
  .subpage-intro h1{font-size:clamp(34px,10vw,48px)}
  .subpage-panel{padding-left:24px;padding-right:24px}
  .subpage-panel img{max-width:100%}
  .team-portrait{width:100%;max-width:320px;height:auto;object-fit:contain;float:none;margin:0 auto 28px;transform:none}
  body[data-page="om-linjera"] .team-background{display:none}
  body[data-page="om-linjera"] .portrait-pause{display:none}
  body[data-page="om-linjera"] .subpage-intro{background:rgba(245,248,249,.94)}
  .membership-layout,.membership-form,.membership-copy{min-width:0}
  .membership-form{padding:20px 16px}
  footer{grid-template-columns:minmax(0,1fr);padding-bottom:36px;gap:20px}
  footer .social-icons{grid-column:1;order:10;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:14px;width:100%}
  .text-editor-bar{position:static;margin:12px 8px;max-width:calc(100% - 16px)}
}