/* ==========================================================================
   home-alt.css — scoped styles for the alternate homepage (page "home-alt").
   Loaded ONLY on that page, AFTER home.css. Every rule is scoped under
   .home-alt so nothing here can reach the real front page or any other page.
   Reuses the global DEKA token set (--deka-*, --hm-*) defined in tokens/home.
   ========================================================================== */

/* Contain full-bleed sections horizontally at the wrapper (overflow-y visible →
   not a scroll container, so it won't break any sticky descendants). */
.home-alt { overflow-x: clip; }

/* Shared buttons ---------------------------------------------------------- */
.home-alt .ha-btn,
.home-alt .ha-btn-ghost {
    display: inline-flex; align-items: center; gap: 12px;
    padding: 16px 26px; border-radius: 999px;
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.18em;
    text-transform: uppercase; font-weight: 500; white-space: nowrap;
    border: 1px solid var(--deka-ink); cursor: pointer;
    transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.home-alt .ha-btn { background: var(--deka-ink); color: var(--deka-ivory); }
.home-alt .ha-btn:hover { background: var(--deka-sapphire); border-color: var(--deka-sapphire); transform: translateY(-1px); }
.home-alt .ha-btn-ghost { background: transparent; color: var(--deka-ink); border-color: var(--deka-rule); }
.home-alt .ha-btn-ghost:hover { background: var(--deka-ink); color: var(--deka-ivory); border-color: var(--deka-ink); }
.home-alt .ha-btn svg, .home-alt .ha-btn-ghost svg { flex: none; }

/* ==========================================================================
   A — DEKA CIRCLE INTRO  (immediately after hero)
   Form sits on a full-width dark-purple band that catches the hero fade;
   the DEKA-builds row sits on ivory below with generous top spacing.
   ========================================================================== */
.home-alt .ha-circle { background: var(--deka-ivory); padding: 0; }
/* dark-purple band behind the lead form — blends into the hero bottom-fade */
.home-alt .ha-leadbar-band {
    background: var(--deka-ink);
    padding: 0 0 clamp(44px,6vh,72px);
}
/* ivory area with the circle intro — extra top spacing off the purple band */
.home-alt .ha-circle-lower {
    padding-top: clamp(72px,9vh,120px);
    padding-bottom: clamp(80px,10vh,120px);
}
.home-alt .ha-circle-row {
    display: grid; grid-template-columns: auto minmax(0, 600px); justify-content: center;
    align-items: center; gap: clamp(32px, 5vw, 72px);
}
.home-alt .ha-circle-copy .ha-btn { margin-top: 28px; }
.home-alt .ha-circle-img {
    width: 280px; height: 280px; border-radius: 50%; display: block; flex: none;
    box-shadow: 0 20px 44px -22px rgba(4, 5, 65, 0.40);
}
.home-alt .ha-circle-copy { max-width: none; }
.home-alt .ha-circle-title {
    margin: 0; font-family: var(--deka-serif); font-weight: 300;
    font-size: clamp(34px, 4vw, 52px); line-height: 1.05; letter-spacing: -0.02em;
    color: var(--deka-ink); text-wrap: balance;
}
@media (min-width: 1000px) { .home-alt .ha-circle-title { font-size: var(--deka-h2); } }
.home-alt .ha-circle-sub {
    margin: 14px 0 0; font-family: var(--deka-serif); font-style: italic; font-weight: 300;
    font-size: clamp(18px, 1.7vw, 22px); line-height: 1.4; color: var(--deka-sapphire);
}
.home-alt .ha-circle-body {
    margin: 18px 0 0; max-width: 60ch;
    font-size: 16.5px; line-height: 1.7; color: var(--hm-muted);
}
.home-alt .ha-circle-copy p em { font-style: italic; color: var(--deka-sapphire); }
@media (max-width: 900px) {
    .home-alt .ha-circle-row { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 30px; }
    .home-alt .ha-circle-img { width: 200px; height: 200px; }
}

/* ==========================================================================
   B — THREE LASER PLATFORMS  (no card chrome; line pattern on blank ivory)
   ========================================================================== */
.home-alt .ha-lasers { background: var(--deka-ivory); padding: 44px 0 130px; }
.home-alt .ha-laser-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 36px; row-gap: 0; margin-top: 60px;
    /* rows: 1 media · 2 tag · 3 title · 4 lede · 5 desc · 6 readmore · 7 best · 8 cta.
       Each row is equalized across the four columns via subgrid, so every block
       (eyebrow, title, subtitle, paragraph, Best-for, buttons) starts/ends in line. */
    grid-template-rows: repeat(8, auto);
}
.home-alt .ha-laser {
    display: grid; grid-row: 1 / -1; grid-template-rows: subgrid; row-gap: 0;
}
.home-alt .ha-laser-media { grid-row: 1; }
.home-alt .ha-laser-tag   { grid-row: 2; }
.home-alt .ha-laser h3    { grid-row: 3; }
.home-alt .ha-laser-lede  { grid-row: 4; }
.home-alt .ha-laser-desc  { grid-row: 5; }
.home-alt .ha-readmore    { grid-row: 6; }
.home-alt .ha-laser-best  { grid-row: 7; }
.home-alt .ha-laser-cta   { grid-row: 8; }

.home-alt .ha-laser-media {
    position: relative; height: 380px; display: grid; place-items: end center; margin-bottom: 30px;
}
/* The line pattern, lifted from .svc-img::after — masked 32px grid, no card. */
.home-alt .ha-laser-media::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image:
        linear-gradient(rgba(4, 5, 65, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(4, 5, 65, 0.045) 1px, transparent 1px);
    background-size: 32px 32px;
    -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 42%, #000 30%, transparent 80%);
    mask-image: radial-gradient(ellipse 80% 60% at 50% 42%, #000 30%, transparent 80%);
}
.home-alt .ha-laser-media img {
    position: relative; z-index: 1; width: auto; max-width: 100%;
    height: 340px; min-height: 340px; max-height: 340px; /* identical render height for all four */
    object-fit: contain; filter: drop-shadow(0 16px 26px rgba(4, 5, 65, 0.22));
    transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.home-alt .ha-laser:hover .ha-laser-media img { transform: translateY(-6px) scale(1.02); }
/* Third product (SmartPerio benchtop) is wide — render it ~80% height so it
   doesn't dominate next to the two tall floor-standing units. */
.home-alt .ha-laser:nth-child(3) .ha-laser-media img {
    height: 272px; min-height: 272px; max-height: 272px;
}

.home-alt .ha-laser-tag {
    font-family: var(--deka-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--deka-sapphire); margin-bottom: 12px; display: inline-flex; align-items: center; gap: 8px;
}
.home-alt .ha-laser-tag::before { content: ''; width: 18px; height: 1px; background: var(--deka-sapphire); }
.home-alt .ha-laser h3 {
    font-family: var(--deka-serif); font-weight: 400; font-size: 27px; line-height: 1.1;
    letter-spacing: -0.01em; color: var(--deka-ink); margin-bottom: 6px;
}
.home-alt .ha-laser-lede {
    font-family: var(--deka-serif); font-style: italic; font-size: 17px; line-height: 1.4;
    color: var(--deka-sapphire); margin-bottom: 14px;
}
.home-alt .ha-laser-desc { font-size: 14.5px; line-height: 1.65; color: var(--hm-muted); }

.home-alt .ha-laser-best { margin-top: 18px; }
.home-alt .ha-laser-best h4 {
    font-family: var(--deka-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--deka-ink); opacity: 0.55; margin-bottom: 11px;
}
.home-alt .ha-laser-best ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 7px; }
.home-alt .ha-laser-best li { position: relative; padding-left: 20px; font-size: 14px; line-height: 1.45; color: var(--deka-ink); }
.home-alt .ha-laser-best li::before {
    content: ''; position: absolute; left: 0; top: 7px; width: 7px; height: 7px;
    border: 1px solid var(--deka-sapphire); border-radius: 50%;
}

.home-alt .ha-readmore {
    display: none; align-items: center; gap: 8px; margin-top: 16px;
    background: none; border: none; padding: 0; cursor: pointer;
    font-family: var(--deka-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--deka-sapphire);
}
.home-alt .ha-readmore::after { content: ''; width: 14px; height: 1px; background: currentColor; }

.home-alt .ha-laser-cta {
    margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--deka-rule);
    display: flex; flex-wrap: wrap; gap: 10px;
}
.home-alt .ha-laser-cta .ha-btn,
.home-alt .ha-laser-cta .ha-btn-ghost { padding: 12px 18px; font-size: 10px; letter-spacing: 0.14em; gap: 9px; }

@media (max-width: 1100px) {
    /* single column → drop the subgrid and stack with flex */
    .home-alt .ha-laser-grid { display: block; max-width: 520px; margin-inline: auto; }
    .home-alt .ha-laser { display: flex; flex-direction: column; }
    .home-alt .ha-laser + .ha-laser { margin-top: 64px; }
    .home-alt .ha-laser-best { display: none; }
    .home-alt .ha-laser.is-open .ha-laser-best { display: block; }
    .home-alt .ha-readmore { display: inline-flex; }
    .home-alt .ha-laser.is-open .ha-rm-more { display: none; }
    .home-alt .ha-laser:not(.is-open) .ha-rm-less { display: none; }
}

/* ==========================================================================
   C — ROI
   ========================================================================== */
.home-alt .ha-roi { background: var(--deka-bone); padding: 120px 0; }
.home-alt .ha-roi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 56px; }
.home-alt .ha-roi-case, .home-alt .ha-roi-plan {
    background: var(--deka-ivory); border: 1px solid var(--deka-rule); border-radius: 16px;
    padding: 34px 30px; display: flex; flex-direction: column;
}
.home-alt .ha-roi-tag {
    font-family: var(--deka-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--deka-sapphire); margin-bottom: 20px;
}
.home-alt .ha-roi-stat {
    font-family: var(--deka-serif); font-weight: 300; font-size: clamp(40px, 4.4vw, 56px);
    line-height: 1; letter-spacing: -0.02em; color: var(--deka-ink);
}
.home-alt .ha-roi-stat span { font-family: var(--deka-mono); font-size: 0.3em; color: var(--deka-brass); margin-left: 4px; vertical-align: middle; }
.home-alt .ha-roi-label {
    font-family: var(--deka-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--hm-muted); margin-top: 12px;
}
.home-alt .ha-roi-case p { font-size: 14px; line-height: 1.6; color: var(--hm-muted); margin-top: 16px; }
.home-alt .ha-roi-mini { list-style: none; padding: 16px 0 0; margin: 4px 0 0; display: flex; flex-direction: column; gap: 7px; }
.home-alt .ha-roi-mini li { position: relative; padding-left: 18px; font-size: 13px; line-height: 1.45; color: var(--deka-ink); }
.home-alt .ha-roi-mini li::before { content: ''; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; background: var(--deka-sapphire); border-radius: 50%; }
.home-alt .ha-roi-readcase {
    margin-top: auto; /* pin to card bottom so all three line up */
    display: inline-flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 20px; border: 1px solid var(--deka-rule); border-radius: 999px; background: transparent;
    color: var(--deka-ink); font-family: var(--deka-mono); font-size: 10.5px; letter-spacing: 0.16em;
    text-transform: uppercase; font-weight: 500; transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.home-alt .ha-roi-case p, .home-alt .ha-roi-mini { margin-bottom: 24px; }
.home-alt .ha-roi-readcase:hover { background: var(--deka-ink); color: var(--deka-ivory); border-color: var(--deka-ink); }
.home-alt .ha-roi-readcase svg { flex: none; }
.home-alt .ha-roi-plan { background: var(--deka-ink); color: var(--deka-ivory); }
.home-alt .ha-roi-plan .ha-roi-tag { color: var(--deka-brass); }
.home-alt .ha-roi-plan .ha-roi-label { color: var(--deka-ivory); }
.home-alt .ha-roi-plan p { font-size: 14px; line-height: 1.6; color: rgba(245, 244, 239, 0.72); margin-top: 16px; }
.home-alt .ha-roi-plan .ha-btn { margin-top: auto; background: var(--deka-ivory); color: var(--deka-ink); border-color: var(--deka-ivory); }
.home-alt .ha-roi-plan .ha-btn:hover { background: var(--deka-brass); border-color: var(--deka-brass); }
.home-alt .ha-roi-disclaimer { margin: 36px auto 0; font-size: 12px; line-height: 1.6; font-weight: 600; color: rgba(4, 5, 65, 0.82); max-width: 96ch; text-align: center; }
@media (max-width: 900px) { .home-alt .ha-roi-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   D — CLINICAL APPLICATIONS
   ========================================================================== */
.home-alt .ha-apps { background: var(--deka-ivory); padding: 120px 0; }
.home-alt .ha-apps-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 56px;
    border-top: 1px solid var(--deka-rule); border-left: 1px solid var(--deka-rule);
}
.home-alt .ha-app { padding: 38px 36px; border-right: 1px solid var(--deka-rule); border-bottom: 1px solid var(--deka-rule); }
.home-alt .ha-app h3 { font-family: var(--deka-serif); font-weight: 400; font-size: 25px; color: var(--deka-ink); margin-bottom: 10px; letter-spacing: -0.01em; }
.home-alt .ha-app > p { font-size: 14.5px; line-height: 1.6; color: var(--hm-muted); margin-bottom: 20px; max-width: 48ch; }
.home-alt .ha-app h4 { font-family: var(--deka-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--deka-ink); opacity: 0.5; margin-bottom: 14px; }
.home-alt .ha-app ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.home-alt .ha-app li {
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.03em; color: var(--deka-sapphire);
    background: var(--hm-sky); padding: 6px 12px; border-radius: 999px;
}
@media (max-width: 760px) { .home-alt .ha-apps-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   E — TECHNOLOGY
   ========================================================================== */
.home-alt .ha-tech { background: var(--deka-bone); padding: 120px 0; }
.home-alt .ha-tech-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 56px; }
.home-alt .ha-tech-item { padding: 32px 28px; background: var(--deka-ivory); border: 1px solid var(--deka-rule); border-radius: 14px; }
.home-alt .ha-tech-wave { font-family: var(--deka-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--deka-sapphire); margin-bottom: 14px; }
.home-alt .ha-tech-item h3 { font-family: var(--deka-serif); font-weight: 400; font-size: 23px; color: var(--deka-ink); margin-bottom: 10px; letter-spacing: -0.01em; }
.home-alt .ha-tech-item p { font-size: 14px; line-height: 1.62; color: var(--hm-muted); }
@media (max-width: 900px) { .home-alt .ha-tech-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .home-alt .ha-tech-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   F — WHY DEKA  (dark ink band)
   ========================================================================== */
.home-alt .ha-why { background: var(--deka-ink); color: var(--deka-ivory); padding: 120px 0; }
.home-alt .ha-why .center-head h2 { color: var(--deka-ivory); }
.home-alt .ha-why .center-head p { color: rgba(245, 244, 239, 0.7); }
.home-alt .ha-why-lead { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; margin-top: 8px; align-items: start; }
.home-alt .ha-why-lead h2 { font-family: var(--deka-serif); font-weight: 300; font-size: clamp(34px, 4vw, 52px); line-height: 1.05; letter-spacing: -0.02em; color: var(--deka-ivory); }
.home-alt .ha-why-lead h2 em { font-style: italic; color: var(--deka-brass); }
.home-alt .ha-why-lead p { font-size: 16px; line-height: 1.7; color: rgba(245, 244, 239, 0.72); }
.home-alt .ha-why-lead p + p { margin-top: 18px; }
.home-alt .ha-why-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--deka-rule-light); }
.home-alt .ha-pillar h3 { font-family: var(--deka-serif); font-weight: 400; font-size: 22px; color: var(--deka-ivory); margin-bottom: 10px; }
.home-alt .ha-pillar p { font-size: 14.5px; line-height: 1.65; color: rgba(245, 244, 239, 0.66); }
@media (max-width: 860px) {
    .home-alt .ha-why-lead { grid-template-columns: 1fr; gap: 24px; }
    .home-alt .ha-why-pillars { grid-template-columns: 1fr; gap: 28px; }
}

/* ==========================================================================
   G — TRAINING & SUPPORT  (split; full-bleed image on the right)
   ========================================================================== */
.home-alt .ha-training { background: var(--deka-ivory); }
/* The grid is the full-width row: two 50/50 columns of the viewport. The image
   is a normal grid item that STRETCHES to the row height (= copy height) and
   fills its column out to the right screen edge. The copy's left padding is
   computed to land exactly on the container content edge (max-width 1440, 56px
   gutter), so it aligns with every other section. */
.home-alt .ha-training-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; min-height: 560px; }
.home-alt .ha-training-copy {
    align-self: center;
    padding: 96px clamp(32px, 4vw, 72px) 96px max(56px, calc((100vw - 1440px) / 2 + 56px));
}
/* Mosaic: a collage of tiles (1 big training + 5 people), each an object-fit
   cover box. Clicking any tile opens the lightbox gallery (JS). Fills the grid
   cell, which stretches to the copy height and bleeds to the right screen edge. */
.home-alt .ha-training-media {
    display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr);
    gap: 0; background: var(--deka-ivory);
}
.home-alt .ha-tile {
    position: relative; overflow: hidden; border: 0; padding: 0; margin: 0; cursor: pointer;
    background: var(--deka-bone);
}
.home-alt .ha-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-alt .ha-tile:hover img { transform: scale(1.05); }
.home-alt .ha-tile::after { content: ''; position: absolute; inset: 0; background: rgba(4, 5, 65, 0); transition: background .25s ease; }
.home-alt .ha-tile:hover::after { background: rgba(4, 5, 65, .14); }
.home-alt .ha-tile-ico {
    position: absolute; top: 10px; right: 10px; z-index: 2; width: 30px; height: 30px; border-radius: 50%;
    display: grid; place-items: center; color: #fff; background: rgba(4, 5, 65, .45);
    opacity: 0; transform: scale(.85); transition: opacity .25s ease, transform .25s ease;
}
.home-alt .ha-tile:hover .ha-tile-ico { opacity: 1; transform: scale(1); }
.home-alt .ha-tile-cta {
    position: absolute; left: 16px; bottom: 16px; z-index: 2; display: inline-flex; align-items: center; gap: 9px;
    padding: 9px 15px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--deka-ink);
    font-family: var(--deka-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
    opacity: 0; transform: translateY(6px); transition: opacity .25s ease, transform .25s ease;
}
.home-alt .ha-tile--main:hover .ha-tile-cta { opacity: 1; transform: none; }
/* collage placement — mirrors the reference: top row of 3, left column of 2, big training bottom-right */
.home-alt .ha-tile--p1   { grid-area: 1 / 1 / 2 / 2; }
.home-alt .ha-tile--p2   { grid-area: 1 / 2 / 2 / 3; }
.home-alt .ha-tile--p3   { grid-area: 1 / 3 / 2 / 4; }
.home-alt .ha-tile--p4   { grid-area: 2 / 1 / 3 / 2; }
.home-alt .ha-tile--p5   { grid-area: 3 / 1 / 4 / 2; }
.home-alt .ha-tile--main { grid-area: 2 / 2 / 4 / 4; }

/* Lightbox */
.home-alt .ha-lightbox {
    position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center;
    background: rgba(4, 5, 65, .92); padding: 40px;
}
.home-alt .ha-lightbox.is-open { display: flex; }
.home-alt .ha-lb-frame { margin: 0; max-width: 90vw; max-height: 86vh; }
.home-alt .ha-lb-img { display: block; max-width: 90vw; max-height: 86vh; object-fit: contain; border-radius: 4px; box-shadow: 0 30px 80px rgba(0, 0, 0, .55); }
.home-alt .ha-lb-arrow, .home-alt .ha-lb-close {
    position: absolute; background: rgba(255, 255, 255, .92); color: var(--deka-ink); border: none; border-radius: 50%;
    cursor: pointer; display: grid; place-items: center; transition: background .2s ease;
}
.home-alt .ha-lb-arrow:hover, .home-alt .ha-lb-close:hover { background: #fff; }
.home-alt .ha-lb-arrow { width: 56px; height: 56px; top: 50%; transform: translateY(-50%); }
.home-alt .ha-lb-prev { left: 28px; }
.home-alt .ha-lb-next { right: 28px; }
.home-alt .ha-lb-close { width: 48px; height: 48px; top: 28px; right: 28px; }
.home-alt .ha-lb-counter { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); font-family: var(--deka-mono); font-size: 12px; letter-spacing: .14em; color: #fff; }
@media (max-width: 560px) {
    .home-alt .ha-lb-arrow { width: 44px; height: 44px; }
    .home-alt .ha-lb-prev { left: 12px; }
    .home-alt .ha-lb-next { right: 12px; }
}
.home-alt .ha-training-copy .kicker { display: inline-flex; align-items: center; gap: 10px; font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--deka-sapphire); font-weight: 500; }
.home-alt .ha-training-copy .kicker::after { content: ''; width: 24px; height: 1px; background: var(--deka-sapphire); }
.home-alt .ha-training-copy h2 { font-family: var(--deka-serif); font-weight: 300; font-size: clamp(32px, 3.6vw, 46px); line-height: 1.08; letter-spacing: -0.02em; color: var(--deka-ink); margin-top: 16px; }
.home-alt .ha-training-copy h2 em { font-style: italic; color: var(--deka-sapphire); }
.home-alt .ha-training-copy > p { font-size: 15.5px; line-height: 1.7; color: var(--hm-muted); margin-top: 18px; max-width: 52ch; }
.home-alt .ha-support h4 { font-family: var(--deka-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--deka-ink); opacity: 0.5; margin: 26px 0 14px; }
.home-alt .ha-support ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px 24px; }
.home-alt .ha-support li { position: relative; padding-left: 22px; font-size: 14px; line-height: 1.4; color: var(--deka-ink); }
.home-alt .ha-support li::before {
    content: ''; position: absolute; left: 0; top: 4px; width: 11px; height: 11px;
    background: var(--hm-sky); border-radius: 3px;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='none' stroke='%232b529f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M4 12l5 5 11-11'/></svg>") center / 80% no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='none' stroke='%232b529f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M4 12l5 5 11-11'/></svg>") center / 80% no-repeat;
    background: var(--deka-sapphire);
}
.home-alt .ha-training-copy .ha-btn { margin-top: 32px; }
.home-alt .ha-training-media { position: relative; min-height: 360px; }
.home-alt .ha-training-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) {
    .home-alt .ha-training-grid { grid-template-columns: 1fr; min-height: 0; }
    .home-alt .ha-training-media { aspect-ratio: 4 / 3; order: -1; }
    .home-alt .ha-training-copy { padding: 56px 56px 72px; }
    .home-alt .ha-support ul { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .home-alt .ha-training-copy { padding: 48px 24px 64px; }
}

/* ==========================================================================
   H — FINAL CTA + FORM  (dark ink; ivory form card)
   ========================================================================== */
.home-alt .ha-final { background: var(--deka-ink); color: var(--deka-ivory); padding: 120px 0; }
.home-alt .ha-final-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.home-alt .ha-final .kicker { display: inline-flex; align-items: center; gap: 10px; font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--deka-sapphire-soft); font-weight: 500; }
.home-alt .ha-final .kicker::after { content: ''; width: 24px; height: 1px; background: var(--deka-sapphire-soft); }
.home-alt .ha-final h2 { font-family: var(--deka-serif); font-weight: 300; font-size: clamp(34px, 4vw, 52px); line-height: 1.05; letter-spacing: -0.02em; color: var(--deka-ivory); margin-top: 16px; }
.home-alt .ha-final h2 em { font-style: italic; color: var(--deka-brass); }
/* :not(.ha-form) — this rule is for the dark column only. The ivory form card is
   also a direct div child of the grid, so without the guard its near-white colour
   out-specificities .ha-form .ha-form-sub and paints ivory text on an ivory card. */
.home-alt .ha-final > .container > .ha-final-grid > div:not(.ha-form) > p { font-size: 16px; line-height: 1.7; color: rgba(245, 244, 239, 0.72); margin-top: 18px; }
/* contact block (phone · email · address · hours) on the dark final section */
.home-alt .ha-final-contact { list-style: none; padding: 0; margin: 32px 0 0; display: grid; }
.home-alt .ha-final-contact li {
    display: grid; grid-template-columns: 110px 1fr; gap: 20px; align-items: baseline;
    padding: 16px 0; border-top: 1px solid rgba(245, 244, 239, 0.14);
}
.home-alt .ha-final-contact li:last-child { border-bottom: 1px solid rgba(245, 244, 239, 0.14); }
.home-alt .ha-final-contact__label {
    font-family: var(--deka-mono); font-size: 10.5px; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--deka-sapphire-soft); font-weight: 500;
}
.home-alt .ha-final-contact li a,
.home-alt .ha-final-contact li span:not(.ha-final-contact__label):not(.ha-final-contact__sub) {
    font-size: 16px; line-height: 1.5; color: var(--deka-ivory);
}
.home-alt .ha-final-contact__group { display: grid; gap: 14px; }
.home-alt .ha-final-contact__entry { display: flex; flex-direction: column; gap: 3px; }
.home-alt .ha-final-contact__sub {
    font-family: var(--deka-mono); font-size: 9.5px; letter-spacing: 0.16em;
    text-transform: uppercase; color: rgba(245, 244, 239, 0.5); font-weight: 500;
}
.home-alt .ha-final-contact li a { transition: color .25s ease; }
.home-alt .ha-final-contact li a:hover { color: var(--deka-sapphire-soft); }
@media (max-width: 480px) {
    .home-alt .ha-final-contact li { grid-template-columns: 1fr; gap: 4px; }
}

.home-alt .ha-form { background: var(--deka-ivory); color: var(--deka-ink); border-radius: 18px; padding: 38px 34px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.6); }
/* 38px/34px is a desktop card. On a phone it eats most of the column and
   squeezes the fields; 20px all round gives the inputs the width back. */
@media (max-width: 760px) { .home-alt .ha-form { padding: 20px; } }
.home-alt .ha-form h3 { font-family: var(--deka-serif); font-weight: 400; font-size: 26px; line-height: 1.15; letter-spacing: -0.01em; color: var(--deka-ink); margin-bottom: 8px; }
.home-alt .ha-form .ha-form-sub { font-size: 14px; line-height: 1.55; color: var(--hm-muted); margin-bottom: 24px; }
@media (max-width: 900px) { .home-alt .ha-final-grid { grid-template-columns: 1fr; gap: 40px; } }


/* ==========================================================================
   LEAD BANNER FORM  (elevated card above the lasers intro)
   ========================================================================== */
.home-alt .ha-leadbar-form {
    margin: 0;
    background: #fff; border: 1px solid var(--deka-rule); border-radius: 18px;
    box-shadow: 0 40px 80px -50px rgba(4,5,65,0.45);
    padding: clamp(22px,3vw,30px) clamp(24px,3vw,36px);
    display: grid; grid-template-columns: minmax(180px, 250px) 1fr; gap: clamp(24px,3vw,48px); align-items: center;
}
.home-alt .ha-leadbar-kicker { font-family: var(--deka-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--deka-sapphire); font-weight: 500; }
.home-alt .ha-leadbar-title { font-family: var(--deka-serif); font-weight: 300; font-size: clamp(24px,2.4vw,32px); line-height: 1.05; letter-spacing: -0.01em; color: var(--deka-ink); margin-top: 8px; }
.home-alt .ha-leadbar-title em { font-style: italic; color: var(--deka-sapphire); }
@media (max-width: 980px) {
    .home-alt .ha-leadbar-form { grid-template-columns: 1fr; gap: 22px; }
}

/* Reviews (voices) — proper heading on the dark section */
.home-alt .voices .voices-head { margin-bottom: clamp(34px,5vh,52px); }
.home-alt .voices .voices-head .kicker { display: inline-flex; align-items: center; gap: 10px; font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--deka-sapphire-soft); font-weight: 500; }
.home-alt .voices .voices-head .kicker::after { content: ''; width: 24px; height: 1px; background: var(--deka-sapphire-soft); }
.home-alt .voices .voices-head h2 { font-family: var(--deka-serif); font-weight: 300; font-size: clamp(30px,4vw,50px); line-height: 1.05; letter-spacing: -0.02em; color: #fff; margin-top: 14px; }
.home-alt .voices .voices-head h2 em { font-style: italic; color: var(--deka-brass); }

/* ==========================================================================
   07 — VOICES — restore the dark Ken Burns background + white text
   (base home.css was flipped to a light bone bg; bring back the slow-zoom
   photo, purple overlay, and white review text on the front page.)
   ========================================================================== */
.home-alt .voices {
    position: relative; overflow: hidden;
    background-color: #0b004a; color: #fff;
}
/* Layer 1 — slow Ken Burns zoom/pan on the CTA photo. */
.home-alt .voices::before {
    content: ""; position: absolute; inset: 0; z-index: 0;
    background: url("../images/voices-bg.avif") center / cover no-repeat;
    transform: scale(1.12); transform-origin: center;
    animation: voices-kenburns 80s ease-in-out infinite;
    will-change: transform;
}
/* Layer 2 — top fade (from the dark section above) + purple wash. */
.home-alt .voices::after {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
        linear-gradient(to bottom, rgba(4,5,65,1) 0, rgba(4,5,65,0) 260px),
        linear-gradient(to bottom left, rgba(11,0,74,0.8) 0%, rgba(11,0,74,0.95) 100%);
}
.home-alt .voices > .container { position: relative; z-index: 2; }
@keyframes voices-kenburns {
    0%   { transform: scale(1.12) translate(0, 0); }
    25%  { transform: scale(1.18) translate(-1.6%, -1.2%); }
    50%  { transform: scale(1.14) translate(1.6%, 1.2%); }
    75%  { transform: scale(1.20) translate(1.2%, -1.6%); }
    100% { transform: scale(1.12) translate(0, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .home-alt .voices::before { animation: none; transform: scale(1.05); }
}
/* lift slide text + controls to white over the dark photo */
.home-alt .voices .voice-slide { border-top-color: var(--deka-rule-light); border-bottom-color: var(--deka-rule-light); }
.home-alt .voices .voice-slide .voice-no { color: rgba(255,255,255,0.7); }
.home-alt .voices .voice-slide .q,
.home-alt .voices .voice-slide .q em,
.home-alt .voices .voice-slide .meta .n { color: #fff; }
.home-alt .voices .voice-slide .meta .t { color: rgba(255,255,255,0.7); }
.home-alt .voices .voice-slide .avatar { border-color: rgba(255,255,255,0.35); }
.home-alt .voices .voices-dots button { background: rgba(255,255,255,0.3); }
.home-alt .voices .voices-dots button.active { background: #fff; }
.home-alt .voices .voices-counter { color: rgba(255,255,255,0.6); }
.home-alt .voices .voices-arrows button { border-color: rgba(255,255,255,0.35); color: #fff; }
.home-alt .voices .voices-arrows button:hover { background: #fff; color: var(--deka-ink); border-color: #fff; }

/* ==========================================================================
   01 — HERO (home-alt override)
   Full-viewport video. Est. label + stats pinned top; headline + CTA pinned
   bottom (headline left, button right). Bottom fades into dark purple so it
   blends into the lead-form band that follows.
   ========================================================================== */
.home-alt .hero { min-height: 640px; height: 100vh; height: 100dvh; background: var(--deka-ink); }

/* Pull the video (and poster) up 100px so the bottom 100px of the hero is a
   solid dark-purple band (the hero's own --deka-ink background). */
.home-alt .hero-video-frame,
.home-alt .hero-poster { bottom: 100px; }

/* General purple overlay — restored, slightly lighter than the base
   (base was .80/.58/.86); matches the video area (bottom: 100px). */
.home-alt .hero-video-overlay {
    bottom: 100px;
    background:
        radial-gradient(ellipse 60% 45% at 78% 40%, rgba(43,82,159,0.38), transparent 60%),
        linear-gradient(180deg, rgba(4,5,65,0.66) 0%, rgba(4,5,65,0.46) 38%, rgba(4,5,65,0.72) 100%);
}

/* bottom fade → dark purple (was ivory); resolves to full --deka-ink exactly
   at the 100px line, where it meets the solid band below. */
.home-alt .hero-bottom-fade {
    bottom: 100px;
    height: 42%;
    background: linear-gradient(180deg,
        rgba(4,5,65,0) 0%,
        rgba(4,5,65,0.28) 46%,
        rgba(4,5,65,0.80) 80%,
        var(--deka-ink) 100%);
}

/* top bar — stats + supporting copy, pinned upper-right */
.home-alt .hero-top {
    position: absolute; left: 0; right: 0; top: 0; z-index: 4;
    padding-top: clamp(112px,15vh,168px);
    display: flex; justify-content: flex-end;
}
.home-alt .hero-top-right {
    display: flex; flex-direction: column; align-items: flex-end;
    gap: 22px; max-width: 480px;
}
.home-alt .hero-top .hero-stats {
    display: flex; gap: clamp(28px,4vw,56px); text-align: right;
}
.home-alt .hero-top .hero-stat .num { font-size: clamp(26px,2.6vw,38px); }
.home-alt .hero-top .hero-stat .cap { margin-top: 6px; }

/* bottom bar — headline (left) · CTA (right) */
.home-alt .hero-bottom {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
    padding-bottom: clamp(40px,6vh,72px);
    display: flex; justify-content: space-between; align-items: flex-end;
    gap: clamp(32px,5vw,72px);
}
.home-alt .hero-bottom-text {
    max-width: none;
    position: relative;
    padding-left: clamp(22px,2.2vw,36px);
}
/* slim muted-white accent rule down the left edge of the headline block */
.home-alt .hero-bottom-text::before {
    content: '';
    position: absolute; left: 0; top: 6px; bottom: 8px;
    width: 2px; border-radius: 2px;
    background: rgba(245,244,239,0.6);
}
.home-alt .hero-bottom .hero-headline { max-width: none; margin: 0; font-size: clamp(34px,4.4vw,72px); }
.home-alt .hero-tagline {
    margin-top: .35em;
    margin-bottom: 0;
    font-family: var(--deka-serif); font-weight: 300; font-style: italic;
    font-size: clamp(18px,1.8vw,24px); line-height: 1.4;
    color: rgba(245,244,239,0.85);
}
.home-alt .hero-bottom-cta { flex: none; padding-bottom: 6px; display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: flex-end; }
/* secondary "call" button — outline pill so it reads distinct from the solid CTA */
.home-alt .hero-cta-call {
    background: transparent; color: var(--deka-ivory);
    border: 1px solid rgba(245,244,239,0.5);
    box-shadow: none; justify-content: center;
}
.home-alt .hero-cta-call:hover { background: rgba(245,244,239,0.10); border-color: var(--deka-ivory); box-shadow: none; }
.home-alt .hero-cta-call .phone { width: 15px; height: 15px; }

@media (max-width: 900px) {
    /* mobile: headline + copy, then the button underneath — all pinned bottom */
    .home-alt .hero-top { padding-top: 96px; }
    .home-alt .hero-top .hero-stat .num { font-size: 22px; }
    .home-alt .hero-bottom { flex-direction: column; align-items: flex-start; gap: 24px; }
    .home-alt .hero-bottom-cta { justify-content: flex-start; }
    .home-alt .hero-bottom-text { max-width: 100%; }
    .home-alt .hero-bottom .hero-sub { max-width: 46ch; }
}


@media (max-width: 600px) {
    .home-alt .hero-bottom-cta { flex-direction: column; align-items: stretch; }
}
