:root {
  --page-max: 1760px;
  --content-max: 1440px;
  --gutter: clamp(18px, 4vw, 72px);
  --section-space: clamp(56px, 7vw, 104px);
}
body { overflow-x: hidden; }
.site-header {
  width: 100%;
  height: 76px;
  padding-inline: max(var(--gutter), calc((100vw - var(--page-max)) / 2));
}
.hero {
  min-height: auto;
  display: block;
  padding: clamp(18px, 3vw, 44px) var(--gutter) clamp(48px, 6vw, 88px);
  background: #fff;
}
.hero-shell {
  width: min(100%, var(--page-max));
  min-height: clamp(500px, 66vh, 680px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(360px, .84fr) minmax(520px, 1.16fr);
  overflow: hidden;
  border-radius: clamp(24px, 3vw, 44px);
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 77, 63, .11);
}
.hero-copy {
  padding: clamp(48px, 6vw, 96px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-copy:after { font-size: 5rem; }
.hero h1 {
  max-width: 720px;
  margin: .32em 0 .28em;
  font-size: clamp(2.5rem, 4.2vw, 5rem);
  line-height: 1.16;
}
.hero p { max-width: 650px; margin: 0; font-size: clamp(1rem, 1.25vw, 1.22rem); }
.actions { flex-wrap: wrap; margin: 2rem 0 1.6rem; }
.stats { gap: 10px 26px; font-size: .92rem; }
.hero-media { min-height: 0; position: relative; display: block; overflow: hidden; padding: 0; background: linear-gradient(135deg,#d9eec9,#f7d36e); }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-placeholder { width: 100%; height: 100%; min-height: 480px; display: grid; place-items: end center; padding: 28px; }
.hero-placeholder span { padding: 8px 14px; border-radius: 99px; background: rgba(255,255,255,.88); }
.section {
  width: min(calc(100% - (2 * var(--gutter))), var(--content-max));
  max-width: none;
  padding: var(--section-space) 0;
  margin-inline: auto;
}
.section > header { margin-bottom: clamp(24px, 3vw, 38px); gap: 24px; }
.section > header > div { max-width: 760px; }
.section > header p { margin: .5rem 0 0; color: #53645d; }
.grid { gap: clamp(18px, 2vw, 28px); }
.pathway-visual { margin-bottom: 30px; }
.pathway-visual img { max-height: 680px; }
.pathway article { min-width: 0; padding: clamp(22px, 2.2vw, 34px); }
.content-section .card { min-width: 0; transition: transform .2s ease, box-shadow .2s ease; }
.content-section .card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(15,77,63,.15); }
.content-section .card h3 { margin: 18px 0 8px; font-size: clamp(1.05rem, 1.25vw, 1.3rem); line-height: 1.55; }
.content-section .card p { margin: 0; font-size: .95rem; line-height: 1.85; }
#services .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#businesses .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#events .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#events .card:only-child { max-width: 820px; }
#markets .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#markets .media { aspect-ratio: 16 / 10; }
.request-cta {
  width: min(calc(100% - (2 * var(--gutter))), 1280px);
  max-width: none;
  padding: clamp(34px, 4vw, 60px);
  margin: clamp(40px, 7vw, 90px) auto;
}
.site-footer { padding-inline: max(var(--gutter), calc((100vw - var(--content-max)) / 2)); }
@media (max-width: 1180px) {
  .hero-shell { grid-template-columns: .9fr 1.1fr; min-height: 560px; }
  .hero-copy { padding: clamp(40px, 5vw, 64px); }
  .four, #markets .grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .site-header { height: 68px; }
  .hero { padding: 0 0 54px; }
  .hero-shell { width: 100%; min-height: auto; grid-template-columns: 1fr; border-radius: 0 0 30px 30px; }
  .hero-media { order: -1; aspect-ratio: 16 / 10; }
  .hero-copy { padding: 40px var(--gutter) 46px; }
  .hero h1 { font-size: clamp(2.2rem, 8vw, 3.7rem); }
  #services .grid, #events .grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .section { padding-block: clamp(50px, 8vw, 76px); }
}
@media (max-width: 640px) {
  :root { --gutter: 18px; }
  .hero-media { aspect-ratio: 4 / 3; }
  .hero-copy { padding-top: 34px; }
  .hero h1 { font-size: clamp(2rem, 11vw, 3rem); }
  .actions { display: grid; grid-template-columns: 1fr; }
  .button { min-height: 48px; }
  .stats { display: grid; grid-template-columns: 1fr 1fr; font-size: .84rem; }
  .section > header { align-items: flex-start; flex-direction: column; }
  .four, .three, .cards, #services .grid, #businesses .grid, #events .grid, #markets .grid { grid-template-columns: 1fr; }
  .pathway-visual { margin-inline: -18px; border-radius: 0; }
  .pathway-visual img { aspect-ratio: 4 / 3; }
  .media, #markets .media { aspect-ratio: 16 / 10; }
  .request-cta { display: grid; gap: 22px; margin-inline: 18px; width: auto; border-radius: 22px; }
}
@media (min-width: 1800px) {
  .hero h1 { font-size: 4.8rem; }
  .section { --content-max: 1600px; }
  #services .grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
