/**
 * 1Dojo Events - Custom Styles
 * 
 * Additional styles beyond Bootstrap defaults.
 */

/* Custom primary colour */
:root {
    --bs-primary: #2c6ea8;
    --bs-primary-rgb: 44, 110, 168;
    --bs-link-color: #2c6ea8;
    --bs-link-hover-color: #235a8a;
    --bs-body-bg: #f0f0f0;
}

body {
    background-color: var(--bs-body-bg);
}

/* Override Bootstrap primary button */
.btn-primary {
    --bs-btn-bg: #2c6ea8;
    --bs-btn-border-color: #2c6ea8;
    --bs-btn-hover-bg: #235a8a;
    --bs-btn-hover-border-color: #1f5079;
    --bs-btn-active-bg: #1f5079;
    --bs-btn-active-border-color: #1b4669;
    --bs-btn-disabled-bg: #2c6ea8;
    --bs-btn-disabled-border-color: #2c6ea8;
}

.btn-outline-primary {
    --bs-btn-color: #2c6ea8;
    --bs-btn-border-color: #2c6ea8;
    --bs-btn-hover-bg: #2c6ea8;
    --bs-btn-hover-border-color: #2c6ea8;
    --bs-btn-active-bg: #235a8a;
    --bs-btn-active-border-color: #1f5079;
}

/* Override Bootstrap primary background */
.bg-primary {
    background-color: #2c6ea8 !important;
}

.text-primary {
    color: #2c6ea8 !important;
}

.text-info {
    color: #17a2b8 !important;
}

/* Override Bootstrap dark background - used for card headers */
.bg-dark {
    background-color: #4d4d4d !important;
}

/* Links */
a {
    color: #2c6ea8;
}

a:hover {
    color: #235a8a;
}

/* Badge primary */
.badge.bg-primary {
    background-color: #2c6ea8 !important;
}

/* Nav tabs */
.nav-tabs {
    border-bottom-color: #666;
    gap: 0.5rem;
}

.nav-tabs .nav-link {
    background-color: #e9e9e9;
    border-left-color: #ccc;
    border-top-color: #ccc;
    border-right-color: #ccc;
    border-bottom-color: #666;
}

.nav-tabs .nav-link.active {
    color: #212529;
    background-color: #fff;
    border-left-color: #666;
    border-top-color: #666;
    border-right-color: #666;
}

.nav-tabs .nav-link:hover {
    color: #212529;
    background-color: #fff;
    border-bottom: #2c6ea8 solid 3px;
    margin-bottom: -3px;
}

/* General */
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

/* Cards */
.card {
    border-radius: 0.5rem;
    background-color: #fff !IMPORTANT;
}

.card-header {
    border-radius: 0.5rem 0.5rem 0 0 !important;
}

/* Navigation */
.navbar-brand {
    font-weight: 300;
}

.navbar-logo {
	/* background-image: url(<?= $this->asset('images/logo_1dojo_navbar.webp') ?>; */
}

.navbar.bg-primary {
    background-color: #2c6ea8 !important;
}

/* Dashboard stat cards */
.card.bg-primary,
.card.bg-success,
.card.bg-warning,
.card.bg-info {
    border: none;
}

/* Admin sidebar */
.list-group-item.active {
    background-color: #2c6ea8;
    border-color: #2c6ea8;
}

/* Forms */
.form-label {
    font-weight: 500;
}

/* Light grey placeholder text to distinguish from actual content */
/* Hide placeholder when field is focused */
input::placeholder,
textarea::placeholder,
.form-control::placeholder,
.form-select::placeholder {
    color: #aaa !important;
    opacity: 1;
    transition: opacity 0.15s ease-in-out;
}

input:focus::placeholder,
textarea:focus::placeholder,
.form-control:focus::placeholder,
.form-select:focus::placeholder {
    opacity: 0;
}

/* Firefox */
input::-moz-placeholder,
textarea::-moz-placeholder,
.form-control::-moz-placeholder {
    color: #aaa !important;
    opacity: 1;
    transition: opacity 0.15s ease-in-out;
}

input:focus::-moz-placeholder,
textarea:focus::-moz-placeholder,
.form-control:focus::-moz-placeholder {
    opacity: 0;
}

/* Microsoft Edge */
input::-ms-input-placeholder,
textarea::-ms-input-placeholder,
.form-control::-ms-input-placeholder {
    color: #aaa !important;
}

input:focus::-ms-input-placeholder,
textarea:focus::-ms-input-placeholder,
.form-control:focus::-ms-input-placeholder {
    color: transparent !important;
}

.form-select {
	background-color: #f0f0f0;
}

.form-control:focus,
.form-select:focus {
    border-color: #2c6ea8;
    box-shadow: 0 0 0 0.25rem rgba(44, 110, 168, 0.25);
}

.form-check-input:checked {
    background-color: #2c6ea8;
    border-color: #2c6ea8;
}

/* Language switcher */
.dropdown-item.active {
    background-color: #2c6ea8;
}

/* Event cards */
.event-card {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    background-color: #fff;
}

.event-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Event card thumbnail - portrait/A4 optimized, shown on left side */
.event-card-image {
    height: 220px;
    width: auto;
    object-fit: cover;
}

/* Event card image placeholder - same size as image */
.event-card-image-placeholder {
    height: 220px;
    width: 155px; /* Approximate width for portrait aspect ratio */
    background-color: #aaa;
    display: flex;
    align-items: center;
    justify-content: center;
}

.event-card-image-placeholder i {
    font-size: 2rem;
    color: #fff;
}

/* Add spacing between image and content in horizontal card */
.event-card .row > .col {
    padding-left: 0rem;
}

/* Event detail page image */
.event-image {
    max-width: 400px;
    max-height: 400px;
    object-fit: contain;
    transition: transform 0.2s ease-in-out;
    cursor: pointer;
}

.event-image-link:hover .event-image {
    transform: scale(1.02);
}

/* Dojo logo */
.dojo-logo {
    max-width: 120px;
    max-height: 120px;
    object-fit: cover;
}

.dojo-logo-sm {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 50%;
}

/* Circular dojo avatar for lists and cards */
.dojo-avatar {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid #dee2e6;
}

.dojo-avatar-lg {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #dee2e6;
}

/* Location image */
.location-image {
    max-width: 260px;
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: transform 0.2s ease-in-out;
}

.location-image:hover {
    transform: scale(1.02);
}

/* Darker lightbox overlay */
.modal-backdrop.show {
    opacity: 0.85;
}

/* Status badges */
.badge {
    font-weight: 500;
}

/* Tables */
.table th {
    font-weight: 600;
    border-top: none;
}

/* Alerts */
.alert {
    border-radius: 0.5rem;
}

/* Buttons */
.btn {
    border-radius: 0.375rem;
}

/* Print styles */
@media print {
    .navbar,
    .btn,
    .no-print {
        display: none !important;
    }
}

/* Footer */
.footer-nav a {
    transition: color 0.15s ease-in-out;
}

.footer-nav a:hover {
    color: #2c6ea8 !important;
}

/* Legal content pages */
.legal-content h2 {
    font-size: 1.5rem !important;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.legal-content h2:first-child {
    margin-top: 0;
}

.legal-content h3 {
    font-size: 1.25rem !important;
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
}

.legal-content h4 {
    font-size: 1.1rem !important;
    font-weight: 600;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.legal-content p {
    margin-bottom: 1rem;
    line-height: 1.7;
}

.legal-content ul,
.legal-content ol {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}

.legal-content li {
    margin-bottom: 0.5rem;
    line-height: 1.7;
}

.legal-content a {
    color: #2c6ea8;
}

.legal-content a:hover {
    text-decoration: underline;
}

/* System Information */
.version-number {
	font-family: monospace; 
	font-size: 0.875em;
}

/* Cookie Consent Customization */
/* Note: These are scoped to cookie consent only */
.cc-window {
    --cc-btn-primary-bg: #2c6ea8;
    --cc-btn-primary-hover-bg: #235a8a;
    --cc-toggle-on-bg: #2c6ea8;
    --cc-link-color: #2c6ea8;
}

/* Make cookie consent modal rounded like Bootstrap cards */
.cc-modal {
    border-radius: 0.5rem !important;
}

/* Footer links in consent modal */
.cc-modal .cc-link {
    color: #2c6ea8;
}

.cc-modal .cc-link:hover {
    text-decoration: underline;
}

/* Hide number input spinners for pricing fields */
.pricing-input::-webkit-outer-spin-button,
.pricing-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.pricing-input[type=number] {
    -moz-appearance: textfield;
}

/* Unified tooltip styling */
.tooltip {
    --bs-tooltip-bg: #212529;
    --bs-tooltip-color: #fff;
    --bs-tooltip-opacity: 0.95;
    --bs-tooltip-padding-x: 0.6rem;
    --bs-tooltip-padding-y: 0.35rem;
    --bs-tooltip-font-size: 0.8125rem;
}

.tooltip-inner {
    max-width: 250px;
    text-align: center;
    border-radius: 0.25rem;
}
