/* NESKA — shared styles for the statically rendered pages (EN /, DE /de/). */
@font-face{font-family:'Schibsted Grotesk';src:url('/fonts/SchibstedGrotesk-latin.woff2') format('woff2');font-weight:400 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Schibsted Grotesk';src:url('/fonts/SchibstedGrotesk-latin-ext.woff2') format('woff2');font-weight:400 800;font-style:normal;font-display:swap;unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --ink:#0B0C0E;--paper:#FFFFFF;--paper-soft:#F6F6F4;--accent:#5A6A87;--accent-on-dark:#6C7C99;
  --hair:#E4E4E1;--hair-dark:rgba(255,255,255,0.14);--ink-70:rgba(11,12,14,0.66);--paper-70:rgba(243,243,241,0.62);
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");
  --dark-vignette:radial-gradient(130% 140% at 50% 44%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.4) 100%);
}
*{box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Schibsted Grotesk',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--ink)}
/* Light sections: dark highlight, light text. */
::selection{background:var(--ink);color:#FFFFFF}
/* Dark sections (hero/contact/form/menu): invert so the highlight is visible. */
[data-bg="dark"] ::selection,[data-bg="dark"]::selection,.mobile-menu ::selection{background:#F3F3F1;color:#0B0C0E}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}
img{max-width:100%}

/* Header */
.site-hdr{position:fixed;top:0;left:0;right:0;z-index:50;height:68px;display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(22px,6vw,90px);background:rgba(11,12,14,0.55);color:#F3F3F1;border-bottom:1px solid rgba(255,255,255,0.12);
  backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);
  transition:background .5s ease,color .5s ease,border-color .5s ease}
.site-hdr.is-light{background:rgba(255,255,255,0.72);color:#0B0C0E;border-bottom-color:rgba(11,12,14,0.08)}
.brand{display:flex;align-items:center;gap:12px;color:inherit}
.logo{display:block;width:28px;height:28px}
.logo img{display:block;width:28px;height:28px}
.logo .logo-dark{display:none}
.site-hdr.is-light .logo .logo-light{display:none}
.site-hdr.is-light .logo .logo-dark{display:block}
.brand-word{font-weight:700;font-size:18px;letter-spacing:0.34em;padding-left:1px}
.hdr-right{display:flex;align-items:center;gap:clamp(18px,3vw,36px)}
.desktop-nav{display:flex;gap:clamp(20px,3vw,40px)}
.desktop-nav a{color:rgba(243,243,241,0.72);font-size:12px;font-weight:600;letter-spacing:0.24em}
.site-hdr.is-light .desktop-nav a{color:rgba(11,12,14,0.6)}
.desktop-nav a:hover{color:inherit}
.lang{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:0.1em}
.lang a{color:currentColor;opacity:0.5}
.lang a.active{opacity:1}
.lang .sep{opacity:0.5}
.menu-open{display:none;background:transparent;border:none;color:inherit;padding:8px;margin:-8px;cursor:pointer;flex-direction:column;gap:5px}
.menu-open span{display:block;width:24px;height:1.5px;background:currentColor}
@media (max-width:720px){
  .desktop-nav{display:none}
  .menu-open{display:flex}
}

/* Mobile menu overlay */
.mobile-menu{position:fixed;inset:0;z-index:60;background:var(--ink);color:#F3F3F1;display:flex;flex-direction:column}
.mobile-menu[hidden]{display:none}
.mm-top{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,6vw,90px)}
.menu-close{background:transparent;border:none;color:inherit;font-size:26px;line-height:1;cursor:pointer;padding:8px;margin:-8px}
.mobile-menu nav{display:flex;flex-direction:column;gap:8px;padding:clamp(24px,8vh,60px) clamp(22px,6vw,90px)}
.mobile-menu nav a{color:#F3F3F1;font-weight:700;font-size:2rem;letter-spacing:-0.01em;padding:10px 0}

/* Layout A — practice index rail + prose */
.wrap{max-width:1180px}
.nk-rows .nk-row{border-top:1px solid var(--hair)}
.nk-rows .nk-row:last-child{border-bottom:1px solid var(--hair)}
.nk-row-in{display:grid;grid-template-columns:clamp(44px,7vw,120px) minmax(0,1fr);gap:clamp(16px,3vw,48px);align-items:baseline;padding:clamp(26px,4vh,42px) 0}
.nk-index{font-size:13px;font-weight:600;letter-spacing:0.2em;color:var(--accent);font-variant-numeric:tabular-nums}
.nk-prose{margin:0;font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.5;letter-spacing:-0.005em;max-width:70ch}

/* Firm — staggered two-line lead */
.firm-lead{margin:0;font-size:clamp(1.3rem,2.5vw,2.05rem);line-height:1.3;letter-spacing:-0.012em;font-weight:600;max-width:44rem}
.firm-lead .l1,.firm-lead .l2{display:block}
.firm-lead .l2{padding-left:clamp(22px,5vw,72px);text-wrap:balance}

/* Contact form honeypot — hidden visually and from assistive tech */
.hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
#form input:focus,#form select:focus,#form textarea:focus{border-bottom-color:#F3F3F1;outline:none}
/* Submit button: subtle hover lift. */
#form button[type="submit"]{transition:background .2s ease,transform .12s ease,box-shadow .2s ease}
#form button[type="submit"]:hover{background:#FFFFFF;transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,0.28)}
#form button[type="submit"]:active{transform:translateY(0);box-shadow:none}

/* Attachment drag & drop */
.uploader{display:flex;flex-direction:column;gap:9px;margin-top:clamp(22px,3vw,34px)}
.uploader-label{font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--paper-70)}
.uploader-label .opt{text-transform:none;letter-spacing:normal;font-weight:400;opacity:0.7}
.dropzone{position:relative;border:1px dashed var(--hair-dark);border-radius:12px;padding:clamp(24px,4vw,34px);text-align:center;background:rgba(255,255,255,0.02);transition:border-color .2s ease,background .2s ease}
.dropzone:hover{border-color:rgba(243,243,241,0.35)}
.dropzone.is-drag{border-color:#F3F3F1;background:rgba(255,255,255,0.06)}
.dz-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.dz-input:focus-visible + .dz-cta{outline:2px solid #F3F3F1;outline-offset:6px;border-radius:8px}
.dz-cta{pointer-events:none;color:var(--paper-70);font-size:0.95rem;display:flex;flex-direction:column;gap:8px;align-items:center}
.dz-cta svg{opacity:0.7}
.dz-cta .dz-browse{color:#F3F3F1;text-decoration:underline;text-underline-offset:2px}
.dz-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.dz-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:0.85rem;color:var(--paper-70);background:rgba(255,255,255,0.05);border:1px solid var(--hair-dark);border-radius:8px;padding:7px 12px}
.dz-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dz-list button{background:transparent;border:none;color:var(--paper-70);cursor:pointer;font-size:1.15rem;line-height:1;padding:0 2px;flex:none}
.dz-list button:hover{color:#F3F3F1}
.dz-hint{font-size:0.72rem;line-height:1.5;letter-spacing:0.02em;color:var(--paper-70)}
.dz-hint.over{color:#e39898}

/* Centered confirmation / error modal (contact form) */
.nk-modal{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(0,0,0,0.66);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .25s ease}
.nk-modal.show{opacity:1}
.nk-modal[hidden]{display:none}
.nk-modal-card{background:var(--ink);color:#F3F3F1;border:1px solid rgba(255,255,255,0.14);border-radius:16px;
  max-width:440px;width:100%;padding:clamp(34px,5vw,52px);text-align:center;box-shadow:0 30px 90px rgba(0,0,0,0.55);
  transform:translateY(12px) scale(0.98);transition:transform .25s ease}
.nk-modal.show .nk-modal-card{transform:none}
.nk-modal-logo{width:54px;height:54px;margin:0 auto clamp(20px,3vw,28px)}
.nk-modal-logo img{width:100%;height:100%;display:block}
.nk-spinner{width:42px;height:42px;margin:0 auto clamp(20px,3vw,28px);border-radius:50%;
  border:2px solid rgba(243,243,241,0.22);border-top-color:#F3F3F1;animation:nk-spin .8s linear infinite}
@keyframes nk-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.nk-spinner{animation-duration:1.8s}}
.nk-modal [hidden]{display:none}
.nk-modal h2{margin:0 0 12px;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-0.02em;line-height:1.15}
.nk-modal p{margin:0 auto;font-size:1.02rem;line-height:1.55;color:var(--paper-70);max-width:34ch}
.nk-modal.is-err h2{color:#f0b4b4}
.nk-modal-close{margin-top:clamp(26px,4vw,34px);background:#F3F3F1;color:var(--ink);border:none;font:inherit;font-weight:600;
  font-size:0.95rem;letter-spacing:0.02em;padding:14px 34px;border-radius:8px;cursor:pointer;transition:background .2s ease,transform .12s ease,box-shadow .2s ease}
.nk-modal-close:hover{background:#fff;transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,0.35)}
.nk-modal-close:active{transform:none;box-shadow:none}

@media (max-width:760px){
  .nk-row-in{grid-template-columns:1fr;gap:6px}
  .firm-lead .l2{padding-left:clamp(16px,6vw,28px)}
}
@media (max-width:640px){.form-grid{grid-template-columns:1fr!important}}
