:root {
  --outline-teal: #10dccb;
  --outline-ink: #171616;
  --outline-text: #666;
  --outline-soft: #eff3f3;
  --outline-line: #dde4e4;
  --outline-white: #fff;
}

body { background: var(--outline-white); }
a { color: var(--outline-teal); }

body,
button,
input,
select,
textarea,
.woocommerce {
  color: var(--outline-ink);
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}

h1,
h2,
.elementor-widget-animated-headline,
.elementor-widget-theme-archive-title {
  font-family: "Times New Roman", Times, "Noto Sans SC", "Microsoft YaHei", "PingFang SC", serif;
}

/* Keep the imported Elementor kit in charge of typography, layout and animation. */
.elementor-location-header { position: relative; z-index: 50; }
.elementor-location-header .elementor-widget-woocommerce-menu-cart,
.elementor-location-header .elementor-menu-cart__container { display: none !important; }
.elementor-location-footer .elementor-social-icons-wrapper { display: none !important; }
.elementor-location-header .elementor-widget-theme-site-logo img,
.elementor-location-footer .elementor-widget-image img {
  width: auto;
  max-width: 190px;
  max-height: 48px;
}
.elementor-location-header .elementor-nav-menu a,
.elementor-location-footer .elementor-nav-menu a { font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", Arial, sans-serif !important; }

/* These pages contain their own semantic heading. */
.page-id-85 .page-header,
.page-id-71 .page-header,
.page-id-75 .page-header,
.page-id-67 .page-header { display: none; }

/* Native supporting pages retained from the existing business flow. */
.outline-page { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.outline-section { padding: 54px 0; }
.outline-section + .outline-section { border-top: 1px solid var(--outline-line); }
.outline-soft { background: var(--outline-soft); }
.outline-kicker {
  margin: 0 0 12px;
  color: var(--outline-teal);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.outline-grid,
.outline-step-grid,
.outline-account-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.outline-page,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}
.outline-card,
.outline-account-cards a {
  display: block;
  padding: 22px;
  border: 1px solid var(--outline-line);
  background: #fff;
  color: var(--outline-ink);
  text-decoration: none;
}
.outline-card p,
.outline-card-copy,
.outline-account-cards span { display: block; margin: 8px 0 0; color: var(--outline-text); line-height: 1.65; }
.outline-step-number {
  display: grid;
  width: 40px;
  height: 40px;
  margin-bottom: 18px;
  place-items: center;
  border-radius: 50%;
  background: var(--outline-ink);
  color: #fff;
  font-weight: 800;
}
.outline-platforms { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.outline-platforms a {
  padding: 18px;
  border: 1px solid var(--outline-line);
  background: #fff;
  color: var(--outline-ink);
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
.outline-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 14px 26px;
  border: 1px solid var(--outline-ink);
  background: var(--outline-ink);
  color: #fff;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
.outline-button:hover { background: var(--outline-teal); border-color: var(--outline-teal); color: #fff; }

/* Official dynamic single-product template, with only store-specific constraints. */
.single-product .elementor-widget-woocommerce-product-meta,
.single-product .related,
.single-product .upsells,
.single-product .woocommerce-tabs,
.single-product .quantity { display: none !important; }
.single-product .single_add_to_cart_button {
  min-height: 48px;
  margin: 0 !important;
  padding: 13px 26px !important;
  border: 1px solid var(--outline-ink) !important;
  border-radius: 0 !important;
  background: var(--outline-ink) !important;
  box-shadow: none !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.single-product .single_add_to_cart_button:hover {
  border-color: var(--outline-teal) !important;
  background: var(--outline-teal) !important;
}
.outline-term { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; margin: 14px 0 22px; }
.outline-term strong { font-size: 1.35rem; }
.outline-term span { color: var(--outline-text); }
.outline-feature-list {
  margin: 18px 0 22px;
  padding: 0;
  list-style: none;
}
.outline-feature-list li {
  position: relative;
  margin: 9px 0;
  padding-left: 24px;
  color: var(--outline-text);
  line-height: 1.55;
}
.outline-feature-list li::before {
  position: absolute;
  left: 0;
  content: "\2713";
  color: var(--outline-teal);
  font-weight: 800;
}
.woocommerce span.onsale {
  min-width: 58px;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 0;
  background: var(--outline-teal);
  color: var(--outline-ink);
  font-weight: 800;
  line-height: 36px;
}

/* Classic checkout: native hooks and gateways, compact visual treatment. */
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce { width: min(1120px, calc(100% - 40px)); margin: 48px auto 72px; }
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
  gap: 24px;
  align-items: start;
}

/* Elementor's Checkout widget already owns the inner two-column layout. */
.elementor-widget-woocommerce-checkout-page form.checkout { display: block; }
.elementor-widget-woocommerce-checkout-page .e-checkout__container {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
  gap: 24px;
}
.elementor-widget-woocommerce-checkout-page #order_review_heading,
.elementor-widget-woocommerce-checkout-page #order_review { grid-column: auto; }
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment {
  border: 1px solid var(--outline-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: none !important;
}
.woocommerce-checkout #customer_details { padding: 28px; }
.woocommerce-checkout #customer_details > div { width: 100%; float: none; }
.woocommerce-checkout #customer_details .col-2 { display: none; }
.woocommerce-checkout #order_review_heading {
  grid-column: 2;
  margin: 0;
  padding: 28px 28px 14px;
  border: 1px solid var(--outline-line);
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  background: #fff;
}
.woocommerce-checkout #order_review {
  grid-column: 2;
  padding: 0 28px 28px;
  border-top: 0;
  border-radius: 0 0 18px 18px;
}
.woocommerce-checkout #payment { border: 0; background: var(--outline-soft); }
.woocommerce-checkout table.shop_table { border: 0 !important; border-collapse: collapse !important; box-shadow: none !important; }
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
  padding: 16px 8px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--outline-line) !important;
}
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { border: 0 !important; box-shadow: none !important; }
.woocommerce-checkout #payment ul.payment_methods { padding: 18px !important; background: var(--outline-soft); }
.woocommerce-checkout #payment div.payment_box { margin: 12px 0 0 !important; background: #fff !important; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-account input.input-text {
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid #cbd4d4;
  border-radius: 10px;
  background: #fff;
}
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-login { grid-column: 1 / -1; }
.woocommerce-checkout .woocommerce-form-login-toggle { margin: 0 0 10px; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
  display: flex;
  min-height: 0;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 13px 16px;
  border: 0;
  background: var(--outline-soft);
  box-shadow: none;
  line-height: 1.45;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
.outline-login-message { display: inline-flex; align-items: center; gap: 10px; }
.outline-login-icon,
.outline-registration-icon {
  display: inline-grid;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  place-items: center;
  border-radius: 50%;
  background: #d8eeee;
  color: var(--outline-ink);
  font-weight: 800;
}
.woocommerce-checkout .woocommerce-form-login {
  max-width: 680px;
  margin: 0 0 16px !important;
  padding: 17px 19px !important;
  border: 1px solid var(--outline-line) !important;
  background: #fff;
  box-shadow: none !important;
}
.outline-registration-note {
  display: flex;
  gap: 12px;
  margin: 12px 0 18px;
  padding: 14px 16px;
  border: 0;
  background: var(--outline-soft);
  color: var(--outline-text);
  line-height: 1.55;
}
.outline-registration-note p { margin: 0; }
.outline-registration-note strong { color: var(--outline-ink); }
.outline-registration-note code { padding: 1px 5px; background: #dfeaea; color: var(--outline-ink); }
.outline-account-login-intro {
  display: flex;
  gap: 12px;
  margin: 0 0 20px;
  padding: 15px 17px;
  border-radius: 14px;
  background: var(--outline-soft);
  color: var(--outline-text);
}
.outline-account-login-intro p { margin: 0; line-height: 1.55; }
.outline-account-login-intro strong { color: var(--outline-ink); }

/* Native WooCommerce My Account endpoints; presentation only. */
.woocommerce-account .woocommerce {
  display: grid !important;
  grid-template-columns: 250px minmax(0, 1fr) !important;
  gap: 26px;
  align-items: start;
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation {
  grid-column: 1;
  grid-row: 1;
  padding: 12px;
  border: 1px solid var(--outline-line);
  background: #fff;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 13px 15px;
  color: var(--outline-ink);
  text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--outline-soft); color: var(--outline-ink); font-weight: 700; }
.woocommerce-account .woocommerce-MyAccount-content {
  grid-column: 2;
  grid-row: 1;
  min-height: 390px;
  padding: 30px;
  border: 1px solid var(--outline-line);
  background: #fff;
}
.outline-account-intro > p { margin-top: 0; color: var(--outline-text); }
.outline-account-cards { margin: 22px 0; }
.outline-legacy-note {
  margin: 22px 0 0;
  padding: 16px 18px;
  border-radius: 14px;
  background: var(--outline-soft);
  color: var(--outline-text);
  line-height: 1.6;
}
.outline-legacy-note strong { color: var(--outline-ink); }
.woocommerce-dashboard .woocommerce-MyAccount-content > p:nth-of-type(-n+2),
.e-my-account-tab__dashboard .woocommerce-MyAccount-content > p:nth-of-type(-n+2) { display: none; }

/* The native account layout becomes too narrow before Elementor's tablet
   breakpoint. Stack navigation and dashboard cards earlier so CJK text keeps
   normal line lengths on small laptops and tablets. */
@media (max-width: 1100px) {
  .woocommerce-account .woocommerce { display: block !important; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 20px; }
  .outline-account-cards { grid-template-columns: 1fr; }
}

/* Native login and registration forms, kept compact and easy to scan. */
.woocommerce-account .woocommerce:has(#customer_login) { display: block !important; }
.woocommerce-account #customer_login {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
  width: auto;
  padding: 26px;
  border: 1px solid var(--outline-line);
  border-radius: 18px;
  background: #fff;
}
.woocommerce-account #customer_login h2 { margin-top: 0; }
.woocommerce-account #customer_login .woocommerce-form { margin: 0; padding: 0; border: 0; }
.woocommerce-account #customer_login .outline-registration-note { margin-top: 0; }

/* Compact native use page inside the imported Elementor structure. */
.page-id-71 .outline-section { padding: 42px 0; }
.page-id-71 .outline-step-grid { margin-top: 22px; }
.page-id-71 .outline-step-grid .outline-card {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 4px 14px;
  align-items: start;
  padding: 18px;
}
.page-id-71 .outline-step-grid .outline-step-number { grid-row: 1 / 3; margin: 0; }
.page-id-71 .outline-step-grid .outline-card strong,
.page-id-71 .outline-step-grid .outline-card p { grid-column: 2; }
.page-id-71 .outline-platforms { margin-top: 20px; }
.page-id-71 .outline-platforms a {
  display: flex;
  min-height: 50px;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
}
.page-id-71 .outline-platforms a::after { content: "\2197"; color: var(--outline-teal); }
.outline-faq-list { display: grid; gap: 10px; margin-top: 20px; }
.outline-faq-list li {
  padding: 15px 18px;
  border: 1px solid var(--outline-line);
  background: #fff;
  color: var(--outline-ink);
  line-height: 1.55;
  list-style: none;
}
.outline-contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

@media (max-width: 900px) {
  .outline-grid,
  .outline-step-grid,
  .outline-account-cards { grid-template-columns: 1fr; }
  .outline-platforms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce-checkout form.checkout,
  .woocommerce-account .woocommerce { display: block !important; }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container { display: block; }
  .elementor-widget-woocommerce-checkout-page .e-checkout__column-start { margin-bottom: 22px; }
  .woocommerce-checkout #order_review_heading { margin-top: 22px; }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    grid-column: auto;
    grid-row: auto;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 20px; }
  .woocommerce-account #customer_login { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .outline-page,
  .woocommerce-checkout .woocommerce,
  .woocommerce-account .woocommerce { width: min(100% - 28px, 1160px); }
  .outline-platforms { grid-template-columns: 1fr; }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review,
  .woocommerce-account .woocommerce-MyAccount-content { padding: 20px; }
  .woocommerce-checkout #order_review_heading { padding: 20px 20px 12px; }
  .single-product .elementor-widget-woocommerce-product-title h1,
  .elementor-widget-animated-headline .elementor-headline { overflow-wrap: anywhere; }
}

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