/*
Theme Name: KTC Coalition
Description: A block-theme child of Twenty Twenty-Five for the Kitchen Table Coalition.
Author: Kitchen Table Coalition
Template: twentytwentyfive
Version: 1.0.0
Text Domain: ktc-coalition
*/

:root {
  --ktc-cream: #faf9f4;
  --ktc-navy: #102e4a;
  --ktc-blue: #0b4268;
  --ktc-green: #3f713c;
  --ktc-orange: #c65a19;
  --ktc-red: #a92525;
  --ktc-purple: #58336f;
  --ktc-pale: #eaf2e3;
}

html { scroll-behavior: smooth; }
body { background: var(--ktc-cream); color: var(--ktc-navy); }
.ktc-site-shell { overflow: hidden; }
.ktc-wrap { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.ktc-header { background: var(--ktc-blue); color: #fff; position: relative; z-index: 10; }
.ktc-header-inner { min-height: 64px; display: flex; align-items: center; gap: 24px; }
.ktc-wordmark { color: #fff !important; font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ktc-nav { display: flex; align-items: center; justify-content: flex-end; gap: 25px; flex: 1; }
.ktc-nav a { color: #fff; font-family: Arial, sans-serif; font-size: 14px; text-decoration: none; }
.ktc-nav a:hover, .ktc-nav a:focus { text-decoration: underline; text-underline-offset: 5px; }
.ktc-header .ktc-submit { background: #56864d; border-radius: 999px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .025em; padding: 13px 22px; text-decoration: none; white-space: nowrap; }
.ktc-hero { background-image: linear-gradient(90deg, rgba(250,249,244,.03), rgba(250,249,244,.03)), url('assets/ktc-concept.jpeg'); background-position: right top; background-repeat: no-repeat; background-size: 200% auto; min-height: clamp(410px, 42vw, 620px); position: relative; }
.ktc-hero-copy { padding-top: clamp(36px, 6vw, 80px); width: min(420px, 43%); }
.ktc-hero h1 { color: var(--ktc-navy); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(40px, 5.2vw, 70px); line-height: .92; margin: 0 0 12px; }
.ktc-crosswalk { color: var(--ktc-green); font-family: Arial, sans-serif; font-size: clamp(26px, 3vw, 42px); font-weight: 800; letter-spacing: .05em; margin: 0 0 16px; }
.ktc-hero-lede { color: #172a3b; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(17px, 1.7vw, 24px); line-height: 1.25; margin: 0; }
.ktc-living { background: #fff; padding: 18px 0 42px; }
.ktc-section-title { color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: clamp(25px, 3vw, 38px); font-weight: 800; letter-spacing: .18em; margin: 0 0 7px; text-align: center; }
.ktc-eyebrow { color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .24em; margin: 0 0 28px; text-align: center; }
.ktc-categories { display: grid; gap: 14px; grid-template-columns: repeat(5, 1fr); }
.ktc-category { padding: 0 11px 8px; text-align: center; }
.ktc-icon { align-items: center; border-radius: 50%; color: #fff; display: flex; font-family: Arial, sans-serif; font-size: 34px; height: 72px; justify-content: center; margin: 0 auto 10px; width: 72px; }
.ktc-category h3 { border-bottom: 3px solid currentColor; display: inline-block; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; margin: 0 0 8px; padding-bottom: 5px; }
.ktc-category p { color: #142c40; font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.25; margin: 0; }
.ktc-events { color: var(--ktc-blue); }.ktc-events .ktc-icon { background: var(--ktc-blue); }
.ktc-news { color: var(--ktc-green); }.ktc-news .ktc-icon { background: var(--ktc-green); }
.ktc-resources { color: var(--ktc-orange); }.ktc-resources .ktc-icon { background: var(--ktc-orange); }
.ktc-needs { color: var(--ktc-red); }.ktc-needs .ktc-icon { background: var(--ktc-red); }
.ktc-volunteer { color: var(--ktc-purple); }.ktc-volunteer .ktc-icon { background: var(--ktc-purple); }
.ktc-voice { background: var(--ktc-pale); padding: 20px 0; }
.ktc-voice-inner { align-items: center; display: grid; gap: 24px; grid-template-columns: 100px 1fr auto; }
.ktc-megaphone { color: var(--ktc-green); font-size: 64px; line-height: 1; transform: rotate(-12deg); }
.ktc-voice h2 { color: var(--ktc-navy); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(28px, 3.1vw, 43px); line-height: .95; margin: 0 0 6px; }
.ktc-voice p { color: #24384a; font-family: Georgia, 'Times New Roman', serif; font-size: 16px; margin: 0; }
.ktc-button { background: var(--ktc-green); border-radius: 999px; color: #fff !important; display: inline-block; font-family: Arial, sans-serif; font-size: 14px; font-weight: 800; letter-spacing: .04em; padding: 15px 30px; text-decoration: none; white-space: nowrap; }
.ktc-highlights { background: #fff; padding: 18px 0 34px; }
.ktc-highlights-head { align-items: center; display: flex; justify-content: center; margin-bottom: 14px; position: relative; }
.ktc-highlights-head h2 { color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: 18px; letter-spacing: .12em; margin: 0; }
.ktc-calendar-link { color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: 11px; position: absolute; right: 0; text-decoration: none; }
.ktc-event-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, 1fr); }
.ktc-event { background: #fff; border: 1px solid #d8d8d2; border-radius: 5px; box-shadow: 0 2px 7px rgba(16,46,74,.08); overflow: hidden; position: relative; }
.ktc-event-image { background: linear-gradient(135deg, #f2b55e, #6ca4b7 58%, #234a69); height: 98px; }
.ktc-event:nth-child(2) .ktc-event-image { background: linear-gradient(150deg, #2b160d, #b56025 50%, #335640); }
.ktc-event:nth-child(3) .ktc-event-image { background: radial-gradient(circle at 55% 45%, #f8d69a 0 20%, #e5a86b 22% 37%, #8dc6e6 39%); }
.ktc-event:nth-child(4) .ktc-event-image { background: linear-gradient(145deg, #d47743, #f1c677 45%, #275c61); }
.ktc-date { background: #fff; border: 3px solid var(--ktc-blue); border-radius: 5px; color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: 11px; font-weight: 800; left: 8px; line-height: 1; padding: 5px 7px; position: absolute; text-align: center; top: 8px; }
.ktc-date strong { display: block; font-size: 22px; }
.ktc-event-body { padding: 11px 12px 14px; }
.ktc-event h3 { color: var(--ktc-navy); font-family: Georgia, 'Times New Roman', serif; font-size: 18px; line-height: 1.05; margin: 0 0 6px; }
.ktc-event p { color: #24384a; font-family: Arial, sans-serif; font-size: 12px; line-height: 1.4; margin: 0; }
.ktc-rally { background: var(--ktc-cream); padding: 28px 0 32px; text-align: center; }
.ktc-rally h2 { color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: clamp(24px, 3vw, 36px); letter-spacing: .13em; margin: 0 0 13px; }
.ktc-rally p { color: var(--ktc-navy); font-family: Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .28em; margin: 0; }
.ktc-footer { background: var(--ktc-blue); color: #fff; padding: 25px 0; }
.ktc-footer-inner { align-items: center; display: flex; gap: 24px; justify-content: space-between; }
.ktc-footer p { font-family: Arial, sans-serif; font-size: 13px; margin: 0; }
.ktc-footer a { color: #fff; }

@media (max-width: 950px) {
  .ktc-header-inner { align-items: flex-start; flex-direction: column; gap: 10px; padding-block: 15px; }
  .ktc-nav { flex-wrap: wrap; justify-content: flex-start; gap: 12px 20px; }
  .ktc-header .ktc-submit { position: absolute; right: 20px; top: 12px; }
  .ktc-categories { grid-template-columns: repeat(3, 1fr); row-gap: 28px; }
  .ktc-voice-inner { grid-template-columns: 70px 1fr; }
  .ktc-voice .ktc-button { grid-column: 2; justify-self: start; }
  .ktc-event-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .ktc-wrap { width: min(100% - 28px, 1180px); }
  .ktc-header .ktc-submit { display: none; }
  .ktc-nav { gap: 9px 15px; padding-bottom: 4px; }
  .ktc-nav a { font-size: 13px; }
  .ktc-hero { background-position: 76% top; background-size: auto 100%; min-height: 470px; }
  .ktc-hero::after { background: linear-gradient(90deg, rgba(250,249,244,.96) 0 48%, rgba(250,249,244,.25) 76%, transparent); content: ''; inset: 0; position: absolute; }
  .ktc-hero-copy { position: relative; width: 57%; z-index: 1; }
  .ktc-hero h1 { font-size: 38px; }
  .ktc-crosswalk { font-size: 23px; }
  .ktc-hero-lede { font-size: 16px; }
  .ktc-section-title { font-size: 23px; letter-spacing: .1em; }
  .ktc-eyebrow { font-size: 10px; letter-spacing: .14em; }
  .ktc-categories { grid-template-columns: 1fr; }
  .ktc-category { padding-block: 7px; }
  .ktc-voice-inner { grid-template-columns: 1fr; text-align: center; }
  .ktc-megaphone { margin: auto; }
  .ktc-voice .ktc-button { grid-column: 1; justify-self: center; }
  .ktc-calendar-link { display: block; margin-top: 7px; position: static; }
  .ktc-highlights-head { display: block; text-align: center; }
  .ktc-event-grid { grid-template-columns: 1fr; }
  .ktc-footer-inner { align-items: flex-start; flex-direction: column; }
}

/* KTC hero and icon corrections */
.ktc-hero { background-position: right -87px; min-height: clamp(430px, 46vw, 627px); }
.ktc-hero-copy { display: none; }
.ktc-megaphone { font-size: 0; transform: none; }
.ktc-megaphone::before { content: "📣"; display: block; font-size: 64px; line-height: 1; }
@media (max-width: 640px) {
  .ktc-hero { background-position: 76% -48px; min-height: 430px; }
  .ktc-hero::after { display: none; }
}
