/* ===== Native Elementor widgets: neutralise Elementor defaults so the design classes on each element win ===== */
/* Specificity (0,2,0): above Elementor&#039;s .e-con / .elementor-widget rules, below the design utilities (0,2,1). */
:where(body.mk-site) .e-con.mk-c {
  --display: block; --flex-direction: row; --flex-wrap: nowrap; --justify-content: normal; --align-items: normal; --align-content: normal;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --width: auto; --min-height: 0px; --height: auto; --position: static; --overflow: visible;
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --padding-block-start: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; --padding-inline-end: 0px;
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --margin-block-start: 0px; --margin-block-end: 0px; --margin-inline-start: 0px; --margin-inline-end: 0px;
  --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; --container-widget-width: auto; --container-widget-flex-grow: 0; --container-widget-align-self: auto;
  --content-width: 100%; --border-radius: 0; --z-index: auto; --text-align: inherit;
  display: block; flex-direction: row; flex-wrap: nowrap; justify-content: normal; align-items: normal; align-content: normal;
  gap: normal; width: auto; min-width: auto; max-width: none; height: auto; min-height: 0; padding: 0; margin: 0;
  position: static; overflow: visible; flex: 0 1 auto; z-index: auto; border-radius: 0; text-align: inherit; align-self: auto;
}
:where(body.mk-site) .e-con.mk-d-inline { display: inline; }
:where(body.mk-site) .elementor-widget.mk-w {
  width: auto; min-width: auto; max-width: none; flex: 0 1 auto; align-self: auto; margin: 0; position: static;
  --container-widget-width: auto; --container-widget-flex-grow: 0; text-align: inherit;
}
:where(body.mk-site) .elementor-widget.mk-d-inline { display: inline; }
:where(body.mk-site) .elementor-widget-button.mk-w { position: relative; }
body.mk-site .e-con.mk-c::before, body.mk-site .e-con.mk-c::after { content: none; }

/* Heading + text editor take their type from the classes on the widget. */
body.mk-site .mk-w .elementor-heading-title {
  font: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; text-transform: inherit;
  text-align: inherit; margin: 0; padding: 0;
}
body.mk-site .mk-w .elementor-heading-title a { color: inherit; }
body.mk-site .mk-txt { color: inherit; }
body.mk-site .mk-txt p { margin: 0; }
body.mk-site .mk-txt.mk-d-inline p { display: inline; }

/* Button widget: the widget wrapper carries the design (fill, padding, radius, flex, gap); the link is see-through. */
body.mk-site .mk-btn .elementor-button { all: unset; display: contents; cursor: pointer; }
body.mk-site .mk-btn .elementor-button::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
body.mk-site .mk-btn .elementor-button-content-wrapper,
body.mk-site .mk-btn .elementor-button-text,
body.mk-site .mk-btn .elementor-button-icon { display: contents; }
body.mk-site .mk-btn .elementor-button-icon svg { display: block; flex-shrink: 0; width: var(--mk-ic, 1rem); height: var(--mk-ic, 1rem); fill: none; }
body.mk-site .mk-btn.mk-icon-end .elementor-button-icon svg { order: 9; }
body.mk-site .mk-btn:has(.elementor-button:focus-visible) { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
body.mk-site .mk-btn.sr-only .elementor-button::after { content: none; }

/* Image widget. */
:where(body.mk-site) .elementor-widget-image.mk-img { text-align: start; }
:where(body.mk-site) .mk-img.mk-fit { width: fit-content; }
body.mk-site .mk-img img {
  display: block; width: auto; height: auto; max-width: 100%; object-fit: inherit; object-position: inherit;
  border-radius: inherit; border: 0; box-shadow: none; vertical-align: top;
}
body.mk-site .mk-img.mk-iw img { width: 100%; }
body.mk-site .mk-img.mk-ih img { height: 100%; }

/* Icon widget. */
body.mk-site .mk-ico .elementor-icon-wrapper,
body.mk-site .mk-ico .elementor-icon { display: contents; color: inherit; font-size: inherit; fill: inherit; }
body.mk-site .mk-ico svg { display: block; width: 100%; height: 100%; }
:where(body.mk-site) .mk-ico.mk-ico24 { width: 24px; height: 24px; }

/* HTML widget (phone demo, comparison table, checklist host). */
:where(body.mk-site) .mk-raw { width: auto; }

/* ===== Nested Accordion: strip Elementor&#039;s look, then rebuild each design variant ===== */
body.mk-site .mk-acc .e-n-accordion { display: block; }
body.mk-site .mk-acc .e-n-accordion-item { border: 0; margin: 0; padding: 0; background: none; }
body.mk-site .mk-acc .e-n-accordion-item-title {
  all: unset; box-sizing: border-box; display: flex; align-items: center; width: 100%; cursor: pointer; list-style: none;
}
body.mk-site .mk-acc .e-n-accordion-item-title::-webkit-details-marker { display: none; }
body.mk-site .mk-acc .e-n-accordion-item-title:focus-visible { outline: 2px solid hsl(var(--primary)); outline-offset: 4px; border-radius: 2px; }
body.mk-site .mk-acc .e-n-accordion-item-title-header { display: contents; }
body.mk-site .mk-acc .e-n-accordion-item-title-text { all: unset; flex: 1 1 auto; }
body.mk-site .mk-acc .e-n-accordion-item-title-icon { all: unset; display: inline-flex; flex-shrink: 0; }
body.mk-site .mk-acc .e-n-accordion-item-title-icon .e-opened { display: none !important; }
body.mk-site .mk-acc .e-n-accordion-item-title-icon .e-closed { display: inline-flex !important; }
body.mk-site .mk-acc .e-n-accordion-item-title-icon svg { display: block; width: 1rem; height: 1rem; fill: none; transition: transform .2s ease; }
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon svg { transform: rotate(180deg); }
body.mk-site .mk-acc .e-n-accordion-item > .e-con { border: 0; }

/* FAQ — "Before your first visit." */
body.mk-site .mk-acc--faq .e-n-accordion-item { border-bottom: 1px solid hsl(var(--border)); }
body.mk-site .mk-acc--faq .e-n-accordion-item-title { justify-content: space-between; padding: 1.25rem 0; font-size: 1.125rem; line-height: 1.75rem; font-weight: 500; text-align: left; }
body.mk-site .mk-acc--faq .e-n-accordion-item-title-icon { color: hsl(var(--muted-foreground)); }

/* Expectations — numbered list. */
body.mk-site .mk-acc--list { counter-reset: mkexp; }
body.mk-site .mk-acc--list .e-n-accordion-item { border-bottom: 1px solid hsl(var(--primary) / .15); counter-increment: mkexp; }
body.mk-site .mk-acc--list .e-n-accordion-item-title {
  min-height: 4rem; gap: .75rem; padding: 1.25rem 0; border-radius: .125rem;
  font-size: 1rem; line-height: 1.375; font-weight: 600; color: hsl(var(--primary));
}
body.mk-site .mk-acc--list .e-n-accordion-item-title::before {
  content: counter(mkexp, decimal-leading-zero); flex-shrink: 0;
  font-size: .75rem; line-height: 1rem; font-weight: 500; color: hsl(var(--muted-foreground));
}
body.mk-site .mk-acc--list .e-n-accordion-item-title-icon svg { width: 1.25rem; height: 1.25rem; }
@media (min-width: 48rem) {
  body.mk-site .mk-acc--list .e-n-accordion-item-title { gap: 1rem; font-size: 17px; }
}

/* Steam cards — "Tile and surface guidance" (+ / − indicator). */
body.mk-site .mk-acc--steam .e-n-accordion-item-title {
  justify-content: space-between; gap: .75rem; min-height: 2.75rem; padding: .5rem 0;
  font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: hsl(var(--primary));
}
body.mk-site .mk-acc--steam .e-n-accordion-item-title-icon { display: none; }
body.mk-site .mk-acc--steam .e-n-accordion-item-title::after { content: "+"; flex: none; font-size: 1.25rem; line-height: 1; }
body.mk-site .mk-acc--steam .e-n-accordion-item[open] > .e-n-accordion-item-title::after { content: "\2212"; }

/* Hero — "Service guarantee and reporting window". */
body.mk-site .mk-acc--hero .e-n-accordion-item-title {
  display: inline-flex; width: auto; gap: .4rem;
  font-size: .8125rem; font-weight: 600; color: hsl(var(--primary));
}
body.mk-site .mk-acc--hero .e-n-accordion-item-title:hover { color: hsl(var(--foreground)); }

/* Hero disclosure sits on a line box like the original <details>. */
body.mk-site .mk-acc--hero .e-n-accordion-item { display: block; }

/* "Compare services / Open comparison" row. */
body.mk-site .mk-acc--compare .e-n-accordion-item-title {
  justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: 1rem 1.25rem;
  font-family: var(--app-font-serif); font-optical-sizing: auto; letter-spacing: -.02em; font-size: 1.25rem; line-height: 1.75rem;
}
body.mk-site .mk-acc--compare .e-n-accordion-item-title-icon { display: none; }
body.mk-site .mk-acc--compare .e-n-accordion-item-title::after {
  content: "Open comparison"; font-family: var(--app-font-sans); letter-spacing: normal;
  font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: hsl(var(--primary));
}
body.mk-site .mk-acc--compare .e-n-accordion-item[open] > .e-n-accordion-item-title::after { content: "Close comparison"; }
@media (min-width: 48rem) { body.mk-site .mk-acc--compare .e-n-accordion-item-title { padding-inline: 1.5rem; } }
/* Icons that the design fills (e.g. review stars). */
body.mk-site .mk-ico.fill-current svg, body.mk-site .mk-btn.fill-current svg { fill: currentColor; }

/* Accordion icons: no line box around the svg (keeps chevrons centred like the original). */
body.mk-site .mk-acc .e-n-accordion-item-title-icon { line-height: 0; }
body.mk-site .mk-acc .e-n-accordion-item-title-icon .e-closed { display: flex !important; }

/* Question list ("Before you book" on FAQ + service pages). */
body.mk-site .mk-acc--qa .e-n-accordion-item-title {
  justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: 1.25rem 0;
  font-size: 1rem; line-height: 1.5rem; font-weight: 600; color: hsl(var(--primary));
}
body.mk-site .mk-acc--qa .e-n-accordion-item-title-icon svg { width: 1.25rem; height: 1.25rem; }

/* divide-y / divide-* classes on an accordion widget draw lines between its items, as in the design. */
body.mk-site .mk-acc.divide-y .e-n-accordion-item:not(:last-child) { border-bottom: 1px solid hsl(var(--border)); }
body.mk-site .mk-acc.divide-primary\/10 .e-n-accordion-item:not(:last-child) { border-bottom-color: hsl(var(--primary) / .1); }
body.mk-site .mk-acc.divide-primary\/15 .e-n-accordion-item:not(:last-child) { border-bottom-color: hsl(var(--primary) / .15); }
body.mk-site .mk-acc--qa .e-n-accordion-item-title-icon, body.mk-site .mk-acc--qa .e-n-accordion-item-title-icon > span { height:1.25rem; width:1.25rem; align-items:center; justify-content:center; }

/* ==========================================================================
   PIXEL-PERFECT ACCORDION FIXES (Replit Reference Alignment)
   - Eliminates iOS/Safari/Chrome native triangular disclosure markers
   - Locks titles and chevrons to brand green #1A4E35 in all states:
     default, open, expanded, hover, active, focus, and mobile-tapped
   - Thin outlined chevron icon pointing down (collapsed) and up (expanded)
   ========================================================================== */
details summary,
summary,
.e-n-accordion-item-title {
  list-style: none !important;
  list-style-type: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

details summary::-webkit-details-marker,
summary::-webkit-details-marker,
details summary::marker,
summary::marker,
.e-n-accordion-item-title::-webkit-details-marker,
.e-n-accordion-item-title::marker {
  display: none !important;
  font-size: 0 !important;
  width: 0 !important;
  height: 0 !important;
  content: "" !important;
}

/* Accordion item & container resets */
body.mk-site .mk-acc .e-n-accordion { display: block; }
body.mk-site .mk-acc .e-n-accordion-item { border: 0; margin: 0; padding: 0; background: none; }

/* Accordion title header flex row */
body.mk-site .mk-acc .e-n-accordion-item-title {
  all: unset !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  cursor: pointer !important;
  list-style: none !important;
  color: #1A4E35 !important;
}

body.mk-site .mk-acc .e-n-accordion-item-title-header {
  display: flex !important;
  align-items: center !important;
  flex: 1 1 auto !important;
}

body.mk-site .mk-acc .e-n-accordion-item-title-text {
  all: unset !important;
  flex: 1 1 auto !important;
  color: #1A4E35 !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  line-height: inherit !important;
}

body.mk-site .mk-acc .e-n-accordion-item-title-icon {
  all: unset !important;
  display: inline-flex !important;
  flex-shrink: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: auto !important;
  color: #1A4E35 !important;
  line-height: 0 !important;
}

body.mk-site .mk-acc .e-n-accordion-item-title-icon .e-opened { display: none !important; }
body.mk-site .mk-acc .e-n-accordion-item-title-icon .e-closed { display: inline-flex !important; }

body.mk-site .mk-acc .e-n-accordion-item-title-icon svg {
  display: block !important;
  width: 1.25rem !important;
  height: 1.25rem !important;
  fill: none !important;
  stroke: #1A4E35 !important;
  color: #1A4E35 !important;
  stroke-width: 2 !important;
  transition: transform .2s ease !important;
}

/* Comprehensive State Enforcement: DEFAULT, HOVER, EXPANDED/OPEN, FOCUS, ACTIVE, TAPPED */
body.mk-site .mk-acc .e-n-accordion-item-title,
body.mk-site .mk-acc .e-n-accordion-item-title:hover,
body.mk-site .mk-acc .e-n-accordion-item-title:focus,
body.mk-site .mk-acc .e-n-accordion-item-title:focus-visible,
body.mk-site .mk-acc .e-n-accordion-item-title:active,
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title,
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title:hover,
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title:focus,
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title:active,
body.mk-site .mk-acc .e-n-accordion-item-title .e-n-accordion-item-title-text,
body.mk-site .mk-acc .e-n-accordion-item-title:hover .e-n-accordion-item-title-text,
body.mk-site .mk-acc .e-n-accordion-item-title:focus .e-n-accordion-item-title-text,
body.mk-site .mk-acc .e-n-accordion-item-title:active .e-n-accordion-item-title-text,
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text,
body.mk-site .mk-acc .e-n-accordion-item-title-icon,
body.mk-site .mk-acc .e-n-accordion-item-title-icon svg,
body.mk-site .mk-acc .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon svg,
body.mk-site .mk-acc .e-n-accordion-item-title:focus .e-n-accordion-item-title-icon svg,
body.mk-site .mk-acc .e-n-accordion-item-title:active .e-n-accordion-item-title-icon svg,
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon svg {
  color: #1A4E35 !important;
  stroke: #1A4E35 !important;
}

/* Thin outlined chevron rotation when expanded */
body.mk-site .mk-acc .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon svg {
  transform: rotate(180deg) !important;
}

/* Specific styling for Expectations list accordion (mk-acc--list) */
body.mk-site .mk-acc--list { counter-reset: mkexp; }
body.mk-site .mk-acc--list .e-n-accordion-item { border-bottom: 1px solid hsl(var(--primary) / .15) !important; counter-increment: mkexp; }
body.mk-site .mk-acc--list .e-n-accordion-item-title {
  min-height: 4rem !important;
  gap: .75rem !important;
  padding: 1.25rem 0 !important;
  font-size: 1rem !important;
  line-height: 1.375 !important;
  font-weight: 600 !important;
  color: #1A4E35 !important;
}
body.mk-site .mk-acc--list .e-n-accordion-item-title::before {
  content: counter(mkexp, decimal-leading-zero) !important;
  flex-shrink: 0 !important;
  font-size: .75rem !important;
  line-height: 1rem !important;
  font-weight: 500 !important;
  color: hsl(var(--muted-foreground)) !important;
}
@media (min-width: 48rem) {
  body.mk-site .mk-acc--list .e-n-accordion-item-title { gap: 1rem !important; font-size: 17px !important; }
}

/* Specific styling for FAQ accordion (mk-acc--faq) */
body.mk-site .mk-acc--faq .e-n-accordion-item { border-bottom: 1px solid hsl(var(--border)) !important; }
body.mk-site .mk-acc--faq .e-n-accordion-item-title {
  justify-content: space-between !important;
  padding: 1.25rem 0 !important;
  font-size: 1.125rem !important;
  line-height: 1.75rem !important;
  font-weight: 500 !important;
  text-align: left !important;
}
