/* Linked Text Block — Plugin Styles */

/* ── Wrapper (groups title + grid as one flex child) ── */
.linked-text-block-wrapper {
  flex: 1 1 500px;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* Override Gutenberg's flex-wrap: nowrap on Row groups containing this block */
.is-layout-flex:has(> .linked-text-block),
.is-layout-flex:has(.linked-text-block),
.is-nowrap:has(> .linked-text-block),
.is-nowrap:has(.linked-text-block) {
  flex-wrap: wrap !important;
}

/* ── Editor: block wrapper as flex child ── */
.is-layout-flex > [data-type="atmp/linked-text-block"] {
  flex: 1 0 200px !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* Disable link clicks in editor preview */
[data-type="atmp/linked-text-block"] a {
  pointer-events: none;
}

/* ── Base ──
   Theme converts .grid-wrapper / .linked-text-blocks to display:grid on desktop,
   which breaks flex-based card sizing. Force flex back. */

.linked-text-block {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  flex: 1 0 auto !important;
  gap: var(--spacing-md) !important;
  width: var(--ltb-width, 100%) !important;
  min-height: var(--ltb-height, auto) !important;
  padding: var(--ltb-padding) !important;
  max-width: var(--ltb-max-width, none) !important;
  min-width: var(--ltb-min-width, 0) !important;
  margin-left: var(--ltb-ml, 0) !important;
  margin-right: var(--ltb-mr, auto) !important;
  float: none !important;
  box-sizing: border-box;
}

/* ── Override theme .page-main p { width: 90ch } ── */

.linked-text-block p {
  width: 100% !important;
  max-width: none !important;
}

/* ── Text wrapper (flex column for per-card vertical alignment) ── */

.linked-text-block .col3 .text-block-wrapper {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  height: auto !important;
  width: 100% !important;
}

/* ── Card sizing & styling ── */

.linked-text-block .col3 {
  flex: 0 0 var(--ltb-card-width, calc(33.333% - 16px)) !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: var(--ltb-card-height, auto) !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin-left: var(--ltb-card-ml, 0) !important;
  margin-right: var(--ltb-card-mr, 0) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  float: none !important;
  box-sizing: border-box;
  padding: var(--ltb-card-padding, 10px) !important;
  background: var(--color-white);
}

/* Override theme .grid-wrapper .col3:nth-child(3) { margin-left: 0 } */
.linked-text-block .col3:nth-child(3) {
  margin-left: var(--ltb-card-ml, 0) !important;
}

/* ── Default link color ── */
.linked-text-block .col3 .text-block-wrapper a {
  color: var(--color-primary);
}

/* ── Dark background cards — white text ── */
.linked-text-block .col3 .text-block-wrapper.ltb-dark-bg a,
.linked-text-block .col3 .text-block-wrapper.ltb-dark-bg p,
.linked-text-block .col3 .text-block-wrapper.ltb-dark-bg .card-title {
  color: #fff !important;
}

/* ── Per-card text color override via --ltb-color ── */

.linked-text-block .col3 .text-block-wrapper[style*="--ltb-color"] a,
.linked-text-block .col3 .text-block-wrapper[style*="--ltb-color"] p,
.linked-text-block .col3 .text-block-wrapper[style*="--ltb-color"] .card-title {
  color: var(--ltb-color) !important;
}

/* ── Per-card font overrides via CSS custom properties ── */

.linked-text-block .col3 .text-block-wrapper a,
.linked-text-block .col3 .text-block-wrapper p,
.linked-text-block .col3 .text-block-wrapper .card-title {
  font-size: var(--ltb-fs) !important;
  font-weight: var(--ltb-fw) !important;
  text-transform: var(--ltb-tt) !important;
}

/* ── Font Preset: Button ── */

.linked-text-block .ltb-preset--button {
  align-items: var(--ltb-btn-align, center) !important;
}

.linked-text-block .ltb-preset--button a {
  display: inline-block !important;
  padding: 10px 24px !important;
  border-radius: 4px !important;
  background: var(--ltb-btn-bg, var(--color-primary)) !important;
  color: var(--ltb-btn-color, #fff) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  text-align: center !important;
  transition: opacity 0.2s ease !important;
}

.linked-text-block .ltb-preset--button a:hover {
  opacity: 0.85 !important;
}

/* ── Font Preset: Link ── */

.linked-text-block .ltb-preset--link a {
  text-decoration: underline !important;
  font-weight: normal !important;
  background: none !important;
  padding: 0 !important;
}

/* ── Font Preset: CTA ── */

.linked-text-block .ltb-preset--cta a {
  font-size: 1.2em !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}

/* ── Mobile & Tablet (≤ 1140px) ── */

@media (max-width: 1140px) {
  .linked-text-block {
    width: var(--ltb-mobile-width, 100%) !important;
    margin-left: var(--ltb-mobile-ml, 0) !important;
    margin-right: var(--ltb-mobile-mr, auto) !important;
  }

  .linked-text-block .col3 {
    flex: 0 0 var(--ltb-mobile-card-width, 100%) !important;
    margin-left: var(--ltb-mobile-card-ml, 0) !important;
    margin-right: var(--ltb-mobile-card-mr, 0) !important;
  }
}
