:root{--black:#0b0b0b;--dark:#111;--orange:#f56a00;--white:#f6f6f4;--muted:#a8a8a5;--line:#2b2b2b;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#171717;font-family:Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:78px;padding:0 max(28px,calc((100vw - var(--max))/2));display:flex;align-items:center;justify-content:space-between;background:rgba(8,8,8,.94);backdrop-filter:blur(12px);border-bottom:1px solid #252525}.brand img{width:205px;height:auto;max-height:44px;object-fit:contain;object-position:left center}.nav{display:flex;align-items:center;gap:30px;color:#fff;font-size:13px;font-weight:600;text-transform:uppercase}.nav>a:not(.btn):not(.nav-phone){height:78px;display:flex;align-items:center;position:relative}.nav>a.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--orange)}.nav-phone{color:#fff}.nav-phone:before{content:"☎";color:var(--orange);margin-right:9px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 25px;border-radius:3px;background:var(--orange);color:#fff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.4px;border:1px solid var(--orange);transition:.2s}.btn:hover{transform:translateY(-2px);filter:brightness(1.07)}.btn-outline{background:transparent;border-color:#fff}.btn-small{min-height:40px;padding:0 22px}.menu-toggle{display:none;background:none;border:0}.hero{min-height:720px;padding:150px max(28px,calc((100vw - var(--max))/2)) 80px;display:flex;align-items:center;position:relative;overflow:hidden;background:#151515 url('assets/brand-collage.jpg') center 62%/cover no-repeat;color:#fff}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.68) 43%,rgba(0,0,0,.2) 100%)}.hero-content{position:relative;z-index:2;max-width:650px}.eyebrow{color:var(--orange);font-weight:700;letter-spacing:1.8px;font-size:12px;margin:0 0 14px;text-transform:uppercase}.hero h1{font-family:'Barlow Condensed',Arial,sans-serif;font-size:clamp(54px,6vw,82px);line-height:.94;margin:0 0 25px;text-transform:uppercase;letter-spacing:.2px}.hero h1 span,h2 span{color:var(--orange)}.hero-copy{max-width:570px;color:#ddd;font-size:18px;line-height:1.65;margin:0 0 32px}.hero-actions{display:flex;gap:14px}.hero-card strong{display:block;font-size:17px;margin:8px 0}.hero-card span{color:#aaa;font-size:13px}.service-strip{background:#101010;color:#fff;display:grid;grid-template-columns:repeat(4,1fr);padding:25px max(28px,calc((100vw - var(--max))/2));gap:20px}.service-strip article{display:flex;gap:16px;align-items:center;padding:10px 25px;border-right:1px solid #444}.service-strip article:last-child{border:0}.icon{font-size:34px;color:var(--orange);line-height:1}.service-strip h3{font-family:'Barlow Condensed';font-size:20px;text-transform:uppercase;margin:0 0 5px}.service-strip p{font-size:12px;color:#aaa;margin:0;line-height:1.4}.section{max-width:var(--max);margin:auto;padding:100px max(28px,0)}.section-heading{max-width:730px;margin-bottom:50px}.section-heading h2,.about h2,.contact h2,.cta h2{font-family:'Barlow Condensed';font-size:58px;line-height:.95;text-transform:uppercase;margin:0 0 20px}.section-heading>p:last-child,.about-copy>p,.contact-intro>p{color:#626262;line-height:1.7}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{padding:30px;border:1px solid #ddd;min-height:240px;position:relative;transition:.2s}.service-card:hover{border-color:var(--orange);transform:translateY(-4px)}.service-card span{color:var(--orange);font-weight:700;font-size:13px}.service-card h3{font-family:'Barlow Condensed';font-size:30px;text-transform:uppercase;margin:55px 0 10px}.service-card p{color:#666;font-size:14px;line-height:1.65}.about{max-width:none;background:#101010;color:#fff;display:grid;grid-template-columns:1fr 1fr;padding:0}.about-image{min-height:620px;overflow:hidden}.about-image img{width:100%;height:100%;object-fit:cover}.about-copy{max-width:620px;padding:95px 7vw}.about-copy>p{color:#bbb}.about-copy .eyebrow{margin-bottom:12px}.text-link{display:inline-block;margin-top:18px;color:#fff;font-weight:700;text-transform:uppercase;font-size:13px;border-bottom:1px solid var(--orange);padding-bottom:7px}.text-link span{color:var(--orange);margin-left:8px}.projects{padding-bottom:80px}.row-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;max-width:none}.row-heading>p{max-width:380px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery figure{margin:0;overflow:hidden;background:#eee}.gallery img{width:100%;height:320px;object-fit:cover}.gallery figcaption{padding:18px 18px 20px}.gallery figcaption strong{display:block;font-family:'Barlow Condensed';font-size:24px;text-transform:uppercase}.gallery figcaption span{display:block;color:#777;font-size:12px;margin-top:5px}.dark-card{background:#111!important;color:#fff}.dark-card figcaption span{color:#999}.placeholder-room{height:320px;background:radial-gradient(circle at 70% 25%,#666 0 3%,transparent 4%),linear-gradient(135deg,#272727,#111);position:relative}.placeholder-room:before{content:"";position:absolute;left:10%;right:10%;bottom:0;height:65%;background:linear-gradient(135deg,#3a3a3a,#181818);transform:skewY(-6deg);opacity:.7}.placeholder-room:after{content:"";position:absolute;right:17%;top:18%;width:28%;height:20%;border:1px solid #555}.placeholder-room.warm{background:linear-gradient(135deg,#342b23,#111)}.cta{background:var(--orange);color:#fff;padding:65px max(28px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;align-items:center;gap:30px}.cta .eyebrow{color:#fff}.cta h2{font-size:48px;margin:0}.cta .btn{background:#111;border-color:#111}.contact{max-width:none;padding:0 max(28px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1.15fr .85fr;gap:70px;background:#0b0b0b;color:#fff}.contact h2{font-size:60px;color:#fff}.contact-intro>p{color:#bbb}.person-role{color:#fff!important;font-weight:700;margin-top:-10px!important}.contact-person{display:grid;grid-template-columns:1fr 360px;gap:55px;align-items:center;padding:90px 0}.contact-person-copy>p{color:#bbb;line-height:1.7}.contact-person-copy h2{margin-bottom:10px}.portrait-wrap{width:330px;height:330px;border-radius:50%;overflow:hidden;border:3px solid var(--orange);justify-self:center;box-shadow:0 0 0 10px rgba(245,106,0,.08)}.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 22%}.contact-details{margin-top:35px;display:grid;gap:18px}.contact-details a,.contact-details div{display:flex;flex-direction:column}.contact-details small{color:var(--orange);font-size:10px;font-weight:700;letter-spacing:1.4px;margin-bottom:4px}.contact-details strong{font-size:17px;color:#fff}.quote-form{align-self:center;background:#141414;border:1px solid #303030;padding:36px}.quote-form h3{font-family:"Barlow Condensed";font-size:42px;text-transform:uppercase;margin:0 0 8px;color:#fff}.quote-form .form-intro{color:#aaa;line-height:1.6;margin:0 0 25px}.quote-form label{color:#fff}.quote-form input,.quote-form textarea{border:1px solid #3a3a3a;background:#1d1d1d;color:#fff}.quote-form input::placeholder,.quote-form textarea::placeholder{color:#777}.quote-form input:focus,.quote-form textarea:focus{border-color:var(--orange)}.service-area{background:#0b0b0b;color:#fff;border-top:1px solid #292929;padding:70px max(28px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1fr;max-width:none;gap:70px;align-items:center;justify-content:center}.service-area>.area-map,.service-area>.area-list{width:100%;max-width:500px;justify-self:center}.service-area>.area-map{margin:0 auto}.service-area>.area-list{margin:0 auto}.area-copy h2{font-family:"Barlow Condensed";font-size:52px;line-height:.95;text-transform:uppercase;margin:0 0 18px}.area-copy>p:last-child{color:#aaa;line-height:1.7}.area-map{height:310px;background:radial-gradient(circle at 50% 50%,#2a211a,#141414 58%,#101010);position:relative;overflow:hidden;border:1px solid #303030}.area-map:before{content:"";position:absolute;inset:0;background:linear-gradient(28deg,transparent 48%,rgba(255,255,255,.05) 49%,transparent 50%),linear-gradient(115deg,transparent 45%,rgba(255,255,255,.04) 46%,transparent 47%);background-size:90px 90px}.area-ring{position:absolute;width:255px;height:255px;border:2px solid var(--orange);border-radius:50%;background:rgba(245,106,0,.16);left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 70px rgba(245,106,0,.12)}.place{position:absolute;font-size:12px;color:#eee;white-space:nowrap}.stockholm{left:50%;top:51%;transform:translate(-50%,-50%);font-weight:700;font-size:14px}.norrtalje{right:6%;top:22%}.uppsala{left:40%;top:6%}.sodertalje{left:4%;top:61%}.nynashamn{left:49%;bottom:7%}.map-pin{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);color:var(--orange);font-size:25px;text-shadow:0 0 12px rgba(245,106,0,.55)}.area-list{display:grid;gap:18px}.area-list div{display:flex;flex-direction:column;border-left:2px solid var(--orange);padding-left:14px}.area-list b{font-size:15px}.area-list span{font-size:12px;color:#999;margin-top:4px}.footer-brand img{width:170px;height:auto;max-height:40px;object-fit:contain;object-position:left center}.footer-brand p{margin:8px 0 0;color:#777;font-size:11px}.footer-contact{align-self:center}.contact-details{margin-top:40px;display:grid;gap:22px}.contact-details a,.contact-details div{display:flex;flex-direction:column}.contact-details small{color:var(--orange);font-size:10px;font-weight:700;letter-spacing:1.4px;margin-bottom:4px}.contact-details strong{font-size:17px}.quote-form{background:#f4f4f2;padding:34px}.quote-form label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;margin-bottom:18px}.quote-form input,.quote-form textarea{display:block;width:100%;margin-top:8px;border:1px solid #d2d2cf;background:#fff;padding:14px;font:inherit;outline:none}.quote-form input:focus,.quote-form textarea:focus{border-color:var(--orange)}.quote-form textarea{resize:vertical}.quote-form .btn{width:100%;cursor:pointer}.form-note{font-size:11px;color:#777;text-align:center;margin:12px 0 0}.footer{background:#0b0b0b;color:#aaa;padding:26px max(28px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;gap:20px;font-size:12px}.footer strong{color:#fff}.footer a{color:#fff}.footer a:hover{color:var(--orange)}
@media(max-width:950px){.contact{grid-template-columns:1fr}.contact-person{grid-template-columns:1fr;gap:30px}.portrait-wrap{width:260px;height:260px}.service-area{grid-template-columns:1fr}.area-map{max-width:620px;width:100%}.nav{gap:18px}.nav-phone{display:none}.service-strip{grid-template-columns:1fr 1fr}.service-strip article:nth-child(2){border-right:0}.service-grid{grid-template-columns:1fr 1fr}.about{grid-template-columns:1fr}.about-image{min-height:400px}.about-copy{max-width:none}.contact{grid-template-columns:1fr;gap:40px}.gallery{grid-template-columns:1fr 1fr}.gallery figure:first-child{grid-column:1/-1}}
@media(max-width:700px){.contact{padding:0 24px}.contact-person{padding:70px 0}.portrait-wrap{width:220px;height:220px}.service-area{padding:60px 24px}.area-map{height:280px}.area-ring{width:225px;height:225px}.site-header{height:70px}.brand img{width:165px}.menu-toggle{display:flex;flex-direction:column;gap:5px}.menu-toggle span{width:24px;height:2px;background:#fff}.nav{position:absolute;top:70px;left:0;right:0;background:#0b0b0b;display:none;flex-direction:column;align-items:stretch;padding:12px 25px 25px;gap:0}.nav.open{display:flex}.nav>a:not(.btn):not(.nav-phone){height:48px}.nav .btn{margin-top:10px}.hero{min-height:690px;padding-top:125px;background-position:68% center}.hero h1{font-size:56px}.hero-copy{font-size:16px}.service-strip{grid-template-columns:1fr;padding:15px 25px}.service-strip article{border-right:0;border-bottom:1px solid #333;padding:18px 5px}.service-strip article:last-child{border-bottom:0}.section{padding:70px 24px}.section-heading h2,.about h2,.contact h2{font-size:48px}.service-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-column:auto}.gallery img,.placeholder-room{height:250px}.row-heading{display:block}.cta{display:block;padding:55px 24px}.cta h2{font-size:42px;margin-bottom:28px}.footer{flex-direction:column}.about-image{min-height:300px}.about-copy{padding:70px 24px}}

.gallery figure{transition:transform .2s ease}
.gallery figure:hover{transform:translateY(-2px)}
.gallery img{display:block}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.gallery{grid-template-columns:1fr}.gallery img{height:260px}}

/* Project cards / click-to-view gallery */
.project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.project-card{position:relative;display:block;padding:0;border:0;overflow:hidden;background:#111;cursor:pointer;min-height:300px;text-align:left}
.project-card:nth-child(4){grid-column:span 1}
.project-card img{width:100%;height:320px;object-fit:cover;display:block;transition:transform .45s ease;opacity:.92}
.project-card:hover img{transform:scale(1.035);opacity:1}
.project-overlay{position:absolute;left:0;right:0;bottom:0;padding:58px 22px 20px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.92));display:flex;flex-direction:column;gap:5px}
.project-overlay strong{font-size:20px;letter-spacing:.3px}
.project-overlay small{font-size:13px;opacity:.82}
.project-overlay em{font-style:normal;color:#ff6a00;font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-top:6px}
.project-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:28px}
.project-modal.open{display:flex}
.project-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.84);backdrop-filter:blur(5px)}
.project-modal-content{position:relative;z-index:1;width:min(1100px,96vw);max-height:92vh;overflow:auto;background:#111;color:#fff;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 80px rgba(0,0,0,.55);padding:30px}
.project-close{position:absolute;right:18px;top:12px;width:42px;height:42px;border:1px solid rgba(255,255,255,.25);background:#111;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.project-modal-head{padding-right:55px;margin-bottom:20px}
.project-modal-head .eyebrow{color:#ff6a00;font-size:12px;letter-spacing:1.5px;font-weight:700}
.project-modal-head h3{margin:5px 0 8px;font-size:32px}
.project-modal-head p{margin:0;color:#ccc}
.project-modal-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.project-modal-gallery figure{margin:0;background:#181818}
.project-modal-gallery img{width:100%;height:390px;object-fit:cover;display:block}
.project-modal-gallery figcaption{padding:11px 14px;color:#ccc;font-size:13px}
body.modal-open{overflow:hidden}
@media(max-width:900px){
  .project-grid{grid-template-columns:repeat(2,1fr)}
  .project-modal-gallery{grid-template-columns:1fr}
}
@media(max-width:560px){
  .project-grid{grid-template-columns:1fr}
  .project-card img{height:300px}
  .project-modal{padding:12px}
  .project-modal-content{padding:20px}
  .project-modal-head h3{font-size:25px}
  .project-modal-gallery img{height:300px}
}

.file-label input[type="file"]{padding:12px;background:#1d1d1d;cursor:pointer}.file-help{display:block;color:#777;font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;margin-top:7px}.quote-form button:disabled{opacity:.65;cursor:wait}
/* Readable labels in the light quote form */
.quote-form label{color:#171717}


/* GVK authorisation badge */
.gvk-authorisation{background:#f4f4f2;color:#171717;padding:38px max(28px,calc((100vw - var(--max))/2));display:flex;align-items:center;gap:30px;border-top:1px solid #e0e0dd}
.gvk-logo-panel{flex:0 0 104px;width:104px;height:104px;background:#fff;display:grid;place-items:center;border:1px solid #e2e2df;padding:7px}
.gvk-logo-panel img{width:100%;height:100%;object-fit:contain}
.gvk-copy{flex:1}
.gvk-copy .eyebrow{margin-bottom:8px}
.gvk-copy h2{font-family:'Barlow Condensed',Arial,sans-serif;font-size:clamp(28px,3vw,40px);line-height:1;text-transform:uppercase;margin:0 0 8px}
.gvk-copy h2 span{color:#e6293b}
.gvk-copy>p:last-child{margin:0;color:#555;font-size:15px;line-height:1.6}
.gvk-link{display:inline-flex;align-items:center;gap:12px;padding:13px 17px;border:1px solid #ccc;font-size:12px;font-weight:700;text-transform:uppercase;white-space:nowrap}
.gvk-link span{font-size:18px;color:#e6293b}
.gvk-link:hover{border-color:#e6293b}
@media(max-width:700px){.gvk-authorisation{padding:30px 24px;display:grid;grid-template-columns:78px 1fr;gap:18px}.gvk-logo-panel{width:78px;height:78px;flex-basis:78px}.gvk-copy h2{font-size:30px}.gvk-copy>p:last-child{font-size:13px}.gvk-link{grid-column:1/-1;justify-content:center}}
