

/* General Styles */
    body {
      
         font-family: "Roboto", sans-serif;
        color: #0a2035;
        background-color: #fff;
        overflow-x: hidden;
    }



.course-intro {
    margin-top: 40px;
}

.course-block {
    margin-top: 30px;
}

.course-block h5 {
    font-weight: 700;
    margin-bottom: 10px;
}

.section-title {
    color: #1f78b4;
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 20px;
}




.week-summary {
    width: 100%;
}

.week-summary h3 {
    color: #5bb6e5;
    font-weight: 700;
    margin-bottom: 10px;
}

.week-summary-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.week-summary-table th {
    background-color: #6ec1ef;
    color: #ffffff;
    padding: 10px;
    text-align: center;
    font-weight: 700;
    border-right: 2px solid #ffffff;
}

.week-summary-table th:last-child {
    border-right: none;
}

.week-summary-table td {
    background-color: #cfeaf9;
    padding: 22px;
    text-align: center;
    font-weight: 500;
    border-right: 2px solid #ffffff;
}

.week-summary-table td:last-child {
    border-right: none;
}

.week-summary-table .main-block {
    font-size: 16px;
}

.week-summary-table .highlight {
    background-color: #0f67b1;
    color: #ffffff;
    font-weight: 700;
}



/* study plan */

.study-plan img {
    max-width: 100%;
    height: auto;
    transition: transform 0.3s ease;
}

/* .study-plan img:hover {
    transform: scale(1.02);
} */





.timetable th {
    background: #1f78b4;
    color: white;
}

.timetable .break {
    text-align: center;
    font-weight: bold;
    background: #f1f1f1;
}



.timetable-lisbon {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.timetable-title {
    text-align: center;
    font-weight: 700;
    color: #f37021;
    margin-bottom: 20px;
}

.timetable-lisbon th {
    background-color: #f37021;
    color: #fff;
    padding: 12px;
    text-align: center;
    border: 1px solid #f37021;
}

.timetable-lisbon td {
    border: 1px solid #f37021;
    padding: 8px;
    vertical-align: top;
}

.time-col {
    background-color: #fde4d4;
    font-weight: 700;
    text-align: center;
    width: 120px;
}

.break {
    text-align: center;
    font-weight: 700;
    background-color: #ffffff;
}

.lunch {
    text-align: center;
    font-weight: 700;
    background-color: #fde4d4;
}

.summary td {
    background-color: #fff;
    font-weight: 700;
    text-align: center;
}

/* ===============================
   ESTILOS GENERALES (MOVIDOS DE CONTROLLER/VISTA)
================================ */
.text-course {
    color: #1d71b8;
    font-weight: 600;
}

/* ===============================
   INTRO / IMÁGENES CIUDADES
================================ */
.city-img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 50%;
    box-shadow: 0 12px 30px rgba(0,0,0,0.15);
}
.city-label {
    background: transparent;
}
.city-name {
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1.1;
}
.city-date {
    font-size: 1.1rem;
    font-weight: 600;
}
.city-label.lisboa .city-name { color: #18a999; }
.city-label.barcelona .city-name { color: #f37021; }
.city-row-overlap { margin-top: -120px; }

/* ===============================
   COURSE FRAMEWORK
================================ */
.card-framework {
    border: 2px solid #70c8f2;
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.card-framework:hover {
    background-color: #70c8f2;
    color: #ffffff;
    transform: translateY(-4px);
}
.card-text-preview {
    border: 2px solid #70c8f2;
    padding: 2rem;
    margin-top: 2rem;
    background-color: #fff;
}

/* Mantiene el formato HTML y recorta visualmente */
.text-preview.collapsed {
    display: -webkit-box;
    -webkit-line-clamp: 12; /* Ajusta el número de líneas visibles (aprox para coincidir con el límite) */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.btn-principal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #70c8f2;
    background-color: white;
    padding: 0.75rem 1.5rem;
    color: #70c8f2;
    font-weight: 500;
    font-size: 15px;
    cursor: pointer;
    text-decoration: none;
    border-radius: 30px;
    box-sizing: border-box;
}
.btn-principal:hover {
    background-color: #70c8f2;
    border-color: #70c8f2;
    color: white;
    text-decoration: none;
}
.btn-principal:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(31, 143, 58, 0.25);
}

/* ===============================
   IMÁGENES RECTANGULARES / STAFF
================================ */
.course-img-rect {
    height: 260px;
    object-fit: cover;
    border-radius: 4px;
}
.staff-avatar {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: 50%;
}
.carousel-gallery-img {
    height: 500px;
    object-fit: cover;
    width: 100%;
}
.carousel-gallery-img-dos {
    height: 340px;
    object-fit: cover;
    width: 100%;
}

/* Estilos Slick Staff */
.staff-slider .slick-prev,
.staff-slider .slick-next {
    z-index: 10;
    width: 30px;
    height: 30px;
    background: #1d71b8;
    border-radius: 50%;
}
.staff-slider .slick-prev:before,
.staff-slider .slick-next:before {
    font-size: 16px;
    opacity: 1;
    color: #fff;
}
.staff-slider .slick-prev { left: -10px; }
.staff-slider .slick-next { right: -10px; }

.staff-slider .staff-avatar {
    margin-left: auto;
    margin-right: auto;
}

/* Investor Link Hover */
.investor-hover-link {
    display: block;
    position: relative;
    width: 100%; /* Ajuste de tamaño */
    margin: 0 auto;
    text-decoration: none;
}

.investor-hover-link img {
    width: 100%;
    height: auto;
    transition: opacity 0.3s ease;
}

.investor-hover-link .icon-hover {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
}

.investor-hover-link:hover .icon-default {
    opacity: 0;
}

.investor-hover-link:hover .icon-hover {
    opacity: 1;
}

/* ===============================
   HELPER TIPO TEXTO
================================ */
ul li {
    margin-bottom: 0.5rem;
    line-height: 1.6;
}

/* ===============================
   FOOTER
================================ */
footer{
    background: #d6d874;
    color: white;
    padding: 10px 0;
    text-align: center;
    overflow: hidden; 
}
.footer-logo {
    height: 50px; 
    width: auto !important;
    max-width: 100%;
    object-fit: contain;
}

/* Asegura que los items se centren verticalmente en el slider */
.footer-logos-slider .slick-track {
    display: flex;
    align-items: center;
}

/* ===============================
   RESPONSIVE
================================ */
@media (max-width: 991px) {
    .city-name { font-size: 1.8rem; }
    .city-date { font-size: 1rem; }
    .city-row-overlap { margin-top: -80px; }
    .course-img-rect { height: 220px; }
    .section-title { font-size: 1.8rem; }
}
@media (max-width: 767px) {
    .city-name { font-size: 1.5rem; }
    .city-date { font-size: 0.9rem; }
    .city-row-overlap { margin-top: 0; }
    .course-images .row { margin-bottom: 2rem !important; }
    .card-text-preview { padding: 1rem; }
    .course-img-rect { height: 200px; margin-bottom: 1rem; }
    .section-title { font-size: 1.5rem; }
    h3 { font-size: 1.3rem; }
    h5 { font-size: 1rem; }
    .carousel-gallery-img { height: 300px; }
}


