/* 1. Import Fonts (Playfair Display & Inter) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&display=swap');

/* 2. Global Resets */
body, html {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    font-family: 'Inter', sans-serif;
    background-color: #F2F4F0; /* Light background from React app */
}

/* 3. Elementor Container Overrides (Crucial for Full Width) */
.elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 100% !important; /* Force full width */
    padding: 0 !important;
}

.elementor-column-gap-default > .elementor-column > .elementor-element-populated {
    padding: 0 !important; /* Remove Elementor default padding */
}

.elementor-widget-shortcode {
    width: 100%;
}

/* 4. Font Assignments */
h1, h2, h3, h4, h5, h6, .font-serif {
    font-family: 'Playfair Display', serif !important;
}

.font-sans {
    font-family: 'Inter', sans-serif !important;
}

/* 5. Utility Tweaks */
.reveal-up {
    animation: fadeUp 1s ease-out forwards;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Elementor Native Helpers --- */

/* Force Aspect Ratios on Native Image Widgets */
.jjg-aspect-portrait img {
    aspect-ratio: 4/5 !important;
    object-fit: cover !important;
    height: 100% !important;
    width: 100% !important;
}

.jjg-aspect-square img {
    aspect-ratio: 1/1 !important;
    object-fit: cover !important;
    height: 100% !important;
    width: 100% !important;
}

.jjg-aspect-video img {
    aspect-ratio: 16/10 !important;
    object-fit: cover !important;
    height: 100% !important;
    width: 100% !important;
}

/* Typography Overrides for Native Widgets */
.elementor-widget-heading .elementor-heading-title {
    font-weight: 400 !important; /* Fix bold headings */
}

/* Hover Scaling for Native Images */
.jjg-hover-scale img {
    transition: transform 1.2s ease-out !important;
}
.jjg-hover-scale:hover img {
    transform: scale(1.1) !important;
}

/* Custom Range Slider Styling */
.jjg-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 2px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 5px;
    outline: none;
}

.jjg-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.jjg-range-slider::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: none;
}

.jjg-range-slider:hover::-webkit-slider-thumb {
    transform: scale(1.2);
}

/* --- ESTIMATOR TOOL THEME CONFIG --- */
:root {
    /* Backgrounds */
    --est-bg-color: #1B2616;        /* The dark green background */
    --est-card-bg: rgba(255,255,255,0.05); /* The glass effect box */
    
    /* Text */
    --est-text-main: #FFFFFF;       /* Headings */
    --est-text-muted: rgba(255,255,255,0.4); /* Labels */
    
    /* Buttons (Inactive) */
    --est-btn-border: rgba(255,255,255,0.2);
    --est-btn-text: #FFFFFF;
    
    /* Buttons (Active) */
    --est-active-bg: #FFFFFF;
    --est-active-text: #1B2616;
    
    /* Slider */
    --est-slider-track: rgba(255,255,255,0.2);
    --est-slider-thumb: #FFFFFF;
}

/* Apply Variables */
#estimate {
    background-color: var(--est-bg-color) !important;
    color: var(--est-text-main) !important;
}

/* Active Button State */
.est-btn-active {
    background-color: var(--est-active-bg) !important;
    color: var(--est-active-text) !important;
    border-color: var(--est-active-bg) !important;
}

/* Inactive Button State */
.est-btn-inactive {
    border-color: var(--est-btn-border) !important;
    color: var(--est-btn-text) !important;
}
.est-btn-inactive:hover {
    border-color: rgba(255,255,255,0.5) !important;
}

/* Slider Overrides */
#est-size::-webkit-slider-thumb { background: var(--est-slider-thumb) !important; }
#est-size::-moz-range-thumb { background: var(--est-slider-thumb) !important; }