/* ── FONTS ── */
@font-face {
    font-family: 'SFProBoldItalic';
    src: url("../static/fonts/SF-Pro-Display-BoldItalic.otf") format('opentype');
}
@font-face {
    font-family: 'SFProBold';
    src: url("../static/fonts/SF-Pro-Display-Bold.otf") format('opentype');
}
@font-face {
    font-family: 'SFProRegular';
    src: url("../static/fonts/SF-Pro-Display-Regular.otf") format('opentype');
}

/* ── RESET ── */
body {
    background-color: #ffffff;
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

.container, .card {
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* ── TYPOGRAPHY ── */

.title {
    font-family: 'SFProBoldItalic', -apple-system, sans-serif;
    font-size: 120px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0px;
    color: #000000;
    margin: 0;
}

.display-6 {
    font-family: 'SFProBold', -apple-system, sans-serif;
    font-size: 60px;
    font-weight: 700;
    margin: 20px 0 -10px 0;
    color: #000000;
    letter-spacing: 0px;
}

.display-2 {
    font-family: 'SFProBold', -apple-system, sans-serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #000000;
    margin: 2px 0 30px 0;
}

.body-2 {
    font-family: 'SFProRegular', -apple-system, sans-serif;
    font-size: 18px;
    line-height: 1.5;
    letter-spacing: 0.03em;
    word-spacing: 0.05em;
    color: #000000;
    max-width: 1050px;
    margin: 0 auto 85px auto;
    padding: 0 40px;
}

.caption {
    font-family: 'SFProRegular', -apple-system, sans-serif;
    font-size: 14px;
    letter-spacing: 0.03em;
    word-spacing: 0.05em;
    color: #000000;
}

/* ── BUTTONS ── */

.btn-small {
    background-color: #000000;
    color: #ffffff;
    font-family: 'SFProBold', -apple-system, sans-serif;
    font-size: 20px;
    width: 145px;
    height: 48px;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
    margin: 30px auto 0 auto;
}

.btn-start {
    background-color: #000000;
    color: #ffffff;
    font-family: 'SFProBoldItalic', -apple-system, sans-serif;
    font-size: 26px;
    width: 190px;
    height: 56px;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease;
    margin: 0 auto;
}

.btn-start:hover {
    background-color: #222222;
}

/* ── FOOTER ── */
.footer-text {
    position: fixed;
    bottom: 40px;
    left: 0;
    right: 0;
    text-align: center;
}

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
    .body-2 { max-width: 90%; }
}
@media (max-width: 768px) {
    .title { font-size: 80px; }
    .body-2 { font-size: 16px; }
}

/* ── OVERLAY WIDGET — CONDITIONS 1 & 2 (HOVER-TO-EXPAND BAR) ── */

#overlay-widget {
    position: fixed;
    top: 70px;
    right: 30px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 16px;
    z-index: 10000;
    width: 923px;
    pointer-events: none;
}

.overlay-button-bar {
    pointer-events: auto;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 10px 12px;
    gap: 8px;
    background: #FFFFFF;
    box-shadow: 0px 9.75px 58.5px rgba(0, 0, 0, 0.25);
    border-radius: 45px;
}

.overlay-widget-button {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 3px 20px;
    background: #8A9099;
    border-radius: 100px;
    border: none;
    color: #FFFFFF;
    font-family: 'SFProThin', sans-serif;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.2s ease;
    white-space: nowrap;
}

.overlay-widget-button:hover {
    background: #1E2226;
}

#overlay-detail-card {
    pointer-events: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 24px;
    gap: 14px;
    width: 100%;
    background: #FFFFFF;
    box-shadow: 0px 9.75px 58.5px rgba(0, 0, 0, 0.25);
    border-radius: 20px;
    box-sizing: border-box;
    text-align: left;
}

#overlay-detail-card[hidden] {
    display: none;
}

.detail-title {
    font-family: 'SFProBold', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #000000;
    margin: 0;
}

.detail-quote-container {
    position: relative;
    padding-left: 15px;
    width: 100%;
    margin: 5px 0;
}

.detail-quote-bar {
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 100%;
    background: #1E2226;
}

.detail-quote-text {
    font-family: 'SFProRegular', sans-serif;
    font-style: italic;
    font-size: 12px;
    line-height: 15px;
    color: #000000;
    margin: 0;
}

.detail-block {
    display: flex;
    flex-direction: column;
    padding: 10px 13px;
    border-radius: 10px;
    width: 100%;
    box-sizing: border-box;
}

.detail-block-label {
    font-family: 'SFProBold', sans-serif;
    font-weight: 700;
    font-size: 12px;
    margin-bottom: 4px;
}

.detail-block-body {
    font-family: 'SFProRegular', sans-serif;
    font-size: 12px;
    line-height: 1.4;
}

.block-intent       { background: #D6E0FF; }
.block-counterpoint { background: #DBFAE5; }
.block-question     { background: #FAE0EE; }


/* ── HIGHLIGHT MODE — CONDITION 3 ── */

.highlight-target {
    background-color: transparent; /* Invisible by default */
    border-radius: 4px;
    padding: 1px 3px;
    transition: background-color 0.2s ease;
    text-decoration: none;
    color: inherit;
}

/* This only applies when JS adds the 'active' class in Option 3 */
.highlight-target.active {
    background-color: #3c4248; 
    font-weight: 500;
    cursor: pointer;
    color: #FFFFFF;
}

.highlight-target.active:hover {
    background-color: #1E2226;
}

/* The actual popup card */
#highlight-popup {
    /* Layout */
    display: none; 
    flex-direction: column;
    align-items: flex-start;
    padding: 9px 17px;
    gap: 14px;
    box-sizing: border-box;
    
    /* Positioning */
    position: absolute;
    z-index: 10000;
    
    /* Visuals - This fixes the transparency and shadow */
    width: 650px; 
    height: auto;
    background-color: #FFFFFF !important; /* Forces solid white background */
    box-shadow: 0px 9.75px 58.5px rgba(0, 0, 0, 0.25);
    border-radius: 20px;
    
    /* Interaction */
    pointer-events: auto; 
}

/* Child Elements */
.overlay-title {
    font-family: 'SFProBold', sans-serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: #000000;
    margin: 0;
    align-self: stretch;
}

.overlay-quote-container {
    position: relative;
    width: 100%;
    padding-left: 20px;
    box-sizing: border-box;
}

.overlay-quote-bar {
    position: absolute;
    width: 3px;
    height: 100%;
    left: 0;
    top: 0;
    background: #1E2226;
}

.overlay-quote-text {
    font-family: 'SFProRegular', sans-serif;
    font-style: italic;
    font-size: 12px;
    line-height: 15px;
    color: #000000;
    margin: 0;
}

.overlay-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.overlay-block {
    display: flex;
    flex-direction: column;
    padding: 5px 13px;
    width: 100%;
    border-radius: 10px;
    box-sizing: border-box;
}

.block-label {
    font-family: 'SFProBold', sans-serif;
    font-weight: 700;
    font-size: 12px;
    line-height: 22px;
    color: #000000;
}

.block-text {
    font-family: 'SFProRegular', sans-serif;
    font-size: 12px;
    line-height: 15px;
    color: #000000;
}

.top-intent          { background: #D6E0FF; }
.middle-counterpoint { background: #DBFAE5; }
.bottom-question     { background: #FAE0EE; }