/* Hero Static Redesign */
.hero.static-hero {
    position: relative;
    width: 100%;
    min-height: var(--pdc-hero-min-height);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    background: linear-gradient(135deg, #4c1d95 0%, #be185d 100%);
    margin: 0;
    padding: 0;
    /* Keep hero shorter but include the info-strip overlap in the padding so CTA expansion displaces content correctly */
    /* Allow extra bottom space (set by JS during CTA expand) via CSS variable so it animates smoothly */
    padding-bottom: calc(var(--pdc-hero-bottom-offset) + var(--pdc-info-strip-overlap) + var(--pdc-hero-extra-bottom, 0px));
    /* Animate padding-bottom so hero growth (when CTA opens) pushes the info-strip smoothly */
    transition: padding-bottom 0.45s cubic-bezier(0.2,0,0.2,1);
}

/* Background Layer */
.hero-background-gradient {
    position: absolute;
    inset: 0;
    background: inherit;
    z-index: var(--pdc-hero-z-gradient);
}

/* Main Container */
.hero-container {
    position: relative;
    z-index: var(--pdc-hero-z-container);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    padding-top: var(--pdc-hero-padding-top);
}

/* Content Layer (Text + Grid) */
.hero-content-layer {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: flex-start;
    margin-bottom: 0;
}

@media (min-width: 992px) {
    .hero-content-layer {
        grid-template-columns: 1.2fr 1fr;
        gap: 4rem;
    }
}

/* Text Column */
.hero-text-wrapper {
    color: #f1f5f9;
    text-align: left;
    padding-top: 1.5rem;
}

/* Validation seal spacing: ensure separation from the title */
.hero-validation-seal {
    margin-bottom: 1.0rem; /* space between seal and hero title */
}

@media (min-width: 992px) {
    .hero-text-wrapper {
        padding-top: 5rem;
    }
}

/* Typography */
.hero-title {
    font-family: var(--font-heading);
    font-size: 2.8rem;
    font-weight: var(--weight-semibold);
    color: #f1f5f9;
    line-height: 1.1;
    margin-bottom: 1.5rem;
}

.hero-subtitle {
    font-size: 1.2rem;
    line-height: 1.6;
    color: #f1f5f9;
    margin-bottom: 2rem;
    max-width: 600px;
}

/* CTA Header */
.hero-cta-container .cta-header-content h3 {
    margin: 0;
    font-size: 1.25rem; /* 20px */
    font-weight: var(--weight-bold);
    color: #f1f5f9;
}

/* --- Responsive Typography --- */

@media (min-width: 768px) {
    .hero-title {
        font-size: 4rem;
    }
}

@media (min-width: 992px) {
    .hero-subtitle {
        font-size: 1.5rem; /* 24px */
    }
    .hero-cta-container .cta-header-content h3 {
        font-size: 1.875rem; /* 30px */
    }
}

@media (min-width: 1200px) {
    .hero-title {
        font-size: 5rem;
    }
}

/* Optional hero signature (handwritten) */
.hero-signature {
    font-family: var(--font-signature);
    font-size: 1.1rem;
    color: #f1f5f9;
}

/* CTA Container */
.hero-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.hero-button {
    display: block;
    width: calc(100% - 48px);
    margin: 1.25rem 24px;
    padding: 1.35rem 1.6rem;
    border-radius: 14px;
    background: #7f1d1d;
    color: #f1f5f9;
    font-family: var(--font-heading);
    font-size: 1.3rem;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(0,0,0,0.18);
    position: relative;
}
.hero-button::after {
    content: '';
    width: 44px;
    min-height: 100vh;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.25);
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
}

/* --- Hero Image Styling --- */

/* Base styles for the decorative figure that holds the image */
.hero-decor, .info-figure {
    position: absolute;
    /* position the decorative figure so it peeks into the info-strip area but sits higher (visible above the overlap) */
    /* Use positive bottom so the image sits higher inside the hero */
    bottom: var(--pdc-hero-decor-bottom);
    pointer-events: none;
    z-index: var(--pdc-hero-z-decor);
    display: block;
    width: 100%;
}

/* Animate decorative figure movement when CTA expands/collapses */
.hero-decor {
    will-change: transform;
}

.hero-decor .hero-img, .info-figure .hero-img {
    max-width: 130%;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.hero-img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 20px 30px rgba(0,0,0,0.2));
    margin: 0 !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
}


/* --- Mobile Styles --- */
@media (max-width: 991px) {
    .hero.static-hero {
        /* Ensure hero fills viewport to allow bottom alignment of the figure */
        min-height: var(--pdc-hero-min-height-mobile, var(--pdc-hero-min-height));
        padding-top: 0 !important;
    }

    /* Center the decorative figure at the bottom */
    .hero-decor {
        left: 50%;
        transform: translateX(-50%);
        width: 90%; /* Use percentage for responsiveness on small screens */
        max-width: 580px; /* Increased max-width for a larger appearance */
    }

    /* Use mobile-specific bottom offset when present */
    .hero-decor, .info-figure {
        bottom: var(--pdc-hero-decor-bottom-mobile, var(--pdc-hero-decor-bottom));
    }

    /* Adjust image properties for mobile */
    .hero-decor .hero-img {
        max-height: 75vh; /* Taller image for mobile */
        object-position: bottom center;
    }

    /* Create space at the bottom of the hero content to prevent overlap with the image */
    .hero.static-hero .hero-container {
        padding-bottom: var(--pdc-hero-container-padding-bottom-mobile) !important; /* Reduce gap below image */
        padding-top: var(--pdc-hero-padding-top-mobile, var(--pdc-hero-padding-top));
    }
    
    /* Mobile: reduce subtitle size for better readability */
    .hero-subtitle {
        font-size: 1.2rem !important;
        margin-bottom: 2.0rem !important;
    }
}


/* --- Desktop Styles --- */
@media (min-width: 992px) {
    /* Position the decorative figure to the bottom right */
    .hero-decor {
        right: calc((100% - var(--site-max-width, 1280px)) / 2 + var(--container-padding, 1.5rem));
        max-width: 620px; /* Reduced max-width for a smaller appearance */
        transform: translateY(0); /* Removed upward transform */
    }

    /* Adjust image properties for desktop */
    .hero-decor .hero-img {
        max-width: 780px;
        max-height: 720px;
        object-position: bottom right;
    }
}

/* --- Fallback and Other Styles --- */
/* The .info-figure has its own specific styles for sticky positioning */
@media (max-width: 991px) {
    .info-figure {
        position: sticky;
        /* Use mobile-specific variable so design tokens control sticky offset */
        bottom: var(--pdc-hero-decor-bottom-mobile, var(--pdc-hero-decor-bottom));
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        max-width: 580px;
        z-index: 2;
    }
}


/* Action Grid */
.hero-action-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    width: 100%;
    margin-top: auto;
}

@media (min-width: 640px) {
    .hero-action-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Desktop: narrow the CTA in the hero so the pill sits closer to the left edge
   and doesn't span the entire text column. Matches provided visual spec. */
@media (min-width: 992px) {
    .hero-cta-container {
        max-width: 560px; /* limit width on desktop */
        width: 100%;
        margin-right: auto; /* keep it left-aligned within the text column */
    }

    /* tighten spacing inside the CTA header so the expand icon sits closer */
    .hero-cta-container .cta-header {
        gap: 0.5rem;
        padding: 0.9rem 1rem;
    }

    .hero-cta-container .cta-header-content h3 {
        margin: 0;
        font-size: 1.05rem;
    }
}

/* Hero-scoped CTA styling (moved from info-strip.css) */
.hero-cta-container {
    background: #7f1d1d;
    border-radius: 14px;
    padding: 0.75rem 1rem;
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
    color: #f1f5f9;
    width: 100%;
}

.hero-cta-container .cta-header-content h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    color: #f1f5f9;
}

.hero-cta-container .cta-header {
    gap: 0.5rem;
    padding: 0.9rem 1rem;
}

.hero-cta-container .cta-header-content {
    padding-right: 0.5rem;
}

.hero-cta-container .cta-expand-icon {
    margin-left: 0.25rem;
}



/* Pulsing idle effect for the CTA circle (subtle) */
@keyframes ctaRingPulse {
    0% {
        border-color: rgba(255,255,255,0.3);
        box-shadow: 0 0 0 0 rgba(255,255,255,0);
    }
    50% {
        border-color: rgba(255,255,255,0.95);
        box-shadow: 0 0 10px rgba(255,255,255,0.06);
    }
    100% {
        border-color: rgba(255,255,255,0.3);
        box-shadow: 0 0 0 0 rgba(255,255,255,0);
    }
}

/* Apply subtle ring-only pulse when CTA is idle (not expanded). Disable on hover and when expanded. */
.hero-cta-container:not(.expanded) .cta-expand-icon {
    animation: ctaRingPulse 2.6s ease-in-out infinite;
}

.hero-cta-container .cta-expand-icon:hover,
.hero-cta-container.expanded .cta-expand-icon {
    animation: none !important;
    /* ensure hover/expanded border color takes precedence */
    border-color: #f1f5f9 !important;
}

/* CTA description styling and visibility control (hero-scoped) */
.hero-cta-container .cta-description {
    color: #f1f5f9;
    padding: 0 1rem; /* align with header padding */
    margin-top: 0.75rem;
    padding-bottom: 1rem; /* a bit more space below the description */
}

/* When the CTA is expanded (form visible), hide the description until collapsed */
.hero-cta-container.expanded .cta-description {
    display: none !important;
}

@media (min-width: 1024px) {
    .hero-action-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Cards */
.action-card {
    background: #ffffff;
    border-radius: 1rem;
    padding: 1.5rem;
    color: #1e293b;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    text-decoration: none;
}

/* Modal, etc... (kept same as your original) */