/*
Theme Name: Mingjian Theme
Theme URI: https://mingjian.wuyoustudio.com/
Author: Wuyou Studio
Description: WordPress display theme for Mingjian Imaging semiconductor 3D metrology modules.
Version: 1.0.1
Text Domain: mingjian-theme
*/

:root {
    --mingjian-color-ink: #14212b;
    --mingjian-color-muted: #5d6b75;
    --mingjian-color-surface: #ffffff;
    --mingjian-color-surface-muted: #f4f7f8;
    --mingjian-color-line: #dce5e8;
    --mingjian-color-brand: #29a7e1;
    --mingjian-color-brand-dark: #00529c;
    --mingjian-color-focus: #b05b00;
    --mingjian-font-sans: Inter, "Noto Sans SC", "Microsoft YaHei", sans-serif;
    --mingjian-font-display: "Noto Sans SC", "Microsoft YaHei", sans-serif;
    --mingjian-space-1: 0.5rem;
    --mingjian-space-2: 0.75rem;
    --mingjian-space-3: 1rem;
    --mingjian-space-4: 1.5rem;
    --mingjian-space-5: 2rem;
    --mingjian-radius: 0.5rem;
    --mingjian-shadow: 0 0.75rem 2rem rgb(20 33 43 / 0.1);
    --container: 1440px;
    --container-inset: clamp(32px, calc(13.52vw - 18.7px), 176px);
    --text-body: 16px;
    --text-body-lg: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--mingjian-color-ink);
    background: var(--mingjian-color-surface);
    font-family: var(--mingjian-font-sans);
    font-size: var(--text-body);
    line-height: 1.6;
}
a { color: inherit; text-decoration-thickness: 0.08em; text-underline-offset: 0.15em; }
img { display: block; max-width: 100%; height: auto; }
button, a { font: inherit; }
button { cursor: pointer; }
.container { width: min(calc(100% - var(--container-inset)), var(--container)); margin-inline: auto; }
.mingjian-section--dark { background: var(--mingjian-color-brand-dark); color: #fff; }
.mingjian-inner-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-color: #003f78;
    background-image: linear-gradient(90deg, rgb(0 27 52 / 0.94) 0%, rgb(0 27 52 / 0.84) 42%, rgb(0 27 52 / 0.5) 72%, rgb(0 27 52 / 0.34) 100%), var(--mingjian-banner-image);
    background-position: center;
    background-size: cover;
    color: #fff;
}
.mingjian-inner-banner > .container, .mingjian-inner-banner > .news-article__hero-inner { position: relative; z-index: 1; }
.mingjian-inner-banner .mingjian-kicker { color: #8ed8f8; }
.mingjian-section--muted { background: var(--mingjian-color-surface-muted); }
.mingjian-kicker { margin: 0; color: var(--mingjian-color-brand-dark); font-size: 12px; font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
.mingjian-section-heading { max-width: 46rem; }
.mingjian-section-heading h2 { margin: 0.5rem 0 0.75rem; font-size: 30px; line-height: 1.2; }
.mingjian-section-heading > p:last-child { margin: 0; color: var(--mingjian-color-muted); }
.mingjian-button, .mingjian-text-link { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 2.75rem; font-weight: 700; text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
.mingjian-button { padding: 0.55rem 1rem; border: 1px solid var(--mingjian-color-brand-dark); border-radius: var(--mingjian-radius); background: var(--mingjian-color-brand-dark); color: #fff; }
.mingjian-button:hover, .mingjian-button:focus-visible { border-color: var(--mingjian-color-brand-dark); background: var(--mingjian-color-brand-dark); color: #fff; transform: translateY(-2px); }
.mingjian-button--ghost { border-color: rgb(255 255 255 / 0.65); background: transparent; }
.mingjian-button--ghost:hover, .mingjian-button--ghost:focus-visible { border-color: #fff; background: #fff; color: var(--mingjian-color-brand-dark); }
.mingjian-text-link { min-height: 2.5rem; color: var(--mingjian-color-brand-dark); }
.mingjian-text-link:hover, .mingjian-text-link:focus-visible { color: var(--mingjian-color-brand-dark); transform: translateX(3px); }
.is-js-enabled [data-mingjian-reveal] { opacity: 0; transform: translateY(16px); transition: opacity 480ms ease, transform 480ms ease; transition-delay: var(--mingjian-reveal-delay, 0ms); }
.is-js-enabled [data-mingjian-reveal].is-visible { opacity: 1; transform: none; }
.site-header { position: sticky; top: 0; z-index: 80; border-bottom: 1px solid var(--mingjian-color-line); background: rgb(255 255 255 / 0.96); backdrop-filter: blur(14px); transition: box-shadow 180ms ease, background-color 180ms ease; }
.site-header.is-scrolled { background: rgb(255 255 255 / 0.985); box-shadow: 0 0.5rem 1.5rem rgb(20 33 43 / 0.08); }
.site-header__inner { display: flex; align-items: center; gap: var(--mingjian-space-4); min-height: 5rem; transition: min-height 180ms ease, padding-block 180ms ease; }
.site-header.is-scrolled .site-header__inner { min-height: calc(5rem - 15px); }
.site-logo { display: inline-flex; flex: 0 0 auto; align-items: center; }
.site-logo img { width: auto; max-width: 15.6rem; max-height: 3.51rem; }
.primary-navigation { margin-inline: auto; }
.primary-navigation__list, .site-footer__links, .site-footer__legal { display: flex; }
.primary-navigation__list { gap: clamp(0.15rem, 0.8vw, 0.7rem); margin: 0; padding: 0; list-style: none; }
.primary-navigation__item { position: relative; }
.primary-navigation__item > a, .primary-navigation__link-group > a { position: relative; display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.35rem 0.55rem; border-radius: var(--mingjian-radius); color: var(--mingjian-color-ink); font-size: 0.94rem; font-weight: 600; text-decoration: none; }
.primary-navigation__item > a::after, .primary-navigation__link-group > a::after { position: absolute; right: 0.55rem; bottom: 0.25rem; left: 0.55rem; height: 2px; border-radius: 999px; background: var(--mingjian-color-brand); content: ""; opacity: 0; transform: scaleX(0.35); transition: opacity 180ms ease, transform 180ms ease; }
.primary-navigation__item > a:hover, .primary-navigation__item > a[aria-current="page"], .primary-navigation__link-group > a:hover, .primary-navigation__link-group > a[aria-current="page"] { color: var(--mingjian-color-brand-dark); }
.primary-navigation__item > a:hover::after, .primary-navigation__item > a[aria-current="page"]::after, .primary-navigation__link-group > a:hover::after, .primary-navigation__link-group > a[aria-current="page"]::after { opacity: 1; transform: scaleX(1); }
.primary-navigation__link-group { display: inline-flex; align-items: center; }
.primary-navigation__submenu-toggle { display: inline-grid; width: 1.7rem; height: 2.75rem; place-items: center; padding: 0; border: 0; background: transparent; color: var(--mingjian-color-ink); font-size: 0.9rem; line-height: 1; }
.primary-navigation__submenu-toggle:hover, .primary-navigation__submenu-toggle:focus-visible { color: var(--mingjian-color-brand-dark); }
.primary-navigation__submenu-toggle > span { display: block; position: relative; top: -0.08em; transition: transform 180ms ease; }
.primary-navigation__item--has-children.is-submenu-open .primary-navigation__submenu-toggle > span { transform: rotate(180deg); }
.primary-navigation__submenu { position: absolute; top: 100%; left: 0; z-index: 90; display: none; min-width: 14rem; margin: 0; padding: 0.5rem; border: 1px solid var(--mingjian-color-line); border-radius: var(--mingjian-radius); background: #fff; box-shadow: var(--mingjian-shadow); list-style: none; }
.primary-navigation__item--has-children:hover > .primary-navigation__submenu, .primary-navigation__item--has-children:focus-within > .primary-navigation__submenu, .primary-navigation__item--has-children.is-submenu-open > .primary-navigation__submenu { display: grid; gap: 0.15rem; }
.primary-navigation__submenu a { display: flex; min-height: 2.5rem; align-items: center; padding: 0.55rem 0.75rem; border-radius: calc(var(--mingjian-radius) - 0.15rem); color: var(--mingjian-color-ink); font-size: 0.9rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.primary-navigation__submenu a:hover, .primary-navigation__submenu a:focus-visible, .primary-navigation__submenu a[aria-current="page"] { background: var(--mingjian-color-surface-muted); color: var(--mingjian-color-brand-dark); }
.primary-navigation__menu-button { display: none; width: 2.75rem; height: 2.75rem; padding: 0.65rem; border: 1px solid var(--mingjian-color-line); border-radius: var(--mingjian-radius); background: #fff; }
.primary-navigation__menu-button > span[aria-hidden="true"] { display: block; height: 2px; margin-block: 0.24rem; border-radius: 999px; background: currentColor; }
.site-header__tools { display: flex; flex: 0 0 auto; align-items: center; }
.site-language-switch { position: relative; isolation: isolate; display: grid; width: 4.75rem; min-height: 2.75rem; grid-template-columns: repeat(2, 2.05rem); column-gap: 0.1rem; align-items: center; justify-content: center; overflow: hidden; padding: 0.2rem; border: 1px solid var(--mingjian-color-line); border-radius: 999px; background: #fff; color: var(--mingjian-color-muted); font-size: 0.72rem; font-weight: 800; line-height: 1; text-decoration: none; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.site-language-switch__indicator { --mingjian-language-shift: 0rem; position: absolute; top: 0.2rem; bottom: 0.2rem; left: 0.2rem; z-index: 0; width: 2.05rem; border-radius: 999px; background: var(--mingjian-color-brand-dark); box-shadow: 0 0.25rem 0.65rem rgb(0 82 156 / 0.2); transform: translateX(var(--mingjian-language-shift)); animation: mingjian-language-indicator-enter 320ms cubic-bezier(0.22, 1, 0.36, 1) both; transition: background-color 180ms ease, box-shadow 180ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1); }
.site-language-switch.is-english .site-language-switch__indicator { --mingjian-language-shift: 2.15rem; }
.site-language-switch__option { position: relative; z-index: 1; display: grid; width: 2.05rem; min-height: 2.25rem; place-items: center; color: var(--mingjian-color-muted); transition: color 180ms ease, transform 180ms ease; }
.site-language-switch__option.is-current { color: #fff; }
.site-language-switch:hover, .site-language-switch:focus-visible { border-color: var(--mingjian-color-brand); box-shadow: 0 0.4rem 1rem rgb(20 33 43 / 0.12); transform: translateY(-1px); }
.site-language-switch:hover .site-language-switch__indicator, .site-language-switch:focus-visible .site-language-switch__indicator { background: var(--mingjian-color-brand-dark); box-shadow: 0 0.35rem 0.8rem rgb(41 167 225 / 0.28); }
.site-language-switch:hover .site-language-switch__option:not(.is-current), .site-language-switch:focus-visible .site-language-switch__option:not(.is-current) { color: var(--mingjian-color-brand-dark); transform: translateY(-1px); }
.site-language-switch:active { transform: translateY(0) scale(0.97); }
@keyframes mingjian-language-indicator-enter {
    from { opacity: 0.45; transform: translateX(var(--mingjian-language-shift)) scale(0.72); }
    to { opacity: 1; transform: translateX(var(--mingjian-language-shift)) scale(1); }
}
.site-main { min-height: 20rem; }
.site-footer { padding-block: var(--mingjian-space-5) var(--mingjian-space-3); border-top: 1px solid var(--mingjian-color-line); background: var(--mingjian-color-surface-muted); }
.site-footer__main { display: grid; grid-template-columns: minmax(8rem, 1fr) 2fr minmax(12rem, 1fr); gap: var(--mingjian-space-5); }
.site-footer__brand { display: flex; flex-direction: column; align-items: center; align-self: start; gap: var(--mingjian-space-2); text-align: center; }
.site-footer__brand .site-logo { justify-content: center; margin-inline-end: 0; }
.site-footer__brand .site-logo img { max-width: 10rem; max-height: 2.25rem; }
.site-footer__qr { display: block; width: 6rem; height: 6rem; margin: 0; object-fit: contain; }
.site-footer__links { justify-content: space-between; gap: var(--mingjian-space-3); }
.site-footer__group h2 { margin: 0 0 var(--mingjian-space-1); font-family: var(--mingjian-font-display); font-size: 1rem; }
.site-footer__group ul { display: grid; gap: 0.3rem; margin: 0; padding: 0; list-style: none; color: var(--mingjian-color-muted); font-size: 0.9rem; }
.site-footer__contact { display: grid; align-content: start; gap: 0.3rem; color: var(--mingjian-color-muted); font-style: normal; }
.site-footer__contact a { color: var(--mingjian-color-ink); font-weight: 600; }
.site-footer__contact p { margin: 0; }
.site-footer__legal { flex-wrap: wrap; gap: var(--mingjian-space-3); margin-top: var(--mingjian-space-5); padding-top: var(--mingjian-space-3); border-top: 1px solid var(--mingjian-color-line); color: var(--mingjian-color-muted); font-size: 0.85rem; }
.site-footer__legal > a:first-of-type { margin-inline-start: auto; }
.mingjian-floating-contact { position: fixed; top: 50%; right: 0; z-index: 70; display: grid; transform: translateY(-50%); border: 1px solid var(--mingjian-color-line); border-right: 0; border-radius: 0.7rem 0 0 0.7rem; background: #fff; box-shadow: var(--mingjian-shadow); }
.mingjian-floating-contact__item, .mingjian-floating-contact__qr > button, .mingjian-floating-contact__top { display: grid; width: 3.4rem; min-height: 3.4rem; place-items: center; gap: 0.05rem; padding: 0.4rem; border: 0; border-bottom: 1px solid var(--mingjian-color-line); background: transparent; color: var(--mingjian-color-ink); font-size: 0.78rem; text-decoration: none; transition: background-color 180ms ease, color 180ms ease; }
.mingjian-floating-contact__item span, .mingjian-floating-contact__qr > button span, .mingjian-floating-contact__top { color: var(--mingjian-color-brand-dark); font-size: 1.15rem; }
.mingjian-floating-contact__item strong, .mingjian-floating-contact__qr strong { font-size: 0.7rem; font-weight: 600; }
.mingjian-floating-contact__item:hover, .mingjian-floating-contact__item:focus-visible, .mingjian-floating-contact__qr > button:hover, .mingjian-floating-contact__qr > button:focus-visible, .mingjian-floating-contact__top:hover, .mingjian-floating-contact__top:focus-visible { background: var(--mingjian-color-brand-dark); color: #fff; cursor: pointer; }
.mingjian-floating-contact__item:hover span, .mingjian-floating-contact__item:focus-visible span, .mingjian-floating-contact__qr > button:hover span, .mingjian-floating-contact__qr > button:focus-visible span, .mingjian-floating-contact__top:hover, .mingjian-floating-contact__top:focus-visible { color: #fff; }
.mingjian-floating-contact__item { position: relative; }
.mingjian-floating-contact__detail { position: absolute; top: 50%; right: calc(100% + 0.65rem); z-index: 1; width: max-content; max-width: 18rem; padding: 0.55rem 0.75rem; border: 1px solid var(--mingjian-color-line); border-radius: var(--mingjian-radius); background: #fff; box-shadow: var(--mingjian-shadow); color: var(--mingjian-color-ink) !important; font-size: 0.82rem !important; line-height: 1.35; opacity: 0; pointer-events: none; transform: translate(0.4rem, -50%); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; visibility: hidden; white-space: nowrap; }
.mingjian-floating-contact__item:hover .mingjian-floating-contact__detail, .mingjian-floating-contact__item:focus-visible .mingjian-floating-contact__detail { opacity: 1; transform: translate(0, -50%); visibility: visible; }
.mingjian-floating-contact__qr { position: relative; }
.mingjian-floating-contact__qr > button { border-bottom: 0; }
.mingjian-floating-contact__qr-panel { position: absolute; right: calc(100% + 0.75rem); bottom: 0; width: 12rem; padding: 0.8rem; border: 1px solid var(--mingjian-color-line); border-radius: var(--mingjian-radius); background: #fff; box-shadow: var(--mingjian-shadow); text-align: center; transform-origin: right bottom; animation: mingjian-floating-qr-enter 180ms ease both; }
.mingjian-floating-contact__qr-panel img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.mingjian-floating-contact__qr-panel p { margin: 0.55rem 0 0; color: var(--mingjian-color-muted); font-size: 0.78rem; }
.mingjian-floating-contact__top { border-bottom: 0; }
.mingjian-floating-contact__top:not([hidden]) { border-top: 1px solid var(--mingjian-color-line); }
.mingjian-floating-contact__top[hidden] { display: none; }
@keyframes mingjian-floating-qr-enter {
    from { opacity: 0; transform: translateX(0.4rem) scale(0.97); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus, .skip-link:focus { top: 0.75rem; left: 0.75rem; z-index: 100; width: auto; height: auto; padding: 0.65rem 0.85rem; clip: auto; overflow: visible; border-radius: var(--mingjian-radius); background: var(--mingjian-color-ink); color: #fff; }
:focus-visible { outline: 0.2rem solid var(--mingjian-color-focus); outline-offset: 0.2rem; }

@media (min-width: 769px) {
    .primary-navigation__submenu-toggle > span { transform: translateX(-0.3rem); }
    .primary-navigation__item--has-children.is-submenu-open .primary-navigation__submenu-toggle > span { transform: translateX(-0.3rem) rotate(180deg); }
}

@media (min-width: 769px) and (max-width: 1100px) {
    .site-logo img { max-width: 13rem; max-height: 2.925rem; }
}

@media (max-width: 900px) {
    .primary-navigation__list { gap: var(--mingjian-space-1); }
    .primary-navigation__item > a, .primary-navigation__link-group > a { padding-inline: 0.38rem; font-size: 0.86rem; }
}

@media (max-width: 768px) {
    .mingjian-inner-banner {
        background-image: linear-gradient(90deg, rgb(0 27 52 / 0.92), rgb(0 27 52 / 0.68)), var(--mingjian-banner-image);
        background-position: 62% center;
    }
    .site-header__inner { flex-wrap: wrap; min-height: 4.5rem; gap: var(--mingjian-space-2); padding-block: 0.55rem; }
    .site-header.is-scrolled .site-header__inner { min-height: calc(4.5rem - 15px); padding-block: 0.35rem; }
    .site-logo { margin-inline-end: auto; }
    .site-logo img { max-width: min(15.6rem, calc(100vw - 12.125rem)); }
    .site-header__tools { order: 2; }
    .primary-navigation__menu-button { display: block; }
    .primary-navigation { order: 3; width: 100%; }
    .is-js-enabled .primary-navigation:not(.is-open) { display: none; }
    .primary-navigation__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.15rem; padding-block: 0.4rem 0.7rem; }
    .primary-navigation__link-group { width: 100%; }
    .primary-navigation__item > a, .primary-navigation__link-group > a { width: 100%; min-height: 2.75rem; padding-inline: 0.7rem; font-size: 0.96rem; }
    .primary-navigation__item > a::after, .primary-navigation__link-group > a::after { right: 0.7rem; left: 0.7rem; }
    .primary-navigation__submenu-toggle { width: 2.75rem; height: 2.75rem; }
    .primary-navigation__item--has-children:hover > .primary-navigation__submenu { display: none; }
    .primary-navigation__item--has-children:focus-within > .primary-navigation__submenu, .primary-navigation__item--has-children.is-submenu-open > .primary-navigation__submenu { display: grid; }
    .primary-navigation__submenu { position: static; min-width: 0; padding: 0.25rem 0 0.45rem 1rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
    .primary-navigation__submenu a { min-height: 2.5rem; padding-inline: 0.7rem; color: var(--mingjian-color-muted); }
    .site-footer__main { grid-template-columns: 1fr 1fr; }
    .site-footer__links { grid-column: 1 / -1; grid-row: 1; }
    .mingjian-floating-contact { top: auto; right: max(0.75rem, env(safe-area-inset-right)); bottom: max(0.75rem, env(safe-area-inset-bottom)); display: flex; transform: none; border-right: 1px solid var(--mingjian-color-line); border-radius: 0.7rem; }
    .mingjian-floating-contact__item, .mingjian-floating-contact__qr > button, .mingjian-floating-contact__top { width: 3rem; min-height: 3rem; border-right: 1px solid var(--mingjian-color-line); border-bottom: 0; }
    .mingjian-floating-contact__top { border-top: 0; border-right: 0; }
    .mingjian-floating-contact__item strong, .mingjian-floating-contact__qr strong { display: none; }
    .mingjian-floating-contact__detail { display: none; }
    .mingjian-floating-contact__qr-panel { right: 0; bottom: calc(100% + 0.75rem); }
}

@media (max-width: 576px) {
    .mingjian-section-heading h2 { font-size: 24px; }
    .site-footer__main { display: grid; grid-template-columns: 1fr; }
    .site-footer__links { display: grid; grid-template-columns: 1fr 1fr; }
    .site-footer__legal > a:first-of-type { margin-inline-start: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
    .is-js-enabled [data-mingjian-reveal] { opacity: 1; transform: none; }
}
