body:has(.ec-home) {
    --home-width: 760px;
    --home-gutter: 24px;
    --home-navy: var(--ec-text);
    --home-muted: var(--ec-text-muted);
    background: #fff;
}

body:has(.ec-home) .ec-navbar {
    height: 96px;
    background: #fff;
    box-shadow: none;
}

body:has(.ec-home) .ec-navbar-inner {
    width: 100%;
    max-width: calc(var(--home-width) + 2 * var(--home-gutter));
    padding: 0 var(--home-gutter);
}

body:has(.ec-home) .ec-logo { height: 48px; }
body:has(.ec-home) .ec-brand-name { color: var(--ec-brand); }

body:has(.ec-home) .ec-lang-select {
    color: var(--home-navy);
    background-color: var(--ec-tint);
    border: 1px solid var(--ec-border);
    border-radius: 18px;
    padding: 10px 32px 10px 16px;
    font-size: 1rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%231f2933' stroke-width='2'/%3E%3C/svg%3E");
    background-position: right 12px center;
}

body:has(.ec-home) .ec-lang-select:focus-visible {
    outline: 3px solid var(--ec-primary);
    outline-offset: 3px;
}

body:has(.ec-home) .ec-footer { display: none; }

body:has(.ec-home) .ec-main {
    min-height: calc(100vh - 96px);
    min-height: calc(100svh - 96px);
    padding: 36px var(--home-gutter) 24px;
    display: flex;
}

.ec-home {
    width: 100%;
    max-width: var(--home-width);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    color: var(--home-navy);
}

.ec-home-heading { text-align: center; }

.ec-home-heading h1 {
    max-width: 660px;
    margin: 0 auto 16px;
    font-size: clamp(2rem, 5vw, 3.25rem);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -.04em;
}

.ec-home-heading p {
    margin: 0 0 32px;
    color: var(--home-muted);
    font-size: clamp(1rem, 2.5vw, 1.25rem);
    line-height: 1.5;
}

.ec-home-choices { display: grid; gap: 20px; }

.ec-home-arrival { display: flex; align-items: center; gap: 16px; padding: 20px; margin-bottom: 24px; border: 1px solid #caeadd; border-radius: 16px; background: var(--ec-tint); }
.ec-home-error { display: flex; align-items: center; gap: 12px; padding: 16px 20px; margin-bottom: 24px; border: 1px solid #f3c2c2; border-radius: 16px; background: #fdf0f0; color: #a51212; }
.ec-home-error i { flex-shrink: 0; font-size: 1.2rem; }
.ec-home-error p { margin: 0; font-size: .95rem; line-height: 1.45; }
.ec-home-arrival > div { flex: 1; min-width: 0; }
.ec-home-arrival-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; color: var(--ec-primary); background: #dcf4e8; border-radius: 50%; font-size: 1.2rem; }
.ec-home-arrival p { margin: 0 0 8px; color: var(--home-muted); font-size: .9rem; }
.ec-home-arrival-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 4px 0;
    border: 0;
    background: transparent;
    color: var(--home-navy);
    font: inherit;
    font-weight: 700;
    text-align: left;
    overflow-wrap: anywhere;
    cursor: pointer;
}
.ec-home-arrival-button i { color: var(--ec-primary); flex-shrink: 0; }
.ec-home-arrival-button:focus-visible { outline: 3px solid var(--ec-primary); outline-offset: 4px; border-radius: 3px; }

.ec-home-choice {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 28px;
    border: 1px solid var(--ec-border);
    border-radius: 20px;
    background: var(--ec-surface);
    color: var(--home-navy);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.ec-home-choice-navigate { background: #f1faf7; border-color: #dcefe9; }
.ec-home-choice:hover:not(:disabled) { border-color: var(--ec-primary); box-shadow: 0 4px 16px #1f293312; }
.ec-home-choice:focus-visible { outline: 3px solid var(--ec-primary); outline-offset: 4px; }
.ec-home-choice:disabled { cursor: not-allowed; background: #f5f7f7; color: var(--ec-text-muted); }
.ec-home-choice:disabled .ec-home-icon,
.ec-home-choice:disabled .ec-home-chevron { opacity: .5; }

.ec-home-icon {
    flex: 0 0 96px;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: #e0f3ee;
    display: grid;
    place-items: center;
}

.ec-home-choice-navigate .ec-home-icon { background: #e0f3ee; }
.ec-home-icon svg { width: 58px; height: 58px; }
.ec-home-icon-accent { fill: var(--ec-primary); }
.ec-home-choice-copy { flex: 1; min-width: 0; }
.ec-home-choice-title { display: block; font-size: 1.65rem; font-weight: 700; line-height: 1.2; letter-spacing: -.025em; }
.ec-home-choice-description { display: block; margin-top: 12px; color: var(--home-muted); font-size: 1.1rem; line-height: 1.45; }
.ec-home-chevron { flex: 0 0 18px; width: 18px; height: 27px; color: var(--ec-primary); }
.ec-home-unavailable { display: inline-block; margin-top: 12px; padding: 4px 10px; border-radius: 12px; background: #e5e9ed; color: var(--ec-text-muted); font-size: .75rem; font-weight: 700; }

.ec-home-footer { margin-top: auto; padding-top: 48px; }
.ec-home-emergency { display: flex; align-items: center; gap: 20px; border-top: 1px solid #dce2ee; padding-top: 24px; margin: 0; color: var(--home-muted); font-size: .95rem; line-height: 1.5; }
.ec-home-emergency svg { flex: 0 0 32px; width: 32px; height: 38px; color: #dc1717; }
.ec-home-emergency span { border-left: 1px solid #dce2ee; padding-left: 20px; }
.ec-home-emergency strong { color: #dc1717; font-weight: 700; }
.ec-home-legal { max-width: 620px; margin: 20px auto 0; color: var(--home-muted); font-size: .85rem; line-height: 1.5; text-align: center; }
.ec-home-legal a[href] { color: var(--ec-primary); text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 480px) {
    body:has(.ec-home) { --home-gutter: 20px; }
    body:has(.ec-home) .ec-navbar { height: 84px; }
    body:has(.ec-home) .ec-logo { height: 40px; }
    body:has(.ec-home) .ec-brand-name { font-size: 1rem; }
    body:has(.ec-home) .ec-main { min-height: calc(100svh - 84px); padding: 28px var(--home-gutter) 20px; }
    .ec-home-heading p { margin-bottom: 24px; }
    .ec-home-choices { gap: 16px; }
    .ec-home-choice { padding: 22px 16px; gap: 16px; border-radius: 16px; }
    .ec-home-icon { flex-basis: 64px; width: 64px; height: 64px; }
    .ec-home-icon svg { width: 44px; height: 44px; }
    .ec-home-choice-title { font-size: 1.25rem; }
    .ec-home-choice-description { font-size: .95rem; margin-top: 10px; }
    .ec-home-chevron { flex-basis: 12px; width: 12px; height: 20px; }
    .ec-home-footer { padding-top: 36px; }
    .ec-home-emergency { gap: 14px; font-size: .8rem; }
    .ec-home-emergency span { padding-left: 14px; }
    .ec-home-legal { font-size: .75rem; }
}
