/*
 * Homepage redesign sections (/home-new/, migration 059, Monday pulse
 * 13465121177). Design: homepage-mockup-V3.pdf page 1 (the client's pick),
 * values cross-checked against the "Genesis Mockup - home" Figma: 1440
 * frame, 80px side padding (1280 content), Inter, #284D9A headings,
 * #D32F2F red, #0D233A navy.
 *
 * Only the NEW sections use these gm-hp-* classes. Sections copied from the
 * homepage (hero, search band, CEO, testimonials, insurance, news) keep
 * their own element-ID styles in functions.php. Loaded on the homepage
 * layout (genesis_is_home_layout(), body.gm-home).
 *
 * Entrance animations and the stat counters are Elementor settings
 * (Motion Effects / Counter widget); hover states live here.
 */

/* ---------- reset Elementor container defaults (gm-hp containers only) ---------- */
.gm-home .gm-hp {
    --padding-top: 0px;
    --padding-right: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    --row-gap: 0px;
    --column-gap: 0px;
    --gap: 0px;
}
.gm-home .gm-hp p { margin: 0; }
.gm-home .gm-hp svg { display: block; }
.gm-home .gm-hp .elementor-widget-text-editor,
.gm-home .gm-hp .elementor-heading-title { font-family: Inter, sans-serif; }

/* ---------- band: full-bleed background, 1280 content ---------- */
.gm-home .gm-hp-sec {
    --container-max-width: 1280px;
    --padding-top: 96px;
    --padding-bottom: 96px;
    --padding-left: 80px;
    --padding-right: 80px;
    --row-gap: 56px;
    background-color: #FFFFFF;
}
.gm-home .gm-hp-sec--who { --padding-top: 64px; --padding-bottom: 56px; }
.gm-home .gm-hp-sec--mist { background-color: #F3F7FA; }
.gm-home .gm-hp-sec--svc { --padding-top: 104px; --padding-bottom: 88px; }
.gm-home .gm-hp-sec--navy { background-color: #0D233A; --padding-top: 112px; --padding-bottom: 112px; }
.gm-home .gm-hp-sec--res { background-color: #EAF1FA; --padding-top: 104px; --padding-bottom: 96px; }

/* two columns (600 + 80 + 600), vertically centred */
.gm-home .gm-hp-split { --flex-direction: row; --column-gap: 80px; --row-gap: 48px; --align-items: center; }
.gm-home .gm-hp-split > .e-con { --width: auto; flex: 1 1 0; min-width: 0; }
.gm-home .gm-hp-col { --row-gap: 24px; }
.gm-home .gm-hp-col--32 { --row-gap: 32px; }
.gm-home .gm-hp-stack { --row-gap: 16px; }
.gm-home .gm-hp-head { --row-gap: 16px; --align-items: center; text-align: center; }

/* ---------- type ---------- */
/* eyebrow: red caps text (the PDF drops the Figma's chip background) */
.gm-home .gm-hp-tag p {
    display: inline-block;
    padding: 6px 12px;
    color: #D32F2F;
    font: 700 12px/16px Inter, sans-serif;
    text-transform: uppercase;
}
.gm-home .gm-hp-sec--navy .gm-hp-tag p { color: #FFFFFF; }
.gm-home .gm-hp-h2 .elementor-heading-title {
    margin: 0;
    color: #284D9A;
    font: 700 36px/44px Inter, sans-serif;
    letter-spacing: 0;
}
.gm-home .gm-hp-sec--navy .gm-hp-h2 .elementor-heading-title { color: #FFFFFF; }
.gm-home .gm-hp-body p { color: #1E293B; font: 400 16px/26px Inter, sans-serif; }
.gm-home .gm-hp-sec--navy .gm-hp-body p { color: #CBD5E1; }

/* check list (Who We Are) */
.gm-home .gm-hp-checks ul { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.gm-home .gm-hp-checks li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #0D233A;
    font: 600 15px/20.5px Inter, sans-serif;
}
.gm-home .gm-hp-checks svg { flex: 0 0 20px; width: 20px; height: 20px; color: #D32F2F; }

/* ---------- pill buttons (red #D32F2F / blue #284D9A) ---------- */
.gm-home .gm-hp-btn a,
.gm-home .gm-hp-btn a:visited {
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    padding: 14px 24px;
    border-radius: 999px;
    background: #D32F2F;
    color: #FFFFFF !important;
    font: 600 14px/19px Inter, sans-serif;
    text-decoration: none !important;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.gm-home .gm-hp-btn a:hover { background: #A81F25; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(211, 47, 47, 0.28); }
.gm-home .gm-hp-btn--blue a,
.gm-home .gm-hp-btn--blue a:visited { padding: 12px 20px; background: #284D9A; }
.gm-home .gm-hp-btn--blue a:hover { background: #1E3A75; box-shadow: 0 10px 24px rgba(40, 77, 154, 0.28); }

/* images: 16px corners */
.gm-home .gm-hp-img { overflow: hidden; border-radius: 16px; }
.gm-home .gm-hp-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
}
.gm-home .gm-hp-img--who img { aspect-ratio: 600 / 440; }
.gm-home .gm-hp-img--care img { aspect-ratio: 600 / 520; }
.gm-home .gm-hp-img--map img { aspect-ratio: 600 / 460; }

/* ---------- Uncompromising Excellence: cards + stats ---------- */
.gm-home .gm-hp-grid3 { --flex-direction: row; --flex-wrap: wrap; --align-items: stretch; --column-gap: 32px; --row-gap: 32px; }
.gm-home .gm-hp-grid3 > .e-con { --width: calc((100% - 64px) / 3); }
.gm-home .gm-hp-card {
    --padding-top: 32px;
    --padding-right: 32px;
    --padding-bottom: 32px;
    --padding-left: 32px;
    --row-gap: 16px;
    background: #FFFFFF;
    border-radius: 12px;
}
.gm-home .gm-hp-card__ic { color: #D32F2F; }
.gm-home .gm-hp-card__ic svg { width: 32px; height: 32px; }
.gm-home .gm-hp-h3 .elementor-heading-title {
    margin: 0;
    color: #0D233A;
    font: 700 20px/25.6px Inter, sans-serif;
    letter-spacing: 0;
}
.gm-home .gm-hp-card__text p { color: #64748B; font: 400 14px/22.4px Inter, sans-serif; }

.gm-home .gm-hp-stats { --flex-direction: row; --flex-wrap: wrap; --column-gap: 32px; --row-gap: 24px; }
.gm-home .gm-hp-stats > .elementor-widget { width: auto; flex: 1 1 0; min-width: 240px; }
.gm-home .gm-hp-stat .elementor-counter {
    box-sizing: border-box;
    justify-content: center;
    align-items: center;
    gap: 14px;
    min-height: 155px;
    padding: 30px 24px;
    border-radius: 12px;
    background: #FFFFFF;
}
.gm-home .gm-hp-stat .elementor-counter-number-wrapper {
    flex: none;
    justify-content: center;
    color: #D32F2F;
    font: 700 42px/1 Inter, sans-serif;
}
.gm-home .gm-hp-stat .elementor-counter-title {
    flex: none;
    justify-content: center;
    color: #284D9A;
    font: 700 22px/27px Inter, sans-serif;
    text-align: center;
}

/* ---------- Specialized Care Teams: heading row over the services grid ---------- */
.gm-home .gm-hp-headrow { --flex-direction: row; --justify-content: space-between; --align-items: flex-end; --column-gap: 32px; --row-gap: 20px; }
.gm-home .gm-hp-headrow > .e-con { --width: auto; flex: 1 1 auto; }
.gm-home .gm-hp-headrow > .elementor-widget { width: auto; flex: 0 0 auto; }
.gm-home .gm-hp-sec--svc .gm-hp-stack { --row-gap: 12px; }

/* ---------- cancer care (navy) ---------- */
.gm-home .gm-hp-feats ul { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
.gm-home .gm-hp-feats li { display: flex; align-items: flex-start; gap: 16px; }
.gm-home .gm-hp-feats li > span:first-child {
    display: inline-flex;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #D32F2F;
    color: #FFFFFF;
}
.gm-home .gm-hp-feats li svg { width: 14px; height: 14px; }
.gm-home .gm-hp-feats strong { display: block; color: #FFFFFF; font: 700 18px/23px Inter, sans-serif; }
.gm-home .gm-hp-feats li span span { display: block; margin-top: 4px; color: #94A3B8; font: 400 14px/21px Inter, sans-serif; }

/* ---------- locations ---------- */
.gm-home .gm-hp-regions ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.gm-home .gm-hp-regions strong { display: block; color: #0D233A; font: 700 24px/30px Inter, sans-serif; }
.gm-home .gm-hp-regions span { display: block; margin-top: 4px; color: #64748B; font: 400 14px/19px Inter, sans-serif; }
.gm-home .gm-hp-col > .gm-hp-btn { margin-top: 12px; }

/* ---------- patient resources ---------- */
.gm-home .gm-hp-links ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.gm-home .gm-hp-links a,
.gm-home .gm-hp-links a:visited {
    display: flex;
    align-items: center;
    gap: 16px;
    box-sizing: border-box;
    min-height: 80px;
    padding: 20px;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    background: #FFFFFF;
    color: #0D233A !important;
    font: 600 15px/20px Inter, sans-serif;
    text-decoration: none !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.gm-home .gm-hp-links a:hover { border-color: #284D9A; box-shadow: 0 10px 26px rgba(13, 35, 58, 0.08); transform: translateY(-2px); }
.gm-home .gm-hp-links a > span:first-child {
    display: inline-flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #284D9A;
    color: #FFFFFF;
    transition: background 0.2s ease;
}
.gm-home .gm-hp-links a:hover > span:first-child { background: #D32F2F; }
.gm-home .gm-hp-links a > span:first-child svg { width: 20px; height: 20px; }
.gm-home .gm-hp-links a > span:nth-child(2) { flex: 1 1 auto; }
.gm-home .gm-hp-links a > svg { flex: 0 0 16px; width: 16px; height: 16px; color: #3D83E6; transition: transform 0.2s ease; }
.gm-home .gm-hp-links a:hover > svg { transform: translateX(4px); }

/* ---------- responsive ---------- */
@media (max-width: 1200px) {
    .gm-home .gm-hp-sec { --padding-left: 40px; --padding-right: 40px; }
    .gm-home .gm-hp-split { --column-gap: 48px; }
}
@media (max-width: 1024px) {
    /* rows stack via their Elementor responsive direction (migration 059) */
    .gm-home .gm-hp-split { --align-items: stretch; }
    .gm-home .gm-hp-split > .e-con { flex: 0 0 auto; width: 100%; }
    .gm-home .gm-hp-grid3 > .e-con { --width: calc((100% - 32px) / 2); }
    .gm-home .gm-hp-headrow { --align-items: flex-start; }
}
@media (max-width: 767px) {
    .gm-home .gm-hp-sec { --padding-left: 20px; --padding-right: 20px; --padding-top: 56px; --padding-bottom: 56px; --row-gap: 36px; }
    .gm-home .gm-hp-h2 .elementor-heading-title { font-size: 28px; line-height: 34px; }
    .gm-home .gm-hp-grid3 > .e-con { --width: 100%; }
    .gm-home .gm-hp-stats > .elementor-widget { min-width: 100%; }
    .gm-home .gm-hp-stat .elementor-counter { min-height: 0; padding: 24px; }
    .gm-home .gm-hp-stat .elementor-counter-number-wrapper { font-size: 36px; }
    .gm-home .gm-hp-stat .elementor-counter-title { font-size: 19px; line-height: 24px; }
    .gm-home .gm-hp-links ul { grid-template-columns: 1fr; gap: 12px; }
    .gm-home .gm-hp-regions strong { font-size: 20px; line-height: 26px; }
}
