.tc-castings-container {

    width: 100%;

    max-width: 1100px;

    margin: 0 auto;

    padding: 24px 16px;

    box-sizing: border-box;

    background: #F4F8FC;

    color: #1E293B;

}


/* =========================
   HEADER
   ========================= */

.tc-castings-header {

    margin-bottom: 24px;

}


.tc-castings-header h2 {

    margin: 0 0 8px;

    color: #1E3A5F;

    font-size: 28px;

    line-height: 1.2;

    font-weight: 700;

}


.tc-castings-header p {

    margin: 0;

    color: #64748B;

    font-size: 15px;

}


/* =========================
   CASTINGS GRID
   ========================= */

.tc-castings-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

    gap: 18px;

}


/* =========================
   CASTING CARD
   ========================= */

.tc-casting-card {

    display: flex;

    flex-direction: column;

    min-width: 0;

    background: #FFFFFF;

    color: #1E293B;

    border: 1px solid #E2EAF2;

    border-radius: 14px;

    overflow: hidden;

    box-shadow: 0 6px 20px rgba(30, 64, 100, 0.07);

    transition: transform .25s ease,
                box-shadow .25s ease,
                border-color .25s ease;

}


.tc-casting-card:hover {

    transform: translateY(-3px);

    border-color: #C7DCF2;

    box-shadow: 0 10px 28px rgba(30, 64, 100, 0.11);

}


/* =========================
   CONTENT
   ========================= */

.tc-casting-content {

    padding: 20px;

    flex: 1;

}


.tc-casting-title {

    margin: 0 0 14px;

    color: #1E3A5F;

    font-size: 21px;

    line-height: 1.3;

    font-weight: 700;

}


.tc-casting-description {

    margin-bottom: 16px;

    color: #475569;

    font-size: 15px;

    line-height: 1.55;

}


.tc-casting-description p {

    margin: 0 0 8px;

}


.tc-casting-meta {

    margin-top: 10px;

    color: #64748B;

    font-size: 14px;

    line-height: 1.45;

}


/* =========================
   CASTING ID
   ========================= */

.tc-casting-id {

    margin-top: 14px;

    color: #94A3B8;

    font-size: 12px;

}


/* =========================
   ACTION
   ========================= */

.tc-casting-actions {

    padding: 0 20px 20px;

}


.tc-apply-button {

    display: block;

    width: 100%;

    box-sizing: border-box;

    padding: 13px 18px;

    border-radius: 9px;

    background: #3B82F6;

    color: #FFFFFF;

    text-align: center;

    text-decoration: none;

    font-size: 16px;

    font-weight: 700;

    line-height: 1.2;

    transition: transform .2s ease,
                background .2s ease,
                box-shadow .2s ease;

    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.18);

}


.tc-apply-button:hover,
.tc-apply-button:focus {

    background: #2563EB;

    transform: translateY(-1px);

    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.22);

}


.tc-apply-button:active {

    transform: translateY(0);

}


/* =========================
   EMPTY / MESSAGE
   ========================= */

.tc-no-castings,
.tc-message {

    padding: 20px;

    background: #FFFFFF;

    border: 1px solid #E2EAF2;

    border-radius: 12px;

    color: #64748B;

    box-shadow: 0 5px 18px rgba(30, 64, 100, 0.06);

}


/* =========================
   MOBILE
   ========================= */

@media (max-width: 600px) {

    .tc-castings-container {

        padding: 20px 12px;

    }


    .tc-castings-header h2 {

        font-size: 24px;

    }


    .tc-castings-grid {

        grid-template-columns: 1fr;

        gap: 14px;

    }


    .tc-casting-content {

        padding: 17px;

    }


    .tc-casting-actions {

        padding: 0 17px 17px;

    }

}