/* ===================================== */
/* HERO TYPOGRAPHY */
/* ===================================== */

.is-style-hero-title {
    color: var(--wp--preset--color--dark-blue, #135a70);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: .3px;
    font-size: 8rem;
}

h1.wp-block-heading.is-style-hero-title,
h2.wp-block-heading.is-style-hero-title,
h3.wp-block-heading.is-style-hero-title {
    font-size: 6rem;
    line-height: 1.05;
}

.wp-block-heading.is-style-hero-title[style*="font-size"],
.wp-block-heading.is-style-hero-title[class*="-font-size"] {
    font-size: 6rem !important;
}

/* TAGLINE — light-blue, larger than body */
.is-style-hero-lead {
    color: var(--wp--preset--color--light-blue, #80bdd9);
    font-weight: 400;
    line-height: 1.15;
}

/* BODY — slightly darker text */
.is-style-hero-body {
    color: rgba(0, 0, 0, .84);
    line-height: 1.6;
    font-size: clamp(1rem, .95rem + .28vw, 1.125rem);
    margin: 0 0 1.25rem 0;
}

/* BUTTON ROW */
.is-style-hero-buttons {
    gap: .75rem;
}

/* CTA BUTTON FIX */
.is-style-hero-cta .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.9rem 2rem;
    background: var(--wp--preset--color--yellow, #f99d1c);
    color: var(--wp--preset--color--dark-blue, #135a70);
    border: 0;
    border-radius: 9999px;
    text-decoration: none;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
    font-weight: 600;
    font-size: clamp(0.9rem, 0.8rem + 0.3vw, 1.125rem);
    white-space: nowrap;
    transition: filter 0.2s ease, transform 0.2s ease;
    position: relative;
}

/* Append Font Awesome arrow-right via CSS mask */
.is-style-hero-cta .wp-block-button__link::after {
    content: "";
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
    margin-left: 0.5rem;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path fill='black' d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h306.7l-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/></svg>") no-repeat center;
    -webkit-mask-size: contain;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path fill='black' d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h306.7l-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/></svg>") no-repeat center;
    mask-size: contain;
    transition: background 0.2s ease;
}

/* Hover/focus states */
.is-style-hero-cta .wp-block-button__link:hover {
    filter: brightness(0.95);
    transform: translateY(-1px);
}

.is-style-hero-cta .wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--dark-blue, #135a70);
    outline-offset: 4px;
}

.is-style-hero-cta .wp-block-button__link:hover::after,
.is-style-hero-cta .wp-block-button__link:focus-visible::after {
    background: var(--wp--preset--color--white, #fff);
}

/* ===================================== */
/* IMAGE BLEED HELPERS */
/* ===================================== */

:root {
    --bk-bleed-y-s: 40px;
    --bk-bleed-y-m: 80px;
    --bk-bleed-y-l: 120px;
    --bk-bleed-x-s: 40px;
    --bk-bleed-x-m: 80px;
    --bk-bleed-x-l: 120px;
}

.wp-block-image.bleed-up {
    margin-top: calc(-1 * var(--bk-bleed-y-m));
}

.wp-block-image.bleed-down {
    margin-bottom: calc(-1 * var(--bk-bleed-y-m));
}

.wp-block-image.bleed-left {
    margin-left: calc(-1 * var(--bk-bleed-x-m));
}

.wp-block-image.bleed-right {
    margin-right: calc(-1 * var(--bk-bleed-x-m));
}

/* Small */
.wp-block-image.bleed-s.bleed-up {
    margin-top: calc(-1 * var(--bk-bleed-y-s));
}

.wp-block-image.bleed-s.bleed-down {
    margin-bottom: calc(-1 * var(--bk-bleed-y-s));
}

.wp-block-image.bleed-s.bleed-left {
    margin-left: calc(-1 * var(--bk-bleed-x-s));
}

.wp-block-image.bleed-s.bleed-right {
    margin-right: calc(-1 * var(--bk-bleed-x-s));
}

/* Large */
.wp-block-image.bleed-l.bleed-up {
    margin-top: calc(-1 * var(--bk-bleed-y-l));
}

.wp-block-image.bleed-l.bleed-down {
    margin-bottom: calc(-1 * var(--bk-bleed-y-l));
}

.wp-block-image.bleed-l.bleed-left {
    margin-left: calc(-1 * var(--bk-bleed-x-l));
}

.wp-block-image.bleed-l.bleed-right {
    margin-right: calc(-1 * var(--bk-bleed-x-l));
}

.is-style-leading-arrow {
    position: relative;
}

.is-style-leading-arrow::before {
    content: "\f061";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    display: inline-block;
    margin-right: 0.6em;
    color: var(--arrow-color, currentColor);
    font-style: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.is-style-leading-arrow.has-text-color::before {
    color: var(--wp--style--color--text, currentColor);
}

/* ===================================== */
/* LEADING ARROW STYLE (Frontend) */
/* ===================================== */

.is-style-leading-arrow {
    position: relative;
}

.is-style-leading-arrow::before {
    content: "\f061";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    display: inline-block;
    margin-right: 0.6em;
    color: var(--arrow-color, currentColor);
    font-style: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.is-style-leading-arrow.has-text-color::before {
    color: var(--wp--style--color--text, currentColor);
}

/* =====================================
   Quote block redesign with author
   ===================================== */
.wp-block-quote {
    background: none;
    border: none;
    padding: 0;
    margin: 0 auto;
    max-width: 900px;
    text-align: center;
    color: #164b5f;
    font-style: italic;
    font-size: clamp(1.2rem, 2vw, 1.8rem);
    line-height: 1.5;
    font-family: 'Barlow', sans-serif;
    position: relative;
}

.wp-block-quote p {
    margin: 0;
}

.wp-block-quote p::before {
    content: "“";
    font-size: 2.5em;
    line-height: 0;
    vertical-align: -0.4em;
    margin-right: 0.1em;
    color: #164b5f;
}

.wp-block-quote p::after {
    content: "”";
    font-size: 2.5em;
    line-height: 0;
    vertical-align: -0.4em;
    margin-left: 0.1em;
    color: #164b5f;
}

/* Author (cite) styling */
.wp-block-quote cite,
.wp-block-quote footer {
    display: block;
    margin-top: 1.5em;
    font-style: normal;
    font-weight: 500;
    color: #8bb9d6;
    font-size: 1.3rem;
    text-align: left;
    margin-left: 4rem;
}

/* Remove weird italics/quotation inheritance */
.wp-block-quote cite em,
.wp-block-quote cite i {
    font-style: normal;
}