/* ==========================================================================
   Resounding Hope — Base styles
   Font faces, resets, typography, focus states, base utilities.
   ========================================================================== */

/* ---- Self-hosted fonts (Latin + Latin-Extended, covers FR/HT accents) ---- */
@font-face{
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+20AC, U+2122;
}
@font-face{
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+1E00-1EFF, U+2020, U+2113;
}
@font-face{
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/assets/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+20AC, U+2122;
}
@font-face{
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+1E00-1EFF, U+2020, U+2113;
}

/* ---- Resets on top of Bootstrap ---- */
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

body{
  font-family: var(--rh-font-body);
  color: var(--rh-ink);
  background-color: var(--rh-cream);
}

h1, h2, h3, h4, .display-font{
  font-family: var(--rh-font-display);
  font-weight: 600;
  color: var(--rh-gray-900);
  letter-spacing: -0.01em;
}
h1, .h1{ font-size: var(--rh-fs-h1); line-height: 1.08; }
h2, .h2{ font-size: var(--rh-fs-h2); line-height: 1.14; }
h3, .h3{ font-size: var(--rh-fs-h3); line-height: 1.25; }

.lead{ font-size: var(--rh-fs-lead); font-weight: 400; color: var(--rh-gray-900); }

a{ text-decoration-thickness: 1px; text-underline-offset: 2px; }

/* Visible, high-contrast focus ring for keyboard users */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline: 3px solid var(--rh-blue);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

/* Skip-to-content link */
.skip-link{
  position: absolute;
  top: -48px;
  left: 0.5rem;
  z-index: 2000;
  background: var(--rh-blue);
  color: #fff;
  padding: 0.65rem 1.25rem;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  transition: top 0.15s ease;
}
.skip-link:focus{
  top: 0;
  color: #fff;
}

/* ---- Layout utilities ---- */
.container-rh{
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media (min-width: 768px){
  .container-rh{ padding-inline: 2rem; }
}

.section-py{ padding-block: var(--space-7); }
.section-py-lg{ padding-block: var(--space-8); }
@media (min-width: 992px){
  .section-py{ padding-block: var(--space-8); }
  .section-py-lg{ padding-block: var(--space-9); }
}

.bg-cream{ background-color: var(--rh-cream); }
.bg-cream-deep{ background-color: var(--rh-cream-deep); }
.bg-ink{ background-color: var(--rh-ink); color: var(--rh-cream); }
.bg-blue{ background-color: var(--rh-blue); color: #fff; }
.bg-crimson{ background-color: var(--rh-crimson); color: #fff; }
.bg-orange{ background-color: var(--rh-orange); color: var(--rh-ink); }

.text-crimson{ color: var(--rh-crimson-dark); }
.text-blue{ color: var(--rh-blue-dark); }
.text-orange{ color: var(--rh-orange-dark); }
.text-muted-warm{ color: var(--rh-gray-600); }

/* Unified photo treatment: subtle, uniform grade across varying source photos */
.photo-grade{
  filter: saturate(1.03) contrast(1.02);
}
img{ max-width: 100%; height: auto; }
