/* Storefront refinement: shared contrast, compact catalog tools, and quiet reading. */
:root { --mg-error-ink: #a32043; }
html[data-theme="dark"] { --mg-error-ink: #ffb7ca; }

/* Keep the navigation legible as it passes from photographs to light content. */
html[data-theme="light"] .cs_site_header.cs_sticky_active,
html[data-theme="light"] .cs_site_header.mg_header_light_surface { background: var(--white-color); }
html[data-theme="light"] .cs_sticky_active .mg_brand_img--color { display: block; }
html[data-theme="light"] .cs_sticky_active .mg_brand_img--white { display: none; }
html[data-theme="light"] .cs_sticky_active .cs_header_icon_btn,
html[data-theme="light"] .cs_sticky_active .mg_pref_btn,
html[data-theme="light"] .cs_sticky_active .cs_nav .cs_nav_list > li > a { color: var(--brand-color); }
html[data-theme="light"] .cs_sticky_active .cs_menu_toggle span,
html[data-theme="light"] .cs_sticky_active .cs_menu_toggle span::before,
html[data-theme="light"] .cs_sticky_active .cs_menu_toggle span::after { background: var(--brand-color); }

html[data-theme] .cs_page_heading.cs_style_1 .cs_page_title {
  background: none;
  color: #faf8fd;
  -webkit-text-fill-color: #faf8fd;
  text-shadow: none;
  visibility: visible !important;
  animation: none !important;
}
html[data-theme] .cs_page_heading.cs_style_1 .breadcrumb,
html[data-theme] .cs_page_heading.cs_style_1 .breadcrumb a,
html[data-theme] .cs_page_heading.cs_style_1 .breadcrumb-item.active { color: #faf8fd; }
html[data-theme] .cs_page_heading.cs_style_1 .breadcrumb-item + .breadcrumb-item::before { background-color: #faf8fd; }

/* Form states use the same text and surface roles throughout the storefront. */
.mg_form_block :is(input, textarea)::placeholder { color: var(--mg-muted); opacity: 1; }
html[data-theme] .mg_form_hint.mg_form_error { color: var(--mg-error-ink); }
.mg_alert p { color: inherit !important; }
.mg_password_toggle { width: 44px; height: 44px; inset-inline-end: 8px; }
.mg_cart_remove { min-height: 44px; }
.mg_summary_row > :first-child { min-width: 0; overflow-wrap: anywhere; }
.mg_summary_row > :last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.mg_form_block, .mg_cart_row > *, .mg_pdp_info { min-width: 0; }
.mg_cart_title, .mg_pdp_info h2, .cs_contact_info h4 { overflow-wrap: anywhere; }
.mg_pdp_buy { border: 1px solid var(--mg-text); background: transparent; color: var(--mg-text); }
.mg_pdp_actions button:disabled, .mg_qty button:disabled { opacity: .5; cursor: not-allowed; }
html[data-theme] .mg_pdp_buy:hover { background: var(--mg-text); color: var(--mg-surface); }
.mg_pdp_actions :is(button, a):focus-visible,
.mg_pdp_thumbs button:focus-visible,
.mg_variant:focus-visible,
.mg_qty button:focus-visible { outline: 2px solid var(--mg-text); outline-offset: 3px; }
.mg_pdp_main img { object-fit: contain; }
.mg_pdp_main { background: #fff; }
html[data-theme="dark"] .mg_pdp_main { background: #fff; }
html[data-theme] .mg_wishlist_toggle--card {
  width: 44px; height: 44px; background: #faf8fd; color: #271350; border: 0;
}
html[data-theme] .mg_wishlist_toggle--card.is-active { background: #fff5f8; color: #a32043; }
.mg_mobile_shortcuts { display: none; }

/* Search and sorting stay visible; the remaining filters have one native disclosure. */
.mg_catalog_controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 240px); gap: 12px; margin-bottom: 32px; align-items: start; }
.mg_catalog_controls :is(input, select), .mg_catalog_filters summary {
  min-height: 48px; min-width: 0; width: 100%; padding: 12px 16px;
  border: 1px solid var(--mg-border); border-radius: 12px;
  background: var(--mg-surface); color: var(--mg-text); font: inherit; font-size: 16px;
}
.mg_catalog_controls input::placeholder { color: var(--mg-muted); opacity: 1; }
.mg_catalog_controls :is(input, select, summary):focus-visible,
.mg_catalog_reset:focus-visible { outline: 2px solid var(--mg-text); outline-offset: 3px; }
.mg_catalog_filters { grid-column: 1 / -1; min-width: 0; }
.mg_catalog_filters summary { display: flex; align-items: center; justify-content: center; gap: 8px; width: auto; cursor: pointer; list-style: none; font-weight: 600; }
.mg_catalog_filters summary::-webkit-details-marker { display: none; }
.mg_catalog_filters[open] summary { background: var(--mg-text); color: var(--mg-surface); }
.mg_catalog_filter_fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 16px; align-items: end; margin-top: 12px; padding: 20px; background: var(--mg-elevated); border-radius: 12px; }
.mg_catalog_filters:not([open]) > .mg_catalog_filter_fields { display: none; }
.mg_catalog_field { min-width: 0; }
.mg_catalog_field label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: var(--mg-text); }
.mg_catalog_reset { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 16px; border: 0; background: transparent; color: var(--mg-text); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
.mg_catalog_empty { grid-column: 1 / -1; padding: 40px 16px; text-align: center; }
.mg_product_card { min-width: 0; }
.mg_product_badge { top: auto; bottom: 12px; inset-inline-start: 12px; max-width: calc(100% - 24px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mg_product_title { overflow-wrap: anywhere; }
.mg_product_footer { flex-wrap: wrap; }
.mg_add_btn { min-height: 44px; }

/* The article is one reading column, with its artwork and related stories around it. */
.mg_journal { padding-bottom: 80px; }
.mg_article_heading { padding: 160px 0 44px; }
.mg_article_heading .breadcrumb { margin-bottom: 32px; }
.mg_article_heading .breadcrumb a { color: var(--mg-text); }
.mg_article_title { max-width: 24ch; margin: 0; font-size: clamp(36px, 4.7vw, 64px); line-height: 1.2; letter-spacing: -0.025em; text-wrap: balance; overflow-wrap: anywhere; color: var(--mg-text); }
.mg_article_meta { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 24px; color: var(--mg-muted); font-size: 14px; }
.mg_article_intro { max-width: 68ch; font-size: 21px; line-height: 1.75; color: var(--mg-text); text-wrap: pretty; }
.mg_article_cover { margin: 0 0 56px; }
.mg_article_cover img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 16px; }
.mg_prose { color: var(--mg-text); overflow-wrap: anywhere; font-size: 18px; line-height: 1.85; }
.mg_article_body, .mg_article_end { max-width: 72ch; margin-inline: auto; }
html[data-theme] .mg_prose.ck-content :is(p, li, h2, h3, h4, h5, h6, blockquote) { color: inherit; }
.mg_prose > :first-child { margin-top: 0; }
.mg_prose p { margin: 0 0 1.4em; }
.mg_prose :is(h2, h3, h4, h5, h6) { margin: 1.8em 0 .65em; line-height: 1.4; text-wrap: balance; }
.mg_prose h2 { font-size: 30px; }
.mg_prose h3 { font-size: 24px; }
.mg_prose :is(ul, ol) { padding-inline-start: 1.5em; margin-bottom: 1.5em; }
.mg_prose li + li { margin-top: 1em; }
.mg_prose a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.mg_prose :is(img, video, iframe) { max-width: 100%; }
.mg_prose img { height: auto; border-radius: 12px; }
.mg_prose :is(figure.table, pre) { max-width: 100%; overflow-x: auto; }
.mg_prose table { width: 100%; }
.mg_prose :is(th, td) { padding: 12px; border: 1px solid var(--mg-border); }
.mg_prose blockquote { margin: 32px 0; padding: 24px; border: 0; border-radius: 12px; background: var(--mg-elevated); }
/* Pasted editor colors must follow the active theme, including pasted highlights. */
html[data-theme] .mg_prose :is(span, p, div, li, strong, em, a, h2, h3, h4, th, td)[style*="color"] { color: inherit !important; background-color: transparent !important; }
.mg_article_end { margin-top: 48px; }
.mg_article_back { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; color: var(--mg-text); font-weight: 600; }
html[dir="rtl"] .mg_article_back svg { transform: scaleX(-1); }
.mg_article_related { padding-top: 72px; }
.mg_article_related h2 { margin-bottom: 32px; }
html[dir="rtl"] .mg_prose { line-height: 2; }

@media (max-width: 991px) {
  .mg_catalog_controls { grid-template-columns: minmax(0, 1fr) minmax(130px, 40%); }
  .mg_catalog_filter_fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mg_catalog_reset { justify-self: start; }
  .mg_article_heading { padding-top: 120px; }
}
@media (max-width: 575px) {
  .cs_page_heading.cs_style_1 { min-height: 248px; padding: 108px 0 32px; }
  .mg_catalog > .cs_height_100:first-child { height: 32px; }
  .mg_shop_toolbar { padding-bottom: 20px; margin-bottom: 20px; border: 0; }
  .mg_catalog_controls { gap: 10px; margin-bottom: 24px; }
  .mg_catalog_filter_fields { gap: 16px 12px; padding: 16px; }
  .mg_catalog_filter_fields label { font-size: 13px; }
  .mg_product_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
  .mg_product_media { aspect-ratio: 1; border-radius: 12px; margin-bottom: 12px; background: #fff; }
  .mg_product_media img { object-fit: contain; }
  html[data-theme="dark"] .mg_product_media { background: #fff; }
  .mg_product_title { font-size: 16px; line-height: 1.5; }
  .mg_product_title a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
  .mg_product_footer { align-items: stretch; flex-direction: column; gap: 10px; padding-top: 8px; }
  .mg_product_price { font-size: 16px; }
  .mg_add_btn { width: 100%; padding-inline: 8px; font-size: 12px; }
  .mg_product_badge { font-size: 10px; padding: 4px 8px; bottom: 8px; inset-inline-start: 8px; max-width: calc(100% - 16px); }
  .mg_wishlist_card_slot { top: 4px; inset-inline-end: 4px; }
  .mg_pdp_main { aspect-ratio: 1; }
  .mg_pdp { gap: 24px; }
  .mg_cart_summary { padding: 24px; }
  .mg_article_heading { padding: 108px 0 28px; }
  .mg_article_heading .breadcrumb { margin-bottom: 24px; }
  .mg_article_title { font-size: 34px; line-height: 1.35; letter-spacing: -0.02em; }
  .mg_article_meta { margin-top: 20px; gap: 8px 20px; }
  .mg_article_intro { font-size: 18px; line-height: 1.8; }
  .mg_article_cover { margin-bottom: 32px; }
  .mg_article_cover img { aspect-ratio: 4 / 3; border-radius: 12px; }
  .mg_prose { font-size: 18px; }
  .mg_prose h2 { font-size: 26px; }
  .mg_prose h3 { font-size: 22px; }
  .mg_article_related { padding-top: 48px; }
  .mg_journal { padding-bottom: 48px; }
}
@media (max-width: 374px) {
  .mg_product_grid { grid-template-columns: 1fr; }
  .mg_product_media { aspect-ratio: 4 / 3; }
  .mg_catalog_filter_fields { grid-template-columns: 1fr; }
  .mg_article_title { font-size: 30px; }
}
@media (min-width: 390px) and (max-width: 575px) {
  .cs_header_icon_btn { width: 44px; min-width: 44px; height: 44px; }
}
@media (max-width: 389px) {
  .cs_header_icon_btn { width: 44px; min-width: 44px; height: 44px; }
  .cs_header_icon_btns .mg_header_wishlist { display: none; }
  .mg_mobile_shortcuts { display: flex; gap: 20px; margin: 12px 15px 28px; color: var(--mg-text); }
  .mg_mobile_shortcuts :is(a, button) { display: inline-flex; align-items: center; min-height: 44px; padding: 0; background: transparent; border: 0; color: inherit; font: inherit; font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
  .mg_mobile_shortcuts .cs_search_tobble_btn { display: none; }
}
@media (max-width: 374px) {
  .cs_header_icon_btns > .cs_search_tobble_btn { display: none; }
  .mg_mobile_shortcuts .cs_search_tobble_btn { display: inline-flex; }
}
