/* Application hero. Pixel-based type sizes respect Kallyas' 10px root setting. */
#jpm-home .jpmh-app-hero {
    --jpmh-app-paper: #f4f1eb;
    --jpmh-app-ink: #272923;
    --jpmh-app-muted: #575b54;
    --jpmh-app-mobile-photo-height: clamp(180px, 47vw, 280px);
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--jpmh-app-ink);
    background: var(--jpmh-app-paper);
}
#jpm-home .jpmh-app-stage {
    position: relative;
    display: grid;
    isolation: isolate;
    overflow: hidden;
}
#jpm-home .jpmh-app-slide {
    position: relative;
    grid-area: 1 / 1;
    display: grid;
    min-width: 0;
    isolation: isolate;
    background: var(--jpmh-app-paper);
}
/* All enhanced slides contribute their natural height to the same grid row. */
#jpm-home .jpmh-app-enhanced .jpmh-app-slide {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}
#jpm-home .jpmh-app-enhanced .jpmh-app-slide.jpmh-app-current {
    z-index: 2;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}
#jpm-home .jpmh-app-enhanced .jpmh-app-slide.jpmh-app-outgoing {
    z-index: 1;
    visibility: visible;
    opacity: 1;
    pointer-events: none;
}
#jpm-home .jpmh-app-photo {
    position: absolute;
    inset: 0 0 0 auto;
    width: min(74%, 1280px);
    z-index: -1;
    min-width: 0;
    overflow: hidden;
    background: var(--jpmh-app-paper);
    touch-action: pan-y;
}
#jpm-home .jpmh-app-photo picture {
    display: block;
    width: 100%;
    height: 100%;
}
#jpm-home .jpmh-app-photo img {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: var(--jpmh-focus-x, 50%) var(--jpmh-focus-y, 50%);
}
#jpm-home .jpmh-app-photo::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, #f4f1eb 0%, rgba(244, 241, 235, .98) 12%, rgba(244, 241, 235, .55) 25%, rgba(244, 241, 235, 0) 40%);
    pointer-events: none;
}
#jpm-home .jpmh-app-photo-unavailable {
    background: var(--jpmh-app-paper);
}
#jpm-home .jpmh-app-inner {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(340px, 28vw, 440px);
}
#jpm-home .jpmh-app-copy {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 40%;
    max-width: 510px;
    min-width: 0;
    margin-left: clamp(56px, 7vw, 144px);
    padding: clamp(24px, 2.2vw, 32px) 0;
    overflow-wrap: break-word;
}
#jpm-home .jpmh-app-copy .jpmh-app-eyebrow {
    margin: 0 0 12px;
    color: var(--jpmh-app-muted);
    font-size: 12px;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
}
#jpm-home .jpmh-app-copy .jpmh-app-title {
    margin: 0;
    color: var(--jpmh-app-ink);
    font-family: Rubik, Arial, sans-serif;
    font-size: clamp(34px, 3.4vw, 52px);
    line-height: 1.08;
    font-weight: 400;
    letter-spacing: -.035em;
    text-transform: none;
    text-wrap: balance;
}
#jpm-home .jpmh-app-copy .jpmh-app-text {
    max-width: 355px;
    margin: 16px 0 20px;
    color: var(--jpmh-app-muted);
    font-size: 16px;
    line-height: 1.6;
    font-weight: 400;
}
#jpm-home .jpmh-app-copy .jpmh-app-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    max-width: 100%;
    min-height: 46px;
    margin-top: 0;
    padding: 12px 20px;
    border: 1px solid var(--jpmh-red);
    border-radius: 0;
    background: var(--jpmh-red);
    color: #fff;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    text-decoration: none;
    white-space: normal;
}
#jpm-home .jpmh-app-copy .jpmh-app-cta:hover {
    border-color: #a40923;
    background: #a40923;
    color: #fff;
}
#jpm-home .jpmh-app-cta svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
}
/* The single overlay control takes no space beneath the banner. */
#jpm-home .jpmh-app-controls {
    position: absolute;
    right: 20px;
    bottom: 18px;
    z-index: 5;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
#jpm-home .jpmh-app-controls button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(39, 41, 35, .16);
    border-radius: 50%;
    background: rgba(244, 241, 235, .96);
    background-image: none;
    box-shadow: none;
    color: var(--jpmh-app-ink);
    font-family: inherit;
    cursor: pointer;
}
#jpm-home .jpmh-app-controls button::before,
#jpm-home .jpmh-app-controls button::after { content: none; }
#jpm-home .jpmh-app-controls button:hover { background: #fff; color: var(--jpmh-app-ink); }
#jpm-home .jpmh-app-controls button:focus-visible,
#jpm-home .jpmh-app-cta:focus-visible {
    outline: 3px solid var(--jpmh-red);
    outline-offset: 4px;
}
#jpm-home .jpmh-app-controls svg {
    display: block;
    width: 18px;
    height: 18px;
    pointer-events: none;
}
@media (max-width: 1000px) {
    #jpm-home .jpmh-app-copy { width: 43%; margin-left: clamp(28px, 4vw, 56px); }
    #jpm-home .jpmh-app-copy .jpmh-app-text { font-size: 15px; }
}
@media (max-width: 700px) {
    #jpm-home .jpmh-app-slide { grid-template-rows: var(--jpmh-app-mobile-photo-height) 1fr; }
    #jpm-home .jpmh-app-photo {
        position: relative;
        inset: auto;
        width: 100%;
        z-index: auto;
        height: 100%;
    }
    #jpm-home .jpmh-app-photo::after { display: none; }
    #jpm-home .jpmh-app-photo img {
        object-position: var(--jpmh-mobile-focus-x, var(--jpmh-focus-x, 50%)) var(--jpmh-mobile-focus-y, var(--jpmh-focus-y, 50%));
    }
    #jpm-home .jpmh-app-inner { min-height: 0; }
    #jpm-home .jpmh-app-copy { width: 100%; max-width: none; margin-left: 0; padding: 22px 0 25px; }
    #jpm-home .jpmh-app-copy .jpmh-app-eyebrow { margin-bottom: 10px; font-size: 11px; }
    #jpm-home .jpmh-app-copy .jpmh-app-title { max-width: 530px; font-size: clamp(32px, 6.4vw, 42px); }
    #jpm-home .jpmh-app-copy .jpmh-app-text { max-width: 470px; margin: 12px 0 18px; font-size: 15px; }
    #jpm-home .jpmh-app-copy .jpmh-app-cta { min-height: 44px; padding: 10px 17px; font-size: 13px; }
    #jpm-home .jpmh-app-controls {
        top: calc(var(--jpmh-app-mobile-photo-height) - 56px);
        right: 12px;
        bottom: auto;
    }
}
@media (prefers-reduced-motion: reduce) {
    #jpm-home .jpmh-app-hero *,
    #jpm-home .jpmh-app-hero *::before,
    #jpm-home .jpmh-app-hero *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
    #jpm-home .jpmh-app-controls { display: none !important; }
    #jpm-home .jpmh-app-slide:not(.jpmh-app-current) { display: none; }
    #jpm-home .jpmh-app-slide:first-child:not(.jpmh-app-current) { display: grid; }
    #jpm-home .jpmh-app-enhanced .jpmh-app-slide:first-child:not(.jpmh-app-current) { display: none; }
    #jpm-home .jpmh-app-inner { min-height: 320px; }
}
