/* Logo Position Controls and Comprehensive Customization for Business Directory */

/* ==== LOGO POSITION CONTROLS ==== */

/* Logo Position Variables */
:root {
    /* Logo Position Controls */
    --bd-logo-position-x: center; /* left, center, right */
    --bd-logo-position-y: center; /* top, center, bottom */
    --bd-logo-size: 100%; /* 80%, 90%, 100%, 110%, 120% */
    --bd-logo-fit: contain; /* contain (shows full image), cover (crops to fill), fill, scale-down */
    --bd-logo-border-radius: 0px; /* 0px, 8px, 16px, 50% */
    --bd-logo-border: none; /* none, 2px solid #ccc, 3px solid #667eea */
    --bd-logo-shadow: none; /* none, 0 4px 8px rgba(0,0,0,0.1) */
    
    /* Logo Container Controls */
    --bd-logo-container-width: 100%;
    --bd-logo-container-height: 100%;
    --bd-logo-container-padding: 0px;
    --bd-logo-container-margin: 0px;
    --bd-logo-container-bg: transparent;
    
    /* Logo Alignment Controls */
    --bd-logo-align-items: center;
    --bd-logo-justify-content: center;
    --bd-logo-text-align: center;
    
    /* Logo Hover Effects */
    --bd-logo-hover-scale: 1.1;
    --bd-logo-hover-rotate: 2deg;
    --bd-logo-hover-filter: brightness(1.1) contrast(1.2);
    --bd-logo-hover-transition: 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* ==== DESCRIPTION PADDING CONTROLS ==== */

/* Description Layout Variables */
:root {
    /* Description Container */
    --bd-description-padding: 16px 20px;
    --bd-description-margin: 0 0 20px 0;
    --bd-description-bg: transparent;
    --bd-description-border: none;
    --bd-description-border-radius: 0px;
    
    /* Description Text */
    --bd-description-font-size: 14px;
    --bd-description-line-height: 1.6;
    --bd-description-color: #4a5568;
    --bd-description-font-weight: 400;
    
    /* Description Spacing */
    --bd-description-top-spacing: 16px;
    --bd-description-bottom-spacing: 20px;
    --bd-description-left-spacing: 20px;
    --bd-description-right-spacing: 20px;
}

/* ==== LOGO LAYOUT TITLE CONTROLS ==== */

/* Logo Layout Title Variables */
:root {
    /* Title Container */
    --bd-title-padding: 16px 20px 8px 20px;
    --bd-title-margin: 0 0 12px 0;
    --bd-title-bg: transparent;
    --bd-title-border: none;
    --bd-title-border-radius: 0px;
    
    /* Title Text */
    --bd-title-font-size: 20px;
    --bd-title-line-height: 1.3;
    --bd-title-color: #2d3748;
    --bd-title-font-weight: 700;
    --bd-title-text-transform: none; /* none, uppercase, lowercase, capitalize */
    --bd-title-letter-spacing: 0px;
    
    /* Title Hover */
    --bd-title-hover-color: #667eea;
    --bd-title-hover-transform: none;
    --bd-title-hover-transition: 0.3s ease;
}

/* ==== UTILITY CLASSES FOR LOGO POSITION ==== */

/* Logo Position Utilities */
.bd-logo-left { --bd-logo-position-x: left; }
.bd-logo-center { --bd-logo-position-x: center; }
.bd-logo-right { --bd-logo-position-x: right; }

.bd-logo-top { --bd-logo-position-y: top; }
.bd-logo-middle { --bd-logo-position-y: center; }
.bd-logo-bottom { --bd-logo-position-y: bottom; }

/* Logo Size Utilities */
.bd-logo-small { --bd-logo-size: 80%; }
.bd-logo-medium { --bd-logo-size: 100%; }
.bd-logo-large { --bd-logo-size: 120%; }
.bd-logo-xlarge { --bd-logo-size: 140%; }

/* Logo Fit Utilities */
.bd-logo-cover { --bd-logo-fit: cover; }
.bd-logo-contain { --bd-logo-fit: contain; }
.bd-logo-fill { --bd-logo-fit: fill; }
.bd-logo-scale-down { --bd-logo-fit: scale-down; }

/* Logo Style Utilities */
.bd-logo-rounded { --bd-logo-border-radius: 8px; }
.bd-logo-circle { --bd-logo-border-radius: 50%; }
.bd-logo-bordered { --bd-logo-border: 2px solid #e2e8f0; }
.bd-logo-shadowed { --bd-logo-shadow: 0 4px 8px rgba(0,0,0,0.1); }

/* ==== UTILITY CLASSES FOR DESCRIPTION PADDING ==== */

/* Description Spacing Utilities */
.bd-desc-compact { --bd-description-padding: 8px 12px; }
.bd-desc-normal { --bd-description-padding: 16px 20px; }
.bd-desc-spacious { --bd-description-padding: 24px 28px; }
.bd-desc-extra-spacious { --bd-description-padding: 32px 36px; }

.bd-desc-no-top { --bd-description-top-spacing: 0px; }
.bd-desc-no-bottom { --bd-description-bottom-spacing: 0px; }
.bd-desc-no-left { --bd-description-left-spacing: 0px; }
.bd-desc-no-right { --bd-description-right-spacing: 0px; }

/* Description Style Utilities */
.bd-desc-small-text { --bd-description-font-size: 12px; }
.bd-desc-normal-text { --bd-description-font-size: 14px; }
.bd-desc-large-text { --bd-description-font-size: 16px; }
.bd-desc-xlarge-text { --bd-description-font-size: 18px; }

.bd-desc-light { --bd-description-font-weight: 300; }
.bd-desc-normal { --bd-description-font-weight: 400; }
.bd-desc-medium { --bd-description-font-weight: 500; }
.bd-desc-bold { --bd-description-font-weight: 700; }

/* ==== UTILITY CLASSES FOR TITLE LAYOUT ==== */

/* Title Size Utilities */
.bd-title-small { --bd-title-font-size: 16px; }
.bd-title-normal { --bd-title-font-size: 20px; }
.bd-title-large { --bd-title-font-size: 24px; }
.bd-title-xlarge { --bd-title-font-size: 28px; }
.bd-title-huge { --bd-title-font-size: 32px; }

/* Title Style Utilities */
.bd-title-uppercase { --bd-title-text-transform: uppercase; }
.bd-title-lowercase { --bd-title-text-transform: lowercase; }
.bd-title-capitalize { --bd-title-text-transform: capitalize; }
.bd-title-normal-case { --bd-title-text-transform: none; }

.bd-title-light { --bd-title-font-weight: 300; }
.bd-title-normal { --bd-title-font-weight: 400; }
.bd-title-medium { --bd-title-font-weight: 500; }
.bd-title-semibold { --bd-title-font-weight: 600; }
.bd-title-bold { --bd-title-font-weight: 700; }
.bd-title-extrabold { --bd-title-font-weight: 800; }

/* Title Spacing Utilities */
.bd-title-compact { --bd-title-padding: 8px 12px 4px 12px; }
.bd-title-normal { --bd-title-padding: 16px 20px 8px 20px; }
.bd-title-spacious { --bd-title-padding: 24px 28px 12px 28px; }

/* ==== APPLYING THE CONTROLS ==== */

/* Logo Position Application */
.business-directory-container .card-image {
    width: var(--bd-logo-container-width) !important;
    height: var(--bd-logo-container-height) !important;
    padding: var(--bd-logo-container-padding) !important;
    margin: var(--bd-logo-container-margin) !important;
    background: var(--bd-logo-container-bg) !important;
    display: flex !important;
    align-items: var(--bd-logo-align-items) !important;
    justify-content: var(--bd-logo-position-x) !important;
    text-align: var(--bd-logo-text-align) !important;
}

.business-directory-container .business-image {
    width: var(--bd-logo-size) !important;
    height: var(--bd-logo-size) !important;
    object-fit: var(--bd-logo-fit) !important;
    border-radius: var(--bd-logo-border-radius) !important;
    border: var(--bd-logo-border) !important;
    box-shadow: var(--bd-logo-shadow) !important;
    transition: var(--bd-logo-hover-transition) !important;
}

.business-directory-container .business-card:hover .business-image {
    transform: scale(var(--bd-logo-hover-scale)) rotate(var(--bd-logo-hover-rotate)) !important;
    filter: var(--bd-logo-hover-filter) !important;
}

/* Description Application */
.business-directory-container .business-description {
    padding: var(--bd-description-padding) !important;
    margin: var(--bd-description-margin) !important;
    background: var(--bd-description-bg) !important;
    border: var(--bd-description-border) !important;
    border-radius: var(--bd-description-border-radius) !important;
    font-size: var(--bd-description-font-size) !important;
    line-height: var(--bd-description-line-height) !important;
    color: var(--bd-description-color) !important;
    font-weight: var(--bd-description-font-weight) !important;
}

/* Title Application */
.business-directory-container .business-title {
    padding: var(--bd-title-padding) !important;
    margin: var(--bd-title-margin) !important;
    background: var(--bd-title-bg) !important;
    border: var(--bd-title-border) !important;
    border-radius: var(--bd-title-border-radius) !important;
    font-size: var(--bd-title-font-size) !important;
    line-height: var(--bd-title-line-height) !important;
    color: var(--bd-title-color) !important;
    font-weight: var(--bd-title-font-weight) !important;
    text-transform: var(--bd-title-text-transform) !important;
    letter-spacing: var(--bd-title-letter-spacing) !important;
    transition: var(--bd-title-hover-transition) !important;
}

.business-directory-container .business-title a:hover {
    color: var(--bd-title-hover-color) !important;
    transform: var(--bd-title-hover-transform) !important;
}

/* ==== RESPONSIVE ADJUSTMENTS ==== */

@media (max-width: 768px) {
    :root {
        --bd-logo-size: 90%;
        --bd-description-padding: 12px 16px;
        --bd-title-font-size: 18px;
    }
}

@media (max-width: 480px) {
    :root {
        --bd-logo-size: 85%;
        --bd-description-padding: 10px 14px;
        --bd-title-font-size: 16px;
    }
}
