/* ─── EcomFlow Builder v2 — Grid System & Utilities ───────────────────────── */

/* Section */
.ef-section {
  position: relative;
  width: 100%;
}
.ef-section:not(.ef-section--contained) {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  position: relative;
}
.ef-section-inner {
  max-width: var(--ef-container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--ef-container-padding, 20px);
}
.ef-section-full {
  width: 100%;
}
.ef-section--contained {
  max-width: var(--ef-container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--ef-container-padding, 20px);
  width: auto;
}
/* Toggle: no-bg sections zero inner padding */
body.ef-no-bg-zero-padding .ef-section:not(.ef-section--has-bg) > .ef-section-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.ef-no-bg-zero-padding .ef-section--contained:not(.ef-section--has-bg) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
@media (max-width: 1024px) and (min-width: 768px) {
  :root { --ef-container-padding: var(--ef-container-padding-tablet, 20px); }
}
@media (max-width: 768px) {
  :root { --ef-container-padding: var(--ef-container-padding-mobile, 15px); }
}
.ef-section-contained {
  width: 100%;
}

/* Row — Flexbox grid with CSS gap (no outer padding) */
.ef-row {
  --ef-gap: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ef-gap);
}

/* Columns — 12-column grid adjusted for CSS gap
   Formula: calc(N/12 * 100% - (12 - N)/12 * var(--ef-gap)) */
.ef-col {
  box-sizing: border-box;
  min-height: 1px;
}
.ef-col-1  { flex: 0 0 calc(8.333%  - var(--ef-gap) * 11 / 12); max-width: calc(8.333%  - var(--ef-gap) * 11 / 12); }
.ef-col-2  { flex: 0 0 calc(16.666% - var(--ef-gap) * 10 / 12); max-width: calc(16.666% - var(--ef-gap) * 10 / 12); }
.ef-col-3  { flex: 0 0 calc(25%     - var(--ef-gap) * 9 / 12);  max-width: calc(25%     - var(--ef-gap) * 9 / 12);  }
.ef-col-4  { flex: 0 0 calc(33.333% - var(--ef-gap) * 8 / 12);  max-width: calc(33.333% - var(--ef-gap) * 8 / 12);  }
.ef-col-5  { flex: 0 0 calc(41.666% - var(--ef-gap) * 7 / 12);  max-width: calc(41.666% - var(--ef-gap) * 7 / 12);  }
.ef-col-6  { flex: 0 0 calc(50%     - var(--ef-gap) * 6 / 12);  max-width: calc(50%     - var(--ef-gap) * 6 / 12);  }
.ef-col-7  { flex: 0 0 calc(58.333% - var(--ef-gap) * 5 / 12);  max-width: calc(58.333% - var(--ef-gap) * 5 / 12);  }
.ef-col-8  { flex: 0 0 calc(66.666% - var(--ef-gap) * 4 / 12);  max-width: calc(66.666% - var(--ef-gap) * 4 / 12);  }
.ef-col-9  { flex: 0 0 calc(75%     - var(--ef-gap) * 3 / 12);  max-width: calc(75%     - var(--ef-gap) * 3 / 12);  }
.ef-col-10 { flex: 0 0 calc(83.333% - var(--ef-gap) * 2 / 12);  max-width: calc(83.333% - var(--ef-gap) * 2 / 12);  }
.ef-col-11 { flex: 0 0 calc(91.666% - var(--ef-gap) * 1 / 12);  max-width: calc(91.666% - var(--ef-gap) * 1 / 12);  }
.ef-col-12 { flex: 0 0 100%;    max-width: 100%;    }

/* Tablet columns (768px - 1024px) */
@media (max-width: 1024px) and (min-width: 768px) {
  .ef-col-tablet-1  { flex: 0 0 calc(8.333%  - var(--ef-gap) * 11 / 12); max-width: calc(8.333%  - var(--ef-gap) * 11 / 12); }
  .ef-col-tablet-2  { flex: 0 0 calc(16.666% - var(--ef-gap) * 10 / 12); max-width: calc(16.666% - var(--ef-gap) * 10 / 12); }
  .ef-col-tablet-3  { flex: 0 0 calc(25%     - var(--ef-gap) * 9 / 12);  max-width: calc(25%     - var(--ef-gap) * 9 / 12);  }
  .ef-col-tablet-4  { flex: 0 0 calc(33.333% - var(--ef-gap) * 8 / 12);  max-width: calc(33.333% - var(--ef-gap) * 8 / 12);  }
  .ef-col-tablet-5  { flex: 0 0 calc(41.666% - var(--ef-gap) * 7 / 12);  max-width: calc(41.666% - var(--ef-gap) * 7 / 12);  }
  .ef-col-tablet-6  { flex: 0 0 calc(50%     - var(--ef-gap) * 6 / 12);  max-width: calc(50%     - var(--ef-gap) * 6 / 12);  }
  .ef-col-tablet-7  { flex: 0 0 calc(58.333% - var(--ef-gap) * 5 / 12);  max-width: calc(58.333% - var(--ef-gap) * 5 / 12);  }
  .ef-col-tablet-8  { flex: 0 0 calc(66.666% - var(--ef-gap) * 4 / 12);  max-width: calc(66.666% - var(--ef-gap) * 4 / 12);  }
  .ef-col-tablet-9  { flex: 0 0 calc(75%     - var(--ef-gap) * 3 / 12);  max-width: calc(75%     - var(--ef-gap) * 3 / 12);  }
  .ef-col-tablet-10 { flex: 0 0 calc(83.333% - var(--ef-gap) * 2 / 12);  max-width: calc(83.333% - var(--ef-gap) * 2 / 12);  }
  .ef-col-tablet-11 { flex: 0 0 calc(91.666% - var(--ef-gap) * 1 / 12);  max-width: calc(91.666% - var(--ef-gap) * 1 / 12);  }
  .ef-col-tablet-12 { flex: 0 0 100%;    max-width: 100%;    }
  .ef-hidden-tablet { display: none !important; }
  .ef-col-sticky { position: static !important; align-self: auto !important; }
  .ef-col-sticky-inner { position: static !important; }
}

/* Mobile columns (<768px) */
@media (max-width: 768px) {
  .ef-col-mobile-1  { flex: 0 0 calc(8.333%  - var(--ef-gap) * 11 / 12); max-width: calc(8.333%  - var(--ef-gap) * 11 / 12); }
  .ef-col-mobile-2  { flex: 0 0 calc(16.666% - var(--ef-gap) * 10 / 12); max-width: calc(16.666% - var(--ef-gap) * 10 / 12); }
  .ef-col-mobile-3  { flex: 0 0 calc(25%     - var(--ef-gap) * 9 / 12);  max-width: calc(25%     - var(--ef-gap) * 9 / 12);  }
  .ef-col-mobile-4  { flex: 0 0 calc(33.333% - var(--ef-gap) * 8 / 12);  max-width: calc(33.333% - var(--ef-gap) * 8 / 12);  }
  .ef-col-mobile-5  { flex: 0 0 calc(41.666% - var(--ef-gap) * 7 / 12);  max-width: calc(41.666% - var(--ef-gap) * 7 / 12);  }
  .ef-col-mobile-6  { flex: 0 0 calc(50%     - var(--ef-gap) * 6 / 12);  max-width: calc(50%     - var(--ef-gap) * 6 / 12);  }
  .ef-col-mobile-7  { flex: 0 0 calc(58.333% - var(--ef-gap) * 5 / 12);  max-width: calc(58.333% - var(--ef-gap) * 5 / 12);  }
  .ef-col-mobile-8  { flex: 0 0 calc(66.666% - var(--ef-gap) * 4 / 12);  max-width: calc(66.666% - var(--ef-gap) * 4 / 12);  }
  .ef-col-mobile-9  { flex: 0 0 calc(75%     - var(--ef-gap) * 3 / 12);  max-width: calc(75%     - var(--ef-gap) * 3 / 12);  }
  .ef-col-mobile-10 { flex: 0 0 calc(83.333% - var(--ef-gap) * 2 / 12);  max-width: calc(83.333% - var(--ef-gap) * 2 / 12);  }
  .ef-col-mobile-11 { flex: 0 0 calc(91.666% - var(--ef-gap) * 1 / 12);  max-width: calc(91.666% - var(--ef-gap) * 1 / 12);  }
  .ef-col-mobile-12 { flex: 0 0 100%;    max-width: 100%;    }
  .ef-hidden-mobile { display: none !important; }
  .ef-col-sticky { position: static !important; align-self: auto !important; }
  .ef-col-sticky-inner { position: static !important; }
}

/* Desktop hidden */
@media (min-width: 1025px) {
  .ef-hidden-desktop { display: none !important; }
}

.ef-hidden-element { display: none !important; }

/* Row reverse — desktop: swap columns; mobile: reverse stack order */
.ef-row--reverse { flex-direction: row-reverse; }
@media (max-width: 768px) {
  .ef-row--reverse {
    flex-direction: column-reverse !important;
  }
  .ef-row--reverse > .ef-col,
  .ef-row--reverse > [class*="ef-col-"] {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ─── Animation Keyframes ────────────────────────────────────────────────── */

.ef-animated { opacity: 0; }
.ef-animated.ef-visible { opacity: 1; }

@keyframes ef-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ef-fade-in-up { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ef-fade-in-down { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ef-fade-in-left { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes ef-fade-in-right { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes ef-slide-in-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes ef-slide-in-down { from { transform: translateY(-100%); } to { transform: translateY(0); } }
@keyframes ef-slide-in-left { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes ef-slide-in-right { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes ef-zoom-in { from { opacity: 0; transform: scale(0.5); } to { opacity: 1; transform: scale(1); } }
@keyframes ef-zoom-out { from { opacity: 0; transform: scale(1.5); } to { opacity: 1; transform: scale(1); } }
@keyframes ef-flip-in-x { from { opacity: 0; transform: rotateX(90deg); } to { opacity: 1; transform: rotateX(0); } }
@keyframes ef-flip-in-y { from { opacity: 0; transform: rotateY(90deg); } to { opacity: 1; transform: rotateY(0); } }
@keyframes ef-bounce-in {
  0% { opacity: 0; transform: scale(0.3); }
  50% { opacity: 1; transform: scale(1.05); }
  70% { transform: scale(0.9); }
  100% { transform: scale(1); }
}

/* ─── Element Utilities ──────────────────────────────────────────────────── */

/* Reset heading margins inside builder v2 elements */
.ef-element h1, .ef-element h2, .ef-element h3,
.ef-element h4, .ef-element h5, .ef-element h6,
.ef-v2-heading {
  margin: 0;
}

/* Heading link — base + hover styles driven by CSS vars set inline on <a>.
   Selector `.ef-v2-heading a.ef-v2-heading-link` has specificity (0,0,3,1) to beat
   the dynamic `.woocommerce a:hover { color: X !important }` override generated in
   functions.php (specificity 0,0,2,1). Earlier selectors with matching specificity
   (0,0,2,1) lost the cascade because dynamic CSS is emitted LATER in <head> at
   priority 99 of wp_head. Underline uses an animated background-image gradient
   (text-decoration can't animate). */
.ef-v2-heading a.ef-v2-heading-link {
  color: var(--ef-link-color, inherit) !important;
  text-decoration: none !important;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: var(--ef-underline-w, 0%) 2px;
  padding-bottom: 2px;
  transition: color 0.2s ease, background-size 0.35s ease;
}
.ef-v2-heading a.ef-v2-heading-link:hover {
  color: var(--ef-link-hover-color, var(--ef-link-color, inherit)) !important;
  background-size: var(--ef-underline-w-hover, var(--ef-underline-w, 0%)) 2px;
}

/* Button — ensure height includes padding (not just text line-height) */
.ef-v2-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s;
  line-height: 1.2;
  box-sizing: border-box;
}

.ef-element { position: relative; }

/* FAQ / Accordion */
.ef-faq-item,
.ef-accordion-item { border-bottom: 1px solid #e5e7eb; }
.ef-faq-question,
.ef-accordion-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0; cursor: pointer; font-weight: 600;
}
.ef-faq-answer,
.ef-accordion-body { display: none; padding: 0 0 12px; }
.ef-faq-item.active .ef-faq-answer,
.ef-accordion-item.active .ef-accordion-body { display: block; }
.ef-faq-question::after,
.ef-accordion-header::after { content: '+'; font-size: 1.2em; }
.ef-faq-item.active .ef-faq-question::after,
.ef-accordion-item.active .ef-accordion-header::after { content: '−'; }

/* Tabs */
.ef-tabs-nav { display: flex; border-bottom: 2px solid #e5e7eb; margin-bottom: 16px; }
.ef-tab-btn { padding: 8px 16px; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.ef-tab-btn.active { border-bottom-color: currentColor; font-weight: 600; }
.ef-tab-panel { display: none; }
.ef-tab-panel.active { display: block; }

/* Tours (vertical tabs) */
.ef-tours { display: flex; gap: 20px; }
.ef-tours-nav { display: flex; flex-direction: column; min-width: 200px; border-right: 2px solid #e5e7eb; }
.ef-tour-btn { padding: 10px 16px; cursor: pointer; border-right: 2px solid transparent; margin-right: -2px; text-align: left; }
.ef-tour-btn.active { border-right-color: currentColor; font-weight: 600; }
.ef-tour-panel { display: none; flex: 1; }
.ef-tour-panel.active { display: block; }

/* Hover box */
.ef-hover-box { position: relative; perspective: 1000px; }
.ef-hover-box-inner { transition: transform 0.6s; transform-style: preserve-3d; }
.ef-hover-box:hover .ef-hover-box-inner { transform: rotateY(180deg); }
.ef-hover-box-front, .ef-hover-box-back {
  position: absolute; width: 100%; height: 100%; backface-visibility: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 20px; box-sizing: border-box;
}
.ef-hover-box-back { transform: rotateY(180deg); }

/* Progress bar */
.ef-progress-bar { height: 20px; background: #e5e7eb; border-radius: 10px; overflow: hidden; }
.ef-progress-fill { height: 100%; border-radius: 10px; transition: width 1s ease; }
.ef-progress-fill.striped {
  background-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
  background-size: 1rem 1rem;
}

/* Legal pages */
.ef-legal-classic {
  width: 100%;
  margin: 0;
  padding: 0;
  color: var(--ef-legal-text, #111827);
  background: var(--ef-legal-bg, #ffffff);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  font-family: var(--ef-legal-body-family, var(--ef-font-body-family, inherit));
  font-size: var(--ef-legal-body-size, var(--ef-font-body-size, 16px));
  line-height: var(--ef-legal-body-line-height, var(--ef-font-body-line-height, 1.75));
  font-weight: var(--ef-legal-body-weight, var(--ef-font-body-weight, 400));
  letter-spacing: var(--ef-legal-body-letter-spacing, var(--ef-font-body-letter-spacing, 0px));
  scroll-behavior: smooth;
}
.ef-legal-classic__hero {
  padding: 0 0 28px;
  background: var(--ef-legal-bg, #ffffff);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.ef-legal-classic__eyebrow {
  display: inline-flex;
  margin-bottom: 14px;
  color: var(--ef-legal-accent, #2563eb);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ef-legal-classic h1 {
  margin: 0;
  color: var(--ef-legal-text, #111827);
  font-family: var(--ef-legal-h1-family, var(--ef-font-h1-family, inherit));
  font-size: var(--ef-legal-h1-size, var(--ef-font-h1-size, clamp(30px, 4vw, 48px)));
  line-height: var(--ef-legal-h1-line-height, var(--ef-font-h1-line-height, 1.1));
  font-weight: var(--ef-legal-h1-weight, var(--ef-font-h1-weight, 800));
  text-transform: var(--ef-legal-h1-transform, var(--ef-font-h1-transform, none));
  letter-spacing: var(--ef-legal-h1-letter-spacing, var(--ef-font-h1-letter-spacing, 0px));
}
.ef-legal-classic__hero p {
  margin: 18px 0 0;
  color: var(--ef-legal-muted, #64748b);
  font-size: 17px;
}
.ef-legal-classic__updated {
  display: inline-flex;
  margin-top: 22px;
  padding: 6px 10px;
  border-radius: 999px;
  color: var(--ef-legal-accent, #2563eb);
  background: rgba(37, 99, 235, 0.08);
  font-size: 12px;
  font-weight: 700;
}
.ef-legal-classic__toc {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 24px 0;
  background: var(--ef-legal-bg, #ffffff);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.ef-legal-classic__toc a {
  padding: 10px 12px;
  border-radius: var(--ef-legal-radius, 8px);
  color: var(--ef-legal-text, #111827) !important;
  background: var(--ef-legal-card, #ffffff);
  border: 1px solid rgba(15, 23, 42, 0.08);
  text-decoration: none !important;
  font-size: 13px;
  font-weight: 700;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.ef-legal-classic__toc a:hover {
  border-color: var(--ef-legal-accent, #2563eb);
  color: var(--ef-legal-accent, #2563eb) !important;
}
.ef-legal-classic__sections {
  padding: 28px 0 0;
}
.ef-legal-classic__section {
  padding: 28px 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  scroll-margin-top: 90px;
}
.ef-legal-classic__section:last-child {
  border-bottom: 0;
}
.ef-legal-classic h2 {
  margin: 0 0 18px;
  color: var(--ef-legal-text, #111827);
  font-family: var(--ef-legal-h2-family, var(--ef-font-h2-family, inherit));
  font-size: var(--ef-legal-h2-size, var(--ef-font-h2-size, 24px));
  line-height: var(--ef-legal-h2-line-height, var(--ef-font-h2-line-height, 1.25));
  font-weight: var(--ef-legal-h2-weight, var(--ef-font-h2-weight, 800));
  text-transform: var(--ef-legal-h2-transform, var(--ef-font-h2-transform, none));
  letter-spacing: var(--ef-legal-h2-letter-spacing, var(--ef-font-h2-letter-spacing, 0px));
}
.ef-legal-classic h3 {
  margin: 0 0 10px;
  color: var(--ef-legal-text, #111827);
  font-family: var(--ef-legal-h3-family, var(--ef-font-h3-family, inherit));
  font-size: var(--ef-legal-h3-size, var(--ef-font-h3-size, 17px));
  line-height: var(--ef-legal-h3-line-height, var(--ef-font-h3-line-height, 1.25));
  font-weight: var(--ef-legal-h3-weight, var(--ef-font-h3-weight, 800));
  text-transform: var(--ef-legal-h3-transform, var(--ef-font-h3-transform, none));
  letter-spacing: var(--ef-legal-h3-letter-spacing, var(--ef-font-h3-letter-spacing, 0px));
}
.ef-legal-classic__subsection-title {
  margin-top: 22px !important;
}
.ef-legal-classic h4 {
  margin: 0 0 10px;
  color: var(--ef-legal-text, #111827);
  font-family: var(--ef-legal-h4-family, var(--ef-font-h4-family, inherit));
  font-size: var(--ef-legal-h4-size, var(--ef-font-h4-size, 17px));
  line-height: var(--ef-legal-h4-line-height, var(--ef-font-h4-line-height, 1.25));
  font-weight: var(--ef-legal-h4-weight, var(--ef-font-h4-weight, 800));
  text-transform: var(--ef-legal-h4-transform, var(--ef-font-h4-transform, none));
  letter-spacing: var(--ef-legal-h4-letter-spacing, var(--ef-font-h4-letter-spacing, 0px));
}
.ef-legal-classic p {
  margin: 0 0 14px;
}
.ef-legal-classic__body > :last-child,
.ef-legal-classic__body p:last-child,
.ef-legal-classic__body ul:last-child,
.ef-legal-classic__body li:last-child {
  margin-bottom: 0;
}
.ef-legal-classic ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}
.ef-legal-classic li {
  position: relative;
  margin: 0 0 12px;
  padding-left: 24px;
}
.ef-legal-classic li ul {
  margin-top: 10px;
}
.ef-legal-classic li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.78em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--ef-legal-accent, #2563eb);
}
.ef-legal-classic__definitions {
  display: grid;
  gap: 14px;
  margin: 0;
}
.ef-legal-classic__definitions div {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 16px;
  padding: 14px 16px;
  border-radius: var(--ef-legal-radius, 8px);
  background: var(--ef-legal-card, #ffffff);
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.ef-legal-classic dt {
  color: var(--ef-legal-text, #111827);
  font-weight: 800;
}
.ef-legal-classic dd {
  margin: 0;
  color: var(--ef-legal-muted, #64748b);
}
.ef-legal-classic__split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}
.ef-legal-classic__split > div,
.ef-legal-classic__note {
  padding: 20px;
  border-radius: var(--ef-legal-radius, 8px);
  background: var(--ef-legal-card, #ffffff);
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.ef-legal-classic__note {
  margin-top: 18px;
}
.ef-legal-classic__table-scroll {
  width: 100%;
  overflow-x: auto;
  margin: 16px 0;
  border: 1px solid var(--ef-legal-table-border, #cbd5e1);
  border-radius: var(--ef-legal-radius, 8px);
  background: var(--ef-legal-card, #ffffff);
}
.ef-legal-classic__table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  border: 0;
  background: var(--ef-legal-card, #ffffff);
}
.ef-legal-classic__table th,
.ef-legal-classic__table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--ef-legal-table-border, #cbd5e1);
  border-right: 1px solid var(--ef-legal-table-border, #cbd5e1);
  color: var(--ef-legal-text, #111827);
  text-align: left;
}
.ef-legal-classic__table th {
  background: rgba(37, 99, 235, 0.08);
  font-weight: 800;
}
.ef-legal-classic__table tr:last-child td {
  border-bottom: 0;
}
.ef-legal-classic__table th:last-child,
.ef-legal-classic__table td:last-child {
  border-right: 0;
}
.ef-legal-classic__badge {
  display: inline-flex;
  align-items: center;
  margin-top: 14px;
  padding: 7px 11px;
  border: 1px solid var(--ef-legal-accent, #2563eb);
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.08);
  color: var(--ef-legal-accent, #2563eb);
  font-size: 13px;
  font-weight: 800;
}
.ef-legal-classic__download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  padding: 10px 14px;
  border-radius: var(--ef-legal-radius, 8px);
  color: #fff !important;
  background: var(--ef-legal-accent, #2563eb);
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 800;
}

@media (max-width: 900px) {
  .ef-legal-classic__toc {
    grid-template-columns: 1fr 1fr;
  }
  .ef-legal-classic__definitions div,
  .ef-legal-classic__split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .ef-legal-classic {
    font-size: 15px;
  }
  .ef-legal-classic__sections {
    padding-top: 22px;
  }
  .ef-legal-classic__section {
    padding-top: 22px;
    padding-bottom: 22px;
  }
  .ef-legal-classic__toc {
    grid-template-columns: 1fr;
  }
}

/* Message box */
.ef-msg-success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; padding: 12px 16px; border-radius: 8px; }
.ef-msg-error   { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; padding: 12px 16px; border-radius: 8px; }
.ef-msg-warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; padding: 12px 16px; border-radius: 8px; }
.ef-msg-info    { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; padding: 12px 16px; border-radius: 8px; }

/* ─── Reset figure margin inside builder ─────────────────────────────────── */
.ef-builder-v2-product-description figure,
.ef-element figure { margin: 0; line-height: 0; }

/* ─── Text block ─────────────────────────────────────────────────────────── */
.ef-v2-text-block { line-height: 1.6; font-synthesis: weight style; }
.ef-v2-text-block p { margin: 0 0 1em; }
.ef-v2-text-block p:last-child { margin-bottom: 0; }
.ef-v2-text-block h1 { font-size: 2em; font-weight: bold; }
.ef-v2-text-block h2 { font-size: 1.5em; font-weight: bold; }
.ef-v2-text-block h3 { font-size: 1.17em; font-weight: bold; }
.ef-v2-text-block h4 { font-size: 1em; font-weight: bold; }
.ef-v2-text-block h5 { font-size: 0.83em; font-weight: bold; }
.ef-v2-text-block h6 { font-size: 0.67em; font-weight: bold; }
.ef-v2-text-block ul { list-style: disc; margin: 0 0 1em; padding-left: 1.5em; }
.ef-v2-text-block ol { list-style: decimal; margin: 0 0 1em; padding-left: 1.5em; }
.ef-v2-text-block strong, .ef-v2-text-block b { font-weight: bold; }
.ef-v2-text-block em, .ef-v2-text-block i { font-style: italic; }
.ef-v2-text-block u { text-decoration: underline; }
.ef-v2-text-block s, .ef-v2-text-block strike { text-decoration: line-through; }
.ef-v2-text-block sub { vertical-align: sub; font-size: smaller; }
.ef-v2-text-block sup { vertical-align: super; font-size: smaller; }
.ef-v2-text-block a { color: inherit; text-decoration: underline; }
.ef-v2-text-block .ql-align-center { text-align: center; }
.ef-v2-text-block .ql-align-right { text-align: right; }
.ef-v2-text-block .ql-align-justify { text-align: justify; }

/* ─── Data table ─────────────────────────────────────────────────────────── */
.ef-v2-data-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
.ef-v2-data-table__inner {
  min-width: var(--ef-table-min-width, 640px);
  border: var(--ef-table-border-width, 1px) solid var(--ef-table-border-color, #e5e7eb);
  border-radius: var(--ef-table-radius, var(--ef-border-radius, 8px));
  overflow: hidden;
  background: var(--ef-table-cell-bg, #ffffff);
}
.ef-v2-data-table table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
}
.ef-v2-data-table th,
.ef-v2-data-table td {
  padding: 14px 16px;
  border-right: var(--ef-table-border-width, 1px) solid var(--ef-table-border-color, #e5e7eb);
  border-bottom: var(--ef-table-border-width, 1px) solid var(--ef-table-border-color, #e5e7eb);
  background: var(--ef-table-cell-bg, #ffffff);
  color: var(--ef-table-cell-text, #1f2937);
  text-align: left;
  vertical-align: top;
  line-height: 1.45;
  word-break: normal;
}
.ef-v2-data-table thead th,
.ef-v2-data-table tbody th {
  background: var(--ef-table-header-bg, #f8fafc);
  color: var(--ef-table-header-text, #111827);
  font-weight: 700;
}
.ef-v2-data-table tr > *:last-child { border-right: 0; }
.ef-v2-data-table tbody tr:last-child > * { border-bottom: 0; }
.ef-v2-data-table thead + tbody tr:first-child > * { border-top: 0; }

/* Video responsive */
.ef-video-wrapper { position: relative; width: 100%; }
.ef-video-wrapper iframe,
.ef-video-wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

[data-text-scheme="light"] .ef-v2-icon-element[data-icon-auto-color="true"] {
  color: #ffffff;
}

/* Icon draw effect — efekt samorysującej się ikony Lucide.
   Działa dzięki SVG `pathLength="1"` injectowanemu przez ecomflow_lucide_icon
   PHP helper — każda ścieżka jest znormalizowana do długości 1, co pozwala
   użyć stałych `stroke-dasharray: 1` / `stroke-dashoffset: 1` niezależnie
   od rzeczywistej geometrii. JS (assets/js/icon-draw.js) tylko dodaje klasę
   `.ef-icon-drawn` po wejściu w viewport — przejście robi czysty CSS
   transition, deterministyczne i niezależne od JS reflow tricków. */
.ef-v2-icon-element[data-icon-draw="true"] svg path,
.ef-v2-icon-element[data-icon-draw="true"] svg circle,
.ef-v2-icon-element[data-icon-draw="true"] svg line,
.ef-v2-icon-element[data-icon-draw="true"] svg polyline,
.ef-v2-icon-element[data-icon-draw="true"] svg polygon,
.ef-v2-icon-element[data-icon-draw="true"] svg rect,
.ef-v2-icon-element[data-icon-draw="true"] svg ellipse {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transition: stroke-dashoffset var(--ef-icon-draw-duration, 0.8s) ease-in-out;
}
.ef-v2-icon-element.ef-icon-drawn svg path,
.ef-v2-icon-element.ef-icon-drawn svg circle,
.ef-v2-icon-element.ef-icon-drawn svg line,
.ef-v2-icon-element.ef-icon-drawn svg polyline,
.ef-v2-icon-element.ef-icon-drawn svg polygon,
.ef-v2-icon-element.ef-icon-drawn svg rect,
.ef-v2-icon-element.ef-icon-drawn svg ellipse {
  stroke-dashoffset: 0;
}
