:root {
  --color-bg:        #FFFFFF;
  --color-surface:   #F0F5FA;
  --color-border:    #D0DAE8;
  --color-text:      #2A3A4D;
  --color-text-dim:  #5A6E85;
  --color-accent:    #0093FF;
  --color-accent-2:  #0080E0;
  --color-accent-tint: #A8DEFF;
  --color-heading:   #08182F;
  --color-dark:      #08182F;
  --color-dark-2:    #0F2340;
  --font-display: 'DM Sans', sans-serif;
  --font-body:    'DM Sans', sans-serif;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background-color: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  font-size: 1rem;
}
h1, h2, h3 { font-family: var(--font-display); color: var(--color-heading); line-height: 1.15; }
a { color: var(--color-accent); }

.res-wrap { max-width: 700px; margin: 0 auto; padding: 0 20px; }
.res-wrap-wide { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

/* ---- hero ---- */
.res-hero { padding: 64px 0 48px; text-align: center; }

.res-eyebrow {
  font-size: 12.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-text-dim); margin-bottom: 16px;
}
.res-eyebrow a { color: var(--color-heading); text-decoration: none; }
.res-eyebrow a:hover { color: var(--color-accent); }
.res-eyebrow .sep { color: var(--color-text-dim); margin: 0 3px; }

.res-h1 { font-size: clamp(34px, 5.5vw, 52px); font-weight: 700; margin-bottom: 18px; text-wrap: balance; }
.res-highlight {
  display: inline-block;
  position: relative;
  color: var(--color-heading);
  background: var(--color-accent-tint);
  padding: 1px 12px 7px;
  margin: 0 1px;
  border-radius: 0;
  transform: rotate(-1.3deg);
  mix-blend-mode: multiply;
}

.res-subhead { font-size: 17.5px; color: var(--color-text-dim); max-width: 46ch; margin: 0 auto; }

/* ---- resource grid ---- */
.res-section { padding: 16px 0 56px; }
.res-section-label {
  font-size: 13px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--color-text-dim); margin-bottom: 24px; text-align: center;
}

.res-grid { list-style: none; display: grid; grid-template-columns: 1fr; gap: 20px; }

.res-card-item { display: flex; }

.res-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  width: 100%; text-decoration: none; color: inherit;
  background: var(--color-bg); border: 1px solid var(--color-border); border-radius: 14px;
  padding: 24px; box-shadow: 0 4px 14px rgba(8,24,47,0.04);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.res-card:hover, .res-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(8,24,47,0.1);
  border-color: var(--color-accent);
}
.res-card:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.res-tag {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 999px;
  padding: 5px 12px; font-size: 12.5px; font-weight: 700; color: var(--color-heading);
}

.res-card h3 { font-size: 18px; font-weight: 700; }
.res-card p { font-size: 14.5px; color: var(--color-text-dim); flex-grow: 1; }

.res-cta { font-size: 14.5px; font-weight: 700; color: var(--color-accent); margin-top: 4px; }
.res-card:hover .res-cta, .res-card:focus-visible .res-cta { color: var(--color-accent-2); }

@media (min-width: 700px) {
  .res-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px) {
  .res-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}

/* ---- final cta band ---- */
.res-final-wrap { padding: 8px 0 64px; }
.res-final-container { max-width: 640px; margin: 0 auto; padding: 0 20px; }
.res-final {
  background: var(--color-dark); background-image: linear-gradient(180deg, var(--color-dark) 0%, var(--color-dark-2) 100%);
  border-radius: 20px; text-align: center; padding: 48px 32px; color: #fff;
}
.res-final h2 { color: #fff; font-size: 25px; margin-bottom: 10px; }
.res-final p { color: #B9C4D4; font-size: 15px; margin-bottom: 24px; }
.res-btn-link {
  display: inline-flex; align-items: center; gap: 8px; padding: 13px 26px; border-radius: 8px;
  background: var(--color-accent); color: #fff; font-weight: 700; font-size: 15.5px; text-decoration: none;
}
.res-btn-link:hover, .res-btn-link:focus-visible { background: var(--color-accent-2); }

/* ---- footer ---- */
.res-footer { padding: 28px 0 44px; text-align: center; color: var(--color-text-dim); }
.res-foot-follow { font-size: 13px; margin-bottom: 8px; }
.res-foot-follow a { color: var(--color-heading); text-decoration: none; border-bottom: 1px solid var(--color-border); padding-bottom: 1px; }
.res-foot-follow a:hover { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.res-foot-follow .sep { color: var(--color-text-dim); margin: 0 4px; }
.res-foot-copy { font-size: 12.5px; }
