/* ============================================================================
   Dialed In Lab — Eugene, Oregon
   Hand-written stylesheet. No preprocessor, no framework, no remote fonts.

   Direction: a field manual printed on warm stock. Off-white paper, burgundy
   ink, warm grey pencil. Hairline rules instead of heavy boxes. Cambria carries
   every display line; Segoe UI carries every reading line.

   Sections
     01  tokens
     02  reset and base
     03  layout helpers
     04  buttons and small marks
     05  ribbon and masthead
     06  split hero
     07  zigzag rows
     08  spec plates and data tables
     09  cards, tiles, steps
     10  quotes, people, prices
     11  disclosures and forms
     12  editorial / article body
     13  callout and footer
     14  rise-on-scroll
     15  responsive
   ========================================================================== */

/* ---- 01 tokens ---------------------------------------------------------- */

:root {
  --dil-ink:          #6b1f30;
  --dil-ink-deep:     #47121e;
  --dil-ink-lift:     #8d3446;
  --dil-ink-wash:     #f3e5e6;

  --dil-pencil:       #6d665f;
  --dil-pencil-deep:  #38332e;
  --dil-pencil-soft:  #9c948b;
  --dil-pencil-faint: #cec7bd;

  --dil-paper:        #f7f3ec;
  --dil-paper-lift:   #fffdf8;
  --dil-paper-sink:   #ece5d9;

  --dil-rule:         #ddd4c6;
  --dil-rule-hard:    #c3b8a7;

  --dil-serif:  Cambria, "Palatino Linotype", "Book Antiqua", Palatino, Georgia, "Times New Roman", serif;
  --dil-sans:   "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;

  --dil-hold:   1216px;
  --dil-gut:    26px;

  --dil-lift-1: 0 1px 2px rgba(56, 51, 46, 0.07);
  --dil-lift-2: 0 10px 30px -18px rgba(56, 51, 46, 0.42);
  --dil-lift-3: 0 26px 60px -34px rgba(71, 18, 30, 0.46);

  --dil-ease:   cubic-bezier(0.22, 0.68, 0.32, 1);
}

/* ---- 02 reset and base -------------------------------------------------- */

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body.dil-page {
  margin: 0;
  background: var(--dil-paper);
  color: var(--dil-pencil-deep);
  font-family: var(--dil-sans);
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}

body.dil-locked { overflow: hidden; }

h1, h2, h3, h4 {
  font-family: var(--dil-serif);
  color: var(--dil-ink-deep);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -0.008em;
  margin: 0 0 0.5em;
}

h1 { font-size: clamp(2.15rem, 4.4vw, 3.35rem); }
h2 { font-size: clamp(1.6rem, 2.9vw, 2.3rem); }
h3 { font-size: 1.2rem; letter-spacing: 0; }
h4 { font-size: 1.02rem; letter-spacing: 0; }

p { margin: 0 0 1.05em; }
p:last-child { margin-bottom: 0; }

a {
  color: var(--dil-ink);
  text-decoration-color: rgba(107, 31, 48, 0.34);
  text-underline-offset: 3px;
  transition: color 0.16s var(--dil-ease), text-decoration-color 0.16s var(--dil-ease);
}
a:hover { color: var(--dil-ink-lift); text-decoration-color: currentColor; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--dil-ink);
  outline-offset: 3px;
  border-radius: 2px;
}

img { max-width: 100%; height: auto; }
ul, ol { margin: 0 0 1.05em; padding-left: 1.15em; }
li { margin-bottom: 0.42em; }
strong { color: var(--dil-ink-deep); }
address { font-style: normal; }
table { border-collapse: collapse; width: 100%; }
caption { text-align: left; }

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

.dil-jump {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  background: var(--dil-ink-deep);
  color: #fff;
  padding: 11px 20px;
  font-size: 0.9rem;
  text-decoration: none;
}
.dil-jump:focus { left: 12px; top: 12px; color: #fff; }

/* ---- 03 layout helpers -------------------------------------------------- */

.dil-hold {
  width: 100%;
  max-width: var(--dil-hold);
  margin: 0 auto;
  padding: 0 var(--dil-gut);
}

/* <main>. Nothing decorative — it exists so the skip link has a target and so
   the first section can never collapse its margin into the masthead. */
.dil-body {
  display: block;
  padding-top: 1px;
  margin-top: -1px;
}

.dil-slab { padding: 82px 0; }
.dil-slab--tight { padding: 56px 0; }
.dil-slab--sink { background: var(--dil-paper-sink); }
.dil-slab--lift { background: var(--dil-paper-lift); }

.dil-slab--ink {
  background: var(--dil-ink-deep);
  color: rgba(255, 253, 248, 0.86);
}
.dil-slab--ink h2,
.dil-slab--ink h3 { color: var(--dil-paper-lift); }
.dil-slab--ink a { color: #f0c9d0; }
.dil-slab--ink a:hover { color: #fff; }

.dil-lead-in {
  max-width: 720px;
  margin-bottom: 44px;
}
.dil-lead-in--mid {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.dil-lead-in p {
  font-size: 1.06rem;
  color: var(--dil-pencil);
}

.dil-tab {
  display: inline-block;
  font-family: var(--dil-serif);
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: 0.19em;
  text-transform: uppercase;
  color: var(--dil-ink);
  margin-bottom: 13px;
}
.dil-tab::before {
  content: "";
  display: inline-block;
  width: 26px;
  height: 2px;
  background: var(--dil-ink);
  vertical-align: 0.28em;
  margin-right: 11px;
}
.dil-slab--ink .dil-tab { color: #e0a2ae; }
.dil-slab--ink .dil-tab::before { background: #e0a2ae; }

.dil-rule-top { border-top: 1px solid var(--dil-rule); }

.dil-note {
  font-size: 0.93rem;
  color: var(--dil-pencil-soft);
}

/* ---- 04 buttons and small marks ----------------------------------------- */

.dil-act {
  display: inline-block;
  font-family: var(--dil-sans);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.045em;
  padding: 13px 26px;
  border: 1.5px solid var(--dil-ink);
  text-decoration: none;
  transition: background 0.18s var(--dil-ease), color 0.18s var(--dil-ease), transform 0.18s var(--dil-ease);
}

.dil-act--fill {
  background: var(--dil-ink);
  color: var(--dil-paper-lift);
}
.dil-act--fill:hover {
  background: var(--dil-ink-deep);
  border-color: var(--dil-ink-deep);
  color: #fff;
  transform: translateY(-2px);
}

.dil-act--line {
  background: transparent;
  color: var(--dil-ink);
}
.dil-act--line:hover {
  background: var(--dil-ink-wash);
  color: var(--dil-ink-deep);
  transform: translateY(-2px);
}

.dil-act--pale {
  background: transparent;
  color: var(--dil-paper-lift);
  border-color: rgba(255, 253, 248, 0.55);
}
.dil-act--pale:hover {
  background: rgba(255, 253, 248, 0.12);
  color: #fff;
  border-color: var(--dil-paper-lift);
}

.dil-more {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none;
  border-bottom: 1.5px solid rgba(107, 31, 48, 0.32);
  padding-bottom: 2px;
}
.dil-more:hover { border-bottom-color: var(--dil-ink); }

.dil-chip {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 10px;
  border: 1px solid var(--dil-rule-hard);
  color: var(--dil-pencil);
  background: var(--dil-paper-lift);
}
.dil-chip--ink {
  border-color: var(--dil-ink);
  color: var(--dil-ink);
  background: var(--dil-ink-wash);
}

/* ---- 05 ribbon and masthead --------------------------------------------- */

.dil-ribbon {
  background: var(--dil-ink-deep);
  color: rgba(255, 253, 248, 0.74);
  font-size: 0.79rem;
  letter-spacing: 0.02em;
}
.dil-ribbon__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 38px;
  flex-wrap: wrap;
}
.dil-ribbon__note {
  display: block;
  min-width: 0;
  padding: 7px 0;
}
.dil-ribbon__links { display: flex; gap: 20px; }
.dil-ribbon__links a {
  color: rgba(255, 253, 248, 0.8);
  text-decoration: none;
}
.dil-ribbon__links a:hover { color: #fff; text-decoration: underline; }

.dil-mast {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--dil-paper-lift);
  border-bottom: 1px solid var(--dil-rule);
  transition: box-shadow 0.2s var(--dil-ease);
}
.dil-mast.is-lifted { box-shadow: var(--dil-lift-2); }

.dil-mast__row {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 76px;
}

.dil-sign {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex-shrink: 0;
}
.dil-sign__plate {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  background: var(--dil-ink);
  color: var(--dil-paper-lift);
  font-family: var(--dil-serif);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.dil-sign__words { display: flex; flex-direction: column; line-height: 1.18; }
.dil-sign__name {
  font-family: var(--dil-serif);
  font-size: 1.24rem;
  font-weight: 700;
  color: var(--dil-ink-deep);
  letter-spacing: -0.01em;
}
.dil-sign__sub {
  font-size: 0.71rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--dil-pencil-soft);
}

.dil-bar { margin-left: auto; }
.dil-bar__list {
  display: flex;
  align-items: center;
  gap: 21px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.dil-bar__list li { margin: 0; }
.dil-bar__list a {
  font-size: 0.885rem;
  font-weight: 500;
  color: var(--dil-pencil-deep);
  text-decoration: none;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.dil-bar__list a:hover { color: var(--dil-ink); border-bottom-color: var(--dil-rule-hard); }
.dil-bar__list .is-here > a { color: var(--dil-ink); border-bottom-color: var(--dil-ink); }
.dil-bar__phone { display: none; }

.dil-mast__side {
  display: flex;
  align-items: center;
  gap: 15px;
  flex-shrink: 0;
}
.dil-tel {
  font-family: var(--dil-serif);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--dil-ink-deep);
  text-decoration: none;
  white-space: nowrap;
}
.dil-mast__side .dil-act { padding: 10px 19px; font-size: 0.85rem; }

.dil-burger {
  display: none;
  width: 44px;
  height: 40px;
  border: 1px solid var(--dil-rule-hard);
  background: transparent;
  padding: 0;
  cursor: pointer;
  position: relative;
}
.dil-burger span {
  position: absolute;
  left: 12px;
  width: 18px;
  height: 2px;
  background: var(--dil-ink-deep);
  transition: transform 0.24s var(--dil-ease), opacity 0.14s linear;
}
.dil-burger span:nth-child(1) { top: 13px; }
.dil-burger span:nth-child(2) { top: 19px; }
.dil-burger span:nth-child(3) { top: 25px; }
.dil-burger.is-x span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.dil-burger.is-x span:nth-child(2) { opacity: 0; }
.dil-burger.is-x span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---- 06 split hero ------------------------------------------------------ */

.dil-hero {
  position: relative;
  background: var(--dil-paper-lift);
  border-bottom: 1px solid var(--dil-rule);
  overflow: hidden;
}
.dil-hero::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 34%;
  background:
    linear-gradient(180deg, rgba(107, 31, 48, 0.055), rgba(107, 31, 48, 0.012));
  border-right: 1px solid var(--dil-rule);
  pointer-events: none;
}
.dil-hero__split {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
  gap: 58px;
  align-items: center;
  padding: 78px 0 86px;
}

.dil-hero__mark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dil-ink);
  margin-bottom: 18px;
}
.dil-hero__mark span {
  width: 7px; height: 7px;
  background: var(--dil-ink);
  transform: rotate(45deg);
}
.dil-hero h1 { margin-bottom: 0.42em; }
.dil-hero__sell {
  font-size: 1.12rem;
  color: var(--dil-pencil);
  max-width: 33em;
}
.dil-hero__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 28px;
}
.dil-hero__strip {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid var(--dil-rule);
}
.dil-hero__strip div { min-width: 132px; }
.dil-hero__strip dt {
  font-size: 0.71rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--dil-pencil-soft);
  margin-bottom: 3px;
}
.dil-hero__strip dd {
  margin: 0;
  font-family: var(--dil-serif);
  font-size: 1.22rem;
  font-weight: 700;
  color: var(--dil-ink-deep);
}

/* ---- 08 spec plates ----------------------------------------------------- */

.dil-plate {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule-hard);
  box-shadow: var(--dil-lift-3);
}
.dil-plate__cap {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 15px 20px;
  background: var(--dil-ink-deep);
  color: var(--dil-paper-lift);
}
.dil-plate__cap strong {
  font-family: var(--dil-serif);
  font-size: 1.02rem;
  color: var(--dil-paper-lift);
  letter-spacing: 0.01em;
}
.dil-plate__cap span {
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 253, 248, 0.66);
}
.dil-plate__body { padding: 6px 20px 16px; }

.dil-plate table th,
.dil-plate table td {
  padding: 11px 0;
  border-bottom: 1px solid var(--dil-rule);
  font-size: 0.93rem;
  text-align: left;
  vertical-align: baseline;
}
.dil-plate table th {
  font-weight: 500;
  color: var(--dil-pencil);
}
.dil-plate table td {
  text-align: right;
  font-weight: 700;
  color: var(--dil-ink-deep);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.dil-plate table tr:last-child th,
.dil-plate table tr:last-child td { border-bottom: 0; }

.dil-plate__foot {
  padding: 13px 20px 16px;
  border-top: 1px solid var(--dil-rule-hard);
  background: var(--dil-paper-sink);
  font-size: 0.83rem;
  color: var(--dil-pencil);
}

.dil-sheet {
  width: 100%;
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule-hard);
}
.dil-sheet caption {
  padding: 0 0 12px;
  font-family: var(--dil-serif);
  font-size: 0.98rem;
  color: var(--dil-pencil);
}
.dil-sheet th,
.dil-sheet td {
  padding: 13px 17px;
  border-bottom: 1px solid var(--dil-rule);
  font-size: 0.93rem;
  text-align: left;
}
.dil-sheet thead th {
  background: var(--dil-ink-deep);
  color: var(--dil-paper-lift);
  font-family: var(--dil-serif);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-bottom: 0;
}
.dil-sheet tbody th {
  font-weight: 600;
  color: var(--dil-ink-deep);
  width: 34%;
}
.dil-sheet tbody tr:nth-child(even) { background: rgba(236, 229, 217, 0.42); }
.dil-sheet tbody tr:last-child th,
.dil-sheet tbody tr:last-child td { border-bottom: 0; }
.dil-sheet--num td { font-variant-numeric: tabular-nums; }

.dil-scroll-x {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ---- 07 zigzag rows ----------------------------------------------------- */

.dil-zig {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
}
.dil-zig + .dil-zig {
  margin-top: 74px;
  padding-top: 74px;
  border-top: 1px solid var(--dil-rule);
}
.dil-zig--flip .dil-zig__art { order: -1; }

.dil-zig__index {
  font-family: var(--dil-serif);
  font-size: 3.1rem;
  font-weight: 700;
  line-height: 1;
  color: var(--dil-rule-hard);
  display: block;
  margin-bottom: 12px;
}

.dil-zig__art {
  position: relative;
  padding: 30px;
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  border-left: 4px solid var(--dil-ink);
  box-shadow: var(--dil-lift-2);
}
.dil-zig__art h3 { margin-bottom: 14px; }
.dil-zig__art ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.dil-zig__art li {
  padding: 9px 0 9px 25px;
  border-bottom: 1px solid var(--dil-rule);
  font-size: 0.94rem;
  position: relative;
}
.dil-zig__art li:last-child { border-bottom: 0; }
.dil-zig__art li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 17px;
  width: 9px;
  height: 2px;
  background: var(--dil-ink);
}

/* ---- 09 cards, tiles, steps --------------------------------------------- */

.dil-grid { display: grid; gap: 24px; }
.dil-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dil-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dil-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.dil-card {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  padding: 26px 24px 24px;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s var(--dil-ease), box-shadow 0.2s var(--dil-ease), border-color 0.2s var(--dil-ease);
}
.dil-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--dil-lift-2);
  border-color: var(--dil-rule-hard);
}
.dil-card h3 { margin-bottom: 10px; }
.dil-card p { font-size: 0.95rem; color: var(--dil-pencil); }
.dil-card .dil-more { margin-top: auto; padding-top: 14px; align-self: flex-start; }

.dil-card__num {
  font-family: var(--dil-serif);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--dil-ink-lift);
  margin-bottom: 9px;
}

.dil-tile {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  padding: 20px 18px;
  text-align: center;
}
.dil-tile strong {
  display: block;
  font-family: var(--dil-serif);
  font-size: 1.06rem;
  color: var(--dil-ink-deep);
  margin-bottom: 4px;
}
.dil-tile span {
  display: block;
  font-size: 0.82rem;
  color: var(--dil-pencil-soft);
}
.dil-tile__mark {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  margin: 0 auto 12px;
  border: 1.5px solid var(--dil-ink);
  color: var(--dil-ink);
  font-family: var(--dil-serif);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.dil-steps {
  counter-reset: dilstep;
  list-style: none;
  padding: 0;
  margin: 0;
}
.dil-steps > li {
  counter-increment: dilstep;
  position: relative;
  padding: 0 0 34px 66px;
  margin: 0;
}
.dil-steps > li::before {
  content: counter(dilstep, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: -2px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--dil-ink);
  color: var(--dil-paper-lift);
  font-family: var(--dil-serif);
  font-size: 0.95rem;
  font-weight: 700;
}
.dil-steps > li::after {
  content: "";
  position: absolute;
  left: 21px;
  top: 50px;
  bottom: 8px;
  width: 1px;
  background: var(--dil-rule-hard);
}
.dil-steps > li:last-child { padding-bottom: 0; }
.dil-steps > li:last-child::after { display: none; }
.dil-steps h3 { margin-bottom: 8px; }
.dil-steps p { color: var(--dil-pencil); }

.dil-bullets {
  list-style: none;
  padding: 0;
  margin: 0;
}
.dil-bullets li {
  position: relative;
  padding: 0 0 12px 28px;
  font-size: 0.96rem;
}
.dil-bullets li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 10px;
  width: 8px; height: 8px;
  border: 1.5px solid var(--dil-ink);
  transform: rotate(45deg);
}

.dil-callbox {
  background: var(--dil-ink-wash);
  border-left: 4px solid var(--dil-ink);
  padding: 22px 24px;
  margin: 28px 0;
}
.dil-callbox h3 { margin-bottom: 8px; }
.dil-callbox p { font-size: 0.95rem; }

/* ---- 10 quotes, people, prices ------------------------------------------ */

.dil-quote {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  border-top: 3px solid var(--dil-ink);
  padding: 28px 26px 24px;
  display: flex;
  flex-direction: column;
}
.dil-quote blockquote {
  margin: 0 0 18px;
  font-family: var(--dil-serif);
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--dil-pencil-deep);
}
.dil-quote figcaption {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--dil-rule);
  font-size: 0.86rem;
  color: var(--dil-pencil-soft);
}
.dil-quote figcaption strong {
  display: block;
  font-size: 0.96rem;
  color: var(--dil-ink-deep);
}

.dil-who {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  padding: 0;
  overflow: hidden;
}
.dil-who__top {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 22px 24px;
  background: var(--dil-paper-sink);
  border-bottom: 1px solid var(--dil-rule);
}
.dil-who__badge {
  display: grid;
  place-items: center;
  width: 52px; height: 52px;
  background: var(--dil-ink);
  color: var(--dil-paper-lift);
  font-family: var(--dil-serif);
  font-size: 1.1rem;
  font-weight: 700;
  flex-shrink: 0;
}
.dil-who__top h3 { margin: 0 0 2px; }
.dil-who__role {
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dil-pencil-soft);
}
.dil-who__body { padding: 22px 24px 24px; }
.dil-who__body p { font-size: 0.95rem; color: var(--dil-pencil); }
.dil-who__facts {
  margin: 16px 0 0;
  padding: 15px 0 0;
  border-top: 1px solid var(--dil-rule);
  list-style: none;
}
.dil-who__facts li {
  font-size: 0.87rem;
  color: var(--dil-pencil);
  padding-left: 17px;
  position: relative;
}
.dil-who__facts li::before {
  content: "\2014";
  position: absolute;
  left: 0;
  color: var(--dil-ink-lift);
}

.dil-rate {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  display: flex;
  flex-direction: column;
}
.dil-rate--pick { border: 2px solid var(--dil-ink); }
.dil-rate__head {
  padding: 24px 24px 20px;
  border-bottom: 1px solid var(--dil-rule);
}
.dil-rate__head h3 { margin-bottom: 6px; }
.dil-rate__fig {
  font-family: var(--dil-serif);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--dil-ink);
  line-height: 1;
  display: block;
  margin: 12px 0 4px;
}
.dil-rate__unit {
  font-size: 0.82rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--dil-pencil-soft);
}
.dil-rate__body { padding: 20px 24px 24px; flex: 1; display: flex; flex-direction: column; }
.dil-rate__body ul {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}
.dil-rate__body li {
  font-size: 0.9rem;
  padding: 8px 0 8px 24px;
  border-bottom: 1px dotted var(--dil-rule-hard);
  position: relative;
  color: var(--dil-pencil);
}
.dil-rate__body li:last-child { border-bottom: 0; }
.dil-rate__body li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--dil-ink-lift);
  font-size: 0.85rem;
}
.dil-rate__body .dil-act { margin-top: auto; text-align: center; }

/* ---- 11 disclosures and forms ------------------------------------------- */

.dil-ask {
  border-bottom: 1px solid var(--dil-rule);
}
.dil-ask:first-child { border-top: 1px solid var(--dil-rule); }
.dil-ask__q {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  padding: 20px 4px;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--dil-serif);
  font-size: 1.06rem;
  font-weight: 700;
  color: var(--dil-ink-deep);
  line-height: 1.32;
}
.dil-ask__q::after {
  content: "";
  flex-shrink: 0;
  width: 13px; height: 13px;
  margin-top: 5px;
  border-right: 2px solid var(--dil-ink);
  border-bottom: 2px solid var(--dil-ink);
  transform: rotate(45deg);
  transition: transform 0.22s var(--dil-ease);
}
.dil-ask.is-shut .dil-ask__q::after { transform: rotate(-45deg); }
.dil-ask__q:hover { color: var(--dil-ink); }
.dil-ask__a {
  padding: 0 4px 22px;
  font-size: 0.96rem;
  color: var(--dil-pencil);
}
.dil-ask__a p { margin-bottom: 0.8em; }
.dil-ask.is-shut .dil-ask__a { display: none; }

.dil-form {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule-hard);
  padding: 30px 28px;
  box-shadow: var(--dil-lift-2);
}
.dil-form__row { margin-bottom: 18px; }
.dil-form__pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.dil-form label {
  display: block;
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--dil-pencil);
  margin-bottom: 7px;
}
.dil-form input,
.dil-form select,
.dil-form textarea {
  width: 100%;
  font-family: var(--dil-sans);
  font-size: 0.97rem;
  color: var(--dil-pencil-deep);
  background: var(--dil-paper);
  border: 1px solid var(--dil-rule-hard);
  padding: 11px 13px;
  transition: border-color 0.16s var(--dil-ease), background 0.16s var(--dil-ease);
}
.dil-form input:focus,
.dil-form select:focus,
.dil-form textarea:focus {
  border-color: var(--dil-ink);
  background: var(--dil-paper-lift);
}
.dil-form textarea { min-height: 132px; resize: vertical; }
.dil-form__fine {
  font-size: 0.82rem;
  color: var(--dil-pencil-soft);
  margin-top: 14px;
}
.dil-form .dil-act { width: 100%; text-align: center; cursor: pointer; }

/* ---- 12 editorial ------------------------------------------------------- */

.dil-masthead-post {
  background: var(--dil-ink-deep);
  color: rgba(255, 253, 248, 0.86);
  padding: 62px 0 56px;
}
.dil-masthead-post h1 { color: var(--dil-paper-lift); max-width: 20em; }
.dil-masthead-post__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 253, 248, 0.6);
  margin-bottom: 18px;
}
.dil-masthead-post__stand {
  font-family: var(--dil-serif);
  font-size: 1.1rem;
  line-height: 1.55;
  max-width: 42em;
  color: rgba(255, 253, 248, 0.82);
}

.dil-read {
  max-width: 760px;
  margin: 0 auto;
}
.dil-read h2 {
  margin-top: 2em;
  padding-top: 0.1em;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
}
.dil-read h3 { margin-top: 1.7em; }
.dil-read p { font-size: 1.03rem; }
.dil-read ul, .dil-read ol { font-size: 1.01rem; }
.dil-read li { margin-bottom: 0.55em; }
.dil-read > *:first-child { margin-top: 0; }

.dil-pull {
  margin: 34px 0;
  padding: 4px 0 4px 26px;
  border-left: 4px solid var(--dil-ink);
  font-family: var(--dil-serif);
  font-size: 1.22rem;
  line-height: 1.48;
  color: var(--dil-ink-deep);
}

.dil-post-card {
  background: var(--dil-paper-lift);
  border: 1px solid var(--dil-rule);
  padding: 26px 24px 24px;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s var(--dil-ease), box-shadow 0.2s var(--dil-ease);
}
.dil-post-card:hover { transform: translateY(-3px); box-shadow: var(--dil-lift-2); }
.dil-post-card__kicker {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--dil-ink-lift);
  margin-bottom: 10px;
}
.dil-post-card h3 { font-size: 1.14rem; margin-bottom: 10px; }
.dil-post-card h3 a { text-decoration: none; color: inherit; }
.dil-post-card h3 a:hover { color: var(--dil-ink); }
.dil-post-card p { font-size: 0.94rem; color: var(--dil-pencil); }
.dil-post-card__foot {
  margin-top: auto;
  padding-top: 16px;
  font-size: 0.8rem;
  color: var(--dil-pencil-soft);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dil-next {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 52px;
  padding-top: 34px;
  border-top: 1px solid var(--dil-rule);
}
.dil-next a {
  display: block;
  padding: 18px 20px;
  border: 1px solid var(--dil-rule);
  background: var(--dil-paper-lift);
  text-decoration: none;
}
.dil-next a:hover { border-color: var(--dil-ink); }
.dil-next span {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dil-pencil-soft);
  margin-bottom: 6px;
}
.dil-next strong {
  font-family: var(--dil-serif);
  font-size: 1.02rem;
  color: var(--dil-ink-deep);
  line-height: 1.3;
  display: block;
}

.dil-crumbs {
  font-size: 0.8rem;
  color: var(--dil-pencil-soft);
  padding: 16px 0;
  border-bottom: 1px solid var(--dil-rule);
}
.dil-crumbs a { text-decoration: none; }
.dil-crumbs span { margin: 0 7px; color: var(--dil-rule-hard); }

/* ---- 13 callout and footer ---------------------------------------------- */

.dil-callout {
  background: var(--dil-ink);
  color: rgba(255, 253, 248, 0.88);
  padding: 52px 0;
}
.dil-callout__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
  flex-wrap: wrap;
}
.dil-callout h2 {
  color: var(--dil-paper-lift);
  font-size: clamp(1.42rem, 2.5vw, 2rem);
  margin-bottom: 8px;
}
.dil-callout p { max-width: 42em; font-size: 0.99rem; }
.dil-callout__acts { display: flex; flex-wrap: wrap; gap: 13px; }
.dil-callout__acts .dil-act--fill {
  background: var(--dil-paper-lift);
  color: var(--dil-ink-deep);
  border-color: var(--dil-paper-lift);
}
.dil-callout__acts .dil-act--fill:hover { background: #fff; color: var(--dil-ink-deep); }
.dil-callout__acts .dil-act--line {
  color: var(--dil-paper-lift);
  border-color: rgba(255, 253, 248, 0.6);
}
.dil-callout__acts .dil-act--line:hover { background: rgba(255, 253, 248, 0.14); color: #fff; }

.dil-foot {
  background: var(--dil-pencil-deep);
  color: rgba(247, 243, 236, 0.72);
  font-size: 0.92rem;
}
.dil-foot__grid {
  display: grid;
  grid-template-columns: 1.7fr 1.2fr 0.9fr 1fr;
  gap: 40px;
  padding-top: 58px;
  padding-bottom: 46px;
}
.dil-foot h3 {
  color: var(--dil-paper);
  font-size: 0.83rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.dil-foot__block { min-width: 0; }
.dil-foot__block > *:last-child { margin-bottom: 0; }

.dil-foot__name {
  display: block;
  font-family: var(--dil-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--dil-paper);
  margin-bottom: 12px;
}
.dil-foot__lead p { font-size: 0.9rem; line-height: 1.62; }
.dil-foot__mark {
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: rgba(247, 243, 236, 0.48);
  padding-top: 12px;
  border-top: 1px solid rgba(247, 243, 236, 0.14);
}
.dil-foot address { font-size: 0.9rem; line-height: 1.6; margin-bottom: 10px; }
.dil-foot__contact { font-size: 0.9rem; margin-bottom: 14px; }
.dil-foot a { color: rgba(247, 243, 236, 0.86); text-decoration: none; }
.dil-foot a:hover { color: #fff; text-decoration: underline; }
.dil-foot__hours th,
.dil-foot__hours td {
  padding: 4px 0;
  font-size: 0.8rem;
  font-weight: 400;
  text-align: left;
  color: rgba(247, 243, 236, 0.62);
  border: 0;
}
.dil-foot__hours td { text-align: right; }
.dil-foot__list { list-style: none; padding: 0; margin: 0; }
.dil-foot__list li { margin-bottom: 8px; font-size: 0.9rem; }
.dil-foot__base {
  border-top: 1px solid rgba(247, 243, 236, 0.14);
  padding: 18px 0;
}
.dil-foot__base-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 0.79rem;
  color: rgba(247, 243, 236, 0.5);
}
.dil-foot__base-row p { margin: 0; }

/* ---- 14 rise-on-scroll --------------------------------------------------
   Gated behind .dil-js, which the inline head script sets. With scripting off
   nothing is ever hidden, so the page reads normally for crawlers and for
   anyone browsing without JS.                                              */

.dil-js .dil-rise {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s var(--dil-ease), transform 0.6s var(--dil-ease);
}
.dil-js .dil-rise.is-in {
  opacity: 1;
  transform: none;
}
.dil-js .dil-rise--b { transition-delay: 0.09s; }
.dil-js .dil-rise--c { transition-delay: 0.18s; }
.dil-js .dil-rise--d { transition-delay: 0.27s; }

@media (prefers-reduced-motion: reduce) {
  .dil-js .dil-rise { opacity: 1; transform: none; transition: none; }
  .dil-act:hover, .dil-card:hover, .dil-post-card:hover { transform: none; }
}

/* ---- 15 responsive ------------------------------------------------------ */

@media (max-width: 1140px) {
  .dil-bar__list { gap: 15px; }
  .dil-bar__list a { font-size: 0.83rem; }
  .dil-tel { display: none; }
  .dil-foot__grid { grid-template-columns: 1.5fr 1.2fr 1fr 1fr; gap: 30px; }
}

@media (max-width: 1000px) {
  .dil-burger { display: block; margin-left: auto; }
  .dil-mast__side { display: none; }

  .dil-bar {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin: 0;
    background: var(--dil-paper-lift);
    border-bottom: 1px solid var(--dil-rule-hard);
    box-shadow: var(--dil-lift-2);
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    transition: max-height 0.3s var(--dil-ease), visibility 0s linear 0.3s;
  }
  .dil-bar.is-down {
    max-height: 78vh;
    overflow-y: auto;
    visibility: visible;
    transition: max-height 0.34s var(--dil-ease), visibility 0s linear 0s;
  }
  .dil-mast { position: relative; }
  .dil-mast.is-sheeted { position: sticky; }
  .dil-bar__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 6px 26px 22px;
  }
  .dil-bar__list li { border-bottom: 1px solid var(--dil-rule); }
  .dil-bar__list a {
    display: block;
    padding: 14px 0;
    font-size: 1rem;
    border-bottom: 0;
  }
  .dil-bar__list .is-here > a { border-bottom: 0; }
  .dil-bar__phone { display: block; border-bottom: 0 !important; padding-top: 16px; }
  .dil-bar__phone a {
    font-family: var(--dil-serif);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dil-ink);
  }

  .dil-hero::before { display: none; }
  .dil-hero__split {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 52px 0 58px;
  }
  .dil-zig {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .dil-zig--flip .dil-zig__art { order: 0; }
  .dil-zig + .dil-zig { margin-top: 50px; padding-top: 50px; }

  .dil-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dil-foot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body.dil-page { font-size: 16.5px; }
  :root { --dil-gut: 20px; }

  .dil-ribbon__links { display: none; }
  .dil-slab { padding: 56px 0; }
  .dil-slab--tight { padding: 42px 0; }

  .dil-grid--2,
  .dil-grid--3,
  .dil-grid--4 { grid-template-columns: 1fr; }

  .dil-form__pair { grid-template-columns: 1fr; }
  .dil-next { grid-template-columns: 1fr; }
  .dil-callout__row { flex-direction: column; align-items: flex-start; }
  .dil-hero__acts .dil-act { flex: 1 1 auto; text-align: center; }
  .dil-steps > li { padding-left: 54px; }
  .dil-steps > li::before { width: 38px; height: 38px; font-size: 0.86rem; }
  .dil-steps > li::after { left: 18px; top: 44px; }
  .dil-form { padding: 24px 20px; }
  .dil-zig__art { padding: 22px 20px; }
  .dil-masthead-post { padding: 44px 0 40px; }
}

@media (max-width: 460px) {
  .dil-sign__plate { width: 38px; height: 38px; font-size: 0.84rem; }
  .dil-sign__name { font-size: 1.1rem; }
  .dil-sign__sub { font-size: 0.66rem; }
  .dil-hero__strip { gap: 14px 20px; }
  .dil-hero__strip div { min-width: 118px; }
  .dil-plate__cap { flex-direction: column; gap: 4px; }
  .dil-foot__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ---- print -------------------------------------------------------------- */

@media print {
  .dil-ribbon, .dil-mast, .dil-callout, .dil-foot, .dil-burger, .dil-jump { display: none; }
  body.dil-page { background: #fff; color: #000; font-size: 12pt; }
  .dil-js .dil-rise { opacity: 1; transform: none; }
  a { text-decoration: underline; color: #000; }
}
