/* Internal pages — Kangoo Summer Fest */
.ks-page { overflow: clip; }
.ks-page .ks-section { position: relative; }
.ks-page h1 { font-size: clamp(3.25rem, 7vw, 6.75rem); line-height: .92; margin: 0; }
.ks-page h3 { line-height: 1.16; }

.ks-page-hero { color: #fff; isolation: isolate; min-height: 680px; overflow: hidden; position: relative; }
.ks-page-hero::before { border: 1px solid rgba(255,255,255,.16); border-radius: 50%; content: ""; height: 460px; position: absolute; right: -230px; top: -190px; width: 460px; }
.ks-page-hero__grid { align-items: center; display: grid; gap: clamp(50px, 8vw, 110px); grid-template-columns: minmax(0, 1.05fr) minmax(340px, .75fr); min-height: 680px; padding-block: 90px; position: relative; z-index: 2; }
.ks-page-hero__copy { max-width: 720px; }
.ks-page-hero .ks-eyebrow { color: var(--ks-lime); margin-bottom: 22px; }
.ks-page-hero .ks-eyebrow::before { background: currentColor; }
.ks-page-hero h1 { color: #fff; }
.ks-page-hero__lead { color: rgba(255,255,255,.78); font-size: clamp(1.1rem, 2vw, 1.32rem); line-height: 1.65; margin: 28px 0 36px; max-width: 650px; }
.ks-backlink { color: rgba(255,255,255,.62); display: inline-flex; font-size: .72rem; font-weight: 800; gap: 8px; letter-spacing: .08em; margin-bottom: 56px; text-decoration: none; text-transform: uppercase; }
.ks-backlink:hover { color: #fff; }

.ks-page-hero--event { background: linear-gradient(120deg, #251064 0%, #6c38d9 66%, #f72585 150%); }
.ks-event-poster { transform: rotate(2.5deg); }
.ks-event-poster img { aspect-ratio: 4 / 5; border: 10px solid rgba(255,255,255,.16); border-radius: 36px; box-shadow: 0 35px 90px rgba(18,7,54,.42); display: block; object-fit: cover; width: 100%; }
.ks-event-poster > p { background: #fff; border-radius: 18px; bottom: -22px; color: var(--ks-ink); font-size: .82rem; font-weight: 900; left: -28px; margin: 0; padding: 15px 18px; position: absolute; transform: rotate(-5deg); }
.ks-event-poster > p span { color: var(--ks-pink); }
.ks-event-poster__stamp { align-items: center; background: var(--ks-lime); border-radius: 50%; box-shadow: 0 16px 35px rgba(20,32,59,.25); color: var(--ks-ink); display: flex; flex-direction: column; height: 128px; justify-content: center; position: absolute; right: -36px; top: -30px; transform: rotate(8deg); width: 128px; z-index: 2; }
.ks-event-poster__stamp strong { font-size: 2.7rem; line-height: .8; }
.ks-event-poster__stamp span { font-size: .62rem; font-weight: 900; line-height: 1.2; margin-top: 8px; text-align: center; text-transform: uppercase; }

.ks-factbar { background: var(--ks-ink); color: #fff; }
.ks-factbar__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.ks-factbar__grid > div { border-left: 1px solid rgba(255,255,255,.14); padding: 27px 40px; }
.ks-factbar__grid > div:last-child { border-right: 1px solid rgba(255,255,255,.14); }
.ks-factbar small { color: rgba(255,255,255,.48); display: block; font-size: .64rem; font-weight: 800; letter-spacing: .12em; margin-bottom: 6px; text-transform: uppercase; }
.ks-factbar strong { font-size: 1.06rem; }

.ks-editorial-split { display: grid; gap: 80px; grid-template-columns: .8fr 1.2fr; }
.ks-editorial-split h2 { max-width: 520px; }
.ks-editorial-split > div:last-child > p:last-child { color: var(--ks-muted); font-size: 1rem; line-height: 1.75; margin-bottom: 0; }
.ks-page-intro, .ks-sponsor-intro { background: #fff; }
.ks-flow-section { background: var(--ks-cream); }
.ks-flow { counter-reset: flow; display: grid; grid-template-columns: repeat(4, 1fr); }
.ks-flow article { border-left: 1px solid rgba(20,32,59,.13); min-height: 270px; padding: 8px 30px 20px; }
.ks-flow article:last-child { border-right: 1px solid rgba(20,32,59,.13); }
.ks-flow article > span { color: var(--ks-pink); display: block; font-size: .72rem; font-weight: 900; letter-spacing: .1em; margin-bottom: 70px; }
.ks-flow h3 { font-size: 1.25rem; margin: 0 0 12px; }
.ks-flow p { color: var(--ks-muted); font-size: .9rem; line-height: 1.65; margin: 0; }
.ks-event-pillars { background: #fff; }
.ks-cards--pillars .ks-card { background: #f7f8fc; }
.ks-card__kicker { color: var(--ks-pink) !important; font-size: .66rem !important; font-weight: 900; letter-spacing: .12em; margin: 0 0 12px !important; text-transform: uppercase; }
.ks-cards--pillars h3 { font-size: 1.45rem; }

.ks-safety { background: #fff; padding-top: 0; }
.ks-safety__box { align-items: center; background: linear-gradient(120deg, #25105f, #5830bd); border-radius: 36px; display: grid; gap: 60px; grid-template-columns: .9fr 1.1fr; overflow: hidden; padding: 65px; position: relative; }
.ks-safety__box::after { background: var(--ks-pink); border-radius: 50%; content: ""; height: 190px; opacity: .25; position: absolute; right: -70px; top: -80px; width: 190px; }
.ks-safety__title { align-items: flex-start; display: flex; gap: 22px; }
.ks-safety__title > span { align-items: center; background: var(--ks-lime); border-radius: 50%; color: var(--ks-ink); display: flex; flex: 0 0 54px; font-size: 1.35rem; height: 54px; justify-content: center; }
.ks-safety h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.25rem); }
.ks-safety .ks-eyebrow { color: var(--ks-lime); }
.ks-checks--light li { color: rgba(255,255,255,.76); }
.ks-checks--light li::before { color: var(--ks-lime); }

.ks-page-cta { background: linear-gradient(115deg, var(--ks-pink), var(--ks-orange)); color: #fff; padding-block: 82px; }
.ks-page-cta__inner { align-items: center; display: flex; gap: 60px; justify-content: space-between; }
.ks-page-cta .ks-eyebrow { color: #fff; margin-bottom: 14px; }
.ks-page-cta .ks-eyebrow::before { background: #fff; }
.ks-page-cta h2 { color: #fff; font-size: clamp(2.25rem, 5vw, 4.4rem); margin-bottom: 12px; }
.ks-page-cta p { color: rgba(255,255,255,.8); margin: 0; }
.ks-page-cta--cyan { background: linear-gradient(120deg, #087f9c, var(--ks-cyan)); }
.ks-page-cta--lime { background: var(--ks-lime); color: var(--ks-ink); }
.ks-page-cta--lime .ks-eyebrow, .ks-page-cta--lime h2, .ks-page-cta--lime p { color: var(--ks-ink); }
.ks-page-cta--lime .ks-eyebrow::before { background: var(--ks-pink); }

/* Registration */
.ks-page-hero--registration { background: linear-gradient(125deg, #111b34, #182b51 68%, #136b7c); }
.ks-page-hero--registration::after { background: var(--ks-cyan); border-radius: 50%; content: ""; filter: blur(2px); height: 320px; opacity: .15; position: absolute; right: 8%; top: 16%; width: 320px; }
.ks-date-card { background: #fff; border-radius: 36px; box-shadow: 0 35px 80px rgba(4,12,30,.38); color: var(--ks-ink); padding: 40px; position: relative; transform: rotate(2deg); z-index: 2; }
.ks-date-card::before { background: var(--ks-pink); border-radius: 99px; content: ""; height: 10px; left: 40px; position: absolute; top: 0; width: 92px; }
.ks-date-card > p:first-child { color: var(--ks-purple); font-size: .7rem; font-weight: 900; letter-spacing: .14em; margin: 0 0 20px; text-transform: uppercase; }
.ks-date-card > div { align-items: center; display: flex; gap: 20px; }
.ks-date-card strong { font-size: clamp(5rem, 9vw, 7.6rem); letter-spacing: -.09em; line-height: .75; }
.ks-date-card div span { font-size: 1rem; font-weight: 900; line-height: 1.25; text-transform: uppercase; }
.ks-date-card hr { border: 0; border-top: 1px solid rgba(20,32,59,.12); margin: 34px 0 20px; }
.ks-date-card__place { align-items: center; display: flex; font-size: .86rem; font-weight: 800; gap: 9px; margin: 0 0 28px; }
.ks-date-card__place span { color: var(--ks-pink); font-size: 1.2rem; }
.ks-status-pill { align-items: center; background: #fff0f6; border-radius: 99px; color: #b81761; display: inline-flex; font-size: .7rem; font-weight: 900; gap: 8px; padding: 10px 14px; text-transform: uppercase; }
.ks-status-pill i { background: var(--ks-pink); border-radius: 50%; height: 7px; width: 7px; }
.ks-registration-state { background: #fff; }
.ks-registration-state__grid { align-items: center; display: grid; gap: 90px; grid-template-columns: 1fr .75fr; }
.ks-notice-card { align-items: flex-start; background: var(--ks-cream); border: 1px solid #f1dcc5; border-radius: 26px; display: flex; gap: 18px; padding: 28px; }
.ks-notice-card > span { align-items: center; background: var(--ks-orange); border-radius: 50%; color: #fff; display: flex; flex: 0 0 38px; font-size: 1.1rem; font-weight: 900; height: 38px; justify-content: center; }
.ks-notice-card strong { display: block; margin-bottom: 7px; }
.ks-notice-card p { color: var(--ks-muted); font-size: .9rem; line-height: 1.6; margin: 0; }
.ks-notice-card a { color: var(--ks-purple); font-weight: 800; }
.ks-info-release { background: #f5f7fb; }
.ks-info-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.ks-info-grid article { background: #fff; border: 1px solid rgba(20,32,59,.07); border-radius: 24px; min-height: 240px; padding: 30px; }
.ks-info-grid article > span { color: var(--ks-pink); display: block; font-size: .67rem; font-weight: 900; letter-spacing: .12em; margin-bottom: 45px; }
.ks-info-grid h3 { font-size: 1.28rem; margin: 0 0 12px; }
.ks-info-grid p { color: var(--ks-muted); font-size: .9rem; line-height: 1.65; margin: 0; }
.ks-info-grid__highlight { background: linear-gradient(135deg, var(--ks-purple), #8c50e9) !important; }
.ks-info-grid__highlight > span { color: var(--ks-lime) !important; }
.ks-info-grid__highlight h3 { color: #fff; }
.ks-info-grid__highlight p { color: rgba(255,255,255,.72); }
.ks-steps-section { background: #fff; }
.ks-steps { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 0; padding: 0; }
.ks-steps li { align-items: flex-start; border-top: 2px solid var(--ks-ink); display: flex; gap: 18px; padding: 25px 5px 0; }
.ks-steps li > span { align-items: center; background: var(--ks-lime); border-radius: 50%; display: flex; flex: 0 0 38px; font-weight: 900; height: 38px; justify-content: center; }
.ks-steps h3 { font-size: 1.15rem; margin: 3px 0 6px; }
.ks-steps p { color: var(--ks-muted); font-size: .88rem; line-height: 1.55; margin: 0; }

/* Sponsors */
.ks-page-hero--sponsor { background: linear-gradient(125deg, #e52a78, #ff643c 72%, #ff9d3f); }
.ks-page-hero--sponsor .ks-eyebrow { color: #fff; }
.ks-page-hero__orb { border: 1px solid rgba(255,255,255,.24); border-radius: 50%; position: absolute; }
.ks-page-hero__orb--one { height: 360px; left: -190px; top: 70px; width: 360px; }
.ks-page-hero__orb--two { bottom: -270px; height: 540px; right: 24%; width: 540px; }
.ks-brand-stage { position: relative; transform: rotate(3deg); }
.ks-brand-stage__card { background: var(--ks-lime); border-radius: 34px; box-shadow: 0 30px 70px rgba(124,24,57,.3); color: var(--ks-ink); min-height: 370px; padding: 46px; position: relative; }
.ks-brand-stage__card small { display: block; font-size: .7rem; font-weight: 900; letter-spacing: .14em; margin-bottom: 65px; text-transform: uppercase; }
.ks-brand-stage__card strong { display: block; font-size: clamp(2.3rem, 4vw, 3.7rem); letter-spacing: -.06em; line-height: .95; }
.ks-brand-stage__card > span { bottom: 30px; color: var(--ks-pink); font-size: 2.6rem; position: absolute; right: 38px; }
.ks-brand-stage > p { background: #fff; border-radius: 18px; bottom: -24px; color: var(--ks-ink); font-size: .75rem; font-weight: 900; left: -28px; margin: 0; padding: 15px 18px; position: absolute; transform: rotate(-5deg); }
.ks-sponsor-opportunities { background: var(--ks-cream); }
.ks-opportunity-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, 1fr); }
.ks-opportunity { align-items: flex-start; background: #fff; border-radius: 26px; display: flex; gap: 24px; min-height: 240px; padding: 34px; }
.ks-opportunity > span { align-items: center; background: #f5efff; border-radius: 17px; color: var(--ks-purple); display: flex; flex: 0 0 54px; font-size: 1.45rem; height: 54px; justify-content: center; }
.ks-opportunity h3 { font-size: 1.45rem; margin: 0 0 12px; }
.ks-opportunity div > p:last-child { color: var(--ks-muted); line-height: 1.65; margin: 0; }
.ks-opportunity--wide { grid-column: span 2; min-height: 210px; }
.ks-opportunity--hot { background: var(--ks-ink); }
.ks-opportunity--hot > span { background: rgba(255,255,255,.12); color: var(--ks-lime); }
.ks-opportunity--hot h3 { color: #fff; }
.ks-opportunity--hot div > p:last-child { color: rgba(255,255,255,.7); }
.ks-partnership { background: #fff; }
.ks-partnership__grid { display: grid; gap: 90px; grid-template-columns: .85fr 1.15fr; }
.ks-partnership__steps { list-style: none; margin: 0; padding: 0; }
.ks-partnership__steps li { align-items: start; border-top: 1px solid rgba(20,32,59,.13); display: grid; gap: 25px; grid-template-columns: 55px 1fr; padding: 24px 0; }
.ks-partnership__steps li:last-child { border-bottom: 1px solid rgba(20,32,59,.13); }
.ks-partnership__steps li > span { color: var(--ks-pink); font-size: .72rem; font-weight: 900; letter-spacing: .1em; padding-top: 4px; }
.ks-partnership__steps h3 { font-size: 1.16rem; margin: 0 0 6px; }
.ks-partnership__steps p { color: var(--ks-muted); font-size: .9rem; margin: 0; }
.ks-contact-band { background: var(--ks-ink); color: #fff; padding-block: 100px; }
.ks-contact-band__grid { align-items: center; display: grid; gap: 90px; grid-template-columns: 1fr .75fr; }
.ks-contact-band .ks-eyebrow { color: var(--ks-lime); }
.ks-contact-band h2 { color: #fff; font-size: clamp(2.5rem, 5vw, 4.75rem); }
.ks-contact-band__grid > div:first-child > p:last-child { color: rgba(255,255,255,.68); font-size: 1.05rem; line-height: 1.7; max-width: 620px; }
.ks-contact-card { background: #fff; border-radius: 28px; color: var(--ks-ink); padding: 35px; }
.ks-contact-card small { color: var(--ks-pink); display: block; font-size: .68rem; font-weight: 900; letter-spacing: .12em; margin-bottom: 12px; text-transform: uppercase; }
.ks-contact-card strong { display: block; font-size: clamp(1.5rem, 3vw, 2.1rem); letter-spacing: -.04em; }
.ks-contact-card p { color: var(--ks-muted); font-size: .9rem; line-height: 1.6; margin: 14px 0 25px; }

/* Editions */
.ks-page-hero--editions { background: linear-gradient(125deg, #40209a, #712fce 66%, #ba2ba5); }
.ks-editions-number { align-items: center; display: grid; grid-template-columns: auto 1fr; position: relative; }
.ks-editions-number strong { color: var(--ks-lime); font-size: clamp(10rem, 20vw, 17rem); font-weight: 900; grid-column: 1 / 3; letter-spacing: -.13em; line-height: .72; text-shadow: 14px 14px 0 rgba(29,13,70,.22); }
.ks-editions-number > span { background: #fff; border-radius: 50%; color: var(--ks-ink); font-size: .7rem; font-weight: 900; height: 82px; left: -20px; padding-top: 25px; position: absolute; text-align: center; text-transform: uppercase; top: -36px; transform: rotate(-8deg); width: 82px; z-index: 2; }
.ks-editions-number p { color: #fff; font-size: .8rem; font-weight: 900; line-height: 1.2; margin: 24px 0 0; text-transform: uppercase; }
.ks-featured-edition { background: #fff; }
.ks-featured-edition__grid { align-items: center; display: grid; gap: 75px; grid-template-columns: 1.1fr .9fr; }
.ks-featured-edition__image { position: relative; }
.ks-featured-edition__image img { border-radius: 30px; box-shadow: var(--ks-shadow); display: block; width: 100%; }
.ks-featured-edition__image > span { background: var(--ks-lime); border-radius: 99px; color: var(--ks-ink); font-size: .7rem; font-weight: 900; left: 24px; padding: 11px 16px; position: absolute; text-transform: uppercase; top: 24px; }
.ks-editions-archive { background: #f5f7fb; }
.ks-editions-list { border-top: 1px solid rgba(20,32,59,.12); }
.ks-editions-list__item { align-items: center; border-bottom: 1px solid rgba(20,32,59,.12); display: grid; gap: 35px; grid-template-columns: 135px minmax(220px, .65fr) 1fr; padding: 32px 0; }
.ks-editions-list__year small { color: var(--ks-pink); display: block; font-size: .66rem; font-weight: 900; letter-spacing: .1em; margin-bottom: 8px; text-transform: uppercase; }
.ks-editions-list__year strong { font-size: 2rem; letter-spacing: -.05em; }
.ks-editions-list__media { aspect-ratio: 16 / 8.5; border-radius: 18px; overflow: hidden; }
.ks-editions-list__media img { height: 100%; object-fit: cover; width: 100%; }
.ks-editions-list__media.is-contain { background: #fff; }
.ks-editions-list__media.is-contain img { object-fit: contain; }
.ks-editions-list__media.is-placeholder { align-items: center; background: linear-gradient(135deg, var(--ks-purple), var(--ks-pink)); color: #fff; display: flex; flex-direction: column; justify-content: center; }
.ks-editions-list__media.is-placeholder span { font-size: 1.8rem; font-weight: 900; letter-spacing: -.06em; }
.ks-editions-list__media.is-placeholder p { color: rgba(255,255,255,.7); font-size: .58rem; font-weight: 900; letter-spacing: .11em; margin: 6px 0 0; text-transform: uppercase; }
.ks-editions-list__body h3 { font-size: 1.45rem; margin: 0 0 8px; }
.ks-editions-list__body > p:not(.ks-card__kicker) { color: var(--ks-muted); font-size: .9rem; line-height: 1.6; margin: 0 0 14px; }
.ks-source--muted { color: #8a94a8; }

@media (max-width: 920px) {
  .ks-page-hero, .ks-page-hero__grid { min-height: auto; }
  .ks-page-hero__grid { grid-template-columns: 1fr; padding-block: 70px 90px; }
  .ks-page-hero__visual, .ks-brand-stage, .ks-editions-number { margin-inline: auto; max-width: 520px; width: 100%; }
  .ks-event-poster img { aspect-ratio: 16 / 11; }
  .ks-editorial-split, .ks-registration-state__grid, .ks-partnership__grid, .ks-contact-band__grid, .ks-featured-edition__grid { gap: 45px; grid-template-columns: 1fr; }
  .ks-flow { grid-template-columns: repeat(2, 1fr); }
  .ks-flow article:nth-child(3) { border-top: 1px solid rgba(20,32,59,.13); }
  .ks-flow article:nth-child(4) { border-right: 1px solid rgba(20,32,59,.13); border-top: 1px solid rgba(20,32,59,.13); }
  .ks-safety__box { grid-template-columns: 1fr; padding: 45px; }
  .ks-info-grid { grid-template-columns: repeat(2, 1fr); }
  .ks-editions-list__item { grid-template-columns: 105px .75fr 1fr; }
}

@media (max-width: 620px) {
  .ks-page h1 { font-size: clamp(3rem, 15vw, 4.75rem); }
  .ks-page-hero__grid { gap: 60px; padding-block: 52px 75px; }
  .ks-backlink { margin-bottom: 42px; }
  .ks-page-hero__lead { margin-block: 22px 30px; }
  .ks-event-poster { transform: rotate(1deg); }
  .ks-event-poster__stamp { height: 96px; right: -6px; width: 96px; }
  .ks-event-poster__stamp strong { font-size: 2rem; }
  .ks-event-poster > p, .ks-brand-stage > p { left: 10px; }
  .ks-factbar__grid { grid-template-columns: 1fr; padding-block: 6px; }
  .ks-factbar__grid > div { border-bottom: 1px solid rgba(255,255,255,.12); border-left: 0; padding: 19px 4px; }
  .ks-factbar__grid > div:last-child { border-bottom: 0; border-right: 0; }
  .ks-editorial-split { gap: 25px; }
  .ks-flow { grid-template-columns: 1fr; }
  .ks-flow article { border-left: 0; border-top: 1px solid rgba(20,32,59,.13); display: grid; gap: 20px; grid-template-columns: 42px 1fr; min-height: auto; padding: 26px 0; }
  .ks-flow article:last-child, .ks-flow article:nth-child(4) { border-right: 0; }
  .ks-flow article > span { margin: 3px 0 0; }
  .ks-safety__box { border-radius: 26px; padding: 32px 24px; }
  .ks-safety__title { flex-direction: column; }
  .ks-page-cta__inner { align-items: stretch; flex-direction: column; gap: 32px; text-align: left; }
  .ks-page-cta .ks-actions { width: 100%; }
  .ks-date-card { padding: 32px 25px; }
  .ks-date-card strong { font-size: 5.2rem; }
  .ks-info-grid, .ks-steps, .ks-opportunity-grid { grid-template-columns: 1fr; }
  .ks-info-grid article { min-height: 210px; }
  .ks-steps { gap: 32px; }
  .ks-opportunity--wide { grid-column: auto; }
  .ks-opportunity { flex-direction: column; min-height: auto; padding: 28px; }
  .ks-brand-stage__card { min-height: 320px; padding: 35px 28px; }
  .ks-contact-band { padding-block: 75px; }
  .ks-contact-card { padding: 28px 22px; }
  .ks-editions-number { max-width: 350px; }
  .ks-editions-list__item { align-items: start; gap: 18px; grid-template-columns: 1fr; padding: 38px 0; }
  .ks-editions-list__year { align-items: center; display: flex; gap: 12px; }
  .ks-editions-list__year small { margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ks-event-poster, .ks-date-card, .ks-brand-stage { transform: none; }
}
