/* =========================================================
   ANNOUNCEMENTS — BOOTSTRAP 5 RESPONSIVE LAYOUT
========================================================= */
.announcements {
    padding: clamp(52px, 3vw, 82px) 0;
    background:
        radial-gradient(
            circle at 8% 12%,
            rgba(98, 102, 234, .16),
            transparent 30%
        ),
        radial-gradient(
            circle at 92% 88%,
            rgba(238, 118, 71, .14),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #f0f1ff 0%,
            #faf7fb 50%,
            #fff3ed 100%
        );
}

.announcements-head .section-title {
    font-size: clamp(2rem, 3.4vw, 3.25rem);
}

/* =========================================================
   ANNOUNCEMENT TABS
========================================================= */
.announcement-tabs {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.announcement-tab {
    width: auto;
    min-width: 120px;
    padding: 6px 12px;
    border: 1px solid #d9d9e9;
    border-radius: 10px;
    background: #fff;
    color: #494b8e;
    font-size: clamp(.95rem, 1.2vw, 1.1rem);
    font-weight: 750;
    line-height: 1.35;
    text-align: center;
    transition: color .2s ease, background .2s ease,
                border-color .2s ease, transform .2s ease;
}

.announcement-tab.active {
    border-color: var(--plum);
    background: var(--plum);
    color: #fff;
    box-shadow: 0 8px 20px rgba(33, 34, 84, .07);
}

.announcement-tab:hover {
    color: var(--coral);
    transform: translateY(-2px);
}

.announcement-tab.active:hover {
    color: #fff;
}

/* =========================================================
   ANNOUNCEMENT PANELS
========================================================= */
.announcement-panels {
    min-width: 0;
    padding: 18px;
    border: 1px solid #dfdfec;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(32, 33, 80, .08);
}

.announcement-panel {
    display: none;
}

.announcement-panel.active {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* =========================================================
   SHARED ANNOUNCEMENT CARD
========================================================= */
.announcement-item {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 18px;
    overflow: hidden;
    border: 1px solid #a9e7ca;
    border-radius: 14px;
    background: linear-gradient(145deg, #f1fbf6, #f8fdfa);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(8, 120, 63, .09);
    transition: transform .22s ease, border-color .22s ease,
                background .22s ease, box-shadow .22s ease;
}

.announcement-item:hover {
    border-color: #70cea2;
    background: linear-gradient(145deg, #eaf9f1, #f5fcf8);
    color: inherit;
    text-decoration: none;
    transform: translateY(-3px);
    box-shadow: 0 17px 35px rgba(8, 120, 63, .16);
}

.announcement-featured {
    align-items: flex-start;
}

.announcement-date {
    display: flex;
    flex: 0 0 93px;
    min-width: 93px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 10px;
    border-radius: 11px;
    background: linear-gradient(135deg, #08783f, #0b9250);
    color: #fff;
    box-shadow: 0 8px 18px rgba(8, 120, 63, .18);
}

.announcement-date strong {
    color: #fff;
    font-size: clamp(1rem, 1.5vw, 1.5rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.05em;
}

.announcement-date span,
.announcement-date small {
    display: block;
    color: #d8f7e7;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.45;
}

.announcement-date span {
    letter-spacing: .06em;
}

.announcement-content {
    flex: 1 1 auto;
    min-width: 0;
}

.announcement-content h3,
.announcement-title-line h3 {
    margin: 0;
    color: #164a32;
    font-size: clamp(.9rem, 1.2vw, 1.05rem);
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: -.015em;
    overflow-wrap: anywhere;
}

.announcement-item:hover .announcement-content h3,
.announcement-item:hover .announcement-title-line h3 {
    color: #08783f;
}

.announcement-arrow {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid #9eddbf;
    border-radius: 50%;
    background: #fff;
    color: #08783f;
    transition: color .2s ease, background .2s ease,
                transform .2s ease;
}

.announcement-item:hover .announcement-arrow {
    background: #08783f;
    color: #fff;
    transform: translate(2px, -2px);
}

.announcement-title-line {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 10px;
}

/* =========================================================
   FEATURED DOCUMENT BUTTONS
========================================================= */
.announcement-document-links {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 10px;
}

.announcement-document-button {
    display: inline-flex;
    min-width: 0;
    min-height: 44px;
    flex: 1 1 230px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 10px 13px;
    border-radius: 9px;
    color: #fff;
    font-size: clamp(.75rem, 1vw, .9rem);
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere;
    transition: background .2s ease, transform .2s ease,
                box-shadow .2s ease;
}

.announcement-document-button i {
    flex: 0 0 auto;
    color: #fff;
    font-size: .82rem;
}

.bus-route-button {
    background: linear-gradient(135deg, #08783f, #0ca65a);
}

.bus-route-button:hover {
    background: linear-gradient(135deg, #065d31, #087f45);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 7px 16px rgba(8, 120, 63, .22);
}

.orientation-button {
    background: linear-gradient(135deg, #6266ea, #4d51cc);
}

.orientation-button:hover {
    background: linear-gradient(135deg, #5155d4, #393daa);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 7px 16px rgba(98, 102, 234, .22);
}

.announcement-item:focus-visible,
.announcement-document-button:focus-visible,
.announcement-tab:focus-visible {
    outline: 3px solid rgba(215, 184, 117, .7);
    outline-offset: 3px;
}

/* =========================================================
   ADMISSIONS — AVAILABILITY OF SEATS
   COMPLETE BOX IS THE HYPERLINK
========================================================= */
.admissions-allotment-alert {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 15px 24px;
    overflow: hidden;
    border: 1px solid #70cea2;
    border-radius: 14px;
    background: linear-gradient(135deg, #08783f, #0b9250);
    color: #fff;
    font-size: clamp(.9rem, 1.25vw, 1.05rem);
    font-weight: 800;
    line-height: 1.45;
    text-align: center;
    text-decoration: none;
    overflow-wrap: anywhere;
    box-shadow: 0 10px 25px rgba(8, 120, 63, .18);
    transition: transform .2s ease, box-shadow .2s ease;
}

.admissions-allotment-alert:link,
.admissions-allotment-alert:visited,
.admissions-allotment-alert:hover,
.admissions-allotment-alert:focus,
.admissions-allotment-alert:active {
    color: #fff;
    text-decoration: none;
}

.admissions-allotment-alert i {
    flex: 0 0 auto;
    color: #fff;
    font-size: clamp(1.1rem, 1.7vw, 1.4rem);
    line-height: 1;
}

.admissions-allotment-alert span {
    min-width: 0;
}

.admissions-allotment-alert:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(8, 120, 63, .26);
}

.admissions-allotment-alert:focus-visible {
    outline: 3px solid rgba(215, 184, 117, .7);
    outline-offset: 3px;
}

/* =========================================================
   PANEL FOOTER
========================================================= */
.announcement-panel-footer {
    padding: 10px 2px 2px;
    color: var(--plum);
    font-size: .9rem;
    font-weight: 750;
    text-align: right;
}

.announcement-panel-footer a {
    color: inherit;
    text-decoration: none;
}

.announcement-panel-footer a:hover {
    color: var(--coral);
}

.announcement-panel-footer i {
    margin-left: 10px;
    transition: transform .2s ease;
}

.announcement-panel-footer a:hover i {
    transform: translateX(3px);
}

/* =========================================================
   TABLET
========================================================= */
@media (max-width: 1199px) {
    .announcement-document-button {
        flex-basis: 100%;
    }
}

@media (max-width: 991px) {
    .announcement-document-button {
        flex: 1 1 230px;
    }
}

/* =========================================================
   MOBILE
========================================================= */
@media (max-width: 767px) {
    .announcements {
        padding: 44px 0 50px;
    }

    .announcement-panels {
        padding: 12px;
        border-radius: 15px;
    }

    .announcement-panel.active {
        gap: 7px;
    }

    .announcement-item {
        display: grid;
        grid-template-columns: 62px minmax(0, 1fr) 29px;
        align-items: center;
        gap: 10px;
        padding: 12px;
        border-radius: 12px;
    }

    .announcement-featured {
        grid-template-columns: 62px minmax(0, 1fr);
        align-items: start;
    }

    .announcement-date {
        width: 62px;
        min-width: 0;
        padding: 9px 5px;
        text-align: center;
    }

    .announcement-date strong {
        font-size: 1.8rem;
    }

    .announcement-date span,
    .announcement-date small {
        font-size: .53rem;
    }

    .announcement-content h3,
    .announcement-title-line h3 {
        font-size: clamp(.85rem, 3.5vw, .95rem);
        line-height: 1.4;
    }

    .announcement-arrow {
        width: 29px;
        height: 29px;
        font-size: .72rem;
    }

    .announcement-title-line {
        display: block;
        width: 100%;
        margin-bottom: 8px;
    }

    .announcement-document-links {
        flex-direction: column;
        gap: 8px;
    }

    .announcement-document-button {
        width: 100%;
        min-height: 42px;
        flex: 0 0 auto;
        padding: 9px 10px;
        font-size: clamp(.7rem, 3vw, .8rem);
    }

    .admissions-allotment-alert {
        gap: 9px;
        padding: 13px 14px;
        border-radius: 12px;
        font-size: clamp(.8rem, 3.3vw, .9rem);
    }

    .admissions-allotment-alert i {
        font-size: 1.05rem;
    }
}

/* =========================================================
   VERY SMALL MOBILE
========================================================= */
@media (max-width: 400px) {
    .announcement-tabs {
        display: flex;
        flex-wrap: wrap;
    }

    .announcement-tab {
        min-width: 0;
        flex: 1 1 130px;
    }

    .announcement-item,
    .announcement-featured {
        grid-template-columns: 1fr;
    }

    .announcement-date {
        display: flex;
        width: 100%;
        min-height: 48px;
        justify-content: flex-start;
        padding: 8px 12px;
        text-align: left;
    }

    .announcement-date strong {
        font-size: 1.7rem;
    }

    .announcement-content,
    .announcement-arrow {
        grid-column: 1;
    }

    .announcement-arrow {
        justify-self: end;
    }

    .admissions-allotment-alert {
        flex-direction: column;
        gap: 7px;
        padding: 12px;
    }
}

/* =========================================================
   REDUCED MOTION
========================================================= */
@media (prefers-reduced-motion: reduce) {
    .announcement-item,
    .announcement-arrow,
    .announcement-document-button,
    .announcement-tab,
    .admissions-allotment-alert {
        transition: none;
    }

    .announcement-item:hover,
    .announcement-document-button:hover,
    .announcement-tab:hover,
    .admissions-allotment-alert:hover {
        transform: none;
    }
}


