/* =================================================================
   FOOTER HERITAGE OVERLAY
   Loaded after css/footer.css. Adds the pre-footer Heritage CTA
   block, eyebrow column headings, H V B section divider, and a
   trust line near the brand. Where rules collide with footer.css,
   higher specificity (or property additions) win without !important.
   ================================================================= */

/* Local fallbacks so this file works even if the Heritage tokens
   are not on :root yet on a given page. The page templates already
   define these; values match. */
.hvb-prefooter,
.hvb-footer {
    --hvb-forest:       #1a3a2e;
    --hvb-forest-mid:   #2a5d3a;
    --hvb-forest-deep:  #0f2a1f;
    --hvb-gold:         #d4af37;
    --hvb-gold-soft:    #e8c873;
    --hvb-display:      'Cinzel', Georgia, serif;
    --hvb-body:         'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
    --hvb-t-fast:       0.18s ease;
}

/* -----------------------------------------------------------------
   PRE-FOOTER (Heritage CTA block)
   ----------------------------------------------------------------- */
.hvb-prefooter {
    position: relative;
    overflow: hidden;
    color: #fff;
    font-family: var(--hvb-body);
    background:
        radial-gradient(ellipse 60% 80% at 80% 30%, rgba(212, 175, 55, 0.16), transparent 60%),
        radial-gradient(ellipse 40% 60% at 15% 80%, rgba(212, 175, 55, 0.06), transparent 50%),
        linear-gradient(160deg, var(--hvb-forest) 0%, var(--hvb-forest-mid) 55%, var(--hvb-forest) 100%);
    border-top: 1px solid rgba(212, 175, 55, 0.18);
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}
.hvb-prefooter::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 100% 100% at 50% 0%, rgba(0, 0, 0, 0.18), transparent 60%);
    pointer-events: none;
}

.hvb-prefooter-inner {
    position: relative;
    z-index: 2;
    max-width: 820px;
    margin: 0 auto;
    padding: 88px 24px 96px;
    text-align: center;
}

/* Eyebrow tag (matches page templates) */
.hvb-prefooter .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--hvb-gold);
    padding: 7px 16px 7px 12px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: rgba(212, 175, 55, 0.08);
    border-radius: 100px;
    margin-bottom: 22px;
}
.hvb-prefooter .eyebrow .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--hvb-gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}

.hvb-prefooter-display {
    font-family: var(--hvb-display);
    font-size: clamp(1.85rem, 3.4vw, 2.75rem);
    font-weight: 700;
    line-height: 1.15;
    color: #fff;
    margin: 0 0 18px;
    letter-spacing: 0.01em;
}
.hvb-prefooter-display em {
    font-style: normal;
    color: var(--hvb-gold);
    position: relative;
    display: inline-block;
}
.hvb-prefooter-display em::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--hvb-gold), transparent);
    opacity: 0.5;
}

.hvb-prefooter-lede {
    font-size: 1.02rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    max-width: 580px;
    margin: 0 auto 32px;
}

/* Newsletter form */
.hvb-prefooter-form {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(15, 42, 31, 0.55);
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 100px;
    padding: 6px 6px 6px 22px;
    max-width: 540px;
    margin: 0 auto 18px;
    transition: border-color var(--hvb-t-fast), box-shadow var(--hvb-t-fast);
}
.hvb-prefooter-form:focus-within {
    border-color: var(--hvb-gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18);
}
.hvb-prefooter-form input[type="email"] {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: none;
    color: #fff;
    font-family: inherit;
    font-size: 0.98rem;
    padding: 14px 4px;
    outline: none;
}
.hvb-prefooter-form input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.hvb-prefooter button.hvb-prefooter-submit,
.hvb-prefooter .hvb-prefooter-submit {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--hvb-gold) !important;
    color: var(--hvb-forest-deep) !important;
    text-decoration: none !important;
    font-family: inherit;
    font-weight: 700;
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    border: none;
    border-radius: 100px;
    padding: 13px 22px;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(212, 175, 55, 0.28);
    transition: transform var(--hvb-t-fast), box-shadow var(--hvb-t-fast), background var(--hvb-t-fast);
    flex-shrink: 0;
    text-transform: none;
    letter-spacing: 0.02em;
}
.hvb-prefooter .hvb-prefooter-submit:hover {
    background: var(--hvb-gold-soft) !important;
    color: var(--hvb-forest-deep) !important;
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(212, 175, 55, 0.4);
}
.hvb-prefooter .hvb-prefooter-submit svg {
    color: var(--hvb-forest-deep);
}
.hvb-prefooter .hvb-prefooter-submit:active {
    transform: translateY(0);
}

.hvb-prefooter-note {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
    line-height: 1.6;
}
.hvb-prefooter-note a {
    color: var(--hvb-gold);
    text-decoration: underline;
    text-decoration-color: rgba(212, 175, 55, 0.45);
    text-underline-offset: 3px;
}
.hvb-prefooter-note a:hover {
    color: var(--hvb-gold-soft);
}
.hvb-prefooter-sep {
    margin: 0 6px;
    color: rgba(255, 255, 255, 0.3);
}

@media (max-width: 640px) {
    .hvb-prefooter-inner {
        padding: 64px 20px 72px;
    }
    .hvb-prefooter-form {
        flex-direction: column;
        border-radius: 18px;
        padding: 12px;
        gap: 10px;
    }
    .hvb-prefooter-form input[type="email"] {
        width: 100%;
        text-align: center;
        padding: 12px 4px;
    }
    .hvb-prefooter-submit {
        width: 100%;
        justify-content: center;
        padding: 14px 22px;
    }
}

/* -----------------------------------------------------------------
   FOOTER REFINEMENTS
   Pre-existing layout from footer.css stays; we restyle the column
   headings to read as eyebrow tags and tighten the link treatment.
   ----------------------------------------------------------------- */

/* Brand logo — original SVG ships with black fills which are invisible
   on the dark green footer. brightness(0) zeroes out the existing color
   then invert(1) flips it to white. opacity tones it back so it does
   not glare. If a white logo asset is added later, drop the filter. */
.hvb-footer .hvb-footer-brand img {
    filter: brightness(0) invert(1);
    opacity: 0.92;
}

/* Trust line next to the brand mark */
.hvb-footer-brand {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.hvb-footer-trust {
    margin: 0;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(232, 200, 115, 0.78);
    font-family: var(--hvb-display);
    font-weight: 600;
}
.hvb-footer-trust-sep {
    color: rgba(232, 200, 115, 0.4);
    margin: 0 8px;
}

/* Column headings as eyebrow tags. Add a gold dot via ::before so
   we do not need to touch the existing markup. */
.hvb-footer .hvb-footer-heading {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--hvb-display);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--hvb-gold);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 6px 14px 6px 12px;
    border: 1px solid rgba(212, 175, 55, 0.35);
    background: rgba(212, 175, 55, 0.06);
    border-radius: 100px;
    margin: 0 0 14px;
    border-bottom: 1px solid rgba(212, 175, 55, 0.35); /* override the heavy line */
    padding-bottom: 6px;
}
.hvb-footer .hvb-footer-heading::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--hvb-gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.22);
    flex-shrink: 0;
}

/* Tighten link styling. The base footer.css already sets a cream color,
   but if footer.css fails to load (or a theme rule leaks the WordPress
   preset link color through), force the rest/hover states here. */
.hvb-footer .hvb-footer-col a {
    color: rgba(255, 255, 255, 0.8);
}
.hvb-footer .hvb-footer-col a:hover {
    color: var(--hvb-gold-soft);
}

/* Same safety net for the pre-footer note link. */
.hvb-prefooter-note a {
    color: var(--hvb-gold);
}
.hvb-prefooter-note a:hover {
    color: var(--hvb-gold-soft);
}

/* -----------------------------------------------------------------
   H V B section divider (above bottom bar)
   ----------------------------------------------------------------- */
.hvb-footer-divider {
    padding: 18px 0 14px;
}
.hvb-footer-divider-inner {
    display: flex;
    align-items: center;
    gap: 18px;
}
.hvb-footer-divider-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.35), transparent);
}
.hvb-footer-divider-mark {
    font-family: var(--hvb-display);
    color: var(--hvb-gold);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.32em;
    user-select: none;
}

/* -----------------------------------------------------------------
   PAYMENT LOGOS — relocated to the bottom bar as fine print
   ----------------------------------------------------------------- */
.hvb-footer .hvb-footer-bottom-inner .hvb-footer-payments {
    display: flex;
    align-items: center;
    margin: 0;
}
/* Payment logos are multi-tone (Waave outer + colored Visa/MC
   squares). No whitening filter here — that collapses the colored
   tiles into solid white squares and the V/MC text disappears.
   Render at native colors on a subtle light surface so they read
   as proper card marks. */
.hvb-footer .hvb-footer-bottom-inner .hvb-footer-payments img {
    height: 38px;
    width: auto;
    max-width: 240px;
    opacity: 0.95;
    transition: opacity var(--hvb-t-fast);
}
.hvb-footer .hvb-footer-bottom-inner .hvb-footer-payments:hover img {
    opacity: 1;
}
@media (max-width: 720px) {
    .hvb-footer .hvb-footer-bottom-inner .hvb-footer-payments {
        order: 3;
    }
}

/* -----------------------------------------------------------------
   SOCIAL ICONS — refined gold pills
   ----------------------------------------------------------------- */
.hvb-footer .hvb-footer-social a {
    background: rgba(212, 175, 55, 0.06);
    border: 1px solid rgba(212, 175, 55, 0.3);
    color: var(--hvb-gold-soft);
    transition: background var(--hvb-t-fast), color var(--hvb-t-fast), border-color var(--hvb-t-fast), transform var(--hvb-t-fast);
}
.hvb-footer .hvb-footer-social a:hover,
.hvb-footer .hvb-footer-social a:focus-visible {
    background: var(--hvb-gold);
    color: var(--hvb-forest-deep);
    border-color: var(--hvb-gold);
    transform: translateY(-2px);
}

/* -----------------------------------------------------------------
   ACCESSIBILITY — visually hidden helper used on the email input label
   ----------------------------------------------------------------- */
.hvb-prefooter .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* -----------------------------------------------------------------
   RESPONSIVE — trust line stacks on small screens
   ----------------------------------------------------------------- */
@media (max-width: 768px) {
    .hvb-footer-trust {
        font-size: 0.72rem;
        letter-spacing: 0.06em;
    }
    .hvb-footer-divider-mark {
        font-size: 0.74rem;
        letter-spacing: 0.28em;
    }
}
@media (max-width: 480px) {
    .hvb-footer-trust-sep:nth-of-type(2) {
        display: none;
    }
    .hvb-footer-trust {
        line-height: 1.6;
    }
}