:root {
  --primary: #1c6066;
  --ink: #383838;
  --muted: #777;
  --line: #e5e5e5;
  font-family: "Microsoft YaHei", "Noto Sans TC", Arial, sans-serif;
  color: var(--ink);
  background: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-size: 16px; line-height: 1.7; }
a { color: var(--primary); }
img { display: block; max-width: 100%; height: auto; }
button { font: inherit; }
[hidden] { display: none !important; }
.inner-wrap { width: min(1100px, calc(100% - 40px)); margin-inline: auto; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 100; padding: .6rem 1rem; background: #111; color: #fff; }
.skip-link:focus { top: 1rem; }

.site-header { position: relative; z-index: 20; min-height: 100px; border-top: 2px solid var(--primary); background: rgb(255 255 255 / 96%); }
.header-inner { display: flex; min-height: 100px; align-items: center; gap: 2rem; }
.brand { margin-right: auto; }
.brand a { display: flex; align-items: center; gap: 13px; color: #272727; text-decoration: none; }
.brand img { width: 81px; height: 53px; object-fit: contain; }
.brand span { font-size: 25px; font-weight: 700; line-height: 1.2; }
.brand small { display: block; margin-top: 5px; color: #777; font-size: 13px; font-weight: 400; }
.site-nav { display: flex; align-self: stretch; align-items: stretch; }
.site-nav a { display: grid; place-items: center; padding: 0 17px; border-top: 2px solid transparent; color: #666; font-size: 15px; font-weight: 400; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current="page"] { margin-top: -2px; border-top-color: var(--primary); color: var(--primary); }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--primary); }

.hero-slider { position: relative; overflow: hidden; background: #222; }
.hero-slide { position: relative; min-height: min(500px, 31vw); background-position: center; background-size: cover; background-repeat: no-repeat; }
.hero-hero-made-in-taiwan { background-image: url("/media/site/hero-made-in-taiwan.webp"); }
.hero-hero-sizes { background-image: url("/media/site/hero-sizes.webp"); }
.hero-hero-experience { background-image: url("/media/site/hero-experience.webp"); }
.hero-slide::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgb(0 0 0 / 45%), transparent 62%); pointer-events: none; }
.hero-copy { position: relative; z-index: 1; width: min(1100px, calc(100% - 100px)); margin: auto; padding-top: clamp(70px, 9vw, 155px); color: #fff; text-shadow: 0 2px 8px rgb(0 0 0 / 55%); }
.hero-copy h1 { max-width: 680px; margin: 0 0 24px; font-size: clamp(34px, 5vw, 63px); font-weight: 400; line-height: 1.15; }
.hero-copy a, .collaborate a { display: inline-block; padding: 10px 22px; border: 2px solid #fff; color: #fff; font-weight: 700; text-decoration: none; }
.slider-arrow { position: absolute; z-index: 3; top: 50%; width: 46px; height: 64px; translate: 0 -50%; border: 0; color: #fff; background: rgb(0 0 0 / 22%); font-size: 44px; cursor: pointer; }
.slider-arrow:hover { background: var(--primary); }
.slider-arrow.previous { left: 0; }
.slider-arrow.next { right: 0; }
.slider-dots { position: absolute; z-index: 3; bottom: 16px; left: 50%; display: flex; gap: 9px; translate: -50%; }
.slider-dots button { width: 11px; height: 11px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: transparent; }
.slider-dots button[aria-current="true"] { background: #fff; }

.facts { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 75px 45px; text-align: center; }
.facts div { padding: 0 15px; border-right: 1px solid var(--line); }
.facts div:last-child { border: 0; }
.facts strong { display: block; color: var(--primary); font-size: 34px; line-height: 1.2; }
.facts span { color: #555; font-size: 18px; }
.section-divider { position: relative; width: min(990px, 80%); height: 1px; margin: 30px auto 80px; background: linear-gradient(to right, transparent, #303133, transparent); }
.section-divider::after { position: absolute; top: -7px; left: calc(50% - 7px); width: 14px; height: 14px; rotate: 45deg; border-right: 1px solid #303133; border-bottom: 1px solid #303133; background: white; content: ""; }
.featured { padding: 0 0 90px; text-align: center; }
.featured h2 { margin: 0 0 35px; color: #222; font-size: 34px; font-weight: 400; }
.product-slider { width: min(800px, 100%); margin: auto; }
.featured-stage { position: relative; width: 100%; height: min(480px, 60vw); min-height: 350px; margin: auto; overflow: hidden; background: #fff; }
.featured-stage > img { width: 100%; height: 100%; object-fit: contain; }
.featured-stage > a { position: absolute; right: 0; bottom: 0; left: 0; padding: 14px; color: white; background: rgb(28 96 102 / 90%); font-size: 21px; text-decoration: none; }
.product-arrow { position: absolute; z-index: 3; top: 50%; width: 48px; height: 70px; translate: 0 -50%; border: 0; color: #fff; background: rgb(28 96 102 / 55%); font-size: 44px; cursor: pointer; }
.product-arrow:hover { background: rgb(28 96 102 / 90%); }
.product-previous { left: 0; }
.product-next { right: 0; }
.product-thumbnails { display: grid; grid-template-columns: repeat(6, 1fr); gap: 5px; width: 100%; margin: 5px auto 0; }
.product-thumbnails button { padding: 0; overflow: hidden; border: 2px solid transparent; background: #fff; cursor: pointer; }
.product-thumbnails button[aria-current="true"] { border-color: var(--primary); }
.product-thumbnails img { width: 100%; height: 140px; object-fit: cover; }
.product-thumbnails span { display: block; padding: 5px 2px; color: #555; font-size: 11px; }

/* Exact intent from the original Ample custom section01–03 CSS. */
.philosophy { position: relative; width: 100%; height: 100vh; min-height: 620px; background-position: center; background-size: cover; color: #fff; text-align: center; }
.philosophy::after { position: absolute; inset: 0; content: ""; background: linear-gradient(to bottom, rgb(255 255 255) 0%, rgb(28 96 102 / 70%) 50%, rgb(255 255 255) 100%); }
.philosophy > div { position: absolute; inset: 0; z-index: 1; text-shadow: 0 2px 7px #000; }
.philosophy h2 { position: absolute; top: 35%; left: 50%; width: max-content; max-width: 94%; margin: 0; translate: -50% -50%; font-size: 8vmin; font-weight: 400; white-space: nowrap; }
.philosophy p { position: absolute; top: 52%; left: 50%; width: max-content; max-width: 94%; margin: 0; translate: -50% -50%; font-size: 4vmin; white-space: nowrap; }
.philosophy a { position: absolute; bottom: 7%; left: 50%; translate: -50%; color: #fff; font-size: 55px; line-height: 1; text-decoration: none; }
.philosophy.manufacturer { background-image: url('/media/site/philosophy-manufacturer.webp'); }
.philosophy.value { background-image: url('/media/site/philosophy-value.webp'); }
.philosophy.experience { background-image: url('/media/site/philosophy-experience.webp'); }
.collaborate { padding: 100px 20px; background: var(--primary); color: white; text-align: center; }
.collaborate h2 { margin: 0 0 25px; font-size: clamp(35px, 6vw, 62px); font-weight: 400; }

.eyebrow { margin: 0; color: #777; letter-spacing: .08em; }
.about-rebuild { overflow: hidden; }
.about-hero { margin: 0 0 45px; }
.about-hero img { width: 100%; height: min(360px, 36vw); min-height: 230px; object-fit: cover; }
.about-copy { width: min(850px, 100%); margin: auto; font-size: 18px; line-height: 2; }
.about-copy h2, .contact-intro h2, .catalog-rebuild h2 { margin: 5px 0 22px; color: var(--primary); font-size: 34px; }
.about-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 42px; background: var(--line); }
.about-facts div { padding: 22px; background: #fff; text-align: center; }
.about-facts dt { color: #777; }
.about-facts dd { margin: 4px 0 0; color: var(--primary); font-size: 20px; font-weight: 700; }
.contact-intro { width: min(740px, 100%); margin: 25px auto 45px; text-align: center; }
.contact-map { margin-top: 48px; }
.contact-map iframe { width: 100%; height: 460px; border: 0; }
.catalog-rebuild header { padding: 20px 0 35px; text-align: center; }
.catalog-actions { display: flex; justify-content: center; gap: 22px; align-items: center; margin-top: 25px; }
.primary-button { display: inline-block; padding: 12px 22px; border-radius: 2px; background: var(--primary); color: #fff; text-decoration: none; }
.catalog-viewer { width: 100%; height: min(78vh, 960px); min-height: 700px; border: 1px solid var(--line); }

.content-shell { min-height: 55vh; padding-block: 55px 80px; }
.content-shell > h1 { margin: 0 0 35px; padding: 0 0 18px; border-bottom: 1px solid var(--line); color: #222; font-size: 34px; font-weight: 400; }
.legacy-content::after { display: table; clear: both; content: ""; }
.legacy-content figure { margin: 1.5rem 0; }
.legacy-content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.legacy-content td, .legacy-content th { padding: .5rem; border: 1px solid var(--line); }

/* Rebuilt from the original Elementor 2.6 page-24 JSON and generated CSS. */
.elementor-rebuild { max-width: 1140px; margin-inline: auto; }
.section-heading { margin: 40px 0 28px; text-align: center; }
.section-heading h2 { margin: 0; color: var(--primary); font-size: 34px; font-weight: 600; }
.category-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; margin-bottom: 70px; }
.category-box { color: var(--primary); text-align: center; text-decoration: none; }
.category-box img { width: 100%; aspect-ratio: 1.415 / 1; object-fit: contain; transition: transform .3s ease, opacity .3s ease; }
.category-box strong { display: block; margin-top: 12px; font-size: 21px; }
.category-box:hover img { transform: translateY(-5px); opacity: .82; }
.preview-cards { display: flex; justify-content: center; gap: 90px; min-height: 430px; padding: 80px 12%; }
.preview-card { position: relative; z-index: 0; display: grid; width: 240px; height: 240px; place-items: end start; padding: 15px; border: 2px solid #e8e8ee; border-radius: 4px; background: #fff; box-shadow: 0 0 0 rgb(0 0 0 / 0%); color: #5a5863; text-decoration: none; transition: .25s cubic-bezier(.28,.05,.65,.97); }
.preview-card::after { position: absolute; right: -2px; bottom: -2px; left: -2px; height: 4px; border-radius: 0 0 4px 4px; background: var(--primary); content: ""; }
.preview-title { font-size: 25px; font-weight: 600; }
.preview-stack img { position: absolute; bottom: 10px; left: 0; z-index: -1; width: 160px; height: 110px; border-radius: 4px; object-fit: cover; box-shadow: 0 0 0 rgb(0 0 0 / 0%); transition: .25s cubic-bezier(.28,.05,.65,.97); }
.preview-card:hover, .preview-card:focus-visible { z-index: 5; transform: scale(1.14); border-color: #5a5863; background: #5a5863; box-shadow: -27px 18px 80px rgb(0 0 0 / 30%); color: #e8e8ee; }
.preview-card:hover img, .preview-card:focus-visible img { box-shadow: -8px 5px 30px rgb(0 0 0 / 20%); }
.preview-card:hover img:nth-child(1), .preview-card:focus-visible img:nth-child(1) { transform: rotate(-4deg) translate(-150px,-100px); }
.preview-card:hover img:nth-child(2), .preview-card:focus-visible img:nth-child(2) { transform: rotate(7deg) translate(-120px,0); }
.preview-card:hover img:nth-child(3), .preview-card:focus-visible img:nth-child(3) { transform: rotate(5deg) translate(-40px,100px); }
.preview-card:hover img:nth-child(4), .preview-card:focus-visible img:nth-child(4) { transform: rotate(3deg) translate(130px,70px); }
.preview-card:hover img:nth-child(5), .preview-card:focus-visible img:nth-child(5) { transform: rotate(-7deg) translate(180px,-40px); }
.material-columns { columns: 2; column-gap: 55px; padding-top: 25px; }
.material-columns > * { break-inside: avoid; }
.material-columns > h2 { color: var(--primary); }
.material-columns > img { display: none; }
.contact-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; align-items: stretch; margin: 40px 0; }
.contact-box { display: flex; min-height: 230px; flex-direction: column; align-items: center; justify-content: center; padding: 20px 12px; border: 1px solid var(--line); color: var(--ink); text-align: center; text-decoration: none; }
.contact-box h2 { margin: 9px 0; color: var(--primary); font-size: 19px; }
.contact-box p, .contact-box a { margin: 0; overflow-wrap: anywhere; font-size: 14px; }
.contact-icon { color: var(--primary); font-size: 36px; }
.line-box img { width: 150px; margin-bottom: 10px; }
#photo-gallery { display: contents; }
.product-spec { display: grid; grid-template-columns: minmax(0, 3fr) minmax(320px, 2fr); gap: 34px; align-items: center; padding: 44px 0; border-bottom: 1px solid var(--line); }
.product-spec figure { margin: 0; }
.product-spec figure img { width: 100%; max-height: 560px; object-fit: contain; }
.product-spec-copy { min-width: 0; }
.product-spec-copy h2 { color: var(--primary); font-size: 30px; }
.product-spec-copy table { display: table; width: 100%; font-size: 13px; }
.product-spec-copy th { background: var(--primary); color: #fff; }
.page-22 .legacy-content > img:first-child { width: 100%; max-height: 285px; margin-bottom: 34px; object-fit: cover; }
.page-22 .legacy-content { font-size: 18px; }

.product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; margin-top: 45px; }
.product-card { min-height: 145px; display: flex; flex-direction: column; justify-content: end; padding: 22px; border-top: 5px solid var(--primary); box-shadow: 0 7px 24px rgb(0 0 0 / 10%); color: var(--ink); text-decoration: none; }
.product-card span { font-size: 22px; font-weight: 700; }
.product-card small { color: var(--muted); }

.site-footer { color: #ddd; background: #333; }
.footer-widgets { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 55px; align-items: start; padding-block: 60px; }
.footer-widgets h2 { margin-top: 0; color: #fff; font-size: 20px; font-weight: 400; }
.footer-widgets p { font-size: 14px; }
.footer-widgets section:first-child img { margin-top: 30px; }
.footer-widgets section:last-child img { width: 220px; margin: auto; }
.copyright { padding: 20px; border-top: 1px solid #444; color: #aaa; background: #292929; text-align: center; }
.not-found { max-width: 50rem; margin: 10vh auto; padding: 2rem; }

@media (max-width: 850px) {
  .site-header, .header-inner { min-height: 76px; }
  .header-inner { flex-wrap: wrap; gap: 0; padding-block: 10px; }
  .brand span { font-size: 20px; }
  .brand img { width: 61px; height: 40px; }
  .menu-toggle { display: block; padding: 10px; }
  .site-nav { display: none; flex-basis: 100%; flex-direction: column; }
  .site-nav[data-open="true"] { display: flex; }
  .site-nav a { min-height: 45px; border-top: 1px solid var(--line); }
  .site-nav a:hover, .site-nav a[aria-current="page"] { margin-top: 0; }
  .hero-slide { min-height: 410px; }
  .hero-copy { width: calc(100% - 70px); padding-top: 115px; }
  .facts { grid-template-columns: repeat(2, 1fr); gap: 35px 0; padding-top: 50px; }
  .facts div:nth-child(2) { border: 0; }
  .product-thumbnails { grid-template-columns: repeat(3, 1fr); }
  .product-thumbnails img { height: 115px; }
  .philosophy h2 { font-size: 7vmin; white-space: normal; }
  .philosophy p { font-size: 3.5vmin; }
  .about-facts { grid-template-columns: 1fr; }
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .category-box:last-child { grid-column: 1 / -1; width: calc(50% - 12px); justify-self: center; }
  .preview-cards { gap: 35px; padding-inline: 20px; }
  .material-columns { columns: 1; }
  .contact-grid { grid-template-columns: repeat(2, 1fr); }
  .line-box { grid-column: 1 / -1; }
  .product-spec { grid-template-columns: 1fr; }
  .product-spec-copy table { display: block; overflow-x: auto; }
  .footer-widgets { grid-template-columns: 1fr; text-align: center; }
  .footer-widgets img { margin-inline: auto !important; }
}

@media (max-width: 480px) {
  .inner-wrap { width: min(100% - 28px, 1100px); }
  .brand small { display: none; }
  .hero-slide { min-height: 330px; }
  .hero-copy { padding-top: 92px; }
  .hero-copy h1 { font-size: 33px; }
  .slider-arrow { width: 34px; }
  .facts strong { font-size: 29px; }
  .facts span { font-size: 15px; }
  .philosophy { min-height: 580px; }
  .philosophy h2 { top: 33%; width: calc(100% - 28px); font-size: 10vw; white-space: normal; }
  .philosophy p { top: 53%; width: calc(100% - 36px); font-size: 5.6vw; white-space: normal; }
  .featured-stage { min-height: 300px; height: 75vw; }
  .product-thumbnails { grid-template-columns: repeat(2, 1fr); }
  .product-thumbnails img { height: 120px; }
  .catalog-actions { flex-direction: column; }
  .catalog-viewer { min-height: 520px; }
  .category-grid { grid-template-columns: 1fr; }
  .category-box:last-child { grid-column: auto; width: 100%; }
  .preview-cards { min-height: 0; flex-direction: column; align-items: center; padding-block: 30px; }
  .preview-card:hover img, .preview-card:focus-visible img { transform: none !important; }
  .contact-grid { grid-template-columns: 1fr; }
  .line-box { grid-column: auto; }
  .product-spec { padding-block: 30px; }
  .product-spec-copy h2 { font-size: 25px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .category-box img, .preview-card, .preview-stack img { transition: none; }
  .preview-card:hover, .preview-card:focus-visible { transform: none; }
  .preview-card:hover img, .preview-card:focus-visible img { transform: none !important; }
}
