/*
Theme Name: MIE Solutions
Description: Schlankes Theme für Gutenberg-Blöcke.
Version: 0.9.0
Text Domain: mie-solutions
*/

/* Preserve saved Light colors after consolidating the editor palette into Sand. */
:root,
.editor-styles-wrapper {
   --wp--preset--color--light: var(--wp--preset--color--paper, #f2eeeb);
}

.has-light-background-color {
   background-color: var(--wp--preset--color--paper, #f2eeeb) !important;
}

.has-light-color {
   color: var(--wp--preset--color--paper, #f2eeeb) !important;
}

.has-light-border-color {
   border-color: var(--wp--preset--color--paper, #f2eeeb) !important;
}

/* Shared design foundation for every template and the block editor. */
:root,
.editor-styles-wrapper {
   --mie-navy: #0a2038;
   --mie-deep-navy: #051323;
   --mie-ink: #17304d;
   --mie-cyan: #00D9FF;
   --mie-red: #cf2030;
   --mie-gutter: clamp(20px, 4vw, 64px);
   --mie-button-radius: 100px;
   --feature-navy: var(--mie-navy);
   --feature-ink: var(--mie-ink);
   --feature-cyan: var(--mie-cyan);
   --feature-red: var(--mie-red);
   --feature-gutter: var(--mie-gutter);
}

body,
.editor-styles-wrapper {
   margin: 0;
   background: var(--mie-navy);
   color: #fff;
   font-family: 'aptos', Arial, sans-serif;
   font-size: clamp(16px, 1.15vw, 20px);
   line-height: 1.55;
}

*,
*::before,
*::after {
   box-sizing: border-box;
}

a {
   color: inherit;
}

a:hover {
   text-decoration-thickness: 2px;
}

a:focus-visible,
button:focus-visible {
   outline: 3px solid var(--mie-cyan);
   outline-offset: 5px;
}

img {
   max-width: 100%;
   height: auto;
}

.mie-shell {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

:where(.site-content, .editor-styles-wrapper) :where(h1, h2, h3, h4) {
   font-family: 'Babcock', Arial, sans-serif;
   font-weight: 700;
   line-height: 1.1;
   text-transform: uppercase;
   overflow-wrap: break-word;
   margin-block: 0 0.65em;
}

/* Ordinary emphasis retains text/link color in content and the editor. */
:is(.site-content, .editor-styles-wrapper) :is(em, i) {
   color: inherit;
   font-style: italic;
}

/* Only heading emphasis uses the cyan, upright treatment. */
:is(h1, h2, h3, h4, h5, h6) em,
:is(.site-content, .editor-styles-wrapper) :is(h1, h2, h3, h4, h5, h6) em {
   color: var(--mie-cyan);
   font-style: normal;
}

/* Native bylines use the shared eyebrow treatment on every theme surface. */
:is(.site-content, .editor-styles-wrapper) p.is-style-byline {
   color: var(--mie-cyan, #00d9ff) !important;
   font-family: 'aptos', Arial, sans-serif;
   font-size: 14px;
   font-weight: 700;
   line-height: 1.5;
   letter-spacing: .17em;
   text-transform: uppercase;
   margin-top: 0;
   margin-block-start: 0;
   margin-bottom: 3px;
   margin-block-end: 3px;
}

:is(.site-content, .editor-styles-wrapper) p.is-style-byline + :is(h1, h2, h3, h4, h5, h6) {
   margin-top: 0;
   margin-block-start: 0;
}

:is(.site-content, .editor-styles-wrapper) :is(p, h1, h2, h3, h4, h5, h6):has(+ p.is-style-byline) {
   margin-bottom: 0;
   margin-block-end: 0;
}

:is(.site-content, .editor-styles-wrapper) h2:has(+ h3) {
   margin-bottom: 0.2em;
   margin-block-end: 0.2em;
}

:is(.site-content, .editor-styles-wrapper) h2+h3 {
   margin-top: 0;
   margin-block-start: 0;
}

:where(.site-content, .editor-styles-wrapper) h1 {
   font-size: clamp(36px, 3.7vw, 68px);
}

:where(.site-content, .editor-styles-wrapper) h2 {
   font-size: clamp(30px, 3.1vw, 56px);
}

:where(.site-content, .editor-styles-wrapper) h3 {
   font-size: clamp(24px, 2vw, 36px);
}

:where(.site-content, .editor-styles-wrapper) a {
   color: inherit;
}

:where(.site-content, .editor-styles-wrapper) a:focus-visible {
   outline: 3px solid var(--feature-cyan);
   outline-offset: 5px;
}

:where(.site-content, .editor-styles-wrapper) img {
   max-width: 100%;
   height: auto;
}

:where(.site-content, .editor-styles-wrapper) .wp-block-column {
   --mie-column-padding: 0px;
   min-width: 0;
}

:where(.site-content, .editor-styles-wrapper) .wp-block-columns {
   gap: 30px 90px !important;
}

/* Nested column layouts use the original gap, including through Group wrappers. */
:where(.site-content, .editor-styles-wrapper) .wp-block-column .wp-block-columns {
   gap: 30px !important;
}

@media (min-width: 1101px) {

   :where(.site-content, .mie-entry-content)>.wp-block-columns,
   .editor-styles-wrapper .is-root-container>.wp-block-columns {
      padding-top: var(--mie-columns-section-padding, 150px);
      padding-bottom: var(--mie-columns-section-padding, 150px);
   }
}

:where(.site-content, .editor-styles-wrapper) .wp-block-button__link {
   background: var(--feature-red);
   color: #fff;
   border: 1px solid transparent;
   border-radius: 8px;
   padding: 0.85em 1.6em;
   font-size: max(14px, 0.95em);
   font-weight: 700;
   text-decoration: none;
   transition: background-color 160ms ease;
}

:where(.site-content, .editor-styles-wrapper) .wp-block-button__link:hover {
   background: #ae1725;
}

:where(.site-content, .editor-styles-wrapper) .is-style-outline>.wp-block-button__link {
   background: transparent;
   border-color: var(--feature-red);
   color: inherit;
}

.mie-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 24px;
   padding: 14px 26px;
   border: 1px solid var(--feature-red);
   border-radius: var(--mie-button-radius, 100px);
   background: var(--feature-red);
   color: #fff;
   font-size: 16px;
   font-weight: 700;
   line-height: 1.3;
   text-decoration: none;
}

.mie-button:hover {
   background: #ab1927;
   border-color: #ab1927;
   color: #fff;
}

.mie-button-light {
   background: #fff;
   color: var(--feature-red);
}

.mie-button-outline {
   background: transparent;
   color: var(--feature-ink);
}

.mie-site-header {
   --mie-menu-radius: 40px;
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 24px;
   padding: 10px 22px;
   margin-block: 24px 14px;
   border-radius: var(--mie-menu-radius);
   background: #25425f;
}

/* Match the section canvas in both the resting and fixed header states. */
body .mie-site-header.mie-shell {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

body .mie-announcement.mie-shell {
   width: var(--mie-header-width, calc(100% - var(--mie-gutter) * 2));
   max-width: 1760px;
}

.mie-brand {
   display: inline-flex;
   flex-shrink: 0;
}

.mie-brand img {
   width: 150px;
   height: 40px;
   object-fit: contain;
}

.mie-primary-menu,
.mie-footer-menu {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 3px 12px;
   padding: 0;
   margin: 0;
   list-style: none;
}

.mie-site-header nav {
   flex: 1;
}

.mie-site-header nav a {
   font-size: 15px;
   text-decoration: none;
   font-weight: 600;
}

.mie-site-header nav a:hover {
   text-decoration: underline;
}

.mie-primary-menu li {
   position: relative;
}

.mie-site-header {
   position: relative;
   z-index: 20;
}

.mie-primary-menu>li {
   display: flex;
   align-items: center;
}

.mie-primary-menu>li>a {
   display: block;
   padding-block: 12px;
}

.mie-primary-menu .sub-menu {
   display: none;
   position: absolute;
   top: 100%;
   left: 0;
   z-index: 30;
   width: 280px;
   max-width: calc(100vw - 48px);
   margin: 0;
   padding: 10px;
   list-style: none;
   background: var(--mie-deep-navy, #051323);
   color: #fff;
   border: 0;
   border-radius: 16px;
   box-shadow: 0 5px 40px #03152655
}

.mie-primary-menu:not(.has-submenu-controls) li:hover>.sub-menu,
.mie-primary-menu:not(.has-submenu-controls) li:focus-within>.sub-menu,
.mie-primary-menu li.is-submenu-open>.sub-menu {
   display: block;
}

.mie-primary-menu .sub-menu>li+li {
   margin-top: 6px;
}

.mie-primary-menu .sub-menu a {
   display: block;
   padding: 12px 14px;
   border-radius: 8px;
   line-height: 1.4;
   overflow-wrap: anywhere;
}

.mie-site-header .sub-menu a:hover,
.mie-site-header .sub-menu a:focus-visible {
   background: #ffffff14;
   text-decoration: none;
}

.mie-primary-menu .current-menu-item>a,
.mie-primary-menu .current-menu-ancestor>a {
   font-weight: 700;
}

.mie-primary-menu .sub-menu .current-menu-item>a {
   background: #ffffff14;
}

.mie-submenu-toggle {
   display: grid;
   place-items: center;
   width: 36px;
   height: 44px;
   padding: 0;
   border: 0;
   border-radius: 8px;
   background: transparent;
   color: inherit;
   cursor: pointer;
}

.mie-submenu-toggle::after {
   content: '';
   width: 7px;
   height: 7px;
   border-right: 2px solid currentColor;
   border-bottom: 2px solid currentColor;
   transform: translate(-6px, 0) rotate(45deg);
}

.mie-submenu-toggle[aria-expanded="true"]::after {
   transform: translate(-6px, 4px) rotate(225deg);
}

.mie-primary-menu :is(a, button):focus-visible {
   outline: 2px solid var(--mie-cyan);
   outline-offset: 2px;
}

.mie-header-actions {
   display: flex;
   gap: 12px;
   margin-left: auto;
}

.mie-header-actions .mie-button {
   font-size: 15px;
   padding: 10px 14px;
}

.mie-announcement {
   width: var(--mie-header-width, calc(100% - var(--mie-gutter) * 2));
   max-width: var(--mie-header-width, 1760px);
   padding: 16px 24px;
   background: var(--mie-deep-navy, #051323);
   border-radius: 40px;
   text-align: center;
   font-size: 16px;
   color: #d6e0eb;
}

.mie-announcement a {
   text-decoration: none;
}

.mie-skip-link {
   position: absolute;
   left: 24px;
   top: -100px;
   z-index: 100;
   padding: 12px 20px;
   background: #fff;
   color: var(--mie-ink);
}

.mie-skip-link:focus {
   top: 12px;
}

.mie-site-footer {
   background: var(--mie-deep-navy, #051323);
   padding-block: clamp(48px, 6vw, 100px) 30px;
}

.mie-footer-top {
   display: flex;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 40px;
   padding-bottom: 45px;
}

.mie-footer-top p {
   max-width: 380px;
   color: #fff;
   font-size: 16px;
}

.mie-footer-menu {
   align-items: flex-start;
   font-size: 16px;
}

.mie-footer-menu .sub-menu {
   list-style: none;
   padding: 12px 0;
   font-size: 14px;
}

.mie-footer-menu a {
   text-decoration: none;
}

.mie-footer-menu a:hover {
   text-decoration: underline;
}

.mie-footer-bottom {
   display: flex;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 16px;
   border-top: 1px solid #25425f;
   padding-top: 24px;
   font-size: 14px;
   color: #fff;
}

.mie-post {
   padding-top: clamp(24px, 3vw, 48px);
   padding-bottom: clamp(55px, 7vw, 120px);
}

.mie-post-header {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1050px;
   margin: 0 auto 32px;
   text-align: center;
}

.mie-post-meta {
   color: var(--mie-cyan);
   font-size: 14px;
   margin: 0 0 12px;
}

.mie-post-header > h1 {
   margin: 0;
}

.mie-post-image {
   display: block;
   width: 100%;
   max-height: 620px;
   object-fit: cover;
   border-radius: 24px;
   margin-top: 24px;
}

.mie-entry-content>*,
.mie-page-content>* {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 860px;
   margin-inline: auto;
}

.mie-entry-content>.alignwide,
.mie-page-content>.alignwide {
   max-width: 1440px;
}

.mie-entry-content>.alignfull,
.mie-page-content>.alignfull {
   width: 100%;
   max-width: none;
}

.mie-entry-content p,
.mie-entry-content li {
   overflow-wrap: break-word;
}

.mie-entry-content blockquote {
   border-left: 3px solid var(--mie-cyan);
   padding-left: 24px;
}

.mie-entry-content pre {
   overflow: auto;
   padding: 24px;
   background: var(--mie-deep-navy, #051323);
   border-radius: 12px;
}

.mie-entry-content table {
   width: 100%;
   border-collapse: collapse;
}

.mie-entry-content td,
.mie-entry-content th {
   border: 1px solid #536a80;
   padding: 12px;
}

.mie-post-navigation {
   max-width: 860px;
   width: calc(100% - var(--mie-gutter) * 2);
   margin: 65px auto 0;
}

.mie-post-navigation .nav-links {
   display: flex;
   justify-content: space-between;
   gap: 25px;
}

.mie-post-summary {
   max-width: 1000px;
   margin: 0 auto 60px;
}

@media (max-width: 1000px) {
   .mie-site-header nav {
      order: 3;
      flex-basis: 100%;
   }

   .mie-primary-menu {
      justify-content: space-between;
      gap: 10px;
   }
}

@media (max-width: 600px) {
   .mie-site-header {
      --mie-menu-radius: 20px;
      padding: 14px;
      gap: 14px;
      margin-top: 14px;
   }

   .mie-brand img {
      width: 115px;
      height: 32px;
   }

   .mie-header-actions .mie-button-light {
      display: none;
   }

   .mie-header-actions .mie-button {
      font-size: 14px;
      padding: 9px 12px;
   }

   .mie-site-header nav a {
      font-size: 14px;
   }

   .mie-site-header nav {
      position: relative;
   }

   .mie-primary-menu>li {
      position: static;
   }

   .mie-primary-menu .sub-menu {
      left: 0;
      right: 0;
      width: 100%;
      max-width: none;
      max-height: 60vh;
      overflow-y: auto;
   }

   .mie-announcement {
      padding: 14px;
      font-size: 14px;
      border-radius: 16px;
   }

   .mie-footer-menu {
      gap: 18px;
   }
}

/* Keep article flow comfortable for core blocks and legacy HTML content alike. */
.mie-entry-content>*+* {
   margin-block-start: 1.5rem;
}

:where(.site-content, .editor-styles-wrapper) .wp-block-button__link {
   display: inline-flex;
   align-items: center;
   justify-content: center;
}

.mie-button.mie-button-outline:hover {
   background: var(--mie-red);
   color: #fff;
}

@media (prefers-reduced-motion: reduce) {
   :where(.site-content, .editor-styles-wrapper) .wp-block-button__link {
      transition: none;
   }
}

/* A shared logo strip spans normal CMS pages as well as landing pages. */
.mie-page-content>.mie-logotypes.alignfull {
   width: 100%;
   max-width: none;
}

/* Readable Gutenberg content following a guide hero. */
.single-guide .feature-page>.wp-block-group.mie-guide-body {
   padding-block: 40px;
}

.single-guide .mie-guide-body p,
.single-guide .mie-guide-body li {
   line-height: 1.65;
}

.single-guide .mie-guide-body h2,
.single-guide .mie-guide-body h3 {
   margin-top: 1.4em;
}

.single-guide .mie-guide-body> :not(.mie-resources-listing) {
   max-width: 960px;
   margin-inline: auto;
}

/* Component pages use the available editor canvas, matching their frontend layout.
   Only top-level blocks are widened; nested copy retains its own measure. */
.editor-styles-wrapper:has(.mie-feature-block, .mie-overview-block, .mie-home-component, .mie-news-slider) .is-root-container {
   width: 100%;
   max-width: none;
}

.editor-styles-wrapper:has(.mie-feature-block, .mie-overview-block, .mie-home-component, .mie-news-slider) .is-root-container>.wp-block {
   width: 100%;
   max-width: none;
   margin-inline: 0;
}

/* ACF carousel wrappers also fill nested Groups in the editor. Their inner
   shells retain the component max-width and gutters. */
.editor-styles-wrapper .wp-block:is([data-type="acf/mie-overview-quotes"],
   [data-type="acf/mie-overview-resources"],
   [data-type="acf/mie-resources-listing"]) {
   width: 100%;
   max-width: none;
   min-width: 0;
   margin-inline: 0;
}

/* Standalone landing-page copy uses the same shell as the surrounding sections. */
:is(.feature-page, .mie-home-block-page)> :is(h1, h2, h3, h4, h5, h6, p, ul, ol, .blog-faq):not(.alignfull) {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

/* Native copy can also be nested in ACF Section InnerBlocks or compositions. */
:is(.site-content, .editor-styles-wrapper) :is(.mie-home-composition,
   .mie-section-scope > section,
   .mie-section-scope > section > .acf-innerblocks-container,
   .mie-home-composition > .wp-block-group__inner-container)> :is(h1, h2, h3, h4, h5, h6, p, ul, ol, .blog-faq):not(.alignfull) {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

/* Native sections share the broad canvas of the custom content blocks.
   Editor Columns can sit inside synced-pattern wrappers. Match through those
   wrappers without constraining nested Columns or explicit full-width blocks. */
:is(.feature-page, .mie-home-block-page)> :is(.wp-block-columns, .wp-block-cover):not(.alignfull),
.editor-styles-wrapper:has(.mie-feature-block, .mie-home-component) .is-root-container> :is(.wp-block-columns, .wp-block-cover):not(.alignfull),
.editor-styles-wrapper .is-root-container .wp-block-columns:not(.alignfull):not(.wp-block-column .wp-block-columns),
:is(.site-content, .editor-styles-wrapper) .wp-block-group>.wp-block-columns,
:is(.site-content, .editor-styles-wrapper) .wp-block-group>.wp-block-group__inner-container>.wp-block-columns {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

/* Banners align with the surrounding section canvas, including inside Groups. */
:is(.site-content, .editor-styles-wrapper) .banner__wrapper {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

/* Groups always span their container, including saved inline block styles and
   WordPress constrained-layout rules. Inner columns own the rounded panel. */
:is(.site-content, .editor-styles-wrapper) .wp-block-group {
   width: 100% !important;
   max-width: 100% !important;
   margin-inline: 0 !important;
   border-radius: 0 !important;
}

/* Legacy Group markup must not introduce a second constrained surface. */
:is(.site-content, .editor-styles-wrapper) .wp-block-group>.wp-block-group__inner-container {
   width: 100%;
   max-width: 100%;
   margin-inline: 0;
}

/* Section copy follows the same canvas as native Columns. Keep article and
   guide text measures, and explicitly configured Group layouts, intact. */
:is(.mie-page-content, .feature-page, .mie-home-block-page, .editor-styles-wrapper) .wp-block-group:not(.is-layout-flex):not(.is-layout-grid):not([style*="--wp--style--global--content-size"]):not([style*="--wp--style--global--wide-size"])> :where(h1, h2, h3, h4, h5, h6, p, ul, ol, .blog-faq):not(.alignfull),
:is(.mie-page-content, .feature-page, .mie-home-block-page, .editor-styles-wrapper) .wp-block-group>.wp-block-group__inner-container> :where(h1, h2, h3, h4, h5, h6, p, ul, ol, .blog-faq):not(.alignfull) {
   width: calc(100% - var(--mie-gutter) * 2);
   max-width: 1760px;
   margin-inline: auto;
}

/* These components already supply an inner shell and responsive gutters.
   Do not constrain their outer wrapper a second time, including in Groups. */
:is(.site-content, .editor-styles-wrapper) :is(.mie-news-slider.mie-news-slider, .mie-resources-listing.mie-resources-listing) {
   width: 100%;
   max-width: none;
   margin-inline: auto;
}

/* Selecting a background gives native blocks the same rounded panel treatment.
   Low specificity allows explicit block border settings to take precedence. */
:where(.site-content, .editor-styles-wrapper) :where(.has-background):not(.wp-block-button__link, .wp-block-group) {
   border-radius: clamp(22px, 2.6vw, 48px);
}

/* Fixed theme spacing also overrides previously saved block padding. */
:is(.site-content, .editor-styles-wrapper) :is(.wp-block-group, [class*="wp-block-"], .wp-block, p, h1, h2, h3, h4, h5, h6).has-background:not(.wp-block-button__link) {
   padding-block: 100px !important;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-columns.has-background>.wp-block-column:not(.has-background),
:is(.site-content, .editor-styles-wrapper) .wp-block-group.has-background .wp-block-columns>.wp-block-column:not(.has-background) {
   --mie-column-padding: 100px;
   padding: var(--mie-column-padding) !important;
}

/* Individual background cards use half the section padding. */
:is(.site-content, .editor-styles-wrapper) .wp-block-columns>.wp-block-column.has-background {
   --mie-column-padding: 50px;
   padding: var(--mie-column-padding) !important;
}

/* Short browser viewports halve vertical column spacing, preserving gutters. */
@media (max-height: 900px) {
   :where(.site-content, .mie-entry-content, .editor-styles-wrapper) {
      --mie-columns-section-padding: 75px;
   }

   :is(.site-content, .editor-styles-wrapper) .wp-block-columns.has-background {
      padding-block: 50px !important;
   }

   :is(.site-content, .editor-styles-wrapper) .wp-block-columns.has-background>.wp-block-column:not(.has-background),
   :is(.site-content, .editor-styles-wrapper) .wp-block-group.has-background .wp-block-columns>.wp-block-column:not(.has-background),
   :is(.site-content, .editor-styles-wrapper) .wp-block-columns>.wp-block-column.has-background {
      padding-block: calc(var(--mie-column-padding) / 2) !important;
   }
}

/* Nested content rows already sit inside a padded column. A distant Group
   background must not add section padding to every inner column again. */
:is(.site-content, .editor-styles-wrapper) .wp-block-column .wp-block-columns:not(.has-background) {
   width: 100%;
   max-width: 100%;
   margin-inline: 0;
   padding: 0 !important;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-column .wp-block-columns:not(.has-background)>.wp-block-column:not(.has-background) {
   --mie-column-padding: 0px;
   padding: 0 !important;
}

/* Nested rows already have a gap between their columns. Do not add the
   section gutter to the first column's inner edge, even on a background row. */
@media (min-width: 782px) {
   :is(.site-content, .editor-styles-wrapper) .wp-block-column .wp-block-columns > .wp-block-column:first-child:not(.has-background) {
      padding-inline-end: 0 !important;
   }
}

/* Meeting rows use the parent section spacing without extra column padding. */
:is(.site-content, .editor-styles-wrapper) .wp-block-columns:has(> .wp-block-column > .meetings-iframe-container) > .wp-block-column:not(.has-background) {
   padding: 0 !important;
}

:is(.site-content, .editor-styles-wrapper) .meetings-iframe-container > iframe {
   display: block;
   border-radius: clamp(22px, 2.6vw, 48px);
}

/* A closing logo strip supplies its own bottom spacing. Include the ACF
   editor wrapper and remove both levels of native column padding. */
:is(.site-content, .editor-styles-wrapper) :is(.wp-block-column, .wp-block-columns):has(> :is(.mie-logotypes, [data-type="acf/mie-logotypes"]):last-child,
   > .wp-block-column:last-child > :is(.mie-logotypes, [data-type="acf/mie-logotypes"]):last-child) {
   padding-bottom: 0 !important;
}

/* Add mie-transition-top / mie-transition-bottom to the first / last Columns
   block inside a Group. The Group is the containing surface, including gutters.
   Keep the Columns outside a stacking context so the paint sits behind its
   own background as well as the cards, but above the Group background. */
:is(.site-content, .editor-styles-wrapper) .wp-block-group:has(> .mie-transition-top, > .mie-transition-bottom, > .wp-block-group__inner-container > .mie-transition-top, > .wp-block-group__inner-container > .mie-transition-bottom) {
   container-type: inline-size;
   isolation: isolate;
   --mie-transition-edge: 0px;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-group.has-background:has(> .mie-transition-top, > .mie-transition-bottom, > .wp-block-group__inner-container > .mie-transition-top, > .wp-block-group__inner-container > .mie-transition-bottom) {
   --mie-transition-edge: 100px;
}

:is(.site-content, .editor-styles-wrapper) :is(.mie-transition-top, .mie-transition-bottom) {
   position: relative;
   z-index: auto;
   isolation: auto;
   overflow: visible;
}

:is(.site-content, .editor-styles-wrapper) .mie-transition-top {
   margin-block-start: 0 !important;
}

:is(.site-content, .editor-styles-wrapper) .mie-transition-bottom {
   margin-block-end: 0 !important;
}

:is(.site-content, .editor-styles-wrapper) .mie-transition-top::before,
:is(.site-content, .editor-styles-wrapper) .mie-transition-bottom::after {
   content: '';
   position: absolute;
   left: calc(50% - 50cqw);
   width: 100cqw;
   background: var(--mie-navy);
   pointer-events: none;
   z-index: -1;
}

:is(.site-content, .editor-styles-wrapper) .mie-transition-top::before {
   top: calc(-1 * var(--mie-transition-edge, 0px));
   bottom: 50%;
}

:is(.site-content, .editor-styles-wrapper) .mie-transition-bottom::after {
   top: 50%;
   bottom: calc(-1 * var(--mie-transition-edge, 0px));
}

/* Narrow copy keeps the left edge of its containing content canvas.
   Compute the canvas inset before applying the smaller text measure. */
:is(.mie-entry-content, .mie-page-content)>.is-style-narrow {
   --mie-narrow-inset: max(var(--mie-gutter), calc((100% - 860px) / 2));
}

:is(.feature-page, .mie-home-block-page)>.is-style-narrow,
.editor-styles-wrapper .is-root-container>.is-style-narrow {
   --mie-narrow-inset: max(var(--mie-gutter), calc((100% - 1760px) / 2));
}

.overview-page>.is-style-narrow,
.editor-styles-wrapper:has(.mie-overview-block) .is-root-container>.is-style-narrow {
   --mie-narrow-inset: max(var(--mie-gutter), calc((100% - 1760px) / 2));
}

:is(.site-content, .editor-styles-wrapper) .wp-block-group.is-layout-constrained>.is-style-narrow {
   --mie-narrow-inset: max(0px, calc((100% - var(--wp--style--global--content-size, 860px)) / 2));
}

:is(.mie-page-content, .feature-page, .mie-home-block-page, .editor-styles-wrapper) .wp-block-group:not(.is-layout-flex):not(.is-layout-grid):not([style*="--wp--style--global--content-size"]):not([style*="--wp--style--global--wide-size"])>.is-style-narrow,
:is(.mie-page-content, .feature-page, .mie-home-block-page, .editor-styles-wrapper) .wp-block-group>.wp-block-group__inner-container>.is-style-narrow {
   --mie-narrow-inset: max(var(--mie-gutter), calc((100% - 1760px) / 2));
}

:is(.site-content, .editor-styles-wrapper) :is(h1, h2, h3, h4, h5, h6, p).is-style-narrow {
   max-width: min(900px, calc(100% - 2 * var(--mie-narrow-inset, 0px))) !important;
   margin-inline-start: var(--mie-narrow-inset, 0px) !important;
   margin-inline-end: 0 !important;
}

:is(.site-content, .editor-styles-wrapper) :is(h1, h2, h3, h4, h5, h6, p).is-style-narrow.has-text-align-center {
   margin-inline: auto !important;
}

/* Theme surfaces own text contrast, including previously saved white text.
   Nested theme backgrounds reset the inherited contrast color. Buttons retain theirs. */
:is(.has-light-background-color, .has-paper-background-color, .has-white-background-color, .has-cyan-background-color) {
   --mie-surface-text: #000;
   color: var(--mie-surface-text) !important;
}

:is(.has-navy-background-color, .has-deep-navy-background-color, .has-ink-background-color, .has-red-background-color) {
   --mie-surface-text: #fff;
   color: var(--mie-surface-text) !important;
}

:is(.has-light-background-color, .has-paper-background-color, .has-white-background-color, .has-cyan-background-color, .has-navy-background-color, .has-deep-navy-background-color, .has-ink-background-color, .has-red-background-color) :is(h1, h2, h3, h4, h5, h6, p, ul, ol, li, .wp-block-column, .wp-block-group) {
   color: var(--mie-surface-text) !important;
}

/* Keep CTAs distinct from red Columns surfaces, including saved button colors. */
:is(.site-content, .editor-styles-wrapper) :is(.wp-block-columns, .wp-block-column).has-red-background-color :is(.wp-block-button__link, .mie-button) {
   background: #fff !important;
   color: #000 !important;
   border-color: transparent !important;
}

:is(.site-content, .editor-styles-wrapper) :is(.wp-block-columns, .wp-block-column).has-red-background-color :is(.wp-block-button__link, .mie-button):is(:hover, :focus-visible) {
   background: var(--mie-navy, #0a2038) !important;
   color: #fff !important;
}

/* Native List block style; available in both the editor and frontend. */
ul.is-style-mie-checklist {
   list-style: none;
   padding-inline-start: 0;
}

ul.is-style-mie-checklist>li {
   position: relative;
   padding-inline-start: 2em;
   margin-block: 1em;
   font-weight: 600;
   line-height: 1.6;
}

ul.is-style-mie-checklist>li::before {
   content: '';
   position: absolute;
   inset-inline-start: 0;
   top: .25em;
   display: block;
   width: 1.15em;
   height: 1.15em;
   background-color: currentColor;
   -webkit-mask: url('images/checkbox.svg') center / contain no-repeat;
   mask: url('images/checkbox.svg') center / contain no-repeat;
}

/* Arrow list variant uses the shared long arrow, independently of text color. */
:is(ul, ol).is-style-mie-arrows {
   list-style: none;
   padding-inline-start: 0;
}

:is(ul, ol).is-style-mie-arrows > li {
   position: relative;
   padding-inline-start: 48px;
   margin-block: 1em;
   font-weight: 600;
   line-height: 1.6;
}

:is(ul, ol).is-style-mie-arrows > li::before {
   content: '';
   position: absolute;
   inset-inline-start: 0;
   top: calc(.8em - 6.5px);
   display: block;
   width: 32px;
   height: 13px;
   background: var(--mie-cyan, #00d9ff);
   -webkit-mask: url('images/arrow-long.svg') center / contain no-repeat;
   mask: url('images/arrow-long.svg') center / contain no-repeat;
}

/* Direction-aware navigation; specificity also covers the home hero overlay. */
body .mie-site-header.is-scroll-fixed {
   position: fixed;
   inset: var(--mie-header-offset, 0px) 0 auto;
   z-index: 100;
   transform: translateY(calc(-100% - var(--mie-header-offset, 0px) - var(--mie-header-gap, 24px) - 14px));
   box-shadow: 0 6px 20px rgba(3, 21, 38, 0);
   transition: transform .25s ease, box-shadow .25s ease;
}

body .mie-site-header.is-scroll-fixed.is-scrolled {
   box-shadow: 0 6px 20px rgba(3, 21, 38, .18);
}

body .mie-site-header.is-scroll-fixed.is-scroll-visible {
   transform: translateY(0);
}

@media(prefers-reduced-motion:reduce) {
   body .mie-site-header.is-scroll-fixed {
      transition: none;
   }
}

/* Shared eyebrow spacing across frontend and editor, including block typography overrides. */
:is(.home-eyebrow, .feature-eyebrow, .mie-case-eyebrow, .mie-team__eyebrow, .mie-listing-eyebrow, .mie-explorer-eyebrow, .mie-logotypes-topline) {
   margin-bottom: 3px !important;
}

/* Hero eyebrows need slightly more space before the headline. */
:is(.mie-feature-hero, .feature-hero, .overview-hero, .home-hero, .mie-default-hero, .mie-case-hero, .mie-case-fallback) :is(.home-eyebrow, .feature-eyebrow, .mie-case-eyebrow, .mie-team__eyebrow, .mie-listing-eyebrow, .mie-explorer-eyebrow, .mie-logotypes-topline) {
   margin-bottom: 8px !important;
}

/* Let hero artwork begin behind the navigation and announcement. */
body.mie-hero-overlay .mie-site-header {
   position: absolute;
   inset: 0 0 auto;
}

body.mie-hero-overlay .mie-site-header.is-scroll-fixed {
   position: fixed;
   top: var(--mie-header-offset, 0px);
}

body.mie-hero-overlay .mie-announcement {
   display: block;
   position: absolute;
   inset: var(--mie-announcement-top, 108px) 0 auto;
   z-index: 19;
   margin-block: 0;
}

body.mie-hero-overlay.admin-bar .mie-announcement {
   top: calc(var(--mie-announcement-top, 108px) + 32px);
}

@media(max-width:782px) {
   body.mie-hero-overlay.admin-bar .mie-announcement {
      top: calc(var(--mie-announcement-top, 108px) + 46px);
   }
}

/* Keep browser-default small print and superscripts legible. */
:where(.site-content, .mie-site-header, .mie-site-footer, .mie-announcement, .editor-styles-wrapper) :is(small, sub, sup) {
   font-size: max(14px, .8em);
}

.mie-arrow-long {
   display: inline-block;
   flex: none;
   width: 32px;
   height: 13px;
   background: currentColor;
   -webkit-mask: url('images/arrow-long.svg') center / contain no-repeat;
   mask: url('images/arrow-long.svg') center / contain no-repeat;
}

/* Pointer clicks may transfer focus (TOC, load more) without painting a ring. */
:where(.site-content, .mie-site-header, .mie-site-footer, .mie-announcement) :focus:not(:focus-visible),
html[data-mie-input="pointer"] :where(.site-content, .mie-site-header, .mie-site-footer, .mie-announcement) :focus,
html[data-mie-input="pointer"] .mie-resources-listing .mie-listing-card:focus-within {
   outline: none !important;
}

:where(.site-content) :is(h1, h2, h3, h4, h5, h6)[tabindex]:focus-visible {
   outline: 3px solid var(--mie-cyan);
   outline-offset: 5px;
}

/* Reserve the actual overlay height plus breathing room in non-home heroes. */
body.mie-hero-overlay:not(:has(.mie-announcement)) {
   --mie-announcement-height: 0px;
}

body.mie-hero-overlay:not(.home):not(.mie-home-static-template) {
   --mie-hero-top-space: calc(var(--mie-announcement-top, 108px) + var(--mie-announcement-height, 64px) + clamp(48px, 5vw, 88px));
}

body.mie-hero-overlay:not(.home):not(.mie-home-static-template) :is(.mie-feature-block.mie-feature-hero, .overview-page .overview-hero, .mie-text-form) {
   padding-top: var(--mie-hero-top-space);
}

/* Keep header clearance outside the shared text/image row so artwork starts
   at the eyebrow and its height includes only the actual hero content. */
body.mie-hero-overlay:not(.home):not(.mie-home-static-template) .mie-default-hero-layout {
   padding-top: calc(42px + var(--mie-hero-top-space));
}

body.mie-hero-overlay:not(.home):not(.mie-home-static-template) .mie-case-hero-copy {
   padding-top: var(--mie-hero-top-space);
}

/* Native Gutenberg quotes share the ACF quote typography without a card. */
:is(.site-content, .editor-styles-wrapper) .wp-block-quote {
   margin-inline: 0;
   padding: 0;
   border: 0;
   background: transparent;
   font-family: 'aptos', Arial, sans-serif;
   font-size: clamp(21px, 2vw, 32px);
   font-weight: 600;
   font-style: normal;
   line-height: 1.4;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-quote::before {
   content: '“';
   display: block;
   height: 50px;
   margin: 0 0 8px;
   color: var(--mie-cyan, #00D9FF);
   font-family: Georgia, serif;
   font-size: 100px;
   font-weight: 400;
   font-style: normal;
   line-height: 1;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-quote>p {
   font: inherit;
   margin: 0 0 .7em;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-quote> :last-child {
   margin-bottom: 0;
}

:is(.site-content, .editor-styles-wrapper) .wp-block-quote cite {
   display: block;
   margin-top: 24px;
   font: 400 16px/1.6 'aptos', Arial, sans-serif;
}

/* Animate anchor navigation unless reduced motion is requested. */
html {
   scroll-behavior: smooth;
}

@media(prefers-reduced-motion:reduce) {
   html {
      scroll-behavior: auto;
   }
}

/* Compact navigation, including tablets and narrow desktop windows. */
.mie-header-panel {
   display: contents;
}

.mie-menu-toggle {
   display: none;
}

@media (max-width:1200px) {
   body .mie-site-header {
      flex-wrap: nowrap;
      justify-content: space-between;
      gap: 12px;
   }

   .mie-site-header.has-mobile-menu .mie-menu-toggle {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 5px;
      flex-shrink: 0;
      width: 48px;
      height: 48px;
      padding: 12px;
      border: 0;
      border-radius: 12px;
      background: transparent;
      color: #fff;
      cursor: pointer;
   }

   .mie-menu-toggle span {
      display: block;
      width: 24px;
      height: 2px;
      background: currentColor;
   }

   .mie-menu-toggle[aria-expanded="true"] span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
   }

   .mie-menu-toggle[aria-expanded="true"] span:nth-child(2) {
      opacity: 0;
   }

   .mie-menu-toggle[aria-expanded="true"] span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
   }

   .mie-menu-toggle:focus-visible {
      outline: 2px solid var(--mie-cyan);
      outline-offset: 3px;
   }

   .mie-site-header.has-mobile-menu .mie-header-panel {
      display: none;
      position: absolute;
      top: calc(100% + 10px);
      left: 0;
      right: 0;
      padding: 20px;
      max-height: calc(100dvh - var(--mie-header-offset, 0px) - var(--mie-header-gap, 24px) - 100px);
      overflow-y: auto;
      overscroll-behavior: contain;
      border-radius: 20px;
      background: var(--mie-deep-navy, #051323);
      color: #fff;
      box-shadow: 0 16px 40px #03152655;
   }

   .mie-site-header.has-mobile-menu.is-menu-open .mie-header-panel {
      display: block;
   }

   .mie-site-header .mie-primary-menu {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 6px;
   }

   .mie-site-header .mie-primary-menu>li {
      position: relative;
      display: flex;
      flex-wrap: wrap;
   }

   .mie-site-header .mie-primary-menu>li>a {
      flex: 1;
      min-width: 0;
      min-height: 48px;
      padding: 12px;
      font-size: 16px;
      line-height: 1.5;
      overflow-wrap: anywhere;
   }

   .mie-site-header .mie-submenu-toggle {
      width: 48px;
      height: 48px;
      flex-shrink: 0;
      background: #ffffff0a;
   }

   .mie-site-header .mie-primary-menu .sub-menu {
      position: static;
      flex-basis: 100%;
      width: 100%;
      max-width: none;
      max-height: none;
      margin: 4px 0 8px !important;
      padding: 8px;
      background: #ffffff0a;
      box-shadow: none;
   }

   .mie-site-header .sub-menu a {
      font-size: 16px;
      min-height: 44px;
   }

   .mie-site-header .mie-header-actions {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin: 20px 0 0;
   }

   .mie-site-header .mie-header-actions .mie-button {
      display: block;
      padding: 14px;
      font-size: 16px;
      text-align: center;
   }

   .mie-site-header:not(.has-mobile-menu) {
      flex-wrap: wrap;
   }
}

/* Shared rounding for Gutenberg and form action buttons. */
:is(.site-content, .editor-styles-wrapper, .mie-site-header, .mie-site-footer, .mie-modal) :is(.wp-block-button__link, .wp-element-button, input[type="submit"], input[type="button"], input[type="reset"], button[type="submit"]) {
   border-radius: var(--mie-button-radius, 100px);
}

/* Compact navigation below 1500px; retain the existing mobile breakpoint. */
@media (max-width:1499px) {
   .mie-site-header nav a {
      font-size: 14px;
   }

   .mie-site-header .mie-brand img {
      width: 140px;
      height: 38px;
   }
}

@media (min-width:1201px) and (max-width:1499px) {
   .mie-site-header {
      gap: 18px;
   }

   .mie-site-header .mie-primary-menu {
      column-gap: 9px;
   }

   .mie-site-header .mie-submenu-toggle {
      width: 30px;
   }

   .mie-site-header .mie-header-actions {
      gap: 9px;
   }

   .mie-site-header .mie-header-actions .mie-button {
      padding: 8px 11px;
   }
}

@media (max-width:1200px) {

   .mie-site-header .mie-primary-menu>li>a,
   .mie-site-header .sub-menu a {
      font-size: 15px;
   }

   .mie-site-header .mie-header-actions .mie-button {
      padding: 12px;
   }
}

@media (max-width:600px) {
   .mie-site-header .mie-brand img {
      width: 110px;
      height: 30px;
   }
}

/* Separate text sections, but keep eyebrows, bylines and post dates attached. */
:is(.site-content, .editor-styles-wrapper) p:not([class*="eyebrow"]):not(.is-style-byline):not(.mie-post-meta)+ :is(h1, h2, h3, h4, h5, h6) {
   margin-block-start: clamp(48px, 5vw, 88px);
}

/* Structured footer: every primary navigation branch owns a column. */
.mie-site-footer {
   color: #fff;
   padding-block: clamp(56px, 6vw, 104px) 32px;
}

.mie-site-footer .mie-footer-top {
   display: grid;
   grid-template-columns: minmax(220px, .8fr) minmax(0, 3fr);
   gap: clamp(40px, 5vw, 88px);
   padding-bottom: clamp(48px, 5vw, 80px);
}

.mie-footer-brand .mie-brand img {
   width: 190px;
   height: auto;
}

.mie-footer-brand p {
   margin: 24px 0;
   max-width: 270px;
   line-height: 1.6;
}

.mie-footer-navigation {
   min-width: 0;
}

.mie-site-footer .mie-footer-menu {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
   align-items: start;
   gap: 32px 24px;
   margin: 0;
}

.mie-footer-menu>li {
   min-width: 0;
}

.mie-footer-menu>li> :is(a, .mie-footer-label) {
   display: block;
   color: #fff;
   font-size: 17px;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: .04em;
   line-height: 1.5;
   font-family: 'Babcock', Arial, sans-serif;
}

.mie-site-footer .mie-footer-menu .sub-menu {
   display: grid;
   gap: 14px;
   padding: 22px 0 0;
   margin: 0;
   font-size: 15px;
   line-height: 1.55;
}

.mie-site-footer .mie-footer-menu .sub-menu .sub-menu {
   padding: 12px 0 0 14px;
   gap: 10px;
}

.mie-footer-menu .sub-menu :is(a, .mie-footer-label) {
   color: #fff;
}

.mie-site-footer a {
   text-decoration: none;
   overflow-wrap: anywhere;
}

.mie-site-footer a:hover {
   color: var(--mie-cyan);
   text-decoration: underline;
   text-underline-offset: 4px;
}

.mie-footer-social,
.mie-footer-legal {
   display: flex;
   flex-wrap: wrap;
   gap: 16px 24px;
   padding: 0;
   margin: 0;
   list-style: none;
   font-size: 15px;
}

.mie-footer-contact {
   display: grid;
   gap: 10px;
   margin-top: 28px;
   font-size: 15px;
   font-style: normal;
   color: #fff;
}

.mie-site-footer .mie-footer-bottom {
   align-items: baseline;
   justify-content: space-between;
   gap: 16px 24px;
   border-color: #25425f;
   line-height: 1.6;
}

.mie-footer-bottom .mie-footer-legal {
   font-size: inherit;
}

.mie-site-footer .mie-footer-bottom > span {
   opacity: .6;
}

.mie-site-footer .mie-footer-bottom a {
   color: #fff;
   opacity: .6;
   transition: opacity .2s ease;
}

.mie-site-footer .mie-footer-bottom a:hover,
.mie-site-footer .mie-footer-bottom a:focus-visible {
   color: #fff;
   opacity: 1;
}

@media (max-width:1100px) {
   .mie-site-footer .mie-footer-top {
      grid-template-columns: 1fr;
   }

   .mie-footer-brand p {
      max-width: 380px;
   }
}

@media (max-width:600px) {
   .mie-site-footer .mie-footer-menu {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 32px 22px;
   }

   .mie-footer-menu>li> :is(a, .mie-footer-label) {
      font-size: 14px;
   }

   .mie-footer-bottom {
      flex-direction: column;
   }
}

@media (max-width:360px) {
   .mie-site-footer .mie-footer-menu {
      grid-template-columns: 1fr;
   }
}

/* Iconoir social links, served locally with no icon-font or CDN dependency. */
/* Offset the centered 24px icons inside their 44px touch targets. */
.mie-footer-social {
   gap: 8px;
   margin-inline-start: -10px;
}

/* Facebook adds 5.25px of visible left inset within the Iconoir artwork. */
.mie-footer-social:has(> li:first-child .mie-social-icon--facebook) {
   margin-inline-start: -15.25px;
}

.mie-footer-social a {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-width: 44px;
   min-height: 44px;
   color: #fff;
}

.mie-social-icon {
   display: block;
   width: 24px;
   height: 24px;
   background: currentColor;
   -webkit-mask: var(--mie-social-icon) center / contain no-repeat;
   mask: var(--mie-social-icon) center / contain no-repeat;
}

.mie-social-icon--linkedin {
   --mie-social-icon: url('assets/iconoir/linkedin.svg');
}

.mie-social-icon--facebook {
   --mie-social-icon: url('assets/iconoir/facebook.svg');
}

.mie-social-icon--instagram {
   --mie-social-icon: url('assets/iconoir/instagram.svg');
}

.mie-social-icon--youtube {
   --mie-social-icon: url('assets/iconoir/youtube.svg');
}

.mie-social-icon--x {
   --mie-social-icon: url('assets/iconoir/x.svg');
}

/* Preserve action-button layout when populated by a WordPress menu. */
.mie-header-buttons-menu {
   list-style: none;
   padding: 0;
   margin-block: 0;
}

.mie-header-buttons-menu>li {
   margin: 0;
   padding: 0;
}

.mie-header-buttons-menu .mie-button {
   display: block;
   text-align: center;
}

/* Native accordions match the FAQ trigger and its exact 1rem / 2px icon. */
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading { margin: 0; }
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle {
   background: transparent;
   border: 0;
   border-radius: 0;
   padding: 1.25rem 0;
   gap: 1.5rem;
   text-decoration: none;
   box-shadow: none;
}
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle:is(:hover, :focus-visible) {
   background: transparent;
   color: var(--mie-cyan, #00d9ff);
   text-decoration: none;
   box-shadow: none;
}
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle:is(:hover, :focus-visible) .wp-block-accordion-heading__toggle-title { text-decoration: none; }
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon {
   position: relative;
   flex: 0 0 1rem;
   width: 1rem;
   height: 1rem;
   margin: 0;
   transform: none !important;
   rotate: none !important;
   visibility: hidden;
}
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon::before,
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon::after {
   content: '';
   position: absolute;
   visibility: visible;
   background: currentColor;
   transition: transform 180ms ease;
}
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon::before { left: 0; top: calc(50% - 1px); width: 100%; height: 2px; }
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon::after { left: calc(50% - 1px); top: 0; width: 2px; height: 100%; }
:is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle[aria-expanded="true"] .wp-block-accordion-heading__toggle-icon::after { display: none; }
@media (prefers-reduced-motion: reduce) {
   :is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon::before,
   :is(.site-content, .editor-styles-wrapper) .wp-block-accordion-heading__toggle-icon::after { transition: none; }
}

/* Consistent primary/secondary actions across all editable hero variants. */
.mie-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 32px; }
.mie-feature-hero .mie-hero-actions { justify-content: center; }
.mie-hero-actions .mie-button { margin: 0; }
.mie-hero-actions .mie-hero-button-secondary { background: #fff; color: var(--mie-navy, #0a2038); border-color: #fff; }
.mie-hero-actions .mie-hero-button-secondary:is(:hover, :focus-visible) { background: #ab1927; border-color: #ab1927; color: #fff; }
@media (max-width: 600px) { .mie-hero-actions { gap: 12px; } }

/* CookieYes action buttons: override the banner's inline blue styles. */
body .cky-consent-container .cky-btn,
body .cky-preference-center .cky-btn {
   background: var(--mie-red, #cf2030) !important;
   border-color: var(--mie-red, #cf2030) !important;
   color: #fff !important;
   font-size: 14px !important;
   opacity: 1 !important;
}
body .cky-consent-container .cky-btn:hover,
body .cky-preference-center .cky-btn:hover {
   background: #ab1927 !important;
   border-color: #ab1927 !important;
   color: #fff !important;
}
body .cky-consent-container .cky-btn:focus-visible,
body .cky-preference-center .cky-btn:focus-visible {
   outline: 3px solid var(--mie-navy, #0a2038) !important;
   outline-offset: 3px !important;
}

/* CookieYes floating consent preferences button. */
body .cky-btn-revisit-wrapper {
   background: var(--mie-red, #cf2030) !important;
}
body .cky-btn-revisit-wrapper:hover {
   background: #ab1927 !important;
}
body .cky-btn-revisit-wrapper .cky-btn-revisit {
   background: transparent !important;
}
body .cky-btn-revisit-wrapper .cky-btn-revisit:focus-visible {
   outline: 3px solid var(--mie-cyan, #00d9ff) !important;
   outline-offset: 3px !important;
}

/* Reserve the verified logo ratios before OptiMonk campaign images decode.
   Keep campaign widths, triggers, typography and positioning owned by OptiMonk. */
#om-campaign-8 img#ele_x6dsTtAi2R {
   aspect-ratio: auto 893 / 234;
   height: auto;
}
#om-campaign-4 img#ele_jCNIjTQ-gVx,
#om-campaign-4 img#ele_7VWECkN3l_ {
   aspect-ratio: auto 1 / 1;
   height: auto;
}
