/* =====================================================================
   Lux Scientific — header (Fujifilm-style), homepage hero, page rhythm
   ===================================================================== */
:root {
  --lxh-red: #C8102E; --lxh-red-d: #A50D25; --lxh-navy: #14365C; --lxh-ink: #1B2330; --lxh-muted: #5A6472; --lxh-line: #E3E8EE;
  /* one content width for the whole site */
  --lux-page-w: min(1320px, calc(100vw - 80px)); --lux-w: var(--lux-page-w); --lux-hero-w: var(--lux-page-w);
  --lux-sec: 56px;           /* vertical space above & below each section */
  --lxh-top: 0px;            /* admin bar offset */
}
@media (max-width: 1024px) { :root { --lux-page-w: calc(100vw - 48px); --lux-sec: 44px; } }
@media (max-width: 767px)  { :root { --lux-page-w: calc(100vw - 32px); --lux-sec: 36px; } }
body.admin-bar { --lxh-top: 32px; }
@media (max-width: 782px) { body.admin-bar { --lxh-top: 46px; } }
@media (max-width: 600px) { body.admin-bar { --lxh-top: 0px; } }

/* ---- old headers off (Elementor header rows, theme header, shared header template, old home hero) ---- */
body.lxh-overlay .elementor-element-25c2a473, body.lxh-overlay .elementor-element-6b72a44,
body.lxh-overlay .lux-site-header, body.lxh-overlay #top-bar-wrap, body.lxh-overlay #site-header,
body.lxh-overlay #mobile-dropdown, body.lxh-overlay .sidr, body.lxh-overlay #sidr-close { display: none !important; }
body.lxh-overlay .elementor-85 > .elementor-element-b438ed5 { display: none !important; }

.lxh-skip { position: absolute; left: -9999px; top: 0; z-index: 2000; background: #fff; padding: 10px 16px; border-radius: 8px; }
.lxh-skip:focus { left: 16px; top: calc(var(--lxh-top) + 8px); }
.lxh-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- header ---- */
.lxh { position: sticky; top: var(--lxh-top); z-index: 1000; background: #fff; border-bottom: 1px solid transparent;
  transition: transform .32s ease, background-color .25s ease, box-shadow .25s ease, border-color .25s ease; font-family: inherit; }
.lxh.is-scrolled { box-shadow: 0 6px 24px rgba(15, 30, 50, .08); border-bottom-color: var(--lxh-line); }
.lxh.is-hidden { transform: translateY(calc(-100% - var(--lxh-top) - 4px)); }
.lxh-in { position: relative; width: var(--lux-page-w); margin: 0 auto; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto;
  column-gap: 40px; row-gap: 6px; align-items: center; padding: 18px 0 8px; transition: padding .25s ease; }
.lxh.is-scrolled .lxh-in { padding: 10px 0 4px; }
.lxh-logo { grid-row: 1 / 3; display: block; line-height: 0; }
.lxh-logo img { height: 76px; width: auto; display: block; transition: height .25s ease; }
.lxh.is-scrolled .lxh-logo img { height: 58px; }

.lxh-tools { grid-column: 2; display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.lxh-tools svg { width: 20px; height: 20px; flex: 0 0 auto; }
.lxh-phone { display: inline-flex; align-items: center; gap: 7px; color: var(--lxh-muted) !important; text-decoration: none !important; font-size: 14.5px; font-weight: 500; margin-right: 10px; }
.lxh-phone:hover { color: var(--lxh-red) !important; }
.lxh-ic { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px; border-radius: 99px; color: var(--lxh-ink) !important; text-decoration: none !important; font-size: 14.5px; font-weight: 500; }
.lxh-ic:hover { background: #F2F4F7; color: var(--lxh-red) !important; }
.lxh-n { position: absolute; top: 4px; left: 24px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--lxh-red); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.lxh-n[hidden] { display: none !important; }
.lxh-contact { display: inline-flex; align-items: center; gap: 9px; height: 48px; padding: 0 24px; margin-left: 8px; border-radius: 99px; background: var(--lxh-red); color: #fff !important; text-decoration: none !important; font-size: 16px; font-weight: 600; letter-spacing: .01em; transition: background .2s ease, transform .2s ease; }
.lxh-contact:hover { background: var(--lxh-red-d); transform: translateY(-1px); }
.lxh-search { position: relative; display: flex; align-items: center; margin-left: 12px; }
.lxh-search svg { position: absolute; left: 16px; color: var(--lxh-red); pointer-events: none; }
.lxh-search input[type=search] { width: clamp(220px, 22vw, 340px); height: 48px; padding: 0 18px 0 46px !important; border: 1px solid #CDD5DF !important; border-radius: 99px !important; background: #fff !important; font-size: 15px; color: var(--lxh-ink); box-shadow: none !important; }
.lxh-search input[type=search]:focus { border-color: var(--lxh-navy) !important; outline: none; box-shadow: 0 0 0 3px rgba(20, 54, 92, .12) !important; }
.lxh-sbtn, .lxh-burger { display: none; width: 44px; height: 44px; border: 0; border-radius: 99px; background: transparent; color: var(--lxh-ink); cursor: pointer; align-items: center; justify-content: center; }
.lxh-burger span { display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; margin: 2px 0; transition: transform .2s ease, opacity .2s ease; }
.lxh-burger { flex-direction: column; }
.lxh-burger[aria-expanded=true] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.lxh-burger[aria-expanded=true] span:nth-child(2) { opacity: 0; }
.lxh-burger[aria-expanded=true] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* menu row */
.lxh-nav { grid-column: 2; justify-self: end; }
.lxh-nav > ul { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.lxh-top { position: relative; display: flex; align-items: center; }
.lxh-top.is-mega { position: static; }
.lxh-a { display: block; padding: 12px 14px; font-size: 17px; font-weight: 500; color: var(--lxh-ink) !important; text-decoration: none !important; border-radius: 8px; white-space: nowrap; }
.lxh-top.has-panel > .lxh-a { padding-right: 2px; }
.lxh-a:hover, .lxh-top.is-current > .lxh-a { color: var(--lxh-red) !important; }
.lxh-top.is-current > .lxh-a { box-shadow: inset 0 -2px 0 var(--lxh-red); border-radius: 0; }
.lxh-caret { width: 30px; height: 36px; border: 0; background: none; color: var(--lxh-red); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.lxh-caret svg { width: 12px; height: 8px; transition: transform .2s ease; }
.lxh-top.is-open > .lxh-caret svg { transform: rotate(180deg); }

/* dropdown panels */
.lxh-panel { position: absolute; top: 100%; right: 0; z-index: 20; min-width: 260px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.lxh-top.is-mega > .lxh-panel { left: 0; right: 0; }
.lxh-top.is-open > .lxh-panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
@media (hover: hover) and (min-width: 1025px) {
  .lxh-top.has-panel:hover > .lxh-panel, .lxh-top.has-panel:focus-within > .lxh-panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .lxh-top.has-panel:hover > .lxh-caret svg { transform: rotate(180deg); }
}
.lxh-panel-in { margin-top: 6px; background: #fff; border-top: 3px solid var(--lxh-red); border-radius: 0 0 12px 12px; box-shadow: 0 22px 48px rgba(15, 30, 50, .16); max-height: calc(100vh - var(--lxh-h, 140px) - 40px); overflow: auto; overscroll-behavior: contain; }
.lxh-panel ul { list-style: none; margin: 0; padding: 0; }
.lxh-panel a { display: block; padding: 11px 22px; color: var(--lxh-ink) !important; text-decoration: none !important; font-size: 15px; line-height: 1.4; }
.lxh-panel a:hover { color: var(--lxh-red) !important; background: #FAFBFC; }
/* mega (สินค้าทั้งหมด): column 1 = first category tree, columns 2–3 = other categories */
.lxh-top.is-mega .lxh-panel-in { display: grid; grid-template-columns: 1fr 2fr; }
.lxh-mcol-tree { border-right: 1px solid var(--lxh-line); padding: 6px 0 10px; }
.lxh-mh { font-weight: 700 !important; border-bottom: 3px solid var(--lxh-red); }
.lxh-mcol-tree .lxh-l0 > li > a { font-weight: 400; border-bottom: 1px solid var(--lxh-line); }
.lxh-mcol-tree .lxh-l0 > li.has-kids > a { font-weight: 600; border-bottom: 2px solid var(--lxh-red); }
.lxh-mcol-tree .lxh-l1 a { padding-left: 34px; font-size: 14.5px; border-bottom: 1px solid var(--lxh-line); }
.lxh-mcol-cats { padding: 6px 0 10px; }
.lxh-mcol-cats > .lxh-l0 { display: grid; grid-template-columns: 1fr 1fr; }
.lxh-mcol-cats > .lxh-l0 > li > a { font-weight: 700; letter-spacing: .01em; }
.lxh-mcol-cats .lxh-l1 a { padding-left: 34px; font-size: 14.5px; }
.lxh-mall { grid-column: 1 / -1; border-top: 1px solid var(--lxh-line); text-align: right; font-weight: 600 !important; color: var(--lxh-red) !important; }

/* homepage: header sits over the hero until you scroll */
body.lxh-overlay .lxh:not(.is-scrolled) { background: linear-gradient(180deg, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, .55) 70%, rgba(255, 255, 255, 0) 100%); }

/* mobile drawer */
.lxh-drawer { position: fixed; inset: var(--lxh-top) 0 0 0; z-index: 1001; background: rgba(10, 20, 35, .45); }
.lxh-drawer[hidden] { display: none; }
.lxh-drawer-in { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 88vw); background: #fff; overflow-y: auto; padding: 18px 0 32px; box-shadow: -10px 0 30px rgba(0, 0, 0, .15); animation: lxh-slide .22s ease; }
@keyframes lxh-slide { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }
.lxh-drawer nav > ul { list-style: none; margin: 0; padding: 0; }
.lxh-drawer .lxh-top { flex-wrap: wrap; border-bottom: 1px solid var(--lxh-line); }
.lxh-drawer .lxh-a { flex: 1; padding: 15px 20px; font-size: 17px; }
.lxh-drawer .lxh-caret { width: 52px; height: 52px; }
.lxh-drawer .lxh-panel { position: static; width: 100%; opacity: 1; visibility: visible; transform: none; display: none; }
.lxh-drawer .lxh-top.is-open > .lxh-panel { display: block; }
.lxh-drawer .lxh-panel-in { margin: 0; border: 0; box-shadow: none; border-radius: 0; background: #F7F9FB; max-height: none; }
.lxh-drawer .lxh-panel a { padding: 11px 20px 11px 32px; }
.lxh-drawer .lxh-panel .lxh-l1 a { padding-left: 48px; font-size: 14px; }
.lxh-drawer-tools { display: grid; gap: 4px; padding: 18px 20px 0; }
.lxh-drawer-tools a { display: flex; align-items: center; gap: 10px; padding: 12px 6px; color: var(--lxh-ink) !important; text-decoration: none !important; font-size: 16px; }
.lxh-drawer-tools svg { width: 22px; height: 22px; }
.lxh-drawer-tools .lxh-contact { justify-content: center; margin: 10px 0 0; color: #fff !important; }

@media (max-width: 1280px) { .lxh-ic-t, .lxh-phone span { display: none; } .lxh-phone { margin-right: 0; padding: 0 10px; } .lxh-a { padding: 12px 10px; font-size: 16px; } }
@media (max-width: 1024px) {
  .lxh-in { grid-template-columns: auto 1fr; grid-template-rows: auto; padding: 10px 0; }
  .lxh-logo { grid-row: 1; }
  .lxh-logo img, .lxh.is-scrolled .lxh-logo img { height: 52px; }
  .lxh-nav, .lxh-phone, .lxh-contact { display: none; }
  .lxh-sbtn, .lxh-burger { display: inline-flex; }
  .lxh-search { position: absolute; left: 0; right: 0; top: 100%; margin: 0; padding: 0 0 12px; display: none; background: inherit; }
  .lxh.is-search .lxh-search { display: flex; }
  .lxh-search input[type=search] { width: 100%; }
}
@media (max-width: 480px) { .lxh-logo img, .lxh.is-scrolled .lxh-logo img { height: 44px; } .lxh-ic { padding: 0 9px; } .lxh-tools { gap: 0; } }

/* ---- homepage hero ---- */
.lxhero { position: relative; display: flex; align-items: center; min-height: clamp(560px, 84vh, 800px); overflow: hidden;
  margin-top: calc(-1 * var(--lxh-h, 150px)); padding-top: var(--lxh-h, 150px); isolation: isolate; background: #EEF1F4; }
.lxhero-bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.lxhero-bg i { position: absolute; inset: -4%; background-size: cover; background-position: center 70%; animation: lux-kb 26s ease-in-out infinite alternate; will-change: transform; }
.lxhero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .82) 34%, rgba(255, 255, 255, .25) 64%, rgba(255, 255, 255, 0) 80%), linear-gradient(0deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 28%); }
.lxhero-in { width: var(--lux-page-w); margin: 0 auto; padding: 40px 0 72px; }
.lxhero-eyebrow { margin: 0 0 14px; font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--lxh-red); }
.lxhero h1 { margin: 0; font-size: clamp(46px, 6.6vw, 108px); line-height: 1.02; font-weight: 400; letter-spacing: -.025em; color: #1E2328; }
.lxhero h1 em { font-family: Georgia, "Times New Roman", serif; font-style: italic; color: var(--lxh-red); letter-spacing: -.01em; }
.lxhero-sub { margin: 14px 0 0; font-size: clamp(20px, 2vw, 28px); font-weight: 500; color: var(--lxh-navy); }
.lxhero-txt { max-width: 640px; margin: 22px 0 0; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.75; color: #3B4450; }
.lxhero-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.lxhero-btn { display: inline-flex; align-items: center; height: 58px; padding: 0 34px; border-radius: 99px; font-size: 18px; font-weight: 600; text-decoration: none !important; transition: background .2s ease, color .2s ease, transform .2s ease; }
.lxhero-btn.is-solid { background: var(--lxh-red); color: #fff !important; }
.lxhero-btn.is-solid:hover { background: var(--lxh-red-d); transform: translateY(-1px); }
.lxhero-btn.is-line { border: 1.5px solid var(--lxh-navy); color: var(--lxh-navy) !important; background: rgba(255, 255, 255, .7); }
.lxhero-btn.is-line:hover { background: var(--lxh-navy); color: #fff !important; }
@media (max-width: 767px) {
  .lxhero { min-height: 0; }
  .lxhero-in { padding: 28px 0 44px; }
  .lxhero-bg::after { background: linear-gradient(180deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .8) 55%, rgba(255, 255, 255, .35) 100%); }
  .lxhero-btn { height: 50px; padding: 0 24px; font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .lxhero-bg i { animation: none; } .lxh, .lxh-panel { transition: none; } }

/* =====================================================================
   Page rhythm — same width, same spacing, nothing oversized
   ===================================================================== */
/* sections on Elementor pages */
.elementor-85 > .e-con.e-parent, .elementor-1129 > .e-con.e-parent, .elementor-1427 > .e-con.e-parent,
.elementor-1491 > .e-con.e-parent, .elementor-1501 > .e-con.e-parent { padding-top: var(--lux-sec) !important; padding-bottom: var(--lux-sec) !important; }
.elementor-85 > .e-con.e-parent + .e-con.e-parent { margin-top: 0 !important; }
/* inner header/hero banners on other pages keep a tidy gap from the header */
.elementor-1129 .elementor-element-b438ed5, .elementor-1427 .elementor-element-3047fe46,
.elementor-1491 .elementor-element-3047fe46, .elementor-1501 .elementor-element-757b04a { margin-top: 20px !important; min-height: 0 !important; height: clamp(240px, 32vw, 420px) !important; padding-top: 0 !important; padding-bottom: 0 !important; }

/* our sections */
.lux-hp, .lux-cats, .lux-clients, .lux-docs { padding-top: var(--lux-sec) !important; padding-bottom: var(--lux-sec) !important; }
.lux-hp, .lux-cats, .lux-docs { max-width: var(--lux-page-w) !important; padding-left: 0 !important; padding-right: 0 !important; }
.lux-hp-head h2, .lux-cats-head h2, .lux-cl-head h2, .lux-docs-head h2 { font-size: clamp(26px, 2.3vw, 34px) !important; letter-spacing: -.01em; }
.lux-cats-head, .lux-cl-head { margin-bottom: 28px !important; }

/* Our Products: 4 per row, compact */
.lux-cats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 18px !important; }
@media (max-width: 1024px) { .lux-cats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 600px)  { .lux-cats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; } }

/* product tabs: tighter cards (still 4 × 3) */
.lux-hp ul.products { gap: 18px !important; }
.lux-hp ul.products li.product .woo-entry-image img { aspect-ratio: 4 / 3 !important; padding: 10px !important; }
.lux-hp ul.products li.product li.title a, .lux-hp ul.products li.product li.title h2 { font-size: 14.5px !important; line-height: 1.4 !important; }
.lux-hp ul.products li.product li.category { font-size: 11.5px !important; }
.lux-hp ul.products li.product .price { font-size: 16px !important; }

/* Flash Sale / Best Seller: banner and its promo cards side by side */
@media (min-width: 900px) {
  .elementor-85 .elementor-element-ba15334 > .e-con-inner, .elementor-85 .elementor-element-0f1d206 > .e-con-inner { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; gap: 28px !important; }
  .elementor-85 .elementor-element-ba15334 > .e-con-inner > .elementor-widget-image, .elementor-85 .elementor-element-0f1d206 > .e-con-inner > .elementor-widget-image { flex: 0 0 42% !important; width: 42% !important; max-width: 42% !important; }
  .elementor-85 .elementor-element-ba15334 > .e-con-inner > .elementor-widget:not(.elementor-widget-image), .elementor-85 .elementor-element-0f1d206 > .e-con-inner > .elementor-widget:not(.elementor-widget-image) { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; }
}
.elementor-85 .elementor-element-ba15334 .elementor-widget-image img, .elementor-85 .elementor-element-0f1d206 .elementor-widget-image img { border-radius: 14px; width: 100%; height: auto; }

/* video: comfortable size, centred */
.elementor-85 .elementor-element-9d38395 .elementor-widget-video { width: min(960px, 100%) !important; max-width: 960px !important; margin: 0 auto !important; }
.elementor-85 .elementor-element-9d38395 .elementor-wrapper { border-radius: 16px; overflow: hidden; box-shadow: 0 14px 34px rgba(15, 30, 50, .12); }


/* service cards (Order Status / Dealer …): shorter */
.elementor-85 .elementor-element-bf1b772 .swiper-slide img, .elementor-85 .elementor-element-bf1b772 .elementor-image-carousel img { height: clamp(220px, 22vw, 320px) !important; width: 100% !important; object-fit: cover !important; border-radius: 12px; }
.elementor-85 .elementor-element-bf1b772 { border-radius: 0 !important; background: transparent !important; }

/* 3 intro cards under the hero */
.elementor-85 .elementor-element-1ad54eaa { padding-top: calc(var(--lux-sec) + 8px) !important; }

/* badge sits after the label on wide screens, on the icon when labels are hidden */
.lxh-n { position: static; margin-left: 2px; }
@media (max-width: 1280px) { .lxh-n { position: absolute; top: 3px; left: 25px; margin: 0; } }
.lxh-logo img { height: 88px; }
.lxh.is-scrolled .lxh-logo img { height: 62px; }
@media (max-width: 1024px) { .lxh-logo img, .lxh.is-scrolled .lxh-logo img { height: 54px; } }
@media (max-width: 480px)  { .lxh-logo img, .lxh.is-scrolled .lxh-logo img { height: 46px; } }

/* Our Products grid is a wrapping flex row: 4 per row (3 tablet, 2 phone), last row centred */
.lux-cats-grid { gap: 18px !important; }
.lux-cats-grid > * { flex: 0 1 calc(25% - 13.5px) !important; max-width: calc(25% - 13.5px) !important; }
@media (max-width: 1024px) { .lux-cats-grid > * { flex-basis: calc(33.333% - 12px) !important; max-width: calc(33.333% - 12px) !important; } }
@media (max-width: 600px)  { .lux-cats-grid { gap: 12px !important; } .lux-cats-grid > * { flex-basis: calc(50% - 6px) !important; max-width: calc(50% - 6px) !important; } }
/* homepage product cards: a little more compact */
.lux-hp ul.products li.product li.category { display: none !important; }
.lux-hp ul.products li.product .button { min-height: 40px !important; padding: 9px 12px !important; font-size: 14px !important; }
.lux-hp ul.products li.product .woo-entry-inner > li { margin-bottom: 8px !important; }
/* service cards: keep the whole image (titles are part of the artwork) */
.elementor-85 .elementor-element-bf1b772 .swiper-slide img, .elementor-85 .elementor-element-bf1b772 .elementor-image-carousel img { height: auto !important; object-fit: contain !important; }

/* hero headline: brand name, all red */
.lxhero h1.is-brand { color: var(--lxh-red); }
/* homepage "สินค้าทั้งหมด" uses the shared Apple-style panel (#lux-mega) */
.lxh-top.lxh-applemega > .lxh-a { padding-right: 2px; }
.lxh-top.lxh-applemega.is-open > .lxh-a { color: var(--lxh-red) !important; }
.lxh-top.lxh-applemega.is-open > .lxh-caret svg { transform: rotate(180deg); }

/* ---- homepage product tabs: 6 per row × 3 rows, compact cards ---- */
.lux-hp ul.products { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 16px !important; }
@media (max-width: 1180px) { .lux-hp ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
@media (max-width: 900px)  { .lux-hp ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; } }
@media (max-width: 600px)  { .lux-hp ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.lux-hp ul.products li.product .woo-entry-image img { aspect-ratio: 1 / 1 !important; padding: 8px !important; }
.lux-hp ul.products li.product .woo-entry-inner { padding: 12px 12px 14px !important; }
.lux-hp ul.products li.product li.title a, .lux-hp ul.products li.product li.title h2 { font-size: 13.5px !important; line-height: 1.4 !important; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.lux-hp ul.products li.product .price { font-size: 14.5px !important; line-height: 1.35 !important; }
.lux-hp ul.products li.product .price del { font-size: 12px !important; margin-right: 4px !important; }
.lux-hp ul.products li.product .lux-off { font-size: 10.5px !important; padding: 1px 6px !important; margin-left: 4px !important; }
.lux-hp ul.products li.product .button { min-height: 36px !important; padding: 7px 8px !important; font-size: 13px !important; border-radius: 8px !important; }
.lux-hp ul.products li.product span.onsale, .lux-hp ul.products li.product .outofstock-badge { font-size: 11px !important; padding: 3px 8px !important; top: 8px !important; left: 8px !important; }
.lux-hp ul.products li.product .woo-entry-inner > li { margin-bottom: 6px !important; }

/* About Us: Empowering Discovery / Trusted Instruments / Bespoke for You picture cards — equal photo size */
.elementor-1129 .elementor-element-5f2c91a5 .elementskit-info-image-box .elementskit-box-header img { width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; transition: transform .5s ease; }
.elementor-1129 .elementor-element-5f2c91a5 .elementskit-info-image-box .elementskit-box-header { overflow: hidden; }
.elementor-1129 .elementor-element-5f2c91a5 .elementskit-info-image-box:hover .elementskit-box-header img { transform: scale(1.04); }

/* Homepage "Our Products": tagline + description under each card (texts: mu-plugins/lux-cat-desc.php) */
.lux-cat-card { height: auto; }
.lux-cat-body { border-bottom: 0; }
.lux-cat-text { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 0 18px 20px; }
.lux-cat-tag { font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: #1d1d1f; }
.lux-cat-th { font-size: 14.5px; font-weight: 600; line-height: 1.5; color: #1d1d1f; }
.lux-cat-desc { font-size: 14px; line-height: 1.65; color: #6e6e73; }
.lux-cat-more { margin-top: auto; padding-top: 8px; font-size: 14.5px; font-weight: 600; color: var(--lux-red, #e4002b); }
.lux-cat-card:hover .lux-cat-more { text-decoration: underline; }
@media (max-width: 600px) {
	.lux-cat-text { padding: 0 12px 14px; gap: 6px; }
	.lux-cat-tag { font-size: 14.5px; }
	.lux-cat-th { font-size: 13px; }
	.lux-cat-desc { font-size: 12.5px; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
	.lux-cat-more { font-size: 13px; }
}
.lux-cat-title { text-align: left; }
@media (max-width: 1100px) {
	.lux-cat-body { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 2px; }
	.lux-cat-meta { white-space: normal; }
}
@media (max-width: 600px) { .lux-cat-body { padding-left: 12px !important; padding-right: 12px !important; } }
.lux-cats-h-link { color: inherit !important; text-decoration: none !important; transition: color .2s; }
.lux-cats-h-link:hover, .lux-cats-h-link:focus-visible { color: var(--lux-red, #e4002b) !important; }

/* hero brand title: dimensional lettering in the logo red (brighter), extruded depth, soft cast shadow, light sweep */
.lxhero h1.lx3d-h { font-weight: 800; letter-spacing: -.03em; line-height: 1.04; display: flex; flex-wrap: wrap; column-gap: .22em; }
.lx3d { position: relative; display: inline-block; isolation: isolate; padding-bottom: .06em;
  background: linear-gradient(176deg, #ff6b7d 0%, #ff2a45 30%, #ec1131 62%, #c8102e 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lx3d::before { content: attr(data-t); position: absolute; left: 0; top: 0; z-index: -1; color: transparent; pointer-events: none;
  text-shadow: 1px 1px 0 #d40f2c, 2px 2px 0 #c40d29, 3px 3px 0 #b30b25, 4px 4px 0 #a20921, 5px 5px 0 #91071d,
    8px 12px 14px rgba(200, 16, 46, .22), 14px 26px 34px rgba(20, 33, 61, .14); }
.lx3d::after { content: attr(data-t); position: absolute; inset: 0; z-index: 1; pointer-events: none; color: transparent;
  background: linear-gradient(105deg, transparent 0 38%, rgba(255, 255, 255, .9) 47%, rgba(255, 255, 255, .2) 53%, transparent 62% 100%);
  background-size: 260% 100%; background-position: 130% 0; -webkit-background-clip: text; background-clip: text;
  animation: lx3dShine 7s ease-in-out 1.2s infinite; }
.lx3d + .lx3d::after { animation-delay: 1.5s; }
@keyframes lx3dShine { 0% { background-position: 130% 0; } 18%, 100% { background-position: -30% 0; } }
@media (prefers-reduced-motion: reduce) { .lx3d::after { animation: none; display: none; } }
@media (max-width: 640px) { .lx3d::before { text-shadow: 1px 1px 0 #c40d29, 2px 2px 0 #b30b25, 3px 3px 0 #a20921, 5px 8px 12px rgba(200, 16, 46, .2); } }

/* page title bar (OceanWP): long titles no longer run under the breadcrumb.
   Title and breadcrumb share one row when there is room; otherwise the breadcrumb drops to its own line. */
.page-header .page-header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 28px}
.page-header .page-header-inner .page-header-title{flex:1 1 auto;min-width:0;margin:0;overflow-wrap:anywhere}
.page-header .page-header-inner .site-breadcrumbs{position:static!important;top:auto!important;right:auto!important;transform:none!important;margin:0!important;flex:0 1 auto;max-width:100%!important;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-header .page-header-inner .site-breadcrumbs ol,.page-header .page-header-inner .site-breadcrumbs li{display:inline}
