/* ===== KEY TERMS BLURB - FLEX-COLLISION MODEL (Hero-Style) ===== */
/*
  Flexbox with min-width: 0 hack ensures text and button stay on Line 1.
  Text truncates with "..." exactly at collision point with button.
  Mimics hero section subtitle behavior - text cuts mid-word with "..." before button.
*/

/* Base Container - Flexbox Collision Model */
.signup-offers-page .key-terms-blurb,
.casino-bonus-page .key-terms-blurb,
.no-wagering-page .key-terms-blurb,
.sports-offers-page .key-terms-blurb,
.blog-page .key-terms-blurb,
.casino-signup-offers-page .key-terms-blurb,
.no-deposit-free-spins-page .key-terms-blurb {
    display: flex !important; /* Flexbox guarantees same line */
    align-items: center; /* Center align items vertically */
    width: 100%;
    font-size: 0.7rem !important; /* Mobile-first small size */
    line-height: 1.2; /* Exact line-height for perfect alignment */
    color: #555;
    margin-top: -1px;
    margin-bottom: 0;
    padding: 8px 15px 6px 15px;
    background: #f8f9fa;
    border-radius: 0 0 0.75rem 0.75rem;
    border-top: 1px solid rgba(224, 224, 224, 0.5);
    box-sizing: border-box;
    position: relative;
    text-align: left !important; /* Force left alignment */
    overflow: hidden; /* Contain content */
    white-space: nowrap; /* Prevent wrapping at container level */
}

/* Text Container - Flex Item with min-width: 0 Magic */
.signup-offers-page .key-terms-text,
.casino-bonus-page .key-terms-text,
.no-wagering-page .key-terms-text,
.sports-offers-page .key-terms-text,
.blog-page .key-terms-text,
.casino-signup-offers-page .key-terms-text,
.no-deposit-free-spins-page .key-terms-text {
    flex: 1; /* Take all available space */
    min-width: 0; /* THE MAGIC FIX: Allows flex item to shrink smaller than its text content */
    overflow: hidden;
    text-overflow: ellipsis; /* Browser adds "..." exactly where it hits the button */
    white-space: nowrap; /* Single line, no wrapping */
    word-break: break-all; /* Allow mid-word cutting */
    margin: 0;
    padding: 0;
    line-height: 1.2; /* Match container line-height */
    text-align: left !important; /* Force left alignment */
    box-sizing: border-box;
    color: #666;
}

/* Mobile: Ensure left alignment */
@media (max-width: 767px) {
    .signup-offers-page .key-terms-text,
    .casino-bonus-page .key-terms-text,
    .no-wagering-page .key-terms-text,
    .sports-offers-page .key-terms-text,
    .blog-page .key-terms-text,
    .casino-signup-offers-page .key-terms-text,
    .no-deposit-free-spins-page .key-terms-text {
        text-align: left !important;
    }
}

/* Toggle Button - Flex Item, No Shrink */
.signup-offers-page .key-terms-toggle,
.casino-bonus-page .key-terms-toggle,
.no-wagering-page .key-terms-toggle,
.sports-offers-page .key-terms-toggle,
.blog-page .key-terms-toggle,
.casino-signup-offers-page .key-terms-toggle,
.no-deposit-free-spins-page .key-terms-toggle {
    flex-shrink: 0; /* Prevents button from being squashed */
    flex-grow: 0; /* Doesn't grow */
    color: #00cc5a !important; /* Green */
    font-weight: 700 !important; /* Bold */
    margin-left: 2px; /* Pulls button right up to the ellipsis */
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    white-space: nowrap;
    text-decoration: none !important; /* No underline - just green and bold */
    font-size: inherit;
    font-family: inherit;
    line-height: 1.2;
    -webkit-appearance: none;
    appearance: none;
}

.signup-offers-page .key-terms-toggle:hover,
.casino-bonus-page .key-terms-toggle:hover,
.no-wagering-page .key-terms-toggle:hover,
.sports-offers-page .key-terms-toggle:hover,
.blog-page .key-terms-toggle:hover,
.casino-signup-offers-page .key-terms-toggle:hover,
.no-deposit-free-spins-page .key-terms-toggle:hover {
    color: #00a047 !important; /* Darker green on hover */
}

/* Expanded State - Break Flex to Allow Multi-Line Wrapping */
.signup-offers-page .key-terms-blurb.is-expanded,
.casino-bonus-page .key-terms-blurb.is-expanded,
.no-wagering-page .key-terms-blurb.is-expanded,
.sports-offers-page .key-terms-blurb.is-expanded,
.blog-page .key-terms-blurb.is-expanded,
.casino-signup-offers-page .key-terms-blurb.is-expanded,
.no-deposit-free-spins-page .key-terms-blurb.is-expanded {
    display: block !important; /* Break flex to allow multi-line wrapping */
    white-space: normal !important; /* Allow wrapping */
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    min-height: auto !important;
    /* Allow blurb to extend and push content below down */
}

.signup-offers-page .key-terms-blurb.is-expanded .key-terms-text,
.casino-bonus-page .key-terms-blurb.is-expanded .key-terms-text,
.no-wagering-page .key-terms-blurb.is-expanded .key-terms-text,
.sports-offers-page .key-terms-blurb.is-expanded .key-terms-text,
.blog-page .key-terms-blurb.is-expanded .key-terms-text,
.casino-signup-offers-page .key-terms-blurb.is-expanded .key-terms-text,
.no-deposit-free-spins-page .key-terms-blurb.is-expanded .key-terms-text {
    display: inline !important; /* Inline so button can sit at end of text */
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important; /* Allow wrapping */
    word-break: normal !important; /* Normal word breaking - full words to new lines */
    word-wrap: break-word !important; /* Break long words only when necessary */
    overflow-wrap: break-word !important; /* Modern property for word wrapping */
    text-align: left !important; /* Force left alignment */
    flex: none !important; /* Remove flex properties */
    min-width: auto !important; /* Remove min-width restriction */
}

/* Expanded State - Button Inline at End of Text */
.signup-offers-page .key-terms-blurb.is-expanded .key-terms-toggle,
.casino-bonus-page .key-terms-blurb.is-expanded .key-terms-toggle,
.no-wagering-page .key-terms-blurb.is-expanded .key-terms-toggle,
.sports-offers-page .key-terms-blurb.is-expanded .key-terms-toggle,
.blog-page .key-terms-blurb.is-expanded .key-terms-toggle,
.casino-signup-offers-page .key-terms-blurb.is-expanded .key-terms-toggle,
.no-deposit-free-spins-page .key-terms-blurb.is-expanded .key-terms-toggle {
    display: inline !important; /* Keep button at the end of the full text */
    margin-left: 5px !important;
    flex: none !important; /* Remove flex properties */
}

/* Responsive Font Scaling */
@media (min-width: 768px) {
    .signup-offers-page .key-terms-blurb,
    .casino-bonus-page .key-terms-blurb,
    .no-wagering-page .key-terms-blurb,
    .sports-offers-page .key-terms-blurb,
    .blog-page .key-terms-blurb,
    .casino-signup-offers-page .key-terms-blurb,
    .no-deposit-free-spins-page .key-terms-blurb {
        font-size: 0.75rem !important;
    }
}
