/* ================== GENERAL ================== */
.main-card { background-color: #ffffff; padding: 24px; border-radius: 1rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); margin: auto; }
.table-link { text-decoration: none !important; color: #000000 !important; display: block; width: 100%; }
.table-link:hover { color: #0d6efd !important; }
#gen-tabla thead th { background-color: #0d6efd !important; color: white !important; font-weight: 700; }
.clickable-row { cursor: pointer; transition: background-color 0.1s ease; }
.clickable-row:hover { background-color: #e9ecef; }
.mobile-detail-row { display: none; }
.mobile-detail-row td { border-top: none !important; padding: 0; }

/* ================== OFICINA ================== */
.main-directory-container { width: 100%; min-height: 100vh; background-color: #00244D !important; padding-bottom: 50px; }
.transition-card { transition: transform 0.3s ease, box-shadow 0.3s ease; background-color: #ffffff !important; border-radius: 20px; }
.transition-card:hover { transform: translateY(-8px); box-shadow: 0 15px 30px rgba(0,0,0,0.5) !important; }

/* ================== DETALLE ================== */
#dim-detalle-content .card { border-radius: 25px !important; border: none !important; box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important; margin-bottom: 20px; }
.btn-custom { padding: 14px !important; display: block !important; width: 100% !important; margin-bottom: 12px !important; border-radius: 50px !important; font-weight: bold !important; box-shadow: 0 4px 12px rgba(0,0,0,0.1); transition: all 0.3s; text-decoration: none !important; text-align: center; }
.info-label { font-weight: bold; color: #212529; margin-bottom: 2px; display: block; font-size: 1.1rem; }
.info-text { color: #6c757d; margin-bottom: 15px; display: block; font-size: 1.05rem; }
.address-tag { background: #f1f8ff; color: #0d6efd; padding: 10px 15px; border-radius: 12px; font-weight: 500; border-left: 4px solid #0d6efd; margin-bottom: 10px; }
.office-box { background: #e7f1ff; border-radius: 15px; padding: 15px; margin-top: 20px; border: 1px dashed #0d6efd; }

@media (max-width: 767px) { 
    #det-office-header { font-size: 1.6rem !important; } 
    iframe { min-height: 350px !important; }
}
@media print { .no-print { display: none !important; } .main-card { box-shadow: none; padding: 0; } }