/*
Theme Name: PR5858 Local
Theme URI: http://localhost/pr5858tw
Description: Local reconstruction of the PR5858 catalogue and rental storefront.
Version: 1.0.0
Text Domain: pr5858-local
*/

:root { --red:#ee2227; --dark:#252525; --muted:#777; --line:#e8e8e8; --paper:#fff; }
* { box-sizing:border-box; }
body { margin:0; color:#333; background:#fff; font:14px/1.65 Arial, "Microsoft JhengHei", "Noto Sans TC", sans-serif; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; }
.wrap { width:min(1140px, calc(100% - 32px)); margin:0 auto; }
.utility-bar { color:#777; background:#f7f7f7; border-bottom:1px solid #ededed; font-size:12px; }
.utility-content { min-height:36px; display:flex; align-items:center; gap:17px; white-space:nowrap; overflow:hidden; }
.utility-content a:first-child { color:var(--red); }
.brand-row { min-height:112px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand img { display:block; width:217px; max-height:100px; object-fit:contain; }
.header-tools { display:flex; align-items:center; gap:12px; color:#555; }
.contact-button,.button { display:inline-block; border-radius:2px; color:#fff; background:var(--red); padding:9px 15px; font-weight:700; transition:background .2s; }
.contact-button:hover,.button:hover { background:#c71218; color:#fff; }
.cart-link { padding:8px 0 8px 12px; border-left:1px solid #e4e4e4; }
.cart-link strong { color:var(--red); }
.main-nav { border-top:1px solid #eee; border-bottom:3px solid var(--red); background:#fff; }
.main-nav .wrap { display:flex; align-items:center; min-height:47px; }
.main-nav a { padding:13px 25px 11px 0; font-weight:bold; color:#444; }
.main-nav a:hover { color:var(--red); }
.hero { position:relative; background:#eee; overflow:hidden; }
.hero-slides { position:relative; width:min(1140px, 100%); height:min(420px, 36.85vw); min-height:180px; margin:0 auto; }
.hero-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .65s ease; }
.hero-slide.is-active { opacity:1; }
.hero-dots { position:absolute; bottom:13px; left:50%; display:flex; gap:8px; transform:translateX(-50%); }
.hero-dots button { width:10px; height:10px; padding:0; border:1px solid #fff; border-radius:50%; background:rgba(0,0,0,.24); cursor:pointer; }
.hero-dots .is-active { background:var(--red); }
.intro-section { text-align:center; padding:34px 0 22px; }
.intro-section h1 { margin:0 0 4px; color:#333; font-size:25px; letter-spacing:.04em; }
.intro-section p { margin:0; color:#777; }
.category-section,.products-section { padding:22px 0 36px; }
.section-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; border-bottom:1px solid var(--line); }
.section-title h2 { margin:0; padding-bottom:10px; border-bottom:2px solid var(--red); font-size:21px; color:#333; }
.section-title a { color:var(--red); font-size:13px; }
.category-grid { display:grid; grid-template-columns:repeat(6, 1fr); gap:16px 12px; }
.category-card { display:block; border:1px solid #e6e6e6; background:#fff; text-align:center; transition:box-shadow .2s, transform .2s; overflow:hidden; }
.category-card:hover { box-shadow:0 5px 16px rgba(0,0,0,.16); transform:translateY(-2px); }
.category-card img { display:block; width:100%; aspect-ratio:1.61; object-fit:cover; background:#f4f4f4; }
.category-card span { display:block; min-height:48px; padding:9px 4px 6px; font-weight:bold; font-size:13px; }
.category-card small { display:block; color:#999; font-weight:normal; }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.product-card { position:relative; border:1px solid #eee; background:#fff; padding:12px; transition:box-shadow .2s; }
.product-card:hover { box-shadow:0 4px 17px rgba(0,0,0,.13); }
.product-image { display:flex; align-items:center; justify-content:center; min-height:188px; background:#fff; }
.product-image img { max-height:190px; object-fit:contain; }
.product-card h3 { min-height:46px; margin:11px 0 5px; font-size:14px; line-height:1.55; }
.product-card h3 a:hover { color:var(--red); }
.product-card .price { min-height:25px; color:var(--red); font-weight:bold; }
.product-card .small { margin-top:8px; padding:6px 10px; font-size:12px; font-weight:normal; }
.contact-strip { margin-top:4px; padding:20px 0; color:#fff; background:#333; font-size:16px; text-align:center; }
.contact-strip a { display:inline-block; margin-left:10px; padding:6px 12px; color:#fff; background:var(--red); font-size:14px; }
.site-footer { margin-top:0; color:#cfcfcf; background:#242424; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1.4fr 1fr; gap:38px; padding:39px 0 26px; }
.footer-grid h3 { margin:0 0 13px; color:#fff; font-size:16px; }
.footer-grid p { margin:0; font-size:13px; }
.footer-grid a { color:#fff; }
.copyright { padding:14px 16px; border-top:1px solid #3b3b3b; color:#aaa; text-align:center; font-size:12px; }
.page-content,.shop-layout { min-height:460px; padding:38px 0 58px; }
.page-content h1,.shop-layout .page-title { margin:0 0 24px; color:#333; font-size:27px; }
.entry-content { font-size:15px; }
.entry-content img { height:auto; }
.entry-content .r858-faq { max-width:46em; margin-top:22px; }
.entry-content .r858-faq__item { border-bottom:1px solid var(--line); }
.entry-content .r858-faq__q { position:relative; padding:14px 30px 14px 0; cursor:pointer; color:#333; font-size:1.02em; font-weight:700; line-height:1.6; list-style:none; }
.entry-content .r858-faq__q::-webkit-details-marker { display:none; }
.entry-content .r858-faq__q::after { content:'+'; position:absolute; top:11px; right:4px; color:var(--red); font-size:1.35em; font-weight:400; }
.entry-content .r858-faq__item[open] .r858-faq__q::after { content:'−'; }
.entry-content .r858-faq__q:hover { color:var(--red); }
.entry-content .r858-faq__a { padding:0 0 16px; color:#555; line-height:1.85; }
.entry-content .r858-faq__a p { margin:0; }
.services-content { max-width:880px; }
.services-content > p { margin:0 0 22px; }
.services-content .services-lead { color:#333; font-size:18px; font-weight:600; line-height:1.85; }
.services-content h2 { margin:42px 0 18px; padding-bottom:10px; border-bottom:2px solid var(--red); font-size:23px; }
.services-content h3 { margin:29px 0 10px; color:#333; font-size:18px; line-height:1.55; }
.services-content ul { margin:0 0 22px; padding-left:22px; }
.services-content li { margin:7px 0; }
.services-content a { color:var(--red); text-decoration:underline; }
.services-content .services-callout { margin:28px 0 18px; padding:18px 21px; border-left:4px solid var(--red); background:#fff4f4; line-height:1.9; }
.services-content .services-updated { color:#888; font-size:13px; }

/* WooCommerce catalogue and product pages */
.woocommerce .woocommerce-result-count { color:#777; }
.woocommerce .woocommerce-ordering select { border:1px solid #ddd; padding:7px; background:#fff; }
.woocommerce ul.products { display:grid; grid-template-columns:repeat(4, 1fr); gap:25px; margin:24px 0; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:auto; margin:0; padding:12px; border:1px solid #eee; text-align:left; }
.woocommerce ul.products li.product:hover { box-shadow:0 4px 17px rgba(0,0,0,.13); }
.woocommerce ul.products li.product a img { height:190px; margin-bottom:10px; object-fit:contain; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height:44px; padding:0; color:#333; font-size:14px; line-height:1.55; }
.woocommerce ul.products li.product .price { color:var(--red); font-size:14px; }
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button { border:0; border-radius:2px; background:var(--red); color:#fff; }
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover { background:#c71218; color:#fff; }
.woocommerce div.product .product_title { font-size:27px; line-height:1.35; }
.woocommerce div.product p.price,.woocommerce div.product span.price { color:var(--red); font-size:21px; }
.woocommerce div.product div.images img { border:1px solid #eee; }
.woocommerce-message { border-top-color:var(--red); }
.woocommerce-message::before { color:var(--red); }
.woocommerce div.product form.cart .button { padding:11px 20px; }
.woocommerce table.shop_table { border-radius:0; }

@media (max-width:960px) {
  .category-grid { grid-template-columns:repeat(4,1fr); }
  .product-grid,.woocommerce ul.products { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:680px) {
  .wrap { width:min(100% - 24px, 1140px); }
  .utility-content { gap:10px; }
  .utility-content span:nth-of-type(2),.utility-content a:last-child { display:none; }
  .brand-row { min-height:82px; }
  .brand img { width:156px; max-height:68px; }
  .cart-link { display:none; }
  .main-nav .wrap { justify-content:space-between; }
  .main-nav a { padding-right:0; font-size:13px; }
  .hero-slides { height:36.85vw; min-height:145px; }
  .intro-section { padding-top:22px; }
  .intro-section h1 { font-size:20px; }
  .intro-section p { font-size:12px; }
  .category-grid { grid-template-columns:repeat(3,1fr); gap:9px; }
  .category-card span { min-height:44px; font-size:12px; }
  .product-grid,.woocommerce ul.products { grid-template-columns:repeat(2,1fr); gap:10px; }
  .product-card { padding:8px; }
  .product-image,.woocommerce ul.products li.product a img { min-height:130px; height:130px; }
  .footer-grid { grid-template-columns:1fr; gap:19px; padding-top:28px; }
  .woocommerce div.product div.images,.woocommerce div.product div.summary { width:100%; float:none; }
}
