/* Public catalogue: shared layout, typography and states. Tokens live in tokens.css. */
.public-site {
  --catalog-header-height: 88px;
  padding-top: var(--catalog-header-height);
  color: var(--color-text);
  background: var(--color-background);
}
.public-site [hidden] { display: none !important; }
.public-site h1, .public-site h2, .public-site h3 { color: var(--color-text); }
.public-site h2 { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.5; }
.public-site h3 { line-height: 1.6; }
.public-site .section { padding-block: 64px; }
.public-site .section-kicker { display: block; color: var(--color-burgundy); font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.public-site .section-header { align-items: end; gap: 24px; margin-bottom: 28px; }
.public-site .section-header h2 { font-size: clamp(26px, 2.6vw, 36px); }
.public-site .section-header p { color: var(--color-text-muted); margin-top: 12px; }
.public-site .btn-brand-primary, .public-site .btn-brand-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 48px; padding: 11px 22px; border-radius: var(--radius-md); line-height: 1.7;
  font-size: 15px; font-weight: 700; white-space: normal; text-align: center; cursor: pointer;
}
.public-site .btn-brand-primary { background: var(--color-burgundy); color: var(--color-white); border: 1px solid var(--color-burgundy); }
.public-site .btn-brand-primary:hover { background: var(--color-burgundy-dark); border-color: var(--color-burgundy-dark); color: var(--color-white); transform: none; }
.public-site .btn-brand-outline { color: var(--color-burgundy); background: var(--color-white); border: 1px solid var(--color-border); }
.public-site .btn-brand-outline:hover { color: var(--color-burgundy-dark); border-color: var(--color-burgundy); background: var(--color-surface); transform: none; }
.public-site :focus-visible { outline: 3px solid var(--color-burgundy); outline-offset: 4px; }
.public-site a, .public-site button, .public-site summary { -webkit-tap-highlight-color: transparent; }
.public-site .catalog-text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--color-burgundy); font-size: 14px; font-weight: 700; }
.public-site .catalog-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }

/* One header, with a shared public navigation rather than page-local copies. */
.catalog-header { position: fixed; inset: 0 0 auto; z-index: var(--z-header); height: var(--catalog-header-height); background: var(--color-white); border-bottom: 1px solid var(--color-border); }
.catalog-header-inner { height: 100%; display: flex; align-items: center; gap: 28px; }
.catalog-logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.catalog-logo img { width: 58px; height: 54px; object-fit: contain; }
.catalog-logo>span { font-weight: 800; font-size: 17px; line-height: 1.8; white-space: nowrap; }
.catalog-logo small { display: block; font-size: 10px; color: var(--color-text-muted); font-weight: 400; }
.catalog-main-nav { display: flex; align-items: center; justify-content: center; gap: 22px; flex: 1; }
.catalog-main-nav>a, .catalog-products-trigger { display: inline-flex; align-items: center; gap: 6px; min-height: 48px; color: var(--color-text); font-size: 14px; font-weight: 500; border: 0; padding: 0; background: transparent; }
.catalog-main-nav>a:hover, .catalog-products-trigger:hover, .catalog-products-trigger[aria-expanded=true], .catalog-main-nav>a[aria-current=page] { color: var(--color-burgundy); }
.public-site .catalog-main-nav [aria-current=page] { outline: none; font-weight: 700; }
.catalog-main-nav>a[aria-current=page] { text-decoration: underline; text-underline-offset: 12px; text-decoration-thickness: 2px; }
.catalog-header-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.catalog-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-primary); }
.catalog-icon-button:hover { background: var(--color-surface); border-color: var(--color-metal); }
.catalog-call { display: grid; gap: 0; color: var(--color-text); line-height: 1.6; min-height: 44px; }
.catalog-call span { color: var(--color-text-muted); font-size: 10px; }
.catalog-call bdi { font-size: 15px; font-weight: 800; letter-spacing: .3px; }
.catalog-call:hover { color: var(--color-burgundy); }
.catalog-mobile-trigger { display: none; }
.catalog-products { position: static; }
.catalog-mega { position: absolute; inset-block-start: calc(100% - 1px); inset-inline: 24px; max-width: 1250px; margin-inline: auto; background: var(--color-white); border: 1px solid var(--color-border); border-top: 3px solid var(--color-burgundy); border-radius: 0 0 var(--radius-lg) var(--radius-lg); padding: 24px; box-shadow: var(--shadow-lg); max-height: calc(100dvh - var(--catalog-header-height) - 24px); overflow-y: auto; }
.catalog-mega-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--color-border); font-size: 13px; color: var(--color-text-muted); }
.catalog-mega-heading a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--color-burgundy); font-weight: 700; }
.catalog-mega-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.catalog-mega-group { min-width: 0; }
.catalog-mega-cover { display: block; }
.catalog-mega-cover img { display: block; width: 100%; height: 130px; object-fit: contain; padding: 12px; background: var(--color-surface); border-radius: var(--radius-md); }
.catalog-mega-cover strong { display: block; margin-block: 14px 8px; font-size: 15px; line-height: 1.8; }
.catalog-mega-group ul { display: grid; gap: 2px; }
.catalog-mega-group li a { display: flex; align-items: center; min-height: 38px; padding-block: 5px; font-size: 13px; line-height: 1.7; color: var(--color-text-muted); }
.catalog-mega-group a:hover { color: var(--color-burgundy); }
.catalog-mobile { width: min(390px, 100vw) !important; color: var(--color-text); }
.catalog-mobile .offcanvas-header { border-bottom: 1px solid var(--color-border); padding: 24px; }
.catalog-mobile h2 { font-size: 18px; }
.catalog-mobile .offcanvas-body { padding: 20px 24px 32px; }
.catalog-mobile-search { display: flex; gap: 8px; margin-bottom: 24px; }
.catalog-mobile-search input { min-width: 0; width: 100%; min-height: 46px; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 10px; background: var(--color-background); font-size: 13px; }
.catalog-mobile-search button { border: 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--color-burgundy); color: var(--color-white); font-size: 12px; }
.catalog-mobile-link, .catalog-mobile-products>summary { display: block; padding-block: 14px; min-height: 48px; border-bottom: 1px solid var(--color-border); font-size: 15px; font-weight: 500; }
.catalog-mobile summary { cursor: pointer; }
.catalog-mobile-products>summary, .catalog-mobile-group>summary { display: list-item; list-style-position: inside; }
.catalog-mobile-products[open]>summary, .catalog-mobile-group[open]>summary { color: var(--color-burgundy); }
.catalog-mobile-all { display: flex; align-items: center; gap: 12px; min-height: 44px; padding-block: 8px; color: var(--color-burgundy); font-size: 13px; font-weight: 700; }
.catalog-mobile-group { padding: 4px 12px; margin-bottom: 8px; border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.catalog-mobile-group>summary { padding-block: 12px; font-size: 14px; font-weight: 700; }
.catalog-mobile-group ul { border-top: 1px solid var(--color-border); padding-block: 8px; }
.catalog-mobile-group li a { display: flex; align-items: center; min-height: 44px; padding-block: 8px; font-size: 13px; color: var(--color-text-muted); }
.catalog-mobile-contact { display: grid; gap: 10px; margin-top: 28px; padding: 18px; border-radius: var(--radius-md); background: var(--color-surface); }
.catalog-mobile-contact>span { font-size: 12px; color: var(--color-text-muted); }
.catalog-mobile-contact>a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; font-size: 21px; font-weight: 700; }

/* The opening slide pairs a real rack image with readable, quiet type. */
.public-site .hero { background: var(--color-surface); padding: 32px max(16px, calc((100vw - 1320px)/2 + 24px)) 0; overflow: hidden; }
.public-site .hero>.swiper { padding-bottom: 60px; }
.public-site .hero .swiper-wrapper { height: auto; }
.public-site .hero .swiper-slide { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: 40px; height: auto; align-items: center; min-height: 430px; }
.public-site .hero-media { position: relative; inset: auto; grid-column: 2; grid-row: 1; min-width: 0; height: 100%; min-height: 430px; aspect-ratio: auto; border-radius: var(--radius-md); overflow: hidden; }
.public-site .hero-media picture { display: block; width: 100%; height: 100%; }
.public-site .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.public-site .hero-overlay { display: none; }
.public-site .hero-content { position: relative; inset: auto; grid-column: 1; grid-row: 1; width: auto; max-width: none; padding: 28px 0; transform: none; text-align: right; color: var(--color-text); margin: 0; }
.public-site .hero .swiper-slide .hero-content>* { opacity: 1; transform: none; animation: none; }
.catalog-hero-kicker { display: inline-flex; align-items: center; gap: 12px; color: var(--color-burgundy); font-size: 13px; font-weight: 700; margin-bottom: 20px; }
.catalog-hero-kicker::before { content: ''; display: block; width: 26px; height: 3px; background: var(--color-burgundy); }
.public-site .hero-heading { font-size: clamp(31px,3.4vw,46px); line-height: 1.55; max-width: 19ch; margin: 0; color: var(--color-text); letter-spacing: -.5px; }
.public-site .hero-description { max-width: 46ch; margin: 20px 0 0; color: var(--color-text-muted); font-size: 16px; line-height: 1.95; }
.public-site .hero-actions { display: flex; flex-direction: row; align-items: stretch; flex-wrap: wrap; gap: 12px; margin-top: 28px; justify-content: flex-start; }
.public-site .hero-actions .btn-brand-primary, .public-site .hero-actions .btn-brand-outline { min-width: 0; width: auto; }
.public-site .hero .swiper-button-next, .public-site .hero .swiper-button-prev { top: auto; bottom: 7px; margin: 0; width: 40px; height: 40px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-text); }
.public-site .hero .swiper-button-next { left: 0; right: auto; }
.public-site .hero .swiper-button-prev { left: 50px; right: auto; }
.public-site .hero .swiper-button-next::after, .public-site .hero .swiper-button-prev::after { font-size: 13px; }
.public-site .hero .swiper-pagination { width: auto; left: 125px; right: auto; bottom: 12px; display: flex; gap: 6px; }
.public-site .hero .swiper-pagination-bullet { width: 10px; height: 10px; background: var(--color-text-muted); opacity: .4; }
.public-site .hero .swiper-pagination-bullet-active { background: var(--color-burgundy); opacity: 1; }

.catalog-section-intro { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.catalog-section-intro p { color: var(--color-text-muted); font-size: 14px; margin: 0; }
.catalog-category-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.catalog-category { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); overflow: hidden; }
.catalog-category:hover { border-color: var(--color-burgundy); }
.catalog-category-media { aspect-ratio: 1.75; padding: 16px; background: var(--color-surface); }
.catalog-category-media img { width: 100%; height: 100%; object-fit: contain; }
.catalog-category>div:last-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px; }
.catalog-category h3 { font-size: 17px; }
.catalog-category>div:last-child>span { color: var(--color-burgundy); font-size: 20px; }
.public-site .product-category-nav { flex-wrap: wrap; gap: 8px; overflow: visible; padding-bottom: 0; border: 0; }
.public-site .product-filter-btn { min-height: 44px; border-radius: var(--radius-md); padding: 9px 16px; font-size: 13px; background: var(--color-white); color: var(--color-text-muted); border: 1px solid var(--color-border); }
.public-site .product-filter-btn.is-active { background: var(--color-burgundy); border-color: var(--color-burgundy); color: var(--color-white); }
.public-site .product-grid-home { gap: 22px; }
.public-site .media-card { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; background: var(--color-white); box-shadow: none; }
.public-site .media-card:hover { transform: none; border-color: var(--color-metal); box-shadow: var(--shadow-sm); }
.public-site .product-card .media-card-media { position: relative; aspect-ratio: 4/3; width: 100%; padding: 16px; background: var(--color-surface); overflow: hidden; }
.public-site .product-card .media-card-media>img { position: static; width: 100%; height: 100%; object-fit: contain; transform: none !important; opacity: 1 !important; }
.public-site .media-card-body { flex: 1; display: flex; flex-direction: column; padding: 20px; background: var(--color-white); }
.public-site .product-card .media-card-title { font-size: 20px; color: var(--color-text); margin: 0; }
.public-site .media-card-summary { font-size: 13px; line-height: 1.9; color: var(--color-text-muted); margin: 10px 0 16px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-card-link { display: flex; align-items: center; gap: 12px; justify-content: space-between; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--color-border); color: var(--color-burgundy); font-size: 12px; font-weight: 700; }
.catalog-image-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; height: 100%; min-height: 150px; padding: 16px; text-align: center; color: var(--color-text-muted); background: var(--color-surface); font-size: 12px; }
.catalog-image-placeholder svg { color: var(--color-metal); }
.catalog-product-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; }
.catalog-product-toolbar>span { font-size: 13px; color: var(--color-text-muted); }
.public-site .factory-section { background: var(--color-surface-alt); border-block: 1px solid var(--color-border); }
.public-site .factory-content p { color: var(--color-text-muted); line-height: 2; font-size: 15px; }
.public-site .factory-content h2 { color: var(--color-text); margin-bottom: 20px; }
.public-site .factory-media { border-radius: var(--radius-md); overflow: hidden; }
.public-site .slogan-strip { padding-block: 16px; direction: ltr; }
.public-site .slogan-track { animation: none; transform: none; flex-wrap: nowrap; justify-content: flex-start; direction: ltr; }
.public-site .slogan-group { direction: rtl; }
.public-site .slogan-group { font-size: 14px; color: var(--color-text-muted); }
.public-site .slogan-group[aria-hidden=true] { display: flex; }

.public-site .page-banner { background: var(--color-primary); padding: 32px 0 38px; }
.public-site .page-banner h1 { color: var(--color-white); font-size: clamp(28px,3vw,38px); line-height: 1.6; }
.public-site .breadcrumb-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 12px; line-height: 1.9; margin-bottom: 12px; }
.public-site .breadcrumb-nav [aria-current=page] { outline: none; font-weight: 400; }
.public-site .page-banner--compact { background: var(--color-surface); padding-block: 20px; }
.public-site .page-banner--compact .breadcrumb-nav { color: var(--color-text-muted); margin: 0; }
.public-site .page-banner--compact .breadcrumb-nav a { color: var(--color-text-muted); }
.public-site .page-banner--compact .breadcrumb-nav a:hover, .public-site .page-banner--compact .breadcrumb-nav a:focus-visible { color: var(--color-burgundy); }
.public-site .catalog-category-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.public-site .catalog-category-nav a { min-height: 44px; display: inline-flex; align-items: center; border: 1px solid var(--color-border); padding: 8px 16px; border-radius: var(--radius-md); font-size: 13px; background: var(--color-white); }
.public-site .catalog-category-nav a[aria-current=page] { color: var(--color-white); background: var(--color-burgundy); border-color: var(--color-burgundy); outline: none; }
.public-site .catalog-category-nav a:hover { border-color: var(--color-burgundy); }
.catalog-result-count { color: var(--color-text-muted); font-size: 13px; margin-block: 20px; }
.public-site .catalog-search { display: grid; gap: 10px; max-width: 680px; }
.catalog-search label { font-size: 13px; font-weight: 700; }
.catalog-search-fields { display: flex; align-items: stretch; gap: 8px; position: relative; }
.public-site .catalog-search input { width: 100%; min-width: 0; min-height: 48px; padding-inline-end: 42px; }
.catalog-search-clear { position: absolute; inset-inline-end: 120px; top: 4px; width: 40px; height: 40px; border: 0; background: transparent; color: var(--color-text-muted); font-size: 24px; }
.catalog-search-fields>.btn-brand-primary { flex-shrink: 0; min-width: 100px; }
.catalog-empty { display: grid; justify-items: start; gap: 16px; padding: 40px; background: var(--color-surface); border-inline-start: 3px solid var(--color-burgundy); }
.catalog-empty h2 { font-size: 24px; }
.catalog-empty p { color: var(--color-text-muted); margin: 0; }
.public-site .product-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; align-items: start; }
.catalog-product-photo { aspect-ratio: 1.1; display: flex; align-items: center; background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 28px; overflow: hidden; }
.catalog-product-photo>img { display: block; width: 100%; height: 100%; object-fit: contain; }
.catalog-product-photo>.catalog-image-placeholder { width: 100%; }
.public-site .product-detail-content h1 { font-size: clamp(27px,2.8vw,38px); line-height: 1.6; margin-block: 8px 18px; color: var(--color-text); }
.catalog-product-summary, .public-site .cms-description { font-size: 15px; color: var(--color-text-muted); line-height: 2; }
.catalog-product-specs { margin-block: 28px; }
.public-site .catalog-product-specs h2, .public-site .catalog-product-subtitle { font-size: 18px; margin-bottom: 14px; }
.catalog-product-specs dl { margin: 0; border-top: 1px solid var(--color-border); }
.catalog-product-specs dl>div { display: grid; grid-template-columns: minmax(90px,1fr) minmax(0,2fr); gap: 16px; border-bottom: 1px solid var(--color-border); padding: 14px 0; font-size: 13px; line-height: 1.9; }
.catalog-product-specs dt { font-weight: 500; color: var(--color-text-muted); }
.catalog-product-specs dd { margin: 0; overflow-wrap: anywhere; }
.catalog-product-highlights { list-style: disc; padding-inline-start: 20px; font-size: 14px; margin-block: 12px 24px; }
.catalog-product-enquiry { padding: 24px; background: var(--color-surface); border-radius: var(--radius-md); margin-top: 24px; }
.catalog-product-enquiry p { font-size: 13px; color: var(--color-text-muted); margin-bottom: 16px; }
.catalog-product-enquiry>div { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.public-site .product-gallery-thumbs { gap: 10px; margin-top: 14px; }
.public-site .product-gallery-thumbs button { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 4px; background: var(--color-white); min-width: 74px; min-height: 64px; }
.public-site .product-gallery-thumbs button[aria-current] { border-color: var(--color-burgundy); outline: 2px solid var(--color-burgundy); }
.public-site .product-gallery-thumbs img { width: 80px; height: 60px; object-fit: contain; }

.public-site .form-control, .public-site .form-select { min-height: 46px; border-radius: var(--radius-md); font-size: 15px; border-color: var(--color-border); color: var(--color-text); }
.public-site .form-label { font-size: 13px; font-weight: 500; margin-bottom: 8px; }
.public-site textarea.form-control { line-height: 1.9; min-height: 120px; }
.catalog-required { margin-inline-start: 4px; font-size: 10px; color: var(--color-text-muted); font-weight: 400; }
.catalog-form-help { color: var(--color-text-muted); font-size: 13px; line-height: 1.9; margin-bottom: 24px; }
.public-contact main .row.g-5 { --bs-gutter-x: 32px; }
.public-contact main form { border: 1px solid var(--color-border); background: var(--color-white); border-radius: var(--radius-md); padding: 28px; }
.public-contact main h2 { font-size: 23px; }
.catalog-enquiry-product { display: grid; gap: 6px; background: var(--color-surface); padding: 16px; border-inline-start: 3px solid var(--color-burgundy); margin-bottom: 24px; }
.catalog-enquiry-product>span { font-size: 11px; color: var(--color-text-muted); }
.catalog-enquiry-product strong { font-size: 16px; }
.catalog-enquiry-product a { color: var(--color-burgundy); min-height: 32px; display: flex; align-items: center; font-size: 12px; }
.catalog-optional { border-block: 1px solid var(--color-border); padding-block: 8px; margin-block: 4px; }
.catalog-optional summary { cursor: pointer; min-height: 44px; padding-block: 8px; font-size: 13px; }
.catalog-optional summary span { color: var(--color-text-muted); margin-inline-start: 8px; font-size: 11px; }
.catalog-optional .row { margin-block: 8px; }
.catalog-consent { display: flex; gap: 10px; align-items: start; font-size: 12px; line-height: 1.9; cursor: pointer; }
.catalog-consent input { flex-shrink: 0; width: 18px; height: 18px; margin-top: 3px; accent-color: var(--color-burgundy); }
.catalog-contact-list li { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; padding-block: 14px; border-bottom: 1px solid var(--color-border); font-size: 13px; }
.catalog-contact-list a { color: var(--color-burgundy); min-height: 32px; display: inline-flex; align-items: center; overflow-wrap: anywhere; }
.public-site .qa-modal .modal-dialog { max-width: 580px; max-height: calc(100dvh - 32px); margin: 16px auto; }
.public-site .qa-modal .modal-content { border: 0; border-radius: var(--radius-lg); max-height: calc(100dvh - 32px); overflow: hidden; }
.public-site .qa-modal .modal-header { padding: 22px 24px; border-bottom: 1px solid var(--color-border); }
.public-site .qa-modal .modal-title { color: var(--color-text); font-size: 19px; }
.public-site .qa-modal .modal-body { padding: 24px; overflow-y: auto; min-height: 0; }
.public-site .qa-modal .modal-dialog-scrollable .modal-body { overflow-y: auto; }
.public-site .search-overlay { background: var(--overlay-dark-75); padding: 24px; align-items: center; }
.public-site .search-overlay-panel { width: min(720px,100%); padding: 24px; background: var(--color-white); border-radius: var(--radius-md); }
.public-site .search-overlay-input { font-size: 17px; color: var(--color-text); min-height: 52px; }
.public-site .search-overlay-close, .catalog-overlay-clear { width: 44px; height: 44px; flex-shrink: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-text); }
.catalog-overlay-clear { font-size: 24px; }
.public-site .floating-qa { min-height: 48px; border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.public-site.public-contact .floating-qa, .public-site.is-public-field-focused .floating-qa { display: none; }

.public-site .consultation-footer-bridge { background: var(--color-surface); border-block: 1px solid var(--color-border); }
.public-site .contact-cta { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding-block: 46px; }
.public-site .contact-cta h2 { color: var(--color-text); font-size: clamp(23px,2.2vw,30px); line-height: 1.6; }
.public-site .contact-cta p { color: var(--color-text-muted); font-size: 14px; }
.catalog-footer { background: var(--color-primary); color: var(--color-text-on-dark-muted); padding-top: 56px; }
.catalog-footer-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.4fr); gap: 32px; padding-bottom: 42px; }
.public-site .catalog-footer h2 { font-size: 15px; color: var(--color-white); margin-bottom: 22px; }
.catalog-footer-logo { display: inline-flex; background: var(--color-white); padding: 8px; border-radius: var(--radius-md); margin-bottom: 18px; }
.catalog-footer-logo img { width: 65px; height: 54px; object-fit: contain; }
.catalog-footer p { font-size: 12px; line-height: 2; }
.catalog-footer ul { display: grid; gap: 8px; }
.catalog-footer li a { display: inline-flex; align-items: center; min-height: 36px; font-size: 12px; }
.catalog-footer a:hover { color: var(--color-white); text-decoration: underline; text-underline-offset: 5px; }
.public-site .catalog-footer .catalog-text-link { color: var(--color-white); font-size: 12px; }
.catalog-footer-contact li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.catalog-footer-contact li>span { font-size: 10px; color: var(--color-metal); }
.catalog-footer-contact p { margin-top: 16px; }
.catalog-footer-contact bdi { overflow-wrap: anywhere; }
.catalog-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-block: 20px 88px; border-top: 1px solid var(--color-border-on-dark); font-size: 10px; }
.public-site .catalog-footer :focus-visible { outline-color: var(--color-white); }

/* The storefront and factory stay distinct; the shared map always names the factory. */
.catalog-phone-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.catalog-phone-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.catalog-phone-list li>span { font-size: 12px; }
.public-site .catalog-phone-list a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 700; letter-spacing: .3px; }
.catalog-contact-email { display: block; max-width: 100%; margin-block: 14px; font-size: 12px; line-height: 2; overflow-wrap: anywhere; }
.catalog-hours { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--color-border); }
.public-site .catalog-hours h3, .public-site .catalog-address h3 { font-size: 14px; font-weight: 700; color: inherit; margin: 0 0 10px; }
.catalog-hours dl { display: grid; gap: 10px; margin: 0; }
.catalog-hours dl>div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; font-size: 12px; line-height: 1.8; }
.catalog-hours dt { font-weight: 400; }
.catalog-hours dd { margin: 0; font-weight: 700; }
.catalog-footer .catalog-hours { border-color: var(--color-border-on-dark); }
.public-site .catalog-footer .catalog-hours h3, .public-site .catalog-footer .catalog-address h3 { color: var(--color-white); }
.catalog-address+.catalog-address { margin-top: 20px; }
.catalog-address p { margin: 0; font-size: 13px; line-height: 2; }
.catalog-location-map { position: relative; height: 220px; width: 100%; overflow: hidden; margin-top: 20px; background: var(--color-surface); border-radius: var(--radius-md); scroll-margin-top: 100px; }
.catalog-location-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.catalog-location-map iframe[data-map-frame] { opacity: 0; }
.catalog-location-map.is-map-ready iframe[data-map-frame] { opacity: 1; }
.catalog-map-status { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; padding: 20px; text-align: center; font-size: 13px; line-height: 2; color: var(--color-text-muted); }
.catalog-map-status[hidden] { display: none; }
.catalog-map-help { margin: 8px 0 0; font-size: 12px; line-height: 1.9; }
.catalog-directions, .catalog-instagram { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; line-height: 1.9; color: var(--color-burgundy); }
.catalog-directions { margin-top: 8px; }
.catalog-directions:hover, .catalog-instagram:hover { text-decoration: underline; text-underline-offset: 5px; }
.catalog-instagram svg { flex-shrink: 0; }
.catalog-footer .catalog-directions, .catalog-footer .catalog-instagram { color: var(--color-white); }
.catalog-footer-quick { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 18px; }
.catalog-footer-quick a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
.catalog-contact-details { min-width: 0; }
.public-contact main .catalog-contact-details h2 { margin-bottom: 20px; }
.public-contact main .catalog-contact-details .catalog-contact-location-title { margin-top: 32px; }
.catalog-contact-details .catalog-address { padding: 14px 16px; background: var(--color-surface); border-inline-start: 2px solid var(--color-burgundy); }
.catalog-contact-details .catalog-address+.catalog-address { margin-top: 12px; }
.catalog-contact-details .catalog-location-map { height: 260px; }

@media(max-width:1199.98px) {
  .catalog-header-inner { gap: 20px; }
  .catalog-logo>span { display: none; }
  .catalog-main-nav { gap: 20px; }
  .catalog-footer-grid { gap: 26px; }
}
@media(max-width:991.98px) {
  .public-site { --catalog-header-height: 72px; }
  .catalog-header-inner { justify-content: space-between; gap: 12px; }
  .catalog-logo>span { display: block; font-size: 15px; }
  .catalog-logo img { width: 47px; height: 46px; }
  .catalog-logo small { font-size: 9px; }
  .catalog-main-nav { display: none; }
  .catalog-mobile-trigger { display: inline-flex; }
  .catalog-header-actions { gap: 8px; }
  .catalog-call { display: none; }
  .public-site .hero { padding-top: 24px; }
  .public-site .hero .swiper-slide { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; min-height: 350px; }
  .public-site .hero-media { min-height: 350px; }
  .public-site .hero-heading { font-size: 31px; }
  .public-site .hero-description { font-size: 14px; }
  .public-site .hero-actions { gap: 8px; }
  .public-site .hero-actions .btn-brand-primary, .public-site .hero-actions .btn-brand-outline { padding: 10px 14px; font-size: 13px; }
  .catalog-category-grid { gap: 14px; }
  .catalog-category h3 { font-size: 14px; }
  .catalog-category>div:last-child { padding: 12px; }
  .public-site .product-detail-grid { gap: 28px; }
  .catalog-product-photo { padding: 18px; }
  .catalog-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px; }
}
@media(max-width:767.98px) {
  .public-site .section { padding-block: 42px; }
  .public-site .hero { padding: 0 16px; }
  .public-site .hero .swiper-slide { grid-template-columns: 1fr; gap: 20px; min-height: 0; }
  .public-site .hero-content { grid-row: 1; grid-column: 1; padding: 32px 0 0; }
  .public-site .hero-heading { font-size: 31px; max-width: 22ch; line-height: 1.55; }
  .public-site .hero-description { margin-top: 14px; font-size: 14px; }
  .catalog-hero-kicker { font-size: 11px; margin-bottom: 14px; }
  .public-site .hero-actions { margin-top: 20px; gap: 10px; }
  .public-site .hero-actions .btn-brand-primary, .public-site .hero-actions .btn-brand-outline { flex: 1; font-size: 12px; min-height: 46px; padding: 10px; }
  .public-site .hero-media { grid-row: 2; grid-column: 1; height: auto; min-height: 0; aspect-ratio: 1.75; }
  .public-site .hero>.swiper { padding-bottom: 56px; }
  .catalog-section-intro { align-items: start; flex-direction: column; gap: 8px; }
  .catalog-section-intro p { font-size: 12px; }
  .catalog-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .catalog-category-media { padding: 10px; }
  .public-site .section-header { align-items: start; gap: 16px; }
  .public-site .section-header p { font-size: 13px; }
  .public-site .product-category-nav { gap: 7px; }
  .public-site .product-filter-btn { padding: 8px 12px; font-size: 11px; }
  .public-site .product-grid-home { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .public-site .media-card-body { padding: 14px; }
  .public-site .product-card .media-card-title { font-size: 17px; }
  .public-site .media-card-summary { font-size: 11px; margin-block: 8px 12px; }
  .public-site .product-card .media-card-media { padding: 10px; }
  .catalog-card-link { font-size: 10px; padding-top: 10px; gap: 6px; }
  .catalog-product-toolbar { justify-content: center; gap: 10px 18px; }
  .catalog-product-toolbar>span { width: 100%; text-align: center; font-size: 12px; }
  .public-site .product-detail-grid { grid-template-columns: 1fr; gap: 28px; }
  .catalog-product-photo { aspect-ratio: 1.3; padding: 24px; }
  .catalog-product-enquiry { padding: 20px; }
  .catalog-product-enquiry .btn-brand-primary { width: 100%; }
  .public-site .catalog-category-nav a { padding: 8px 12px; font-size: 11px; }
  .public-site .catalog-search input { font-size: 13px; }
  .public-site .page-banner { padding-block: 24px; }
  .public-site .page-banner--compact { padding-block: 16px; }
  .catalog-empty { padding: 28px 20px; }
  .public-contact main form { padding: 20px; }
  .public-site .factory-content p { font-size: 14px; }
  .public-site .contact-cta { padding-block: 32px; }
  .catalog-footer { padding-top: 40px; }
  .catalog-footer-grid { gap: 30px 22px; padding-bottom: 30px; }
  .catalog-footer-brand, .catalog-footer-contact { grid-column: 1/-1; }
  .catalog-footer-locations { grid-column: 1/-1; }
  .catalog-footer-products ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 20px; }
  .catalog-footer-products { grid-column: 1/-1; }
  .catalog-footer-brand { max-width: 44ch; }
  .catalog-footer-bottom { align-items: start; flex-direction: column; gap: 8px; padding-bottom: 82px; }
  .public-site .search-overlay { padding: 16px; }
  .public-site .search-overlay-panel { padding: 16px; }
  .public-site .search-overlay-input { font-size: 14px; }
  .public-site .qa-modal .modal-body, .public-site .qa-modal .modal-header { padding: 20px; }
  .public-site .floating-qa { width: 46px; height: 46px; min-height: 46px; right: 16px; bottom: 16px; padding: 0; border-radius: var(--radius-md); }
  .public-site .floating-qa span { display: none; }
}
@media(max-width:359.98px) {
  .catalog-logo>span { font-size: 12px; }
  .catalog-logo small { display: none; }
  .catalog-header-actions { gap: 4px; }
  .catalog-icon-button { width: 40px; }
  .public-site .hero-heading { font-size: 28px; }
}
@media(prefers-reduced-motion:reduce) {
  .public-site *, .public-site *::before, .public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .public-site { padding-top: 0; }
  .catalog-header, .catalog-footer, .floating-qa, .floating-back-to-top { display: none !important; }
  .public-site .product-detail-grid { display: block; }
}


/* Shared, touch-sized navigation. Playback is automatic with no play/pause toggle. */
.public-site .hero>.swiper { padding-bottom: 70px; }
.public-site .slider-controls { position:absolute; inset-inline:0; bottom:0; display:flex; align-items:center; gap:8px; min-height:58px; padding:5px; z-index:5; }
.public-site .slider-controls .swiper-button-next,
.public-site .slider-controls .swiper-button-prev { position:static !important; inset:auto !important; transform:none; margin:0; display:inline-flex !important; flex:0 0 44px; width:44px; height:44px; border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-white); color:var(--color-text); }
.public-site .slider-controls .swiper-button-next::after,
.public-site .slider-controls .swiper-button-prev::after { font-size:14px; }
.public-site .slider-controls .swiper-pagination { position:static !important; transform:none !important; display:flex !important; align-items:center; gap:0; width:auto !important; margin:0; }
.public-site .slider-controls .swiper-pagination-bullet { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin:0 !important; padding:0; border-radius:0; background:transparent !important; opacity:1; }
.public-site .slider-controls .swiper-pagination-bullet::before { content:''; width:9px; height:9px; border-radius:50%; background:var(--color-text-muted); opacity:.45; }
.public-site .slider-controls .swiper-pagination-bullet-active::before { background:var(--color-burgundy); opacity:1; }
.public-site .factory-media .slider-controls { background:var(--color-primary); }
.public-site .factory-media .slider-controls .swiper-pagination-bullet::before { background:var(--color-white); }
.public-site .factory-media .slider-controls .swiper-pagination-bullet-active::before { background:var(--color-burgundy); }
@media(max-width:575.98px) {
  .public-site .slider-controls .swiper-pagination { display:none !important; }
}
