/*
 * Vestige — Elementor Compatibility CSS
 * Makes every Elementor widget look correct inside this dark theme.
 * Loaded on frontend alongside the main stylesheet.
 */

/* ════════════════════════════════════════
   GLOBAL ELEMENTOR RESETS
════════════════════════════════════════ */

/* Remove default Elementor section padding that fights theme layout */
.elementor-section { position: relative; }
.elementor-section .elementor-container { max-width: 1200px; }
.elementor-section.elementor-section-full_width .elementor-container { max-width: 100%; }

/* All Elementor elements inherit Inter */
.elementor-element,
.elementor-element * {
    font-family: 'Inter', sans-serif;
}

/* Dark default backgrounds for new sections */
.elementor-section,
.elementor-container,
.elementor-widget-wrap {
    background-color: transparent;
}

/* ════════════════════════════════════════
   TYPOGRAPHY WIDGETS
════════════════════════════════════════ */

/* Heading widget */
.elementor-widget-heading .elementor-heading-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.1;
    color: #f5f5f5;
}
.elementor-widget-heading .elementor-heading-title a {
    color: inherit;
}

/* Text editor widget */
.elementor-widget-text-editor .elementor-widget-container {
    font-family: 'Inter', sans-serif;
    font-size: .95rem;
    line-height: 1.8;
    color: #555555;
}
.elementor-widget-text-editor p { margin-bottom: 1em; color: #555555; }
.elementor-widget-text-editor a { color: #f5f5f5; border-bottom: 1px solid #333; }
.elementor-widget-text-editor a:hover { border-color: #f5f5f5; }
.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4 {
    color: #f5f5f5;
    font-weight: 800;
    letter-spacing: -.02em;
    margin-bottom: .6em;
}
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
    color: #555555;
    padding-left: 1.4em;
    margin-bottom: 1em;
}
.elementor-widget-text-editor blockquote {
    border-left: 3px solid #f5f5f5;
    padding: 14px 24px;
    margin: 1.5em 0;
    background: #eeeeee;
    color: #f5f5f5;
    font-style: italic;
}

/* ════════════════════════════════════════
   BUTTON WIDGET
════════════════════════════════════════ */
.elementor-widget-button .elementor-button {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: 0;
    transition: all .3s ease;
}

/* Default (outline) style */
.elementor-widget-button .elementor-button.elementor-button-default,
.elementor-widget-button .elementor-button.elementor-size-md {
    background: transparent;
    border: 1px solid #f5f5f5;
    color: #f5f5f5;
    padding: 14px 32px;
}
.elementor-widget-button .elementor-button.elementor-button-default:hover {
    background: #f5f5f5;
    color: #f5f5f5fff;
}

/* Primary style */
.elementor-widget-button .elementor-button.elementor-button-primary {
    background: #f5f5f5;
    color: #f5f5f5fff;
    border: 1px solid #f5f5f5;
}
.elementor-widget-button .elementor-button.elementor-button-primary:hover {
    background: #cccccc;
    border-color: #cccccc;
}

/* ════════════════════════════════════════
   IMAGE WIDGET
════════════════════════════════════════ */
.elementor-widget-image img {
    display: block;
    max-width: 100%;
    height: auto;
}
.elementor-widget-image .elementor-image-caption {
    font-family: 'Inter', sans-serif;
    font-size: .72rem;
    color: #555555;
    margin-top: 8px;
    font-style: italic;
}

/* ════════════════════════════════════════
   IMAGE BOX WIDGET
════════════════════════════════════════ */
.elementor-widget-image-box .elementor-image-box-wrapper {
    border: 1px solid #d8d8d8;
    padding: 28px;
    background: #f5f5f5;
    transition: border-color .3s;
}
.elementor-widget-image-box .elementor-image-box-wrapper:hover {
    border-color: rgba(0,0,0,.3);
}
.elementor-widget-image-box .elementor-image-box-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: #f5f5f5;
    letter-spacing: -.01em;
}
.elementor-widget-image-box .elementor-image-box-description {
    font-family: 'Inter', sans-serif;
    font-size: .82rem;
    color: #555555;
    line-height: 1.7;
}

/* ════════════════════════════════════════
   ICON BOX WIDGET
════════════════════════════════════════ */
.elementor-widget-icon-box .elementor-icon-box-wrapper {
    background: #f5f5f5;
    border: 1px solid #d8d8d8;
    padding: 28px;
    transition: border-color .3s;
}
.elementor-widget-icon-box .elementor-icon-box-wrapper:hover { border-color: rgba(0,0,0,.3); }
.elementor-widget-icon-box .elementor-icon { color: #f5f5f5 !important; }
.elementor-widget-icon-box .elementor-icon-box-title { color: #f5f5f5; font-weight: 700; }
.elementor-widget-icon-box .elementor-icon-box-description { color: #555555; font-size: .82rem; line-height: 1.7; }

/* ════════════════════════════════════════
   DIVIDER WIDGET
════════════════════════════════════════ */
.elementor-widget-divider .elementor-divider-separator {
    border-color: #d8d8d8;
}
.elementor-widget-divider .elementor-divider__text {
    font-family: 'Inter', sans-serif;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #555555;
    background: #f5f5f5;
    padding: 0 16px;
}

/* ════════════════════════════════════════
   SPACER WIDGET
════════════════════════════════════════ */
.elementor-widget-spacer { background: transparent; }

/* ════════════════════════════════════════
   ICON LIST WIDGET
════════════════════════════════════════ */
.elementor-widget-icon-list .elementor-icon-list-item {
    border-color: #d8d8d8;
    padding: 8px 0;
}
.elementor-widget-icon-list .elementor-icon-list-text {
    font-family: 'Inter', sans-serif;
    font-size: .85rem;
    color: #555555;
}
.elementor-widget-icon-list .elementor-icon-list-icon { color: #f5f5f5; }

/* ════════════════════════════════════════
   COUNTER WIDGET
════════════════════════════════════════ */
.elementor-widget-counter .elementor-counter-number-wrapper {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 3rem;
    letter-spacing: -.03em;
    color: #f5f5f5;
}
.elementor-widget-counter .elementor-counter-title {
    font-family: 'Inter', sans-serif;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #555555;
}

/* ════════════════════════════════════════
   TESTIMONIAL WIDGET
════════════════════════════════════════ */
.elementor-widget-testimonial .elementor-testimonial-content {
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    color: #555555;
    line-height: 1.8;
    font-style: italic;
}
.elementor-widget-testimonial .elementor-testimonial-name {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: #f5f5f5;
}
.elementor-widget-testimonial .elementor-testimonial-job {
    font-family: 'Inter', sans-serif;
    font-size: .72rem;
    color: #555555;
    letter-spacing: .06em;
}

/* ════════════════════════════════════════
   ACCORDION / TOGGLE WIDGETS
════════════════════════════════════════ */
.elementor-widget-accordion .elementor-accordion-item,
.elementor-widget-toggle .elementor-toggle-item {
    border-color: #d8d8d8 !important;
    background: #f5f5f5;
}
.elementor-widget-accordion .elementor-accordion-title,
.elementor-widget-toggle .elementor-toggle-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    color: #f5f5f5 !important;
    padding: 16px 20px !important;
    letter-spacing: -.01em;
}
.elementor-widget-accordion .elementor-accordion-title:hover,
.elementor-widget-toggle .elementor-toggle-title:hover { color: #cccccc !important; }
.elementor-widget-accordion .elementor-tab-content,
.elementor-widget-toggle .elementor-tab-content {
    font-family: 'Inter', sans-serif !important;
    font-size: .85rem !important;
    color: #555555 !important;
    line-height: 1.8 !important;
    padding: 16px 20px !important;
    border-top: 1px solid #d8d8d8 !important;
    background: #eeeeee !important;
}
.elementor-widget-accordion .elementor-accordion-icon,
.elementor-widget-toggle .elementor-toggle-icon { color: #f5f5f5 !important; }

/* ════════════════════════════════════════
   TABS WIDGET
════════════════════════════════════════ */
.elementor-widget-tabs .elementor-tabs-wrapper { border-bottom: 1px solid #d8d8d8; }
.elementor-widget-tabs .elementor-tab-title {
    font-family: 'Inter', sans-serif !important;
    font-size: .75rem !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: #555555 !important;
    padding: 12px 20px !important;
    border: none !important;
    background: transparent !important;
    transition: color .25s !important;
}
.elementor-widget-tabs .elementor-tab-title.elementor-active,
.elementor-widget-tabs .elementor-tab-title:hover { color: #f5f5f5 !important; }
.elementor-widget-tabs .elementor-tab-title.elementor-active {
    border-bottom: 2px solid #f5f5f5 !important;
}
.elementor-widget-tabs .elementor-tab-content {
    font-family: 'Inter', sans-serif !important;
    font-size: .85rem !important;
    color: #555555 !important;
    line-height: 1.8 !important;
    padding: 24px 0 !important;
    border: none !important;
}

/* ════════════════════════════════════════
   FORM WIDGET (Elementor Pro)
════════════════════════════════════════ */
.elementor-widget-form .elementor-field-label {
    font-family: 'Inter', sans-serif !important;
    font-size: .65rem !important;
    font-weight: 600 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: #555555 !important;
    margin-bottom: 6px !important;
}
.elementor-widget-form .elementor-field-textual,
.elementor-widget-form select,
.elementor-widget-form textarea {
    background: #eeeeee !important;
    border: 1px solid #d8d8d8 !important;
    color: #f5f5f5 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: .85rem !important;
    padding: 14px 16px !important;
    border-radius: 0 !important;
    outline: none !important;
    transition: border-color .3s !important;
    width: 100% !important;
}
.elementor-widget-form .elementor-field-textual:focus,
.elementor-widget-form select:focus,
.elementor-widget-form textarea:focus {
    border-color: #f5f5f5 !important;
}
.elementor-widget-form .elementor-field-textual::placeholder { color: #444444 !important; }
.elementor-widget-form .elementor-button {
    background: #f5f5f5 !important;
    color: #f5f5f5fff !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: .75rem !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    border: none !important;
    padding: 14px 32px !important;
    border-radius: 0 !important;
    transition: background .3s !important;
    cursor: pointer !important;
}
.elementor-widget-form .elementor-button:hover {
    background: #cccccc !important;
}
.elementor-widget-form .elementor-message {
    font-family: 'Inter', sans-serif !important;
    font-size: .75rem !important;
}
.elementor-widget-form .elementor-message.elementor-message-success { color: #22aa55 !important; }
.elementor-widget-form .elementor-message.elementor-message-danger  { color: #cc0000 !important; }

/* ════════════════════════════════════════
   VIDEO WIDGET
════════════════════════════════════════ */
.elementor-widget-video .elementor-wrapper {
    border: 1px solid #d8d8d8;
    overflow: hidden;
}

/* ════════════════════════════════════════
   SOCIAL ICONS WIDGET
════════════════════════════════════════ */
.elementor-widget-social-icons .elementor-social-icon {
    background: #eeeeee !important;
    border: 1px solid #d8d8d8 !important;
    transition: all .25s !important;
}
.elementor-widget-social-icons .elementor-social-icon:hover {
    background: #d8d8d8 !important;
    border-color: rgba(0,0,0,.4) !important;
    transform: translateY(-2px);
}
.elementor-widget-social-icons .elementor-social-icon i,
.elementor-widget-social-icons .elementor-social-icon svg { color: #f5f5f5 !important; fill: #f5f5f5 !important; }

/* ════════════════════════════════════════
   NAV MENU WIDGET (Elementor Pro)
════════════════════════════════════════ */
.elementor-widget-nav-menu .elementor-nav-menu a {
    font-family: 'Inter', sans-serif !important;
    font-size: .75rem !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: #555555 !important;
    transition: color .25s !important;
}
.elementor-widget-nav-menu .elementor-nav-menu a:hover,
.elementor-widget-nav-menu .elementor-nav-menu .current-menu-item > a { color: #f5f5f5 !important; }
.elementor-widget-nav-menu .elementor-nav-menu--indicator { color: #555555 !important; }

/* Dropdown */
.elementor-widget-nav-menu .elementor-nav-menu .sub-menu {
    background: #f5f5f5 !important;
    border: 1px solid #d8d8d8 !important;
    border-top: none !important;
}
.elementor-widget-nav-menu .elementor-nav-menu .sub-menu a { color: #555555 !important; }
.elementor-widget-nav-menu .elementor-nav-menu .sub-menu a:hover { color: #f5f5f5 !important; background: #eeeeee !important; }

/* ════════════════════════════════════════
   PROGRESS BAR WIDGET
════════════════════════════════════════ */
.elementor-widget-progress .elementor-progress-wrapper {
    background: #d8d8d8 !important;
    height: 4px !important;
    border-radius: 0 !important;
}
.elementor-widget-progress .elementor-progress-bar {
    background: #f5f5f5 !important;
    border-radius: 0 !important;
}
.elementor-widget-progress .elementor-title {
    font-family: 'Inter', sans-serif !important;
    font-size: .72rem !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: #555555 !important;
    margin-bottom: 8px !important;
}
.elementor-widget-progress .elementor-progress-percentage {
    font-family: 'Inter', sans-serif !important;
    font-size: .65rem !important;
    color: #f5f5f5 !important;
}

/* ════════════════════════════════════════
   STAR RATING WIDGET
════════════════════════════════════════ */
.elementor-widget-star-rating .elementor-star-rating i {
    color: #f5f5f5 !important;
}
.elementor-widget-star-rating .elementor-star-rating i.elementor-star-empty {
    color: #cccccc !important;
}

/* ════════════════════════════════════════
   WOOCOMMERCE WIDGETS (Elementor Pro)
════════════════════════════════════════ */

/* Product grid */
.elementor-widget-woocommerce-products .woocommerce ul.products li.product {
    background: #f5f5f5;
    border: 1px solid #d8d8d8;
    transition: border-color .3s;
}
.elementor-widget-woocommerce-products .woocommerce ul.products li.product:hover {
    border-color: rgba(0,0,0,.3);
}
.elementor-widget-woocommerce-products .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: #f5f5f5;
    font-size: .95rem;
}
.elementor-widget-woocommerce-products .woocommerce ul.products li.product .price {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: #f5f5f5;
}
.elementor-widget-woocommerce-products .woocommerce ul.products li.product .button {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: transparent;
    color: #f5f5f5;
    border: 1px solid #cccccc;
    transition: all .3s;
    border-radius: 0;
    font-size: .72rem;
    padding: 10px 20px;
}
.elementor-widget-woocommerce-products .woocommerce ul.products li.product .button:hover {
    background: #f5f5f5;
    color: #f5f5f5fff;
    border-color: #f5f5f5;
}

/* Add to cart button */
.elementor-widget-add-to-cart .elementor-button {
    background: #f5f5f5 !important;
    color: #f5f5f5fff !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    padding: 14px 32px !important;
}
.elementor-widget-add-to-cart .elementor-button:hover { background: #cccccc !important; }

/* Product price */
.elementor-widget-woocommerce-product-price .price {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: 2rem !important;
    color: #f5f5f5 !important;
    letter-spacing: -.02em !important;
}
.elementor-widget-woocommerce-product-price .price del { color: #555555 !important; font-size: 1.2rem !important; }
.elementor-widget-woocommerce-product-price .price ins { text-decoration: none !important; }

/* Product images */
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery {
    border: 1px solid #d8d8d8;
}
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__trigger {
    background: #f5f5f5 !important;
    color: #f5f5f5 !important;
}

/* ════════════════════════════════════════
   SECTION / COLUMN BACKGROUNDS
════════════════════════════════════════ */

/* Default section */
.elementor-section.elementor-section-default {
    background-color: #f5f5f5fff;
}

/* Stretched sections go edge-to-edge */
.elementor-section.elementor-section-stretched {
    width: 100vw !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
}

/* ════════════════════════════════════════
   ELEMENTOR POPUP (Pro)
════════════════════════════════════════ */
.elementor-popup-modal .dialog-widget-content {
    background: #f5f5f5 !important;
    border: 1px solid #d8d8d8 !important;
}
.elementor-popup-modal .dialog-close-button {
    color: #555555 !important;
    transition: color .2s !important;
}
.elementor-popup-modal .dialog-close-button:hover { color: #f5f5f5 !important; }
.elementor-popup-modal .dialog-overlay { background: rgba(0,0,0,.75) !important; }

/* ════════════════════════════════════════
   STICKY HEADER when using Elementor Pro sticky
════════════════════════════════════════ */
.elementor-sticky--effects {
    background: rgba(255,255,255,.96) !important;
    backdrop-filter: blur(12px) !important;
}

/* ════════════════════════════════════════
   FULL-WIDTH PAGE TEMPLATE
════════════════════════════════════════ */
.elementor-full-width-content {
    width: 100%;
    padding: 0;
    margin: 0;
    max-width: none;
}
.elementor-full-width-content .elementor-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ════════════════════════════════════════
   CANVAS PAGE TEMPLATE
════════════════════════════════════════ */
.elementor-canvas-page {
    background: #f5f5f5;
}
.elementor-canvas-page #vestige-cursor,
.elementor-canvas-page #vestige-cursor-ring { display: block; }

/* ════════════════════════════════════════
   EDITOR PANEL — style tweaks
════════════════════════════════════════ */
.elementor-editor-active .elementor-section-wrap > .elementor-empty-view {
    background: rgba(255,255,255,.02) !important;
    border: 1px dashed #333 !important;
}

/* ════════════════════════════════════════
   SCROLL / ENTRANCE ANIMATIONS
════════════════════════════════════════ */
.elementor-invisible { opacity: 0; }
