/* Shared layout for Astra. Keep component colors and existing font families. */
body.myshop-typography {
  --ast-body-line-height: 1.7;
  --myshop-focus: var(--ast-global-color-0, #046bd2);
  --myshop-border: #cbd5e1;
  line-height: 1.7;
}

/* Headings: a consistent scale without outlines or decorative shadows. */
body.myshop-typography.elementor-default .elementor :is(h1, h2, h3, h4, h5, h6).elementor-heading-title {
  line-height: 1.22;
  letter-spacing: -0.015em;
  text-wrap: balance;
  overflow-wrap: break-word;
  -webkit-text-stroke-width: 0;
  text-shadow: none;
}
body.myshop-typography.elementor-default .elementor h1.elementor-heading-title {
  font-size: clamp(2rem, 1.4rem + 2.8vw, 3.5rem);
  line-height: 1.12;
}
body.myshop-typography.elementor-default .elementor :is(h2.elementor-heading-title, h2.hfe-infocard-title) {
  font-size: clamp(1.625rem, 1.2rem + 1.6vw, 2.375rem);
  line-height: 1.25;
}
body.myshop-typography.elementor-default .elementor :is(h3.elementor-heading-title, h3.hfe-infocard-title) {
  font-size: clamp(1.125rem, 1rem + 0.7vw, 1.5rem);
  line-height: 1.4;
}
body.myshop-typography .entry-content > :is(h1, h2, h3, h4) {
  line-height: 1.25;
  margin-block: 1.5em 0.65em;
  overflow-wrap: break-word;
}

/* Reading rhythm and long links, limited to ordinary text content. */
body.myshop-typography .elementor-widget-text-editor {
  min-width: 0;
  font-size: clamp(1rem, 0.96rem + 0.15vw, 1.0625rem);
  line-height: 1.75;
}
body.myshop-typography :is(.elementor-widget-text-editor, .hfe-infocard-text) p,
body.myshop-typography .entry-content > p {
  line-height: 1.75;
  margin-block: 0 1.1em;
}
body.myshop-typography :is(.elementor-widget-text-editor, .hfe-infocard-text) p:last-child {
  margin-block-end: 0;
}
body.myshop-typography:not(.elementor-page) .entry-content > :is(p, ul, ol, blockquote) {
  max-inline-size: 72ch;
}
body.myshop-typography .elementor-widget-text-editor :is(ul, ol) {
  padding-inline-start: 1.4em;
  line-height: 1.75;
}
body.myshop-typography .elementor-widget-text-editor li + li {
  margin-block-start: 0.35em;
}
body.myshop-typography .elementor-widget-text-editor a {
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}
body.myshop-typography :is(.elementor-widget-text-editor, .hfe-infocard-text) {
  overflow-wrap: break-word;
}

/* Menus retain the theme's responsive behavior and color treatment. */
body.myshop-typography #masthead .main-header-menu > .menu-item > .menu-link {
  min-height: 44px;
  line-height: 1.35;
}
body.myshop-typography #masthead .sub-menu .menu-link {
  min-height: 44px;
  padding: 12px 16px;
  line-height: 1.4;
}
body.myshop-typography #masthead .menu-toggle {
  min-width: 44px;
  min-height: 44px;
}

/* Contact form controls: readable text, generous spacing, visible focus. */
body.myshop-typography div.wpforms-container .wpforms-form :is(
  input[type="text"], input[type="email"], input[type="tel"],
  input[type="url"], input[type="number"], select, textarea
) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--myshop-border);
  border-radius: 8px;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
}
body.myshop-typography div.wpforms-container .wpforms-form textarea {
  min-height: 160px;
  resize: vertical;
}
body.myshop-typography div.wpforms-container .wpforms-field-label {
  margin-bottom: 8px;
  font-size: 1rem;
  line-height: 1.4;
}
body.myshop-typography div.wpforms-container .wpforms-field {
  padding-block: 10px;
}
body.myshop-typography div.wpforms-container button.wpforms-submit {
  min-height: 48px;
  padding: 12px 24px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.4;
}
body.myshop-typography :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--myshop-focus);
  outline-offset: 3px;
}

/* Ordinary content tables and images can shrink without clipping. */
body.myshop-typography .wp-block-table {
  max-width: 100%;
  overflow-x: auto;
}
body.myshop-typography :is(.wp-block-image, .elementor-widget-text-editor) img {
  max-width: 100%;
  height: auto;
}

/* Footer hierarchy and comfortable link spacing. */
body.myshop-typography #colophon :is(h3, h4).elementor-heading-title {
  font-size: 1.125rem;
  line-height: 1.35;
  letter-spacing: 0;
}
body.myshop-typography #colophon .elementor-widget-text-editor {
  font-size: 0.9375rem;
}
body.myshop-typography #colophon :is(.menu-item > a, .elementor-icon-list-item > a) {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  line-height: 1.5;
}
body.myshop-typography #colophon .hfe-copyright-wrapper {
  font-size: 0.875rem;
  line-height: 1.6;
}

/* Tablet and phone gutters apply only to top-level content sections. */
@media (max-width: 1024px) {
  body.myshop-typography.elementor-default #main .entry-content > .elementor > .elementor-element.e-parent.e-con-boxed {
    --padding-left: 24px;
    --padding-right: 24px;
  }
}
@media (max-width: 767px) {
  body.myshop-typography.elementor-default #main .entry-content > .elementor > .elementor-element.e-parent.e-con-boxed {
    --padding-left: 20px;
    --padding-right: 20px;
  }
  body.myshop-typography.ast-theme-transparent-header #main .entry-content > .elementor > .elementor-element.e-parent:first-child {
    --padding-top: 120px;
    --padding-bottom: 56px;
  }
  body.myshop-typography .elementor-widget-text-editor {
    font-size: 1rem;
  }
  body.myshop-typography #masthead .main-header-menu .menu-link {
    min-height: 44px;
    line-height: 1.4;
  }
  body.myshop-typography #colophon .hfe-copyright-wrapper {
    text-align: center;
  }
}

/* White navigation on product detail headers. */
body.single-product.myshop-typography #masthead #ast-desktop-header .main-header-menu .menu-link,
body.single-product.myshop-typography #masthead #ast-desktop-header .main-header-menu .ast-menu-toggle {
  color: #ffffff !important;
}

/* The wide homepage artwork keeps its own ratio; contact details sit below. */
body.page-id-4713 #main .elementor-4713 > .myshop-home-hero {
  --padding-top: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --padding-right: 0 !important;
  width: 100%;
  max-width: none;
  gap: 0;
}
body.page-id-4713 #main .myshop-home-banner {
  width: 100%;
  max-width: 100%;
  margin: 0;
  line-height: 0;
}
body.page-id-4713 #main .myshop-home-banner img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 2156 / 729;
  object-fit: contain;
}
body.page-id-4713 #main .myshop-home-contact-copy {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
}
body.page-id-4713 #main .myshop-home-contact .elementor-widget-html {
  display: none;
}
body.page-id-4713.myshop-typography.elementor-default .myshop-home-contact h1.elementor-heading-title {
  font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.25rem);
  line-height: 1.25;
}
body.page-id-4713.myshop-typography.elementor-default .myshop-home-contact h3.elementor-heading-title {
  font-size: 1rem;
  line-height: 1.6;
}
body.page-id-4713 #main .myshop-home-qr {
  flex: 0 0 auto;
  width: 36%;
  max-width: 420px;
  margin: 0;
  align-self: center;
}
body.page-id-4713 #main .myshop-home-qr img {
  display: block;
  width: 100%;
  height: auto;
}
body.page-id-4713 #main .myshop-home-contact-buttons .elementor-widget-button {
  width: auto;
  max-width: 100%;
  margin: 0;
}
body.page-id-4713 #main .myshop-home-contact-buttons .elementor-button {
  min-height: 44px;
  font-size: 1rem;
}
@media (max-width: 1200px) {
  body.page-id-4713 #main .myshop-home-contact {
    --padding-left: 56px;
  }
}
@media (max-width: 767px) {
  body.page-id-4713 #main .myshop-home-contact-copy {
    flex: 0 1 auto;
    width: 100%;
  }
  body.page-id-4713 #main .myshop-home-qr {
    width: 100%;
    max-width: 480px;
  }
}
