/* /directory/ — the authorities directory. Same Portuguese palette as the site
   (tokens in style.css); a tool, not an article: big search, stage tiles, a
   ledger of entries. See .impeccable.md. */

:root {
  --cream: oklch(96.5% 0.018 88);
  --cream-soft: oklch(90% 0.025 100);
  --green-950: oklch(22% 0.055 155);
  --ease-quart: cubic-bezier(.25, 1, .5, 1);
  --tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88'%3E%3Cg fill='none' stroke='%23e8b93f' stroke-width='1.3'%3E%3Crect x='.65' y='.65' width='86.7' height='86.7'/%3E%3Cpath d='M44 10 78 44 44 78 10 44Z'/%3E%3Ccircle cx='44' cy='44' r='15'/%3E%3Cpath d='M0 22A22 22 0 0 0 22 0M66 0A22 22 0 0 0 88 22M88 66A22 22 0 0 0 66 88M22 88A22 22 0 0 0 0 66'/%3E%3Cpath d='M44 29v30M29 44h30'/%3E%3C/g%3E%3Ccircle cx='44' cy='44' r='4.5' fill='%23e8b93f'/%3E%3C/svg%3E");
}
body.landing { background: var(--paper); font-size: clamp(1.02rem, .98rem + .3vw, 1.14rem); }
body.landing h1, body.landing h2, body.landing h3 { text-wrap: balance; }
body.landing p, body.landing li, body.landing dd { text-wrap: pretty; }

/* landing chrome (shared with /tracking/) */
.landing-header { background: var(--green-950); color: var(--cream); position: relative; z-index: 2; }
.landing-header-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .75rem; }
.landing-brand { color: var(--cream); }
.landing-brand .brand-text strong { color: var(--cream); }
.landing-brand .brand-text small { color: var(--gold-300); }
.landing-logo { display: grid; place-items: center; width: 46px; height: 46px; background: var(--cream); box-shadow: 0 0 0 2px var(--gold-500); }
.landing-wa { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; font-weight: 700; text-decoration: none; color: var(--cream); border: 1.5px solid color-mix(in oklch, var(--gold-500) 70%, transparent); padding: .4rem 1.1rem; font-size: .95rem; transition: background .2s, color .2s; }
.landing-wa:hover { background: var(--gold-500); color: var(--green-950); border-color: var(--gold-500); }
.landing-footer { background: var(--green-950); color: var(--cream-soft); font-size: .92rem; }
.landing-footer-in { padding-block: 1.6rem; }
.landing-footer-in p { margin: .25rem 0; }
.landing-footer a { color: var(--gold-300); display: inline-block; padding-block: .6rem; }

.dir-kicker { display: inline-flex; align-items: center; gap: .65rem; font-weight: 700; font-size: .92rem; letter-spacing: .02em; margin: 0 0 1rem; color: var(--gold-300); }
.dir-kicker::before { content: ""; width: .55rem; height: .55rem; background: var(--red-600); transform: rotate(45deg); flex: none; }

/* ---------- hero + search ---------- */
.dir-hero { position: relative; isolation: isolate; background: var(--green-900); color: var(--cream); overflow: hidden; padding-block: clamp(2.6rem, 6vw, 4.5rem) clamp(2.4rem, 5vw, 3.6rem); }
.dir-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tile) 0 0 / 88px 88px; opacity: .09; }
.dir-hero::after { content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(70% 70% at 90% 0%, oklch(38% 0.09 152 / .8), transparent 70%),
              radial-gradient(60% 60% at 0% 100%, oklch(22% 0.055 155 / .9), transparent 70%); }
.dir-hero-in { max-width: 860px; }
.dir-hero h1 { color: var(--cream); font-size: clamp(2rem, 1.3rem + 2.8vw, 3.4rem); line-height: 1.1; letter-spacing: -.015em; margin: 0 0 .8rem; }
.dir-sub { font-size: 1.1em; line-height: 1.65; max-width: 36em; margin: 0 0 1.6rem; color: var(--cream-soft); }
.dir-search { position: relative; }
#dir-q {
  font: inherit; font-size: clamp(1.05rem, 1rem + .4vw, 1.25rem); width: 100%; min-height: 3.6rem;
  padding: .8rem 1.2rem; padding-inline-end: 3rem; border: 2px solid var(--gold-500); background: var(--cream);
  color: var(--ink); border-radius: 2px; box-shadow: 0 16px 36px -18px oklch(10% 0.05 155 / .9);
  -webkit-appearance: none; appearance: none;
}
#dir-q::placeholder { color: color-mix(in oklch, var(--ink-soft) 70%, transparent); }
#dir-q:focus { outline: 3px solid var(--gold-300); outline-offset: 2px; }
#dir-q::-webkit-search-cancel-button { -webkit-appearance: none; }
.dir-search-clear { position: absolute; inset-inline-end: .5rem; top: 50%; transform: translateY(-50%); width: 2.4rem; height: 2.4rem; border: 0; background: transparent; color: var(--ink-soft); font-size: 1.6rem; cursor: pointer; border-radius: 50%; }
.dir-search-clear:hover { background: var(--paper-deep); color: var(--red-600); }
.dir-suggest { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 1rem 0 0; font-size: .9rem; color: var(--cream-soft); }
.dir-suggest button { font: inherit; font-size: .88rem; background: transparent; border: 1px solid color-mix(in oklch, var(--gold-300) 55%, transparent); color: var(--cream); padding: .32rem .8rem; cursor: pointer; border-radius: 999px; min-height: 2.2rem; transition: background .2s, color .2s; }
.dir-suggest button:hover { background: var(--gold-500); color: var(--green-950); border-color: var(--gold-500); }

/* ---------- stages ---------- */
.dir-stages { padding-block: clamp(2rem, 5vw, 3.2rem) clamp(1rem, 3vw, 1.6rem); }
.dir-stages h2 { margin: 0 0 .25rem; font-size: clamp(1.4rem, 1.2rem + 1vw, 1.9rem); }
.dir-stages-sub { margin: 0 0 1.2rem; color: var(--ink-soft); }
.dir-stage-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .7rem; }
.dir-stage {
  font: inherit; text-align: start; cursor: pointer; display: flex; flex-direction: column; gap: .3rem;
  background: var(--paper); border: 1.5px solid var(--line); border-top: 4px solid var(--line); padding: 1rem 1rem 1.05rem;
  color: var(--ink); min-height: 100%; position: relative; transition: border-color .2s, transform .25s var(--ease-quart), box-shadow .25s var(--ease-quart), background .2s;
}
.dir-stage:hover { border-top-color: var(--gold-500); transform: translateY(-2px); box-shadow: 0 14px 28px -20px oklch(30% 0.05 150 / .6); }
.dir-stage[aria-pressed="true"] { background: var(--green-900); color: var(--cream); border-color: var(--green-900); border-top-color: var(--gold-500); }
.dir-stage[aria-pressed="true"] .dir-stage-desc, .dir-stage[aria-pressed="true"] .dir-stage-count { color: var(--cream-soft); }
.dir-stage[aria-pressed="true"]::after { content: "✓"; position: absolute; top: .55rem; inset-inline-end: .7rem; color: var(--gold-500); font-weight: 900; }
.dir-stage:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.dir-stage-emoji { font-size: 1.6rem; line-height: 1; }
.dir-stage-label { font-family: var(--font-display); font-weight: 700; font-size: 1.12rem; line-height: 1.25; }
.dir-stage-desc { font-size: .84rem; line-height: 1.5; color: var(--ink-soft); }
.dir-stage-count { font-size: .78rem; color: var(--ink-soft); margin-top: auto; padding-top: .3rem; }

/* ---------- toolbar + list ---------- */
.dir-list { padding-block: .5rem clamp(2.5rem, 6vw, 4rem); }
.dir-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-bottom: 2px solid var(--green-900); padding-bottom: .7rem; margin-bottom: .4rem; position: sticky; top: 0; background: var(--paper); z-index: 5; padding-top: .6rem; }
.dir-count { margin: 0; font-size: 1.25rem; }
.dir-filters { display: flex; gap: .7rem; align-items: end; flex-wrap: wrap; }
.dir-filters label { display: flex; flex-direction: column; gap: .2rem; font-size: .8rem; font-weight: 700; color: var(--ink-soft); }
.dir-filters select { font: inherit; font-size: .95rem; min-height: 2.6rem; padding: .35rem 2rem .35rem .7rem; border: 1.5px solid var(--line); background: var(--paper-deep); color: var(--ink); border-radius: 2px; min-width: 10rem; }
.dir-filters select:focus { outline: 2px solid var(--green-700); outline-offset: 1px; }
.dir-reset { font: inherit; font-size: .9rem; font-weight: 700; min-height: 2.6rem; padding: .3rem .9rem; border: 1.5px solid var(--red-600); color: var(--red-600); background: transparent; cursor: pointer; border-radius: 2px; }
.dir-reset:hover { background: var(--red-600); color: var(--cream); }
.dir-empty { padding: 2rem 0; color: var(--ink-soft); font-size: 1.05rem; }

.dir-card { position: relative; padding: 1.4rem 0 1.5rem 0; padding-inline-start: 1.15rem; border-bottom: 1px solid var(--line); scroll-margin-top: 5rem; }
.dir-card::before { content: ""; position: absolute; inset-inline-start: 0; top: 1.55rem; bottom: 1.6rem; width: 4px; background: linear-gradient(180deg, var(--gold-500), var(--green-700)); opacity: .55; transition: opacity .2s; }
.dir-card:hover::before, .dir-card.is-target::before { opacity: 1; }
.dir-card.is-target { background: linear-gradient(90deg, var(--green-tint), transparent 60%); animation: dir-flash 1.6s var(--ease-quart); }
@keyframes dir-flash { from { background-color: var(--gold-300); } }
.dir-card-head { margin-bottom: .5rem; }
.dir-type { margin: 0 0 .2rem; font-size: .78rem; font-weight: 700; letter-spacing: .04em; color: var(--red-600); }
.dir-name { margin: 0; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.3; }
.dir-name a { color: var(--green-900); text-decoration: none; }
.dir-name a:hover { color: var(--red-600); text-decoration: underline; text-underline-offset: 4px; }
.dir-pt { margin: .1rem 0 0; font-size: .92rem; color: var(--ink-soft); text-align: start; }
.dir-what { margin: 0 0 .8rem; font-size: 1.02em; line-height: 1.65; max-width: 48em; }
.dir-contact { margin: 0 0 .7rem; display: grid; grid-template-columns: 1fr; gap: .3rem .9rem; }
.dir-row { display: grid; grid-template-columns: 6.2rem 1fr; gap: .4rem; align-items: baseline; }
.dir-row dt { font-size: .8rem; font-weight: 700; color: var(--ink-soft); }
.dir-row dd { margin: 0; line-height: 1.55; overflow-wrap: anywhere; }
.dir-row dd a { font-weight: 500; }
.dir-row dd small { display: block; color: var(--ink-soft); font-size: .84rem; }
.dir-row dd .dir-map { display: inline-block; margin-inline-start: .6rem; font-size: .84rem; white-space: nowrap; }
.dir-muted { color: var(--ink-soft); }
.dir-notes { margin: 0 0 .9rem; font-size: .93rem; line-height: 1.65; color: var(--ink-soft); background: var(--green-tint); border-inline-start: 3px solid var(--gold-500); padding: .55rem .9rem; max-width: 52em; }
.dir-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .4rem; }
.dir-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.7rem; padding: .35rem 1.1rem; font: 700 .95rem/1.2 var(--font-body); text-decoration: none; border: 1.5px solid transparent; cursor: pointer; border-radius: 2px; transition: transform .2s var(--ease-quart), background .2s, color .2s, border-color .2s; }
.dir-btn:hover { transform: translateY(-1px); }
.dir-btn:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.dir-btn-write { background: var(--green-700); color: var(--cream); }
.dir-btn-write:hover { background: var(--green-900); color: var(--cream); }
.dir-btn-ghost { border-color: var(--green-700); color: var(--green-700); background: transparent; }
.dir-btn-ghost:hover { border-color: var(--red-600); color: var(--red-600); }
.dir-btn-link { background: transparent; color: var(--ink-soft); font-weight: 500; padding-inline: .5rem; text-decoration: underline; text-underline-offset: 3px; }
.dir-btn-link:hover { color: var(--red-600); }
.dir-verified { margin: 0; font-size: .78rem; color: var(--ink-soft); }
.dir-verified a { color: inherit; }

/* ---------- how-to + correction ---------- */
.dir-how { background: var(--paper-deep); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding-block: clamp(2.2rem, 5vw, 3.5rem); }
.dir-how-grid { display: grid; grid-template-columns: 1.4fr .8fr; gap: clamp(1.5rem, 4vw, 3.5rem); }
.dir-how h2 { margin-top: 0; }
.dir-steps { padding-inline-start: 1.3rem; margin: 0; display: grid; gap: .8rem; }
.dir-steps li { line-height: 1.7; }
.dir-step-contact { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .6rem; }
.dir-how-aside { background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--gold-500); padding: 1.2rem 1.3rem; align-self: start; }
.dir-how-aside h3 { margin-top: 0; }
.dir-how-aside ul { padding-inline-start: 1.1rem; margin: 0; display: grid; gap: .4rem; font-size: .95rem; }
.dir-how-note { font-size: .82rem; color: var(--ink-soft); margin: 1rem 0 0; }
.dir-correct { padding-block: clamp(2.2rem, 5vw, 3.5rem); }
.dir-correct h2 { margin-top: 0; }
.dir-correct-form { display: grid; gap: .9rem; margin-top: 1.2rem; }
.dir-correct-form label { display: flex; flex-direction: column; gap: .3rem; font-weight: 500; font-size: .92rem; }
.dir-correct-form input, .dir-correct-form textarea { font: inherit; padding: .6rem .8rem; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); border-radius: 2px; }
.dir-correct-form input:focus, .dir-correct-form textarea:focus { outline: 2px solid var(--green-700); outline-offset: 1px; }
.dir-correct-form .dir-btn { justify-self: start; }

/* ---------- entity page ---------- */
.dir-entity { padding-block: 1.4rem clamp(2.5rem, 6vw, 4rem); }
.dir-crumbs { font-size: .85rem; color: var(--ink-soft); margin-bottom: .8rem; }
.dir-crumbs a { color: var(--green-700); text-decoration: none; }
.dir-crumbs a:hover { text-decoration: underline; }
.dir-entity .dir-card { border-bottom: 0; padding-top: .6rem; }
.dir-entity .dir-name { font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.5rem); margin-bottom: .2rem; }
.dir-entity-tpls h2, .dir-related h2 { font-size: 1.35rem; margin: 1.8rem 0 .6rem; }
.dir-entity-stages { font-size: .92rem; color: var(--ink-soft); margin: 1.6rem 0 0; }
.dir-related ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; }
.dir-related li small { color: var(--ink-soft); margin-inline-start: .4rem; }
.dir-entity-back { margin-top: 2rem; }

/* ---------- write dialog ---------- */
.dir-write { border: 0; padding: 0; width: min(760px, 100vw - 2rem); max-height: min(92vh, 100vh - 2rem); background: var(--paper); color: var(--ink); box-shadow: 0 30px 80px -30px oklch(10% 0.05 155 / .8); border-top: 5px solid var(--gold-500); overflow: auto; }
.dir-write::backdrop { background: oklch(15% 0.04 155 / .6); backdrop-filter: blur(2px); }
body.dw-open { overflow: hidden; }
.dir-write-close-form { position: sticky; top: 0; display: flex; justify-content: flex-end; z-index: 2; height: 0; }
.dir-write-close { font: inherit; font-size: 1.7rem; line-height: 1; width: 2.6rem; height: 2.6rem; margin: .5rem; border: 0; background: var(--paper-deep); color: var(--ink); cursor: pointer; border-radius: 50%; }
.dir-write-close:hover { background: var(--red-600); color: var(--cream); }
.dir-write-in { padding: 1.4rem clamp(1rem, 4vw, 2rem) 1.8rem; }
.dir-write .dir-kicker { color: var(--red-600); }
.dir-write h2 { margin: 0 0 1rem; font-size: 1.5rem; }
.dir-write h3 { font-size: 1.15rem; margin: 1.4rem 0 .4rem; }
.dw-templates { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.dw-tpl { font: inherit; width: 100%; text-align: start; cursor: pointer; display: grid; gap: .2rem; background: var(--paper); border: 1.5px solid var(--line); border-inline-start: 4px solid var(--gold-500); padding: .85rem 1rem; color: var(--ink); transition: border-color .2s, background .2s; }
.dw-tpl:hover { background: var(--green-tint); border-color: var(--green-700); border-inline-start-color: var(--green-700); }
.dw-tpl-title { font-family: var(--font-display); font-weight: 700; font-size: 1.08rem; color: var(--green-900); }
.dw-tpl-when { font-size: .88rem; color: var(--ink-soft); line-height: 1.5; }
.dw-tpl-ch { font-size: .78rem; font-weight: 700; color: var(--red-600); }
.dw-back { font: inherit; font-size: .9rem; background: none; border: 0; color: var(--green-700); cursor: pointer; padding: .3rem 0; text-decoration: underline; text-underline-offset: 3px; }
.dw-when { font-size: .95rem; color: var(--ink-soft); line-height: 1.6; margin: .2rem 0 .8rem; }
.dw-channel { font-size: .92rem; font-weight: 500; padding: .6rem .9rem; margin-bottom: 1rem; border-inline-start: 4px solid var(--gold-500); background: var(--green-tint); }
.dw-channel-post { border-color: var(--red-600); background: color-mix(in oklch, var(--red-600) 8%, var(--paper)); }
.dw-form { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem .9rem; }
.dw-form label { display: flex; flex-direction: column; gap: .25rem; font-size: .86rem; font-weight: 700; color: var(--ink-soft); }
.dw-form label:has(textarea), .dw-form label:has([name="MORADA"]), .dw-form label:has([name="FUNDAMENTO"]) { grid-column: 1 / -1; }
.dw-form input, .dw-form select, .dw-form textarea { font: inherit; font-weight: 400; color: var(--ink); padding: .55rem .7rem; border: 1.5px solid var(--line); background: var(--paper); border-radius: 2px; min-height: 2.6rem; }
.dw-form input:focus, .dw-form select:focus, .dw-form textarea:focus { outline: 2px solid var(--green-700); outline-offset: 1px; }
.dw-privacy { font-size: .8rem; color: var(--ink-soft); margin: .6rem 0 0; }
.dw-hint { font-size: .88rem; color: var(--ink-soft); margin: 0 0 .5rem; }
.dw-subject { width: 100%; font: 700 .95rem/1.4 var(--font-body); padding: .5rem .7rem; border: 1.5px solid var(--line); background: var(--paper-deep); margin-bottom: .5rem; border-radius: 2px; }
.dw-body { width: 100%; font: 400 .92rem/1.55 "Helvetica Neue", Arial, sans-serif; padding: .7rem .8rem; border: 1.5px solid var(--line); background: var(--paper); border-radius: 2px; resize: vertical; }
.dw-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .9rem; align-items: center; }
.dw-note { width: 100%; margin: 0 0 .3rem; font-size: .9rem; color: var(--ink-soft); }
.dw-status { font-size: .9rem; color: var(--green-900); min-height: 1.4em; margin: .6rem 0 0; }

/* ---------- print letter ---------- */
.dir-letter-sheet { display: none; }
@media print {
  body.dir-printing > *:not(.dir-letter-sheet) { display: none !important; }
  body.dir-printing { background: #fff; color: #000; }
  .dir-letter-sheet { display: block; font: 12pt/1.5 "Times New Roman", Georgia, serif; color: #000; max-width: 17cm; margin: 0 auto; padding: 1cm 0; }
  .ls-from { white-space: pre-line; margin-bottom: 1.4cm; }
  .ls-to { white-space: pre-line; margin-bottom: .8cm; }
  .ls-date { text-align: right; margin-bottom: .8cm; }
  .ls-body { white-space: pre-wrap; }
  @page { size: A4; margin: 2cm; }
}

/* ---------- responsive ---------- */
@media (max-width: 1050px) { .dir-stage-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
  .dir-stage-grid { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .dir-stage { padding: .8rem .8rem .85rem; }
  .dir-stage-desc { display: none; }
  .dir-how-grid { grid-template-columns: 1fr; }
  .dir-toolbar { position: static; }
  .dir-filters { width: 100%; }
  .dir-filters label { flex: 1 1 10rem; }
  .dir-filters select { width: 100%; min-width: 0; }
  .dw-form { grid-template-columns: 1fr; }
  .dir-row { grid-template-columns: 1fr; gap: .1rem; }
  .dir-row dd .dir-map { display: block; margin: .15rem 0 0; }
  .dir-write { width: 100vw; max-height: 100vh; margin: 0; max-width: none; height: 100vh; }
}
@media (max-width: 460px) {
  .dir-stage-grid { grid-template-columns: 1fr; }
  .dir-stage { flex-direction: row; align-items: center; gap: .7rem; min-height: 3.6rem; padding: .6rem .9rem; }
  .dir-stage-count { margin: 0; margin-inline-start: auto; padding: 0; white-space: nowrap; }
  .dir-stage[aria-pressed="true"]::after { display: none; }
  .dir-actions .dir-btn { flex: 1 1 45%; }
}
@media (prefers-reduced-motion: reduce) { .dir-stage, .dir-btn { transition: none; } .dir-card.is-target { animation: none; } }

/* ---------- all-offices page ---------- */
.dir-hero-compact { padding-block: clamp(1.8rem, 4vw, 3rem) clamp(1.8rem, 4vw, 2.8rem); }
.dir-hero-compact h1 { font-size: clamp(1.7rem, 1.2rem + 2vw, 2.7rem); }
.dir-crumbs-dark { color: var(--cream-soft); }
.dir-crumbs-dark a { color: var(--gold-300); }
.dir-office { padding-block: 1.1rem 1.2rem; }
.dir-office .dir-name { font-size: 1.2rem; text-align: start; }
.dir-office .dir-contact { margin-bottom: .5rem; }
.dir-office-note { font-size: .92rem; color: var(--ink-soft); margin: .4rem 0 .6rem; }
.dir-badges { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0 0 .6rem; }
.dir-badges span { font-size: .76rem; font-weight: 700; color: var(--green-900); background: var(--green-tint); border: 1px solid color-mix(in oklch, var(--green-700) 25%, transparent); padding: .12rem .55rem; border-radius: 999px; }
.dir-offices-link { margin: 1.2rem 0 0; padding: .9rem 1.1rem; background: var(--paper); border: 1.5px solid var(--line); border-inline-start: 4px solid var(--red-600); font-size: .98rem; }
.dir-offices-link a { font-weight: 700; }

/* ---------- freshness line, FAQ, district groups ---------- */
.dir-updated { font-size: .85rem; color: var(--cream-soft); margin: .9rem 0 0; }
.dir-updated a { color: var(--gold-300); }
.dir-faq { padding-block: clamp(2.2rem, 5vw, 3.5rem); border-bottom: 1px solid var(--line); }
.dir-faq h2 { margin-top: 0; }
.dir-faq details { border: 1px solid var(--line); background: var(--paper); margin: .5rem 0; }
.dir-faq summary { cursor: pointer; font-weight: 700; padding: .85rem 1.1rem; color: var(--green-900); line-height: 1.5; }
.dir-faq summary:hover { color: var(--red-600); }
.dir-faq details[open] summary { border-bottom: 1px solid var(--line); background: var(--green-tint); }
.dir-faq details p { margin: 0; padding: .85rem 1.1rem; line-height: 1.7; overflow-wrap: anywhere; }
.dir-group-h { font-size: clamp(1.2rem, 1.1rem + .5vw, 1.5rem); margin: 1.8rem 0 .2rem; padding-bottom: .3rem; border-bottom: 2px solid var(--gold-500); }
.dir-group-h small { font: 500 .85rem var(--font-body); color: var(--ink-soft); margin-inline-start: .4rem; }
.dir-group:first-child .dir-group-h { margin-top: .8rem; }

/* ---------- questions + tracking ---------- */
.dir-ask { padding-block: clamp(2.2rem, 5vw, 3.5rem); background: var(--green-tint); border-bottom: 1px solid var(--line); }
.dir-ask h2 { margin-top: 0; }
.dir-form-note { font-size: .85rem; color: var(--ink-soft); margin: 0; }
.dir-tracking { grid-column: 1 / -1; position: relative; isolation: isolate; overflow: hidden; background: var(--green-900); color: var(--cream); padding: 1.4rem clamp(1.1rem, 3vw, 2rem) 1.6rem; border-top: 4px solid var(--gold-500); }
.dir-tracking::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tile) 0 0 / 88px 88px; opacity: .08; }
.dir-tracking h3 { color: var(--cream); margin: 0 0 .4rem; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); }
.dir-tracking p { margin: 0 0 1rem; max-width: 40em; color: var(--cream-soft); }
.dir-tracking .dir-kicker { margin-bottom: .5rem; }
.dir-btn-gold { background: var(--gold-500); color: var(--green-950); }
.dir-btn-gold:hover { background: var(--gold-300); color: var(--green-950); }
.dir-track-line { margin: 0 0 .9rem; font-size: .95rem; padding: .55rem .9rem; border-inline-start: 3px solid var(--red-600); background: color-mix(in oklch, var(--red-600) 6%, var(--paper)); max-width: 52em; }
.dir-track-line a { font-weight: 700; }
