/* Page geometry and feature states; shared appearance lives in styles.css and families.css. */
.funnel-progress-bar { height: 12px; background: var(--hairline); border-radius: 10px; margin-bottom: 2.5rem; overflow: hidden; box-shadow: inset 0 2px 4px rgba(0,0,0,0.05); } 
    .funnel-progress-fill { height: 100%; background: var(--primary); border-radius: 10px; transition: width 1s cubic-bezier(0.34, 1.56, 0.64, 1); box-shadow: 0 2px 4px rgba(54, 117, 136, 0.2); } 
    .stage-card { border-left: 5px solid var(--primary) !important; } 
    .bullet-item { padding: 1.25rem 0; border-bottom: 1px solid var(--hairline); transition: all 0.2s ease; } 
    .bullet-item:last-child { border-bottom: none; } 
    
    .bullet-icon-wrapper {
        width: 32px;
        height: 32px;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 0.25rem; /* Precise alignment with first line of text */
    }

    .reflection-q { margin-bottom: 2rem; } 
    audio { width: 100%; margin: 1rem 0; filter: drop-shadow(var(--shadow-sm)); } 
    #next-btn:disabled { opacity: 0.6; transform: scale(0.98); } 
    .grounding-text { background: var(--light); border-radius: var(--radius-md); padding: 2rem; font-size: 1.15rem; line-height: 1.8; border: 1px solid var(--hairline); }
    
    .funnel-card {
        background: rgba(54, 117, 136, 0.03) !important;
        border: 1px solid rgba(54, 117, 136, 0.1) !important;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05) !important;
        border-radius: var(--radius-md) !important;
        transition: all 0.3s ease;
    }
    .funnel-card:hover {
        background: rgba(54, 117, 136, 0.05) !important;
        transform: translateY(-2px);
        box-shadow: 0 10px 15px -3px rgba(0,0,0,0.08) !important;
    }
    
    .custom-radio-card { width: 100%; }
    .custom-radio-card .btn-outline-primary {
        border: 2px solid var(--surface-muted);
        color: #475569;
        background: var(--paper);
        transition: all 0.2s ease;
        width: 100%;
        text-align: left;
    }
    .custom-radio-card .btn-outline-primary:hover {
        border-color: var(--hairline);
        background: #ffffff;
        transform: translateY(-1px);
    }
    .custom-radio-card .btn-check:checked + .btn-outline-primary {
        border-color: var(--bs-primary);
        background-color: #ffffff;
        color: var(--bs-primary);
        box-shadow: 0 10px 15px -3px rgba(var(--bs-primary-rgb), 0.1);
    }
    .custom-radio-card .btn-check:checked + .btn-outline-primary .radio-icon::before {
        content: "\f26a"; /* bi-check-circle-fill */
    }
    
    /* Prevent text overflow on small screens */
    .card-body, .bullet-item, .reflection-q, p, h2, h3, h4, h5, .grounding-text, .text-muted, .fw-bold {
        word-wrap: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        max-width: 100%;
    }
    
    /* Uniform button sizing for questions on mobile */
    @media (max-width: 576px) {
        .custom-radio-card .btn-outline-primary {
            min-height: 64px;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            padding: 1rem 1.25rem !important;
            font-size: 0.95rem;
            width: 100% !important;
        }
        .custom-radio-card {
            display: block !important;
            width: 100% !important;
            margin-bottom: 0.75rem !important;
        }
    }
    
    .max-w-800 { max-width: 800px; margin: 0 auto; }
