:root{--contact-bg:#354555;--contact-card:#415568;--contact-dark:#182026;--contact-accent:#da632c}
.brand-logo{display:flex;align-items:center;height:76px}.brand-logo img{display:block;width:clamp(185px,20vw,250px);height:auto;max-height:72px;object-fit:contain}.section-intro{max-width:680px;margin:-10px 0 34px;color:#cbd2d7}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project-card{position:relative;display:block;min-width:0;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#222;color:#fff;text-align:left;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.17);transition:transform .2s,border-color .2s}.project-card:hover,.project-card:focus-visible{transform:translateY(-3px);border-color:#f49b6f;outline:none}.project-card img{width:100%;height:310px;object-fit:cover;transition:transform .35s}.project-card:hover img{transform:scale(1.025)}.project-copy{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;padding:58px 22px 20px;background:linear-gradient(transparent,rgba(0,0,0,.9))}.project-copy strong{font-size:1.15rem}.project-copy small{margin-top:4px;color:#e3e6e8}.project-card:first-child{grid-column:1/-1}.project-card:first-child img{height:430px}.contact{background:var(--contact-bg)!important}.contact>.wrap{max-width:1180px}.contact-heading{max-width:760px;margin-bottom:30px}.contact-heading h2{font-size:clamp(2.1rem,4vw,3.25rem);margin-bottom:12px}.contact-heading p{margin:0;font-size:1.08rem}.contact .eyebrow{color:#f49b6f!important}.contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr);gap:56px;align-items:start}.contact-left{min-width:0}.company-card{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:rgba(255,255,255,.08);box-shadow:0 9px 24px rgba(7,15,22,.14)}.company-card>div{display:flex;flex-direction:column;align-items:flex-start}.company-card a{font-weight:700}.map-link{display:inline-block;margin-top:4px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.6)}.direct-contacts{padding-top:20px;margin-top:20px}.direct-contacts h3{margin:0 0 12px;font-size:1.25rem}.direct-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.direct-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:142px;padding:15px;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:var(--contact-card);text-decoration:none!important;box-shadow:0 8px 20px rgba(7,15,22,.14);transition:.2s}.direct-card:hover,.direct-card:focus-visible{transform:translateY(-2px);background:var(--contact-dark);border-color:#f49b6f;outline:none}.direct-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--contact-dark)}.direct-card>span:last-child{display:flex;flex-direction:column}.direct-card strong{line-height:1.18}.direct-card small{font-size:.88rem;margin-top:5px}.direct-card em{font-size:.75rem;font-style:normal;opacity:.8;margin-top:2px}.hours{margin:18px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.24)}.contact .form{padding-top:0}.contact .form input,.contact .form textarea{border:1px solid rgba(24,32,38,.18);box-shadow:0 4px 14px rgba(7,15,22,.08)}.contact .form input:focus,.contact .form textarea:focus{outline:3px solid rgba(244,155,111,.42);border-color:var(--contact-accent)}.contact .form .btn{background:var(--contact-dark)}.project-modal{width:min(920px,calc(100% - 36px));max-height:90vh;padding:0;border:1px solid #59636a;border-radius:8px;background:#171b1d;color:#fff;box-shadow:0 22px 70px rgba(0,0,0,.55)}.project-modal::backdrop{background:rgba(7,10,12,.88);backdrop-filter:blur(3px)}.project-modal img{width:100%;max-height:65vh;object-fit:contain;background:#0d1011}.modal-copy{padding:20px 24px 24px}.modal-copy h3{margin:0 0 5px;font-size:1.45rem}.modal-copy p{margin:0;color:#cbd2d7}.modal-close{position:absolute;top:12px;right:12px;z-index:2;width:42px;height:42px;border:0;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;font-size:1.8rem;cursor:pointer}.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer-grid img{width:240px;height:auto;max-height:82px;object-fit:contain}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-end;gap:8px}@media(max-width:900px){.contact-layout{grid-template-columns:1fr;gap:34px}.direct-list{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.brand-logo img{width:180px;max-height:62px}.project-grid{grid-template-columns:1fr}.project-card:first-child{grid-column:auto}.project-card img,.project-card:first-child img{height:270px}.company-card{grid-template-columns:1fr}.direct-list{grid-template-columns:1fr}.direct-card{min-height:auto;display:grid;grid-template-columns:38px 1fr;align-items:center}.footer-grid{flex-direction:column;align-items:flex-start}.footer-grid>div{align-items:flex-start}}
.gallery-cta{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:34px}.gallery-cta span{color:#cbd2d7;font-size:.95rem}.archive-main{background:#171b1d;color:#fff}.archive-main>section{padding:86px 0 100px}.archive-main h1{font-size:clamp(3rem,7vw,5.8rem);margin:.15em 0 .25em}.archive-lead{color:#cbd2d7;margin-bottom:42px}.archive-grid{columns:3 300px;column-gap:18px}.archive-card{display:block;width:100%;margin:0 0 18px;padding:0;break-inside:avoid;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#222;color:#fff;text-align:left;cursor:pointer;transition:transform .2s,border-color .2s}.archive-card:hover,.archive-card:focus-visible{transform:translateY(-2px);border-color:#f49b6f;outline:none}.archive-card img{width:100%;height:auto;max-height:420px;object-fit:cover}.archive-card>span{display:flex;flex-direction:column;padding:15px 16px 17px}.archive-card strong{font-size:1rem}.archive-card small{margin-top:4px;color:#cbd2d7;line-height:1.4}.archive-end{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:42px}.archive-end .btn.alt{border-color:#fff}@media(max-width:800px){.gallery-cta{flex-direction:column;text-align:center}.archive-main>section{padding:58px 0 72px}.archive-grid{columns:1}.archive-card img{max-height:none}}
/* Rikamo v1.2.1 - breda kontaktkort i en kolumn */
.contact-layout{
  grid-template-columns:minmax(0,1fr) minmax(460px,1.15fr);
  gap:64px;
}

.direct-list{
  display:grid;
  grid-template-columns:1fr;
  gap:11px;
}

.direct-card{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  width:100%;
  min-height:78px;
  padding:13px 16px;
}

.direct-card .direct-icon{
  width:44px;
  height:44px;
}

.direct-card > span:last-child{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "name number"
    "role number";
  align-items:center;
  column-gap:18px;
  width:100%;
}

.direct-card strong{
  grid-area:name;
  font-size:1.02rem;
}

.direct-card em{
  grid-area:role;
  margin-top:3px;
}

.direct-card small{
  grid-area:number;
  margin:0;
  white-space:nowrap;
  font-size:.98rem;
  font-weight:800;
}

@media(max-width:1000px){
  .contact-layout{grid-template-columns:1fr;gap:36px}
  .direct-list{grid-template-columns:1fr}
}

@media(max-width:520px){
  .direct-card{grid-template-columns:44px minmax(0,1fr);padding:13px}
  .direct-card > span:last-child{
    grid-template-columns:1fr;
    grid-template-areas:"name" "role" "number";
  }
  .direct-card small{margin-top:5px;white-space:normal}
}
/* Rikamo v1.2.2 - ta bort upprepande orange sektionsetiketter */
.eyebrow{
  display:none!important;
}

/* Återställ harmoniska avstånd när etiketterna inte längre tar plats */
.hero-in h1{
  margin-top:0;
}

.intro h2,
.services h2,
.projects h2,
.contact-heading h2,
.archive-main h1,
.policy-copy h1{
  margin-top:0;
}

.contact-heading{
  padding-top:0;
}

.projects .section-intro{
  margin-top:-4px;
}
/* Rikamo v1.2.3 - luftigare typografi */
html{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}

body,
button,
input,
textarea,
select{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif!important;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}

body{
  letter-spacing:.005em;
}

h1,h2,h3,
.brand,
.btn,
nav a,
.project-copy strong,
.direct-card strong{
  letter-spacing:-.018em!important;
}

h1{
  letter-spacing:-.025em!important;
}

p,li,label,input,textarea,small{
  letter-spacing:.008em;
}

.policy-layout{
  display:block!important;
  max-width:880px;
}

.policy-copy{
  max-width:880px!important;
}

.policy-card{
  display:none!important;
}
/* Rikamo v1.2.4 - orange handlingsknapp och kontaktikoner */
.contact .form .btn,
.contact .form button[type="submit"]{
  background:#da632c!important;
  color:#fff!important;
  border:1px solid #da632c!important;
  box-shadow:0 7px 18px rgba(218,99,44,.22);
  transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;
}

.contact .form .btn:hover,
.contact .form .btn:focus-visible,
.contact .form button[type="submit"]:hover,
.contact .form button[type="submit"]:focus-visible{
  background:#bf5121!important;
  border-color:#bf5121!important;
  transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(218,99,44,.30);
  outline:2px solid rgba(255,255,255,.9);
  outline-offset:2px;
}

.direct-icon,
.direct-card .direct-icon{
  background:#da632c!important;
  color:#fff!important;
  box-shadow:0 5px 13px rgba(218,99,44,.25);
}

.direct-card:hover .direct-icon,
.direct-card:focus-visible .direct-icon{
  background:#f0783f!important;
}

/* Kartmarkör i adressdelen av företagets kontaktkort */
.company-card > div:first-child{
  position:relative;
  padding-left:54px;
  min-height:48px;
  justify-content:center;
}

.company-card > div:first-child::before{
  content:"⌖";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:#da632c;
  color:#fff;
  font-size:1.45rem;
  line-height:1;
  font-weight:800;
  box-shadow:0 5px 13px rgba(218,99,44,.25);
}

.company-card > div:first-child:hover::before{
  background:#f0783f;
}

@media(max-width:520px){
  .company-card > div:first-child{padding-left:50px}
  .company-card > div:first-child::before{width:38px;height:38px;font-size:1.35rem}
}
/* Rikamo v1.3.0 - formulär vänster, kontaktkort höger */
.contact-layout-reversed{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);
  gap:72px;
  align-items:start;
}

.contact-form-column,
.contact-info-column{
  min-width:0;
}

.contact-form-column .contact-heading{
  margin:0 0 26px;
}

.contact-form-column .contact-heading h2{
  margin:0 0 10px;
  font-size:clamp(2.15rem,4vw,3.35rem);
}

.contact-form-column .contact-heading p{
  margin:0;
  max-width:650px;
}

.contact-info-column > h2{
  margin:0 0 20px;
  font-size:clamp(1.8rem,3vw,2.4rem);
}

.address-card,
.contact-person-card{
  display:grid;
  grid-template-columns:50px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  width:100%;
  border:1px solid rgba(255,255,255,.30);
  border-radius:7px;
  background:rgba(255,255,255,.08);
  color:#fff;
  text-decoration:none!important;
  box-shadow:0 8px 20px rgba(7,15,22,.14);
  transition:transform .2s,background .2s,border-color .2s,box-shadow .2s;
}

.address-card{
  min-height:102px;
  padding:18px;
  margin-bottom:16px;
}

.contact-list{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.contact-person-card{
  min-height:76px;
  padding:12px 16px;
}

.address-card:hover,
.address-card:focus-visible,
.contact-person-card:hover,
.contact-person-card:focus-visible{
  transform:translateY(-2px);
  background:#182026;
  border-color:#f49b6f;
  outline:none;
  box-shadow:0 11px 26px rgba(7,15,22,.26);
}

.contact-card-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#da632c;
  color:#fff;
  font-size:1.12rem;
  font-style:normal;
  box-shadow:0 5px 13px rgba(218,99,44,.25);
}

.map-icon{
  font-size:1.42rem;
  font-weight:800;
}

.address-card > span:nth-child(2),
.contact-person-card > span:last-child{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.address-card strong,
.contact-person-card strong{
  font-size:1.02rem;
  line-height:1.2;
}

.address-card small,
.contact-person-card small{
  margin-top:4px;
  font-size:.94rem;
  color:#fff;
  overflow-wrap:anywhere;
}

.contact-person-card em{
  margin-top:2px;
  font-size:.78rem;
  font-style:normal;
  opacity:.82;
}

.contact-card-arrow{
  font-size:1.1rem;
  opacity:.85;
}

.contact-info-column .hours{
  margin-top:20px;
  padding-top:18px;
}

/* Dölj äldre kontaktstruktur om en gammal cachead HTML-rest skulle finnas */
.contact-layout-reversed .company-card,
.contact-layout-reversed .direct-contacts{
  display:none!important;
}

@media(max-width:980px){
  .contact-layout-reversed{
    grid-template-columns:1fr;
    gap:44px;
  }
  .contact-form-column{order:1}
  .contact-info-column{order:2}
}

@media(max-width:520px){
  .contact-layout-reversed{gap:36px}
  .address-card,
  .contact-person-card{
    grid-template-columns:44px minmax(0,1fr) auto;
    padding:13px;
  }
  .contact-card-icon{width:40px;height:40px}
}
/* Rikamo v1.3.1 - harmoniserad kontaktlayout */
.contact-layout-reversed{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:72px;
}

.contact-form-column .contact-heading,
.contact-info-heading{
  min-height:118px;
  margin:0 0 26px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.contact-form-column .contact-heading h2,
.contact-info-heading h2{
  margin:0 0 10px;
  font-size:clamp(2.15rem,4vw,3.35rem);
  line-height:1.05;
  font-weight:800;
  letter-spacing:-.018em!important;
}

.contact-form-column .contact-heading p,
.contact-info-heading p{
  margin:0;
  max-width:650px;
  font-size:1.04rem;
  line-height:1.55;
  color:#fff;
  opacity:.92;
}

.contact-info-column > h2{
  margin:0;
  font-size:inherit;
}

.address-card{
  min-height:102px;
}

.contact-person-card{
  min-height:76px;
}

.address-card strong,
.contact-person-card strong{
  font-size:1rem;
  line-height:1.25;
  font-weight:750;
}

.address-card small,
.contact-person-card small{
  margin-top:4px;
  font-size:.95rem;
  line-height:1.35;
  font-weight:600;
}

.name-role{
  display:flex;
  align-items:baseline;
  gap:9px;
  min-width:0;
}

.name-role em{
  margin:0;
  padding-left:9px;
  border-left:1px solid rgba(255,255,255,.35);
  font-size:.78rem;
  line-height:1;
  font-style:normal;
  font-weight:600;
  opacity:.80;
  white-space:nowrap;
}

.contact-card-icon{
  flex:none;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}

@media(max-width:980px){
  .contact-layout-reversed{grid-template-columns:1fr;gap:44px}
  .contact-form-column .contact-heading,
  .contact-info-heading{min-height:0;margin-bottom:22px}
}

@media(max-width:520px){
  .contact-form-column .contact-heading h2,
  .contact-info-heading h2{font-size:2.15rem}
  .name-role{align-items:center;gap:7px}
  .name-role em{padding-left:7px;white-space:normal}
}
