/*
 * Extracted from mu-plugins/kalon-learn-to-surf-page.php on 2026-04-10
 * (Phase 4 of the kalon-theme refactor). Sources design tokens via
 * _kalon-design-system.php which still emits inline.
 */


/* ── Hero ──────────────────────────────────────────────── */
.klts-hero {
    position: relative;
    min-height: 70svh;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    text-align: center;
    color: #fff;
    overflow: hidden;
    padding: 0 24px 64px;
}
.klts-hero__bg {
    position: absolute; inset: 0;
    background-size: cover;
    background-position: center 40%;
    z-index: 0;
}
.klts-hero__bg::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.1) 100%);
}
.klts-hero__content {
    position: relative; z-index: 1;
    max-width: 720px;
}
.klts-hero__eyebrow {
    font-family: var(--kalon-font-body);
    font-size: 13px;
    letter-spacing: .18em;
    text-transform: uppercase;
    opacity: .85;
    margin-bottom: 16px;
}
.klts-hero h1,
.klts-hero .klts-hero__eyebrow,
.klts-hero .klts-hero__sub {
    color: #fff;
}
.klts-hero h1 {
    font-family: var(--kalon-font-heading);
    font-size: clamp(32px, 5vw, 52px);
    font-weight: 500;
    line-height: 1.15;
    margin: 0 0 16px;
    text-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.klts-hero__sub {
    font-family: var(--kalon-font-body);
    font-size: 17px;
    line-height: 1.6;
    opacity: .9;
    max-width: 560px;
    margin: 0 auto;
}

/* ── Splits ────────────────────────────────────────────── */
.klts-split {
    padding: 80px 24px;
}
.klts-split__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto;
}
.klts-split--reverse .klts-split__grid {
    direction: rtl;
}
.klts-split--reverse .klts-split__grid > * {
    direction: ltr;
}
.klts-split__text {
    max-width: 520px;
}
.klts-split__text p {
    font-family: var(--kalon-font-body);
    font-size: 16px;
    line-height: 1.75;
    color: var(--kalon-text);
    margin: 0 0 18px;
}
.klts-split__text p:last-child { margin-bottom: 0; }
.klts-split__image img {
    width: 100%;
    border-radius: var(--kalon-radius);
    aspect-ratio: 4/3;
    object-fit: cover;
}
.klts-pillar__link {
    display: inline-block;
    margin-top: 16px;
    font-family: var(--kalon-font-body);
    font-size: 14px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--kalon-teal);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color .2s;
}
.klts-pillar__link:hover { border-color: var(--kalon-teal); }

/* ── Timeline ──────────────────────────────────────────── */
.klts-timeline {
    padding: 80px 24px;
}
.klts-timeline__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    max-width: 1100px;
    margin: 32px auto 0;
}
.klts-day {
    background: var(--kalon-bg-white, #fff);
    border-radius: var(--kalon-radius);
    padding: 28px 24px;
    border-top: 3px solid var(--kalon-teal);
}
.klts-day__label {
    font-family: var(--kalon-font-heading);
    font-size: 14px;
    color: var(--kalon-teal);
    letter-spacing: .08em;
    margin-bottom: 10px;
}
.klts-day h3 {
    font-family: var(--kalon-font-heading);
    font-size: 19px;
    font-weight: 400;
    margin: 0 0 10px;
    color: var(--kalon-text);
}
.klts-day p {
    font-family: var(--kalon-font-body);
    font-size: 15px;
    line-height: 1.7;
    color: var(--kalon-text);
    margin: 0;
}

/* ── CTA ───────────────────────────────────────────────── */
.klts-cta {
    padding: 80px 24px;
    text-align: center;
}
.klts-cta__sub {
    font-family: var(--kalon-font-body);
    font-size: 17px;
    line-height: 1.6;
    color: var(--kalon-text);
    max-width: 560px;
    margin: 0 auto 32px;
}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 1024px) {
    .klts-timeline__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .klts-hero { min-height: 60svh; padding-bottom: 48px; }
    .klts-split__grid { grid-template-columns: 1fr; gap: 40px; }
    .klts-split--reverse .klts-split__grid { direction: ltr; }
    .klts-timeline__grid { grid-template-columns: 1fr; }
    .klts-split,
    .klts-timeline,
    .klts-cta { padding: 56px 20px; }
}
