/* ============ KONTAKT ============ */
.ct{max-width:var(--maxw);margin:0 auto;padding:clamp(110px,15vh,150px) clamp(20px,4vw,56px) 40px}
.ct__head{max-width:720px;margin-bottom:48px}
.ct__head .eyebrow{margin-bottom:16px}
.ct__lead{margin-top:18px;color:var(--text-2);max-width:48ch}
.ct__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,72px)}

/* the vault — a looping showroom band above the contact grid */
.ct__vault{position:relative;margin:0 0 clamp(34px,5vw,54px);border-radius:18px;overflow:hidden;
  border:1px solid var(--line);background:var(--bg-3);height:clamp(220px,42vh,440px)}
.ct__vaultvid{width:100%;height:100%;object-fit:cover;display:block}
.ct__vault::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,rgba(8,8,8,.34),transparent 42%)}

.cinfo-list{display:flex;flex-direction:column}
.cinfo{display:flex;flex-direction:column;gap:4px;padding:20px 0;border-top:1px solid var(--line);transition:padding-left .35s var(--ease)}
.cinfo:last-child{border-bottom:1px solid var(--line)}
a.cinfo:hover{padding-left:12px}
.cinfo__k{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}
.cinfo__v{font-size:1.12rem}
.cinfo__v--sub{font-size:.9rem;color:var(--text-2)}
a.cinfo .cinfo__v{transition:color .3s}
a.cinfo:hover .cinfo__v{color:#fff}
.ct__wa{margin-top:24px}

.cform{display:flex;flex-direction:column;gap:14px}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform__note{font-size:.8rem;color:var(--text-3);text-align:center;margin-top:4px}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* consent — a real checkbox, not a styled div: the box has to be reachable by
   keyboard and announced by a screen reader, and accent-color gets it branded
   without rebuilding the control. */
.cform__consent{display:flex;align-items:flex-start;gap:10px;font-size:.78rem;line-height:1.5;color:var(--text-3);cursor:pointer}
.cform__consent input{flex:0 0 auto;width:16px;height:16px;margin-top:.15em;accent-color:var(--accent);cursor:pointer}
.cform__consent a{color:var(--text-2);text-decoration:underline;text-underline-offset:3px}
.cform__consent a:hover{color:#fff}
.cform__consent input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* the failure panel — the only place on the site that admits something broke.
   Deliberately loud enough to be seen and calm enough not to read as an error
   the visitor caused; the WhatsApp button under it is the actual point. */
.cform__fail{border:1px solid rgba(209,26,47,.42);background:rgba(209,26,47,.07);border-radius:14px;padding:14px 16px;
  display:flex;flex-direction:column;gap:12px}
.cform__failmsg{font-size:.85rem;line-height:1.55;color:var(--text)}
.cform__fail .btn{margin:0}
button[data-busy]{opacity:.6;pointer-events:none}

/* map */
.mapsec{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,6vw,72px) clamp(20px,4vw,56px) 110px}
.mapsec__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;flex-wrap:wrap}
#map{height:clamp(340px,48vh,520px);border-radius:18px;border:1px solid var(--line-2);overflow:hidden;background:var(--bg-3);z-index:1}
.leaflet-container{background:#0d0d0d;font-family:"Outfit",sans-serif}
.leaflet-control-attribution{background:rgba(10,10,10,.7)!important;color:var(--text-3)!important;font-size:.62rem!important}
.leaflet-control-attribution a{color:var(--text-2)!important}
.leaflet-control-zoom a{background:rgba(21,21,21,.92)!important;color:var(--text)!important;border-color:var(--line-2)!important}
.alb-pin{position:relative}
.alb-pin::before{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:50%;background:var(--accent);
  transform:translate(-50%,-50%);box-shadow:0 0 0 3px rgba(209,26,47,.25)}
.alb-pin::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:50%;
  transform:translate(-50%,-50%);animation:pinPulse 2.2s var(--ease) infinite;border:1px solid rgba(209,26,47,.65)}
@keyframes pinPulse{0%{opacity:1;scale:1}100%{opacity:0;scale:3.2}}
.mapsec__foot{margin-top:14px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--text-3)}
.mapsec__foot a{color:var(--text-2);text-decoration:underline;text-underline-offset:3px}
.mapsec__foot a:hover{color:var(--text)}

@media (max-width:900px){
  .ct__grid{grid-template-columns:1fr}
  .cform__row{grid-template-columns:1fr}
}

/* --- live HAPUR/MBYLLUR chip --- */
.openchip{display:inline-flex;align-items:center;gap:9px;margin:14px 0 4px;padding:.55em 1.1em;
  border:1px solid var(--line-2);border-radius:100px;font-size:.62rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--text-2)}
.openchip__dot{width:6px;height:6px;border-radius:50%;background:var(--text-3)}
.openchip.is-open .openchip__dot{background:var(--wa);box-shadow:0 0 0 0 rgba(37,211,102,.3);animation:cdot 2.8s var(--ease) infinite}
.openchip.is-open{color:var(--text)}
