/* ── Brand palette ── */
:root {
  --coral:       #ec684a;
  --coral-hover: #ef8451;
  --deep-green:  #0f393b;
  --head-green:  #093532;
  --sage:        #6b8483;
  --cream:       #f5f3ee;
}

/* ── Base typography ── */
body {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  line-height: 1.8;
  color: var(--sage);
  background: #fff;
}
h1, h2, h3 { font-family: 'DM Sans', sans-serif; color: var(--head-green); font-weight: 700; }
h4.eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--coral);
}
.serif-em {
  font-family: 'Nanum Myeongjo', serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.8;
}
a { color: var(--coral); }
a:hover { color: var(--coral-hover); }

/* ── Buttons ── */
.btn-brand {
  background: var(--coral);
  color: #fff;
  border: none;
  border-radius: 37px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.6rem 1.6rem;
  transition: background 0.2s;
}
.btn-brand:hover { background: var(--coral-hover); color: #fff; }
.btn-brand-outline {
  background: transparent;
  color: var(--coral);
  border: 1px solid var(--coral);
  border-radius: 37px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.6rem 1.6rem;
  transition: background 0.2s, color 0.2s;
}
.btn-brand-outline:hover { background: var(--coral); color: #fff; }
.btn-brand-outline-white {
  background: transparent;
  color: #fff;
  border: 1px solid #fff;
  border-radius: 37px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.6rem 1.6rem;
  transition: background 0.2s, color 0.2s;
}
.btn-brand-outline-white:hover { background: rgba(255,255,255,0.15); color: #fff; }

/* ── Section helpers ── */
.section-cream  { background: var(--cream); }
.section-green  { background: var(--deep-green); color: #fff; }
.section-green h1, .section-green h2, .section-green h3,
.section-green h4.eyebrow { color: #fff; }
.section-green p, .section-green li { color: rgba(255,255,255,0.85); }
.section-white  { background: #fff; }

/* ── Navbar ── */
.pub-navbar {
  background: var(--deep-green);
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.pub-navbar .navbar-brand {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff !important;
  letter-spacing: -0.3px;
}
.pub-navbar .nav-link {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  color: rgba(255,255,255,0.8) !important;
  padding-left: 0.8rem !important;
  padding-right: 0.8rem !important;
}
.pub-navbar .nav-link:hover,
.pub-navbar .nav-link.active { color: #fff !important; }
.pub-navbar .navbar-toggler { border-color: rgba(255,255,255,0.4); }
.pub-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.8)' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ── Sponsor logos ── */
.sponsor-logo { max-height: 60px; max-width: 130px; object-fit: contain; filter: grayscale(30%); transition: filter 0.2s; }
.sponsor-logo:hover { filter: none; }

/* ── Footer ── */
.pub-footer { background: var(--deep-green); color: rgba(255,255,255,0.7); font-size: 0.9rem; }
.pub-footer a { color: rgba(255,255,255,0.7); text-decoration: none; }
.pub-footer a:hover { color: #fff; }
.pub-footer .footer-heading { color: #fff; font-weight: 600; margin-bottom: 0.6rem; }
.pub-footer hr { border-color: rgba(255,255,255,0.15); }

/* ── Hero (used on inner pages) ── */
.page-hero {
  position: relative;
  background: var(--deep-green);
  padding: 4rem 0 3rem;
  overflow: hidden;
  min-height: 320px;
}
@media (max-width: 576px) {
  .page-hero { min-height: 280px; }
}
.page-hero h1 { color: #fff; margin-bottom: 0.5rem; }
.page-hero p  { color: rgba(255,255,255,0.8); }

/* ── Testimonial cards ── */
.testimonial-card {
  background: var(--cream);
  border: none;
  border-radius: 8px;
  padding: 1.5rem;
}
.testimonial-card p { font-family: 'Nanum Myeongjo', serif; font-style: italic; color: var(--head-green); }
.testimonial-card .reviewer { font-family: 'DM Sans', sans-serif; font-weight: 700; color: var(--head-green); font-size: 0.9rem; }

/* ── Misc ── */
blockquote { border-left: 4px solid var(--coral); padding-left: 1rem; color: var(--sage); font-style: italic; }
