/* =================================================================
   HVB FREE SAMPLES REDESIGN - page-free-samples.css
   Scoped under .hvb-free-samples + .hvb-free-samples-top-strip
   ================================================================= */

.hvb-free-samples {
    --forest: #1a3a2e;
    --forest-mid: #2a5d3a;
    --forest-light: #3a6d4a;
    --forest-lighter: #85b67c;
    --forest-deep: #0f2a1f;

    --gold: #d4af37;
    --gold-light: #f4e061;
    --gold-dark: #b8960c;
    --gold-soft: #e8c873;

    --cream: #fff9e6;
    --cream-dark: #fff3cd;
    --bone: #f5ecd7;

    --text-dark: #1a1a1a;
    --text-muted: #555555;
    --text-light: #737373;

    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.12);
    --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.15);

    --t: 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    --t-fast: 0.18s ease;

    --font-display: 'Cinzel', Georgia, serif;
    --font-body: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;

    --accent: var(--gold);
    --accent-2: var(--gold-soft);
    --surface: var(--cream);
    --surface-2: var(--cream-dark);
    --page-bg-a: var(--forest);
    --page-bg-b: var(--forest-mid);

    color: var(--text-dark);
    font-family: var(--font-body);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
.hvb-free-samples img { max-width: 100%; display: block; }
.hvb-free-samples a { color: inherit; }

.hvb-free-samples .display {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.1;
}

/* ---------------- TOP STRIP ----------------------------------- */
.hvb-free-samples-top-strip {
    background: #0f2a1f;
    color: #e8c873;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 10px 16px;
    text-align: center;
    font-weight: 600;
    border-bottom: 1px solid rgba(212, 175, 55, 0.15);
}
.hvb-free-samples-top-strip span + span { margin-left: 28px; position: relative; }
.hvb-free-samples-top-strip span + span::before {
    content: "";
    position: absolute;
    left: -16px; top: 50%;
    width: 3px; height: 3px;
    border-radius: 50%;
    background: #d4af37;
    transform: translateY(-50%);
    opacity: 0.6;
}
@media (max-width: 640px) {
    .hvb-free-samples-top-strip span + span { display: block; margin-left: 0; margin-top: 4px; }
    .hvb-free-samples-top-strip span + span::before { display: none; }
}

/* ---------------- REVEAL --------------------------------------- */
html.hvb-reveal-ready .hvb-free-samples .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.hvb-free-samples .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .hvb-free-samples .reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------------- EYEBROW & BUTTONS --------------------------- */
.hvb-free-samples .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(--accent);
    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: 24px;
}
.hvb-free-samples .eyebrow .dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}
.hvb-free-samples .eyebrow-on-light {
    color: var(--forest-mid);
    background: rgba(42, 93, 58, 0.08);
    border-color: rgba(42, 93, 58, 0.3);
}
.hvb-free-samples .eyebrow-on-light .dot { background: var(--forest-mid); box-shadow: 0 0 0 3px rgba(42, 93, 58, 0.18); }

.hvb-free-samples .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 28px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.hvb-free-samples .btn-primary {
    background: var(--accent);
    color: var(--forest-deep);
    box-shadow: 0 8px 28px rgba(212, 175, 55, 0.3);
}
.hvb-free-samples .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(212, 175, 55, 0.45);
    background: var(--accent-2);
}
.hvb-free-samples .btn-ghost {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, 0.25);
}
.hvb-free-samples .btn-ghost:hover { border-color: var(--accent); color: var(--accent); }

/* ---------------- HERO ---------------------------------------- */
.hvb-free-samples .hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 60% 80% at 80% 45%, rgba(212, 175, 55, 0.14) 0%, transparent 55%),
        radial-gradient(ellipse 40% 60% at 10% 75%, rgba(212, 175, 55, 0.06) 0%, transparent 50%),
        linear-gradient(160deg, var(--page-bg-a) 0%, var(--page-bg-b) 55%, var(--page-bg-a) 100%);
    padding: 64px 24px 80px;
    color: #fff;
}
.hvb-free-samples .hero-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 56px;
    align-items: center;
    position: relative;
    z-index: 2;
}
/* Solo hero: no side visual, so the column collapses to one centred track. */
.hvb-free-samples .hero-inner-solo {
    grid-template-columns: minmax(0, 1fr);
    max-width: 820px;
    text-align: center;
    justify-items: center;
}
.hvb-free-samples .hero-inner-solo .hero-lede { margin-left: auto; margin-right: auto; }
.hvb-free-samples .hero-inner-solo .hero-cta { justify-content: center; }
.hvb-free-samples .hero-inner-solo .hero-trust { width: 100%; text-align: left; }
.hvb-free-samples .hero h1 {
    font-size: clamp(1.9rem, 4.2vw, 3.6rem);
    color: #fff;
    margin: 0 0 20px;
}
.hvb-free-samples .hero h1 .h1-line1 { display: block; }
.hvb-free-samples .hero h1 em {
    font-style: normal;
    color: var(--accent);
    position: relative;
    display: inline-block;
}
.hvb-free-samples .hero h1 em::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -6px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
    opacity: 0.5;
}
.hvb-free-samples .hero-lede {
    font-size: clamp(1.05rem, 1.5vw, 1.2rem);
    color: rgba(255, 255, 255, 0.82);
    max-width: 560px;
    margin: 0 0 32px;
    line-height: 1.6;
}
.hvb-free-samples .hero-cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.hvb-free-samples .hero-trust {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.hvb-free-samples .trust-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.85rem;
    line-height: 1.3;
}
.hvb-free-samples .trust-chip svg { width: 18px; height: 18px; color: var(--accent); flex-shrink: 0; }

@media (max-width: 900px) {
    .hvb-free-samples .hero { padding: 40px 20px 56px; }
    .hvb-free-samples .hero-inner { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 520px) {
    .hvb-free-samples .hero-trust { grid-template-columns: 1fr; }
}

/* ---------------- WRAPPERS ------------------------------------ */
.hvb-free-samples .wrap { max-width: 1280px; margin: 0 auto; padding: 96px 24px; }
@media (max-width: 640px) {
    .hvb-free-samples .wrap { padding: 64px 20px; }
}

/* ---------------- SECTION HEADERS ----------------------------- */
.hvb-free-samples .sec-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: end;
    margin-bottom: 56px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.hvb-free-samples .sec-head-light { border-bottom-color: rgba(26, 58, 46, 0.12); }
.hvb-free-samples .sec-head h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    margin: 0;
    color: #fff;
    max-width: 700px;
}
.hvb-free-samples .sec-head h2 em { font-style: normal; color: var(--accent); }
.hvb-free-samples .sec-head-light h2 { color: var(--forest-deep); }
.hvb-free-samples .sec-head-light h2 em { color: var(--forest-mid); }
.hvb-free-samples .sec-head p {
    color: rgba(255, 255, 255, 0.7);
    max-width: 380px;
    margin: 0;
    font-size: 0.95rem;
}
.hvb-free-samples .sec-head-light p { color: var(--text-muted); }
@media (max-width: 768px) {
    .hvb-free-samples .sec-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 40px; }
}

/* ---------------- HOW IT WORKS -------------------------------- */
.hvb-free-samples .how { background: var(--surface); }
.hvb-free-samples .how-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    counter-reset: step;
}
.hvb-free-samples .how-step {
    background: #fff;
    border-radius: 20px;
    padding: 36px 28px 28px;
    border: 1px solid rgba(26, 58, 46, 0.1);
    box-shadow: 0 8px 24px rgba(26, 58, 46, 0.06);
    position: relative;
    transition: transform var(--t), border-color var(--t);
}
.hvb-free-samples .how-step:hover {
    transform: translateY(-4px);
    border-color: rgba(212, 175, 55, 0.4);
}
.hvb-free-samples .how-num {
    position: absolute;
    top: -22px;
    left: 28px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: var(--forest-deep);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(212, 175, 55, 0.3);
    border: 3px solid var(--surface);
}
.hvb-free-samples .how-step h3 {
    font-size: 1.3rem;
    color: var(--forest-deep);
    margin: 0 0 10px;
}
.hvb-free-samples .how-step p {
    color: var(--text-muted);
    font-size: 0.96rem;
    line-height: 1.75;
    margin: 0;
}
@media (max-width: 900px) {
    .hvb-free-samples .how-steps { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------------- PACKS --------------------------------------- */
.hvb-free-samples .packs {
    background: linear-gradient(180deg, var(--page-bg-b) 0%, var(--page-bg-a) 100%);
    color: #fff;
}
.hvb-free-samples .pack-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.hvb-free-samples .pack-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 20px;
    padding: 28px;
    transition: transform var(--t), border-color var(--t);
}
.hvb-free-samples .pack-card:hover {
    transform: translateY(-4px);
    border-color: rgba(212, 175, 55, 0.5);
}
.hvb-free-samples .pack-head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}
.hvb-free-samples .pack-swatch {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 2px solid var(--accent);
    flex-shrink: 0;
}
.hvb-free-samples .pack-swatch-white { background: linear-gradient(135deg, #f5f5f5, #c9c9c9); }
.hvb-free-samples .pack-swatch-green { background: linear-gradient(135deg, #85b67c, #2a5d3a); }
.hvb-free-samples .pack-swatch-red { background: linear-gradient(135deg, #e08888, #a03a3a); }
.hvb-free-samples .pack-swatch-yellow { background: linear-gradient(135deg, #f4e061, #d4af37); }
.hvb-free-samples .pack-swatch-gold { background: linear-gradient(135deg, #d4af37, #6b5014); }

.hvb-free-samples .pack-head h3 {
    color: #fff;
    font-size: 1.2rem;
    margin: 0 0 4px;
}
.hvb-free-samples .pack-meta {
    color: var(--accent);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0;
}
.hvb-free-samples .pack-card p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.92rem;
    line-height: 1.7;
    margin: 0 0 16px;
}
.hvb-free-samples .pack-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.hvb-free-samples .pack-pill {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent);
    background: rgba(212, 175, 55, 0.12);
    border: 1px solid rgba(212, 175, 55, 0.35);
    padding: 5px 11px;
    border-radius: 100px;
}
.hvb-free-samples .pack-cta {
    margin-top: 48px;
    text-align: center;
    padding-top: 32px;
    border-top: 1px solid rgba(212, 175, 55, 0.18);
}
.hvb-free-samples .pack-cta p {
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.88rem;
    margin: 16px 0 0;
}
@media (max-width: 1000px) {
    .hvb-free-samples .pack-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
    .hvb-free-samples .pack-grid { grid-template-columns: 1fr; }
}

/* ---------------- INCLUDED ------------------------------------ */
.hvb-free-samples .included { background: var(--surface); }
.hvb-free-samples .included-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 120px 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 72px;
    align-items: center;
}
.hvb-free-samples .included-stack {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.hvb-free-samples .included-tile {
    background: #fff;
    border-radius: 18px;
    padding: 28px 22px;
    border: 1px solid rgba(26, 58, 46, 0.1);
    box-shadow: 0 10px 24px rgba(26, 58, 46, 0.08);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.hvb-free-samples .included-tile::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent), var(--gold-soft));
}
.hvb-free-samples .tile-1 { transform: translateY(8px); }
.hvb-free-samples .tile-4 { transform: translateY(8px); }
.hvb-free-samples .tile-label {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--forest-deep);
    margin: 10px 0 6px;
}
.hvb-free-samples .tile-sub {
    font-size: 0.78rem;
    color: var(--forest-mid);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.hvb-free-samples .included-text h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    color: var(--forest-deep);
    margin: 0 0 20px;
}
.hvb-free-samples .included-text h2 em { font-style: normal; color: var(--forest-mid); }
.hvb-free-samples .included-text > p {
    color: var(--text-muted);
    font-size: 1rem;
    line-height: 1.75;
    margin: 0 0 20px;
}
.hvb-free-samples .included-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid rgba(26, 58, 46, 0.12);
    padding-top: 18px;
}
.hvb-free-samples .included-list li {
    padding: 10px 0 10px 24px;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.65;
    position: relative;
    border-bottom: 1px solid rgba(26, 58, 46, 0.06);
}
.hvb-free-samples .included-list li:last-child { border-bottom: none; }
.hvb-free-samples .included-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 17px;
    width: 14px; height: 2px;
    background: var(--accent);
}
.hvb-free-samples .included-list li strong {
    color: var(--forest-deep);
    font-weight: 700;
}
@media (max-width: 900px) {
    .hvb-free-samples .included-inner { grid-template-columns: 1fr; gap: 48px; padding: 80px 24px; }
}

/* ---------------- FAQ ----------------------------------------- */
.hvb-free-samples .faq { background: var(--forest-deep); color: #fff; }
.hvb-free-samples .faq-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.hvb-free-samples .faq-item {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(212, 175, 55, 0.22);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color var(--t);
}
.hvb-free-samples .faq-item[open] {
    border-color: rgba(212, 175, 55, 0.5);
    background: rgba(255, 255, 255, 0.06);
}
.hvb-free-samples .faq-item summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    cursor: pointer;
    font-family: var(--font-display);
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    list-style: none;
}
.hvb-free-samples .faq-item summary::-webkit-details-marker { display: none; }
.hvb-free-samples .faq-mark {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--accent);
    position: relative;
    flex-shrink: 0;
}
.hvb-free-samples .faq-mark::before,
.hvb-free-samples .faq-mark::after {
    content: "";
    position: absolute;
    background: var(--accent);
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
}
.hvb-free-samples .faq-mark::before { width: 10px; height: 2px; }
.hvb-free-samples .faq-mark::after { width: 2px; height: 10px; transition: transform var(--t); }
.hvb-free-samples .faq-item[open] .faq-mark::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }

.hvb-free-samples .faq-item p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.95rem;
    line-height: 1.7;
    padding: 0 24px 22px;
    margin: 0;
    font-family: var(--font-body);
    font-weight: 400;
}
.hvb-free-samples .faq-item p a {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 720px) {
    .hvb-free-samples .faq-grid { grid-template-columns: 1fr; }
}

/* ---------------- FINE PRINT ---------------------------------- */
.hvb-free-samples .fine {
    background: linear-gradient(180deg, var(--page-bg-a) 0%, var(--forest-deep) 100%);
    color: #fff;
}
.hvb-free-samples .fine-card {
    max-width: 780px;
    margin: 0 auto;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 20px;
    padding: 48px 44px;
}
.hvb-free-samples .fine-card h2 {
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    color: #fff;
    margin: 0 0 20px;
}
.hvb-free-samples .fine-card h2 em { font-style: normal; color: var(--accent); }
.hvb-free-samples .fine-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.hvb-free-samples .fine-list li {
    padding: 14px 0 14px 26px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.95rem;
    line-height: 1.65;
    position: relative;
    border-bottom: 1px solid rgba(212, 175, 55, 0.14);
}
.hvb-free-samples .fine-list li:last-child { border-bottom: none; }
.hvb-free-samples .fine-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 22px;
    width: 14px; height: 2px;
    background: var(--accent);
}
.hvb-free-samples .fine-list li strong {
    color: #fff;
    font-weight: 700;
}
@media (max-width: 640px) {
    .hvb-free-samples .fine-card { padding: 36px 28px; }
}

/* ---------------- SECTION DIVIDER ----------------------------- */
.hvb-free-samples .section-divider {
    background: var(--forest-deep);
    padding: 24px;
}
.hvb-free-samples .section-divider-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 20px;
}
.hvb-free-samples .section-divider-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.35), transparent);
}
.hvb-free-samples .section-divider-mark {
    font-family: var(--font-display);
    color: var(--accent);
    font-size: 0.85rem;
    letter-spacing: 0.3em;
}

/* ---------------- FINAL CTA ----------------------------------- */
.hvb-free-samples .final-cta {
    background:
        radial-gradient(ellipse 60% 80% at 20% 50%, rgba(212, 175, 55, 0.15) 0%, transparent 60%),
        linear-gradient(160deg, var(--forest-deep) 0%, var(--forest) 100%);
    color: #fff;
}
.hvb-free-samples .final-cta-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 120px 24px;
    text-align: center;
}
.hvb-free-samples .final-cta h2 {
    font-size: clamp(2.2rem, 4.5vw, 3.4rem);
    color: #fff;
    margin: 0 0 18px;
}
.hvb-free-samples .final-cta h2 em { font-style: normal; color: var(--accent); }
.hvb-free-samples .final-cta p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 1rem;
    max-width: 560px;
    margin: 0 auto 28px;
}
.hvb-free-samples .final-cta-row {
    display: inline-flex;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
}
@media (max-width: 640px) {
    .hvb-free-samples .final-cta-inner { padding: 80px 20px; }
}

/* =================================================================
   CLAIM SECTION
   Hosts the [hvb_sample] shortcode. The plugin's form markup carries
   inline styles written for a light surface (labels are inline
   color:#1a1a1a, inputs inline background:#fff). Inline styles beat
   external CSS, so rather than fighting them with !important we give
   the form the light card it already expects and skin around it.
   ================================================================= */
.hvb-free-samples .claim {
    background: linear-gradient(180deg, var(--forest-deep) 0%, var(--forest) 100%);
    color: #fff;
}
.hvb-free-samples .claim-head {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 48px;
}
.hvb-free-samples .claim-head h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    color: #fff;
    margin: 0 0 16px;
}
.hvb-free-samples .claim-head h2 em { font-style: normal; color: var(--accent); }
.hvb-free-samples .claim-head p {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.98rem;
    margin: 0;
}
.hvb-free-samples .claim-card {
    max-width: 820px;
    margin: 0 auto;
    background: #fff;
    border-radius: 24px;
    padding: 44px 40px;
    border: 1px solid rgba(212, 175, 55, 0.28);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}
@media (max-width: 640px) {
    .hvb-free-samples .claim-card { padding: 28px 20px; border-radius: 18px; }
}

/* The plugin renders its own How It Works and Eligibility panels inside
   the shortcode. Both duplicate the .how and .fine sections above, so
   they are hidden here rather than edited out of the plugin, which keeps
   [hvb_sample] fully self-contained if it is used on another page. */
.hvb-free-samples .hvb-instructions,
.hvb-free-samples .hvb-eligibility-rules { display: none; }

/* The shortcode also closes with its own availability bar, which repeats the
   top strip verbatim and lands under the submit button. Hiding the inner
   .hvb-availability alone still left an empty banded strip behind, so the
   whole .hvb-footer wrapper goes; it holds nothing else. */
.hvb-free-samples .hvb-footer,
.hvb-free-samples .hvb-availability { display: none; }

/* Decorative emoji the plugin puts inside its own headings (the closed,
   full, and restricted states each bracket their h3 with feathers). */
.hvb-free-samples .hvb-feather,
.hvb-free-samples .hvb-leaf { display: none; }

/* The falling leaves. add_animations() runs on wp_footer and appends
   .hvb-floating-garuda-fullpage straight to <body> every 1.5s, so this
   rule cannot be scoped under .hvb-free-samples and still match. It is
   unscoped on purpose; this stylesheet only loads on this template.
   !important because the plugin sets the element's style inline via
   jQuery .css() and injects its own <style> into <head> at runtime.
   Hidden elements never fire animationend, so the plugin's own counter
   caps itself at 8 orphaned nodes and then stops appending. */
.hvb-floating-garuda-fullpage { display: none !important; }

/* Light-touch skinning over the plugin form. Anything the plugin sets
   inline is left alone; these only fill the gaps it leaves. */
.hvb-free-samples .hvb-sample-container { max-width: none; margin: 0; padding: 0; }
.hvb-free-samples .hvb-form-row { gap: 18px; }
/* Section labels stay on the body font. Cinzel is for display headings, and
   with the Sample Type section gone the strain label is just another field
   label; setting it in Cinzel left it as the only odd one in the stack.
   Only the family is set here, since the plugin puts size, weight, and
   colour on the element inline and those would win regardless. */
.hvb-free-samples .hvb-section-label { font-family: var(--font-body); }
.hvb-free-samples .hvb-strain-select:focus,
.hvb-free-samples .hvb-form input:focus {
    outline: none;
    border-color: var(--gold) !important;
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18);
}
.hvb-free-samples .hvb-button { width: 100%; }

.hvb-free-samples .claim-fineprint {
    margin: 24px 0 0;
    font-size: 0.82rem;
    line-height: 1.65;
    color: var(--text-light);
    text-align: center;
}
.hvb-free-samples .claim-fineprint a {
    color: var(--forest-mid);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ---------------- CLAIM: EMPTY STATES ------------------------- */
.hvb-free-samples .claim-empty { text-align: center; padding: 16px 0; }
.hvb-free-samples .claim-empty h3 {
    font-size: 1.6rem;
    color: var(--forest-deep);
    margin: 0 0 12px;
}
.hvb-free-samples .claim-empty > p {
    color: var(--text-muted);
    font-size: 0.98rem;
    line-height: 1.7;
    max-width: 480px;
    margin: 0 auto 28px;
}
.hvb-free-samples .waitlist-row {
    display: flex;
    gap: 12px;
    max-width: 480px;
    margin: 0 auto;
    flex-wrap: wrap;
}
.hvb-free-samples .waitlist-row input {
    flex: 1;
    min-width: 200px;
    padding: 15px 18px;
    font-size: 0.95rem;
    font-family: var(--font-body);
    border: 2px solid #e0e0e0;
    border-radius: 100px;
    background: #fff;
    color: var(--text-dark);
}
.hvb-free-samples .waitlist-row input:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18);
}

/* ---------------- INLINE MESSAGES ----------------------------- */
.hvb-free-samples .hvb-message {
    border-radius: 14px;
    padding: 18px 22px;
    margin: 0 0 28px;
    border-left: 3px solid var(--forest-mid);
    background: rgba(42, 93, 58, 0.06);
}
.hvb-free-samples .hvb-message h4 {
    font-family: var(--font-display);
    font-size: 1.05rem;
    color: var(--forest-deep);
    margin: 0 0 6px;
}
.hvb-free-samples .hvb-message p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.65;
    color: var(--text-muted);
}
.hvb-free-samples .hvb-message-error {
    border-left-color: #a03a3a;
    background: rgba(160, 58, 58, 0.06);
}
.hvb-free-samples .hvb-message-error h4 { color: #7e2d2d; }

/* ---------------- FAIL-SAFE: always-visible reveal content ----
   Every page stylesheet in this theme carries this line. The reveal
   hide rule lands on live but .in never gets applied, so without this
   the sections stay at opacity:0. Do not remove it without first
   confirming the reveal actually fires on the server.
   ------------------------------------------------------------- */
.hvb-free-samples .reveal { opacity: 1 !important; transform: none !important; }