/* JM Preservations Native v1.31.
 * Exact approved design values; selectors adapted only for Elementor's native DOM.
 * Route scope is supplied by the plugin. No remote imports or generated page copy.
 * Important declarations defeat Elementor's neutral/generated widget controls only
 * on the two eligible frontend pages, without changing their stored settings.
 */
body.jm-preservations { --widgets-spacing: 0px; --kit-widget-spacing: 0px; }
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) :where(.e-con),
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer):where(.e-con) {
  --container-default-padding-top: 0px; --container-default-padding-right: 0px;
  --container-default-padding-bottom: 0px; --container-default-padding-left: 0px;
  --container-widget-width: auto; --container-widget-flex-grow: 0;
  --container-widget-align-self: auto; --widgets-spacing: 0px;
  display: block !important; flex: 0 1 auto !important; align-self: auto !important;
  width: 100% !important; max-width: none !important; min-width: 0 !important;
  min-height: 0 !important; margin: 0 !important; padding: 0 !important; gap: 0 !important;
}
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) :where(.e-con) > .e-con-inner,
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer):where(.e-con) > .e-con-inner {
  display: contents !important;
}
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) :where(.elementor-widget) {
  --widgets-spacing: 0px; flex: 0 1 auto !important; min-width: 0 !important;
  max-width: 100%; margin: 0 !important; padding: 0 !important;
  margin-block-end: 0 !important; align-self: auto;
}
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) .elementor-widget-container {
  margin: 0 !important; padding: 0 !important; border: 0; font: inherit;
}
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) .elementor-text-editor { font: inherit; }
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) .elementor-widget-text-editor { font-family: var(--sans); }
body.jm-preservations .elementor-widget-heading .elementor-heading-title { color: inherit; padding: 0; }
body.jm-preservations .elementor-button {
  width: auto; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0 !important;
  background: transparent; box-shadow: none; font-family: var(--sans) !important;
  font-size: inherit; font-weight: inherit; line-height: inherit; color: inherit;
  text-decoration: none !important; white-space: normal;
}
body.jm-preservations .elementor-button-content-wrapper { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; }
body.jm-preservations .elementor-button-icon { display: inline-flex; margin: 0 !important; }
body.jm-preservations .elementor-button-icon :is(i, svg) { width: 1em; height: 1em; font-size: inherit; }
body.jm-preservations .elementor-widget-image :is(a, img) { display: block; }
body.jm-preservations .elementor-widget-image img { max-width: 100%; height: auto; border-radius: 0; }
body.jm-preservations .jm-home-main p { margin: 0; }
body.jm-preservations :is(.jm-button, .nav-item, .nav-cta, .menu-toggle, .card-detail-toggle, .buy-now-button).elementor-widget { width: auto !important; }
body.jm-preservations :is(.jm-hero-caption, .jm-service-item, .jm-project-arrow, .footer-logo, .footer-tagline, .footer-copyright, .footer-review-status).elementor-widget { width: auto !important; }

body.jm-preservations {
  --paper: #f8f5ef !important;
  --paper-deep: #ede7db !important;
  --ink: #153746 !important;
  --blue: #006391 !important;
  --blue-dark: #004d72 !important;
  --stone: #978b84 !important;
  --moss: #35594b !important;
  --moss-deep: #1a3c39 !important;
  --line: rgba(21, 55, 70, 0.16) !important;
  --serif: "DM Serif Display", Georgia, serif !important;
  --sans: "Manrope", Arial, sans-serif !important;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1) !important;
}

body.jm-preservations * {
  box-sizing: border-box !important;
}

html:has(> body.jm-preservations) {
  scroll-behavior: smooth !important;
}

body.jm-preservations {
  margin: 0 !important;
  color: var(--ink) !important;
  background: var(--paper) !important;
  font-family: var(--sans) !important;
  -webkit-font-smoothing: antialiased !important;
}

body.jm-preservations button,
body.jm-preservations a {
  font: inherit !important;
}

body.jm-preservations a {
  color: inherit !important;
  text-decoration: none !important;
}

body.jm-preservations button {
  border: 0 !important;
}

body.jm-preservations img {
  display: block !important;
  max-width: 100% !important;
}

body.jm-preservations .skip-link {
  position: fixed !important;
  z-index: 100 !important;
  top: -4rem !important;
  left: 1rem !important;
  padding: 0.75rem 1rem !important;
  color: #fff !important;
  background: var(--blue) !important;
  transition: top 160ms var(--ease-out) !important;
}

body.jm-preservations .skip-link:focus {
  top: 1rem !important;
}

body.jm-preservations .site-shell {
  overflow: hidden !important;
}

body.jm-preservations .site-header {
  position: sticky !important;
  z-index: 50 !important;
  top: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background: rgba(248, 245, 239, 0.97) !important;
  backdrop-filter: blur(16px) !important;
}

body.jm-preservations .header-inner {
  width: min(100% - 2.5rem, 1280px) !important;
  min-height: 82px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1.5rem !important;
}

body.jm-preservations .brand {
  display: block !important;
  width: 177px !important;
}

body.jm-preservations .brand img {
  width: 100% !important;
  height: auto !important;
  mix-blend-mode: multiply !important;
}

body.jm-preservations .desktop-nav {
  display: flex !important;
  align-items: center !important;
  gap: clamp(1rem, 2.2vw, 2.25rem) !important;
  margin-left: auto !important;
}

body.jm-preservations .desktop-nav a {
  color: rgba(21, 55, 70, 0.72) !important;
  font-size: 0.71rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  transition: color 160ms var(--ease-out) !important;
}

body.jm-preservations .desktop-nav a:hover,
body.jm-preservations .desktop-nav a:focus-visible {
  color: var(--blue) !important;
}

body.jm-preservations .nav-cta .elementor-button,
body.jm-preservations .button .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  font-size: 0.73rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
  transition: transform 160ms var(--ease-out), background 160ms var(--ease-out), color 160ms var(--ease-out) !important;
}

body.jm-preservations .nav-cta .elementor-button {
  padding: 0.8rem 1rem !important;
  color: #fff !important;
  background: var(--blue) !important;
}

body.jm-preservations .nav-cta .elementor-button:hover {
  background: var(--blue-dark) !important;
}

body.jm-preservations .nav-cta .elementor-button:active,
body.jm-preservations .button .elementor-button:active {
  transform: scale(0.97) !important;
}

body.jm-preservations .menu-toggle .elementor-button {
  display: none !important;
  padding: 0.5rem !important;
  color: var(--ink) !important;
  background: transparent !important;
}

body.jm-preservations .hero-section {
  border-bottom: 1px solid var(--line) !important;
}

body.jm-preservations .hero-inner {
  width: min(100% - 2.5rem, 1280px) !important;
  min-height: 610px !important;
  margin: 0 auto !important;
  padding: clamp(4rem, 7vw, 6.8rem) 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.73fr) !important;
  align-items: center !important;
  gap: clamp(2rem, 9vw, 9rem) !important;
}

body.jm-preservations .hero-copy {
  max-width: 650px !important;
}

body.jm-preservations .jm-eyebrow p {
  margin: 0 0 1rem !important;
  color: var(--blue) !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}

body.jm-preservations h1,
body.jm-preservations h2,
body.jm-preservations h3,
body.jm-preservations p {
  margin-top: 0 !important;
}

body.jm-preservations h1,
body.jm-preservations h2,
body.jm-preservations h3 {
  font-family: var(--serif) !important;
  font-weight: 400 !important;
}

body.jm-preservations h1 {
  max-width: 650px !important;
  margin-bottom: 1.45rem !important;
  font-size: clamp(3.2rem, 5.8vw, 5.7rem) !important;
  letter-spacing: -0.052em !important;
  line-height: 0.97 !important;
}

body.jm-preservations .jm-hero-intro p {
  max-width: 510px !important;
  margin-bottom: 2.1rem !important;
  color: rgba(21, 55, 70, 0.76) !important;
  font-size: clamp(1rem, 1.5vw, 1.13rem) !important;
  line-height: 1.75 !important;
}

body.jm-preservations .hero-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 1.4rem !important;
}

body.jm-preservations .button .elementor-button {
  min-height: 50px !important;
  padding: 0.95rem 1.25rem !important;
}

body.jm-preservations .button-primary .elementor-button {
  color: #fff !important;
  background: var(--blue) !important;
}

body.jm-preservations .button-primary .elementor-button:hover,
body.jm-preservations .button-primary .elementor-button:focus-visible {
  background: var(--blue-dark) !important;
  transform: translateY(-2px) !important;
}

body.jm-preservations .text-link .elementor-button {
  border-bottom: 1px solid currentColor !important;
  padding-bottom: 0.2rem !important;
  font-size: 0.73rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

body.jm-preservations .text-link .elementor-button:hover,
body.jm-preservations .text-link .elementor-button:focus-visible {
  color: var(--blue) !important;
}

body.jm-preservations .hero-art {
  position: relative !important;
  width: min(100%, 402px) !important;
  margin: 0 auto !important;
  padding: 1.15rem !important;
}

body.jm-preservations .hero-art::before {
  content: "" !important;
  position: absolute !important;
  inset: 2% -14% 5% 15% !important;
  border: 1px solid rgba(151, 139, 132, 0.72) !important;
  transform: translate(14px, 16px) !important;
}

body.jm-preservations .hero-frame-shadow {
  position: absolute !important;
  z-index: 0 !important;
  inset: 1.4rem 0.65rem 1.7rem !important;
  background: #1d1a18 !important;
  box-shadow: 15px 21px 27px rgba(23, 35, 31, 0.22) !important;
}

body.jm-preservations .hero-frame {
  position: relative !important;
  z-index: 1 !important;
  padding: 12px !important;
  background: linear-gradient(135deg, #2f271f, #7f6a57 44%, #31271f 75%, #9a8570) !important;
}

body.jm-preservations .hero-mat {
  padding: clamp(1rem, 2.5vw, 1.55rem) !important;
  background: #ede8dd !important;
}

body.jm-preservations .hero-mat img {
  width: 100% !important;
  aspect-ratio: 0.75 !important;
  object-fit: cover !important;
  object-position: top !important;
}

body.jm-preservations .jm-hero-caption .elementor-heading-title {
  position: relative !important;
  z-index: 2 !important;
  display: inline-block !important;
  max-width: 215px !important;
  margin: 0.85rem 0 -0.5rem -0.45rem !important;
  padding: 0.25rem 0.45rem !important;
  background: var(--paper) !important;
  font-family: var(--serif) !important;
  font-size: 1.13rem !important;
  line-height: 1.2 !important;
}

body.jm-preservations .services-strip {
  width: min(100% - 2.5rem, 1280px) !important;
  margin: 0 auto !important;
  padding: 1.2rem 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1rem !important;
}

body.jm-preservations .jm-services-strip > .jm-service-item {
  padding-right: 1rem !important;
  border-right: 1px solid var(--line) !important;
  font-size: 0.67rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

body.jm-preservations .jm-services-strip > .jm-service-item:last-child {
  border: 0 !important;
}

body.jm-preservations .jm-services-strip > .jm-service-item p span {
  margin-right: 0.7rem !important;
  color: var(--stone) !important;
}

body.jm-preservations .section {
  width: min(100% - 2.5rem, 1280px) !important;
  margin: 0 auto !important;
}

body.jm-preservations .work-section {
  padding: clamp(4.5rem, 8vw, 7rem) 0 !important;
}

body.jm-preservations .section-intro {
  display: grid !important;
  grid-template-columns: 1fr minmax(230px, 355px) !important;
  gap: 3rem !important;
  align-items: end !important;
  margin-bottom: clamp(2.5rem, 5vw, 4rem) !important;
}

body.jm-preservations h2 {
  margin-bottom: 0 !important;
  font-size: clamp(2.55rem, 4.9vw, 4.25rem) !important;
  letter-spacing: -0.044em !important;
  line-height: 0.99 !important;
}

body.jm-preservations .jm-section-lede p {
  max-width: 355px !important;
  margin-bottom: 0 !important;
  color: rgba(21, 55, 70, 0.7) !important;
  font-size: 0.96rem !important;
  line-height: 1.75 !important;
}

body.jm-preservations .project-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(1.25rem, 3vw, 3rem) !important;
  align-items: start !important;
}

body.jm-preservations .project-frame {
  transition: transform 200ms var(--ease-out) !important;
}

body.jm-preservations .project-frame:hover {
  transform: translateY(-5px) !important;
}

body.jm-preservations .project-artwork {
  position: relative !important;
  padding: 10px !important;
  background: linear-gradient(135deg, #2e2621, #896f57 50%, #2c241e) !important;
  box-shadow: 11px 15px 20px rgba(38, 42, 37, 0.16) !important;
}

body.jm-preservations .project-artwork::after {
  content: "" !important;
  position: absolute !important;
  inset: 6px !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  pointer-events: none !important;
}

body.jm-preservations .project-mat {
  padding: clamp(0.8rem, 2.2vw, 1.45rem) !important;
  background: #eeeae1 !important;
}

body.jm-preservations .project-mat img {
  width: 100% !important;
  aspect-ratio: 0.77 !important;
  object-fit: cover !important;
  object-position: top !important;
}

body.jm-preservations .project-copy {
  padding-top: 1.4rem !important;
}

body.jm-preservations .project-copy .jm-eyebrow p {
  margin-bottom: 0.55rem !important;
  color: var(--stone) !important;
  font-size: 0.61rem !important;
}

body.jm-preservations .project-title-row {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}

body.jm-preservations .project-title-row h3 {
  margin-bottom: 0.65rem !important;
  font-size: clamp(1.6rem, 2.4vw, 2.15rem) !important;
  letter-spacing: -0.035em !important;
  line-height: 1 !important;
}

body.jm-preservations .project-title-row .jm-project-arrow :is(i, svg) {
  margin-top: 0.2rem !important;
  color: var(--blue) !important;
}

body.jm-preservations .jm-project-description p {
  margin-bottom: 0 !important;
  color: rgba(21, 55, 70, 0.68) !important;
  font-size: 0.83rem !important;
  line-height: 1.65 !important;
}

body.jm-preservations .about-section {
  display: grid !important;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr) !important;
  align-items: stretch !important;
  background: var(--moss-deep) !important;
  color: #f5f0e5 !important;
}

body.jm-preservations .about-art {
  display: grid !important;
  place-items: center !important;
  min-height: 550px !important;
  padding: clamp(3rem, 6vw, 5.7rem) !important;
  background: #d8cab5 !important;
}

body.jm-preservations .about-photo-wrap {
  position: relative !important;
  width: min(100%, 350px) !important;
  padding: 12px !important;
  background: linear-gradient(135deg, #2e2621, #856c55 49%, #2d251e) !important;
  box-shadow: 18px 23px 27px rgba(38, 36, 29, 0.22) !important;
  transform: rotate(-2deg) !important;
}

body.jm-preservations .about-photo-wrap::after {
  content: "" !important;
  position: absolute !important;
  inset: 7px !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  pointer-events: none !important;
}

body.jm-preservations .about-photo-wrap img {
  width: 100% !important;
  aspect-ratio: 0.77 !important;
  object-fit: cover !important;
  object-position: top !important;
  border: 1.1rem solid #f1ece0 !important;
}

body.jm-preservations .about-copy {
  max-width: 650px !important;
  padding: clamp(4rem, 8vw, 7rem) clamp(2rem, 8vw, 7rem) !important;
}

body.jm-preservations .about-copy .jm-eyebrow p {
  color: #b7c4b2 !important;
}

body.jm-preservations .about-copy h2 {
  margin-bottom: 1.7rem !important;
  font-size: clamp(2.9rem, 5vw, 4.8rem) !important;
}

body.jm-preservations .about-copy .jm-bio-block p {
  max-width: 520px !important;
  margin-bottom: 1rem !important;
  color: rgba(245, 240, 229, 0.79) !important;
  font-size: 1rem !important;
  line-height: 1.82 !important;
}

body.jm-preservations .contact-section {
  padding: clamp(4.5rem, 8vw, 7rem) 0 !important;
}

body.jm-preservations .contact-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 2rem !important;
  align-items: end !important;
  padding: clamp(2rem, 5vw, 4.2rem) !important;
  background: var(--paper-deep) !important;
}

body.jm-preservations .contact-card::before,
body.jm-preservations .contact-card::after {
  content: "" !important;
  position: absolute !important;
  width: 46px !important;
  height: 46px !important;
  pointer-events: none !important;
}

body.jm-preservations .contact-card::before {
  top: 1.15rem !important;
  left: 1.15rem !important;
  border-top: 1px solid var(--stone) !important;
  border-left: 1px solid var(--stone) !important;
}

body.jm-preservations .contact-card::after {
  right: 1.15rem !important;
  bottom: 1.15rem !important;
  border-right: 1px solid var(--stone) !important;
  border-bottom: 1px solid var(--stone) !important;
}

body.jm-preservations .contact-copy {
  max-width: 690px !important;
}

body.jm-preservations .contact-copy h2 {
  margin-bottom: 0.9rem !important;
  font-size: clamp(2.4rem, 4.8vw, 4.15rem) !important;
}

body.jm-preservations .jm-contact-description p {
  max-width: 490px !important;
  margin-bottom: 0 !important;
  color: rgba(21, 55, 70, 0.7) !important;
  line-height: 1.75 !important;
}

body.jm-preservations .button-large .elementor-button {
  min-height: 56px !important;
  padding: 1rem 1.3rem !important;
  white-space: nowrap !important;
}

body.jm-preservations .site-footer {
  padding: 2.3rem max(1.25rem, calc((100% - 1280px) / 2)) !important;
  color: #f2eee5 !important;
  background: var(--ink) !important;
}

body.jm-preservations .footer-top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  padding-bottom: 1.9rem !important;
}

body.jm-preservations .footer-top img {
  width: 200px !important;
  background: #fff !important;
  mix-blend-mode: screen !important;
}

body.jm-preservations .footer-top p {
  max-width: 330px !important;
  margin-bottom: 0 !important;
  color: rgba(242, 238, 229, 0.72) !important;
  font-family: var(--serif) !important;
  font-size: 1.18rem !important;
  line-height: 1.2 !important;
  text-align: right !important;
}

body.jm-preservations .footer-bottom {
  display: flex !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  padding-top: 1rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.17) !important;
}

body.jm-preservations .footer-bottom p {
  margin-bottom: 0 !important;
  color: rgba(242, 238, 229, 0.57) !important;
  font-size: 0.61rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

@media (max-width: 900px) {
body.jm-preservations .desktop-nav,
body.jm-preservations .desktop-cta {
  display: none !important;
}

body.jm-preservations .menu-toggle .elementor-button {
  display: grid !important;
  place-items: center !important;
}

body.jm-preservations .hero-inner {
  grid-template-columns: minmax(0, 1fr) minmax(275px, 0.64fr) !important;
  min-height: 540px !important;
  gap: 2rem !important;
}

body.jm-preservations .about-section {
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr) !important;
}

body.jm-preservations .about-art {
  min-height: 480px !important;
  padding: 3rem 2rem !important;
}

body.jm-preservations .about-copy {
  padding: 4rem 3rem !important;
}
}

@media (max-width: 680px) {
body.jm-preservations .header-inner,
body.jm-preservations .hero-inner,
body.jm-preservations .section,
body.jm-preservations .services-strip {
  width: min(100% - 2rem, 1280px) !important;
}

body.jm-preservations .header-inner {
  min-height: 72px !important;
}

body.jm-preservations .brand {
  width: 152px !important;
}

body.jm-preservations .hero-inner {
  min-height: 0 !important;
  padding: 4.5rem 0 3.8rem !important;
  grid-template-columns: 1fr !important;
}

body.jm-preservations h1 {
  font-size: clamp(3.1rem, 13vw, 4.35rem) !important;
}

body.jm-preservations .hero-art {
  width: min(90%, 385px) !important;
  margin-top: 0.9rem !important;
}

body.jm-preservations .services-strip {
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  padding: 0.6rem 0 !important;
}

body.jm-preservations .jm-services-strip > .jm-service-item {
  padding: 0.7rem 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid var(--line) !important;
}

body.jm-preservations .jm-services-strip > .jm-service-item:last-child {
  border-bottom: 0 !important;
}

body.jm-preservations .section-intro,
body.jm-preservations .contact-card {
  grid-template-columns: 1fr !important;
  gap: 1.7rem !important;
}

body.jm-preservations .project-grid {
  grid-template-columns: 1fr !important;
  gap: 3.3rem !important;
}

body.jm-preservations .project-frame {
  width: min(100%, 430px) !important;
}

body.jm-preservations .project-frame:nth-child(2) {
  margin-left: auto !important;
}

body.jm-preservations .about-section {
  grid-template-columns: 1fr !important;
}

body.jm-preservations .about-art {
  min-height: 455px !important;
  padding: 3.8rem 3rem !important;
}

body.jm-preservations .about-copy {
  padding: 3.9rem 1.4rem 4.2rem !important;
}

body.jm-preservations .contact-card {
  padding: 3.4rem 1.55rem !important;
}

body.jm-preservations .button-large .elementor-button {
  width: 100% !important;
}

body.jm-preservations .footer-top,
body.jm-preservations .footer-bottom {
  align-items: flex-start !important;
  flex-direction: column !important;
}

body.jm-preservations .footer-top p {
  text-align: left !important;
}
}

@media (prefers-reduced-motion: reduce) {
body.jm-preservations *,
body.jm-preservations *::before,
body.jm-preservations *::after {
  scroll-behavior: auto !important;
  transition-duration: 0.01ms !important;
  animation-duration: 0.01ms !important;
}
}

body.jm-preservations .nav-active {
  color: var(--blue) !important;
}

body.jm-preservations .shop-hero {
  border-bottom: 1px solid var(--line) !important;
  background: linear-gradient(90deg, var(--paper), #f0ebdf) !important;
}

body.jm-preservations .shop-hero-inner {
  width: min(100% - 2.5rem, 1280px) !important;
  min-height: 330px !important;
  margin: 0 auto !important;
  padding: clamp(3.5rem, 7vw, 6.3rem) 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.46fr) !important;
  align-items: end !important;
  gap: 3rem !important;
}

body.jm-preservations .shop-hero h1 {
  margin-bottom: 0 !important;
  font-size: clamp(4rem, 7.2vw, 7rem) !important;
}

body.jm-preservations .shop-hero-copy p {
  max-width: 380px !important;
  margin: 0 0 0.45rem auto !important;
  color: rgba(21, 55, 70, 0.72) !important;
  font-family: var(--serif) !important;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem) !important;
  line-height: 1.18 !important;
}

body.jm-preservations .catalog-status {
  border-bottom: 1px solid rgba(0, 99, 145, 0.22) !important;
  background: #e8f2f5 !important;
}

body.jm-preservations .catalog-status-inner {
  width: min(100% - 2.5rem, 1280px) !important;
  min-height: 82px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 0.95rem !important;
}

body.jm-preservations .catalog-status-icon {
  display: grid !important;
  place-items: center !important;
  width: 1.7rem !important;
  height: 1.7rem !important;
  color: #fff !important;
  background: var(--blue) !important;
  border-radius: 50% !important;
}

body.jm-preservations .catalog-status strong {
  display: block !important;
  margin-bottom: 0.12rem !important;
  color: var(--ink) !important;
  font-size: 0.73rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
}

body.jm-preservations .catalog-status p {
  margin: 0 !important;
  color: rgba(21, 55, 70, 0.74) !important;
  font-size: 0.79rem !important;
  line-height: 1.45 !important;
}

body.jm-preservations .catalog-status .catalog-version .elementor-heading-title,
body.jm-preservations .catalog-status-inner .catalog-version .elementor-heading-title {
  color: var(--stone) !important;
  font-size: 0.62rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

body.jm-preservations .shop-catalog {
  padding: clamp(4.3rem, 7vw, 6.8rem) 0 !important;
}

body.jm-preservations .catalog-heading {
  display: flex !important;
  align-items: end !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  margin-bottom: 2.75rem !important;
}

body.jm-preservations .catalog-heading h2 {
  font-size: clamp(2.5rem, 4.4vw, 4.2rem) !important;
}

body.jm-preservations .catalog-heading .catalog-item-count p {
  margin: 0 0 0.5rem !important;
  color: var(--stone) !important;
  font-size: 0.7rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

body.jm-preservations .shop-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 2.5rem 1.6rem !important;
}

body.jm-preservations .shop-card {
  min-width: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

body.jm-preservations .product-number {
  position: absolute !important;
  z-index: 1 !important;
  top: 1.35rem !important;
  left: 1.35rem !important;
  color: var(--blue) !important;
  font-size: 0.7rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
}

body.jm-preservations .product-image {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 0.75 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #e7dfd1 !important;
  border: 1px solid rgba(21, 55, 70, 0.22) !important;
  text-align: left !important;
  transition: transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out) !important;
}

body.jm-preservations .product-image::after {
  content: "" !important;
  position: absolute !important;
  inset: 11px !important;
  border: 1px solid rgba(248, 245, 239, 0.72) !important;
  pointer-events: none !important;
}

body.jm-preservations .product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  transition: transform 300ms var(--ease-out) !important;
}

body.jm-preservations .product-image:hover,
body.jm-preservations .product-image:focus-visible {
  box-shadow: 9px 12px 0 rgba(21, 55, 70, 0.14) !important;
  transform: translate(-3px, -3px) !important;
}

body.jm-preservations .product-image:hover img,
body.jm-preservations .product-image:focus-visible img {
  transform: scale(1.025) !important;
}

body.jm-preservations .product-image .product-number {
  padding: 0.35rem 0.42rem !important;
  color: var(--blue) !important;
  background: rgba(248, 245, 239, 0.9) !important;
}

body.jm-preservations .product-image-zoom-hint {
  position: absolute !important;
  z-index: 1 !important;
  right: 0.75rem !important;
  bottom: 0.75rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.34rem !important;
  padding: 0.38rem 0.45rem !important;
  color: var(--blue) !important;
  background: rgba(248, 245, 239, 0.94) !important;
  font-size: 0.57rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
}

body.jm-preservations .shop-card-copy {
  flex: 1 !important;
  padding: 1.15rem 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  font-family: var(--sans) !important;
}

body.jm-preservations .shop-card-type .elementor-heading-title {
  margin-bottom: 0.2rem !important;
  color: var(--stone) !important;
  font-family: var(--serif) !important;
  font-size: clamp(1.3rem, 1.85vw, 1.7rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
}

body.jm-preservations .shop-card h3 {
  min-height: 2.3rem !important;
  margin-bottom: 0.55rem !important;
  font-family: var(--serif) !important;
  font-size: clamp(1.45rem, 2vw, 1.85rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.05 !important;
}

body.jm-preservations .shop-card-details {
  margin: 0 0 1rem !important;
  padding-left: 0 !important;
  color: rgba(21, 55, 70, 0.88) !important;
  font-family: var(--sans) !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  line-height: 1.58 !important;
  list-style: none !important;
}

body.jm-preservations .shop-card-details li {
  position: relative !important;
  margin: 0 0 0.3rem !important;
  padding-left: 0.9rem !important;
}

body.jm-preservations .shop-card-details li::before {
  content: "" !important;
  position: absolute !important;
  top: 0.68em !important;
  left: 0 !important;
  width: 0.34rem !important;
  height: 0.34rem !important;
  border-radius: 50% !important;
  background: var(--blue) !important;
}

body.jm-preservations .shop-card-details li:first-child {
  color: var(--ink) !important;
  font-weight: 800 !important;
}

body.jm-preservations .shop-card-details .shop-card-detail-space {
  height: 0.72rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.jm-preservations .shop-card-details .shop-card-detail-space::before {
  display: none !important;
}

body.jm-preservations .card-detail-toggle .elementor-button {
  align-self: flex-start !important;
  margin: -0.3rem 0 1rem !important;
  padding: 0 0 0.18rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  color: var(--blue) !important;
  background: transparent !important;
  border-bottom: 1px solid currentColor !important;
  font-family: var(--sans) !important;
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
}

body.jm-preservations .card-detail-toggle .elementor-button-icon {
  transition: transform 160ms var(--ease-out) !important;
}

body.jm-preservations .card-detail-toggle.is-expanded .elementor-button-icon {
  transform: rotate(180deg) !important;
}

body.jm-preservations .card-detail-toggle .elementor-button:hover,
body.jm-preservations .card-detail-toggle .elementor-button:focus-visible {
  color: var(--blue-dark) !important;
}

body.jm-preservations .shop-card-price {
  margin-top: auto !important;
  margin-bottom: 1rem !important;
  padding-top: 1.1rem !important;
  color: var(--blue) !important;
  font-family: var(--sans) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.15 !important;
}

body.jm-preservations .buy-now-button .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.62rem 0.7rem !important;
  color: var(--blue) !important;
  background: transparent !important;
  border: 1px solid var(--blue) !important;
  font-size: 0.63rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  transition: color 160ms var(--ease-out), background 160ms var(--ease-out) !important;
}

body.jm-preservations .buy-now-button .elementor-button:not(:disabled):hover,
body.jm-preservations .buy-now-button .elementor-button:not(:disabled):focus-visible {
  color: #fff !important;
  background: var(--blue) !important;
}

body.jm-preservations .buy-now-button .elementor-button:disabled {
  color: #756b62 !important;
  background: var(--paper-deep) !important;
  border-color: var(--stone) !important;
  cursor: not-allowed !important;
}

body.jm-preservations .checkout-state p {
  color: rgba(21, 55, 70, 0.74) !important;
  font-size: 0.79rem !important;
  line-height: 1.45 !important;
  text-align: right !important;
}

body.jm-preservations .shop-note {
  max-width: 1280px !important;
  margin-bottom: clamp(4.4rem, 8vw, 7rem) !important;
  padding: clamp(2rem, 4vw, 3.4rem) !important;
  background: var(--paper-deep) !important;
  border-left: 4px solid var(--stone) !important;
}

body.jm-preservations .shop-note h2 {
  max-width: 800px !important;
  margin-bottom: 1rem !important;
  font-size: clamp(2.1rem, 3.9vw, 3.55rem) !important;
}

body.jm-preservations .shop-note .jm-shop-note-copy p {
  max-width: 650px !important;
  margin-bottom: 0 !important;
  color: rgba(21, 55, 70, 0.72) !important;
  font-size: 0.95rem !important;
  line-height: 1.75 !important;
}

body.jm-preservations .panel-close {
  display: grid !important;
  place-items: center !important;
  width: 2.4rem !important;
  height: 2.4rem !important;
  padding: 0 !important;
  color: var(--ink) !important;
  background: transparent !important;
  border: 1px solid var(--line) !important;
  transition: color 160ms var(--ease-out), background 160ms var(--ease-out) !important;
}

body.jm-preservations .panel-close:hover,
body.jm-preservations .panel-close:focus-visible {
  color: #fff !important;
  background: var(--blue) !important;
}

body.jm-preservations .image-lightbox-layer {
  position: fixed !important;
  z-index: 100 !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  padding: 1rem !important;
}

body.jm-preservations .image-lightbox-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(7, 26, 31, 0.82) !important;
}

body.jm-preservations .image-lightbox {
  position: relative !important;
  z-index: 1 !important;
  width: min(100%, 540px) !important;
  max-height: calc(100vh - 2rem) !important;
  padding: 1.1rem !important;
  overflow: auto !important;
  background: var(--paper) !important;
  box-shadow: 0 24px 70px rgba(4, 17, 20, 0.48) !important;
}

body.jm-preservations .image-lightbox .panel-close {
  position: absolute !important;
  z-index: 1 !important;
  top: 1.55rem !important;
  right: 1.55rem !important;
  background: rgba(248, 245, 239, 0.9) !important;
}

body.jm-preservations .image-lightbox img {
  width: min(100%, 480px) !important;
  max-height: min(76vh, 640px) !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}

body.jm-preservations .image-lightbox p {
  margin: 0.85rem 0 0 !important;
  padding-right: 3rem !important;
  color: var(--ink) !important;
  font-family: var(--serif) !important;
  font-size: 1.2rem !important;
  line-height: 1.1 !important;
}

@media (max-width: 900px) {
body.jm-preservations .shop-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 2.3rem 1.3rem !important;
}
}

@media (max-width: 680px) {
body.jm-preservations .shop-hero-inner,
body.jm-preservations .catalog-status-inner {
  width: min(100% - 2rem, 1280px) !important;
}

body.jm-preservations .shop-hero-inner {
  min-height: 0 !important;
  padding: 4rem 0 3.6rem !important;
  grid-template-columns: 1fr !important;
  gap: 1.2rem !important;
}

body.jm-preservations .shop-hero-copy p {
  margin-left: 0 !important;
}

body.jm-preservations .catalog-status-inner {
  min-height: 0 !important;
  padding: 1rem 0 !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: start !important;
}

body.jm-preservations .catalog-status-inner .catalog-version .elementor-heading-title {
  grid-column: 2 !important;
}

body.jm-preservations .catalog-heading {
  align-items: start !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  margin-bottom: 2rem !important;
}

body.jm-preservations .catalog-heading .catalog-item-count p {
  margin: 0 !important;
}

body.jm-preservations .shop-grid {
  grid-template-columns: 1fr !important;
  gap: 2.6rem !important;
}

body.jm-preservations .shop-card {
  width: min(100%, 430px) !important;
}

body.jm-preservations .shop-card:nth-child(even) {
  margin-left: auto !important;
}
}

/* Native-only structural corrections; source geometry and typography are unchanged. */
body.jm-preservations :is(.jm-home-main, .jm-shop-main) { width: 100% !important; }
body.jm-preservations :is(.hero-copy, .project-copy, .about-copy, .contact-copy, .shop-card-copy) { min-width: 0; }
body.jm-preservations :is(.hero-frame-shadow, .hero-art)::before { pointer-events: none; }
body.jm-preservations .hero-art .hero-frame-shadow { width: auto !important; }
body.jm-preservations .hero-caption.elementor-widget { position: relative !important; z-index: 2 !important; display: block; }
body.jm-preservations .hero-caption .elementor-heading-title { display: inline-block !important; font-family: var(--serif) !important; font-weight: 400 !important; letter-spacing: normal !important; }
body.jm-preservations .jm-services-strip > .jm-service-item { width: auto !important; }
body.jm-preservations .jm-services-strip > .jm-service-item p { margin: 0 !important; color: var(--ink) !important; font-family: var(--sans) !important; font-size: 0.67rem !important; font-weight: 800 !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; }
body.jm-preservations .jm-project-arrow { flex: 0 0 20px !important; width: 20px !important; }
body.jm-preservations .jm-project-arrow .elementor-icon { display: inline-flex; color: var(--blue) !important; font-size: 20px !important; transform: rotate(-45deg); }
body.jm-preservations .jm-project-arrow :is(i, svg) { display: block; width: 20px; height: 20px; }
body.jm-preservations .jm-project-title-row .jm-project-title { width: auto !important; flex: 1 1 auto !important; }
body.jm-preservations .jm-button .elementor-button { line-height: 1.5 !important; }
body.jm-preservations .jm-button .elementor-button-icon { font-size: 17px; }
body.jm-preservations .jm-button-large .elementor-button-icon { font-size: 18px; }
body.jm-preservations .text-link .elementor-button { min-height: 0 !important; padding: 0 0 0.2rem !important; background: transparent !important; color: var(--ink) !important; line-height: 1.5 !important; }
body.jm-preservations .text-link .elementor-button:is(:hover, :focus-visible) { color: var(--blue) !important; }
body.jm-preservations .jm-section-intro-copy { min-width: 0; }
body.jm-preservations .jm-bio-block p { white-space: normal; }
body.jm-preservations .brand { flex: 0 0 auto !important; }
body.jm-preservations .brand img { width: 100% !important; }
body.jm-preservations .desktop-nav { width: auto !important; flex-direction: row !important; flex: 0 1 auto !important; }
body.jm-preservations .desktop-nav .nav-item .elementor-button { display: inline-flex; padding: 0 !important; border: 0 !important; background: transparent !important; color: rgba(21, 55, 70, 0.72) !important; font-size: 0.71rem !important; font-weight: 800 !important; letter-spacing: 0.08em !important; line-height: 1.5 !important; text-transform: uppercase !important; transition: color 160ms var(--ease-out); }
body.jm-preservations .desktop-nav .nav-item .elementor-button:is(:hover, :focus-visible),
body.jm-preservations .desktop-nav .nav-item .elementor-button.nav-active { color: var(--blue) !important; }
body.jm-preservations .nav-cta .elementor-button { line-height: 1.5 !important; }
body.jm-preservations .menu-toggle .elementor-button { line-height: 1 !important; }
body.jm-preservations .menu-toggle .elementor-button-text { display: none !important; }
body.jm-preservations .menu-toggle .elementor-button-icon { font-size: 25px !important; }
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon { font-size: 24px !important; }
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon :is(i, svg) { visibility: hidden; }
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon { position: relative; width: 24px; height: 24px; }
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon::before,
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon::after { content: ""; position: absolute; left: 0; top: calc(50% - 1px); width: 24px; height: 2px; background: currentColor; }
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon::before { transform: rotate(45deg); }
body.jm-preservations .is-menu-open .menu-toggle .elementor-button-icon::after { transform: rotate(-45deg); }
body.jm-preservations.jm-shop-page .nav-cta.desktop-cta { display: none !important; }
body.jm-preservations .footer-top .footer-logo { width: 200px !important; flex: 0 0 200px !important; }
body.jm-preservations .footer-top .footer-tagline { max-width: 330px !important; }
body.jm-preservations .footer-bottom .elementor-widget-text-editor { width: auto !important; }
/* A Theme Builder wrapper must own sticky positioning so its child is not trapped. */
body.jm-preservations .elementor-location-header:has(.site-header) { position: sticky; z-index: 50; top: 0; }
body.jm-preservations .elementor-location-header .site-header { position: relative !important; }
body.jm-preservations.admin-bar .elementor-location-header:has(.site-header),
body.jm-preservations.admin-bar > .site-header { top: 32px !important; }
body.jm-preservations :is(#main-content, #shop-content, #examples, #about, #contact) { scroll-margin-top: 82px; }
body.jm-preservations .shop-hero-copy p { margin-top: 0 !important; }
body.jm-preservations .catalog-status-copy :is(strong, .elementor-heading-title) { display: block !important; margin: 0 0 0.12rem !important; color: var(--ink) !important; font-family: var(--sans) !important; font-size: 0.73rem !important; font-weight: 800 !important; letter-spacing: 0.07em !important; line-height: 1.5 !important; text-transform: uppercase !important; }
body.jm-preservations :is(.catalog-status-icon, .statusicon) .elementor-icon { display: inline-flex; font-size: 15px; color: #fff !important; }
body.jm-preservations :is(.catalog-status-icon, .statusicon) { display: grid !important; place-items: center !important; width: 1.7rem !important; height: 1.7rem !important; color: #fff !important; background: var(--blue) !important; border-radius: 50%; }
body.jm-preservations .catalog-version .elementor-heading-title { color: var(--stone) !important; font-family: var(--sans) !important; font-size: 0.62rem !important; font-weight: 800 !important; letter-spacing: 0.12em !important; line-height: 1.5 !important; text-transform: uppercase !important; }
body.jm-preservations .catalog-heading .catalog-item-count p { margin: 0 0 0.5rem !important; color: var(--stone) !important; font-family: var(--sans) !important; font-size: 0.7rem !important; font-weight: 800 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; }
body.jm-preservations .shop-grid { counter-reset: jm-product; }
body.jm-preservations .shop-grid .shop-card { counter-increment: jm-product; }
body.jm-preservations .shop-card .product-image { flex: 0 0 auto !important; display: block !important; }
body.jm-preservations .shop-card .product-image > .elementor-widget-container,
body.jm-preservations .shop-card .product-image a { width: 100% !important; height: 100% !important; }
body.jm-preservations .shop-card .product-image a { position: relative; display: block !important; }
body.jm-preservations .shop-card .product-image img { height: 100% !important; width: 100% !important; aspect-ratio: 0.75; object-fit: cover !important; object-position: center !important; }
/* Preserve the original inner border on the native link; keep number/hint on wrapper. */
body.jm-preservations .shop-card .product-image a::after { content: ""; position: absolute; inset: 11px; border: 1px solid rgba(248, 245, 239, 0.72); pointer-events: none; }
body.jm-preservations .shop-card .product-image::before { content: counter(jm-product, decimal-leading-zero); position: absolute; z-index: 1; top: 1.35rem; left: 1.35rem; padding: 0.35rem 0.42rem; color: var(--blue); background: rgba(248, 245, 239, 0.9); font-family: var(--sans); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.1em; line-height: 1.5; pointer-events: none; }
body.jm-preservations .shop-card .product-image[data-jm-order]::before { content: attr(data-jm-order); }
body.jm-preservations .shop-card .product-image::after { content: "View larger" !important; inset: auto 0.75rem 0.75rem auto !important; z-index: 1 !important; display: inline-flex !important; align-items: center; gap: 0.34rem; padding: 0.38rem 0.45rem !important; color: var(--blue); background: rgba(248, 245, 239, 0.94); border: 0 !important; font-family: var(--sans); font-size: 0.57rem; font-weight: 800; letter-spacing: 0.07em; line-height: 1.5; text-transform: uppercase; pointer-events: none; }
body.jm-preservations .shop-card .product-image:focus-within { box-shadow: 9px 12px 0 rgba(21, 55, 70, 0.14) !important; transform: translate(-3px, -3px) !important; }
body.jm-preservations .shop-card .product-image:focus-within img { transform: scale(1.025) !important; }
body.jm-preservations .shop-card-copy { flex: 1 1 auto !important; }
body.jm-preservations .shop-card-type .elementor-heading-title { display: block; font-family: var(--serif) !important; }
body.jm-preservations .shop-card .jm-price { margin-top: auto !important; }
body.jm-preservations .shop-card .jm-price .shop-card-price { margin-top: 0 !important; }
body.jm-preservations .shop-card .card-detail-toggle { align-self: flex-start !important; margin: -0.3rem 0 1rem !important; }
body.jm-preservations .shop-card .card-detail-toggle .elementor-button { margin: 0 !important; }
body.jm-preservations .shop-card .card-detail-toggle .elementor-button-content-wrapper { gap: 0.3rem !important; }
body.jm-preservations .shop-card .card-detail-toggle .elementor-button-icon { font-size: 15px; }
body.jm-preservations .shop-card .card-detail-toggle.is-expanded .elementor-button-icon { transform: rotate(180deg); }
body.jm-preservations .shop-card .buy-now-button { align-self: flex-end !important; }
body.jm-preservations .shop-card .buy-now-button .elementor-button { line-height: 1.5 !important; }
body.jm-preservations .shop-card .checkout-state { margin-top: 0.45rem !important; width: 100% !important; }
body.jm-preservations .shop-card .checkout-state p { margin: 0 !important; font-family: var(--sans) !important; }
body.jm-preservations .shop-card-details li[hidden],
body.jm-preservations .card-detail-toggle[hidden],
body.jm-preservations .image-lightbox-layer[hidden] { display: none !important; }
body.jm-preservations .image-lightbox { max-height: calc(100dvh - 2rem); }
body.jm-preservations .image-lightbox img { height: auto; }
body.jm-preservations .image-lightbox .panel-close { font-size: 24px; line-height: 1; }
body.jm-preservations .image-lightbox .panel-close :is(i, svg) { pointer-events: none; }
body.jm-preservations .image-lightbox-layer { isolation: isolate; }
body.jm-preservations .jm-modal-fallback-inert { pointer-events: none !important; user-select: none; }
@media (max-width: 900px) {
  body.jm-preservations .site-header .header-inner { flex-wrap: wrap !important; column-gap: 1.5rem !important; row-gap: 0 !important; }
  body.jm-preservations .site-header .desktop-nav { display: none !important; order: 4; width: 100% !important; margin: 0 !important; }
  body.jm-preservations .site-header.is-menu-open .desktop-nav { display: grid !important; gap: 0.5rem !important; padding: 0.2rem 0 1.25rem !important; }
  body.jm-preservations .site-header .desktop-nav .nav-item { width: 100% !important; }
  body.jm-preservations .site-header .desktop-nav .nav-item .elementor-button { width: 100% !important; display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 0.8rem 0 !important; border-bottom: 1px solid var(--line) !important; color: var(--ink) !important; text-align: left !important; font-size: 0.72rem !important; font-weight: 800 !important; letter-spacing: 0.08em !important; }
  body.jm-preservations .site-header .desktop-nav .nav-item .elementor-button-content-wrapper { width: 100%; justify-content: space-between; }
  body.jm-preservations .site-header .menu-toggle { margin-left: auto !important; }
}
@media (max-width: 782px) {
  body.jm-preservations.admin-bar .elementor-location-header:has(.site-header),
  body.jm-preservations.admin-bar > .site-header { top: 46px !important; }
}
@media (max-width: 680px) {
  body.jm-preservations .brand { width: 152px !important; }
  body.jm-preservations .jm-services-strip > .jm-service-item { padding: 0.7rem 0 !important; border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
  body.jm-preservations .jm-services-strip > .jm-service-item:last-child { border-bottom: 0 !important; }
  body.jm-preservations .button-large.elementor-widget,
  body.jm-preservations .button-large .elementor-button { width: 100% !important; }
  body.jm-preservations .catalog-status-inner .catalog-version { grid-column: 2; }
  body.jm-preservations .catalog-heading .catalog-item-count p { margin: 0 !important; }
  body.jm-preservations .footer-top .footer-logo { flex-basis: auto !important; }
  body.jm-preservations :is(#main-content, #shop-content, #examples, #about, #contact) { scroll-margin-top: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  body.jm-preservations *, body.jm-preservations *::before, body.jm-preservations *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Final native controls compatibility: neutral defaults never define typography. */
body.jm-preservations :is(.jm-home-main, .jm-shop-main, .site-header, .site-footer) .elementor-widget-text-editor { font-family: var(--sans) !important; }
body.jm-preservations .shop-hero-copy .elementor-widget-container,
body.jm-preservations .footer-tagline .elementor-widget-container { font-family: var(--serif) !important; }
body.jm-preservations .menu-toggle.elementor-widget { display: none !important; padding: 0 !important; background: transparent !important; }
body.jm-preservations .nav-cta.elementor-widget { padding: 0 !important; background: transparent !important; }
body.jm-preservations .shop-card .shop-card-type.elementor-widget { margin: 0 !important; }
body.jm-preservations .shop-card .shop-card-type .elementor-heading-title { margin-bottom: 0.2rem !important; }
body.jm-preservations .image-lightbox .panel-close { border: 1px solid var(--line) !important; }
body.jm-preservations .image-lightbox-layer,
body.jm-preservations .image-lightbox-backdrop { position: fixed !important; }
@media (max-width: 900px) {
  body.jm-preservations .menu-toggle.elementor-widget { display: grid !important; place-items: center !important; }
}
@media (max-width: 600px) {
  /* WordPress makes its mobile admin bar nonfixed; do not leave a public-style gap. */
  body.jm-preservations.admin-bar .elementor-location-header:has(.site-header),
  body.jm-preservations.admin-bar > .site-header { top: 0 !important; }
}

body.jm-preservations { line-height: 1.5; }
body.jm-preservations :where(.jm-home-main, .jm-shop-main, .site-header, .site-footer) :where(.e-con) { flex-direction: row !important; }
body.jm-preservations :is(.shop-card, .shop-card-copy) { flex-direction: column !important; }
@media (max-width: 680px) {
  body.jm-preservations :is(.footer-top, .footer-bottom, .catalog-heading) { flex-direction: column !important; }
}
