/* ==========================================================================
   Modul — WordPress & Elementor glue
   The design system (styles.css) is unlayered. Elementor's own defaults are
   imported into the "elementor" layer (see inc/setup.php); the reset below
   sits in "modul-reset", above Elementor and below the design system.
   ========================================================================== */

@layer elementor, modul-reset;

@layer modul-reset {
  /* Atomic elements (Elementor 4): drop the builder's spacing defaults so the
     design-system classes on each element decide the layout. */
  .elementor .e-atomic-element { padding: 0; margin: 0; min-width: 0; gap: normal; }
  .elementor .e-atomic-element.e-con { display: block; width: auto; max-width: none; position: static; flex: initial; }
  .elementor .e-flexbox-base.e-con { display: flex; flex-direction: row; }
  .elementor .e-heading-base, .elementor .e-paragraph-base { margin: 0; }
  .elementor .e-paragraph-base:not(:last-child) { margin-bottom: 1em; }
  .elementor .e-button-base { padding: 0; border-radius: 0; background: none; text-align: inherit; display: inline-flex; }
  .elementor .e-image-base, .elementor img { height: auto; }
  .elementor .elementor-widget:not(:last-child) { margin-block-end: 0; }
  .elementor .elementor-element { --widgets-spacing: 0; }
  .elementor-widget-container { padding: 0; }
  .elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
}

/* The page wrapper Elementor adds must not create a containing block. */
.elementor[data-elementor-type="wp-page"] { display: contents; }

/* Paragraph spacing inside design-system containers follows the classes. */
.hero__content .e-paragraph-base, .stone-card .e-paragraph-base, .card .e-paragraph-base, .quote__card .e-paragraph-base, .resource .e-paragraph-base { margin-bottom: 0; }
.link-arrow.e-button-base { display: inline-flex; }

/* Images inside fixed frames fill them whatever WordPress adds. */
.stone-card__img img, .card__img img, .post-card__img img, .hero__media img, .split-hero__media img { height: 100%; }

/* Sticky header below the WordPress toolbar */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* ---------- Elementor nested accordion (FAQ) ---------- */
.modul-faq .e-n-accordion-item { border-bottom: 1px solid var(--line); }
.modul-faq .e-n-accordion-item:first-child { border-top: 1px solid var(--line); }
.modul-faq .e-n-accordion-item-title { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.4rem 0; border: 0; background: none; cursor: pointer; list-style: none; }
.modul-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.modul-faq .e-n-accordion-item-title-text { font-family: var(--sans); font-size: clamp(1.05rem, 1.25vw, 1.3rem); font-weight: 400; color: var(--ink); line-height: 1.4; }
.modul-faq .e-n-accordion-item-title-icon { display: none; }
.modul-faq .e-n-accordion-item-title::after { content: "+"; flex: none; font-size: 1.5rem; line-height: 1; color: var(--gold); transition: transform .3s var(--ease); }
.modul-faq .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: rotate(45deg); }
.modul-faq .e-n-accordion-item > .e-con { padding: 0 0 1.5rem; border: 0; }
.modul-faq .elementor-widget-text-editor { color: var(--text); max-width: 50rem; }

/* ---------- Shortcode output inside pages ---------- */
.elementor-widget-shortcode .elementor-shortcode > p:empty { display: none; }

/* ---------- WordPress alignment and captions ---------- */
.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }
