:root {
  --mlp-pink: #ff7db0;
  --mlp-pink-hover: #fe767b;
  --mlp-orange: #ffb200;
  --mlp-charcoal: #54595f;
  --mlp-text: #7a7a7a;
  --mlp-cream: #ffedbd;
  --mlp-ivory: #fff9ea;
  --mlp-white: #ffffff;
  --mlp-line: #ece7df;
  --mlp-soft-pink: #fff0f6;
  --mlp-shadow: 0 10px 30px rgba(84, 89, 95, 0.1);
  --mlp-shadow-hover: 0 16px 36px rgba(255, 125, 176, 0.16);
  --mlp-radius: 14px;
  --mlp-container: 1220px;
}

body.mlp-page {
  margin: 0 !important;
  background: var(--mlp-white);
  color: var(--mlp-charcoal);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body.mlp-page * { box-sizing: border-box; }
body.mlp-page img { max-width: 100%; height: auto; }
body.mlp-page a { text-decoration: none; }
.mlp-site button, .mlp-site input, .mlp-site select, .mlp-site textarea { font: inherit; }
.mlp-site button { text-transform: none; }
html.mlp-scroll-locked, body.mlp-scroll-locked { overflow: hidden !important; overscroll-behavior: none; }
.mlp-site { min-height: 100vh; background: #fff; }
.mlp-container { width: min(calc(100% - 48px), var(--mlp-container)); margin-inline: auto; }
.mlp-skip-link { position: fixed; left: 16px; top: -100px; z-index: 100000; background: #fff; color: #111; padding: 10px 16px; border-radius: 8px; }
.mlp-skip-link:focus { top: 16px; }


/* Global shell isolation: header/footer must render consistently on legacy Elementor pages. */
body.mlp-global-shell .mlp-header *,
body.mlp-global-shell .mlp-mobile-nav *,
body.mlp-global-shell .mlp-footer * { box-sizing: border-box; }
body.mlp-global-shell .mlp-header a,
body.mlp-global-shell .mlp-mobile-nav a,
body.mlp-global-shell .mlp-footer a { text-decoration: none; }
body.mlp-global-shell .mlp-header button,
body.mlp-global-shell .mlp-mobile-nav button,
body.mlp-global-shell .mlp-footer button { font: inherit; text-transform: none; }
body.mlp-global-shell .mlp-header img,
body.mlp-global-shell .mlp-mobile-nav img,
body.mlp-global-shell .mlp-footer img { max-width: 100%; }

/* Header */
.mlp-header { position: sticky; top: 0; z-index: 800; background: #fff; }
body.admin-bar .mlp-header { top: 32px; }
.mlp-support-bar { min-height: 45px; background: var(--mlp-orange); }
.mlp-support-inner { width: min(calc(100% - 48px), 1320px); min-height: 45px; margin: 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: 24px; }
.mlp-support-inner a { color: #fff; font-size: 17px; font-weight: 600; white-space: nowrap; }
.mlp-support-inner a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.mlp-main-header { background: #fff; box-shadow: 0 5px 12px rgba(0, 0, 0, 0.14); }
.mlp-header-inner { width: min(calc(100% - 48px), 1320px); height: 110px; margin: auto; display: flex; align-items: center; gap: 30px; }
.mlp-brand { display: inline-flex; align-items: center; gap: 17px; min-width: 0; flex: 0 0 auto; color: var(--mlp-pink); }
.mlp-brand-logo { display: block; width: 78px; height: 78px; object-fit: contain; flex: 0 0 auto; }
.mlp-brand-name { color: var(--mlp-pink); font-size: clamp(22px, 2.1vw, 32px); font-weight: 750; letter-spacing: 0.01em; white-space: nowrap; }
.mlp-desktop-nav { margin-left: auto; display: flex; align-items: center; }
.mlp-desktop-nav a { position: relative; display: inline-flex; align-items: center; min-height: 110px; padding: 0 16px; color: var(--mlp-charcoal); font-size: 17px; font-weight: 650; white-space: nowrap; transition: color 0.2s ease; }
.mlp-desktop-nav a + a::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 20px; background: #8a8d90; transform: translateY(-50%); }
.mlp-desktop-nav a:hover,
.mlp-desktop-nav a[aria-current="page"] { color: var(--mlp-pink); }
.mlp-desktop-nav a[aria-current="page"]::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 23px; height: 3px; border-radius: 99px; background: var(--mlp-pink); }
.mlp-menu-toggle { display: none; width: 44px; height: 44px; padding: 9px; border: 1px solid #ffd0e2; border-radius: 10px; background: var(--mlp-soft-pink); cursor: pointer; }
.mlp-menu-toggle span { display: block; width: 22px; height: 2px; margin: 4px auto; border-radius: 2px; background: var(--mlp-pink); }

/* Mobile menu */
.mlp-mobile-nav-backdrop { position: fixed; inset: 0; z-index: 990; background: rgba(38, 39, 41, 0.46); backdrop-filter: blur(2px); }
.mlp-mobile-nav { position: fixed; z-index: 1000; right: 0; top: 0; bottom: 0; width: min(88vw, 380px); padding: 22px; background: #fff; box-shadow: -18px 0 50px rgba(0, 0, 0, 0.16); transform: translateX(105%); transition: transform 0.25s ease; visibility: hidden; }
.mlp-mobile-nav[aria-hidden="false"] { transform: translateX(0); visibility: visible; }
body.admin-bar .mlp-mobile-nav { top: 32px; }
.mlp-mobile-nav-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 17px; border-bottom: 1px solid var(--mlp-line); color: var(--mlp-charcoal); font-weight: 750; }
.mlp-menu-close { width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--mlp-soft-pink); color: var(--mlp-pink); font-size: 26px; cursor: pointer; }
.mlp-mobile-nav nav { display: flex; flex-direction: column; padding: 10px 0; }
.mlp-mobile-nav nav a { display: flex; align-items: center; justify-content: space-between; padding: 14px 2px; border-bottom: 1px solid #f0ece7; color: var(--mlp-charcoal); font-weight: 650; }
.mlp-mobile-nav nav a[aria-current="page"] { color: var(--mlp-pink); }
.mlp-mobile-support { display: grid; gap: 9px; margin-top: 18px; }
.mlp-mobile-support a { display: flex; justify-content: center; align-items: center; min-height: 44px; border-radius: 9px; background: var(--mlp-orange); color: #fff; font-weight: 700; }

/* Hero：比照咪可思既有內頁的全寬圖片封面 */
.mlp-hero { position: relative; display: flex; min-height: 348px; align-items: center; overflow: hidden; isolation: isolate; background: #667170; }
.mlp-hero.has-default-cover { background: linear-gradient(135deg, #778280 0%, #4f5a59 100%); }
.mlp-hero-media { position: absolute; z-index: -2; inset: 0; display: block; width: 100%; height: 100%; margin: 0; }
.mlp-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mlp-hero-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(52, 63, 63, 0.74) 0%, rgba(52, 63, 63, 0.52) 46%, rgba(52, 63, 63, 0.24) 100%); }
.mlp-hero-inner { position: relative; z-index: 1; padding: 72px 0; text-align: left; }
.mlp-hero h1 { max-width: 760px; margin: 0; color: #fff; font-size: clamp(36px, 4vw, 48px); line-height: 1.25; font-weight: 800; letter-spacing: 0.035em; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.28); }
.mlp-page-intro { background: #fff; }
.mlp-page-intro .mlp-container { padding-top: 44px; }
.mlp-page-intro p { max-width: 820px; margin: 0 auto; color: var(--mlp-text); font-size: 17px; line-height: 1.9; text-align: center; }
.mlp-wave-line { display: block; width: 170px; height: 13px; margin-top: 14px; background: radial-gradient(circle at 6px 0, transparent 6px, var(--mlp-orange) 6.5px, var(--mlp-orange) 7.5px, transparent 8px) 0 1px / 18px 12px repeat-x; }
.mlp-wave-line.is-centered { margin-inline: auto; }

/* Partner lists */
.mlp-page-content { padding: 58px 0 100px; }
.mlp-partner-section + .mlp-partner-section { margin-top: 86px; padding-top: 76px; border-top: 1px solid var(--mlp-line); }
.mlp-section-heading { margin-bottom: 28px; }
.mlp-section-heading h2 { margin: 0; color: var(--mlp-charcoal); font-size: clamp(28px, 3vw, 38px); line-height: 1.35; font-weight: 750; }
.mlp-partner-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; }
.mlp-partner-card { min-width: 0; }
.mlp-partner-trigger { position: relative; display: block; width: 100%; height: auto; min-height: 0; aspect-ratio: 1 / 1; padding: 0; overflow: hidden; border: 1px solid #ebe7e1; border-radius: var(--mlp-radius); background: #fff; box-shadow: 0 5px 16px rgba(84, 89, 95, 0.06); cursor: pointer; color: inherit; line-height: 0; }
.mlp-partner-trigger:focus-visible { border-color: #ffbad3; outline: 3px solid rgba(255, 125, 176, 0.28); outline-offset: 3px; }
.mlp-card-media { position: absolute; inset: 0; display: flex; width: 100%; height: 100%; box-sizing: border-box; padding: 9%; align-items: center; justify-content: center; overflow: hidden; background: #fff; }
body.mlp-page .mlp-card-media img { display: block; width: auto !important; height: auto !important; max-width: 100% !important; max-height: 100% !important; margin: 0 !important; object-fit: contain; object-position: center center; transform-origin: center center; }
.mlp-card-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #ffb7d1; font-size: 54px; }
.mlp-card-title { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; display: grid; min-height: 58px; place-items: center; margin: 0; padding: 12px 10px; background: rgba(255, 125, 176, 0.94); color: #fff; font-size: 16px; line-height: 1.4; text-align: center; font-weight: 700; opacity: 0; transform: translateY(100%); transition: transform 0.24s ease, opacity 0.24s ease; }
.mlp-partner-trigger:hover .mlp-card-title,
.mlp-partner-trigger:focus-visible .mlp-card-title { opacity: 1; transform: translateY(0); }
.mlp-partner-section.is-past .mlp-card-media img { filter: saturate(0.58); opacity: 0.86; }
.mlp-partner-section.is-past .mlp-card-title { color: #fff; }
.mlp-empty-state { display: grid; place-items: center; min-height: 190px; padding: 34px; border: 1px dashed #f3b5cc; border-radius: var(--mlp-radius); background: var(--mlp-ivory); color: var(--mlp-text); text-align: center; }
.mlp-empty-state span { color: var(--mlp-pink); font-size: 42px; }
.mlp-empty-state p { margin: 6px 0 0; }

/* Footer */
.mlp-footer { border-top: 5px solid var(--mlp-pink); background: var(--mlp-ivory); color: var(--mlp-text); }
.mlp-footer-grid { display: grid; grid-template-columns: 1.35fr 0.72fr 0.78fr 1.15fr; gap: 44px; padding: 62px 0 50px; }
.mlp-brand.is-footer { gap: 13px; align-items: center; }
.mlp-brand-logo.is-footer { width: 64px; height: 64px; }
.mlp-brand.is-footer .mlp-brand-name { font-size: 21px; white-space: normal; }
.mlp-footer-brand > p { max-width: 390px; margin: 18px 0 20px; color: var(--mlp-text); }
.mlp-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.mlp-footer-column h2 { margin: 0 0 10px; color: var(--mlp-charcoal); font-size: 16px; font-weight: 750; }
.mlp-footer-column > a { color: var(--mlp-text); font-size: 14px; }
.mlp-footer-column > a:hover { color: var(--mlp-pink); }
.mlp-footer-contact p { display: grid; grid-template-columns: 48px 1fr; gap: 8px; margin: 0; font-size: 14px; }
.mlp-footer-contact p span { color: var(--mlp-charcoal); font-weight: 650; }
.mlp-footer-contact a { color: inherit; overflow-wrap: anywhere; }
.mlp-footer-social-icons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.mlp-footer-social-icon,
.mlp-footer-social-icon:hover,
.mlp-footer-social-icon:active,
.mlp-footer-social-icon:visited { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: var(--mlp-pink); color: #fff; box-shadow: none; opacity: 1; transform: none; transition: none; text-decoration: none; }
.mlp-footer-social-icon svg,
.mlp-footer-social-icon img { display: block; width: 20px; height: 20px; max-width: 20px; max-height: 20px; margin: 0; object-fit: contain; fill: currentColor; }
.mlp-footer-social-icon:focus-visible { outline: 2px solid var(--mlp-charcoal); outline-offset: 3px; }
.mlp-footer-bottom { border-top: 1px solid #eadfd4; background: #fff; font-size: 12px; }
.mlp-footer-bottom .mlp-container { display: grid; grid-template-columns: 1fr auto; gap: 9px 24px; align-items: center; padding: 20px 0; }
.mlp-footer-bottom p { margin: 0; color: #858585; }
.mlp-footer-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 16px; }
.mlp-footer-legal a { color: var(--mlp-text); }
.mlp-footer-legal a:hover { color: var(--mlp-pink); }
.mlp-registration { grid-column: 1 / -1; }

/* Popup / bottom sheet */
.mlp-dialog-layer { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 26px; opacity: 0; transition: opacity 0.22s ease; }
.mlp-dialog-layer[hidden] { display: none; }
.mlp-dialog-layer.is-open { opacity: 1; }
.mlp-dialog-backdrop { position: absolute; inset: 0; background: rgba(39, 40, 42, 0.62); backdrop-filter: blur(5px); }
.mlp-dialog { position: relative; z-index: 1; width: min(920px, calc(100vw - 52px)); max-height: min(90vh, 850px); overflow: hidden; border-radius: 10px; background: #fff; box-shadow: 0 35px 100px rgba(0, 0, 0, 0.28); outline: none; transform: translateY(12px) scale(0.985); transition: transform 0.22s ease; }
.mlp-dialog-layer.is-open .mlp-dialog { transform: translateY(0) scale(1); }
.mlp-dialog-close { position: absolute; z-index: 5; right: 17px; top: 17px; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid #ffd3e3; border-radius: 50%; background: #fff; color: var(--mlp-pink); box-shadow: 0 5px 18px rgba(0, 0, 0, 0.11); line-height: 0; cursor: pointer; }
.mlp-dialog-close svg { display: block; width: 20px; height: 20px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.mlp-dialog-close:hover { background: var(--mlp-soft-pink); }
.mlp-dialog-scroll { max-height: min(90vh, 850px); overflow-y: auto; overscroll-behavior: contain; padding: 38px 42px 42px; }
.mlp-modal-title { padding-right: 54px; margin: 0 0 22px; color: var(--mlp-pink); font-size: clamp(27px, 3.5vw, 38px); line-height: 1.35; font-weight: 800; }
.mlp-modal-title::after { content: ""; display: block; width: 62px; height: 4px; margin-top: 13px; border-radius: 99px; background: var(--mlp-orange); }
.mlp-slider { position: relative; margin: 0 0 29px; overflow: hidden; border-radius: 14px; background: var(--mlp-ivory); }
.mlp-slider-viewport { overflow: hidden; touch-action: pan-y pinch-zoom; overscroll-behavior-x: contain; cursor: grab; -webkit-user-select: none; user-select: none; }
.mlp-slider-viewport.is-dragging { cursor: grabbing; }
.mlp-slider-track { display: flex; transition: transform 0.32s ease; }
.mlp-slide { flex: 0 0 100%; display: grid; place-items: center; min-height: 310px; max-height: 520px; margin: 0; padding: 10px; background: var(--mlp-ivory); }
.mlp-slide img { display: block; width: 100%; height: 100%; min-height: 290px; max-height: 500px; object-fit: contain; pointer-events: none; -webkit-user-drag: none; -webkit-user-select: none; user-select: none; }
.mlp-slider.is-single .mlp-slide { min-height: auto; }
.mlp-slider-arrow { position: absolute; z-index: 2; top: 50%; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #ffd1e2; border-radius: 50%; background: rgba(255, 255, 255, 0.94); color: var(--mlp-pink); box-shadow: 0 5px 16px rgba(0, 0, 0, 0.13); line-height: 0; cursor: pointer; transform: translateY(-50%); }
.mlp-slider-arrow svg { display: block; width: 20px; height: 20px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.mlp-slider-arrow.is-prev { left: 15px; }
.mlp-slider-arrow.is-next { right: 15px; }
.mlp-slider-dots { position: absolute; left: 50%; bottom: 13px; display: flex; gap: 7px; padding: 7px 9px; border-radius: 999px; background: rgba(255, 255, 255, 0.88); box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1); transform: translateX(-50%); }
.mlp-slider-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: #f7bfd4; cursor: pointer; transition: width 0.2s ease, background 0.2s ease; }
.mlp-slider-dot.is-active { width: 22px; border-radius: 9px; background: var(--mlp-pink); }
.mlp-cooperation-copy { color: var(--mlp-text); font-size: 16px; line-height: 1.9; }
.mlp-cooperation-copy:empty { display: none; }
.mlp-cooperation-copy > :first-child { margin-top: 0; }
.mlp-cooperation-copy > :last-child { margin-bottom: 0; }
.mlp-cooperation-copy a { color: var(--mlp-pink); text-decoration: underline; }
.mlp-partner-link { display: flex; align-items: center; justify-content: center; margin-top: 30px; padding: 15px 19px; border-radius: 10px; background: var(--mlp-pink); color: #fff; text-align: center; font-weight: 750; transition: background 0.2s ease, transform 0.2s ease; }
.mlp-partner-link:hover { background: var(--mlp-pink-hover); color: #fff; transform: translateY(-1px); }
.mlp-sheet-handle { display: none; }

@media (max-width: 1380px) {
  .mlp-desktop-nav { display: none; }
  .mlp-menu-toggle { display: block; margin-left: auto; }
  .mlp-header-inner { height: 92px; }
  .mlp-footer-grid { grid-template-columns: 1.2fr 0.8fr 0.85fr; }
  .mlp-footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .mlp-partner-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
}

@media (max-width: 767px) {
  body.admin-bar .mlp-header { top: 46px; }
  body.admin-bar .mlp-mobile-nav { top: 46px; }
  .mlp-container { width: min(calc(100% - 32px), var(--mlp-container)); }
  .mlp-support-bar { min-height: 38px; overflow-x: auto; scrollbar-width: none; }
  .mlp-support-bar::-webkit-scrollbar { display: none; }
  .mlp-support-inner { width: max-content; min-width: 100%; min-height: 38px; padding: 0 14px; justify-content: center; gap: 18px; }
  .mlp-support-inner a { font-size: 13px; }
  .mlp-header-inner { width: calc(100% - 28px); height: 76px; gap: 10px; }
  .mlp-brand { gap: 10px; min-width: 0; }
  .mlp-brand-logo { width: 52px; height: 52px; }
  .mlp-brand-name { max-width: calc(100vw - 145px); overflow: hidden; font-size: 17px; line-height: 1.25; white-space: normal; }
  .mlp-menu-toggle { flex: 0 0 auto; }
  .mlp-hero { min-height: 245px; }
  .mlp-hero-media img { object-position: center; }
  .mlp-hero-overlay { background: linear-gradient(90deg, rgba(52, 63, 63, 0.72) 0%, rgba(52, 63, 63, 0.43) 100%); }
  .mlp-hero-inner { padding: 48px 0; }
  .mlp-hero h1 { max-width: calc(100% - 20px); font-size: 32px; }
  .mlp-page-intro .mlp-container { padding-top: 32px; }
  .mlp-page-intro p { font-size: 15px; line-height: 1.8; }
  .mlp-page-content { padding: 42px 0 76px; }
  .mlp-partner-section + .mlp-partner-section { margin-top: 64px; padding-top: 57px; }
  .mlp-section-heading { margin-bottom: 21px; }
  .mlp-section-heading h2 { font-size: 29px; }
  .mlp-wave-line { width: 135px; }
  .mlp-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .mlp-card-title { min-height: 52px; padding: 10px 8px; font-size: 14px; }
  .mlp-footer-grid { grid-template-columns: 1fr; gap: 34px; padding: 49px 0 41px; }
  .mlp-footer-contact { grid-column: auto; }
  .mlp-footer-bottom .mlp-container { grid-template-columns: 1fr; padding: 18px 0; }
  .mlp-footer-legal { justify-content: flex-start; }
  .mlp-registration { grid-column: auto; }
  .mlp-dialog-layer { place-items: end center; padding: 0; }
  .mlp-dialog { width: 100%; max-height: 94dvh; border-radius: 10px 10px 0 0; transform: translateY(100%); transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); }
  .mlp-dialog-layer.is-open .mlp-dialog { transform: translateY(0); }
  .mlp-sheet-handle { display: flex; height: 28px; align-items: center; justify-content: center; touch-action: none; cursor: grab; }
  .mlp-sheet-handle span { width: 45px; height: 5px; border-radius: 5px; background: #d5d7d5; }
  .mlp-dialog-close { right: 13px; top: 28px; width: 39px; height: 39px; }
  .mlp-dialog-scroll { max-height: calc(94dvh - 28px); padding: 16px 18px 28px; }
  .mlp-modal-title { padding-right: 47px; margin-bottom: 18px; font-size: 28px; }
  .mlp-slide,
  .mlp-slide img { min-height: 220px; max-height: 48dvh; }
  .mlp-slider-arrow { display: none; }
  .mlp-cooperation-copy { font-size: 15px; }
  .mlp-partner-link { margin-top: 24px; }
}

@media (max-width: 420px) {
  .mlp-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mlp-card-title { font-size: 15px; }
}


@media (prefers-reduced-motion: reduce) {
  .mlp-site *,
  .mlp-site *::before,
  .mlp-site *::after,
  .mlp-dialog-layer,
  .mlp-dialog { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
