/* ===== IMP CSS START (auto-injected by HTML-to-Blocks Importer) ===== */
/* ====================================================================
   IMP - Fallback design tokens (customize per brand after injection)
   ==================================================================== */
:root {
  --imp-color-primary: #2271b1; --imp-color-primary-dark: #135e96; --imp-color-accent: #2271b1;
  --imp-color-text: #1e1e1e; --imp-color-text-muted: #757575; --imp-color-text-inverse: #ffffff;
  --imp-color-bg: #ffffff; --imp-color-bg-alt: #f0f0f0; --imp-color-bg-dark: #1e1e1e;
  --imp-color-border: #ddd; --imp-color-success: #2e7d32; --imp-color-warning: #ed6c02; --imp-color-danger: #c62828;
  --imp-font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --imp-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --imp-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --imp-container: 1170px; --imp-radius-sm: 4px; --imp-radius-md: 8px; --imp-radius-lg: 16px;
  --imp-ease: ease; --imp-duration: 200ms;
}

/* ====================================================================
   IMP - Block essentials (replaces dequeued wp-block-library)
   ==================================================================== */

/* Group */
.wp-block-group { box-sizing: border-box; }

/* Layout utilities (Group/Section with Flex/Grid layout) */
.is-layout-flex { display: flex; flex-wrap: wrap; gap: 16px; }
.is-layout-flex.is-vertical { flex-direction: column; }
.is-layout-flex.is-content-justification-center { justify-content: center; }
.is-layout-flex.is-content-justification-right { justify-content: flex-end; }
.is-layout-flex.is-content-justification-space-between { justify-content: space-between; }
.is-layout-grid { display: grid; gap: 16px; }

/* Heading */
.wp-block-heading { margin-top: 0; }

/* Cover */
.wp-block-cover { position: relative; box-sizing: border-box; min-height: 430px; padding: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; overflow: hidden; }
.wp-block-cover.alignfull, .wp-block-cover.alignwide { display: flex; }
.wp-block-cover .wp-block-cover__inner-container { position: relative; z-index: 1; width: 100%; color: inherit; }
.wp-block-cover .wp-block-cover__background, .wp-block-cover .wp-block-cover__gradient-background { position: absolute; inset: 0; z-index: 0; }
.wp-block-cover .wp-block-cover__background.has-background-dim { background-color: #000; opacity: 0.5; }
.wp-block-cover .wp-block-cover__background.has-background-dim-0 { opacity: 0; }
.wp-block-cover .wp-block-cover__background.has-background-dim-10 { opacity: 0.1; }
.wp-block-cover .wp-block-cover__background.has-background-dim-20 { opacity: 0.2; }
.wp-block-cover .wp-block-cover__background.has-background-dim-30 { opacity: 0.3; }
.wp-block-cover .wp-block-cover__background.has-background-dim-40 { opacity: 0.4; }
.wp-block-cover .wp-block-cover__background.has-background-dim-50 { opacity: 0.5; }
.wp-block-cover .wp-block-cover__background.has-background-dim-60 { opacity: 0.6; }
.wp-block-cover .wp-block-cover__background.has-background-dim-70 { opacity: 0.7; }
.wp-block-cover .wp-block-cover__background.has-background-dim-80 { opacity: 0.8; }
.wp-block-cover .wp-block-cover__background.has-background-dim-90 { opacity: 0.9; }
.wp-block-cover .wp-block-cover__background.has-background-dim-100 { opacity: 1; }
.wp-block-cover .wp-block-cover__image-background, .wp-block-cover .wp-block-cover__video-background { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; z-index: 0; }
.wp-block-cover.is-light { color: #000; }
.wp-block-cover.is-dark { color: #fff; }
.wp-block-cover h1, .wp-block-cover h2, .wp-block-cover h3, .wp-block-cover h4, .wp-block-cover h5, .wp-block-cover h6, .wp-block-cover p { color: inherit; }

/* Columns */
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 32px; box-sizing: border-box; margin-bottom: 28px; }
.wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap; }
.wp-block-column { flex-grow: 1; flex-basis: 0; min-width: 0; word-break: break-word; overflow-wrap: break-word; }
@media (max-width: 781px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-wrap: wrap; }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}

/* Buttons */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; box-sizing: border-box; }
.wp-block-buttons.is-content-justification-center { justify-content: center; }
.wp-block-buttons.is-content-justification-right { justify-content: flex-end; }
.wp-block-buttons.is-vertical { flex-direction: column; }
.wp-block-button { display: inline-block; }
.wp-block-button__link, .wp-element-button { display: inline-block; padding: 12px 24px; text-decoration: none; cursor: pointer; box-sizing: border-box; word-break: break-word; line-height: 1.4; border: none; background: var(--imp-color-primary, #2271b1); color: var(--imp-color-text-inverse, #fff); border-radius: var(--imp-radius-md, 4px); transition: background var(--imp-duration, 200ms) var(--imp-ease, ease); }
.wp-block-button__link:hover, .wp-element-button:hover { background: var(--imp-color-primary-dark, #135e96); color: var(--imp-color-text-inverse, #fff); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--imp-color-primary, #2271b1); border: 2px solid currentColor; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--imp-color-primary, #2271b1); color: var(--imp-color-text-inverse, #fff); }

/* Image */
.wp-block-image { margin: 0 0 16px 0; }
.wp-block-image img { max-width: 100%; height: auto; display: block; }
.wp-block-image.alignleft { float: left; margin-right: 16px; }
.wp-block-image.alignright { float: right; margin-left: 16px; }
.wp-block-image.aligncenter { margin-left: auto; margin-right: auto; }
.wp-block-image.aligncenter img { margin: 0 auto; }

/* Figcaption (shared across blocks with captions) */
.wp-block-image figcaption, .wp-block-table figcaption, .wp-block-video figcaption, .wp-block-audio figcaption, .wp-element-caption { margin-top: 8px; font-size: 13px; color: var(--imp-color-text-muted, #666); text-align: center; }

/* List */
.wp-block-list { padding-left: 24px; margin: 0 0 16px 0; }
.wp-block-list li { margin-bottom: 4px; }

/* Quote */
.wp-block-quote { margin: 0 0 16px 0; padding: 8px 0 8px 16px; border-left: 4px solid var(--imp-color-primary, #ccc); }
.wp-block-quote cite, .wp-block-quote .wp-block-quote__citation { display: block; margin-top: 8px; font-size: 14px; color: var(--imp-color-text-muted, #666); font-style: normal; }
.wp-block-quote.is-style-large { font-size: 24px; line-height: 1.4; }
.wp-block-quote.is-style-plain { border: none; padding: 0; }

/* Details */
.wp-block-details { box-sizing: border-box; margin: 0 0 16px 0; }
.wp-block-details summary { cursor: pointer; padding: 8px 0; font-weight: 600; }
.wp-block-details > *:not(summary) { margin-top: 8px; }

/* Table */
.wp-block-table { overflow-x: auto; margin: 0 0 16px 0; }
.wp-block-table table { width: 100%; border-collapse: collapse; }
.wp-block-table th, .wp-block-table td { padding: 8px 12px; border: 1px solid var(--imp-color-border, #ddd); text-align: left; }
.wp-block-table thead { border-bottom: 2px solid var(--imp-color-border, #ddd); }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--imp-color-bg-alt, #f6f7f7); }

/* Separator */
.wp-block-separator { border: none; border-top: 1px solid var(--imp-color-border, #ddd); margin: 24px 0; max-width: none; height: auto; }
.wp-block-separator.has-alpha-channel-opacity { opacity: 1; }
.wp-block-separator.is-style-wide { max-width: 100%; }
.wp-block-separator.is-style-dots { background: none; border: none; text-align: center; line-height: 1; height: auto; }
.wp-block-separator.is-style-dots::before { content: "\00b7\00b7\00b7"; font-size: 20px; letter-spacing: 8px; color: var(--imp-color-border, #ddd); }

/* Spacer */
.wp-block-spacer { clear: both; }

/* Video / Audio */
.wp-block-video { margin: 0 0 16px 0; }
.wp-block-video video { width: 100%; max-width: 100%; display: block; }
.wp-block-audio { margin: 0 0 16px 0; }
.wp-block-audio audio { width: 100%; }

/* Alignment text utilities */
.has-text-align-left { text-align: left; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.has-text-align-justify { text-align: justify; }

/* Width / size utilities */
.alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; }
.alignfull { max-width: none; width: 100%; margin-left: 0; margin-right: 0; }

/* Form placeholder (plugin-specific) */
.imp-form-placeholder { box-sizing: border-box; }


.wp-block-group__inner-container { display: contents; }

/* ====================================================================
   IMP - Animation system (pure CSS, no JS, runs on page load)
   ==================================================================== */
@keyframes imp-fade-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes imp-fade-down { from { opacity: 0; transform: translateY(-24px); } to { opacity: 1; transform: none; } }
@keyframes imp-fade-left { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes imp-fade-right { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
@keyframes imp-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes imp-zoom-in { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: none; } }
@keyframes imp-zoom-out { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: none; } }
.imp-anim { animation-duration: 600ms; animation-fill-mode: both; animation-timing-function: var(--imp-ease, ease-out); }
.imp-anim.imp-fade-up { animation-name: imp-fade-up; }
.imp-anim.imp-fade-down { animation-name: imp-fade-down; }
.imp-anim.imp-fade-left { animation-name: imp-fade-left; }
.imp-anim.imp-fade-right { animation-name: imp-fade-right; }
.imp-anim.imp-fade-in { animation-name: imp-fade-in; }
.imp-anim.imp-zoom-in { animation-name: imp-zoom-in; }
.imp-anim.imp-zoom-out { animation-name: imp-zoom-out; }
@media (prefers-reduced-motion: reduce) { .imp-anim { animation: none !important; } }
.block-editor-block-list__layout .imp-anim, .editor-styles-wrapper .imp-anim { animation: none !important; }

/* ===== IMP CSS END ===== */
