:root {
  --navy:#0b1d3e;
  --blue:#1a56db;
  --orange:#e85d26;
  --ink:#17263d;
  --muted:#596579;
  --line:#dfe4ec;
  --paper:#f8f9fb;
  --white:#fff;
}

.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Inter,Arial,sans-serif;
  line-height:1.65;
}

a {
  color:inherit;
  text-underline-offset:4px;
}

img {
  display:block;
  max-width:100%;
}

button,input {
  font:inherit;
}

button {
  cursor:pointer;
}

a,button,input {
  touch-action:manipulation;
}

:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px;
}

[hidden] {
  display:none!important;
}

.wrap {
  width:min(1180px,calc(100% - 64px));
  margin-inline:auto;
}

.skip-link {
  position:absolute;
  top:-80px;
  background:white;
  padding:12px;
  z-index:30;
}

.skip-link:focus {
  top:10px;
}

.site-header {
  background:var(--navy);
  color:white;
}

.header-inner {
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand {
  display:flex;
  align-items:center;
  gap:18px;
  text-decoration:none;
}

.brand img {
  width:110px;
  height:60px;
  object-fit:contain;
}

.brand-label {
  border-left:1px solid #ffffff45;
  padding-left:18px;
  font-size:13px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.site-nav {
  display:flex;
  gap:26px;
  align-items:center;
  font-size:14px;
  font-weight:600;
}

.site-nav a {
  text-decoration:none;
}

.site-nav a[aria-current] {
  color:#ffaf82;
}

.site-nav .nav-cta {
  border:1px solid #ffffff60;
  border-radius:6px;
  padding:9px 16px;
}

.eyebrow {
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--blue);
  margin:0 0 16px;
}

.intro {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:70px;
  align-items:end;
  padding:64px 0 44px;
  border-bottom:1px solid var(--line);
}

h1,h2,h3 {
  font-family:Manrope,Inter,Arial,sans-serif;
  line-height:1.15;
  letter-spacing:-.035em;
}

h1 {
  font-size:clamp(38px,4.3vw,62px);
  font-weight:800;
  margin:0;
}

h1 em {
  font-style:normal;
  color:var(--blue);
}

.intro p:last-child {
  font-size:17px;
  color:var(--muted);
  margin:0 0 5px;
}

.issue-label {
  font-size:12px;
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  padding:15px 0 24px;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.feature {
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--line);
  background:white;
  border-radius:12px;
  overflow:hidden;
}

.feature-copy {
  padding:42px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.tag {
  font-size:11px;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--blue);
}

.feature h2 {
  font-size:clamp(28px,3vw,41px);
  margin:18px 0;
}

.feature h2 a {
  text-decoration:none;
}

.feature-copy>p {
  color:var(--muted);
  margin:0 0 24px;
}

.meta {
  color:var(--muted);
  font-size:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  margin-bottom:24px;
}

.button {
  background:var(--blue);
  color:white;
  text-decoration:none;
  padding:12px 20px;
  border:0;
  border-radius:6px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  font-size:14px;
  font-weight:700;
}

.button:hover {
  background:#1246b9;
}

.feature .button {
  margin-top:auto;
}

.feature-art {
  background:var(--navy);
  color:white;
  padding:42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}

.feature-art .eyebrow {
  color:#ffb28c;
}

.art-title {
  font-family:Manrope,Arial,sans-serif;
  font-size:clamp(32px,3.7vw,50px);
  font-weight:800;
  line-height:1.15;
  letter-spacing:-.035em;
  margin:6px 0 32px;
}

.art-row {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid #ffffff30;
  padding:16px 0;
  font-size:14px;
}

.art-row strong {
  color:#ffb28c;
}

.art-note {
  font-size:12px;
  color:#c6d0e1;
  margin:12px 0 0;
}

.library {
  padding:55px 0 64px;
}

.section-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:22px;
}

.section-top h2 {
  font-size:28px;
  margin:0;
}

.search {
  position:relative;
}

.search input {
  width:280px;
  max-width:100%;
  padding:12px 14px;
  background:white;
  border:1px solid #bac3d1;
  border-radius:6px;
  font-size:14px;
}

.filters {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 26px;
}

.filter {
  padding:8px 16px;
  border:1px solid #cbd3df;
  border-radius:30px;
  background:transparent;
  color:var(--muted);
  font-size:13px;
  font-weight:600;
}

.filter[aria-pressed=true] {
  background:var(--navy);
  border-color:var(--navy);
  color:white;
}

.article-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.article-card {
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.card-art {
  height:180px;
  background:#e8eefb;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.card-art.charges {
  background:#fff0e8;
}

.card-art.tours {
  background:#e9f1ed;
}

.card-number {
  font-family:Manrope,Arial,sans-serif;
  font-size:44px;
  font-weight:800;
  letter-spacing:-.05em;
}

.card-art span:last-child {
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.card-body {
  padding:26px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.card-body h3 {
  font-size:24px;
  margin:14px 0;
}

.card-body h3 a {
  text-decoration:none;
}

.card-body>p {
  font-size:14px;
  color:var(--muted);
  margin:0 0 22px;
}

.card-body .meta {
  margin-top:auto;
  margin-bottom:16px;
}

.text-link {
  font-size:14px;
  font-weight:700;
  color:var(--blue);
  text-decoration:none;
}

.text-link:hover {
  text-decoration:underline;
}

.empty {
  padding:30px;
  border:1px solid var(--line);
  border-radius:8px;
}

.community {
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:50px;
  align-items:center;
  background:var(--navy);
  color:white;
  padding:40px;
  border-radius:10px;
  margin-bottom:64px;
}

.community .eyebrow {
  color:#ffb28c;
}

.community h2 {
  font-size:30px;
  margin:0 0 14px;
}

.community p {
  margin:0;
  color:#d2dbea;
  font-size:15px;
}

.community-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}

.community-actions>a:last-child {
  font-size:13px;
  color:#d2dbea;
}

.site-footer {
  border-top:1px solid var(--line);
  background:white;
  padding:30px 0;
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  font-size:13px;
  color:var(--muted);
}

.footer-inner strong {
  color:var(--navy);
}

.footer-links {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.breadcrumb {
  font-size:13px;
  color:var(--muted);
  padding:28px 0;
}

.breadcrumb a {
  color:var(--blue);
}

.article-heading {
  max-width:900px;
  margin:12px 0 36px;
}

.article-heading h1 {
  font-size:clamp(34px,4.4vw,58px);
  margin:14px 0 22px;
}

.article-deck {
  font-size:19px;
  color:var(--muted);
  max-width:780px;
  margin:0 0 24px;
}

.article-heading .meta {
  margin:0;
}

.article-layout {
  display:grid;
  grid-template-columns:minmax(0,760px) 260px;
  gap:65px;
  align-items:start;
  margin-bottom:64px;
}

.article-body {
  background:white;
  border:1px solid var(--line);
  padding:40px;
  border-radius:10px;
  min-width:0;
}

.article-body p {
  margin:0 0 20px;
}

.article-body h2 {
  font-size:28px;
  margin:42px 0 20px;
}

.article-body h3 {
  font-size:21px;
  margin:28px 0 14px;
}

.article-body li {
  margin:10px 0;
}

.article-body ul,.article-body ol {
  padding-left:24px;
  margin-bottom:24px;
}

.source-note {
  padding:20px;
  background:#f0f4fb;
  border-left:3px solid var(--blue);
  font-size:14px;
  margin-bottom:28px;
}

.source-note p:last-child {
  margin:0;
}

.article-body blockquote {
  margin:30px 0;
  padding:10px 0 10px 24px;
  border-left:3px solid var(--orange);
  font-size:22px;
  font-weight:600;
  line-height:1.5;
  color:var(--navy);
}

.cost-table {
  width:100%;
  border-collapse:collapse;
  margin:24px 0;
  font-size:14px;
}

.cost-table caption {
  text-align:left;
  font-weight:700;
  margin-bottom:12px;
}

.cost-table th,.cost-table td {
  padding:14px 10px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}

.cost-table th {
  background:var(--paper);
}

.cost-table th:first-child {
  width:40%;
}

.callout {
  padding:24px;
  background:#fff3eb;
  border-radius:6px;
  margin:28px 0;
}

.callout h3 {
  margin:0 0 12px;
}

.callout p:last-child {
  margin-bottom:0;
}

.article-aside {
  position:sticky;
  top:24px;
}

.article-aside h2 {
  font-size:16px;
  margin:0 0 16px;
  letter-spacing:0;
}

.toc {
  padding:0;
  list-style:none;
  border-left:1px solid var(--line);
}

.toc li {
  margin:0;
}

.toc a {
  display:block;
  padding:8px 0 8px 18px;
  font-size:13px;
  text-decoration:none;
  color:var(--muted);
}

.toc a:hover {
  color:var(--blue);
}

.aside-cta {
  margin-top:30px;
  padding:24px;
  background:var(--navy);
  border-radius:8px;
  color:white;
}

.aside-cta h3 {
  font-size:22px;
  margin:0 0 14px;
}

.aside-cta p {
  font-size:13px;
  color:#d2dbea;
}

.aside-cta .button {
  width:100%;
}

.share {
  margin-top:26px;
  border-top:1px solid var(--line);
  padding-top:22px;
}

.share-links {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.share-links a,.share-links button {
  border:1px solid #bbc5d4;
  background:white;
  border-radius:5px;
  padding:8px 12px;
  color:var(--ink);
  font-size:12px;
  text-decoration:none;
}

.share-status {
  font-size:12px;
  color:var(--muted);
  min-height:20px;
  margin:8px 0;
}

.related {
  margin-bottom:64px;
}

.related h2 {
  font-size:28px;
}

.related .article-grid {
  grid-template-columns:repeat(2,1fr);
}

.article-end {
  padding-top:28px;
  border-top:1px solid var(--line);
  margin-top:32px;
}

.article-end p {
  font-size:14px;
  color:var(--muted);
}

@media(max-width:1000px) {
  .intro {
    gap:36px;
  }
  .feature-copy,.feature-art {
    padding:30px;
  }
  .article-grid {
    gap:16px;
  }
  .card-body {
    padding:22px;
  }
  .article-layout {
    grid-template-columns:minmax(0,1fr) 220px;
    gap:28px;
  }
  .article-body {
    padding:30px;
  }
  .site-nav {
    gap:18px;
  }
}

@media(max-width:760px) {
  .wrap {
    width:calc(100% - 36px);
  }
  .header-inner {
    flex-wrap:wrap;
    gap:0;
    padding:12px 0 16px;
  }
  .brand img {
    width:94px;
    height:51px;
  }
  .brand-label {
    font-size:11px;
  }
  .site-nav {
    width:100%;
    justify-content:space-between;
    gap:12px;
    margin-top:12px;
    font-size:12px;
  }
  .site-nav .nav-cta {
    padding:6px 10px;
  }
  .intro {
    grid-template-columns:1fr;
    gap:22px;
    padding:36px 0 28px;
  }
  .intro h1 {
    font-size:42px;
  }
  .intro p:last-child {
    font-size:16px;
  }
  .issue-label {
    font-size:10px;
    gap:12px;
  }
  .feature {
    grid-template-columns:1fr;
  }
  .feature-art {
    order:-1;
    padding:28px;
  }
  .art-title {
    font-size:37px;
    margin-bottom:20px;
  }
  .art-row {
    padding:10px 0;
  }
  .feature-copy {
    padding:28px;
  }
  .feature h2 {
    font-size:29px;
  }
  .library {
    padding:38px 0;
  }
  .section-top {
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .search input {
    width:100%;
  }
  .article-grid,.related .article-grid {
    grid-template-columns:1fr;
  }
  .card-art {
    height:150px;
  }
  .community {
    grid-template-columns:1fr;
    gap:24px;
    padding:28px;
    margin-bottom:40px;
  }
  .community h2 {
    font-size:26px;
  }
  .footer-inner {
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }
  .article-heading {
    margin-top:0;
  }
  .article-deck {
    font-size:17px;
  }
  .article-layout {
    display:flex;
    flex-direction:column;
    gap:24px;
    margin-bottom:40px;
  }
  .article-aside {
    position:static;
    width:100%;
    order:-1;
  }
  .toc {
    display:flex;
    flex-wrap:wrap;
    gap:4px 10px;
    border:0;
  }
  .toc a {
    padding:6px 10px;
    background:#eaf0fb;
    border-radius:5px;
  }
  .aside-cta {
    display:none;
  }
  .share {
    margin-top:16px;
    padding-top:16px;
  }
  .article-body {
    padding:24px 20px;
    width:100%;
  }
  .article-body h2 {
    font-size:25px;
  }
  .article-body blockquote {
    font-size:20px;
  }
  .cost-table th,.cost-table td {
    padding:12px 7px;
    font-size:13px;
  }
  .related {
    margin-bottom:40px;
  }
}

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