/* A practical, editorial companion to the destination atlas. */
.museum-home-link { padding-top:16px; color:var(--cp-text-muted); font-size:14px; }
.museum-home-link a { color:var(--cp-accent); display:inline-flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.scenic-home-entry { padding-block:46px; border-top:1px solid var(--cp-border); }
.scenic-home-entry h2 { font:400 clamp(2rem,4vw,3.2rem)/1.15 Georgia,serif; margin:14px 0; }
.scenic-home-entry p { color:var(--cp-text-muted); max-width:68ch; line-height:1.8; }
.scenic-home-entry a { display:inline-flex; align-items:center; min-height:44px; color:var(--cp-accent); text-underline-offset:4px; }
.tools-page { min-height:100dvh; font-size:16px; }
.tools-page .shell { max-width:1280px; }
.tools-page .nav { flex-wrap:wrap; padding-block:12px; gap:12px 24px; }
.tools-page .brand { min-height:44px; }
.tools-page .nav-actions { flex-wrap:wrap; gap:8px 24px; font-size:14px; }
.tools-page .nav-actions a { display:inline-flex; align-items:center; min-height:44px; }
.tools-page .eyebrow { font-size:14px; letter-spacing:.12em; }
.tools-page .footer { align-items:center; font-size:14px; }
.tools-page .footer a { display:inline-flex; align-items:center; min-height:44px; }
.tools-page :is(button,a,input,select,summary):focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.tools-page .skip-link { min-height:44px; }
.tool-hero { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.8fr); align-items:start; gap:clamp(36px,7vw,110px); padding:64px 0 46px; }
.tool-hero h1 { font:400 clamp(3rem,5.8vw,5.2rem)/1.04 Georgia,serif; letter-spacing:-.05em; margin:18px 0 24px; }
.tool-hero-copy>p { max-width:49ch; font-size:17px; line-height:1.8; color:var(--muted); margin:0 0 22px; }
.tool-hero-link { display:inline-flex; align-items:center; gap:30px; min-height:48px; color:var(--accent); font-size:15px; text-decoration:none; border-bottom:1px solid var(--accent); }
.tool-hero-link span { display:inline-block; transition:transform .18s ease; }
.tool-hero-link:hover span { transform:translateY(3px); }
.tool-start-note { border-left:1px solid var(--line); padding:20px 0 6px 32px; margin-top:12px; }
.tool-note-index { font-size:14px; color:var(--accent); }
.tool-start-note h2 { font:400 2.15rem/1.15 Georgia,serif; letter-spacing:-.035em; margin:5px 0 16px; }
.tool-start-note>p { font-size:15px; color:var(--muted); line-height:1.8; margin:0; }
.tool-start-note ol { padding:0; margin:24px 0 0; list-style:none; }
.tool-start-note li { display:grid; grid-template-columns:24px minmax(0,1fr); gap:15px; padding:13px 0; border-top:1px solid var(--line); }
.tool-start-note li>span { font-size:14px; color:var(--accent); font-variant-numeric:tabular-nums; padding-top:2px; }
.tool-start-note strong { font-size:15px; font-weight:600; }
.tool-start-note li p { font-size:14px; color:var(--muted); line-height:1.7; margin:5px 0 0; }
.tool-scope-note { padding:19px 23px; border-left:3px solid var(--accent); background:var(--soft); color:var(--muted); font-size:14px; line-height:1.8; margin:0 0 54px; }
.tool-directory,.tool-before-flight { scroll-margin-top:24px; }
.tool-directory-heading { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:18px 28px; margin-bottom:30px; }
.tool-directory-heading h2 { font:400 clamp(2rem,3.1vw,2.7rem)/1.12 Georgia,serif; letter-spacing:-.035em; margin:12px 0 0; }
.tool-directory-heading>a { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:14px; color:var(--accent); }
.tool-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:36px; align-items:start; }
.tool-sidebar { position:sticky; top:24px; border-top:1px solid var(--line); padding-top:20px; }
.tool-sidebar h3 { font-size:14px; font-weight:600; margin:0 0 13px; }
.tool-categories { display:flex; flex-direction:column; gap:4px; }
.tool-categories button { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:10px 12px; border:1px solid transparent; background:transparent; color:var(--muted); text-align:left; font-size:14px; line-height:1.45; }
.tool-categories button:hover { background:var(--soft); color:var(--accent); }
.tool-categories button[aria-pressed=true] { background:var(--accent); color:var(--surface); border-color:var(--accent); }
.tool-categories button span { font-variant-numeric:tabular-nums; }
.tool-category-count { min-width:20px; text-align:right; }
.tool-sidebar-note { font-size:14px; line-height:1.8; color:var(--muted); border-top:1px solid var(--line); padding-top:19px; margin-top:19px; }
.tool-results { min-width:0; }
.tool-filters { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(165px,1fr); align-items:start; gap:15px 20px; padding:24px; background:var(--surface); border:1px solid var(--line); }
.tool-filters label:not(.tool-checkbox) { display:block; margin:0 0 8px; font-size:14px; font-weight:600; }
.tool-filters :is(input[type=search],select) { display:block; width:100%; min-height:48px; padding:10px 12px; border:1px solid var(--line); border-radius:0; background:var(--bg); color:var(--ink); font-size:16px; }
.tool-filters input::placeholder { color:var(--muted); opacity:1; }
.tool-search-field small { display:block; color:var(--muted); font-size:14px; margin-top:6px; }
.tool-checkbox { display:flex; align-items:center; gap:11px; min-height:44px; width:fit-content; cursor:pointer; font-size:14px; }
.tool-checkbox input { width:20px; height:20px; margin:0; accent-color:var(--accent); }
.tool-reset { min-height:44px; width:fit-content; justify-self:end; padding:8px 0 8px 12px; background:none; border:0; color:var(--accent); text-decoration:underline; text-underline-offset:4px; font-size:14px; }
.tool-count { color:var(--muted); font-size:14px; min-height:24px; margin:22px 0 18px; }
.tool-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:22px; }
.tool-card { display:flex; flex-direction:column; min-width:0; padding:25px; background:var(--surface); border:1px solid var(--line); }
.tool-card-top { display:flex; align-items:start; gap:16px; min-width:0; }
.tool-card-top>div:not(.tool-monogram) { min-width:0; }
.tool-monogram { display:grid; place-items:center; flex:0 0 48px; width:48px; min-height:48px; background:var(--soft); border:1px solid var(--line); color:var(--accent); font-size:16px; letter-spacing:.025em; font-weight:700; }
.tool-card h3 { font:400 1.8rem/1.15 Georgia,serif; letter-spacing:-.025em; margin:0 0 5px; overflow-wrap:anywhere; }
.tool-card small { display:block; font-size:14px; color:var(--muted); overflow-wrap:anywhere; }
.tool-badges { display:flex; flex-wrap:wrap; gap:6px; margin:20px 0 0; }
.tool-badge { display:inline-block; padding:3px 8px; border:1px solid var(--line); color:var(--muted); background:var(--bg); font-size:14px; line-height:1.55; }
.tool-badge-essential { color:var(--accent); background:var(--soft); }
.tool-summary { font-size:15px; line-height:1.8; color:var(--muted); margin:18px 0 12px; overflow-wrap:anywhere; }
.tool-uses { margin:0 0 22px; padding-left:20px; font-size:14px; line-height:1.8; }
.tool-uses li { padding-left:3px; margin:7px 0; overflow-wrap:anywhere; }
.tool-uses li::marker { color:var(--accent); }
.tool-detail { border-top:1px solid var(--line); padding-top:4px; font-size:14px; line-height:1.8; color:var(--muted); }
.tool-detail summary { min-height:48px; padding:12px 0; cursor:pointer; color:var(--accent); font-size:14px; font-weight:600; }
.tool-detail p { margin:0 0 14px; overflow-wrap:anywhere; }
.tool-detail>strong { display:block; color:var(--ink); margin:6px 0; font-weight:600; }
.tool-detail ul { padding-left:20px; margin:0 0 16px; }
.tool-detail li { margin:9px 0; }
.tool-detail dl { margin:5px 0 16px; }
.tool-detail dt { color:var(--ink); font-weight:600; margin-top:12px; }
.tool-detail dd { margin:3px 0 0; overflow-wrap:anywhere; }
.tool-link { display:inline-flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; width:fit-content; margin-top:14px; font-size:14px; color:var(--accent); text-underline-offset:4px; overflow-wrap:anywhere; }
.tool-link-unavailable { color:var(--muted); font-size:14px; line-height:1.8; margin:14px 0 0; }
.tool-pagination { display:flex; align-items:center; justify-content:center; gap:20px; padding:28px 0 0; flex-wrap:wrap; }
.tool-pagination button { min-height:44px; padding:10px 18px; background:var(--surface); border:1px solid var(--line); color:var(--accent); font-size:14px; }
.tool-pagination span { font-size:14px; color:var(--muted); font-variant-numeric:tabular-nums; }
.tool-pagination button:not(:disabled):hover { background:var(--soft); }
.tools-page :is(.tool-categories button,.tool-pagination button,.tool-reset):active:not(:disabled) { transform:scale(.98); }
.tool-empty,.tool-error,.tool-loading { grid-column:1/-1; padding:36px; border:1px solid var(--line); background:var(--surface); font-size:15px; line-height:1.8; color:var(--muted); }
.tool-empty h3,.tool-error h3 { font:400 1.8rem/1.2 Georgia,serif; color:var(--ink); margin:0 0 12px; }
.tool-empty p,.tool-error p,.tool-loading p { margin:0; }
.tool-empty button { min-height:44px; padding:10px 16px; border:1px solid var(--accent); background:var(--surface); color:var(--accent); margin-top:20px; font-size:14px; }
.tool-skeleton { display:grid; gap:15px; margin-bottom:24px; max-width:450px; }
.tool-skeleton span { display:block; background:var(--faint); height:14px; }
.tool-skeleton span:first-child { height:25px; width:60%; }
.tool-skeleton span:last-child { width:80%; }
.tool-no-script { padding:28px; border:1px solid var(--line); background:var(--surface); font-size:15px; line-height:1.8; }
.tool-no-script h3 { font:400 2rem/1.2 Georgia,serif; margin:0 0 18px; }
.tool-no-script dl { margin:22px 0; }
.tool-no-script dl>div { display:grid; grid-template-columns:minmax(150px,.4fr) minmax(0,1fr); gap:25px; padding:18px 0; border-top:1px solid var(--line); }
.tool-no-script dt { font-weight:600; }
.tool-no-script dd { margin:0; color:var(--muted); }
.tool-before-flight { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); align-items:start; gap:72px; border-top:1px solid var(--line); padding-top:48px; margin-top:70px; }
.tool-checklist-intro h2 { font:400 clamp(2.1rem,3.5vw,3rem)/1.12 Georgia,serif; letter-spacing:-.035em; margin:16px 0 20px; }
.tool-checklist-intro p { font-size:15px; line-height:1.8; color:var(--muted); max-width:37ch; }
.tool-checklist { list-style:none; padding:0; margin:0; }
.tool-checklist li { display:grid; grid-template-columns:30px minmax(0,1fr); gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.tool-checklist li:first-child { padding-top:0; }
.tool-checklist li>span { color:var(--accent); font-size:14px; font-variant-numeric:tabular-nums; padding-top:2px; }
.tool-checklist h3 { font-size:16px; line-height:1.6; margin:0 0 8px; font-weight:600; }
.tool-checklist p { color:var(--muted); font-size:14px; line-height:1.8; margin:0; }
.tool-emergency { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr); align-items:center; gap:40px; padding:30px; margin-top:52px; background:var(--soft); border:1px solid var(--line); }
.tool-emergency h2 { font:400 1.9rem/1.2 Georgia,serif; letter-spacing:-.025em; margin:0 0 12px; }
.tool-emergency p { font-size:14px; line-height:1.8; color:var(--muted); margin:0; max-width:58ch; }
.tool-emergency dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; }
.tool-emergency dt { font-size:14px; color:var(--muted); }
.tool-emergency dd { font:400 2.3rem/1.3 Georgia,serif; letter-spacing:-.04em; color:var(--accent); margin:5px 0 0; }
.tool-editorial-note { margin:24px 0 0; max-width:105ch; color:var(--muted); font-size:14px; line-height:1.8; }
.tool-editorial-note p { margin:10px 0; }

/* Homepage teaser uses the homepage's light/dark design tokens, not atlas globals. */
.toolkit-home { padding-block:64px; border-top:1px solid var(--cp-border,#d5dbe3); color:var(--cp-text,#17202b); }
.toolkit-home-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr); gap:clamp(32px,6vw,90px); align-items:center; }
.toolkit-home .eyebrow { font-size:14px; }
.toolkit-home-copy h2 { font:400 clamp(2.2rem,4vw,3.5rem)/1.1 Georgia,serif; letter-spacing:-.04em; margin:15px 0 22px; }
.toolkit-home-copy>p { max-width:46ch; font-size:16px; line-height:1.8; color:var(--cp-text-muted,#526071); margin:0 0 20px; }
.toolkit-home-copy>p.toolkit-home-note { margin-top:18px; font-size:14px; }
.toolkit-cta { display:inline-flex; align-items:center; gap:18px; min-height:48px; font-size:15px; color:var(--cp-accent,#174c7c); text-decoration:none; border-bottom:1px solid var(--cp-accent,#174c7c); }
.toolkit-preview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cp-border,#d5dbe3); column-gap:28px; }
.toolkit-preview-item { display:grid; grid-template-columns:24px minmax(0,1fr) 14px; align-items:center; gap:12px; min-height:100px; padding:20px 2px; border-bottom:1px solid var(--cp-border,#d5dbe3); text-decoration:none; color:inherit; }
.toolkit-number { font-size:14px; color:var(--cp-text-muted,#526071); font-variant-numeric:tabular-nums; align-self:start; padding-top:3px; }
.toolkit-preview-item strong { display:block; font-size:16px; line-height:1.5; font-weight:600; }
.toolkit-preview-item small { display:block; color:var(--cp-text-muted,#526071); font-size:14px; line-height:1.7; margin-top:4px; }
.toolkit-preview-item>span:last-child { color:var(--cp-accent,#174c7c); transition:transform .18s ease; }
.toolkit-preview-item:hover { background:var(--cp-accent-soft,rgba(23,76,124,.09)); }
.toolkit-preview-item:hover>span:last-child { transform:translateX(3px); }
.toolkit-home a:focus-visible { outline:3px solid var(--cp-accent,#174c7c); outline-offset:4px; }
.toolkit-home a:active { transform:scale(.98); }

@media (max-width:1050px) {
  .tool-layout { grid-template-columns:185px minmax(0,1fr); gap:24px; }
  .tool-card { padding:21px; }
  .tool-card-top { gap:12px; }
  .tool-card h3 { font-size:1.65rem; }
  .tool-filters { padding:20px; gap:15px; }
  .tool-before-flight { gap:40px; }
  .toolkit-home-grid { gap:35px; }
  .toolkit-preview { column-gap:18px; }
}
@media (max-width:900px) {
  .tool-hero { gap:36px; grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr); padding-top:46px; }
  .tool-start-note { padding-left:25px; }
  .tool-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .tool-sidebar { position:static; padding-top:18px; }
  .tool-categories { flex-direction:row; flex-wrap:wrap; gap:8px; }
  .tool-categories button { width:auto; border-color:var(--line); padding-inline:13px; }
  .tool-sidebar-note { border:0; padding:0; margin:14px 0 0; }
  .tool-emergency { grid-template-columns:minmax(0,1fr); gap:24px; }
  .tool-emergency dl { max-width:460px; }
  .toolkit-home-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
  .toolkit-home-copy>p { max-width:60ch; }
}
@media (max-width:640px) {
  .tools-page .nav { padding-block:12px 8px; }
  .tools-page .nav-actions { gap:0 22px; width:100%; }
  .tools-page .nav-actions a { font-size:14px; }
  .tool-hero { grid-template-columns:minmax(0,1fr); gap:30px; padding:35px 0 32px; }
  .tool-hero h1 { font-size:clamp(2.9rem,10vw,4rem); }
  .tool-hero-copy>p { font-size:16px; }
  .tool-start-note { margin:0; padding:24px 0 0; border-left:0; border-top:1px solid var(--line); }
  .tool-start-note ol { margin-top:20px; }
  .tool-scope-note { padding:17px 18px; margin-bottom:35px; }
  .tool-directory-heading { gap:12px; margin-bottom:22px; }
  .tool-directory-heading h2 { font-size:2.2rem; }
  .tool-list { grid-template-columns:minmax(0,1fr); gap:18px; }
  .tool-card { padding:24px; }
  .tool-card h3 { font-size:1.9rem; }
  .tool-filters { grid-template-columns:minmax(0,1fr); padding:18px; }
  .tool-reset { justify-self:start; padding-left:0; }
  .tool-pagination { gap:15px; }
  .tool-empty,.tool-error,.tool-loading { padding:25px; }
  .tool-before-flight { grid-template-columns:minmax(0,1fr); gap:22px; margin-top:50px; padding-top:34px; }
  .tool-checklist-intro p { max-width:55ch; }
  .tool-checklist li { gap:12px; }
  .tool-emergency { padding:24px 20px; margin-top:35px; }
  .tool-emergency dl { gap:12px; }
  .tool-emergency dd { font-size:2.1rem; }
  .tool-no-script { padding:22px; }
  .tool-no-script dl>div { grid-template-columns:minmax(0,1fr); gap:8px; }
  .toolkit-home { padding-block:42px; }
  .toolkit-preview { column-gap:20px; }
  .toolkit-preview-item { grid-template-columns:minmax(0,1fr) 14px; padding:17px 0; }
  .toolkit-number { display:none; }
}
@media (max-width:380px) {
  .tool-card { padding:20px; }
  .tool-categories { gap:6px; }
  .tool-categories button { padding-inline:10px; }
  .toolkit-preview { grid-template-columns:minmax(0,1fr); }
  .toolkit-preview-item { min-height:85px; }
}
@media (min-width:901px) and (max-height:850px) {
  .tool-sidebar { position:static; }
}
@media (prefers-reduced-motion:reduce) {
  .tools-page *,.tools-page *::before,.tools-page *::after,.toolkit-home * { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
  .tools-page :is(button,a):active,.tool-hero-link:hover span,.toolkit-home a:active,.toolkit-preview-item:hover>span:last-child { transform:none!important; }
}
