/**
 * Djia Bricks Elements Styles
 */

/* ===========================================
   GLOBAL / SHARED STYLES
   =========================================== */
.djia-btn {
    display: inline-block;
    padding: 12px 24px;
    background: linear-gradient(135deg, #8b5cf6, #6366f1);
    color: #fff;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
}
.djia-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(139,92,246,0.4);
    color: #fff;
}

/* ===========================================
   BACK TO TOP
   =========================================== */
.bm-back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 9999;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, #8b5cf6, #6366f1);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    box-shadow: 0 4px 15px rgba(139,92,246,0.4);
}
.bm-back-to-top.bm-visible { opacity: 1; visibility: visible; }
.bm-back-to-top:hover { transform: translateY(-5px); }
.brx-body.editing .bm-back-to-top { position: relative; opacity: 1; visibility: visible; bottom: auto; right: auto; }

/* ===========================================
   COUNTER
   =========================================== */
.bm-counter, .djia-counter { text-align: center; }
.bm-counter-value { display: flex; align-items: baseline; justify-content: center; gap: 5px; }
.bm-counter-number { font-size: 48px; font-weight: 700; line-height: 1; background: linear-gradient(135deg, #8b5cf6, #6366f1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.bm-counter-prefix, .bm-counter-suffix { font-size: 24px; color: #666; }
.bm-counter-title { margin-top: 10px; font-size: 16px; color: #666; }

/* ===========================================
   COUNTDOWN
   =========================================== */
.djia-countdown { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.djia-countdown-unit { text-align: center; padding: 20px 30px; background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.05)); border-radius: 12px; min-width: 100px; }
.djia-countdown-number { display: block; font-size: 48px; font-weight: 700; background: linear-gradient(135deg, #8b5cf6, #6366f1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.djia-countdown-label { display: block; margin-top: 8px; font-size: 14px; color: #666; text-transform: uppercase; }

/* ===========================================
   PROGRESS BAR
   =========================================== */
.djia-progress-bar { width: 100%; }
.djia-progress-header { display: flex; justify-content: space-between; margin-bottom: 8px; }
.djia-progress-title { font-weight: 600; }
.djia-progress-percent { color: #8b5cf6; font-weight: 600; }
.djia-progress-track { height: 12px; background: #e5e7eb; border-radius: 10px; overflow: hidden; }
.djia-progress-fill { height: 100%; background: linear-gradient(135deg, #8b5cf6, #6366f1); border-radius: 10px; transition: width 1s ease-out; }

/* ===========================================
   ALERT
   =========================================== */
.djia-alert { display: flex; align-items: flex-start; gap: 15px; padding: 18px 22px; border-radius: 12px; position: relative; }
.djia-alert-info { background: linear-gradient(135deg, rgba(59,130,246,0.1), rgba(59,130,246,0.05)); border-left: 4px solid #3b82f6; color: #1e40af; }
.djia-alert-success { background: linear-gradient(135deg, rgba(34,197,94,0.1), rgba(34,197,94,0.05)); border-left: 4px solid #22c55e; color: #15803d; }
.djia-alert-warning { background: linear-gradient(135deg, rgba(245,158,11,0.1), rgba(245,158,11,0.05)); border-left: 4px solid #f59e0b; color: #b45309; }
.djia-alert-danger { background: linear-gradient(135deg, rgba(239,68,68,0.1), rgba(239,68,68,0.05)); border-left: 4px solid #ef4444; color: #b91c1c; }
.djia-alert-icon { font-size: 20px; flex-shrink: 0; }
.djia-alert-content { flex: 1; }
.djia-alert-title { font-weight: 600; margin-bottom: 5px; }
.djia-alert-text { font-size: 14px; opacity: 0.9; }
.djia-alert-close { position: absolute; top: 12px; right: 12px; background: none; border: none; font-size: 22px; cursor: pointer; opacity: 0.5; line-height: 1; }
.djia-alert-close:hover { opacity: 1; }

/* ===========================================
   MODAL
   =========================================== */
.djia-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; }
.djia-modal.djia-modal-open { display: flex; align-items: center; justify-content: center; }
.djia-modal-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); }
.djia-modal-container { position: relative; background: #fff; border-radius: 16px; max-height: 90vh; overflow: auto; animation: djiaModalIn 0.3s ease; }
.djia-modal-small .djia-modal-container { width: 400px; }
.djia-modal-medium .djia-modal-container { width: 600px; }
.djia-modal-large .djia-modal-container { width: 800px; }
.djia-modal-full .djia-modal-container { width: 95%; }
.djia-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 25px; border-bottom: 1px solid #e5e7eb; }
.djia-modal-title { margin: 0; font-size: 20px; }
.djia-modal-close { background: none; border: none; font-size: 28px; cursor: pointer; opacity: 0.5; line-height: 1; }
.djia-modal-close:hover { opacity: 1; }
.djia-modal-body { padding: 25px; }
@keyframes djiaModalIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }

/* ===========================================
   TABS
   =========================================== */
.djia-tabs-nav { display: flex; gap: 5px; border-bottom: 2px solid #e5e7eb; margin-bottom: 20px; }
.djia-tab-btn { padding: 12px 20px; background: none; border: none; cursor: pointer; font-size: 14px; font-weight: 500; color: #6b7280; position: relative; transition: all 0.3s; }
.djia-tab-btn:hover { color: #8b5cf6; }
.djia-tab-btn.djia-active { color: #8b5cf6; }
.djia-tab-btn.djia-active::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px; background: linear-gradient(135deg, #8b5cf6, #6366f1); }
.djia-tab-panel { display: none; }
.djia-tab-panel.djia-active { display: block; }
.djia-tabs-vertical { display: flex; gap: 30px; }
.djia-tabs-vertical .djia-tabs-nav { flex-direction: column; border-bottom: none; border-right: 2px solid #e5e7eb; margin-bottom: 0; padding-right: 20px; }
.djia-tabs-vertical .djia-tab-btn.djia-active::after { bottom: 0; left: auto; right: -22px; width: 2px; height: 100%; }

/* ===========================================
   ACCORDION
   =========================================== */
.djia-accordion-item { border: 1px solid #e5e7eb; border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.djia-accordion-header { width: 100%; padding: 18px 20px; background: #f9fafb; border: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 16px; font-weight: 500; transition: all 0.3s; }
.djia-accordion-header:hover { background: #f3f4f6; }
.djia-accordion-header i { transition: transform 0.3s; }
.djia-accordion-item.djia-active .djia-accordion-header { background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.05)); color: #8b5cf6; }
.djia-accordion-item.djia-active .djia-accordion-header i { transform: rotate(180deg); }
.djia-accordion-body { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.djia-accordion-item.djia-active .djia-accordion-body { max-height: 500px; }
.djia-accordion-content { padding: 20px; }

/* ===========================================
   TOOLTIP
   =========================================== */
.djia-tooltip-wrapper { position: relative; display: inline-block; }
.djia-tooltip { position: absolute; background: #1f2937; color: #fff; padding: 8px 14px; border-radius: 8px; font-size: 13px; white-space: nowrap; opacity: 0; visibility: hidden; transition: all 0.2s; z-index: 100; }
.djia-tooltip-top { bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); }
.djia-tooltip-bottom { top: calc(100% + 10px); left: 50%; transform: translateX(-50%); }
.djia-tooltip-left { right: calc(100% + 10px); top: 50%; transform: translateY(-50%); }
.djia-tooltip-right { left: calc(100% + 10px); top: 50%; transform: translateY(-50%); }
.djia-tooltip-wrapper:hover .djia-tooltip { opacity: 1; visibility: visible; }

/* ===========================================
   POPOVER
   =========================================== */
.djia-popover-wrapper { position: relative; display: inline-block; }
.djia-popover { position: absolute; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.15); padding: 15px 20px; min-width: 200px; opacity: 0; visibility: hidden; transition: all 0.2s; z-index: 100; }
.djia-popover.djia-popover-open { opacity: 1; visibility: visible; }
.djia-popover-title { font-weight: 600; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #e5e7eb; }
.djia-popover-top { bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); }
.djia-popover-bottom { top: calc(100% + 10px); left: 50%; transform: translateX(-50%); }

/* ===========================================
   FLIP BOX
   =========================================== */
.djia-flip-box { perspective: 1000px; height: 300px; }
.djia-flip-box-inner { position: relative; width: 100%; height: 100%; transition: transform 0.6s; transform-style: preserve-3d; }
.djia-flip-box:hover .djia-flip-box-inner { transform: rotateY(180deg); }
.djia-flip-vertical:hover .djia-flip-box-inner { transform: rotateX(180deg); }
.djia-flip-box-front, .djia-flip-box-back { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; border-radius: 16px; text-align: center; }
.djia-flip-box-front { background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.05)); }
.djia-flip-box-back { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; transform: rotateY(180deg); }
.djia-flip-vertical .djia-flip-box-back { transform: rotateX(180deg); }
.djia-flip-icon { font-size: 48px; margin-bottom: 15px; color: #8b5cf6; }
.djia-flip-box-back .djia-flip-icon { color: #fff; }
.djia-flip-title { margin: 0 0 10px; font-size: 20px; }
.djia-flip-content { margin: 0; opacity: 0.9; }

/* ===========================================
   INFO BOX
   =========================================== */
.djia-info-box { display: block; text-decoration: none; color: inherit; padding: 30px; border-radius: 16px; background: #fff; box-shadow: 0 4px 20px rgba(0,0,0,0.08); transition: all 0.3s; }
.djia-info-box:hover { transform: translateY(-5px); box-shadow: 0 8px 30px rgba(139,92,246,0.2); }
.djia-info-box-top { text-align: center; }
.djia-info-box-left { display: flex; gap: 20px; align-items: flex-start; }
.djia-info-box-right { display: flex; flex-direction: row-reverse; gap: 20px; align-items: flex-start; }
.djia-info-icon { font-size: 48px; color: #8b5cf6; margin-bottom: 15px; }
.djia-info-box-left .djia-info-icon, .djia-info-box-right .djia-info-icon { margin-bottom: 0; }
.djia-info-title { margin: 0 0 10px; font-size: 20px; }
.djia-info-text { margin: 0; color: #6b7280; }

/* ===========================================
   ICON BOX
   =========================================== */
.djia-icon-box { text-align: center; padding: 30px; }
.djia-icon-wrap { width: 80px; height: 80px; border-radius: 50%; background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.05)); display: inline-flex; align-items: center; justify-content: center; font-size: 32px; color: #8b5cf6; margin-bottom: 20px; transition: all 0.3s; }
.djia-icon-box:hover .djia-icon-wrap { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; transform: scale(1.1); }
.djia-icon-title { margin: 0 0 10px; font-size: 18px; }
.djia-icon-content { margin: 0; color: #6b7280; font-size: 14px; }

/* ===========================================
   IMAGE COMPARISON
   =========================================== */
.djia-image-comparison { position: relative; overflow: hidden; border-radius: 12px; cursor: ew-resize; }
.djia-ic-before, .djia-ic-after { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.djia-ic-before { z-index: 2; overflow: hidden; width: 50%; }
.djia-ic-after { z-index: 1; }
.djia-ic-before img, .djia-ic-after img { width: 100%; height: 100%; object-fit: cover; display: block; }
.djia-ic-before img { max-width: none; width: calc(var(--wrapper-width, 100vw)); }
.djia-ic-label { position: absolute; bottom: 20px; padding: 8px 16px; background: rgba(0,0,0,0.7); color: #fff; border-radius: 6px; font-size: 13px; }
.djia-ic-before .djia-ic-label { left: 20px; }
.djia-ic-after .djia-ic-label { right: 20px; }
.djia-ic-handle { position: absolute; top: 0; bottom: 0; left: 50%; width: 4px; background: #fff; z-index: 10; transform: translateX(-50%); }
.djia-ic-handle span { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; background: #fff; border-radius: 50%; box-shadow: 0 2px 10px rgba(0,0,0,0.3); display: flex; align-items: center; justify-content: center; }
.djia-ic-handle span::before, .djia-ic-handle span::after { content: ''; width: 0; height: 0; border: 6px solid transparent; }
.djia-ic-handle span::before { border-right-color: #333; margin-right: 2px; }
.djia-ic-handle span::after { border-left-color: #333; margin-left: 2px; }

/* ===========================================
   TESTIMONIAL
   =========================================== */
.djia-testimonial { padding: 30px; background: #fff; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.djia-testimonial-rating { color: #fbbf24; margin-bottom: 15px; font-size: 18px; }
.djia-testimonial-rating i { margin-right: 2px; }
.djia-testimonial-content { position: relative; margin-bottom: 20px; }
.djia-quote-icon { color: #8b5cf6; opacity: 0.3; font-size: 32px; position: absolute; top: -10px; left: -10px; }
.djia-testimonial-content p { margin: 0; font-size: 16px; line-height: 1.7; color: #374151; padding-left: 20px; }
.djia-testimonial-author { display: flex; align-items: center; gap: 15px; }
.djia-testimonial-avatar { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.djia-testimonial-name { font-weight: 600; margin: 0; }
.djia-testimonial-title { color: #6b7280; font-size: 14px; margin: 0; }

/* ===========================================
   TEAM MEMBER
   =========================================== */
.djia-team-member { text-align: center; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08); transition: all 0.3s; }
.djia-team-member:hover { transform: translateY(-5px); box-shadow: 0 8px 30px rgba(139,92,246,0.2); }
.djia-team-image img { width: 100%; height: 280px; object-fit: cover; }
.djia-team-content { padding: 25px; }
.djia-team-name { margin: 0 0 5px; font-size: 20px; }
.djia-team-position { color: #8b5cf6; font-size: 14px; margin-bottom: 15px; }
.djia-team-bio { color: #6b7280; font-size: 14px; margin-bottom: 20px; }
.djia-team-socials { display: flex; gap: 10px; justify-content: center; }
.djia-team-socials a { width: 36px; height: 36px; border-radius: 50%; background: #f3f4f6; display: flex; align-items: center; justify-content: center; color: #6b7280; transition: all 0.3s; }
.djia-team-socials a:hover { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; }

/* ===========================================
   PRICING TABLE
   =========================================== */
.djia-pricing-table { background: #fff; border-radius: 16px; padding: 40px 30px; text-align: center; box-shadow: 0 4px 20px rgba(0,0,0,0.08); position: relative; transition: all 0.3s; }
.djia-pricing-table:hover { transform: translateY(-5px); }
.djia-pricing-featured { border: 2px solid #8b5cf6; transform: scale(1.05); }
.djia-pricing-featured:hover { transform: scale(1.05) translateY(-5px); }
.djia-pricing-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; padding: 6px 20px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.djia-pricing-title { margin: 0 0 5px; font-size: 24px; }
.djia-pricing-desc { color: #6b7280; margin: 0 0 25px; }
.djia-pricing-price { margin-bottom: 30px; }
.djia-price-amount { font-size: 56px; font-weight: 700; background: linear-gradient(135deg, #8b5cf6, #6366f1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.djia-price-period { color: #6b7280; font-size: 16px; }
.djia-pricing-features { list-style: none; padding: 0; margin: 0 0 30px; text-align: left; }
.djia-pricing-features li { padding: 12px 0; border-bottom: 1px solid #f3f4f6; display: flex; align-items: center; gap: 10px; }
.djia-pricing-features li:last-child { border: none; }
.djia-feature-enabled i { color: #22c55e; }
.djia-feature-disabled { color: #9ca3af; }
.djia-feature-disabled i { color: #d1d5db; }
.djia-pricing-button { width: 100%; padding: 15px; font-size: 16px; }

/* ===========================================
   BUSINESS HOURS
   =========================================== */
.djia-business-hours { background: #fff; border-radius: 16px; padding: 30px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.djia-bh-title { margin: 0 0 20px; font-size: 20px; }
.djia-bh-list { list-style: none; padding: 0; margin: 0; }
.djia-bh-list li { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #f3f4f6; }
.djia-bh-list li:last-child { border: none; }
.djia-bh-day { font-weight: 500; }
.djia-bh-hours { color: #6b7280; }
.djia-bh-closed .djia-bh-hours { color: #ef4444; }

/* ===========================================
   TIMELINE
   =========================================== */
.djia-timeline { position: relative; padding-left: 40px; }
.djia-timeline-line { position: absolute; left: 15px; top: 0; bottom: 0; width: 2px; background: linear-gradient(180deg, #8b5cf6, #6366f1); }
.djia-timeline-item { position: relative; padding-bottom: 30px; }
.djia-timeline-item:last-child { padding-bottom: 0; }
.djia-timeline-marker { position: absolute; left: -40px; width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #8b5cf6, #6366f1); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 14px; z-index: 1; }
.djia-timeline-content { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); }
.djia-timeline-date { display: inline-block; background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.05)); color: #8b5cf6; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; margin-bottom: 10px; }
.djia-timeline-title { margin: 0 0 10px; font-size: 18px; }
.djia-timeline-text { margin: 0; color: #6b7280; }

/* ===========================================
   STAR RATING
   =========================================== */
.djia-star-rating { display: flex; align-items: center; gap: 10px; }
.djia-stars { display: flex; gap: 2px; }
.djia-star-filled { color: #fbbf24; }
.djia-star-half { color: #fbbf24; position: relative; }
.djia-star-empty { color: #d1d5db; }
.djia-rating-number { color: #6b7280; font-size: 14px; }

/* ===========================================
   LOTTIE
   =========================================== */
.djia-lottie { display: flex; align-items: center; justify-content: center; }

/* ===========================================
   LIGHTBOX
   =========================================== */
.djia-lightbox { position: relative; display: inline-block; cursor: pointer; overflow: hidden; border-radius: 12px; }
.djia-lightbox-thumb { display: block; width: 100%; transition: transform 0.3s; }
.djia-lightbox:hover .djia-lightbox-thumb { transform: scale(1.05); }
.djia-lightbox-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center; opacity: 0; transition: all 0.3s; font-size: 32px; color: #fff; }
.djia-lightbox:hover .djia-lightbox-overlay { opacity: 1; }
.djia-lightbox-caption { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(transparent, rgba(0,0,0,0.8)); color: #fff; padding: 20px; font-size: 14px; }

/* ===========================================
   BREADCRUMBS
   =========================================== */
.djia-breadcrumb-list { display: flex; align-items: center; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; gap: 5px; }
.djia-breadcrumb-item a { color: #6b7280; text-decoration: none; transition: color 0.2s; }
.djia-breadcrumb-item a:hover { color: #8b5cf6; }
.djia-breadcrumb-separator { color: #d1d5db; }
.djia-breadcrumb-current { color: #374151; font-weight: 500; }

/* ===========================================
   READING PROGRESS
   =========================================== */
.djia-reading-progress { position: fixed; left: 0; width: 100%; z-index: 9999; background: rgba(0,0,0,0.1); }
.djia-rp-top { top: 0; }
.djia-rp-bottom { bottom: 0; }
.djia-reading-bar { height: 100%; width: 0; background: linear-gradient(90deg, #8b5cf6, #6366f1); transition: width 0.1s; }

/* ===========================================
   ANIMATED HEADING
   =========================================== */
.djia-animated-heading { display: inline; }
.djia-animated-word { color: #8b5cf6; }

/* ===========================================
   TYPED TEXT
   =========================================== */
.djia-typed-wrapper { display: inline; }
.djia-typed-text { color: #8b5cf6; }
.djia-typed-cursor { animation: djiaBlink 0.7s infinite; }
@keyframes djiaBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

/* ===========================================
   TEXT MARQUEE
   =========================================== */
.djia-text-marquee { overflow: hidden; white-space: nowrap; }
.djia-marquee-content { display: inline-block; }
.djia-marquee-content span { display: inline-block; padding-right: 50px; }
.djia-marquee-pause:hover .djia-marquee-content { animation-play-state: paused; }
@keyframes djia-marquee-left { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes djia-marquee-right { 0% { transform: translateX(-50%); } 100% { transform: translateX(0); } }

/* ===========================================
   SOCIAL ICONS
   =========================================== */
.djia-social-icons { display: flex; align-items: center; gap: 15px; }
.djia-social-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: #6b7280; transition: all 0.3s; text-decoration: none; }
.djia-social-icon:hover { color: #8b5cf6; transform: translateY(-3px); }
.djia-social-rounded .djia-social-icon { background: #f3f4f6; }
.djia-social-rounded .djia-social-icon:hover { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; }
.djia-social-square .djia-social-icon { border-radius: 8px; background: #f3f4f6; }
.djia-social-outline .djia-social-icon { border: 2px solid #e5e7eb; }
.djia-social-outline .djia-social-icon:hover { border-color: #8b5cf6; }

/* ===========================================
   SOCIAL SHARE
   =========================================== */
.djia-social-share { display: flex; gap: 10px; flex-wrap: wrap; }
.djia-share-btn { display: flex; align-items: center; gap: 8px; padding: 10px 15px; border-radius: 8px; color: #fff; text-decoration: none; font-size: 14px; transition: all 0.3s; }
.djia-share-btn:hover { transform: translateY(-2px); filter: brightness(1.1); color: #fff; }
.djia-share-facebook { background: #1877f2; }
.djia-share-twitter { background: #1da1f2; }
.djia-share-linkedin { background: #0a66c2; }
.djia-share-pinterest { background: #e60023; }
.djia-share-whatsapp { background: #25d366; }
.djia-share-email { background: #6b7280; }
.djia-share-icons .djia-share-btn { padding: 10px; border-radius: 50%; }
.djia-share-minimal .djia-share-btn { background: transparent; color: #6b7280; padding: 5px; }
.djia-share-minimal .djia-share-btn:hover { color: #8b5cf6; }

/* ===========================================
   DUAL HEADING
   =========================================== */
.djia-dual-heading { display: inline; }
.djia-dh-first { color: #374151; }
.djia-dh-second { color: #8b5cf6; }

/* ===========================================
   HIGHLIGHTED HEADING
   =========================================== */
.djia-highlighted-heading { display: inline; }
.djia-hh-highlight { position: relative; }
.djia-hh-background { background: linear-gradient(135deg, rgba(139,92,246,0.2), rgba(99,102,241,0.2)); padding: 0 8px; border-radius: 4px; }
.djia-hh-underline::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(135deg, #8b5cf6, #6366f1); }
.djia-hh-strikethrough { text-decoration: line-through; text-decoration-color: #8b5cf6; }
.djia-hh-marker { background: linear-gradient(transparent 60%, #fef08a 60%); }

/* ===========================================
   OFF CANVAS
   =========================================== */
.djia-off-canvas { display: inline-block; }
.djia-oc-trigger { background: none; border: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 10px; }
.djia-oc-wrapper { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; visibility: hidden; opacity: 0; transition: all 0.3s; }
.djia-oc-wrapper.active { visibility: visible; opacity: 1; }
.djia-oc-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); }
.djia-oc-panel { position: absolute; background: #fff; max-width: 90%; height: 100%; overflow-y: auto; transition: transform 0.3s; }
.djia-oc-left .djia-oc-panel { left: 0; top: 0; width: 320px; transform: translateX(-100%); }
.djia-oc-right .djia-oc-panel { right: 0; top: 0; width: 320px; transform: translateX(100%); }
.djia-oc-top .djia-oc-panel { top: 0; left: 0; width: 100%; height: auto; max-height: 80%; transform: translateY(-100%); }
.djia-oc-bottom .djia-oc-panel { bottom: 0; left: 0; width: 100%; height: auto; max-height: 80%; transform: translateY(100%); }
.djia-oc-wrapper.active .djia-oc-panel { transform: translate(0); }
.djia-oc-close { position: absolute; top: 15px; right: 15px; background: none; border: none; font-size: 28px; cursor: pointer; opacity: 0.5; }
.djia-oc-close:hover { opacity: 1; }
.djia-oc-content { padding: 50px 25px 25px; }
body.djia-oc-open { overflow: hidden; }

/* ===========================================
   TABLE OF CONTENTS
   =========================================== */
.djia-toc { background: #f9fafb; padding: 25px; border-radius: 12px; border: 1px solid #e5e7eb; }
.djia-toc-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.djia-toc-title { font-size: 18px; font-weight: 600; margin: 0; }
.djia-toc-toggle { background: none; border: none; cursor: pointer; padding: 5px; }
.djia-toc-list { margin: 0; padding-left: 20px; }
.djia-toc-list li { margin-bottom: 8px; }
.djia-toc-list a { color: #6b7280; text-decoration: none; transition: color 0.2s; }
.djia-toc-list a:hover { color: #8b5cf6; }
.djia-toc-list li.active a { color: #8b5cf6; font-weight: 600; }
.djia-toc-collapsible.djia-toc-collapsed .djia-toc-list { display: none; }
.djia-toc-collapsible.djia-toc-collapsed .djia-toc-toggle i { transform: rotate(-90deg); }

/* ===========================================
   CONTENT SWITCHER
   =========================================== */
.djia-content-switcher { text-align: center; }
.djia-cs-header { display: inline-flex; align-items: center; gap: 15px; margin-bottom: 25px; }
.djia-cs-label { font-weight: 500; color: #9ca3af; cursor: pointer; transition: color 0.2s; }
.djia-cs-label.active { color: #374151; }
.djia-cs-switch { position: relative; width: 60px; height: 32px; background: #e5e7eb; border: none; border-radius: 32px; cursor: pointer; transition: all 0.3s; }
.djia-cs-switch span { position: absolute; top: 4px; left: 4px; width: 24px; height: 24px; background: #fff; border-radius: 50%; transition: transform 0.3s; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.djia-cs-switch.active { background: linear-gradient(135deg, #8b5cf6, #6366f1); }
.djia-cs-switch.active span { transform: translateX(28px); }
.djia-cs-content { display: none; }
.djia-cs-content.active { display: block; }

/* ===========================================
   NOTIFICATION BAR
   =========================================== */
.djia-notification-bar { display: flex; align-items: center; justify-content: center; padding: 12px 20px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; position: relative; }
.djia-nb-fixed-top { position: fixed; top: 0; left: 0; width: 100%; z-index: 9999; }
.djia-nb-fixed-bottom { position: fixed; bottom: 0; left: 0; width: 100%; z-index: 9999; }
.djia-nb-inner { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; justify-content: center; }
.djia-nb-icon { font-size: 18px; }
.djia-nb-message { font-size: 14px; }
.djia-nb-btn { background: #fff; color: #8b5cf6; padding: 8px 18px; border-radius: 6px; font-size: 13px; font-weight: 600; text-decoration: none; transition: all 0.2s; }
.djia-nb-btn:hover { transform: scale(1.05); color: #6366f1; }
.djia-nb-close { position: absolute; right: 15px; background: none; border: none; color: #fff; font-size: 22px; cursor: pointer; opacity: 0.7; }
.djia-nb-close:hover { opacity: 1; }

/* ===========================================
   BURGER MENU
   =========================================== */
.djia-burger-menu { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: none; border: none; cursor: pointer; }
.djia-burger-inner { display: flex; flex-direction: column; gap: 5px; }
.djia-burger-line { width: 24px; height: 3px; background: #374151; border-radius: 2px; transition: all 0.3s; }
.djia-burger-menu.active .djia-burger-line:nth-child(1) { transform: rotate(45deg) translate(6px, 6px); }
.djia-burger-menu.active .djia-burger-line:nth-child(2) { opacity: 0; }
.djia-burger-menu.active .djia-burger-line:nth-child(3) { transform: rotate(-45deg) translate(6px, -6px); }

/* ===========================================
   IMAGE HOTSPOTS
   =========================================== */
.djia-image-hotspots { position: relative; display: inline-block; }
.djia-hotspots-image { display: block; width: 100%; }
.djia-hotspot { position: absolute; transform: translate(-50%, -50%); }
.djia-hotspot-marker { width: 32px; height: 32px; background: linear-gradient(135deg, #8b5cf6, #6366f1); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; cursor: pointer; font-size: 14px; transition: all 0.3s; }
.djia-hotspot-marker:hover { transform: scale(1.1); }
.djia-hotspot-marker.djia-pulse::before { content: ''; position: absolute; width: 100%; height: 100%; border-radius: 50%; background: rgba(139,92,246,0.4); animation: djiaPulse 1.5s infinite; }
@keyframes djiaPulse { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(2); opacity: 0; } }
.djia-hotspot-tooltip { position: absolute; bottom: calc(100% + 15px); left: 50%; transform: translateX(-50%); background: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.15); min-width: 200px; opacity: 0; visibility: hidden; transition: all 0.3s; z-index: 10; }
.djia-hotspot-tooltip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 8px solid transparent; border-top-color: #fff; }
.djia-hotspot-tooltip.active { opacity: 1; visibility: visible; }
.djia-hotspot-title { font-weight: 600; margin-bottom: 5px; }
.djia-hotspot-content { font-size: 14px; color: #6b7280; }

/* ===========================================
   DYNAMIC CHART
   =========================================== */
.djia-chart { position: relative; }
.djia-chart-canvas { width: 100% !important; height: 300px; }

/* ===========================================
   COPY TO CLIPBOARD
   =========================================== */
.djia-copy-clipboard { display: inline-flex; align-items: center; gap: 10px; background: #f3f4f6; padding: 10px 15px; border-radius: 8px; }
.djia-copy-text { font-family: monospace; font-size: 14px; color: #374151; }
.djia-copy-btn { display: flex; align-items: center; gap: 5px; padding: 8px 15px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; transition: all 0.2s; }
.djia-copy-btn:hover { transform: scale(1.05); }
.djia-copy-btn.copied { background: #22c55e; }

/* ===========================================
   READ MORE / LESS
   =========================================== */
.djia-read-more { position: relative; }
.djia-rm-wrapper { overflow: hidden; transition: max-height 0.3s; }
.djia-rm-gradient .djia-rm-wrapper::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 60px; background: linear-gradient(transparent, #fff); pointer-events: none; }
.djia-read-more.expanded .djia-rm-wrapper::after { display: none; }
.djia-rm-btn { background: none; border: none; color: #8b5cf6; cursor: pointer; font-weight: 600; padding: 10px 0; }
.djia-rm-btn:hover { text-decoration: underline; }

/* ===========================================
   QR CODE
   =========================================== */
.djia-qr-code { display: inline-block; }
.djia-qr-code img { display: block; }

/* ===========================================
   WOOCOMMERCE - MINI CART
   =========================================== */
.djia-mini-cart { position: relative; display: inline-block; }
.djia-mc-trigger { display: flex; align-items: center; gap: 10px; cursor: pointer; position: relative; }
.djia-mc-icon { font-size: 22px; color: #374151; }
.djia-mc-badge { position: absolute; top: -8px; right: -8px; min-width: 20px; height: 20px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border-radius: 50%; font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.djia-mc-total { font-weight: 600; color: #374151; }
.djia-mc-dropdown { position: absolute; top: calc(100% + 15px); background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.15); padding: 20px; min-width: 320px; opacity: 0; visibility: hidden; transition: all 0.3s; z-index: 9999; }
.djia-mc-pos-right .djia-mc-dropdown { right: 0; }
.djia-mc-pos-left .djia-mc-dropdown { left: 0; }
.djia-mc-hover:hover .djia-mc-dropdown, .djia-mc-click.active .djia-mc-dropdown { opacity: 1; visibility: visible; }

/* ===========================================
   WOOCOMMERCE - PRODUCT GRID
   =========================================== */
.djia-product-grid { display: grid; }
.djia-product-card { background: #fff; border-radius: 12px; overflow: hidden; transition: all 0.3s; }
.djia-product-card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.1); }
.djia-product-image { position: relative; overflow: hidden; }
.djia-product-image img { width: 100%; height: 250px; object-fit: cover; transition: transform 0.3s; }
.djia-product-card:hover .djia-product-image img { transform: scale(1.05); }
.djia-sale-badge { position: absolute; top: 12px; left: 12px; background: #ef4444; color: #fff; padding: 5px 12px; border-radius: 4px; font-size: 12px; font-weight: 600; }
.djia-product-content { padding: 20px; }
.djia-product-title { margin: 0 0 8px; font-size: 16px; }
.djia-product-title a { color: #374151; text-decoration: none; }
.djia-product-title a:hover { color: #8b5cf6; }
.djia-product-price { font-size: 18px; font-weight: 700; color: #8b5cf6; margin-bottom: 15px; }
.djia-product-price del { color: #9ca3af; font-size: 14px; margin-right: 8px; }

/* ===========================================
   WOOCOMMERCE - ADD TO CART
   =========================================== */
.djia-add-to-cart { display: inline-block; }
.djia-atc-form { display: flex; align-items: center; gap: 10px; }
.djia-atc-qty input { width: 70px; height: 45px; text-align: center; border: 1px solid #e5e7eb; border-radius: 8px; font-size: 16px; }
.djia-atc-btn { display: flex; align-items: center; gap: 8px; padding: 12px 24px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border: none; border-radius: 8px; cursor: pointer; font-size: 15px; font-weight: 600; transition: all 0.3s; }
.djia-atc-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(139,92,246,0.4); }

/* ===========================================
   VIDEO POPUP
   =========================================== */
.djia-video-popup { position: relative; display: inline-block; cursor: pointer; }
.djia-vp-thumb { display: block; width: 100%; border-radius: 12px; }
.djia-vp-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.3); border-radius: 12px; }
.djia-vp-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; background: linear-gradient(135deg, #8b5cf6, #6366f1); border: none; border-radius: 50%; color: #fff; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s; }
.djia-vp-play:hover { transform: translate(-50%, -50%) scale(1.1); }
.djia-vp-pulse::before { content: ''; position: absolute; width: 100%; height: 100%; border-radius: 50%; background: rgba(139,92,246,0.4); animation: djiaPulse 1.5s infinite; }
.djia-vp-lightbox { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); z-index: 99999; display: flex; align-items: center; justify-content: center; }
.djia-vp-lightbox-inner { position: relative; width: 90%; max-width: 900px; }
.djia-vp-lightbox-close { position: absolute; top: -40px; right: 0; background: none; border: none; color: #fff; font-size: 32px; cursor: pointer; }
.djia-vp-lightbox iframe { width: 100%; aspect-ratio: 16/9; border: none; border-radius: 12px; }

/* ===========================================
   LOGO GRID
   =========================================== */
.djia-logo-grid { display: grid; align-items: center; }
.djia-logo-item { display: flex; align-items: center; justify-content: center; padding: 20px; transition: all 0.3s; }
.djia-logo-item img { max-width: 100%; height: auto; transition: all 0.3s; }
.djia-logo-grayscale .djia-logo-item img { filter: grayscale(100%); opacity: 0.6; }
.djia-logo-grayscale .djia-logo-item:hover img { filter: grayscale(0%); opacity: 1; }

/* ===========================================
   CALL TO ACTION
   =========================================== */
.djia-cta { display: flex; align-items: center; justify-content: space-between; padding: 40px; background: linear-gradient(135deg, #8b5cf6, #6366f1); border-radius: 16px; color: #fff; }
.djia-cta-vertical { flex-direction: column; text-align: center; gap: 25px; }
.djia-cta-content { flex: 1; }
.djia-cta-title { margin: 0 0 10px; font-size: 28px; font-weight: 700; }
.djia-cta-desc { margin: 0; opacity: 0.9; font-size: 16px; }
.djia-cta-buttons { display: flex; gap: 15px; }
.djia-cta-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; background: #fff; color: #8b5cf6; border-radius: 8px; font-weight: 600; text-decoration: none; transition: all 0.3s; }
.djia-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0,0,0,0.2); }
.djia-cta-btn-secondary { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.5); }
.djia-cta-btn-secondary:hover { background: rgba(255,255,255,0.1); border-color: #fff; color: #fff; }

/* ===========================================
   PROCESS STEPS
   =========================================== */
.djia-process-steps { display: flex; gap: 30px; }
.djia-steps-vertical { flex-direction: column; }
.djia-step { position: relative; flex: 1; text-align: center; }
.djia-steps-vertical .djia-step { text-align: left; display: flex; gap: 20px; }
.djia-step-number { width: 60px; height: 60px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 700; margin: 0 auto 20px; position: relative; z-index: 1; flex-shrink: 0; }
.djia-steps-vertical .djia-step-number { margin: 0; }
.djia-step-connector { position: absolute; background: linear-gradient(90deg, #8b5cf6, #6366f1); }
.djia-steps-horizontal .djia-step-connector { top: 30px; left: calc(50% + 40px); right: calc(-50% + 40px); height: 3px; }
.djia-steps-vertical .djia-step-connector { left: 30px; top: 70px; bottom: -20px; width: 3px; transform: translateX(-50%); }
.djia-step-title { margin: 0 0 10px; font-size: 18px; font-weight: 600; }
.djia-step-content { color: #6b7280; font-size: 14px; }

/* ===========================================
   DIVIDER
   =========================================== */
.djia-divider { display: flex; align-items: center; gap: 15px; }
.djia-divider-line { flex: 1; height: 0; border-top: 1px solid #e5e7eb; }
.djia-divider-center .djia-divider-line:first-child { flex: 1; }
.djia-divider-left .djia-divider-line:first-child { display: none; }
.djia-divider-right .djia-divider-line:last-child { display: none; }
.djia-divider-text, .djia-divider-icon { color: #6b7280; font-size: 14px; white-space: nowrap; }

/* ===========================================
   TOAST NOTIFICATION
   =========================================== */
.djia-toast-container { position: fixed; z-index: 99999; display: flex; flex-direction: column; gap: 10px; padding: 20px; pointer-events: none; }
.djia-toast-top-right { top: 0; right: 0; }
.djia-toast-top-left { top: 0; left: 0; }
.djia-toast-top-center { top: 0; left: 50%; transform: translateX(-50%); }
.djia-toast-bottom-right { bottom: 0; right: 0; }
.djia-toast-bottom-left { bottom: 0; left: 0; }
.djia-toast-bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); }
.djia-toast-box { display: flex; align-items: flex-start; gap: 15px; padding: 18px 22px; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.15); min-width: 300px; max-width: 400px; pointer-events: auto; opacity: 0; transform: translateX(100px); transition: all 0.3s; position: relative; overflow: hidden; }
.djia-toast-box.active { opacity: 1; transform: translateX(0); }
.djia-toast-success { border-left: 4px solid #22c55e; }
.djia-toast-error { border-left: 4px solid #ef4444; }
.djia-toast-warning { border-left: 4px solid #f59e0b; }
.djia-toast-info { border-left: 4px solid #3b82f6; }
.djia-toast-icon { font-size: 22px; flex-shrink: 0; }
.djia-toast-success .djia-toast-icon { color: #22c55e; }
.djia-toast-error .djia-toast-icon { color: #ef4444; }
.djia-toast-warning .djia-toast-icon { color: #f59e0b; }
.djia-toast-info .djia-toast-icon { color: #3b82f6; }
.djia-toast-body { flex: 1; }
.djia-toast-title { font-weight: 600; margin-bottom: 4px; color: #1f2937; }
.djia-toast-message { font-size: 14px; color: #6b7280; }
.djia-toast-close { position: absolute; top: 10px; right: 10px; background: none; border: none; font-size: 20px; color: #9ca3af; cursor: pointer; }
.djia-toast-progress { position: absolute; bottom: 0; left: 0; height: 3px; background: linear-gradient(90deg, #8b5cf6, #6366f1); animation: djiaToastProgress linear forwards; }
@keyframes djiaToastProgress { from { width: 100%; } to { width: 0; } }

/* ===========================================
   PRO SLIDER
   =========================================== */
.djia-pro-slider { position: relative; overflow: hidden; border-radius: 16px; }
.djia-slider-track { position: relative; width: 100%; height: 100%; }
.djia-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.5s; }
.djia-slide.active { opacity: 1; z-index: 1; }
.djia-slide-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; }
.djia-ken-burns .djia-slide.active .djia-slide-bg { animation: djiaKenBurns 20s ease-out forwards; }
@keyframes djiaKenBurns { from { transform: scale(1); } to { transform: scale(1.1); } }
.djia-slide-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); }
.djia-slide-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; color: #fff; z-index: 2; max-width: 800px; padding: 20px; }
.djia-slide-content-left .djia-slide-content { left: 10%; transform: translate(0, -50%); text-align: left; }
.djia-slide-content-right .djia-slide-content { left: auto; right: 10%; transform: translate(0, -50%); text-align: right; }
.djia-slide-title { font-size: 48px; font-weight: 700; margin: 0 0 15px; text-shadow: 0 2px 10px rgba(0,0,0,0.3); }
.djia-slide-subtitle { font-size: 20px; margin: 0 0 25px; opacity: 0.9; }
.djia-slide-btn { display: inline-block; padding: 14px 32px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; transition: all 0.3s; }
.djia-slide-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(139,92,246,0.5); color: #fff; }
.djia-slider-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; width: 50px; height: 50px; background: rgba(255,255,255,0.9); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 20px; color: #374151; transition: all 0.3s; }
.djia-slider-prev { left: 20px; }
.djia-slider-next { right: 20px; }
.djia-slider-arrow:hover { background: #fff; box-shadow: 0 4px 15px rgba(0,0,0,0.2); }
.djia-slider-dots { position: absolute; bottom: 25px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 10; }
.djia-slider-dot { width: 12px; height: 12px; background: rgba(255,255,255,0.5); border: none; border-radius: 50%; cursor: pointer; transition: all 0.3s; }
.djia-slider-dot.active { background: #fff; transform: scale(1.2); }

/* ===========================================
   FLEX GALLERY
   =========================================== */
.djia-flex-gallery { display: grid; }
.djia-gallery-item { position: relative; overflow: hidden; border-radius: 12px; }
.djia-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.djia-gallery-item:hover img { transform: scale(var(--scale, 1.05)); }
.djia-gallery-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(139,92,246,0.8); display: flex; align-items: center; justify-content: center; opacity: 0; transition: all 0.3s; }
.djia-gallery-item:hover .djia-gallery-overlay { opacity: 1; }
.djia-gallery-overlay i { font-size: 32px; color: #fff; }
.djia-gallery-caption { position: absolute; bottom: 0; left: 0; width: 100%; padding: 15px; color: #fff; }
.djia-gallery-caption-overlay .djia-gallery-caption { background: linear-gradient(transparent, rgba(0,0,0,0.8)); }
.djia-caption-title { display: block; font-weight: 600; margin-bottom: 5px; }
.djia-caption-text { display: block; font-size: 13px; opacity: 0.8; }
.djia-lightbox-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.95); z-index: 99999; display: flex; align-items: center; justify-content: center; }
.djia-lb-content { position: relative; max-width: 90%; max-height: 90%; }
.djia-lb-content img { max-width: 100%; max-height: 85vh; border-radius: 8px; }
.djia-lb-close { position: absolute; top: -50px; right: 0; background: none; border: none; color: #fff; font-size: 36px; cursor: pointer; }
.djia-lb-prev, .djia-lb-next { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.1); border: none; color: #fff; width: 50px; height: 50px; border-radius: 50%; cursor: pointer; font-size: 20px; }
.djia-lb-prev { left: -70px; }
.djia-lb-next { right: -70px; }
.djia-lb-caption { text-align: center; color: #fff; padding: 15px 0; font-size: 14px; }

/* ===========================================
   RESPONSIVE TABLE
   =========================================== */
.djia-responsive-table { overflow-x: auto; }
.djia-responsive-table table { width: 100%; border-collapse: collapse; }
.djia-responsive-table th, .djia-responsive-table td { padding: 15px; text-align: left; border: 1px solid #e5e7eb; }
.djia-responsive-table thead th { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; font-weight: 600; }
.djia-table-striped tbody tr:nth-child(even) td { background: #f9fafb; }
.djia-table-hoverable tbody tr:hover td { background: rgba(139,92,246,0.1); }
.djia-table-sticky-col td:first-child, .djia-table-sticky-col th:first-child { position: sticky; left: 0; background: #fff; z-index: 1; }
@media (max-width: 768px) {
    .djia-table-stack table, .djia-table-stack thead, .djia-table-stack tbody, .djia-table-stack th, .djia-table-stack td, .djia-table-stack tr { display: block; }
    .djia-table-stack thead { display: none; }
    .djia-table-stack td { padding-left: 50%; position: relative; border: none; border-bottom: 1px solid #e5e7eb; }
    .djia-table-stack td::before { content: attr(data-label); position: absolute; left: 15px; font-weight: 600; }
}

/* ===========================================
   SLIDING MENU
   =========================================== */
.djia-sliding-menu { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; visibility: hidden; }
.djia-sliding-menu.active { visibility: visible; }
.djia-sm-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); opacity: 0; transition: opacity 0.3s; }
.djia-sliding-menu.active .djia-sm-overlay { opacity: 1; }
.djia-sm-panel { position: absolute; top: 0; height: 100%; background: #fff; overflow-y: auto; transition: transform 0.3s; }
.djia-sm-left .djia-sm-panel { left: 0; transform: translateX(-100%); }
.djia-sm-right .djia-sm-panel { right: 0; transform: translateX(100%); }
.djia-sliding-menu.active .djia-sm-panel { transform: translateX(0); }
.djia-sm-close { position: absolute; top: 15px; right: 15px; background: none; border: none; font-size: 28px; cursor: pointer; color: #374151; }
.djia-sm-menu { list-style: none; padding: 60px 0 20px; margin: 0; }
.djia-sm-item { border-bottom: 1px solid #f3f4f6; }
.djia-sm-item a { display: flex; align-items: center; gap: 12px; padding: 15px 25px; color: #374151; text-decoration: none; font-size: 16px; transition: all 0.2s; }
.djia-sm-item a:hover { background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.1)); color: #8b5cf6; }
body.djia-sm-open { overflow: hidden; }

/* ===========================================
   TESTIMONIAL CAROUSEL
   =========================================== */
.djia-testimonial-carousel { position: relative; padding: 20px 0; }
.djia-tc-track { position: relative; overflow: hidden; }
.djia-tc-card { display: none; padding: 30px; background: #fff; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); text-align: center; }
.djia-tc-card.active { display: block; }
.djia-tc-quote { font-size: 48px; color: #8b5cf6; opacity: 0.3; line-height: 1; margin-bottom: 10px; display: block; }
.djia-tc-stars { display: flex; justify-content: center; gap: 3px; margin-bottom: 15px; color: #fbbf24; }
.djia-tc-stars .djia-star-empty { color: #d1d5db; }
.djia-tc-content { font-size: 18px; line-height: 1.7; color: #4b5563; margin-bottom: 25px; font-style: italic; }
.djia-tc-author { display: flex; align-items: center; justify-content: center; gap: 15px; }
.djia-tc-avatar { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.djia-tc-info { text-align: left; }
.djia-tc-name { display: block; font-weight: 600; color: #1f2937; }
.djia-tc-position { display: block; font-size: 14px; color: #6b7280; }
.djia-tc-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 45px; height: 45px; background: #fff; border: 1px solid #e5e7eb; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 18px; color: #374151; transition: all 0.3s; z-index: 10; }
.djia-tc-prev { left: 0; }
.djia-tc-next { right: 0; }
.djia-tc-arrow:hover { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border-color: transparent; }
.djia-tc-dots { display: flex; justify-content: center; gap: 8px; margin-top: 25px; }
.djia-tc-dot { width: 10px; height: 10px; background: #d1d5db; border: none; border-radius: 50%; cursor: pointer; transition: all 0.3s; }
.djia-tc-dot.active { background: linear-gradient(135deg, #8b5cf6, #6366f1); transform: scale(1.2); }

/* ===========================================
   BEFORE / AFTER SLIDER
   =========================================== */
.djia-before-after { position: relative; overflow: hidden; border-radius: 12px; user-select: none; }
.djia-before-after img { display: block; width: 100%; height: auto; pointer-events: none; }
.djia-ba-before { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; }
.djia-ba-after { position: relative; }
.djia-ba-slider { position: absolute; top: 0; bottom: 0; width: 4px; cursor: ew-resize; z-index: 10; }
.djia-ba-line { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 3px; height: 100%; background: #fff; box-shadow: 0 0 10px rgba(0,0,0,0.3); }
.djia-ba-handle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 10px rgba(0,0,0,0.3); font-size: 18px; color: #374151; }
.djia-ba-label { position: absolute; padding: 8px 16px; background: rgba(0,0,0,0.7); color: #fff; border-radius: 4px; font-size: 13px; font-weight: 600; }
.djia-ba-label-before { top: 15px; left: 15px; }
.djia-ba-label-after { top: 15px; right: 15px; }

/* ===========================================
   SCROLL VIDEO
   =========================================== */
.djia-scroll-video { position: relative; }
.djia-sv-sticky { position: relative; }
.djia-sv-inner { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; justify-content: center; }
.djia-scroll-video video { width: 100%; max-height: 100vh; object-fit: cover; }

/* ===========================================
   MARQUEE
   =========================================== */
.djia-marquee { overflow: hidden; }
.djia-mq-track { display: flex; align-items: center; width: max-content; }
.djia-mq-item { white-space: nowrap; }
.djia-mq-item a { text-decoration: none; color: inherit; }
.djia-mq-sep { margin: 0 15px; opacity: 0.5; }
.djia-mq-pause:hover .djia-mq-track { animation-play-state: paused !important; }
.djia-mq-fade::before, .djia-mq-fade::after { content: ''; position: absolute; top: 0; bottom: 0; width: 100px; z-index: 2; pointer-events: none; }
.djia-mq-fade::before { left: 0; background: linear-gradient(90deg, #fff, transparent); }
.djia-mq-fade::after { right: 0; background: linear-gradient(-90deg, #fff, transparent); }
@keyframes djia-marquee-horizontal { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes djia-marquee-vertical { 0% { transform: translateY(0); } 100% { transform: translateY(-50%); } }

/* ===========================================
   ANIMATED COUNTER
   =========================================== */
.djia-animated-counter { text-align: center; }
.djia-ac-icon { display: block; margin-bottom: 15px; font-size: 48px; color: #8b5cf6; }
.djia-ac-value { display: flex; align-items: baseline; justify-content: center; gap: 5px; }
.djia-ac-number { font-size: 56px; font-weight: 700; line-height: 1; background: linear-gradient(135deg, #8b5cf6, #6366f1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.djia-ac-prefix, .djia-ac-suffix { font-size: 28px; color: #6b7280; }
.djia-ac-title { margin-top: 10px; font-size: 16px; color: #6b7280; }

/* ===========================================
   FILTERABLE GALLERY
   =========================================== */
.djia-filterable-gallery { }
.djia-fg-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 25px; justify-content: center; }
.djia-fg-filter { padding: 10px 20px; background: #f3f4f6; border: none; border-radius: 8px; cursor: pointer; font-size: 14px; color: #374151; transition: all 0.3s; }
.djia-fg-filter:hover, .djia-fg-filter.active { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; }
.djia-fg-grid { display: grid; }
.djia-fg-item { position: relative; overflow: hidden; border-radius: 12px; transition: all 0.3s; }
.djia-fg-item.djia-fg-hidden { opacity: 0; transform: scale(0.8); }
.djia-fg-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.djia-fg-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(transparent 50%, rgba(0,0,0,0.8)); display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; opacity: 0; transition: all 0.3s; }
.djia-fg-item:hover .djia-fg-overlay { opacity: 1; }
.djia-fg-title { color: #fff; font-size: 18px; font-weight: 600; margin: 0 0 5px; }
.djia-fg-category { color: rgba(255,255,255,0.7); font-size: 13px; }

/* ===========================================
   AJAX SEARCH
   =========================================== */
.djia-ajax-search { position: relative; max-width: 500px; }
.djia-search-form { display: flex; gap: 0; }
.djia-search-input { flex: 1; padding: 12px 18px; border: 2px solid #e5e7eb; border-right: none; border-radius: 8px 0 0 8px; font-size: 15px; outline: none; transition: border-color 0.2s; }
.djia-search-input:focus { border-color: #8b5cf6; }
.djia-search-btn { padding: 12px 20px; background: linear-gradient(135deg, #8b5cf6, #6366f1); border: none; border-radius: 0 8px 8px 0; color: #fff; font-size: 18px; cursor: pointer; transition: all 0.2s; }
.djia-search-btn:hover { filter: brightness(1.1); }
.djia-search-results { position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.15); margin-top: 10px; max-height: 400px; overflow-y: auto; z-index: 9999; }
.djia-search-result-item { display: flex; align-items: center; gap: 15px; padding: 15px; border-bottom: 1px solid #f3f4f6; text-decoration: none; color: #374151; transition: background 0.2s; }
.djia-search-result-item:hover { background: #f9fafb; }
.djia-search-result-item img { width: 50px; height: 50px; border-radius: 8px; object-fit: cover; }
.djia-search-loading, .djia-search-no-results { padding: 20px; text-align: center; color: #6b7280; }

/* ===========================================
   POST GRID
   =========================================== */
.djia-post-grid { display: grid; }
.djia-post-card { background: #fff; border-radius: 12px; overflow: hidden; transition: all 0.3s; }
.djia-post-card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.1); }
.djia-post-image { overflow: hidden; }
.djia-post-image img { width: 100%; height: 220px; object-fit: cover; transition: transform 0.3s; }
.djia-post-card:hover .djia-post-image img { transform: scale(1.05); }
.djia-post-content { padding: 20px; }
.djia-post-category { display: inline-block; padding: 4px 12px; background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.1)); color: #8b5cf6; border-radius: 20px; font-size: 12px; font-weight: 600; margin-bottom: 12px; text-decoration: none; }
.djia-post-category:hover { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; }
.djia-post-title { margin: 0 0 10px; font-size: 18px; }
.djia-post-title a { color: #1f2937; text-decoration: none; }
.djia-post-title a:hover { color: #8b5cf6; }
.djia-post-meta { font-size: 13px; color: #6b7280; margin-bottom: 12px; }
.djia-post-excerpt { font-size: 14px; color: #6b7280; line-height: 1.6; margin-bottom: 15px; }
.djia-post-read-more { padding: 10px 20px; font-size: 13px; }

/* ===========================================
   WOO CART & WISHLIST COUNTERS
   =========================================== */
.djia-cart-counter, .djia-woo-wishlist-counter { display: inline-block; }
.djia-cc-link, .djia-wc-link { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; position: relative; }
.djia-cc-icon, .djia-wc-icon { position: relative; font-size: 22px; color: #374151; transition: color 0.2s; }
.djia-cc-link:hover .djia-cc-icon, .djia-wc-link:hover .djia-wc-icon { color: #8b5cf6; }
.djia-cc-badge, .djia-wc-badge { position: absolute; top: -8px; right: -8px; min-width: 20px; height: 20px; padding: 0 6px; background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; border-radius: 10px; font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.djia-cc-total { font-weight: 600; color: #374151; }
.djia-wc-text { color: #374151; }
.djia-cc-dropdown { position: absolute; top: calc(100% + 15px); right: 0; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.15); padding: 20px; min-width: 320px; opacity: 0; visibility: hidden; transition: all 0.3s; z-index: 9999; }
.djia-cc-trigger-hover:hover .djia-cc-dropdown { opacity: 1; visibility: visible; }

/* ===========================================
   TOGGLE SWITCH
   =========================================== */
.djia-toggle-switch { display: flex; align-items: center; gap: 12px; }
.djia-ts-wrapper { position: relative; cursor: pointer; }
.djia-ts-input { position: absolute; opacity: 0; width: 0; height: 0; }
.djia-ts-track { display: flex; align-items: center; width: 100%; height: 100%; background: #d1d5db; border-radius: 999px; transition: all 0.3s; position: relative; }
.djia-ts-input:checked + .djia-ts-track { background: linear-gradient(135deg, #8b5cf6, #6366f1); }
.djia-ts-knob { position: absolute; left: 3px; width: calc(50% - 3px); height: calc(100% - 6px); background: #fff; border-radius: 50%; transition: all 0.3s; box-shadow: 0 2px 5px rgba(0,0,0,0.2); }
.djia-ts-input:checked + .djia-ts-track .djia-ts-knob { left: calc(50%); }
.djia-ts-label { font-size: 14px; color: #6b7280; transition: color 0.2s; }
.djia-ts-label.active { color: #1f2937; font-weight: 600; }
.djia-ts-label-inside { position: absolute; font-size: 10px; font-weight: 600; color: #fff; text-transform: uppercase; }
.djia-ts-label-on { left: 8px; opacity: 0; }
.djia-ts-label-off { right: 8px; color: #6b7280; }
.djia-ts-input:checked + .djia-ts-track .djia-ts-label-on { opacity: 1; }
.djia-ts-input:checked + .djia-ts-track .djia-ts-label-off { opacity: 0; }

/* ===========================================
   ANIMATED TEXT
   =========================================== */
.djia-animated-text { overflow: hidden; }
.djia-at-char, .djia-at-word, .djia-at-line { display: inline-block; }

/* ===========================================
   MEDIA PLAYER
   =========================================== */
.djia-media-player { background: #1f2937; border-radius: 12px; overflow: hidden; }
.djia-mp-audio { padding: 20px; }
.djia-mp-info { display: flex; align-items: center; gap: 15px; margin-bottom: 15px; }
.djia-mp-cover { width: 80px; height: 80px; border-radius: 8px; object-fit: cover; }
.djia-mp-meta { flex: 1; }
.djia-mp-title { display: block; font-weight: 600; color: #fff; font-size: 16px; }
.djia-mp-artist { display: block; font-size: 14px; color: #9ca3af; margin-top: 4px; }
.djia-mp-media { display: none; }
.djia-mp-video .djia-mp-media { display: block; width: 100%; }
.djia-mp-controls { display: flex; align-items: center; gap: 15px; padding: 15px; background: rgba(0,0,0,0.3); }
.djia-mp-btn { background: none; border: none; color: #fff; cursor: pointer; font-size: 20px; padding: 8px; transition: color 0.2s; }
.djia-mp-btn:hover { color: #8b5cf6; }
.djia-mp-progress { flex: 1; display: flex; align-items: center; gap: 10px; }
.djia-mp-progress-track { flex: 1; height: 5px; background: rgba(255,255,255,0.2); border-radius: 3px; cursor: pointer; position: relative; }
.djia-mp-progress-fill { height: 100%; background: linear-gradient(90deg, #8b5cf6, #6366f1); border-radius: 3px; width: 0; transition: width 0.1s; }
.djia-mp-time { font-size: 12px; color: #9ca3af; min-width: 40px; }
.djia-mp-volume { display: flex; align-items: center; gap: 5px; }
.djia-mp-volume-slider { width: 80px; height: 5px; accent-color: #8b5cf6; }

/* ===========================================
   CIRCULAR PROGRESS
   =========================================== */
.djia-circular-progress { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.djia-circular-progress svg { display: block; }
.djia-cp-track { stroke: #e5e7eb; }
.djia-cp-progress { stroke: #8b5cf6; transition: stroke-dashoffset 0.1s; }
.djia-cp-content { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.djia-cp-icon { font-size: 32px; color: #8b5cf6; margin-bottom: 5px; }
.djia-cp-value { font-size: 36px; font-weight: 700; color: #1f2937; }
.djia-cp-title { font-size: 14px; color: #6b7280; margin-top: 5px; }

/* ===========================================
   PRICE LIST
   =========================================== */
.djia-price-list { display: flex; flex-direction: column; gap: 20px; }
.djia-pl-item { display: flex; gap: 15px; }
.djia-pl-image { width: 80px; height: 80px; flex-shrink: 0; }
.djia-pl-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.djia-pl-content { flex: 1; }
.djia-pl-header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 5px; }
.djia-pl-title { font-weight: 600; color: #1f2937; font-size: 16px; }
.djia-pl-title a { color: inherit; text-decoration: none; }
.djia-pl-title a:hover { color: #8b5cf6; }
.djia-pl-separator { flex: 1; border-bottom: 2px dotted #d1d5db; margin-bottom: 5px; }
.djia-pl-prices { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.djia-pl-old-price { font-size: 14px; color: #9ca3af; text-decoration: line-through; }
.djia-pl-price { font-weight: 700; color: #8b5cf6; font-size: 18px; }
.djia-pl-badge { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; margin-left: 10px; }
.djia-pl-desc { margin: 0; font-size: 14px; color: #6b7280; line-height: 1.5; }

/* ===========================================
   GRADIENT HEADING
   =========================================== */
.djia-gradient-heading { display: inline-block; }
@keyframes djiaGradientMove { 0% { background-position: 0% center; } 100% { background-position: 200% center; } }

/* ===========================================
   FEATURE LIST
   =========================================== */
.djia-feature-list { display: grid; gap: 20px; }
.djia-fl-item { display: flex; gap: 15px; align-items: flex-start; }
.djia-fl-icon-top .djia-fl-item { flex-direction: column; text-align: center; align-items: center; }
.djia-fl-icon-wrap { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0; background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.1)); border-radius: 50%; }
.djia-fl-icon { font-size: 18px; color: #8b5cf6; }
.djia-fl-negative .djia-fl-icon-wrap { background: rgba(239,68,68,0.1); }
.djia-fl-negative .djia-fl-icon { color: #ef4444; }
.djia-fl-content { flex: 1; }
.djia-fl-text { font-weight: 500; color: #1f2937; display: block; }
.djia-fl-desc { margin: 5px 0 0; font-size: 14px; color: #6b7280; }
.djia-fl-animate .djia-fl-item { opacity: 0; transform: translateY(20px); transition: all 0.4s; }
.djia-fl-animate.visible .djia-fl-item { opacity: 1; transform: translateY(0); }

/* ===========================================
   WOO STOCK INDICATOR
   =========================================== */
.djia-stock-indicator { }
.djia-si-bar { height: 8px; background: #e5e7eb; border-radius: 4px; overflow: hidden; margin-bottom: 8px; }
.djia-si-bar-fill { height: 100%; border-radius: 4px; transition: width 0.5s; }
.djia-si-in-stock .djia-si-bar-fill { background: linear-gradient(90deg, #22c55e, #16a34a); }
.djia-si-low-stock .djia-si-bar-fill { background: linear-gradient(90deg, #f59e0b, #d97706); }
.djia-si-out-of-stock .djia-si-bar-fill { background: #ef4444; width: 0 !important; }
.djia-si-text { font-size: 14px; font-weight: 500; display: flex; align-items: center; gap: 5px; }
.djia-si-in-stock .djia-si-text { color: #22c55e; }
.djia-si-low-stock .djia-si-text { color: #f59e0b; }
.djia-si-out-of-stock .djia-si-text { color: #ef4444; }
.djia-si-qty { font-weight: 400; color: #6b7280; }

/* ===========================================
   WOO BUY NOW
   =========================================== */
.djia-buy-now { display: inline-block; }
.djia-bn-full { display: block; }
.djia-bn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 28px; background: linear-gradient(135deg, #22c55e, #16a34a); color: #fff; border-radius: 8px; font-weight: 600; text-decoration: none; transition: all 0.3s; }
.djia-bn-full .djia-bn-btn { display: flex; width: 100%; }
.djia-bn-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(34,197,94,0.4); color: #fff; }

/* ===========================================
   WOO FREE SHIPPING NOTICE
   =========================================== */
.djia-free-shipping-notice { padding: 15px 20px; background: linear-gradient(135deg, rgba(139,92,246,0.1), rgba(99,102,241,0.1)); border-radius: 12px; }
.djia-fs-content { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.djia-fs-icon { font-size: 24px; color: #8b5cf6; }
.djia-fs-text { font-size: 14px; color: #374151; }
.djia-fs-amount { font-weight: 700; color: #8b5cf6; }
.djia-fs-bar { height: 8px; background: #e5e7eb; border-radius: 4px; overflow: hidden; }
.djia-fs-bar-fill { height: 100%; background: linear-gradient(90deg, #8b5cf6, #6366f1); border-radius: 4px; transition: width 0.5s; }
.djia-fs-qualified .djia-fs-bar-fill { background: linear-gradient(90deg, #22c55e, #16a34a); }
.djia-fs-qualified .djia-fs-icon { color: #22c55e; }
.djia-fs-qualified .djia-fs-text { color: #22c55e; font-weight: 600; }

/* ===========================================
   SCROLL VIDEO
   =========================================== */
.djia-scroll-video { position: relative; }
.djia-sv-sticky { position: relative; }
.djia-sv-inner { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; justify-content: center; }
.djia-scroll-video video { width: 100%; height: 100%; object-fit: cover; }

/* ===========================================
   MARQUEE
   =========================================== */
.djia-marquee { overflow: hidden; position: relative; }
.djia-mq-track { display: flex; width: max-content; }
.djia-mq-up .djia-mq-track, .djia-mq-down .djia-mq-track { flex-direction: column; }
.djia-mq-item { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.djia-mq-item img { height: 50px; width: auto; object-fit: contain; }
.djia-mq-sep { opacity: 0.5; }
.djia-mq-fade::before, .djia-mq-fade::after { content: ''; position: absolute; top: 0; bottom: 0; width: 100px; z-index: 1; pointer-events: none; }
.djia-mq-fade::before { left: 0; background: linear-gradient(90deg, #fff, transparent); }
.djia-mq-fade::after { right: 0; background: linear-gradient(-90deg, #fff, transparent); }
.djia-mq-pause:hover .djia-mq-track { animation-play-state: paused; }
@keyframes djia-marquee-horizontal { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes djia-marquee-vertical { 0% { transform: translateY(0); } 100% { transform: translateY(-50%); } }

/* ===========================================
   ANIMATED COUNTER
   =========================================== */
.djia-animated-counter { text-align: center; }
.djia-ac-icon { display: inline-flex; align-items: center; justify-content: center; font-size: 40px; color: #8b5cf6; margin-bottom: 15px; }
.djia-ac-value { display: flex; align-items: baseline; justify-content: center; gap: 2px; }
.djia-ac-number { font-size: 48px; font-weight: 700; color: #1f2937; line-height: 1.2; }
.djia-ac-prefix, .djia-ac-suffix { font-size: 32px; font-weight: 600; color: #8b5cf6; }
.djia-ac-title { margin-top: 10px; font-size: 16px; color: #6b7280; font-weight: 500; }

/* ===========================================
   FILTERABLE GALLERY
   =========================================== */
.djia-filterable-gallery { }
.djia-fg-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 25px; justify-content: center; }
.djia-fg-filter { padding: 10px 22px; background: #f3f4f6; border: none; border-radius: 30px; cursor: pointer; font-size: 14px; font-weight: 500; color: #6b7280; transition: all 0.3s; }
.djia-fg-filter:hover { background: #e5e7eb; color: #374151; }
.djia-fg-filter.active { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; }
.djia-fg-grid { }
.djia-fg-item { position: relative; overflow: hidden; border-radius: 12px; }
.djia-fg-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.djia-fg-item:hover img { transform: scale(1.1); }
.djia-fg-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.6); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: all 0.3s; padding: 20px; text-align: center; }
.djia-fg-item:hover .djia-fg-overlay { opacity: 1; }
.djia-fg-title { color: #fff; font-size: 18px; font-weight: 600; margin: 0 0 5px; }
.djia-fg-category { color: rgba(255,255,255,0.8); font-size: 13px; }
.djia-fg-item.djia-fg-hidden { opacity: 0; transform: scale(0.8); }
.djia-fg-anim-fade .djia-fg-item { transition: opacity 0.3s, transform 0.3s; }
.djia-fg-anim-scale .djia-fg-item { transition: opacity 0.3s, transform 0.4s; }
.djia-fg-anim-slide .djia-fg-item { transition: opacity 0.3s, transform 0.4s; }
.djia-fg-anim-slide .djia-fg-item.djia-fg-hidden { transform: translateY(30px); }

/* ===========================================
   VIDEO POPUP
   =========================================== */
.djia-video-popup { position: relative; display: inline-block; cursor: pointer; }
.djia-vp-trigger { position: relative; }
.djia-vp-thumbnail { display: block; border-radius: 12px; overflow: hidden; }
.djia-vp-thumbnail img { width: 100%; display: block; transition: transform 0.4s; }
.djia-video-popup:hover .djia-vp-thumbnail img { transform: scale(1.05); }
.djia-vp-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; background: rgba(255,255,255,0.95); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #8b5cf6; transition: all 0.3s; box-shadow: 0 10px 40px rgba(0,0,0,0.2); }
.djia-video-popup:hover .djia-vp-play { transform: translate(-50%, -50%) scale(1.1); background: #fff; }
.djia-vp-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.9); animation: djiaFadeIn 0.3s; }
.djia-vp-lightbox-inner { position: relative; width: 90%; max-width: 1000px; aspect-ratio: 16/9; }
.djia-vp-lightbox iframe { width: 100%; height: 100%; border: none; border-radius: 12px; }
.djia-vp-lightbox-close { position: absolute; top: -50px; right: 0; width: 40px; height: 40px; background: rgba(255,255,255,0.1); border: none; border-radius: 50%; color: #fff; font-size: 24px; cursor: pointer; transition: all 0.3s; }
.djia-vp-lightbox-close:hover { background: rgba(255,255,255,0.2); }

/* ===========================================
   TOAST NOTIFICATIONS
   =========================================== */
.djia-toast-container { position: fixed; z-index: 99999; display: flex; flex-direction: column; gap: 10px; max-width: 400px; padding: 20px; pointer-events: none; }
.djia-toast-top-right { top: 0; right: 0; }
.djia-toast-top-left { top: 0; left: 0; }
.djia-toast-top-center { top: 0; left: 50%; transform: translateX(-50%); }
.djia-toast-bottom-right { bottom: 0; right: 0; }
.djia-toast-bottom-left { bottom: 0; left: 0; }
.djia-toast-bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); }
.djia-toast-box { display: flex; align-items: flex-start; gap: 12px; padding: 16px 20px; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.15); pointer-events: auto; opacity: 0; transform: translateX(100%); transition: all 0.3s; position: relative; overflow: hidden; }
.djia-toast-box.active { opacity: 1; transform: translateX(0); }
.djia-toast-icon { font-size: 24px; flex-shrink: 0; }
.djia-toast-success .djia-toast-icon { color: #22c55e; }
.djia-toast-error .djia-toast-icon { color: #ef4444; }
.djia-toast-warning .djia-toast-icon { color: #f59e0b; }
.djia-toast-info .djia-toast-icon { color: #3b82f6; }
.djia-toast-body { flex: 1; }
.djia-toast-title { font-weight: 600; color: #1f2937; margin-bottom: 2px; }
.djia-toast-message { font-size: 14px; color: #6b7280; }
.djia-toast-close { position: absolute; top: 12px; right: 12px; background: none; border: none; font-size: 18px; color: #9ca3af; cursor: pointer; }
.djia-toast-close:hover { color: #6b7280; }
.djia-toast-progress { position: absolute; bottom: 0; left: 0; height: 3px; background: #8b5cf6; animation: djiaToastProgress linear forwards; }
@keyframes djiaToastProgress { 0% { width: 100%; } 100% { width: 0%; } }

/* ===========================================
   BEFORE/AFTER SLIDER
   =========================================== */
.djia-before-after { position: relative; overflow: hidden; user-select: none; border-radius: 12px; }
.djia-ba-before, .djia-ba-after { position: absolute; inset: 0; }
.djia-ba-after { z-index: 1; }
.djia-ba-before { z-index: 2; clip-path: inset(0 50% 0 0); }
.djia-ba-before img, .djia-ba-after img { width: 100%; height: 100%; object-fit: cover; }
.djia-ba-slider { position: absolute; top: 0; bottom: 0; left: 50%; width: 4px; background: #fff; z-index: 3; cursor: ew-resize; transform: translateX(-50%); }
.djia-ba-slider::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 44px; height: 44px; background: #fff; border-radius: 50%; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.djia-ba-slider::after { content: '⟷'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 18px; color: #374151; }
.djia-ba-label { position: absolute; bottom: 20px; padding: 8px 16px; background: rgba(0,0,0,0.7); color: #fff; font-size: 12px; font-weight: 600; text-transform: uppercase; border-radius: 4px; z-index: 4; }
.djia-ba-label-before { left: 20px; }
.djia-ba-label-after { right: 20px; }

/* ===========================================
   SLIDING MENU
   =========================================== */
.djia-sliding-menu { position: fixed; inset: 0; z-index: 99998; visibility: hidden; }
.djia-sliding-menu.active { visibility: visible; }
.djia-sm-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.5); opacity: 0; transition: opacity 0.3s; }
.djia-sliding-menu.active .djia-sm-overlay { opacity: 1; }
.djia-sm-panel { position: absolute; top: 0; bottom: 0; width: 320px; max-width: 85%; background: #fff; padding: 30px; overflow-y: auto; transition: transform 0.3s; }
.djia-sm-left .djia-sm-panel { left: 0; transform: translateX(-100%); }
.djia-sm-right .djia-sm-panel { right: 0; transform: translateX(100%); }
.djia-sliding-menu.active .djia-sm-panel { transform: translateX(0); }
.djia-sm-close { position: absolute; top: 20px; right: 20px; width: 36px; height: 36px; background: #f3f4f6; border: none; border-radius: 50%; font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.djia-sm-close:hover { background: #e5e7eb; }
.djia-sm-nav { margin-top: 40px; }
.djia-sm-item { }
.djia-sm-item a { display: block; padding: 15px 0; font-size: 18px; color: #374151; text-decoration: none; border-bottom: 1px solid #e5e7eb; transition: color 0.2s; }
.djia-sm-item a:hover { color: #8b5cf6; }
body.djia-sm-open { overflow: hidden; }

/* ===========================================
   PRO SLIDER
   =========================================== */
.djia-pro-slider { position: relative; overflow: hidden; border-radius: 16px; }
.djia-slider-track { position: relative; }
.djia-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s; }
.djia-slide.active { position: relative; opacity: 1; }
.djia-slide-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.djia-slide-overlay { position: absolute; inset: 0; }
.djia-slide-content { position: relative; z-index: 2; padding: 60px; display: flex; flex-direction: column; justify-content: center; min-height: 500px; max-width: 600px; }
.djia-slide-subtitle { font-size: 14px; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; }
.djia-slide-title { font-size: 48px; font-weight: 700; line-height: 1.2; margin-bottom: 20px; }
.djia-slide-desc { font-size: 18px; line-height: 1.6; margin-bottom: 30px; opacity: 0.9; }
.djia-slide-buttons { display: flex; gap: 15px; flex-wrap: wrap; }
.djia-slider-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; }
.djia-slider-prev { left: 20px; }
.djia-slider-next { right: 20px; }
.djia-slider-prev, .djia-slider-next { width: 50px; height: 50px; background: rgba(255,255,255,0.9); border: none; border-radius: 50%; font-size: 20px; cursor: pointer; transition: all 0.3s; display: flex; align-items: center; justify-content: center; }
.djia-slider-prev:hover, .djia-slider-next:hover { background: #fff; transform: translateY(-50%) scale(1.1); }
.djia-slider-dots { position: absolute; bottom: 25px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 10; }
.djia-slider-dot { width: 12px; height: 12px; background: rgba(255,255,255,0.5); border: none; border-radius: 50%; cursor: pointer; transition: all 0.3s; }
.djia-slider-dot.active, .djia-slider-dot:hover { background: #fff; transform: scale(1.2); }

/* ===========================================
   TESTIMONIAL CAROUSEL
   =========================================== */
.djia-testimonial-carousel { position: relative; overflow: hidden; }
.djia-tc-cards { position: relative; }
.djia-tc-card { position: absolute; inset: 0; opacity: 0; transform: translateX(50px); transition: all 0.5s; pointer-events: none; }
.djia-tc-card.active { position: relative; opacity: 1; transform: translateX(0); pointer-events: auto; }
.djia-tc-inner { background: #fff; padding: 40px; border-radius: 20px; box-shadow: 0 10px 40px rgba(0,0,0,0.08); text-align: center; }
.djia-tc-quote { font-size: 48px; color: #8b5cf6; opacity: 0.3; line-height: 1; margin-bottom: 15px; }
.djia-tc-text { font-size: 18px; line-height: 1.8; color: #4b5563; font-style: italic; margin-bottom: 25px; }
.djia-tc-avatar { width: 70px; height: 70px; border-radius: 50%; margin: 0 auto 15px; object-fit: cover; border: 3px solid #8b5cf6; }
.djia-tc-name { font-size: 18px; font-weight: 600; color: #1f2937; }
.djia-tc-role { font-size: 14px; color: #6b7280; margin-top: 3px; }
.djia-tc-stars { margin-top: 10px; color: #fbbf24; font-size: 16px; letter-spacing: 2px; }
.djia-tc-nav { display: flex; justify-content: center; gap: 15px; margin-top: 25px; }
.djia-tc-prev, .djia-tc-next { width: 45px; height: 45px; background: #f3f4f6; border: none; border-radius: 50%; cursor: pointer; transition: all 0.3s; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.djia-tc-prev:hover, .djia-tc-next:hover { background: linear-gradient(135deg, #8b5cf6, #6366f1); color: #fff; }
.djia-tc-dots { display: flex; justify-content: center; gap: 8px; margin-top: 20px; }
.djia-tc-dot { width: 10px; height: 10px; background: #d1d5db; border: none; border-radius: 50%; cursor: pointer; transition: all 0.3s; }
.djia-tc-dot.active, .djia-tc-dot:hover { background: #8b5cf6; transform: scale(1.2); }

/* ===========================================
   LIGHTBOX MODAL (Gallery)
   =========================================== */
.djia-lightbox-modal { position: fixed; inset: 0; z-index: 99999; animation: djiaFadeIn 0.3s; }
.djia-lb-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.95); }
.djia-lb-content { position: relative; z-index: 1; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 60px; box-sizing: border-box; }
.djia-lb-content img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; }
.djia-lb-close { position: absolute; top: 20px; right: 20px; width: 50px; height: 50px; background: rgba(255,255,255,0.1); border: none; border-radius: 50%; color: #fff; font-size: 28px; cursor: pointer; transition: all 0.3s; z-index: 2; }
.djia-lb-close:hover { background: rgba(255,255,255,0.2); }
.djia-lb-prev, .djia-lb-next { position: absolute; top: 50%; transform: translateY(-50%); width: 50px; height: 50px; background: rgba(255,255,255,0.1); border: none; border-radius: 50%; color: #fff; font-size: 20px; cursor: pointer; transition: all 0.3s; z-index: 2; }
.djia-lb-prev { left: 20px; }
.djia-lb-next { right: 20px; }
.djia-lb-prev:hover, .djia-lb-next:hover { background: rgba(255,255,255,0.2); }
.djia-lb-caption { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 14px; text-align: center; max-width: 600px; }

/* ===========================================
   KEYFRAMES
   =========================================== */
@keyframes djiaPulse { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
@keyframes djiaFadeIn { 0% { opacity: 0; } 100% { opacity: 1; } }

/* ===========================================
   FORM FIELD SHARED STYLES
   =========================================== */
.djia-form-field { margin-bottom: 20px; }
.djia-ff-label { display: block; font-weight: 500; margin-bottom: 8px; color: #374151; }
.djia-ff-required { color: #ef4444; }
.djia-ff-description { font-size: 13px; color: #6b7280; margin-bottom: 10px; }
.djia-ff-error-msg { font-size: 13px; color: #ef4444; margin-top: 6px; }
.djia-ff-options { display: flex; flex-direction: column; gap: 12px; }
.djia-ff-layout-horizontal .djia-ff-options { flex-direction: row; flex-wrap: wrap; }
.djia-ff-layout-grid .djia-ff-options { display: grid; grid-template-columns: repeat(var(--djia-grid-cols, 2), 1fr); }

/* ===========================================
   FORM CHECKBOX FIELD
   =========================================== */
.djia-form-field-checkbox .djia-ff-option { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; position: relative; padding: 8px 0; }
.djia-form-field-checkbox .djia-ff-option input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.djia-form-field-checkbox .djia-ff-checkbox { flex-shrink: 0; width: 20px; height: 20px; background: #fff; border: 2px solid #d1d5db; border-radius: 4px; position: relative; transition: all 0.2s; display: flex; align-items: center; justify-content: center; }
.djia-form-field-checkbox .djia-ff-checkbox::after { content: ''; display: none; width: 6px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); margin-bottom: 2px; }
.djia-form-field-checkbox .djia-ff-option input:checked + .djia-ff-checkbox { background: #10b981; border-color: #10b981; }
.djia-form-field-checkbox .djia-ff-option input:checked + .djia-ff-checkbox::after { display: block; }
.djia-form-field-checkbox .djia-ff-option input:focus + .djia-ff-checkbox { outline: 2px solid rgba(16, 185, 129, 0.3); outline-offset: 2px; }
.djia-form-field-checkbox .djia-ff-option:hover .djia-ff-checkbox { border-color: #10b981; }
.djia-form-field-checkbox .djia-ff-option input:disabled + .djia-ff-checkbox { opacity: 0.5; cursor: not-allowed; }
.djia-form-field-checkbox .djia-ff-option-content { display: flex; flex-direction: column; gap: 2px; }
.djia-form-field-checkbox .djia-ff-option-label { color: #374151; }
.djia-form-field-checkbox .djia-ff-option-desc { font-size: 13px; color: #6b7280; }
.djia-form-field-checkbox.djia-ff-error .djia-ff-checkbox { border-color: #ef4444; }

/* Checkbox Card Style */
.djia-form-field-checkbox .djia-ff-card-option { background: #f9fafb; border: 2px solid #e5e7eb; border-radius: 12px; padding: 16px; flex-direction: column; align-items: center; text-align: center; transition: all 0.2s; }
.djia-form-field-checkbox .djia-ff-card-option:hover { border-color: #10b981; background: #f0fdf4; }
.djia-form-field-checkbox .djia-ff-card-option.checked { border-color: #10b981; background: #ecfdf5; }
.djia-form-field-checkbox .djia-ff-card-option .djia-ff-option-media { font-size: 32px; margin-bottom: 10px; color: #6b7280; }
.djia-form-field-checkbox .djia-ff-card-option .djia-ff-option-media img { width: 60px; height: 60px; object-fit: cover; border-radius: 8px; }
.djia-form-field-checkbox .djia-ff-card-option .djia-ff-checkbox { order: -1; margin-bottom: 10px; }

/* Checkbox Button Style */
.djia-form-field-checkbox .djia-ff-button-option { background: #f3f4f6; border: 2px solid transparent; border-radius: 8px; padding: 12px 20px; justify-content: center; align-items: center; transition: all 0.2s; }
.djia-form-field-checkbox .djia-ff-button-option .djia-ff-checkbox { display: none; }
.djia-form-field-checkbox .djia-ff-button-option:hover { background: #e5e7eb; }
.djia-form-field-checkbox .djia-ff-button-option.checked { background: #10b981; border-color: #10b981; color: #fff; }
.djia-form-field-checkbox .djia-ff-button-option.checked .djia-ff-option-label { color: #fff; }

/* ===========================================
   FORM RADIO FIELD
   =========================================== */
.djia-form-field-radio .djia-ff-option { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; position: relative; padding: 8px 0; }
.djia-form-field-radio .djia-ff-option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.djia-form-field-radio .djia-ff-radio { flex-shrink: 0; width: 20px; height: 20px; background: #fff; border: 2px solid #d1d5db; border-radius: 50%; position: relative; transition: all 0.2s; display: flex; align-items: center; justify-content: center; }
.djia-form-field-radio .djia-ff-radio::after { content: ''; display: none; width: 10px; height: 10px; background: #10b981; border-radius: 50%; }
.djia-form-field-radio .djia-ff-option input:checked + .djia-ff-radio { border-color: #10b981; }
.djia-form-field-radio .djia-ff-option input:checked + .djia-ff-radio::after { display: block; }
.djia-form-field-radio .djia-ff-option input:focus + .djia-ff-radio { outline: 2px solid rgba(16, 185, 129, 0.3); outline-offset: 2px; }
.djia-form-field-radio .djia-ff-option:hover .djia-ff-radio { border-color: #10b981; }
.djia-form-field-radio .djia-ff-option input:disabled + .djia-ff-radio { opacity: 0.5; cursor: not-allowed; }
.djia-form-field-radio .djia-ff-option-content { display: flex; flex-direction: column; gap: 2px; }
.djia-form-field-radio .djia-ff-option-label { color: #374151; }
.djia-form-field-radio .djia-ff-option-desc { font-size: 13px; color: #6b7280; }
.djia-form-field-radio.djia-ff-error .djia-ff-radio { border-color: #ef4444; }

/* Radio Card Style */
.djia-form-field-radio .djia-ff-card-option { background: #f9fafb; border: 2px solid #e5e7eb; border-radius: 12px; padding: 16px; flex-direction: column; align-items: center; text-align: center; transition: all 0.2s; }
.djia-form-field-radio .djia-ff-card-option:hover { border-color: #10b981; background: #f0fdf4; }
.djia-form-field-radio .djia-ff-card-option.selected { border-color: #10b981; background: #ecfdf5; }
.djia-form-field-radio .djia-ff-card-option .djia-ff-option-media { font-size: 32px; margin-bottom: 10px; color: #6b7280; }
.djia-form-field-radio .djia-ff-card-option .djia-ff-option-media img { width: 60px; height: 60px; object-fit: cover; border-radius: 8px; }
.djia-form-field-radio .djia-ff-card-option .djia-ff-radio { order: -1; margin-bottom: 10px; }

/* Radio Button Style */
.djia-form-field-radio .djia-ff-button-option { background: #f3f4f6; border: 2px solid transparent; border-radius: 8px; padding: 12px 20px; justify-content: center; align-items: center; transition: all 0.2s; }
.djia-form-field-radio .djia-ff-button-option .djia-ff-radio { display: none; }
.djia-form-field-radio .djia-ff-button-option:hover { background: #e5e7eb; }
.djia-form-field-radio .djia-ff-button-option.selected { background: #10b981; border-color: #10b981; color: #fff; }
.djia-form-field-radio .djia-ff-button-option.selected .djia-ff-option-label { color: #fff; }

/* ===========================================
   FORM TEXT INPUT FIELDS
   =========================================== */
.djia-form-field-text, .djia-form-field-email, .djia-form-field-tel, .djia-form-field-url, .djia-form-field-password, .djia-form-field-number { margin-bottom: 20px; }
.djia-ff-input-wrap { position: relative; display: flex; align-items: center; }
.djia-ff-input-wrap.has-icon { position: relative; }
.djia-ff-input-wrap.has-icon .djia-ff-input { padding-left: 44px; }
.djia-ff-input-wrap.has-icon.icon-right .djia-ff-input { padding-left: 16px; padding-right: 44px; }
.djia-ff-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #9ca3af; font-size: 16px; z-index: 1; pointer-events: none; display: flex; align-items: center; justify-content: center; }
.djia-ff-input-wrap.icon-right .djia-ff-icon { left: auto; right: 14px; }
.djia-ff-input { width: 100%; height: 48px; padding: 12px 16px; background: #fff; border: 1px solid #d1d5db; border-radius: 8px; font-size: 15px; color: #1f2937; transition: all 0.2s; outline: none; box-sizing: border-box; }
.djia-ff-input::placeholder { color: #9ca3af; }
.djia-ff-input:focus { border-color: #10b981; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1); }
.djia-ff-input:disabled { background: #f3f4f6; color: #9ca3af; cursor: not-allowed; }
.djia-ff-input[readonly] { background: #f9fafb; }
.djia-ff-char-count { font-size: 12px; color: #6b7280; text-align: right; margin-top: 4px; }
.djia-form-field-text.djia-ff-error .djia-ff-input,
.djia-form-field-email.djia-ff-error .djia-ff-input,
.djia-form-field-tel.djia-ff-error .djia-ff-input,
.djia-form-field-url.djia-ff-error .djia-ff-input,
.djia-form-field-password.djia-ff-error .djia-ff-input,
.djia-form-field-number.djia-ff-error .djia-ff-input { border-color: #ef4444; }

/* ===========================================
   FORM TEXTAREA FIELD
   =========================================== */
.djia-form-field-textarea { margin-bottom: 20px; }
.djia-form-field-textarea .djia-ff-input { min-height: 120px; resize: vertical; height: auto; }
.djia-form-field-textarea.djia-ff-error .djia-ff-input { border-color: #ef4444; }

/* ===========================================
   FORM SELECT FIELD
   =========================================== */
.djia-form-field-select { margin-bottom: 20px; }
.djia-form-field-select select.djia-ff-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 44px; cursor: pointer; }
.djia-form-field-select.djia-ff-error select.djia-ff-input { border-color: #ef4444; }

/* ===========================================
   FORM NUMBER FIELD
   =========================================== */
.djia-form-field-number.djia-ff-hide-spin .djia-ff-input::-webkit-outer-spin-button,
.djia-form-field-number.djia-ff-hide-spin .djia-ff-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.djia-form-field-number.djia-ff-hide-spin .djia-ff-input { -moz-appearance: textfield; }

/* ===========================================
   FORM PASSWORD FIELD
   =========================================== */
.djia-form-field-password .djia-ff-input-wrap.has-toggle { position: relative; }
.djia-form-field-password .djia-ff-input-wrap.has-toggle .djia-ff-input { padding-right: 50px; }
.djia-form-field-password .djia-ff-input-wrap.has-icon.has-toggle .djia-ff-input { padding-right: 50px; }
.djia-ff-pw-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: #9ca3af; font-size: 18px; padding: 4px; display: flex; align-items: center; justify-content: center; transition: color 0.2s; }
.djia-ff-pw-toggle:hover { color: #374151; }
.djia-ff-pw-strength { height: 4px; background: #e5e7eb; border-radius: 2px; margin-top: 8px; overflow: hidden; display: flex; gap: 2px; }
.djia-ff-pw-meter { height: 100%; border-radius: 2px; transition: all 0.3s; flex: 1; background: #e5e7eb; }
.djia-ff-pw-meter.weak { background: #ef4444; }
.djia-ff-pw-meter.fair { background: #f59e0b; }
.djia-ff-pw-meter.good { background: #22c55e; }
.djia-ff-pw-meter.strong { background: #10b981; }
.djia-ff-pw-text { font-size: 12px; color: #6b7280; margin-top: 4px; }

/* ===========================================
   FORM DATE/TIME/DATETIME FIELDS
   =========================================== */
.djia-form-field-date, .djia-form-field-time, .djia-form-field-datetime { margin-bottom: 20px; }
.djia-form-field-date .djia-ff-input,
.djia-form-field-time .djia-ff-input,
.djia-form-field-datetime .djia-ff-input { width: 100%; height: 48px; padding: 12px 16px; background: #fff; border: 1px solid #d1d5db; border-radius: 8px; font-size: 15px; color: #1f2937; transition: all 0.2s; outline: none; box-sizing: border-box; }
.djia-form-field-date .djia-ff-input:focus,
.djia-form-field-time .djia-ff-input:focus,
.djia-form-field-datetime .djia-ff-input:focus { border-color: #10b981; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1); }
.djia-form-field-date.djia-ff-error .djia-ff-input,
.djia-form-field-time.djia-ff-error .djia-ff-input,
.djia-form-field-datetime.djia-ff-error .djia-ff-input { border-color: #ef4444; }

/* ===========================================
   FORM FILE UPLOAD FIELD
   =========================================== */
.djia-form-field-file { margin-bottom: 20px; }
.djia-ff-dropzone-area { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 20px; background: #f9fafb; border: 2px dashed #d1d5db; border-radius: 12px; cursor: pointer; transition: all 0.2s; text-align: center; min-height: 150px; }
.djia-ff-dropzone-area:hover, .djia-ff-dropzone-area.dragover { background: #f0fdf4; border-color: #10b981; }
.djia-ff-dropzone-area i, .djia-ff-dropzone-area svg { font-size: 48px; color: #9ca3af; margin-bottom: 12px; transition: color 0.2s; }
.djia-ff-dropzone-area:hover i, .djia-ff-dropzone-area.dragover i,
.djia-ff-dropzone-area:hover svg, .djia-ff-dropzone-area.dragover svg { color: #10b981; }
.djia-ff-dropzone-area span { color: #6b7280; font-size: 14px; }
.djia-ff-dropzone-area input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.djia-form-field-file:not(.djia-ff-has-dropzone) input[type="file"] { display: block; width: 100%; padding: 12px; background: #fff; border: 1px solid #d1d5db; border-radius: 8px; }
.djia-ff-file-list { margin-top: 12px; }
.djia-ff-file-item { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #f3f4f6; border-radius: 8px; margin-bottom: 8px; }
.djia-ff-file-item i { color: #6b7280; font-size: 18px; }
.djia-ff-file-name { flex: 1; font-size: 14px; color: #374151; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.djia-ff-file-size { font-size: 12px; color: #9ca3af; }
.djia-ff-file-remove { background: none; border: none; cursor: pointer; color: #9ca3af; font-size: 14px; padding: 4px; display: flex; align-items: center; justify-content: center; transition: color 0.2s; }
.djia-ff-file-remove:hover { color: #ef4444; }
.djia-form-field-file.djia-ff-error .djia-ff-dropzone-area { border-color: #ef4444; }

/* ===========================================
   FORM COLOR PICKER FIELD
   =========================================== */
.djia-form-field-color { margin-bottom: 20px; }
.djia-ff-color-wrap { display: flex; align-items: center; gap: 12px; }
.djia-ff-color-picker { width: 48px; height: 48px; border: 2px solid #d1d5db; border-radius: 8px; cursor: pointer; padding: 0; background: none; }
.djia-ff-color-picker::-webkit-color-swatch-wrapper { padding: 2px; }
.djia-ff-color-picker::-webkit-color-swatch { border: none; border-radius: 4px; }
.djia-ff-color-picker::-moz-color-swatch { border: none; border-radius: 4px; }
.djia-ff-color-hex { width: 120px; height: 48px; padding: 12px 16px; background: #fff; border: 1px solid #d1d5db; border-radius: 8px; font-size: 14px; font-family: monospace; color: #374151; text-transform: uppercase; }
.djia-ff-color-hex:focus { border-color: #10b981; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1); outline: none; }
.djia-ff-color-presets { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.djia-ff-color-preset { width: 32px; height: 32px; border: 2px solid #e5e7eb; border-radius: 6px; cursor: pointer; padding: 0; transition: all 0.2s; }
.djia-ff-color-preset:hover { transform: scale(1.1); border-color: #9ca3af; }
.djia-form-field-color.djia-ff-error .djia-ff-color-picker { border-color: #ef4444; }

/* ===========================================
   FORM RANGE SLIDER FIELD
   =========================================== */
.djia-form-field-slider { margin-bottom: 20px; }
.djia-ff-slider-wrap { display: flex; align-items: center; gap: 12px; }
.djia-ff-slider-min, .djia-ff-slider-max { font-size: 13px; color: #6b7280; white-space: nowrap; }
.djia-ff-slider { flex: 1; -webkit-appearance: none; appearance: none; width: 100%; height: 8px; background: linear-gradient(to right, #10b981 50%, #e5e7eb 50%); border-radius: 4px; cursor: pointer; }
.djia-ff-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; background: #10b981; border-radius: 50%; cursor: pointer; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transition: all 0.2s; }
.djia-ff-slider::-webkit-slider-thumb:hover { transform: scale(1.1); }
.djia-ff-slider::-moz-range-thumb { width: 20px; height: 20px; background: #10b981; border-radius: 50%; cursor: pointer; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
.djia-ff-slider:focus { outline: none; }
.djia-ff-slider:focus::-webkit-slider-thumb { box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2); }
.djia-ff-slider-value { font-weight: 600; color: #10b981; min-width: 50px; text-align: center; }

/* ===========================================
   FORM RATING FIELD
   =========================================== */
.djia-form-field-rating { margin-bottom: 20px; }
.djia-ff-rating-wrap { display: flex; align-items: center; gap: 12px; }
.djia-ff-rating-stars { display: flex; gap: 4px; }
.djia-ff-rating-star { font-size: 24px; color: #d1d5db; cursor: pointer; transition: all 0.2s; }
.djia-ff-rating-star:hover { transform: scale(1.15); }
.djia-ff-rating-star.active { color: #fbbf24; }
.djia-ff-rating-star.half { position: relative; }
.djia-ff-rating-star.half::before { content: '★'; position: absolute; left: 0; top: 0; width: 50%; overflow: hidden; color: #fbbf24; }
.djia-ff-rating-value { font-size: 14px; color: #6b7280; }
.djia-form-field-rating.djia-ff-error .djia-ff-rating-star { color: #fca5a5; }
.djia-form-field-rating.djia-ff-error .djia-ff-rating-star.active { color: #ef4444; }

/* ===========================================
   FORM SIGNATURE FIELD
   =========================================== */
.djia-form-field-signature { margin-bottom: 20px; }
.djia-ff-signature-wrap { position: relative; }
.djia-ff-signature-canvas { width: 100%; height: 150px; background: #fff; border: 2px solid #d1d5db; border-radius: 8px; cursor: crosshair; touch-action: none; }
.djia-ff-signature-placeholder { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #9ca3af; font-size: 14px; pointer-events: none; }
.djia-ff-signature-clear { position: absolute; top: 8px; right: 8px; padding: 6px 12px; background: #f3f4f6; border: none; border-radius: 6px; font-size: 12px; color: #6b7280; cursor: pointer; transition: all 0.2s; }
.djia-ff-signature-clear:hover { background: #e5e7eb; color: #374151; }
.djia-form-field-signature.djia-ff-error .djia-ff-signature-canvas { border-color: #ef4444; }

/* ===========================================
   FORM HIDDEN / HONEYPOT FIELDS
   =========================================== */
.djia-form-field-hidden { display: none !important; }
.djia-form-field-honeypot { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }

/* ===========================================
   FORM CONDITIONAL VISIBILITY
   =========================================== */
.djia-form-field[data-conditions].djia-ff-hidden { display: none !important; }

/* ===========================================
   FORM STEP NAVIGATION
   =========================================== */
.djia-form-step { display: none; }
.djia-form-step.active { display: block; }
.djia-form-step-nav { display: flex; gap: 8px; margin: 24px 0; justify-content: center; flex-wrap: wrap; }
.djia-form-step-indicator { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #e5e7eb; color: #6b7280; border-radius: 50%; font-weight: 600; font-size: 14px; cursor: pointer; transition: all 0.2s; }
.djia-form-step-indicator.active { background: #10b981; color: #fff; }
.djia-form-step-indicator.completed { background: #10b981; color: #fff; }
.djia-form-step-connector { width: 40px; height: 2px; background: #e5e7eb; align-self: center; }
.djia-form-step-connector.completed { background: #10b981; }
.djia-form-step-buttons { display: flex; gap: 12px; margin-top: 24px; }
.djia-form-step-btn { padding: 12px 24px; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.2s; }
.djia-form-step-btn-prev { background: #f3f4f6; color: #374151; }
.djia-form-step-btn-prev:hover { background: #e5e7eb; }
.djia-form-step-btn-next { background: #10b981; color: #fff; }
.djia-form-step-btn-next:hover { background: #059669; }

/* ===========================================
   FORM SUBMIT BUTTON
   =========================================== */
.djia-form-submit { margin-top: 24px; }
.djia-form-submit-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; background: linear-gradient(135deg, #10b981, #059669); color: #fff; border: none; border-radius: 8px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.3s; }
.djia-form-submit-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(16, 185, 129, 0.35); }
.djia-form-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; box-shadow: none; }
.djia-form-submit-btn .djia-ff-spinner { display: none; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: djia-spin 0.8s linear infinite; }
.djia-form-submit-btn.loading .djia-ff-spinner { display: block; }
@keyframes djia-spin { to { transform: rotate(360deg); } }
