@font-face {
  font-family: "DM Sans";
  src: url("/assets/fonts/dm-sans.woff2") format("woff2");
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Baskervville;
  src: url("/assets/fonts/baskervville.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
:root {
  color-scheme: light;
  --ink: #19342b;
  --muted: #495a51;
  --paper: #f8f8f2;
  --white: #fffefa;
  --forest: #143c31;
  --lime: #e6efac;
  --border: #d6ded4;
  --green: #24664d;
  --radius: 20px;
  --sans: "DM Sans", "Segoe UI", system-ui, sans-serif;
  --display: Baskervville, Georgia, "Times New Roman", serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-block-start: 1.25rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 1.0625rem/1.64 var(--sans); }
button, select { font: inherit; color: inherit; }
a { color: var(--green); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: .13em; }
:focus-visible { outline: 3px solid #974d0d; outline-offset: 4px; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { margin: 0; line-height: 1.12; }
h1, h2 { font-family: var(--display); font-weight: 400; letter-spacing: -.035em; }
h2 { font-size: clamp(1.85rem, 3vw, 2.7rem); }
p { margin: 0 0 1em; }
.wrap { width: min(100% - 3rem, 76.5rem); margin-inline: auto; }
.skip-link { position: fixed; z-index: 15; inset: .6rem auto auto .6rem; background: var(--white); padding: .65rem 1rem; transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }

.site-header { background: var(--white); border-block-end: 1px solid var(--border); }
.top-bar { display: flex; justify-content: space-between; align-items: center; min-height: 4.8rem; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .66rem; width: fit-content; color: var(--forest); font-weight: 760; font-size: clamp(1.25rem, 3.5vw, 1.62rem); letter-spacing: -.06em; text-decoration: none; line-height: 1.1; }
.brand-domain { color: var(--green); }
.brand-mark { width: 2.3rem; height: 2.3rem; border-radius: .75rem; background: var(--forest); display: grid; place-items: center; flex-shrink: 0; }
.brand-mark i { display: block; width: 1.07rem; height: 1.07rem; background: var(--lime); clip-path: polygon(39% 0,61% 0,61% 39%,100% 39%,100% 61%,61% 61%,61% 100%,39% 100%,39% 61%,0 61%,0 39%,39% 39%); transform: rotate(-12deg); }
.utility { display: flex; align-items: center; gap: 1.6rem; }
.utility a { color: var(--muted); font-size: .95rem; text-decoration: none; display: inline-flex; min-height: 2.75rem; align-items: center; }
.utility a:hover { text-decoration: underline; }
.primary-nav { border-block-start: 1px solid #e6ebe2; }
.menu-list { display: flex; list-style: none; align-items: center; gap: clamp(.5rem, 2.1vw, 2rem); margin-block: 0; padding: .2rem 0; }
.menu-item { display: flex; align-items: stretch; position: relative; flex-shrink: 0; border-radius: .45rem; }
.menu-item > a { min-height: 2.8rem; display: flex; align-items: center; color: var(--ink); font-size: .925rem; font-weight: 700; text-decoration: none; }
.menu-item > a:hover, .menu-item.is-active > a { text-decoration: underline; }
.menu-item--region { margin-inline-start: auto; background: #e6eee3; }
.menu-item--region > a { padding-inline-start: .85rem; }
.submenu summary { min-height: 2.8rem; min-width: 1.8rem; cursor: pointer; list-style: none; display: grid; place-items: center; border-radius: .45rem; }
.submenu summary::-webkit-details-marker { display: none; }
.submenu summary:hover { background: #e8eee5; }
.chevron { border: solid currentColor; border-width: 0 1.5px 1.5px 0; width: .43rem; height: .43rem; transform: rotate(45deg) translateY(-2px); }
.submenu[open] .chevron { transform: rotate(225deg); }
.submenu ul { position: absolute; z-index: 4; inset: calc(100% + .2rem) auto auto 0; width: max-content; max-width: 18rem; list-style: none; margin: 0; padding: .4rem; border: 1px solid var(--border); background: var(--white); border-radius: .75rem; box-shadow: 0 .7rem 2rem #1a2e211c; }
.menu-item--region .submenu ul { inset-inline: auto 0; }
.submenu a { display: block; min-height: 2.75rem; padding: .5rem .75rem; color: var(--ink); text-decoration: none; border-radius: .4rem; }
.submenu a:hover { background: #edf2e8; text-decoration: underline; }
.mobile-toggle { display: none; }

.hero { margin-block-start: 1.75rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr); background: var(--forest); color: var(--white); border-radius: 1.55rem; overflow: clip; }
.hero--no-image { grid-template-columns: 1fr; }
.hero-copy { padding: clamp(2rem, 4.6vw, 4.3rem); align-self: center; }
.hero-eyebrow { font-size: .9rem; font-weight: 680; letter-spacing: .015em; color: #e1ecd9; display: flex; align-items: center; gap: .55rem; margin: 0 0 1.15rem; }
.hero-eyebrow span { width: .48rem; height: .48rem; border-radius: 50%; background: var(--lime); }
.hero h1 { font-size: clamp(2.65rem, 4.85vw, 4.5rem); line-height: .99; max-width: 13ch; margin-block-end: 1.25rem; }
.hero-lead { max-width: 36ch; font-size: clamp(1.05rem, 1.55vw, 1.19rem); color: #edf3e9; line-height: 1.55; margin-block-end: 1.5rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.hero :focus-visible { outline-color: #fff0ab; }
.hero-media { display: grid; grid-template-rows: minmax(0, 1fr) auto; margin: 0; background: #52644f; }
.hero-image { min-height: clamp(26rem, 36vw, 32rem); position: relative; }
.hero-media img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 42% 50%; }
.hero-media figcaption, .article-photo figcaption { font-size: .86rem; padding: .45rem .85rem; }
.hero-media figcaption { background: var(--forest); color: #edf3e9; text-align: end; }
.hero-media figcaption a { color: inherit; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: .3rem; min-height: 2.95rem; padding: .62rem .95rem; border: 1px solid transparent; border-radius: .5rem; text-decoration: none; line-height: 1.3; font-weight: 700; font-size: .96rem; cursor: pointer; }
.button:hover { text-decoration: underline; }
.button--lime { background: var(--lime); color: #1d3520; }
.button--outline { border-color: #9eb8a8; color: var(--white); background: transparent; }
.button--green { background: var(--forest); color: var(--white); }
.button--plain { background: var(--white); border-color: var(--border); }
.start-section { padding-block: 2.55rem 3.05rem; }
.start-section h2 { margin-block-end: 1.3rem; }
.topic-grid, .guide-grid, .region-grid { padding: 0; margin: 0; display: grid; list-style: none; gap: 1rem; }
.topic-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.topic-card { min-height: 12.5rem; height: 100%; position: relative; display: flex; flex-direction: column; align-items: start; gap: .45rem; padding: 1.25rem 1.28rem; text-decoration: none; border-radius: 1.05rem; background: #e2ebe0; color: var(--ink); border: 1px solid #d7e2d4; }
.topic-card--2 { background: #eff0da; border-color: #e3e5c8; }
.topic-card--3 { background: #f3e8db; border-color: #e9ddcf; }
.topic-card--4 { background: #e6ece7; border-color: #d7e2db; }
.topic-card:hover, .guide-card:hover { border-color: #6d8d75; }
.topic-card:hover .card-title, .guide-card:hover .guide-title { text-decoration: underline; text-underline-offset: .2em; }
.card-title { font-weight: 740; font-size: 1.18rem; letter-spacing: -.025em; line-height: 1.22; }
.card-description { font-size: .94rem; line-height: 1.5; color: #405247; }
.card-arrow { font-size: 1.2rem; position: absolute; inset: 1rem 1.1rem auto auto; }
.topic-icon { width: 2.62rem; height: 2.62rem; display: grid; place-items: center; background: #fffdfaab; border-radius: .72rem; margin-block-end: .47rem; position: relative; }
.topic-icon::before, .topic-icon::after { content: ""; position: absolute; }
.topic-icon--process::before { width: .9rem; height: 1.17rem; border: 1.7px solid; border-radius: .15rem; }
.topic-icon--process::after { width: .39rem; height: .27rem; border-block: 1.5px solid; }
.topic-icon--types::before { width: .47rem; height: .47rem; border: 1.5px solid; border-radius: .09rem; inset: .75rem auto auto .75rem; }
.topic-icon--types::after { width: .47rem; height: .47rem; border: 1.5px solid; border-radius: .09rem; inset: 1.4rem auto auto 1.4rem; }
.topic-icon--home::before { width: .92rem; height: .75rem; border: 1.6px solid; border-block-start: 0; transform: translateY(.19rem); }
.topic-icon--home::after { width: .73rem; height: .73rem; border: 1.6px solid; border-width: 1.6px 0 0 1.6px; transform: translateY(-.23rem) rotate(45deg); }
.topic-icon--pin::before { width: 1rem; height: 1rem; border: 1.6px solid; border-radius: 65% 65% 65% 0; transform: translateY(-.1rem) rotate(-45deg); }
.topic-icon--pin::after { width: .25rem; height: .25rem; border-radius: 50%; background: currentColor; transform: translateY(-.12rem); }

.home-questions { background: #eaf0e6; padding-block: 2.65rem; }
.question-layout, .home-reading { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 2.6rem; }
.question-layout h2, .home-aside h2 { margin-block-end: .55rem; }
.question-layout p, .home-aside p { color: var(--muted); margin: 0 0 1.2rem; }
.question-list { margin: 0; padding: 0; list-style: none; }
.question-list li { border-block-end: 1px solid var(--border); }
.question-list li:first-child { border-block-start: 1px solid var(--border); }
.question-list a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 3rem; padding: .62rem 0; color: var(--ink); text-decoration: none; font-weight: 640; }
.question-list a::after { content: "→" / ""; color: var(--green); }
.question-list a:hover { text-decoration: underline; }
.home-reading { grid-template-columns: minmax(0, 2fr) minmax(15.5rem, .9fr); gap: clamp(2rem, 7vw, 6rem); padding-block: 3.5rem 4rem; }
.home-aside { align-self: start; background: #e7eee4; border: 1px solid #d7e2d4; border-radius: 1rem; padding: 1.45rem; }
.home-aside h2 { font-size: 1.95rem; }
.home-aside > a { font-weight: 650; display: inline-flex; align-items: center; min-height: 2.75rem; }

.breadcrumbs { padding-block: 1.15rem; font-size: .91rem; color: var(--muted); }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .15rem .5rem; }
.breadcrumbs li { display: flex; align-items: baseline; gap: .5rem; }
.breadcrumbs li + li::before { content: "/" / ""; color: #6d796f; }
.breadcrumbs a { min-height: 1.65rem; }
.article { padding-block-end: 4rem; }
.article-hero { background: #e6eee2; padding: clamp(1.5rem, 4.2vw, 3.2rem); border-radius: var(--radius); }
.article-hero-inner { max-width: 66ch; }
.article-hero h1 { font-size: clamp(2.4rem, 5.1vw, 4rem); hyphens: auto; overflow-wrap: anywhere; line-height: 1.04; margin-block-end: .9rem; }
.article-hero p { color: #354c3f; font-size: 1.12rem; margin: 0; }
.article-hero :is(.byline, .dateline) { font-size: .875rem; margin-block-start: 1.2rem; }
.article-hero .byline + .dateline { margin-block-start: .35rem; }
.article-photo { margin: 1.35rem 0 0; width: min(100%, 44rem); border-radius: 1rem; overflow: clip; }
.article-photo img { display: block; width: 100%; height: auto; }
.article-photo figcaption { background: #e6eee2; color: var(--muted); }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr); padding-block-start: 2.2rem; }
.article-layout--toc { grid-template-columns: minmax(13rem, .4fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5.5rem); }
.prose { max-width: 69ch; font-size: 1.1rem; overflow-wrap: break-word; }
.prose h2 { margin-block: 1.4em .55em; }
.prose h3, .prose h4 { margin-block: 1.35em .45em; font-size: 1.2em; }
.prose > :first-child { margin-block-start: 0; }
.prose p:last-child, .prose ul:last-child { margin-block-end: 0; }
.prose ul, .prose ol { padding-inline-start: 1.5em; margin-block: .45em 1.25em; }
.prose li + li { margin-block-start: .45em; }
.prose blockquote { margin-inline: 0; padding: .75rem 1rem; border-inline-start: 4px solid #6c9074; background: #e6eee2; }
.toc { align-self: start; background: var(--white); padding: .85rem 1.05rem; border: 1px solid var(--border); border-radius: .8rem; font-size: .93rem; }
.toc p { font-weight: 750; margin: 0 0 .15rem; }
.toc ul { list-style: none; margin: 0; padding: 0; }
.toc a { display: flex; align-items: center; min-height: 2.35rem; padding-block: .25rem; }
.section-block { margin-block-start: 2.7rem; }
.section-block h2 { margin-block-end: 1rem; }
.guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guide-card { position: relative; height: 100%; display: flex; flex-direction: column; gap: .5rem; color: var(--ink); text-decoration: none; padding: 1.1rem 2.1rem 1.1rem 1.1rem; border: 1px solid var(--border); border-radius: .95rem; background: var(--white); }
.guide-card > span:nth-child(2) { color: var(--muted); font-size: .96rem; line-height: 1.5; }
.guide-title { font-weight: 720; font-size: 1.12rem; line-height: 1.28; }
.related { max-width: 69ch; }
.region-form { margin-block-start: 1.5rem; max-width: 43rem; }
.region-form label { display: block; font-weight: 730; margin-block-end: .4rem; }
.region-form-controls { display: flex; flex-wrap: wrap; gap: .55rem; }
.region-form select { background: var(--white); border: 1px solid #8ca097; min-height: 2.95rem; border-radius: .5rem; padding: .4rem .7rem; flex: 1 1 11rem; max-width: 100%; }
.region-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.region-link { display: flex; align-items: center; min-height: 3.5rem; padding: .7rem .9rem; color: var(--ink); text-decoration: none; font-weight: 670; background: var(--white); border: 1px solid var(--border); border-radius: .7rem; }
.region-link:hover { text-decoration: underline; background: #eaf0e5; }
.image-credits { max-width: 69ch; }
.image-credit-list { display: grid; gap: .9rem; list-style: none; margin: 0; padding: 0; }
.image-credit-list > li { background: var(--white); border: 1px solid var(--border); border-radius: .8rem; padding: 1rem; }
.image-credit-list h3 { margin-block-end: .75rem; font-size: 1.16rem; }
.image-credit-list dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .3rem 1rem; margin: 0; }
.image-credit-list dt { font-weight: 700; }
.image-credit-list dd { margin: 0; overflow-wrap: break-word; }

.site-footer { background: #e3eae0; padding-block: 2.6rem 1.2rem; }
.footer-inner { display: flex; align-items: start; justify-content: space-between; gap: 2rem; }
.footer-inner p { margin: .75rem 0 0; color: var(--muted); }
.footer-inner ul { margin: 0; padding: 0; list-style: none; display: flex; justify-content: end; flex-wrap: wrap; column-gap: 1.1rem; }
.footer-inner a:not(.brand), .text-button { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .95rem; color: var(--forest); }
.text-button { border: 0; padding: 0; background: none; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.footer-publisher { border-block-start: 1px solid #cbd8cc; margin-block-start: 1.5rem; padding-block-start: 1rem; color: var(--muted); font-size: .92rem; }
.cookie-dialog { background: var(--white); color: var(--ink); border: 1px solid var(--border); padding: 0; border-radius: 1rem; width: min(33rem, calc(100% - 2rem)); max-height: calc(100% - 2rem); }
.cookie-dialog::backdrop { background: #12271bb0; }
.cookie-content { padding: 1.35rem; }
.cookie-content h2 { font-size: 1.85rem; margin-block-end: .7rem; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-block-start: 1rem; }
.cookie-status:not(:empty) { margin: .65rem 0 0; }

@media (max-width: 1080px) {
  .menu-list { gap: .4rem; }
  .menu-item > a { font-size: .86rem; }
  .submenu summary { min-width: 1.6rem; }
}
@media (max-width: 1020px) {
  .top-bar { min-height: 4.4rem; }
  .utility { display: none; }
  .mobile-toggle:not([hidden]) { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.75rem; padding: .4rem .7rem; background: #e9eee4; border: 1px solid var(--border); border-radius: .45rem; font-weight: 700; }
  .menu-bars { width: .9rem; height: .65rem; border-block: 1.5px solid; background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat; }
  .site-header[data-enhanced]:has(.mobile-toggle[aria-expanded="false"]) .primary-nav { display: none; }
  .menu-list { display: block; padding-block: .35rem .65rem; }
  .menu-item { display: block; margin: 0; border-radius: .4rem; }
  .menu-item > a { width: calc(100% - 3rem); padding-inline-start: .6rem; font-size: .98rem; min-height: 3rem; }
  .submenu summary { position: absolute; inset: 0 0 auto auto; width: 3rem; height: 3rem; }
  .submenu ul { position: static; width: 100%; max-width: none; border: 0; box-shadow: none; }
}
@media (max-width: 900px) {
  .wrap { width: min(100% - 2rem, 76.5rem); }
  .topic-grid, .guide-grid, .region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topic-card { min-height: 10rem; }
}
@media (max-width: 700px) {
  .hero { grid-template-columns: 1fr; margin-block-start: 1rem; }
  .hero-copy { padding: 1.65rem 1.35rem; }
  .hero h1 { max-width: 15ch; }
  .hero-image { min-height: unset; aspect-ratio: 1.55; }
  .home-reading, .question-layout, .article-layout--toc { grid-template-columns: minmax(0, 1fr); gap: 1.4rem; }
  .home-reading { padding-block: 2.5rem; }
  .footer-inner { flex-direction: column; gap: 1rem; }
  .footer-inner ul { justify-content: start; }
}
@media (max-width: 440px) {
  .wrap { width: calc(100% - 1.5rem); }
  .brand { gap: .5rem; }
  .brand-mark { width: 1.9rem; height: 1.9rem; border-radius: .59rem; }
  .article-hero h1 { font-size: clamp(1.75rem, 8.7vw, 2.4rem); }
  .topic-grid, .guide-grid { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .topic-card { min-height: auto; padding-inline-end: 2.55rem; }
  .region-grid { gap: .65rem; }
  .region-link { font-size: .95rem; padding-inline: .6rem; }
  .image-credit-list dl { grid-template-columns: minmax(0, 1fr); gap: .05rem; }
  .image-credit-list dt:not(:first-child) { margin-block-start: .4rem; }
}
@media (max-width: 360px) {
  .top-bar { gap: .5rem; }
  .top-bar .brand { font-size: 1.1rem; }
  .mobile-toggle:not([hidden]) { font-size: .875rem; gap: .4rem; padding-inline: .55rem; }
}

