/*
 * Homepage Gutenberg presentation.
 * Only the homepage uses .sp-home-blocks; other pages keep their existing PHP templates.
 * All text and buttons below come from the WordPress editor, not CSS content.
 */
body.setuprise-home .sp-home-blocks {
    margin: 0;
    padding: 0;
    max-width: none;
}
body.setuprise-home .sp-home-blocks > *,
body.setuprise-home .sp-home-blocks .wp-block-group,
body.setuprise-home .sp-home-blocks .wp-block-columns,
body.setuprise-home .sp-home-blocks .wp-block-cover {
    margin-block-start: 0;
    margin-block-end: 0;
}
body.setuprise-home .sp-home-blocks .wp-block-column { min-width: 0; }
body.setuprise-home .sp-home-blocks h1,
body.setuprise-home .sp-home-blocks h2,
body.setuprise-home .sp-home-blocks h3 {
    text-wrap: initial;
}

/* Real core/cover block: image and overlay remain editable in the block editor. */
body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover {
    padding: 0;
    display: block;
    background: #080808;
    min-height: 630px;
    isolation: isolate;
}
body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover::before,
body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover::after {
    content: none !important;
}
body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover > .wp-block-cover__image-background {
    object-fit: cover;
    object-position: 50% 43%;
    opacity: 1;
    z-index: 0;
}
body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover > .wp-block-cover__background {
    background: linear-gradient(90deg,
        rgba(0,0,0,.96) 0%,
        rgba(0,0,0,.89) 37%,
        rgba(0,0,0,.59) 65%,
        rgba(0,0,0,.20) 100%) !important;
    opacity: 1 !important;
    z-index: 1;
}
body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover > .wp-block-cover__inner-container {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    z-index: 2;
}
body.setuprise-home .sp-home-blocks .sp-hero .sp-hero-inner {
    padding-top: 115px;
    padding-bottom: 110px;
}
body.setuprise-home .sp-home-blocks .sp-hero .sp-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    color: #ffd21a;
}
body.setuprise-home .sp-home-blocks .sp-hero .sp-eyebrow::before {
    content: "";
    display: inline-block;
    width: 37px;
    min-width: 37px;
    height: 2px;
    background: #c8102e;
}
body.setuprise-home .sp-home-blocks .sp-hero h1.wp-block-heading {
    color: #fff;
    font-size: clamp(65px, 8vw, 124px);
    letter-spacing: -2px;
    line-height: 1.05;
    max-width: 100%;
    margin: 27px 0 25px;
}
body.setuprise-home .sp-home-blocks .sp-hero h1 em { color: #ffd21a; }
body.setuprise-home .sp-home-blocks .sp-hero .sp-hero-description {
    font-size: 18px;
    line-height: 1.75;
    max-width: 545px;
    margin: 0 0 38px;
    color: #eee;
}
body.setuprise-home .sp-home-blocks .sp-hero .sp-hero-side {
    position: absolute;
    right: 25px;
    top: 43%;
    writing-mode: vertical-rl;
    color: #ffffff88;
    letter-spacing: 3px;
    font-size: 10px;
    font-weight: 800;
    margin: 0;
}
body.setuprise-home .sp-home-blocks .wp-block-buttons.sp-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 35px;
    margin: 0;
}
body.setuprise-home .sp-home-blocks .sp-hero-primary .wp-block-button__link,
body.setuprise-home .sp-home-blocks .sp-approach-button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    background: #c8102e !important;
    color: #fff !important;
    border: none;
    border-radius: 0;
    padding: 17px 23px;
    font: 800 12px 'DM Sans', sans-serif;
    line-height: 1.5;
    letter-spacing: 1px;
}
body.setuprise-home .sp-home-blocks .sp-hero-primary .wp-block-button__link:hover,
body.setuprise-home .sp-home-blocks .sp-approach-button .wp-block-button__link:hover {
    background: #a30a23 !important;
}
body.setuprise-home .sp-home-blocks .sp-hero-secondary .wp-block-button__link {
    background: transparent !important;
    border: none;
    color: #fff !important;
    border-radius: 0;
    padding: 12px 0;
    font: 800 12px 'DM Sans', sans-serif;
    letter-spacing: 1px;
}
body.setuprise-home .sp-home-blocks .sp-hero-secondary .wp-block-button__link:hover { color: #ffd21a !important; }

/* Three editable strapline labels replace the original fixed HTML row. */
body.setuprise-home .sp-home-blocks .sp-strip { background: #ffd21a; padding: 26px 0; }
body.setuprise-home .sp-home-blocks .sp-strip-items.wp-block-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 18px;
    align-items: center;
}
body.setuprise-home .sp-home-blocks .sp-strip-items > .wp-block-column { position: relative; text-align: center; }
body.setuprise-home .sp-home-blocks .sp-strip-items > .wp-block-column:not(:last-child)::after {
    content: "✳";
    position: absolute;
    right: -15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 23px;
}
body.setuprise-home .sp-home-blocks .sp-strip-items p {
    color: #111;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    line-height: 1.6;
    margin: 0;
}

/* Reusable, editable two-column blocks. */
body.setuprise-home .sp-home-blocks .sp-two.wp-block-columns {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 75px;
    align-items: start;
}
body.setuprise-home .sp-home-blocks .sp-kicker { margin: 0 0 22px; }
body.setuprise-home .sp-home-blocks .sp-intro h2,
body.setuprise-home .sp-home-blocks .sp-services h2,
body.setuprise-home .sp-home-blocks .sp-contact h2 {
    font-size: clamp(50px,6vw,85px);
    letter-spacing: -1px;
    margin: 0;
}
body.setuprise-home .sp-home-blocks .sp-intro-right { padding-top: 37px; }
body.setuprise-home .sp-home-blocks .sp-intro-right .sp-lead,
body.setuprise-home .sp-home-blocks .sp-contact .sp-lead {
    font-size: 22px;
    line-height: 1.5;
    color: #191919;
    font-weight: 600;
    margin: 0 0 23px;
}
body.setuprise-home .sp-home-blocks .sp-intro-right > p:not(.sp-lead) {
    color: #657076;
    line-height: 1.9;
    margin: 0;
}
body.setuprise-home .sp-home-blocks .sp-inline-actions { display: flex; margin-top: 24px; }
body.setuprise-home .sp-home-blocks .sp-inline-button .wp-block-button__link {
    display: inline-block;
    padding: 0 0 9px;
    border: none;
    border-bottom: 2px solid #ffd21a;
    border-radius: 0;
    background: transparent !important;
    color: #151515 !important;
    font: 800 12px 'DM Sans', sans-serif;
    letter-spacing: 1px;
    line-height: 1.7;
}
body.setuprise-home .sp-home-blocks .sp-inline-button .wp-block-button__link:hover {
    color: #c8102e !important;
    border-bottom-color: #c8102e;
}

/* Services remain four truly editable WordPress columns/cards. */
body.setuprise-home .sp-home-blocks .sp-sectionhead.wp-block-columns {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 35px;
    margin-bottom: 45px;
}
body.setuprise-home .sp-home-blocks .sp-sectionhead > .wp-block-column:first-child { flex: 1 1 68%; }
body.setuprise-home .sp-home-blocks .sp-sectionhead > .wp-block-column:last-child { flex: 0 1 285px; }
body.setuprise-home .sp-home-blocks .sp-sectionhead > .wp-block-column:last-child p {
    color: #6c7477;
    font-size: 14px;
    line-height: 1.8;
    margin: 0;
}
body.setuprise-home .sp-home-blocks .sp-cards.wp-block-columns {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 15px;
    margin: 0;
}
body.setuprise-home .sp-home-blocks .sp-cards > .sp-card.wp-block-column {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex: none;
    background: #fff;
    padding: 28px 25px 30px;
    min-height: 330px;
    border-bottom: 4px solid transparent;
}
body.setuprise-home .sp-home-blocks .sp-cards > .sp-card.wp-block-column:hover { border-bottom-color: #ffd21a; }
body.setuprise-home .sp-home-blocks .sp-card > p.sp-number {
    flex: 0 0 auto;
    margin: 0;
    color: #a8b2b6;
    font-size: 11px;
    letter-spacing: 1px;
    font-weight: 800;
}
body.setuprise-home .sp-home-blocks .sp-card > p.sp-card-icon {
    flex: 0 0 auto;
    margin: 28px 0 20px;
    font-size: 43px;
    line-height: 1;
    color: #c8102e;
}
body.setuprise-home .sp-home-blocks .sp-card h3.wp-block-heading {
    font-size: 26px;
    line-height: 1.08;
    margin: 0;
    color: #101010;
}
body.setuprise-home .sp-home-blocks .sp-card > p:not(.sp-number):not(.sp-card-icon) {
    flex: 1 1 auto;
    margin: 0;
    font-size: 13px;
    line-height: 1.8;
    color: #6b777b;
}
body.setuprise-home .sp-home-blocks .sp-service-actions {
    margin: auto 0 0;
    padding-top: 18px;
}
body.setuprise-home .sp-home-blocks .sp-service-button,
body.setuprise-home .sp-home-blocks .sp-service-button .wp-block-button__link { width: 100%; }
body.setuprise-home .sp-home-blocks .sp-service-button .wp-block-button__link {
    display: block;
    background: transparent !important;
    color: #c8102e !important;
    border: 0;
    border-radius: 0;
    padding: 0;
    font: 800 11px 'DM Sans', sans-serif;
    line-height: 1.6;
    letter-spacing: 1px;
    text-align: left;
}
body.setuprise-home .sp-home-blocks .sp-service-button .wp-block-button__link:hover { color: #151515 !important; }
body.setuprise-home .sp-home-blocks .sp-all-services.wp-block-buttons { justify-content: center; margin-top: 32px; }

/* Approach and contact use native blocks while matching the existing sections. */
body.setuprise-home .sp-home-blocks .sp-approach {
    padding: 125px 0;
    background: radial-gradient(circle at 90% 35%, #3b141b, transparent 52%), #111;
    border-top: 8px solid #c8102e;
    color: #fff;
}
body.setuprise-home .sp-home-blocks .sp-approach-inner { padding-top: 0; padding-bottom: 0; }
body.setuprise-home .sp-home-blocks .sp-approach h2 {
    color: #fff;
    font-size: clamp(52px,7vw,94px);
    line-height: 1.05;
    margin: 25px 0;
}
body.setuprise-home .sp-home-blocks .sp-approach h2 em { color: #ffd21a; }
body.setuprise-home .sp-home-blocks .sp-approach p:not(.sp-kicker) {
    max-width: 620px;
    margin: 0 0 35px;
    color: #ddd;
    font-size: 17px;
    line-height: 1.8;
}
body.setuprise-home .sp-home-blocks .sp-approach .sp-kicker { color: #ffd21a; }
body.setuprise-home .sp-home-blocks .sp-contact .sp-email {
    border-bottom: 2px solid #ffd21a;
    padding-bottom: 16px;
    margin: 10px 0 0;
}
body.setuprise-home .sp-home-blocks .sp-contact .sp-email a {
    color: #161616;
    text-decoration: none;
    font: 700 clamp(19px,2.5vw,30px) 'DM Sans', sans-serif;
    overflow-wrap: anywhere;
}
body.setuprise-home .sp-home-blocks .sp-contact .sp-email a:hover { color: #c8102e; }
body.setuprise-home .sp-home-blocks .sp-contact .sp-small { margin: 26px 0 0; font-size: 11px; color: #929b9e; }

@media (max-width: 900px) {
    body.setuprise-home .sp-home-blocks .sp-cards.wp-block-columns {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    body.setuprise-home .sp-home-blocks .sp-two.wp-block-columns { gap: 30px; }
}
@media (max-width: 620px) {
    body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover { min-height: 530px; }
    body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover > .wp-block-cover__image-background {
        object-position: 62% center;
    }
    body.setuprise-home .sp-home-blocks .sp-hero.wp-block-cover > .wp-block-cover__background {
        background: linear-gradient(90deg,rgba(0,0,0,.91),rgba(0,0,0,.65)) !important;
    }
    body.setuprise-home .sp-home-blocks .sp-hero .sp-hero-inner { padding-top: 75px; padding-bottom: 85px; }
    body.setuprise-home .sp-home-blocks .sp-hero h1.wp-block-heading {
        font-size: clamp(43px,10vw,60px) !important;
        line-height: 1.25 !important;
        letter-spacing: -.02em;
    }
    body.setuprise-home .sp-home-blocks .sp-hero .sp-hero-description { font-size: 15px; }
    body.setuprise-home .sp-home-blocks .sp-hero .sp-eyebrow { font-size: 9px; letter-spacing: 1.2px; }
    body.setuprise-home .sp-home-blocks .sp-hero .sp-hero-side { display: none; }
    body.setuprise-home .sp-home-blocks .sp-actions.wp-block-buttons { flex-wrap: wrap; gap: 20px; }
    body.setuprise-home .sp-home-blocks .sp-strip-items.wp-block-columns { grid-template-columns: 1fr; gap: 8px; }
    body.setuprise-home .sp-home-blocks .sp-strip-items > .wp-block-column::after { display: none !important; }
    body.setuprise-home .sp-home-blocks .sp-strip-items p { font-size: 10px; }
    body.setuprise-home .sp-home-blocks .sp-two.wp-block-columns { grid-template-columns: 1fr; gap: 24px; }
    body.setuprise-home .sp-home-blocks .sp-intro-right { padding-top: 0; }
    body.setuprise-home .sp-home-blocks .sp-sectionhead.wp-block-columns { display: block; }
    body.setuprise-home .sp-home-blocks .sp-sectionhead .wp-block-column:last-child { margin-top: 22px; }
    body.setuprise-home .sp-home-blocks .sp-cards.wp-block-columns { grid-template-columns: 1fr; }
    body.setuprise-home .sp-home-blocks .sp-cards > .sp-card.wp-block-column { min-height: 270px; }
    body.setuprise-home .sp-home-blocks .sp-approach { padding: 80px 0; }
}
