/* Adversary Village @ DEF CON 34 - Full Schedule page styles */

.schedule-section-title {
            text-align: center;
            color: #0d294a;
            font-family: "Atkinson Hyperlegible", sans-serif;
            font-size: 3.2rem;
            margin-bottom: 3rem;
            font-weight: 700;
        }

        .three-col-grid {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 24px;
            align-items: start;
            width: 100%;
        }

        .day-column { font-family: 'Lato', sans-serif;
            background: rgba(255,255,255,0.9);
            backdrop-filter: blur(10px);
            border-radius: 14px;
            box-shadow: 0 6px 20px rgba(0,0,0,0.08);
            overflow: hidden;
        }

        .day-column-header { background: #017fa4; color: #fff; padding: 20px 24px; text-align: center; }
        .day-column:nth-child(2) .day-column-header { background: #105f66; }
        .day-column:nth-child(3) .day-column-header { background: #0d294a; }

        .day-column-header h3 {
            font-family: "Atkinson Hyperlegible", sans-serif;
            font-size: 2.4rem; font-weight: 700; margin: 0; color: #fff;
        }
        .day-column-header .day-hours { font-size: 1.4rem; color: rgba(255,255,255,0.75); margin-top: 4px; }
        .day-column-body { padding: 22px 20px; }

        .fullday-section { margin-bottom: 20px; }
        .fullday-label {
            font-family: "Atkinson Hyperlegible", sans-serif;
            font-size: 1.2rem; font-weight: 700; color: #017fa4;
            text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 10px 0;
        }
        .fullday-list { list-style: none; margin: 0; padding: 0; }
        .fullday-list li {
            display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px;
            background: rgba(1,127,164,0.05); border: 1px solid rgba(1,127,164,0.12);
            border-radius: 8px; margin-bottom: 6px;
        }
        .fullday-list li .fd-icon {
            width: 36px; height: 36px; border-radius: 7px;
            background: linear-gradient(135deg, #017fa4 0%, #6ccdb8 100%);
            display: flex; align-items: center; justify-content: center; flex-shrink: 0;
        }
        .fullday-list li .fd-icon svg { width: 18px; height: 18px; fill: #fff; }
        .fullday-list li .fd-icon.fd-red { background: linear-gradient(135deg, #e0004e 0%, #f4845f 100%); }
        .fullday-list li .fd-icon.fd-teal { background: linear-gradient(135deg, #105f66 0%, #6ccdb8 100%); }
        .fullday-list li .fd-body { flex: 1; min-width: 0; }
        .fullday-list li .fd-name {
            font-family: "Atkinson Hyperlegible", sans-serif;
            font-size: 1.5rem; font-weight: 600; color: #222; line-height: 1.3;
        }
        .fullday-list li .fd-desc { font-size: 1.15rem; color: #666; line-height: 1.4; margin-top: 2px; }
        .fullday-list li .fd-location { font-size: 1.05rem; color: #999; display: flex; align-items: center; gap: 3px; margin-top: 3px; }
        .fullday-list li .fd-location svg { width: 11px; height: 11px; fill: #aaa; flex-shrink: 0; }

        .day-divider { border: none; border-top: 1px solid rgba(1,127,164,0.15); margin: 16px 0 18px; }

        .tl-entry {
            padding: 16px 16px; background: rgba(255,255,255,0.6);
            border: 1px solid rgba(0,0,0,0.04); border-radius: 10px; margin-bottom: 10px;
            transition: background 0.2s, box-shadow 0.2s;
            opacity: 0; transform: translateY(12px); animation: fadeInUp 0.5s ease forwards;
        }
        .tl-entry:hover { background: rgba(255,255,255,0.98); box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
        .tl-entry.tl-featured { background: rgba(1,127,164,0.06); border: 1px solid rgba(1,127,164,0.16); }

        /* Type badge */
        .tl-type {
            display: inline-block; font-size: 1.05rem; font-weight: 700;
            text-transform: uppercase; letter-spacing: 0.08em; padding: 3px 10px;
            border-radius: 4px; margin-bottom: 6px;
        }
        .type-keynote { background: rgba(224,0,78,0.12); color: #c5003f; }
        .type-panel { background: #0d294a; color: #fff; }
        .type-talk { background: rgba(1,127,164,0.14); color: #017fa4; }
        .type-workshop { background: rgba(16,95,102,0.14); color: #105f66; }
        .type-activity { background: rgba(108,205,184,0.28); color: #0e806b; }
        .type-demo { background: rgba(241,180,53,0.22); color: #9c7414; }

        /* Session title (lead) */
        .tl-lead {
            font-family: "Atkinson Hyperlegible", sans-serif;
            font-size: 1.75rem; font-weight: 700; color: #017fa4; line-height: 1.3; margin: 2px 0 8px;
        }

        .tl-time { font-size: 1.5rem; font-weight: 700; color: #017fa4; margin: 0 0 2px; }
        .tl-location { font-size: 1.2rem; color: #0d294a; display: flex; align-items: flex-start; gap: 4px; }
        .tl-location svg { width: 13px; height: 13px; fill: #aaa; flex-shrink: 0; margin-top: 3px; }

        /* Uniform speaker list - every speaker in a session is shown the same way */
        .tl-speakers { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
        .tl-sp { display: flex; align-items: center; gap: 12px; }
        .tl-sp-photo img, .tl-sp-ph {
            width: 50px; height: 50px; border-radius: 50%; object-fit: cover;
            border: 2px solid rgba(1,127,164,0.2); flex-shrink: 0; display: block;
        }
        .tl-sp-ph {
            display: flex; align-items: center; justify-content: center;
            background: linear-gradient(135deg, #017fa4 0%, #6ccdb8 100%);
            border: 2px solid rgba(1,127,164,0.15);
        }
        .tl-sp-ph svg { width: 24px; height: 24px; fill: rgba(255,255,255,0.85); }
        .tl-sp-ph.ph-keynote { background: linear-gradient(135deg, #e0004e 0%, #f4845f 100%); }
        .tl-sp-ph.ph-tba { background: linear-gradient(135deg, #8a94a6 0%, #c2cad6 100%); }
        .tl-sp-info { line-height: 1.3; min-width: 0; }
        .tl-sp-info strong {
            display: block; font-family: "Atkinson Hyperlegible", sans-serif;
            font-size: 1.45rem; font-weight: 700; color: #111;
        }
        .tl-sp-info span { font-size: 1.4rem; color: #777; }
        .tl-sp-info .tl-mod { color: #017fa4; font-weight: 700; }

        @keyframes fadeInUp { to { opacity: 1; transform: none; } }
        .tl-entry:nth-child(1)  { animation-delay: 0.03s; }
        .tl-entry:nth-child(2)  { animation-delay: 0.06s; }
        .tl-entry:nth-child(3)  { animation-delay: 0.09s; }
        .tl-entry:nth-child(4)  { animation-delay: 0.12s; }
        .tl-entry:nth-child(5)  { animation-delay: 0.15s; }
        .tl-entry:nth-child(6)  { animation-delay: 0.18s; }
        .tl-entry:nth-child(7)  { animation-delay: 0.21s; }
        .tl-entry:nth-child(8)  { animation-delay: 0.24s; }
        .tl-entry:nth-child(9)  { animation-delay: 0.27s; }
        .tl-entry:nth-child(10) { animation-delay: 0.30s; }
        .tl-entry:nth-child(11) { animation-delay: 0.33s; }
        .tl-entry:nth-child(12) { animation-delay: 0.36s; }
        .tl-entry:nth-child(13) { animation-delay: 0.39s; }
        .tl-entry:nth-child(14) { animation-delay: 0.42s; }
        .tl-entry:nth-child(15) { animation-delay: 0.45s; }
        .tl-entry:nth-child(16) { animation-delay: 0.48s; }

        @media only screen and (min-width: 1600px) {
            .three-col-grid { gap: 30px; }
            .day-column-body { padding: 26px 24px; }
        }
        @media only screen and (max-width: 1200px) {
            .three-col-grid { grid-template-columns: 1fr 1fr; max-width: none; }
            .day-column:nth-child(3) { grid-column: 1 / -1; }
        }
        @media only screen and (max-width: 800px) {
            .three-col-grid { grid-template-columns: 1fr; max-width: none; gap: 18px; }
            .day-column:nth-child(3) { grid-column: auto; }
        }
        @media only screen and (max-width: 600px) {
            .section-with-bg { padding-left: 10px !important; padding-right: 10px !important; }
            .day-column-header { padding: 18px 16px; }
            .day-column-header h3 { font-size: 2.2rem; }
            .day-column-header .day-hours { font-size: 1.3rem; }
            .day-column-body { padding: 16px 14px; }
            .day-column { font-family: 'Lato', sans-serif; border-radius: 10px; }
            .tl-entry { padding: 14px 12px; }
            .tl-type { font-size: 1rem; padding: 3px 8px; }
            .tl-lead { font-size: 1.65rem; }
            .tl-time { font-size: 1.4rem; }
            .tl-location { font-size: 1.15rem; }
            .tl-sp-photo img, .tl-sp-ph { width: 44px; height: 44px; }
            .tl-sp-ph svg { width: 22px; height: 22px; }
            .tl-sp-info strong { font-size: 1.35rem; }
            .tl-sp-info span { font-size: 1.28rem; }
            .fullday-label { font-size: 1.15rem; }
            .fullday-list li { padding: 10px 12px; }
            .fullday-list li .fd-name { font-size: 1.4rem; }
            .fullday-list li .fd-desc { font-size: 1.1rem; }
            .fullday-list li .fd-location { font-size: 1rem; }
            .fullday-list li .fd-icon { width: 32px; height: 32px; }
            .fullday-list li .fd-icon svg { width: 16px; height: 16px; }
            .schedule-section-title { font-size: 2.6rem; margin-bottom: 2rem; }
        }
        @media only screen and (max-width: 400px) {
            .section-with-bg { padding-left: 6px !important; padding-right: 6px !important; padding-top: 40px !important; padding-bottom: 40px !important; }
            .day-column-body { padding: 14px 10px; }
            .tl-entry { padding: 12px 10px; border-radius: 8px; }
            .tl-lead { font-size: 1.55rem; }
            .tl-time { font-size: 1.35rem; }
            .tl-sp-photo img, .tl-sp-ph { width: 42px; height: 42px; }
            .schedule-section-title { font-size: 2.4rem; }
        }

/* ---- sponsor boxes (from DEF CON 34 page) ---- */
.sponsor-box {
            background: #f9f9f9;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            padding: 30px;
            margin: 0 auto 30px auto;
            text-align: center;
            box-sizing: border-box;
        }

        .platinum-sponsor {
            max-width: 960px;
            padding: 40px;
        }

        .sponsor-box[style*="604ca9"] {
            max-width: 900px;
        }

        .platinum-logo {
            width: 100% !important;
            max-width: 100% !important;
            height: auto !important;
            object-fit: contain;
        }

        .sponsors-row[style*="grid-template-columns: 1fr 1fr"] {
            justify-items: center;
            margin: 0 auto;
        }

        .sponsors-row[style*="grid-template-columns: 1fr 1fr"] .sponsor-box:only-child {
            width: 550px;
            grid-column: 1 / -1;
            justify-self: center;
        }

        @media (max-width: 768px) {
            .sponsor-box {
                padding: 20px;
                margin: 0 auto 30px auto !important;
                margin-left: 15px !important;
                margin-right: 15px !important;
            }

            .platinum-sponsor {
                padding: 20px !important;
            }

            .platinum-logo {
                max-height: 250px !important;
            }

            .sponsors-row[style*="grid-template-columns: 1fr 1fr"] {
                grid-template-columns: 1fr !important;
                max-width: 100% !important;
                padding: 0 15px;
                justify-items: center;
            }

            /* Make bronze and CTF sponsor boxes smaller on mobile */
            .sponsors-row[style*="grid-template-columns: 1fr 1fr"] .sponsor-box {
                max-width: 350px !important;
            }
        }

/* full-day activity icon image */
.fullday-list li .fd-icon { overflow: hidden; }
.fullday-list li .fd-icon img { width: 100%; height: 100%; object-fit: cover; display: block; }
