@font-face{
  font-family:'Switzer';
  src:url(fonts/switzer-400.woff2) format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Switzer';
  src:url(fonts/switzer-600.woff2) format('woff2');
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
:root{
  --page:#1B365D;
  --ink:#F5FBFF;
  --fs-1: 1rem;      
  --fs-2: 1.5rem;  
  --fw-body: 400;
  --fw-strong: 600;
  --fw-heading: 600;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --sat: env(safe-area-inset-top, 0px);
  --sar: env(safe-area-inset-right, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --sal: env(safe-area-inset-left, 0px);
  --maxw: 64rem;
  color-scheme: dark;
}
*, *::before, *::after{ box-sizing:border-box; }
html{
  background:var(--page);
  height:100%;
  -webkit-text-size-adjust:100%;
  overflow-x:clip; 
  font-family:'Switzer', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}
body{
  margin:0;
  min-height:100%;
  min-height:100dvh;
  background:var(--page);
  color:var(--ink);
  font-family:'Switzer', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:var(--fw-body);
  font-size:var(--fs-1);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip; 
  width:100%;
}
#app{
  min-height:100%;
  min-height:100dvh;
  background:var(--page);
  display:flex;
  flex-direction:column;
  padding-left:var(--sal);
  padding-right:var(--sar);
}
img,svg{ max-width:100%; }
h1,h2,h3,h4{
  font-weight:var(--fw-heading);
  font-size:var(--fs-2);
  line-height:1.25;
  overflow-wrap:break-word; 
  text-wrap:balance; 
}
h1,h2,h3,h4,.jurist-row-head .jurist-name,.kform legend{ letter-spacing:-0.01em; }
.situations-heading,.faq-item h2,#villkor h3,.kform-confirm-lead,
.spec-fieldset legend,.client-type-fieldset legend,.option-fieldset legend{ letter-spacing:normal; }
h1{
  margin:0 0 var(--space-3) 0;
  color:var(--ink);
}
h2,h3,h4{
  margin:var(--space-4) 0 var(--space-2) 0;
  color:var(--ink);
}
p{ margin:0 0 var(--space-3) 0; }
strong, b{ font-weight:var(--fw-strong); }
a{
  color:var(--ink);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:0.15em;
}
a:hover, a:focus-visible{
  background:var(--ink);
  color:var(--page);
  text-decoration:none;
}
.phone-text{ white-space:nowrap; }
.email-text{ overflow-wrap:break-word; }
#main-content{ overflow-wrap:break-word; }
:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:2px;
}
#main-content:focus-visible{ outline:none; }
.faq-item h2[tabindex="-1"]:focus-visible{ outline:none; }   
.faq-item h2{ scroll-margin-top:var(--space-4); }   
button{
  font-family:inherit;
  font-size:var(--fs-1);
  font-weight:var(--fw-strong);
  cursor:pointer;
  background:none;
  color:inherit;
  border:none;
  padding:0;
  -webkit-appearance:none;
  appearance:none;
}
input, select, textarea{
  font-family:inherit;
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;
}
ul,ol{ margin:0; padding:0; list-style:none; }
.skip-link{
  position:absolute;
  left:var(--space-2);
  top:-6rem;
  background:var(--ink);
  color:var(--page);
  padding:var(--space-2) var(--space-3);
  z-index:100;
  transition:top .15s ease;
  text-decoration:none;
  font-weight:var(--fw-strong);
}
.skip-link:focus{ top:var(--space-2); }
.site-header{
  background:var(--page);
  padding-top:var(--sat);
}
.header-row{
  max-width:var(--maxw);
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--space-1) var(--space-2);
  padding:var(--space-4);
  min-width:0;
}
.header-brand{
  display:flex;
  flex-direction:column;
  gap:0.15rem;
  flex:0 1 auto;
}
.header-tagline{
  font-size:var(--fs-1);
  font-weight:var(--fw-body);
  color:var(--ink);
  line-height:1.25;
  margin:0;
}
.logo{
  font-size:var(--fs-2);
  font-weight:var(--fw-heading);
  line-height:1.25;
  text-decoration:none;
  color:var(--ink);
  white-space:nowrap;
  flex:0 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.logo[href]:hover, .logo[href]:focus-visible{ background:var(--ink); color:var(--page); }
.logo:not([href]):hover, .logo:not([href]):focus-visible{ background:none; color:var(--ink); }
.logo-main{ letter-spacing:0.06em; text-transform:uppercase; margin-right:-0.06em; } 
.logo-seam{ margin-left:0.06em; }
.header-actions{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  margin-left:auto;
  flex:0 0 auto;
}
.lang-switch{
  display:flex;
  align-items:center;
  gap:0.3rem;
  background:none;
  border:none;
  color:var(--ink);
  padding:var(--space-1) 0.4rem;
  font-size:var(--fs-1);
  white-space:nowrap;
}
.lang-switch .lang-opt{
  font-weight:var(--fw-body);
  color:var(--ink);
  background:none;
  padding:0.3em 0.35em;
  letter-spacing:0;
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-underline-offset:0.15em;
}
.lang-switch .lang-opt:hover, .lang-switch .lang-opt:focus-visible{ background:var(--ink); color:var(--page); }
main{
  flex:1 1 auto;
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding:var(--space-4) var(--space-4) 0;
}
.breadcrumbs{ margin-bottom:var(--space-4); }
.breadcrumbs ol{ display:flex; flex-wrap:wrap; gap:0.4em; align-items:center; }
.breadcrumbs li{ display:flex; align-items:center; gap:0.4em; }
.breadcrumbs a{ text-decoration-line:underline; }
.breadcrumbs [aria-current="page"]{ font-weight:var(--fw-strong); text-decoration:none; }
.depth-trail{ display:flex; align-items:center; margin-bottom:var(--space-4); }
.depth-dot{
  width:0.5rem; height:0.5rem; border-radius:50%;
  border:1px solid var(--ink);
  background:transparent;
  flex:0 0 auto;
}
.depth-dot.is-done, .depth-dot.is-current{ background:var(--ink); }
.depth-dot.is-current{ animation:depth-pop 0.25s ease-out; }
.depth-line{ width:1.25rem; height:1px; background:var(--ink); flex:0 0 auto; }  
.depth-line.is-done{ opacity:1; }
.depth-line.is-current{ opacity:1; transform-origin:left; animation:depth-draw 0.25s ease-out; }
@keyframes depth-pop{ from{ transform:scale(0.4); opacity:0; } to{ transform:scale(1); opacity:1; } }
@keyframes depth-draw{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.nav-slide-forward{ animation:nav-slide-in-forward 0.2s ease-out; }
.nav-slide-back{ animation:nav-slide-in-back 0.2s ease-out; }
@keyframes nav-slide-in-forward{ from{ opacity:0; transform:translateX(1.5rem); } to{ opacity:1; transform:translateX(0); } }
@keyframes nav-slide-in-back{ from{ opacity:0; transform:translateX(-1.5rem); } to{ opacity:1; transform:translateX(0); } }
.count-badge{ font-variant-numeric:tabular-nums; font-size:0.8em; white-space:nowrap; } 
.plain-list > li > a:hover .count-badge,
.plain-list > li > a:focus-visible .count-badge{ opacity:1; }
.chev{ margin-left:0.5em; text-decoration:none; display:inline-block; }
h1.list-h1{ margin:var(--space-4) 0 var(--space-2) 0; }
.neighbor-heading{ display:flex; align-items:center; gap:var(--space-2); contain:inline-size; }
.proximity-glyph{ flex:0 0 auto; color:var(--ink); }
.proximity-glyph line{ animation:glyph-draw 0.4s ease-out; }
.proximity-glyph circle{ animation:depth-pop 0.3s ease-out backwards; }
@keyframes glyph-draw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion: reduce){
  .depth-dot.is-current, .depth-line.is-current,
  .nav-slide-forward, .nav-slide-back,
  .proximity-glyph line, .proximity-glyph circle{
    animation:none;
  }
}
.home-stack{
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
  max-width:48rem;
  width:100%;
}
.start-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-4);
}
@media (min-width:640px){
  .start-grid{ grid-template-columns:1fr 1fr; }
}
.start-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid var(--ink);
  padding:var(--space-4);
  text-decoration:none;
  color:var(--ink);
}
.start-card:hover, .start-card:focus-visible{ background:var(--ink); color:var(--page); }
.start-card .start-title{ font-size:var(--fs-1); font-weight:var(--fw-strong); display:block; margin-bottom:var(--space-1); }
.start-card .chev{ display:inline; }
.start-card .start-desc{ font-weight:var(--fw-body); }
.guide-bottom-link{ margin:var(--space-4) 0 0 0; }
.start-grid-guides .start-card .start-title{ margin-bottom:0; } 
.start-grid-guides .start-card{ padding:var(--space-2) var(--space-4); }
.search-form{ display:flex; flex-direction:column; gap:var(--space-1); }
.search-form label{ display:block; font-weight:var(--fw-strong); margin-bottom:var(--space-1); }
.search-merged{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  border:1px solid var(--ink);
}
@media (min-width:640px){
  .search-merged{ flex-direction:row; }
}
.search-merged:focus-within{
  outline:2px solid var(--ink);
  outline-offset:2px;
}
.search-merged .search-input{
  flex:1 1 auto;
  min-width:0;
  background:var(--page);
  color:var(--ink);
  border:none;
  padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);
  font-size:var(--fs-1);
  font-family:inherit;
  font-weight:var(--fw-body);
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.search-merged .search-input::placeholder{ color:var(--ink); font-style:normal; font-weight:var(--fw-strong); }
.search-merged .search-input:focus{ outline:none; }
.search-merged .search-input:hover{
  background:var(--ink);
  color:var(--page);
}
.search-merged .search-input:hover::placeholder{ color:var(--page); }
.search-merged .search-input:hover::-webkit-search-cancel-button{ background-color:var(--page); }
.search-merged .search-input::-webkit-search-cancel-button{
  -webkit-appearance:none;
  appearance:none;
  width:0.9em;
  height:0.9em;
  margin-left:0.5em;
  cursor:pointer;
  background-color:var(--ink);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-size:contain;
  -webkit-mask-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.3 5.71L12 12.01l-6.29-6.3-1.42 1.42L10.59 13.4l-6.3 6.29 1.42 1.42L12 14.83l6.29 6.3 1.42-1.42L13.41 13.4l6.3-6.29z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.3 5.71L12 12.01l-6.29-6.3-1.42 1.42L10.59 13.4l-6.3 6.29 1.42 1.42L12 14.83l6.29 6.3 1.42-1.42L13.41 13.4l6.3-6.29z'/%3E%3C/svg%3E");
}
.search-text-btn{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  padding:var(--space-2) var(--space-4);
  border:none;
  border-top:1px solid var(--ink);
  background:var(--page);
  color:var(--ink);
  font-size:var(--fs-1);
  font-weight:var(--fw-body);
  font-family:inherit;
  white-space:nowrap;
  cursor:not-allowed;
}
@media (min-width:640px){
  .search-text-btn{
    justify-content:flex-start;
    border-top:none;
    border-left:1px solid var(--ink);
  }
}
.search-text-btn:not(:disabled){
  font-weight:var(--fw-strong);
  cursor:pointer;
}
.search-text-btn:not(:disabled):hover, .search-text-btn:not(:disabled):focus-visible{ background:var(--ink); color:var(--page); }
.btn{
  display:inline-block; 
  background:var(--page);
  color:var(--ink);
  border:1px solid var(--ink);
  padding:var(--space-2) var(--space-4);
  font-size:var(--fs-1);
  font-weight:var(--fw-strong);
  text-decoration:none;
  align-self:flex-end;
}
.btn:hover, .btn:focus-visible{ background:var(--ink); color:var(--page); border-color:var(--ink); }
.btn:disabled, .btn[aria-disabled="true"]{ cursor:not-allowed; font-weight:var(--fw-body); }
.btn:disabled:hover, .btn[aria-disabled="true"]:hover{ background:var(--page); color:var(--ink); border-color:var(--ink); }
.btn.cta-locked{ display:inline-grid; }
.btn.cta-locked > span{ grid-column:1; grid-row:1; }
.btn.cta-locked .btn-reserve{ visibility:hidden; font-weight:var(--fw-strong); }
.step-list{ margin:0 0 var(--space-3) 0; max-width:40rem; }
.step-list > li{ padding:var(--space-2) 0; text-wrap:pretty; }
.step-list > li + li{ margin-top:var(--space-1); }
.step-list .step-body p{ margin:0 0 var(--space-3) 0; }
.step-list .step-body p:last-child{ margin-bottom:0; }
#villkor h3{ font-size:var(--fs-1); font-weight:var(--fw-body); margin:var(--space-4) 0 var(--space-2) 0; }
.field.accept-terms-field{ margin-top:var(--space-4); margin-bottom:var(--space-4); }
.field.accept-terms-field:has(+ .hint:not([hidden])), .field.withdrawal-request-field:has(+ .hint:not([hidden])){ margin-bottom:0.25rem; }
.accept-terms-field + .hint, .withdrawal-request-field + .hint{ margin-top:0; }
.accept-terms-field + .hint:not([hidden]){ margin-bottom:var(--space-4); }
.plain-list{
  display:grid;
  grid-template-columns:minmax(min(22.75rem, 100%), max-content);
}
.plain-list > li > a, .plain-list > li > .row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--space-2);
  padding:var(--space-3) var(--space-2);
  text-decoration:none;
  color:var(--ink);
  border-bottom:1px solid var(--ink);
}
.plain-list > li:first-child > a, .plain-list > li:first-child > .row{
  border-top:1px solid var(--ink);
}
.plain-list > li > a:hover, .plain-list > li > a:focus-visible{ background:var(--ink); color:var(--page); }
.jurist-list{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
}
.jurist-list > li{ padding:var(--space-3) 0; border-bottom:1px solid var(--ink); }
.jurist-list > li:first-child{ border-top:1px solid var(--ink); }
.jurist-row-head{ display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-2); }
.jurist-row-head .jurist-name{ font-weight:var(--fw-heading); font-size:var(--fs-2); line-height:1.25; }
.jurist-fields{ display:grid; grid-template-columns:1fr; gap:0.5em 1em; }
@media (min-width:640px){
  .jurist-fields{ grid-template-columns:1fr 1fr; }
  .jurist-fields > div:nth-child(odd):last-child{ grid-column:1 / -1; }
}
.jurist-fields dt{
  font-weight:var(--fw-body); display:inline-block; min-width:9rem;
  white-space:nowrap;
  margin-right:var(--space-2);
}
.jurist-fields dd{ display:inline; margin:0; overflow-wrap:break-word; }
.jurist-fields div{ padding:0.1em 0; }
@media (max-width:639px){
  .jurist-fields{ gap:var(--space-2); }
  .jurist-fields dt{ display:block; min-width:0; margin-right:0; }
  .jurist-fields dd{ display:block; }
}
.jurist-profile-link{ display:inline-block; margin-top:var(--space-2); font-weight:var(--fw-body); }
.profile-head{ margin-bottom:var(--space-3); }
.profile-title{ font-weight:var(--fw-body); }
dl.profile-facts{ display:grid; grid-template-columns:1fr; gap:var(--space-1) var(--space-3); margin:var(--space-3) 0; }
@media (max-width:639px){
  dl.profile-facts{ row-gap:0.25rem; }
  dl.profile-facts dt:not(:first-child){ margin-top:var(--space-2); }
}
@media (min-width:640px){
  dl.profile-facts{ grid-template-columns:10rem 1fr; }
}
dl.profile-facts dt{ font-weight:var(--fw-body); }
dl.profile-facts dd{ margin:0; overflow-wrap:break-word; }
.profile-bio{ max-width:40rem; text-wrap:pretty; }
.tag-list{ display:flex; flex-wrap:wrap; gap:0.9em; margin-top:var(--space-3); }
.tag-list li{ box-shadow:inset 0 0 0 1px var(--ink); padding:0.5em 1.1em; }
.notice{ border:1px solid var(--ink); padding:var(--space-3); margin:var(--space-3) 0; text-wrap:pretty; }
.kform-confirm-lead{
  font-size:var(--fs-1);
  font-weight:var(--fw-strong);
  line-height:1.6;
}
.empty-cta{
  display:inline-block;
  max-width:28rem;
  border:1px solid var(--ink);
  padding:var(--space-4);
  margin:var(--space-3) 0;
  text-decoration:none;
  color:var(--ink);
}
.empty-cta:hover, .empty-cta:focus-visible{ background:var(--ink); color:var(--page); }
.empty-cta-title{ display:block; font-size:var(--fs-1); font-weight:var(--fw-strong); }
.plain-list.empty-list{ margin-top:var(--space-3); }
.see-also{ margin-bottom:var(--space-4); }
.district-and-neighbors{ display:grid; grid-template-columns:minmax(min(22.75rem, 100%), max-content); } 
.district-and-neighbors > .plain-list{ display:contents; }
.neighbor-heading{ margin-top:var(--space-5); }
.about-section{ margin-bottom:var(--space-4); }
.about-section:last-child, .about-section:last-child > :last-child{ margin-bottom:0; }
.about-section p{ max-width:40rem; text-wrap:pretty; }
.kform{ max-width:34rem; }
#f-buy-captcha-answer{ max-width:34rem; }
.kform fieldset{ border:none; margin:0 0 var(--space-4) 0; padding:0; }
.kform legend{ font-weight:var(--fw-heading); font-size:var(--fs-2); margin:0 0 var(--space-2) 0; padding:0; }
.kform .expertise-fieldset{ border:none; margin:0; padding:0; min-width:0; }
.kform .expertise-fieldset legend{ font-size:inherit; font-weight:var(--fw-strong); letter-spacing:normal; margin:0 0 var(--space-1) 0; padding:0; }
.kform .expertise-fieldset .field-input + .field-input{ margin-top:var(--space-2); }
.field{ margin-bottom:var(--space-3); }
.field label{ display:block; font-weight:var(--fw-strong); margin-bottom:var(--space-1); }
.hint{ font-size:var(--fs-1); font-weight:var(--fw-body); text-wrap:pretty; }
.form-intro{ max-width:40rem; text-wrap:pretty; }
.field .hint{ margin-top:0.25rem; }
#f-bio-hint{ font-variant-numeric:tabular-nums; }
.field-input:hover, .field-textarea:hover, select:hover{ background:var(--ink); color:var(--page); border-color:var(--ink); }
.field-input:hover::placeholder, .field-textarea:hover::placeholder{ color:var(--page); opacity:1; }
.field-input, .field-textarea{
  width:100%;
  background:var(--page);
  color:var(--ink);
  border:1px solid var(--ink);
  padding:var(--space-2);
  font-size:var(--fs-1);
  font-family:inherit;
  font-weight:var(--fw-body);
}
.field-textarea{ resize:vertical; min-height:6rem; }
.field-input::placeholder, .field-textarea::placeholder{ color:var(--ink); opacity:1; } 
.field-input:focus, .field-textarea:focus, .field-input:focus-visible, .field-textarea:focus-visible{ outline:none; border-color:var(--ink); box-shadow:0 0 0 2px var(--ink) inset; }
.field-check{ display:flex; align-items:flex-start; gap:var(--space-1); }
.field-check input{
  appearance:none;
  -webkit-appearance:none;
  position:relative;
  width:1.5rem;
  height:1.5rem;
  margin:0.05rem 0 0 0;
  border:1px solid var(--ink);
  background:var(--page);
  flex:0 0 auto;
  cursor:pointer;
}
.field-check input:checked::after{
  content:"";
  position:absolute;
  left:0.475rem;
  top:0.175rem;
  width:0.375rem;
  height:0.725rem;
  border:solid var(--ink);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.field-check label{ font-weight:var(--fw-body); margin:0; cursor:default; text-wrap:pretty; } 
.spec-fieldset .field-check label, .client-type-fieldset .field-check label, .option-fieldset .field-check label{ text-wrap:balance; } 
.field-check input:disabled{ cursor:not-allowed; }
.field-check input:disabled + label{ cursor:default; }
.honey{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.captcha-img{ border:1px solid var(--ink); margin-bottom:var(--space-1); background:var(--page); }
.captcha-field .captcha-reload-hint{ margin-top:0.25rem; margin-bottom:0; }
.captcha-reload{ display:inline-block; padding:0.25rem 0; margin:-0.25rem 0; }
.spec-fieldset, .client-type-fieldset, .option-fieldset{ border:none; margin:var(--space-4) 0 0 0; padding:0; }
.spec-fieldset legend, .client-type-fieldset legend, .option-fieldset legend{ font-size:var(--fs-1); font-weight:var(--fw-strong); margin-bottom:var(--space-1); padding:0; text-wrap:balance; } 
.spec-fieldset .hint, .client-type-fieldset .hint, .hint-before{ margin-bottom:var(--space-2); }
.checkbox-grid .field-check{ margin-bottom:var(--space-1); }
@media (min-width:640px){
  .checkbox-grid{ column-count:2; column-gap:var(--space-2); }
  .checkbox-grid .field-check{ break-inside:avoid; -webkit-column-break-inside:avoid; }
}
.site-footer{
  padding:var(--space-5) 0 calc(var(--space-5) + var(--sab)) 0;
}
.footer-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--space-4);
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}
.footer-about-link{ text-decoration-line:underline; white-space:nowrap; } 
.footer-note{ margin:0; max-width:40rem; text-wrap:pretty; } 
.situations-heading{ font-size:var(--fs-1); font-weight:var(--fw-strong); line-height:1.5; margin:0 0 var(--space-2) 0; }
.situations-list li{ margin-bottom:var(--space-1); break-inside:avoid; -webkit-column-break-inside:avoid; text-wrap:balance; } 
@media (min-width:640px){
  .situations-list{ column-count:2; column-gap:var(--space-4); }
}
.faq-list{ max-width:40rem; }
.faq-item{ margin-bottom:var(--space-4); }
.faq-item:last-child{ margin-bottom:0; }
.faq-item h2{ font-size:var(--fs-1); font-weight:var(--fw-strong); line-height:1.5; margin:0 0 var(--space-1) 0; }
.faq-item p{ margin:0; text-wrap:pretty; }
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
@media (min-width:800px){
  #app{ min-height:0; }
  body{ min-height:0; }
}
.field-input[type=date]:focus-within{ border-color:var(--ink); box-shadow:0 0 0 2px var(--ink) inset; }
.field-input::-webkit-calendar-picker-indicator:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.jurist-row-head .jurist-name{ margin:0; }
.captcha-field .captcha-alt-hint{ margin-top:var(--space-1); margin-bottom:0; }
@media (max-width:359px){
  .logo{ font-size:1.25rem; }
  .footer-about-link{ white-space:normal; }
}
body{ hanging-punctuation:first; }
.cta-price{ white-space:nowrap; }
@media (max-width:359px){ .cta-price{ white-space:normal; } }
.header-row{ align-items:baseline; row-gap:var(--space-2); }
.header-actions{ margin-top:calc(-1 * var(--space-1)); }
.field-textarea{ display:block; }
.captcha-img{ display:block; }
.kform .field + fieldset{ margin-top:var(--space-4); }
.spec-fieldset .hint, .client-type-fieldset .hint{ margin-top:0; }
#villkor > h2 + h3{ margin-top:0; }
#villkor{ --num-col:2.5em; }
#villkor .num-item{ display:grid; grid-template-columns:var(--num-col) minmax(0,1fr); }
#villkor .num{ font-variant-numeric:tabular-nums; white-space:nowrap; }
#villkor .step-list > li:not(.num-item), #villkor h3.num-item + p{ padding-left:var(--num-col); }
#villkor .step-list{ margin:0; }
#villkor .step-list > li{ padding:0; }
#villkor .step-list > li + li{ margin-top:var(--space-3); }
.search-page-form{ margin-bottom:var(--space-3); }

/* ---------- City guides (static pages) ---------- */
.guide-lead{ max-width:40rem; text-wrap:pretty; margin-bottom:var(--space-4); }
.guide-firms{ border-top:1px solid var(--ink); max-width:48rem; }
.guide-firm{ border-bottom:1px solid var(--ink); padding:var(--space-3) 0; }
.guide-firm .guide-firm-name{ font-size:var(--fs-1); font-weight:var(--fw-strong); line-height:1.5; letter-spacing:normal; margin:0 0 var(--space-1) 0; }
.guide-firm p{ margin:0; }
.guide-addr-end{ white-space:nowrap; } /* step 4: the last word and the arrow stay together */
.guide-firm .guide-areas-label{ margin-top:var(--space-2); }
/* v54: no separator left dangling at the end of a line. Each area carries its bar in FRONT of it
   (a fixed 2em box, bar centred = about one em of air each side); the list is pulled 2em to the left
   and that 2em is clipped away, so the bar that starts each line - including the very first - is
   hidden and a bar only ever shows between two areas on the same line. */
.guide-areas{ display:flex; flex-wrap:wrap; margin-left:-2em; clip-path:inset(-4px -4px -4px 2em); }
.guide-areas li{ display:flex; min-width:0; }
.guide-areas li::before{ content:"|"; content:"|" / ""; flex:0 0 2em; text-align:center; }
.guide-areas a{ min-width:0; } /* step 4: an area name stays whole on its line and wraps only when it is wider than a whole line (larger text), instead of being cut off */
/* v45: "Advokatbyråer" / "Juristbyråer" are ordinary section headings – same size and weight as
   "Domstolar" etc. (base h2: fs-2, fw-heading, 40px above, 16px below) */
.guide-sub{ margin:var(--space-4) 0 var(--space-2) 0; }
.guide-group + .guide-group{ margin-top:var(--space-4); }
.plain-list.guide-more{ grid-template-columns:minmax(0, 48rem); }
.plain-list.guide-more > li:first-child > a{ border-top:0; }
.plain-list.guide-links{ grid-template-columns:minmax(0, 32rem); }
.plain-list.guide-links > li > a > span:first-child, .plain-list.guide-more > li > a > span:first-child{ text-wrap:balance; } /* no lone last word ("… i hela / Sverige") when a name wraps on mobile; step 5 round 2 (14 Oct 2026): balance – pretty left "Förvaltningsrätten i / Karlstad" – and the "Fler advokater …" link too */
/* v55 (John 12 Oct 2026): name + arrow only, like every other list – no visible web address */
.guide-prose{ max-width:40rem; text-wrap:pretty; }
/* −192: the FAQ questions under "Rättshjälp och rättsskydd" open in place (same row look as the links) */
.guide-qa > details > summary{ display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-2);
  padding:var(--space-3) var(--space-2); border-bottom:1px solid var(--ink); cursor:pointer; list-style:none; text-wrap:balance; }
.guide-qa > details > summary::-webkit-details-marker{ display:none; }
.plain-list > li.guide-qa:first-child > details > summary{ border-top:1px solid var(--ink); }
.guide-qa > details > summary:hover, .guide-qa > details > summary:focus-visible{ background:var(--ink); color:var(--page); }
.guide-qa > details[open] > summary .chev{ transform:rotate(180deg); }
.guide-qa > details > p{ margin:0; padding:var(--space-2) var(--space-2) var(--space-3); border-bottom:1px solid var(--ink); text-wrap:pretty; }
/* v42: city links side by side instead of one long column (18 rows = a 1 400 px scroll);
   as many columns as fit, 12rem = the longest entry ("Kaikki kaupungit →") never clips */
/* −151 (John 12 Oct 2026): the cities run alphabetically DOWN each column
   (Borås, Eskilstuna, Gävle … then the next column), not across the rows.
   Columns of at least 12rem, at most three; one column on a phone.
   Neighbouring lines overlap by 1px so two rows never draw a double line. */
.plain-list.guide-cities{ display:block; columns:3 12rem; column-gap:var(--space-2); max-width:48rem; }
.plain-list.guide-cities > li{ break-inside:avoid; margin-bottom:-1px; }
.plain-list.guide-cities > li > a{ border-top:1px solid var(--ink); }
.guide-preview-banner{ border:1px solid var(--ink); padding:var(--space-2); margin-bottom:var(--space-3); font-weight:var(--fw-strong); }
.lang-switch a.lang-opt{ text-decoration:underline; }
