/*
 * Glenn Asks Quiz Maker — Public Styles (modal + quiz)
 * Cleaned & corrected: no JS here. Designed to override Blocksy safely.
 */

/* ===== Modal sizing ===== */
.ga2-modal-inner {
    width: 30% !important;
    max-width: 30% !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    border: 2px solid #154734 !important;
}

@media (max-width: 768px) {
    .ga2-modal-inner {
        width: 80% !important;
        max-width: 80% !important;
        border: 1px solid #154734 !important;
    }
}

/* ===== Modal chrome ===== */
.ga2-modal-header {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    padding: 15px 20px !important;
    border-bottom: none !important;
    background: #E8DAC0 !important;
}

.ga2-modal-header h2,
.ga2-modal-title,
.glenn-asks-question-header,
.glenn-asks-question-count {
    display: none !important; /* hide all titles and counters */
}

/* Remove any title content */
.ga2-modal-header h2::before,
.ga2-modal-title::before {
    content: none !important;
}

.ga2-modal-header::before {
    content: none !important;
}

/* Single exit button styling with door icon */
.ga2-modal-close {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    background: none !important;
    border: none !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    color: #154734 !important;
    padding: 8px 12px !important;
    line-height: 1 !important;
    z-index: 1000 !important;
    border-radius: 4px !important;
    transition: background-color 0.2s ease !important;
    min-height: 32px !important;
    font-weight: 600 !important;
    font-family: 'Inter', sans-serif !important;
    text-decoration: none !important;
}

.ga2-modal-close:hover {
    background-color: rgba(21, 71, 52, 0.1) !important;
    color: #154734 !important;
    text-decoration: none !important;
}

.ga2-modal-close i {
    font-size: 1.2rem !important;
    margin-left: 4px !important;
}

/* Force remove any unwanted content */
.ga2-modal-close::before,
.ga2-modal-close::after {
    content: none !important;
    display: none !important;
}

/* Nuclear option - hide any X content */
.ga2-modal-close *:not(i) {
    font-family: 'Inter', sans-serif !important;
}

/* Hide ALL other close button variations completely */
.ga2-close-button,
[data-modal="close"]:not(.ga2-modal-close),
.modal-close:not(.ga2-modal-close),
.close:not(.ga2-modal-close),
button[data-dismiss="modal"]:not(.ga2-modal-close),
.modal-header .close:not(.ga2-modal-close),
.btn-close,
.modal-close-btn {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Ensure only ga2-modal-close shows in the header */
.ga2-modal-header .ga2-modal-close {
    display: flex !important;
}

.ga2-modal-header .ga2-close-button,
.ga2-modal-header [data-modal="close"],
.ga2-modal-header .modal-close,
.ga2-modal-header .close {
    display: none !important;
}

.ga2-modal-body {
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;           /* global scale */
    line-height: 1.6;
    color: #333;
    padding: 0 40px 40px 40px;
    box-sizing: border-box;
    background: #E8DAC0 !important;
}

/* Mobile font size override */
@media (max-width: 768px) {
    .ga2-modal-body {
        font-size: 1rem !important;
        padding: 20px !important;
    }
    
    /* Mobile heading sizes */
    .ga2-modal-body h1,
    #glenn-asks-quiz-container h1,
    .glenn-asks-quiz-container h1 {
        font-size: 1.1rem !important;
    }
    
    .ga2-modal-body h2,
    .ga2-modal-body h3,
    .ga2-modal-body h4,
    .ga2-modal-body h5,
    .ga2-modal-body h6,
    #glenn-asks-quiz-container h2,
    #glenn-asks-quiz-container h3,
    #glenn-asks-quiz-container h4,
    #glenn-asks-quiz-container h5,
    #glenn-asks-quiz-container h6,
    .glenn-asks-quiz-container h2,
    .glenn-asks-quiz-container h3,
    .glenn-asks-quiz-container h4,
    .glenn-asks-quiz-container h5,
    .glenn-asks-quiz-container h6 {
        font-size: 1rem !important;
    }
}

/* ===== Quiz container ===== */
#glenn-asks-quiz-container,
.glenn-asks-quiz-container {
    font-family: 'Inter', sans-serif;
    color: #333;
    line-height: 1.6;
    text-align: center;
    box-sizing: border-box;
}

.glenn-asks-quiz-title,
#glenn-asks-quiz-progress {
    display: none; /* hide title/progress if present */
}

/* Loading */
.glenn-asks-quiz-loading {
    font-size: 1.1em;
    color: #555;
    padding: 20px;
}

/* ===== Question area ===== */
#glenn-asks-question-display {
    padding: 0;
    margin-bottom: 25px;
}

#glenn-asks-question-text,
.glenn-asks-question-text {
    font-size: 1.2rem;   /* requested size */
    font-weight: 700;    /* bold */
    color: #154734;      /* requested color */
    margin: 0 0 20px;
    line-height: 1.4;
    text-align: left;
    font-family: inherit;
}

/* Mobile question text sizing */
@media (max-width: 768px) {
    #glenn-asks-question-text,
    .glenn-asks-question-text {
        font-size: 1rem !important;
    }
}

/* Dynamic content wrapper */
#glenn-asks-question-content,
.glenn-asks-question-content,
.glenn-asks-question-content-area {
    margin-top: 0;
    padding-top: 0;
    text-align: left;
}

/* ===== Multiple-choice layout (grid + radio alignment) ===== */
.glenn-asks-mcq,
.glenn-asks-mc-options,
.glenn-asks-answer-list,
.glenn-asks-answers,
.glenn-asks-options,
.answers,
.options {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px 24px;
    text-align: left;
    align-items: start;
}

@media (max-width: 640px) {
    .glenn-asks-mcq,
    .glenn-asks-mc-options,
    .glenn-asks-answer-list,
    .glenn-asks-answers,
    .glenn-asks-options,
    .answers,
    .options {
        grid-template-columns: 1fr !important;
    }
}

/* Option rows with extra space between radio and text */
.glenn-asks-mcq-choice,
.glenn-asks-answer-item,
.glenn-asks-option,
.answer,
.option,
#glenn-asks-question-content label {
    display: flex !important;
    align-items: center !important;  /* Center alignment for clean positioning */
    gap: 12px !important;            /* Slightly increased gap for larger radio buttons */
    margin: 0 !important;
    color: #154734 !important;
    background: none !important;
    border: none !important;
    line-height: 1.4 !important;    /* Ensure consistent line height */
}

/* Enhanced radio button styling for better visibility and alignment */
#glenn-asks-question-content input[type="radio"],
.glenn-asks-answer-radio,
input[name*="ga2-mcq-"] {
    min-width: 1.2em !important;     /* Larger than current 1em */
    min-height: 1.2em !important;   /* Larger than current 1em */
    width: 1.2em !important;
    height: 1.2em !important;
    margin: 0 !important;            /* Remove all margins for clean centering */
    flex-shrink: 0 !important;       /* Prevent radio from shrinking */
    accent-color: #007cba !important;
}

/* Hover affordance (subtle) */
.glenn-asks-answer-item:hover,
.glenn-asks-option:hover,
.answer:hover,
.option:hover {
    background-color: #f0f0f0;
    border-color: #c0c0c0;
}

/* Selected/correct/incorrect badges (optional visual hints) */
.glenn-asks-selected-correct { 
    background-color: #d4edda; 
    border-color: #28a745; 
    font-weight: 700; 
}

.glenn-asks-selected-incorrect { 
    background-color: #f8d7da; 
    border-color: #dc3545; 
    font-weight: 700; 
}

.glenn-asks-actual-correct { 
    background-color: #cce5ff; 
    border-color: #007bff; 
    font-weight: 700; 
}

/* ===== Buttons (submit/next/finish/retake + opener) ===== */
.glenn-asks-btn,
.ga2-concept-btn,
.glenn-asks-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 35px 8px 0 0;    /* extra space above buttons */
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    /* requested palette */
    background: #154734;
    color: rgb(221, 203, 164);   /* #DDCBA4 in rgb */
    border: 2px solid #154734;
    text-decoration: none;
    transition: background-color .2s ease-in-out, color .2s ease-in-out, transform .1s ease-out;
}

/* Centre the ga2-concept-btn button specifically */
.ga2-concept-btn {
    display: block !important;
    margin: 25px auto 0 !important;
    width: fit-content !important;
}

.glenn-asks-btn:hover,
.glenn-asks-btn:focus,
.ga2-concept-btn:hover,
.ga2-concept-btn:focus,
.glenn-asks-button:hover,
.glenn-asks-button:focus {
    background: rgb(221, 203, 164); /* hover background */
    color: #154734;                 /* hover text */
    border-color: #154734;
    transform: translateY(-2px);
}

.glenn-asks-button:disabled,
.glenn-asks-btn:disabled {
    background-color: #a0a0a0;
    color: #fff;
    border-color: #a0a0a0;
    cursor: not-allowed;
    transform: none;
}

/* ===== Feedback & explanation ===== */
#glenn-asks-feedback,
.glenn-asks-feedback {
    margin-top: 25px;
    padding: 15px 20px;
    border-radius: 6px;
    font-size: 1.1em;
    text-align: left !important;  /* Left align feedback text */
    font-weight: 700;
}

/* Mobile feedback sizing */
@media (max-width: 768px) {
    #glenn-asks-feedback,
    .glenn-asks-feedback {
        font-size: 0.9rem !important;
    }
}

.ga2-right, 
.glenn-asks-correct {
    background-color: #E8EDED !important;  /* Updated background colour */
    border: 2px solid #154734 !important;  /* Updated border colour */
    color: #154734 !important;             /* Green text */
}

.ga2-wrong, 
.glenn-asks-incorrect {
    background-color: #F6E8EA !important;  /* Updated red background colour */
    border: 2px solid #A6192E !important;  /* Updated border colour */
    color: #A6192E !important;             /* Red text */
}

/* Neutral base for explanation (no !important so state can override) */
#glenn-asks-explanation.glenn-asks-explanation {
    display: block;
    line-height: 1.5;
    font-size: 1rem;
    margin-top: 0 !important;      /* Remove gap between feedback and explanation */
    padding: 10px 20px;           /* Match feedback padding */
    border-radius: 6px;
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    text-align: left !important;  /* Left align explanation text */
}

/* Mobile explanation sizing */
@media (max-width: 768px) {
    #glenn-asks-explanation.glenn-asks-explanation {
        font-size: 0.9rem !important;
    }
}

/* ✅ Correct explanation — merged with feedback styling */
.ga2-modal #glenn-asks-explanation.glenn-asks-explanation.correct,
#glenn-asks-explanation.glenn-asks-explanation.correct {
    border: 2px solid #154734 !important;  /* Updated border colour */
    background-color: #E8EDED !important;  /* Updated background colour */
    color: #154734 !important;             /* Green text */
    border-top: none !important;           /* Remove border between boxes */
    border-radius: 0 0 6px 6px !important; /* Only bottom corners rounded */
}

/* ✅ Incorrect explanation — merged with feedback styling */
.ga2-modal #glenn-asks-explanation.glenn-asks-explanation.incorrect,
#glenn-asks-explanation.glenn-asks-explanation.incorrect {
    border: 2px solid #A6192E !important;  /* Updated border colour */
    background-color: #F6E8EA !important;  /* Updated background colour */
    color: #A6192E !important;             /* Red text */
    border-top: none !important;           /* Remove border between boxes */
    border-radius: 0 0 6px 6px !important; /* Only bottom corners rounded */
}

/* Adjust feedback border radius when explanation is present */
.ga2-right:has(+ #glenn-asks-explanation.correct),
.glenn-asks-correct:has(+ #glenn-asks-explanation.correct) {
    border-radius: 6px 6px 0 0 !important; /* Only top corners rounded when explanation follows */
    border-bottom: 2px solid #E8EDED !important; /* Match border to background color to hide separator */
}

.ga2-wrong:has(+ #glenn-asks-explanation.incorrect),
.glenn-asks-incorrect:has(+ #glenn-asks-explanation.incorrect) {
    border-radius: 6px 6px 0 0 !important; /* Only top corners rounded when explanation follows */
    border-bottom: 2px solid #F6E8EA !important; /* Match border to background color to hide separator */
}

/* ===== MCQ text sizing ===== */
.glenn-asks-mcq,
.glenn-asks-mcq label {
    font-size: 1.2rem; /* requested */
}

/* Mobile MCQ sizing */
@media (max-width: 768px) {
    .glenn-asks-mcq,
    .glenn-asks-mcq label {
        font-size: 1rem !important;
    }
    
    /* Mobile adjustments for radio buttons */
    #glenn-asks-question-content input[type="radio"],
    .glenn-asks-answer-radio,
    input[name*="ga2-mcq-"] {
        min-width: 1.1em !important;
        min-height: 1.1em !important;
        width: 1.1em !important;
        height: 1.1em !important;
    }
    
    .glenn-asks-mcq-choice,
    .glenn-asks-answer-item,
    .glenn-asks-option,
    .answer,
    .option,
    #glenn-asks-question-content label {
        gap: 10px !important; /* Slightly smaller gap on mobile */
    }
}

/* ===== Results ===== */
#glenn-asks-results,
#glenn-asks-quiz-results {
    padding: 20px;
    text-align: center;
}

.glenn-asks-results-title { 
    font-size: 1.6em; 
    color: #2c3e50; 
    margin-bottom: 16px; 
}

.glenn-asks-score, 
.glenn-asks-percentage { 
    font-size: 1.2em; 
    color: #34495e; 
    margin-bottom: 10px; 
}

/* Mobile results sizing */
@media (max-width: 768px) {
    .glenn-asks-results-title { 
        font-size: 1.2rem !important; 
    }
    
    .glenn-asks-score, 
    .glenn-asks-percentage { 
        font-size: 1rem !important; 
    }
}

/* ===== Hotspot / Matching / Reorder (kept minimal; optional) ===== */
.glenn-asks-hotspot-container { 
    position: relative; 
    display: inline-block; 
    max-width: 100%; 
    height: auto; 
    margin: 20px auto; 
    border: 1px solid #ddd; 
    box-shadow: 0 2px 5px rgba(0,0,0,.1); 
    cursor: crosshair; 
}

.glenn-asks-hotspot-image { 
    display: block; 
    max-width: 100%; 
    height: auto; 
}

.glenn-asks-hotspot-overlay { 
    position: absolute; 
    inset: 0; 
    z-index: 10; 
}

.glenn-asks-click-marker { 
    position: absolute; 
    width: 15px; 
    height: 15px; 
    background: rgba(255,0,0,.7); 
    border-radius: 50%; 
    transform: translate(-50%,-50%); 
    z-index: 11; 
    border: 2px solid #fff; 
    box-shadow: 0 0 5px rgba(0,0,0,.5); 
}

.glenn-asks-correct-hotspot-marker { 
    position: absolute; 
    width: 20px; 
    height: 20px; 
    background: rgba(0,255,0,.5); 
    border-radius: 50%; 
    transform: translate(-50%,-50%); 
    z-index: 9; 
    border: 2px solid #fff; 
    box-shadow: 0 0 5px rgba(0,0,0,.5); 
    pointer-events: none; 
}

/* ===== Responsive tweaks ===== */
@media (max-width: 768px) {
    .ga2-modal-body { 
        padding: 28px !important; 
    }
    
    #glenn-asks-quiz-container { 
        padding: 0; 
        margin: 0 auto; 
        max-width: 95%; 
    }
    
    #glenn-asks-question-text { 
        font-size: 1rem !important; 
    }
    
    .glenn-asks-answer-item { 
        font-size: 1rem !important; 
    }
    
    .glenn-asks-btn, 
    .ga2-concept-btn { 
        padding: 10px 20px; 
        font-size: 1rem; 
        margin: 8px auto 0; 
    }
}

/* Enhanced mobile button handling */
@media (max-width: 480px) {
    .glenn-asks-btn, 
    .ga2-concept-btn,
    #glenn-asks-submit-answer,
    #glenn-asks-next-question,
    #glenn-asks-finish-quiz,
    #glenn-asks-retake-quiz { 
        width: 100% !important; 
        box-sizing: border-box !important; 
        margin-top: 15px !important;
        min-height: 44px !important; /* iOS recommended minimum touch target */
        touch-action: manipulation !important; /* Prevent zoom on double-tap */
        -webkit-tap-highlight-color: rgba(0,0,0,0.1) !important; /* Visual feedback */
        position: relative !important;
        z-index: 10 !important; /* Ensure buttons are above other content */
        pointer-events: auto !important; /* Ensure buttons are clickable */
        cursor: pointer !important;
    }
}

/* Ensure button content doesn't interfere with clicks - applies to all screen sizes */
.glenn-asks-btn *,
.ga2-concept-btn *,
#glenn-asks-submit-answer *,
#glenn-asks-next-question *,
#glenn-asks-finish-quiz *,
#glenn-asks-retake-quiz * {
    pointer-events: none !important; /* Prevent child elements from blocking clicks */
}

/* Ensure hidden truly hides & overlay clickable */
.ga2-overlay[hidden] { 
    display: none !important; 
}

.ga2-modal[hidden] { 
    display: none !important; 
}

.ga2-overlay { 
    pointer-events: auto; 
}