/*!
 * Xohan Commerce — Elementor & UAE bridge styles
 * Author: Talukdar Galib <https://talukdargalib.pro.bd> | Copyright: Xohan Digital | License: GPL-2.0-or-later
 *
 * How styling works:
 *  1. These rules are deliberately UNLAYERED and use low specificity (".elementor .x"), so they beat
 *     Elementor's generic defaults (e.g. the grey .elementor-button) …
 *  2. … but anything you set in the Elementor Style tab (generated as ".elementor-123 .elementor-element-abc …")
 *     is more specific and always wins. Fonts, sizes, colours, heights stay 100% editable in Elementor.
 *  3. Add these CSS classes in Elementor → Advanced → CSS Classes to reuse a look anywhere:
 *     xc-section-head, xc-eyebrow, xc-link-arrow, xc-btn-outline, xc-btn-light, xc-feature, xc-promo, xc-banner,
 *     xc-deal, xc-card-box, xc-testimonial, xc-brand, xc-value, xc-team, xc-contact-card, xc-stat, xc-narrow,
 *     xc-center-box, xc-sticky (header), section-alt, page-hero, prose.
 */

/* ---------- Base: let the theme design system flow into Elementor ---------- */
.elementor .elementor-heading-title { line-height: 1.2; color: inherit; font-family: inherit; }
.elementor .elementor-widget-heading h1.elementor-heading-title { font-size: var(--fs-3xl); }
.elementor .elementor-widget-heading h2.elementor-heading-title { font-size: var(--fs-2xl); }
.elementor .elementor-widget-heading h3.elementor-heading-title { font-size: var(--fs-lg); }
.elementor .elementor-widget-text-editor { color: inherit; }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor .e-con { --container-max-width: var(--container, 1320px); }
.elementor .xc-section { --padding-left: 16px; --padding-right: 16px; }
.elementor .section-alt { background: var(--bg-alt); }

/* ---------- Buttons ---------- */
.elementor .elementor-button {
  background: var(--brand); color: var(--brand-contrast); border: 1.5px solid var(--brand); border-radius: var(--radius);
  font-family: inherit; font-weight: 600; line-height: 1.2; padding: .75rem 1.35rem; transition: background var(--dur), color var(--dur), border-color var(--dur);
}
.elementor .elementor-button:hover, .elementor .elementor-button:focus-visible { background: var(--brand-hover); border-color: var(--brand-hover); color: var(--brand-contrast); }
.elementor .elementor-button.elementor-size-lg { padding: .95rem 1.7rem; font-size: var(--fs-base); }
.elementor .elementor-button.elementor-size-sm { padding: .55rem 1rem; font-size: var(--fs-sm); }
.elementor .xc-btn-outline .elementor-button { background: transparent; color: var(--brand-text); }
.elementor .xc-btn-outline .elementor-button:hover { background: var(--brand); color: var(--brand-contrast); }
.elementor .xc-btn-light .elementor-button { background: #fff; border-color: #fff; color: #111; }
.elementor .xc-link-arrow .elementor-button { background: transparent; border: 0; padding: .25rem 0; color: var(--brand-text); font-size: var(--fs-sm); }
.elementor .xc-link-arrow .elementor-button:hover { background: transparent; color: var(--brand-hover); }
.elementor .xc-link-arrow .elementor-button .elementor-button-icon { transition: transform var(--dur); }
.elementor .xc-link-arrow .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }
.elementor .elementor-button .elementor-button-icon i { color: currentColor; }

/* ---------- Section head (eyebrow + title + link) ---------- */
.elementor .xc-section-head { margin-bottom: .5rem; }
.elementor .xc-section-head > .xc-head-text, .elementor .xc-section-head > .e-con-inner > .xc-head-text { --width: auto; flex: 1 1 auto; min-width: 0; }
.elementor .xc-section-head.is-center { text-align: center; }
.elementor .xc-section-head.is-center .xc-head-text { --align-items: center; align-items: center; }
.elementor .xc-eyebrow .elementor-heading-title { color: var(--brand-text); font-weight: 700; font-size: var(--fs-xs); letter-spacing: .12em; text-transform: uppercase; }
.elementor .xc-section-title .elementor-heading-title { font-size: var(--fs-2xl); }

/* ---------- Page hero ---------- */
.elementor .page-hero { background: var(--bg-alt); border-bottom: 1px solid var(--border); }
.elementor .page-hero .breadcrumb ol { margin-bottom: 0; }
.elementor .page-hero h1.elementor-heading-title { font-size: var(--fs-2xl); }
.elementor .xc-hero-sub p { color: var(--text-muted); }
.elementor .xc-narrow > .e-con-inner, .elementor .xc-narrow.e-con-boxed > .e-con-inner { max-width: 920px; }

/* ---------- Hero ---------- */
.elementor .xc-hero .xc-hero-main { min-width: 0; }
.elementor .xc-hero-slider { height: 100%; }
.elementor .xc-hero-side { min-width: 0; }
.elementor .xc-promo { position: relative; border-radius: var(--radius-lg); background: var(--accent-soft); overflow: hidden; min-height: 200px; flex: 1 1 0; justify-content: center; isolation: isolate; }
.elementor .xc-promo.is-dark { background: linear-gradient(135deg, color-mix(in oklch, var(--brand) 25%, #10141b), color-mix(in oklch, var(--brand) 45%, #10141b)); color: #fff; }
.elementor .xc-promo .xc-promo-small .elementor-heading-title { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--brand-text); }
.elementor .xc-promo.is-dark .xc-promo-small .elementor-heading-title { color: var(--accent); }
.elementor .xc-promo :is(.xc-promo-title, .xc-promo-small) { max-width: 56%; position: relative; z-index: 1; }
.elementor .xc-promo .xc-promo-title .elementor-heading-title { font-size: var(--fs-xl); }
.elementor .xc-promo.is-dark .xc-link-arrow .elementor-button { color: #fff; }
.elementor .xc-promo .xc-promo-img { position: absolute; right: -4%; bottom: -6%; width: 42%; z-index: -1; margin: 0; }
.elementor .xc-promo .xc-promo-img img { width: 100%; height: auto; border-radius: var(--radius); mix-blend-mode: multiply; }
.elementor .xc-promo.is-dark .xc-promo-img img { mix-blend-mode: normal; opacity: .9; border-radius: 50%; }

/* ---------- Feature strip (icon box) ---------- */
.elementor .xc-feature { flex: 1 1 220px; }
.elementor .xc-feature .elementor-icon-box-wrapper { display: flex; gap: .9rem; align-items: center; text-align: left; padding: var(--space-4) var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); height: 100%; }
.elementor .xc-feature .elementor-icon-box-icon { margin: 0 !important; }
.elementor .xc-feature .elementor-icon { font-size: 1.35rem; width: 48px; height: 48px; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand-text); border-radius: 12px; }
.elementor .xc-feature .elementor-icon i { color: var(--brand-text); }
.elementor .xc-feature .elementor-icon-box-title { font-size: var(--fs-base); margin: 0 0 .15rem; }
.elementor .xc-feature .elementor-icon-box-description { font-size: var(--fs-sm); color: var(--text-muted); margin: 0; }

/* ---------- Banners & deal ---------- */
.elementor .xc-banner { position: relative; flex: 1 1 260px; min-height: 210px; border-radius: var(--radius-lg); background: var(--surface-2); overflow: hidden; isolation: isolate; justify-content: center; }
.elementor .xc-banners > .xc-banner:nth-child(2), .elementor .xc-banners > .e-con-inner > .xc-banner:nth-child(2) { background: var(--brand-soft); }
.elementor .xc-banners > .xc-banner:nth-child(3), .elementor .xc-banners > .e-con-inner > .xc-banner:nth-child(3) { background: var(--accent-soft); }
.elementor .xc-banner .elementor-heading-title { max-width: 60%; }
.elementor .xc-banner h3.elementor-heading-title { font-size: var(--fs-xl); }
.elementor .xc-banner .xc-banner-img { position: absolute; right: -4%; bottom: -10%; width: 48%; z-index: -1; margin: 0; }
.elementor .xc-banner .xc-banner-img img { width: 100%; height: auto; mix-blend-mode: multiply; }
.elementor .xc-eyebrow.elementor-widget-heading .elementor-heading-title { margin: 0; }
.elementor .xc-deal { border-radius: var(--radius-xl); background: linear-gradient(110deg, color-mix(in oklch, var(--brand) 20%, #0e1218), color-mix(in oklch, var(--brand) 50%, #0e1218)); color: #fff; overflow: hidden; }
.elementor .xc-deal .xc-deal-text { flex: 1 1 360px; }
.elementor .xc-deal h2.elementor-heading-title { font-size: var(--fs-3xl); color: #fff; }
.elementor .xc-deal p { opacity: .85; }
.elementor .xc-deal .xc-badge .elementor-heading-title { display: inline-block; padding: .3rem .8rem; border-radius: var(--radius-full); background: var(--accent); color: #111; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .04em; }
.elementor .xc-deal .elementor-button { background: var(--accent); border-color: var(--accent); color: #111; }
.elementor .xc-deal .elementor-button:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.elementor .xc-deal .xc-deal-img { flex: 0 1 300px; }
.elementor .xc-deal .xc-deal-img img { border-radius: var(--radius-lg); width: 100%; height: auto; }

/* ---------- Cards: testimonials, brands, values, team, contact, stats ---------- */
.elementor .xc-card-box { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.elementor .xc-card-box.elementor-widget-icon-box .elementor-icon-box-wrapper, .elementor .elementor-widget.xc-card-box { padding: var(--space-5); }
.elementor .elementor-widget.xc-card-box { flex: 1 1 300px; }
.elementor .xc-card-box .elementor-icon { font-size: 1.4rem; color: var(--brand-text); }
.elementor .xc-card-box .elementor-icon i { color: var(--brand-text); }
.elementor .xc-card-box.elementor-widget-icon-box .elementor-icon-box-wrapper { display: flex; gap: 1rem; text-align: left; }
.elementor .xc-card-box .elementor-icon-box-title { font-size: var(--fs-lg); margin: 0 0 .35rem; }
.elementor .xc-card-box .elementor-icon-box-description { color: var(--text-muted); }
.elementor .xc-center-box { text-align: center; }
.elementor .xc-testimonial { flex: 1 1 300px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); }
.elementor .xc-testimonial .elementor-testimonial-content { font-size: var(--fs-base); line-height: 1.7; color: var(--text-muted); font-style: normal; }
.elementor .xc-testimonial .elementor-testimonial-content::before { content: "\f10d"; font: var(--fa-font-solid); color: var(--brand); display: block; margin-bottom: .5rem; font-size: 1.25rem; }
.elementor .xc-testimonial .elementor-testimonial-image:empty, .elementor .xc-testimonial .elementor-testimonial-image:not(:has(img[src])) { display: none; }
.elementor .xc-testimonial .elementor-testimonial-meta-inner { gap: 0; }
.elementor .xc-testimonial .elementor-testimonial-details { padding: 0; }
.elementor .xc-testimonial .elementor-testimonial-name { color: var(--text); font-weight: 700; }
.elementor .xc-testimonial .elementor-testimonial-job { color: var(--text-muted); font-size: var(--fs-sm); }
.elementor .xc-brand { flex: 1 1 150px; }
.elementor .xc-brand .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); transition: border-color var(--dur), transform var(--dur); }
.elementor .xc-brand .elementor-icon-box-wrapper:hover { border-color: var(--brand); transform: translateY(-2px); }
.elementor .xc-brand .elementor-icon { font-size: 1.5rem; color: var(--brand-text); }
.elementor .xc-brand .elementor-icon i { color: var(--brand-text); }
.elementor .xc-brand .elementor-icon-box-icon { margin: 0 !important; }
.elementor .xc-brand .elementor-icon-box-title { font-size: var(--fs-sm); margin: 0; font-weight: 700; }
.elementor :is(.xc-value, .xc-team, .xc-contact-card) { flex: 1 1 260px; }
.elementor :is(.xc-value, .xc-team, .xc-contact-card) .elementor-icon-box-wrapper { height: 100%; padding: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); text-align: center; }
.elementor :is(.xc-value, .xc-team, .xc-contact-card) .elementor-icon { font-size: 1.4rem; width: 56px; height: 56px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--brand-soft); color: var(--brand-text); }
.elementor :is(.xc-value, .xc-team, .xc-contact-card) .elementor-icon i { color: var(--brand-text); }
.elementor :is(.xc-value, .xc-team, .xc-contact-card) .elementor-icon-box-title { font-size: var(--fs-lg); margin: .75rem 0 .35rem; }
.elementor :is(.xc-value, .xc-team, .xc-contact-card) .elementor-icon-box-description { color: var(--text-muted); font-size: var(--fs-sm); }
.elementor .xc-team { flex-basis: 200px; }
.elementor .xc-stat { flex: 1 1 200px; text-align: center; }
.elementor .xc-stat .elementor-counter-number-wrapper { font-size: var(--fs-3xl); font-weight: 800; color: var(--brand-text); line-height: 1.1; }
.elementor .xc-stat .elementor-counter-title { color: var(--text-muted); font-size: var(--fs-sm); }
.elementor .xc-about .xc-about-img img { border-radius: var(--radius-xl); width: 100%; height: auto; }
.elementor .xc-map iframe { border-radius: var(--radius-lg); border: 1px solid var(--border); }

/* ---------- Forms (Contact Form 7 inside Elementor) ---------- */
.elementor .wpcf7 label { display: block; font-weight: 600; font-size: var(--fs-sm); margin-bottom: .9rem; }
.elementor .wpcf7 :is(input[type="text"], input[type="tel"], input[type="email"], select, textarea) {
  display: block; width: 100%; margin-top: .35rem; padding: .75rem 1rem; border: 1.5px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); color: var(--text); font: inherit; font-weight: 400;
}
.elementor .wpcf7 :is(input, select, textarea):focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px color-mix(in oklch, var(--brand) 18%, transparent); }
.elementor .wpcf7 textarea { min-height: 140px; }
.elementor .wpcf7 input[type="submit"] { background: var(--brand); color: var(--brand-contrast); border: 0; border-radius: var(--radius); padding: .85rem 1.6rem; font-weight: 700; cursor: pointer; }
.elementor .wpcf7 input[type="submit"]:hover { background: var(--brand-hover); }
.elementor .wpcf7 .wpcf7-acceptance label { display: inline-flex; gap: .5rem; font-weight: 400; }
.elementor .wpcf7 .wpcf7-not-valid-tip { color: var(--danger); font-size: var(--fs-sm); }
.elementor .wpcf7 form .wpcf7-response-output { border-radius: var(--radius); margin: 1rem 0 0; }

/* ---------- Rich text pages (policies) ---------- */
.elementor .prose { font-size: var(--fs-base); line-height: 1.85; }
.elementor .prose h2 { font-size: var(--fs-xl); margin: 2rem 0 .75rem; }
.elementor .prose ul, .elementor .prose ol { padding-left: 1.4rem; margin: .75rem 0; }
.elementor .prose li + li { margin-top: .35rem; }
.elementor .prose table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: var(--fs-sm); }
.elementor .prose :is(th, td) { border: 1px solid var(--border); padding: .6rem .8rem; text-align: left; }
.elementor .prose .updated { color: var(--text-muted); font-size: var(--fs-sm); }

/* ---------- Elementor header / footer templates ---------- */
.xc-header { position: relative; z-index: 60; background: var(--surface); border-bottom: 1px solid var(--border); }
[data-sticky="on"] .xc-header, [data-sticky="smart"] .xc-header, .xc-header:has(.xc-sticky) { position: sticky; top: 0; transition: transform var(--dur) var(--ease); }
.admin-bar .xc-header { top: var(--wp-admin--admin-bar--height, 0px); }
.xc-header.is-hidden { transform: translateY(-100%); }
.elementor .xc-header-main .xc-grow { flex: 1 1 auto; max-width: 640px; }
.elementor .xc-header-nav { border-top: 1px solid var(--border); }
.xc-footer.site-footer .elementor-widget-wp-widget-nav_menu h5, .xc-footer .widget-title, .xc-footer .elementor-widget-container > h5 { font-size: var(--fs-base); color: #fff; margin-bottom: .75rem; }
.xc-footer .elementor-widget-wp-widget-nav_menu ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.xc-footer .elementor-widget-wp-widget-nav_menu a { color: var(--footer-text); font-size: var(--fs-sm); }
.xc-footer .elementor-widget-wp-widget-nav_menu a:hover { color: #fff; }
.xc-footer .elementor-widget-wp-widget-nav_menu { flex: 1 1 160px; }
.xc-footer .xc-footer-about { flex: 1 1 280px; }
.xc-footer-bottom { border-top: 1px solid rgb(255 255 255 / .08); font-size: var(--fs-sm); }
.xc-footer-pay { border-top: 1px solid rgb(255 255 255 / .08); }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .elementor .xc-promo .xc-promo-title { max-width: 70%; }
  .elementor .xc-deal h2.elementor-heading-title { font-size: var(--fs-2xl); }
  .elementor .xc-feature .elementor-icon-box-wrapper { flex-direction: column; text-align: center; padding: var(--space-4) var(--space-3); }
  .elementor .xc-feature { flex-basis: calc(50% - 8px); }
  .elementor .xc-header-main .xc-grow { order: 3; flex-basis: 100%; max-width: none; }
}

/* ---------- FAQ widget ---------- */
.elementor .elementor-widget-xohan-faq .faq-group-title { font-size: var(--fs-xl); margin: 2rem 0 .85rem; }
.elementor .elementor-widget-xohan-faq .ls-group:first-child .faq-group-title { margin-top: .5rem; }
.elementor .elementor-widget-xohan-faq .accordion { display: grid; gap: .6rem; }
.elementor .elementor-widget-xohan-faq .live-search { margin-bottom: 1rem; }
.elementor .elementor-widget-xohan-legal-info .contact-list strong { font-weight: 700; }
