/* =========================
 DAILY PROGRAM
========================= */
.daily-program {
    padding:80px 5vw;
    background:#f5f5f5;
}

.daily-hero {
    position:relative;
    overflow:hidden;
    background:#030A19;
    color:#fff;
    min-height:50vh;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:60px 5vw;
}

.daily-logo-watermark {
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%, -50%);
    opacity:0.08;
    pointer-events:none;
}

.daily-logo-watermark img {
    max-width:320px;
    width:100%;
}

.daily-hero-content {
    position:relative;
    z-index:1;
    max-width:760px;
}

.daily-hero h1 {
   
    font-size:clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 400;
    line-height:1.05;
    margin-bottom:20px;
}

.daily-hero p {
    font-size:1.1rem;
    line-height:1.8;
    max-width:720px;
    margin:0 auto;
    color:#f3f3f3;
}

/* DATE CIRCLES */
.dp-dates {
    display:flex;
    gap:18px;
    justify-content:center;
    flex-wrap:wrap;
    margin-bottom:70px;
}

.dp-date {
    width:55px;
    height:55px;
    border-radius:50%;
    border:1px solid #111;
    background:#fff;
   
    font-size:14px;
    cursor:pointer;
    transition:.3s;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    padding:0;
}

.dp-date span {
    display:block;
    font-size:18px;
}

.dp-date.active,
.dp-date:hover {
    background:#000;
    color:#fff;
    border-color:#000;
}

.dp-all span {
    font-size:22px;
}

.dp-day {
    margin-bottom:90px;
}

.dp-day h2 {
  
    font-size:40px;
    font-weight: 400;
    margin-bottom:45px;
}

.dp-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:35px;
}

.dp-card {
    border:1px solid #111;
    background:#fff;
    cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease;
}

.dp-card:hover {
    transform:translateY(-6px);
    box-shadow:0 20px 45px rgba(0,0,0,.08);
}

.dp-image {
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#000;
}

.dp-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.dp-content {
    padding:25px;
}

.dp-content h3 {
   
    font-size:30px;
    font-weight: 400;
    line-height:1.1;
    margin:0 0 20px;
}

.dp-meta {
    font-size:12px;
    margin-bottom:15px;
    color:#666;
}

.dp-description {
    font-size:16px;
    line-height:1.5;
    color:#333;
    min-height:100px;
}

.dp-ticket {
    display:inline-block;
    margin-top:25px;
    padding:10px 28px;
    border:1px solid #111;
    border-radius:30px;
    color:#111;
    text-decoration:none;

    font-size:18px;
    transition:.3s;
}

.dp-ticket:hover {
    background:#BE1333;
    color:#fff;
    border-color:#BE1333;
}

@media(max-width:1000px){
    .dp-grid { grid-template-columns:repeat(2,1fr); }
}

@media(max-width:650px){
    .dp-grid { grid-template-columns:1fr; }
    .dp-dates { gap:15px; }
}

/* =========================
EVENT MODAL
========================= */
.event-modal {
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.75);
    display:none;
    justify-content:center;
    align-items:center;
    z-index:9999;
    backdrop-filter:blur(5px);
}

.event-modal-box {
    width:min(850px,90vw);
    max-height:90vh;
    overflow:auto;
    background:#fff;
    position:relative;
    animation:modalOpen .35s ease;
    box-shadow:0 30px 80px rgba(0,0,0,.35);
}

@keyframes modalOpen {
    from { opacity:0; transform:translateY(30px); }
    to { opacity:1; transform:translateY(0); }
}

.modal-image-wrapper {
    width:100%;
    height:420px;
    overflow:hidden;
    background:#000;
}

.modal-image-wrapper img {
    width:100%;
    height:100%;
    object-fit:cover;
}

/* Selector is "button.event-close" (not ".event-close") so it outspecifics
   the global "[lang='en'] button" / "[lang='ka'] button" font rules in
   base.css + fonts.css. The system font stack is required because the
   Magistral font files have a broken cmap: U+00D7 (×) maps to the Cyrillic
   "Ч" glyph (afii10041), which looks like a "4" — so the close button
   rendered as "4" instead of "×". */
button.event-close {
    position:absolute;
    top:20px;
    right:25px;
    z-index:5;
    width:45px;
    height:45px;
    border-radius:50%;
    border:none;
    background:white;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    font-size:32px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 5px 20px rgba(0,0,0,.25);
}

.modal-content {
    padding:45px 55px 55px;
}

.modal-date {
    font-size:14px;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#BE1333;
    margin-bottom:20px;
}

.modal-time {
    font-size:14px;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#BE1333;
    margin-bottom:20px;
    display:none;
}

.dp-time {
    color:#BE1333;
    font-weight: 400;
}

.modal-content h2 {

    font-size:48px;
    font-weight: 400;
    margin:0 0 30px;
    line-height:1.1;
}

.modal-venue {
    border-left:3px solid #BE1333;
    padding-left:20px;
    margin-bottom:35px;
}

.modal-venue span {
    font-size:12px;
    letter-spacing:2px;
    color:#777;
}

.modal-venue p {
    font-size:22px;
    margin:5px 0;
}

.modal-description {
    font-size:17px;
    line-height:1.7;
    color:#333;
}

.modal-ticket {
    display:inline-block;
    margin-top:35px;
    padding:14px 35px;
    border-radius:30px;
    background:#BE1333;
    color:white;
    text-decoration:none;
    font-size:18px;
}

.modal-ticket:hover {
    background:#111;
}

@media(max-width:700px){
    .modal-image-wrapper { height:250px; }
    .modal-content { padding:30px; }
    .modal-content h2 { font-size:34px; }
}
