/* Kontakt, Hør først og 404 (Martin 4. nov. 2026): én stor sætning og ét objekt. Indlæses efter motion.css.
   På Kontakt og Hør først falder tråden fra punktummet ned på formularens kort, fortsætter som skinnen i kortets højre side og ender i send-knappen. Felterne krydses aldrig, og kortet hælder ikke.
   På 404 stopper tråden midt i luften. */

/* ---------- rummet og sætningen ---------- */
.ks-rum .in{padding-top:max(9rem,84px);padding-bottom:15rem}
.ks-rum h1{position:relative;z-index:3;margin-left:-.5rem;font-size:15.8rem;line-height:.92;letter-spacing:-.026em;font-weight:400}
.ks-rum .l-a{display:inline-block;vertical-align:top}
.ks-rum>.vaeg{-webkit-mask-image:none;mask-image:none}
.ks-int h1{font-size:11rem;line-height:.96;letter-spacing:-.024em}

.ks-g{display:grid;grid-template-columns:44rem minmax(0,1fr);grid-template-rows:auto 1fr;gap:2.6rem 7rem;align-items:start;margin-top:3.6rem}
.ks-t{grid-column:1;grid-row:1;min-width:0}
.ks-e{grid-column:1;grid-row:2;display:grid;gap:2.2rem;justify-items:start;min-width:0}
.ks-t .lead{max-width:none;font-size:max(16px,2.1rem);line-height:1.46;color:#3f423a;text-wrap:pretty}
.ks-e .facts{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;font-size:max(17px,2.4rem);line-height:1.35}
.ks-e .facts a{text-underline-offset:.2em;text-decoration-thickness:1px}
.ks-e .copy-btn{font-size:max(14px,1.5rem)}
.ks-br{font-size:max(15px,1.7rem);line-height:1.5;color:#3f423a;text-wrap:pretty}
.ks-br a{text-underline-offset:.2em}
.ks-e .note{max-width:40rem}
.ks-alt{font-size:max(15px,1.6rem);line-height:1.45;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.2rem}

/* ---------- kortet med formularen: ingen hældning, og det flytter sig ikke under musen ---------- */
.ks-stage{grid-column:2;grid-row:1 / span 2;perspective:none;min-width:0}
.ks-stage .obj{transform:none;rotate:none}
.ks-stage:hover .obj{translate:none}
.ks-stage .form-card{--pad:4.4rem;--rx:4.1rem;--gut:3.6rem;--g:2.2rem;display:block;padding:var(--pad) var(--rx) 4rem 5.2rem;border-radius:1.8rem;background:linear-gradient(180deg,#fff,#fbfaf8);box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),1px 1px 0 #ece8e1,2px 2px 0 #e4dfd7,3px 4px 0 #dcd6cc,1.6rem 2.6rem 4.8rem -2rem rgba(31,34,26,.3),.3rem .6rem 1.2rem -.4rem rgba(31,34,26,.14)}
.ks-stage .tform{display:grid;gap:var(--g);padding:0}
.ks-stage .tf-spor{position:relative;display:grid;gap:var(--g);padding-right:var(--gut)}
.ks-stage .form-card h2{font:400 5.5rem/1 var(--disp);letter-spacing:-.02em}

/* skinnen: fra kortets overkant til send-knappens overkant. Rødt vokser med de udfyldte felter (spor-site.js) */
.ks-stage .tform .rail{left:auto;right:0;top:calc(var(--pad) * -1);bottom:calc(var(--g) * -1 - 1rem);width:1.6px;background:#cdc7bb}
.ks-stage .tform .rail::before{content:"";position:absolute;left:0;top:0;width:100%;height:var(--pad);background:var(--red)}
.ks-stage .tform .field::before{left:auto;right:calc(var(--gut) * -1 - var(--r) / 2 + .8px);--r:max(10px,1.2rem);top:.3rem;width:var(--r);height:var(--r);box-shadow:inset 0 0 0 1.6px #cdc7bb}
.ks-stage .tform .field.ok::before{background:var(--red);box-shadow:none}
.ks-stage .tform .field:focus-within::before{box-shadow:inset 0 0 0 1.6px var(--red),0 0 0 .6rem rgba(214,58,36,.14)}
.ks-stage .tform .field.ok:focus-within::before{background:var(--red)}
.ks-stage .tform .send::before{content:none}

/* felterne */
.ks-stage .field{gap:.8rem}
.ks-stage .field label{font:500 max(14px,1.5rem)/1.3 var(--text)}
.ks-stage .field input,.ks-stage .field textarea{min-height:max(48px,5.6rem);padding:1.2rem 1.6rem;border-radius:1.2rem;font:400 max(16px,1.7rem)/1.4 var(--text)}
.ks-stage .field textarea{min-height:max(120px,13rem)}
.ks-stage .tform .hint{font-size:max(13px,1.4rem);line-height:1.45;color:#5f625a}
.ks-stage .tform .chk{gap:1.2rem;font-size:max(14px,1.5rem);line-height:1.5}
.ks-stage .tform .accept label{font:400 max(14px,1.5rem)/1.5 var(--text)}
.ks-stage .tform .chk a{text-underline-offset:.2em}

/* send: knappen står under skinnen, så linjen lander i den */
.ks-stage .tform .send{display:flex;flex-direction:row-reverse;align-items:flex-start;justify-content:space-between;gap:1.4rem 3.2rem;margin-right:-2.4rem}
.ks-stage .tform .send .btn{flex:none}
.ks-stage .tform .send .hint{padding-top:.4rem;max-width:36rem}
.ks-stage .tform.ready .send .btn{box-shadow:0 0 0 .6rem rgba(214,58,36,.14)}
.ks-stage .status{font-size:max(15px,1.6rem);line-height:1.5}
.ks-stage .tform .status[tabindex]:focus{outline:none}

/* ---------- 404: tråden stopper i luften, og tre veje går videre ---------- */
.ks-404 .in{min-height:88rem;padding-bottom:12rem}
.ks-404 h1{font-size:15.8rem}
.nf-g{display:grid;grid-template-columns:44rem minmax(0,1fr);column-gap:9.6rem;align-items:start;margin-top:5rem}
.nf-t{display:grid;gap:1.8rem}
.nf-tab{font-size:7.2rem;line-height:1;letter-spacing:-.02em;text-wrap:balance}
.nf-t .lead{max-width:38rem;font-size:max(16px,2.1rem);line-height:1.46;color:#3f423a;text-wrap:pretty}
.nf-veje{position:relative;display:grid;padding-left:12rem;margin-top:3rem}
.nf-gren{position:absolute;left:0;top:0;width:12rem;height:100%;overflow:visible;pointer-events:none}
.nf-gren path{fill:none;stroke:#b9b2a5;stroke-width:1.6;stroke-dasharray:2 7;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:stroke .28s var(--ease)}
.nf-vej{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:8rem;min-height:44px;font:400 max(22px,4.8rem)/1.05 var(--disp);letter-spacing:-.014em;text-decoration:none;border-bottom:1px solid var(--hair);transition:padding-left .45s var(--ease)}
.nf-vej:first-of-type{border-top:1px solid var(--hair)}
.nf-vej .pil{flex:none;transition:transform .45s var(--ease)}
@media (hover:hover) and (pointer:fine){
  .nf-vej:hover{padding-left:1.2rem}
  .nf-vej:hover .pil{transform:translateX(.4rem)}
  .nf-vej:hover .pil .skaft{transform:scaleX(1.4)}
}
/* den vej, man peger på, bliver en rød tråd */
.nf-veje:has(.nf-vej:nth-of-type(1):is(:hover,:focus-visible)) .nf-gren path:nth-child(1),
.nf-veje:has(.nf-vej:nth-of-type(2):is(:hover,:focus-visible)) .nf-gren path:nth-child(2),
.nf-veje:has(.nf-vej:nth-of-type(3):is(:hover,:focus-visible)) .nf-gren path:nth-child(3){stroke:var(--red);stroke-dasharray:none}

/* ---------- små skærme: kortet kommer under teksten ---------- */
@media (max-width:1100px){
  .ks-g{grid-template-columns:minmax(0,1fr);grid-template-rows:none;row-gap:4rem}
  .ks-t,.ks-e,.ks-stage{grid-column:auto;grid-row:auto}
  .ks-t,.ks-e{max-width:96rem}
  .nf-g{column-gap:5rem}
}

/* ---------- telefon: skinnen er i kortets højre side, og teksten holder sig fri af tråden ---------- */
@media (max-width:760px){
  .ks-rum .in{padding-top:max(7.6rem,76px);padding-bottom:9rem}
  .ks-rum h1{margin-left:-.3rem;font-size:8.6rem;line-height:.92}
  .ks-rum .l-a{display:block}
  .ks-int h1{font-size:8.1rem;line-height:.94}
  .ks-g{margin-top:2.6rem;row-gap:3rem}
  .ks-t{padding-right:4.4rem}
  .ks-e{gap:2rem}
  .ks-t .lead{font-size:max(16px,1.8rem)}
  .ks-stage .form-card{--pad:2.8rem;--rx:1.7rem;--gut:1.9rem;--g:2rem;padding:var(--pad) var(--rx) 2.8rem 1.8rem}
  .ks-stage .form-card h2{font-size:4.8rem}
  .ks-stage .tform .send{flex-direction:column;align-items:stretch;margin-right:-1.1rem}
  .ks-stage .tform .send .btn{justify-content:center;width:100%}
  .ks-stage .tform .send .hint{padding:0 1.2rem 0 0;max-width:none}

  .ks-404 .in{min-height:0;padding-bottom:7rem}
  .ks-404 h1{font-size:9rem}
  .nf-g{grid-template-columns:minmax(0,1fr);margin-top:6rem;row-gap:3.4rem}
  .nf-t{padding-right:5rem}
  .nf-tab{font-size:6.2rem}
  .nf-veje{padding-left:0;margin-top:0}
  .nf-gren{display:none}
  .nf-vej{height:7rem;font-size:3.8rem}
}
