/* =========================================================
   Skjalaskráning
   Archival-register layout: left index rail, fine rules,
   monospaced index numbers, on the cream/green identity.
   ========================================================= */

:root{
  /* --- surfaces --- */
  --surface:#FBF9F5;          /* warm cream canvas */
  --surface-rail:#F0ECE1;     /* paler cream rail */
  --surface-subtle:#EDE9DE;   /* panels, open FAQ answer */
  --surface-green:#E7EBE5;    /* faint green wash */

  /* --- ink --- */
  --text:#15191C;
  --text-muted:#4C554F;
  --text-index:#6E756D;       /* index numbers, eyebrows */

  /* --- accent (the original green) --- */
  --accent:#1E3A31;
  --accent-hover:#2C5748;
  --on-accent:#F7F5F0;

  /* --- rules and borders --- */
  --rule:#D9D2C4;
  --rule-strong:#BFB6A3;
  --field-border:#8A8375;     /* >=3:1 on the cream canvas */

  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-index:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --rail-width:clamp(224px,18vw,272px);
  --main-max:1240px;
  --gutter:clamp(20px,3.5vw,56px);

  --space-1:8px;  --space-2:12px; --space-3:16px; --space-4:24px;
  --space-5:32px; --space-6:48px; --space-7:64px; --space-8:80px;

  --section:clamp(44px,5.5vw,80px);
  --header-h:60px;            /* mobile sticky header */
}

*,*::before,*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 16px);
}
@media (min-width:1100px){ html{scroll-padding-top:24px} }
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

body{
  margin:0;
  background:var(--surface);
  color:var(--text-muted);
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.6;
  font-feature-settings:"kern","liga";
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{margin:0;color:var(--text);font-weight:600;line-height:1.14;letter-spacing:-.02em;text-wrap:balance}
p{margin:0 0 1.1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0}
img{max-width:100%;display:block}

a{color:var(--accent);text-decoration-thickness:.06em;text-underline-offset:.2em;
  transition:color .15s ease}
a:hover{color:var(--accent-hover)}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

.skip{position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--accent);color:var(--on-accent);padding:12px 18px;text-decoration:none}
.skip:focus{left:12px;top:12px}

/* =========================================================
   Shell
   ========================================================= */

.shell{min-height:100vh}

@media (min-width:1100px){
  .shell{
    display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);align-items:start;
    /* the rail is sticky and only 100vh tall, so the column itself is painted
       here: the pale band and its hairline run the whole height of the page */
    background:linear-gradient(90deg,
      var(--surface-rail) 0 var(--rail-width),
      var(--rule) var(--rail-width) calc(var(--rail-width) + 1px),
      var(--surface) calc(var(--rail-width) + 1px));
  }
}

/* ---------- Left rail (desktop) ---------- */
.rail{
  background:var(--surface-rail);
  border-right:1px solid var(--rule);
}
@media (min-width:1100px){
  .rail{
    position:sticky;top:0;
    height:100vh;
    overflow-y:auto;
    display:flex;flex-direction:column;
    padding:var(--space-6) 0 var(--space-5);
  }
}

.brand{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;color:var(--text);
  padding:0 var(--space-4);
}
.brand-mark{flex:none;width:auto;height:30px}
.brand-name{font-size:1.06rem;font-weight:600;letter-spacing:-.015em;line-height:1}

.rail-nav{display:flex;flex-direction:column;margin-top:var(--space-7);padding:0 var(--space-4)}
.rail-nav a{
  display:block;padding:9px 0 9px 14px;
  border-left:2px solid var(--rule);
  text-decoration:none;color:var(--text-muted);
  transition:color .15s ease,border-color .15s ease;
}
.rail-nav a + a{margin-top:var(--space-3)}
.rail-nav .idx{
  display:block;font-family:var(--font-index);font-size:.7rem;letter-spacing:.1em;
  color:var(--text-index);margin-bottom:3px;
}
.rail-nav .label{display:block;font-size:1rem;line-height:1.25}
.rail-nav a:hover{color:var(--text);border-left-color:var(--rule-strong)}
.rail-nav a[aria-current="page"]{color:var(--accent);border-left-color:var(--accent)}
.rail-nav a[aria-current="page"] .label{font-weight:600}

.rail-note{
  margin:var(--space-7) 0 0;padding:var(--space-4) var(--space-4) 0;
  font-size:.94rem;color:var(--text-index);line-height:1.35;
  border-top:1px solid var(--rule);
  max-width:15ch;
}
@media (min-width:1100px){
  .rail-note{margin-top:auto;border-top:0;position:relative}
  .rail-note::before{content:"";position:absolute;top:0;left:var(--space-4);width:34px;height:1px;background:var(--rule-strong)}
}

/* ---------- Brand row / mobile navigation disclosure ---------- */
.rail-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.nav-toggle{display:none}

@media (max-width:1099px){
  .rail{
    position:sticky;top:0;z-index:120;
    border-right:0;border-bottom:1px solid var(--rule);
  }
  .rail-bar{
    min-height:var(--header-h);
    padding-inline:max(20px,env(safe-area-inset-left));
  }
  .brand{padding:0}
  .brand-mark{height:26px}

  .js .nav-toggle{
    display:inline-flex;align-items:center;gap:9px;
    font:inherit;font-size:.92rem;color:var(--text);
    background:transparent;border:1px solid var(--rule-strong);
    padding:9px 14px;cursor:pointer;border-radius:2px;min-height:44px;
  }
  .nav-toggle .bars{display:block;width:16px;height:9px;position:relative}
  .nav-toggle .bars::before,.nav-toggle .bars::after{
    content:"";position:absolute;left:0;right:0;height:1.5px;background:var(--text);transition:transform .18s ease}
  .nav-toggle .bars::before{top:0}
  .nav-toggle .bars::after{bottom:0}
  .nav-toggle[aria-expanded="true"] .bars::before{transform:translateY(3.75px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] .bars::after{transform:translateY(-3.75px) rotate(-45deg)}

  .rail-nav{
    margin-top:0;padding:0 max(20px,env(safe-area-inset-left)) var(--space-4);
    border-top:1px solid var(--rule);
  }
  .rail-nav[hidden]{display:none}
  .rail-nav a{padding:12px 0 12px 14px;margin-top:0}
  .rail-nav a + a{margin-top:0;border-top:0}
  .rail-note{display:none}
}

/* =========================================================
   Main column
   ========================================================= */

.col{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.inner{width:100%;max-width:var(--main-max);margin-inline:auto;padding-inline:var(--gutter)}

main{flex:1 0 auto;padding-bottom:var(--section)}

/* breadcrumb / page marker strip */
.topbar{
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);
  padding-top:var(--space-4);
}
.crumb{margin:0;font-size:.86rem;color:var(--text-index)}
.crumb a{color:var(--text-index);text-decoration:none}
.crumb a:hover{color:var(--text);text-decoration:underline}
.crumb .sep{margin:0 8px;color:var(--rule-strong)}
.page-marker{
  margin:0;font-family:var(--font-index);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-index);white-space:nowrap;
}
@media (max-width:599px){ .page-marker{display:none} }

/* the shared strapline above every page introduction */
.strap{
  margin:var(--space-6) 0 0;padding-bottom:var(--space-4);
  border-bottom:1px solid var(--rule);
  font-family:var(--font-index);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--text-index);
}
@media (max-width:1099px){ .strap{margin-top:var(--space-5)} }
/* the rule under the strapline needs air beneath it; without this the page
   heading sits straight on the line */
.strap + *{margin-top:clamp(30px,3.4vw,50px)}

/* =========================================================
   Typography helpers
   ========================================================= */

.h1{font-size:clamp(2rem,4.4vw,3.5rem);line-height:1.06;letter-spacing:-.028em}
.h2{font-size:clamp(1.5rem,2.7vw,2.15rem);line-height:1.12;letter-spacing:-.022em}
.h3{font-size:clamp(1.15rem,1.55vw,1.4rem);line-height:1.25;letter-spacing:-.014em}
.h4{font-size:1.06rem;line-height:1.3;letter-spacing:-.01em}

.lead{
  margin-top:var(--space-3);
  font-size:clamp(1.12rem,1.75vw,1.4rem);line-height:1.4;
  color:var(--text-muted);max-width:26ch;letter-spacing:-.012em;
}
.lead-wide{max-width:34ch}
.eyebrow{
  margin:0 0 var(--space-3);font-family:var(--font-index);font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--text-index);
}
.small{font-size:.94rem}
.muted{color:var(--text-index)}
.prose{max-width:64ch}
.prose p + p{margin-top:0}

.section{margin-top:var(--section)}
.section-tight{margin-top:var(--space-6)}
.divider{border:0;border-top:1px solid var(--rule);margin:var(--section) 0 0}

/* =========================================================
   Buttons and link affordances
   ========================================================= */

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:46px;padding:11px 24px;
  font:inherit;font-size:.98rem;font-weight:500;line-height:1.2;
  text-decoration:none;border:1px solid var(--accent);border-radius:2px;cursor:pointer;
  background:var(--accent);color:var(--on-accent);
  transition:background-color .16s ease,border-color .16s ease,color .16s ease;
}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}
.btn-outline{background:transparent;color:var(--accent);border-color:var(--rule-strong)}
.btn-outline:hover{background:transparent;color:var(--accent-hover);border-color:var(--accent)}
.btn .arrow{font-size:.92em;transition:transform .16s ease}
.btn:hover .arrow{transform:translateX(3px)}

/* a quiet underlined text link with a trailing arrow */
.link-arrow{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--accent);text-decoration:underline;text-decoration-color:var(--rule-strong);
  text-underline-offset:.24em;font-size:1rem;
}
.link-arrow:hover{text-decoration-color:var(--accent)}
.link-arrow .arrow{transition:transform .16s ease}
.link-arrow:hover .arrow{transform:translateX(3px)}
.link-row{margin-top:var(--space-4)}

/* =========================================================
   Homepage hero
   ========================================================= */

.hero-grid{display:grid;gap:var(--space-4)}
@media (min-width:900px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(160px,238px);gap:var(--space-6);align-items:start}
  .hero-note{border-left:1px solid var(--rule);padding-left:var(--space-5);padding-top:6px}
}
.hero-note p{font-size:1rem;color:var(--text-muted);margin:0;max-width:22ch}
.hero-grid .lead{max-width:30ch}
.hero-actions{margin-top:var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-2)}

/* =========================================================
   Photographs
   ========================================================= */

.figure{margin:var(--section) 0 0}
.figure img{width:100%;height:100%;object-fit:cover;display:block}
.figure .frame{position:relative;width:100%;overflow:hidden;background:var(--surface-subtle)}
.frame-hero{aspect-ratio:16/7}
.frame-strip{aspect-ratio:16/5}
.frame-band{aspect-ratio:21/8}
@media (max-width:699px){
  .frame-hero{aspect-ratio:4/3}
  .frame-strip{aspect-ratio:3/2}
  .frame-band{aspect-ratio:4/3}
}
.figure figcaption{margin-top:var(--space-3);font-size:.94rem;color:var(--text-muted);max-width:56ch}
.figure img.pos-hero{object-position:center 48%}
.figure img.pos-hreinsun{object-position:center 48%}
.figure img.pos-oskjur{object-position:center 45%}
.figure img.pos-vinnuadstada{object-position:center 60%}

/* =========================================================
   Index rows (services, homepage summary, contact steps)
   ========================================================= */

.rows{border-top:1px solid var(--rule)}
.row{
  display:grid;grid-template-columns:38px minmax(0,1fr);
  gap:var(--space-2) var(--space-3);
  padding:var(--space-4) 0;
  border-bottom:1px solid var(--rule);
}
.row .idx{
  font-family:var(--font-index);font-size:.72rem;letter-spacing:.08em;
  color:var(--text-index);padding-top:6px;
}
.row .rtitle{
  border-left:1px solid var(--rule);padding-left:var(--space-4);
  font-size:clamp(1.1rem,1.5vw,1.35rem);line-height:1.25;letter-spacing:-.014em;
  color:var(--text);font-weight:600;margin:0;
}
.row .rbody{grid-column:2;padding-left:var(--space-4);max-width:60ch}
.row .rbody p{font-size:1rem;margin-bottom:0}
.row .rbody p + p{margin-top:.9em}

@media (min-width:1000px){
  .row{grid-template-columns:38px minmax(200px,.85fr) minmax(0,1.25fr);align-items:start;gap:var(--space-5)}
  .row .rbody{grid-column:3;padding-left:0}
  .row .rtitle{padding-right:var(--space-4)}
}

/* linked rows (homepage summary) */
a.row{text-decoration:none;color:inherit;transition:background-color .16s ease}
a.row:hover{background:var(--surface-subtle)}
a.row:hover .rtitle{color:var(--accent)}
.row .go{display:none}
@media (min-width:1000px){
  a.row{grid-template-columns:38px minmax(200px,.85fr) minmax(0,1.25fr) 32px}
  .row .go{display:block;grid-column:4;color:var(--accent);font-size:1.1rem;
    line-height:1;justify-self:end;align-self:center}
}

/* =========================================================
   Editorial two-column block
   ========================================================= */

.split{display:grid;gap:var(--space-4)}
@media (min-width:900px){
  .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-7);align-items:start}
  .split-aside{grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr)}
}
.split h2 + .prose,.split h2 + .rows{margin-top:var(--space-4)}
.block-head{margin-bottom:var(--space-4)}
.block-head + .rows{margin-top:0}

.panel{
  background:var(--surface-subtle);
  padding:var(--space-5) var(--space-5);
  border-left:2px solid var(--accent);
}
.panel .h3{margin-bottom:var(--space-2)}
.panel p{font-size:1rem;max-width:52ch}

.note{
  border-left:2px solid var(--rule-strong);
  padding:2px 0 2px var(--space-4);
  max-width:64ch;
}
.note strong{display:block;color:var(--text);font-weight:600;font-size:1.06rem;margin-bottom:4px}
.note p{font-size:1rem;margin:0}

/* closing call to action */
.closing{
  margin-top:var(--section);padding-top:var(--space-6);
  border-top:1px solid var(--rule);
  display:grid;gap:var(--space-4);align-items:center;
}
@media (min-width:800px){
  .closing{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-6)}
  .closing .closing-action{justify-self:end}
}
.closing h2{max-width:20ch}
.closing p{margin-top:var(--space-2);max-width:48ch}

.cta-panel{
  margin-top:var(--section);
  background:var(--surface-green);
  padding:var(--space-6) var(--space-5);
}
.cta-panel h2{max-width:18ch}
.cta-panel p{margin-top:var(--space-2);max-width:44ch}
.cta-panel .btn{margin-top:var(--space-5)}

/* =========================================================
   Process register
   ========================================================= */

.phase{border-top:1px solid var(--rule)}
.phase:last-of-type{border-bottom:1px solid var(--rule)}
.phase-head{
  margin:0;padding:var(--space-5) 0 var(--space-2);
  font-family:var(--font-index);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent);
}
.steps{list-style:none;padding-bottom:var(--space-4)}
.steps li{
  display:grid;grid-template-columns:38px minmax(0,1fr);
  gap:var(--space-2) var(--space-3);
  padding:var(--space-3) 0;
}
.steps li + li{border-top:1px solid var(--rule)}
.steps .idx{font-family:var(--font-index);font-size:.72rem;letter-spacing:.08em;color:var(--text-index);padding-top:5px}
.steps h3{border-left:1px solid var(--rule);padding-left:var(--space-4);
  font-size:clamp(1.08rem,1.4vw,1.25rem);line-height:1.25}
.steps p{grid-column:2;padding-left:var(--space-4);margin:0;font-size:1rem;max-width:60ch}

@media (min-width:1000px){
  .phase{display:grid;grid-template-columns:minmax(130px,.19fr) minmax(0,1fr);gap:var(--space-5)}
  .phase-head{padding-top:var(--space-5)}
  .steps li{grid-template-columns:38px minmax(180px,.8fr) minmax(0,1.3fr);align-items:start;gap:var(--space-5)}
  .steps p{grid-column:3;padding-left:0}
  .steps h3{padding-right:var(--space-4)}
}

/* =========================================================
   FAQ
   ========================================================= */

.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  list-style:none;cursor:pointer;
  display:grid;grid-template-columns:38px minmax(0,1fr) 28px;
  gap:var(--space-3);align-items:start;
  padding:var(--space-4) 0;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover .q{color:var(--accent)}
.faq .idx{font-family:var(--font-index);font-size:.72rem;letter-spacing:.08em;color:var(--text-index);padding-top:6px}
.faq .q{
  border-left:1px solid var(--rule);padding-left:var(--space-4);
  font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.3;letter-spacing:-.012em;
  color:var(--text);font-weight:600;
}
.faq .sign{position:relative;width:18px;height:18px;margin-top:8px;justify-self:end;flex:none}
.faq .sign::before,.faq .sign::after{content:"";position:absolute;background:var(--accent);transition:opacity .18s ease}
.faq .sign::before{left:0;right:0;top:8px;height:1.5px}
.faq .sign::after{top:0;bottom:0;left:8px;width:1.5px}
.faq details[open] .sign::after{opacity:0}
.faq .answer{
  background:var(--surface-subtle);
  margin:0 0 var(--space-4);
  padding:var(--space-4) var(--space-5);
}
.faq .answer p{font-size:1rem;max-width:62ch}
@media (min-width:1000px){
  .faq .answer{margin-left:calc(38px + var(--space-3))}
}

/* =========================================================
   Laws and regulations
   ========================================================= */

.law-strip{
  display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);
  background:var(--surface-subtle);
  padding:var(--space-4) var(--space-5);
  margin-top:var(--space-5);
}
.law-strip a{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--accent);text-underline-offset:.24em;font-size:1rem;
}

.doc{margin-top:var(--section);display:grid;gap:var(--space-6)}
@media (min-width:1300px){
  .doc{grid-template-columns:minmax(190px,.26fr) minmax(0,1fr);gap:var(--space-7);align-items:start}
  .doc-toc{position:sticky;top:var(--space-5)}
}

.doc-toc .eyebrow{padding-bottom:var(--space-2);border-bottom:1px solid var(--rule);margin-bottom:0}
.doc-toc ol{list-style:none;counter-reset:toc}
.doc-toc li{counter-increment:toc}
.doc-toc a{
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:var(--space-2);
  padding:11px 0;text-decoration:none;color:var(--text-muted);font-size:.98rem;line-height:1.3;
}
.doc-toc a::before{
  content:counter(toc,decimal-leading-zero);
  font-family:var(--font-index);font-size:.7rem;letter-spacing:.08em;color:var(--text-index);padding-top:3px;
}
.doc-toc a span{border-left:1px solid var(--rule);padding-left:var(--space-3)}
.doc-toc a:hover{color:var(--text)}
.doc-toc a:hover span{border-left-color:var(--rule-strong)}
.doc-toc a.is-current{color:var(--accent)}
.doc-toc a.is-current span{border-left-color:var(--accent)}

.doc-body{min-width:0}
.doc-section{
  padding:var(--space-5) 0;border-top:1px solid var(--rule);
  display:grid;grid-template-columns:38px minmax(0,1fr);gap:var(--space-2) var(--space-3);
}
.doc-section:first-child{border-top:0;padding-top:0}
.doc-section:last-of-type{border-bottom:1px solid var(--rule)}
.doc-section .idx{font-family:var(--font-index);font-size:.72rem;letter-spacing:.08em;color:var(--text-index);padding-top:8px}
.doc-section h2{border-left:1px solid var(--rule);padding-left:var(--space-4);
  font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.22}
.doc-section .doc-text{grid-column:2;padding-left:var(--space-4);max-width:64ch}
.doc-section .doc-text > * + *{margin-top:1.05em}
.doc-section .doc-text > p{margin-bottom:0}

.figures{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:var(--space-4)}
@media (min-width:700px){ .figures{grid-template-columns:repeat(3,minmax(0,1fr))} }
.fig{background:var(--surface);padding:var(--space-4)}
.fig .k{font-size:1.3rem;color:var(--text);font-weight:600;letter-spacing:-.02em;line-height:1.2;
  font-variant-numeric:tabular-nums}
.fig .v{font-size:.94rem;color:var(--text-muted);margin-top:6px}

.marked{list-style:none;margin-top:var(--space-2)}
.marked li{padding:14px 0 14px var(--space-4);border-top:1px solid var(--rule);position:relative;max-width:64ch}
.marked li:last-child{border-bottom:1px solid var(--rule)}
.marked li::before{content:"";position:absolute;left:0;top:24px;width:11px;height:1.5px;background:var(--accent)}
.marked strong{display:block;color:var(--text);font-weight:600}

.doc-note{margin-top:var(--space-6)}

/* =========================================================
   Contact
   ========================================================= */

.contact{display:grid;gap:var(--space-6);margin-top:var(--space-6)}
@media (min-width:1000px){
  .contact{grid-template-columns:minmax(0,62fr) minmax(260px,38fr);gap:var(--space-7);align-items:start}
  .contact-aside{border-left:1px solid var(--rule);padding-left:var(--space-6)}
}

form.enquiry{margin-top:var(--space-5)}
.hp{display:none}
.field-row{display:grid;gap:0 var(--space-4)}
@media (min-width:640px){ .field-row{grid-template-columns:repeat(2,minmax(0,1fr))} }
.field{margin-bottom:var(--space-4)}
.field label{display:block;font-size:.98rem;color:var(--text);margin-bottom:7px}
.field label .opt{color:var(--text-muted);font-weight:400}
.field .hint{display:block;font-size:.92rem;color:var(--text-muted);margin:-3px 0 7px}
.field input,.field textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--text);
  background:var(--surface);border:1px solid var(--field-border);border-radius:2px;
  padding:11px 13px;min-height:46px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.field textarea{min-height:150px;resize:vertical;line-height:1.55}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(30,58,49,.14)}
.field input:user-invalid,.field textarea:user-invalid{border-color:#8B2F22}

.form-actions{margin-top:var(--space-5)}
.form-help{margin-top:var(--space-4);font-size:.96rem;color:var(--text-muted);max-width:56ch}
.form-status{
  margin-top:var(--space-4);padding:var(--space-3) var(--space-4);
  background:var(--surface-subtle);border-left:2px solid var(--accent);
  font-size:.98rem;color:var(--text-muted);max-width:56ch;
}
.form-status:empty{display:none}

.contact-aside .aside-intro{margin-top:var(--space-2);max-width:34ch}
.contact-aside .aside-next{margin-top:var(--space-6)}
.contact-aside dl{margin:0;margin-top:var(--space-5)}
.contact-aside dt{
  font-family:var(--font-index);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-index);margin-top:var(--space-5);
}
.contact-aside dt:first-of-type{margin-top:var(--space-3)}
.contact-aside dd{margin:5px 0 0;font-size:1.02rem;color:var(--text)}

.mini-steps{list-style:none;margin-top:var(--space-3);border-top:1px solid var(--rule)}
.mini-steps li{
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:var(--space-3);
  padding:var(--space-3) 0;border-bottom:1px solid var(--rule);
}
.mini-steps .idx{font-family:var(--font-index);font-size:.7rem;letter-spacing:.08em;color:var(--text-index);padding-top:3px}
.mini-steps span:last-child{border-left:1px solid var(--rule);padding-left:var(--space-3);font-size:1rem}

/* =========================================================
   Footer
   ========================================================= */

.site-footer{flex:none;border-top:1px solid var(--rule);padding-bottom:var(--space-5)}
.footer-links{display:grid;gap:var(--space-4);padding-top:var(--space-5)}
@media (min-width:700px){ .footer-links{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)} }
.site-footer h2{
  font-family:var(--font-index);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-index);font-weight:400;margin-bottom:var(--space-2);
}
.site-footer ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px var(--space-4)}
.site-footer li{font-size:.96rem}
.site-footer a{color:var(--text-muted);text-decoration:none}
.site-footer a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}
.footer-bottom{
  margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);
  font-size:.92rem;color:var(--text-index);
}

/* =========================================================
   Print
   ========================================================= */

@media print{
  .rail,.skip,.topbar,.nav-toggle,.doc-toc,.btn,.link-arrow,.figure,.cta-panel,.closing{display:none!important}
  html{scroll-behavior:auto}
  body{background:#fff;color:#000;font-size:10.5pt;line-height:1.45}
  .shell{display:block}
  .col{display:block;min-height:0}
  .inner{max-width:none;padding-inline:0}
  h1,h2,h3{color:#000;break-after:avoid}
  .h1{font-size:20pt}.h2{font-size:15pt}.h3{font-size:12pt}
  p,li{orphans:3;widows:3}
  .row,.steps li,.doc-section,.faq details,.fig{break-inside:avoid;page-break-inside:avoid}
  .split,.doc,.contact,.row,.steps li,.doc-section,.faq summary,.phase{display:block}
  .row .rbody,.steps p,.doc-section .doc-text,.row .rtitle,.steps h3,.doc-section h2,.faq .q{
    padding-left:0;border-left:0;max-width:none}
  .faq details[open] .answer,.faq .answer{display:block!important;background:none;padding:0;margin:0 0 8pt}
  .faq details:not([open]) .answer{display:block!important}
  .panel,.note,.form-status,.law-strip{background:none;border-left:1pt solid #999;padding-left:10pt}
  main a[href^="http"]::after{content:" (" attr(href) ")";font-size:8.5pt;color:#444;word-break:break-all}
  .site-footer{border-top:1pt solid #999}
}
