/**
 * Plugin-Wide Consistency Check & Fixes
 * Ensures all buttons, inputs, fonts are consistent
 */

/* ==========================================================================
   BUTTONS CONSISTENCY
   ========================================================================== */

/* Standard buttons */
.button,
.btn,
.cte-btn,
.trip-btn,
input[type="submit"],
button[type="submit"] {
    font-size: 14px !important;
    padding: 8px 16px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

/* Primary buttons */
.button-primary,
.cte-btn-primary,
.trip-btn {
    background: #775495 !important;
    border-color: #775495 !important;
    color: #fffeec !important;
}

.button-primary:hover,
.cte-btn-primary:hover,
.trip-btn:hover {
    background: #5a3f70 !important;
    border-color: #5a3f70 !important;
}

/* ==========================================================================
   FORM INPUTS CONSISTENCY
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="password"],
input[type="date"],
select,
textarea {
    font-size: 14px !important;
    padding: 8px 12px !important;
    border-radius: 4px !important;
    border: 1px solid #ddd !important;
    line-height: 1.5 !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="date"]:focus,
select:focus,
textarea:focus {
    border-color: #775495 !important;
    box-shadow: 0 0 0 1px #775495 !important;
    outline: none !important;
}

/* ==========================================================================
   LABELS CONSISTENCY
   ========================================================================== */

label,
.form-label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #000 !important;
    margin-bottom: 6px !important;
    display: block !important;
}

/* ==========================================================================
   HEADINGS CONSISTENCY
   ========================================================================== */

/* Admin page headings */
.wrap h1,
.cte-dashboard h1 {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #000 !important;
    margin-bottom: 20px !important;
}

.wrap h2,
.cte-dashboard h2 {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #000 !important;
    margin-bottom: 15px !important;
}

.wrap h3,
.cte-dashboard h3 {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #000 !important;
    margin-bottom: 10px !important;
}

/* ==========================================================================
   CARD CONSISTENCY (Frontend)
   ========================================================================== */

.clem-trip-card,
.clem-cruise-card {
    border: 1px solid #e5e5e5 !important;
    border-radius: 12px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
}

.clem-trip-card:hover,
.clem-cruise-card:hover {
    border-color: #d0d0d0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    transform: translateY(-2px) !important;
}

/* Card text */
.clem-trip-card h3,
.clem-cruise-card h3 {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #000 !important;
    margin: 0 0 8px 0 !important;
}

.clem-trip-card .trip-price,
.clem-trip-card .trip-deposit {
    font-size: 14px !important;
    font-weight: 600 !important;
}

.clem-trip-card .trip-meta-icons {
    font-size: 13px !important;
    font-weight: 400 !important;
    color: #5a5a5a !important;
}

/* ==========================================================================
   ADMIN CARDS CONSISTENCY
   ========================================================================== */

.cte-stat-card,
.cte-dashboard-section,
.postbox {
    background: #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    padding: 20px !important;
}

/* ==========================================================================
   SPACING CONSISTENCY
   ========================================================================== */

/* Section spacing */
.cte-dashboard-grid,
.cte-dashboard-section {
    margin: 20px 0 !important;
}

/* Field spacing */
.cte-field-row,
.form-field {
    margin-bottom: 15px !important;
}

/* ==========================================================================
   STATUS BADGES CONSISTENCY
   ========================================================================== */

.status-badge,
.booking-status,
.trip-badge-featured {
    display: inline-block !important;
    padding: 4px 10px !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

/* ==========================================================================
   LINKS CONSISTENCY
   ========================================================================== */

a {
    transition: all 0.3s ease !important;
}

.clem-trip-card a,
.clem-cruise-card a {
    color: #775495 !important;
    text-decoration: none !important;
}

.clem-trip-card a:hover,
.clem-cruise-card a:hover {
    color: #5a3f70 !important;
}

/* ==========================================================================
   ICON SIZES CONSISTENCY
   ========================================================================== */

.dashicons {
    font-size: 18px !important;
    width: 18px !important;
    height: 18px !important;
    line-height: 1 !important;
}

.dashicons-before:before {
    font-size: 18px !important;
}

/* Larger icons in specific places */
.cte-stat-card .dashicons,
.hero-meta .dashicons {
    font-size: 20px !important;
    width: 20px !important;
    height: 20px !important;
}

/* ==========================================================================
   RESPONSIVE CONSISTENCY
   ========================================================================== */

@media (max-width: 768px) {
    /* Buttons */
    .button,
    .btn,
    .cte-btn {
        font-size: 13px !important;
        padding: 7px 14px !important;
    }
    
    /* Inputs */
    input[type="text"],
    input[type="email"],
    textarea,
    select {
        font-size: 14px !important;
    }
    
    /* Card text */
    .clem-trip-card h3 {
        font-size: 16px !important;
    }
    
    .clem-trip-card .trip-price,
    .clem-trip-card .trip-deposit {
        font-size: 13px !important;
    }
}

/* ==========================================================================
   ADMIN SPECIFIC
   ========================================================================== */

/* WordPress admin bar compatibility */
#wpadminbar {
    background: #775495 !important;
}

/* Admin buttons */
.wp-core-ui .button-primary {
    background: #775495 !important;
    border-color: #5a3f70 !important;
}

.wp-core-ui .button-primary:hover {
    background: #5a3f70 !important;
}

/* Admin inputs */
.wp-admin input[type="text"],
.wp-admin input[type="email"],
.wp-admin input[type="tel"],
.wp-admin select,
.wp-admin textarea {
    font-size: 14px !important;
}

/* Meta boxes */
.postbox .inside {
    padding: 15px !important;
}

/* ==========================================================================
   CLEARFIX & UTILITIES
   ========================================================================== */

.clearfix::after {
    content: "";
    display: table;
    clear: both;
}

/* Remove outline on focus for mouse users */
*:focus:not(:focus-visible) {
    outline: none !important;
}

/* Focus visible for keyboard users */
*:focus-visible {
    outline: 2px solid #775495 !important;
    outline-offset: 2px !important;
}
