/* CMS navigation additions and a consistent Product Categories-style card interaction. */
.site-header__inner { position: relative; }
.site-nav-toggle { display: none; align-items: center; gap: .55rem; min-height: 42px; padding: .55rem .75rem; border: 1px solid var(--ink); border-radius: 999px; color: var(--ink); background: var(--paper); font: inherit; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.site-nav-toggle__icon, .site-nav-toggle__icon::before, .site-nav-toggle__icon::after { display: block; width: 17px; height: 2px; background: currentColor; border-radius: 2px; content: ""; }
.site-nav-toggle__icon { position: relative; }
.site-nav-toggle__icon::before { position: absolute; top: -5px; left: 0; }
.site-nav-toggle__icon::after { position: absolute; top: 5px; left: 0; }
.nav-item { position: relative; display: flex; align-items: center; }
.nav-dropdown { position: absolute; z-index: 35; top: calc(100% + 17px); left: -18px; display: grid; min-width: 270px; padding: .8rem; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--paper); box-shadow: 0 16px 36px rgba(21,29,37,.16); opacity: 0; visibility: hidden; transform: translateY(-5px); transition: opacity .18s cubic-bezier(.23,1,.32,1), transform .18s cubic-bezier(.23,1,.32,1), visibility 0s linear .18s; }
.nav-dropdown::before { content: ""; position: absolute; inset: -18px 0 auto; height: 18px; }
.nav-dropdown p { margin: .2rem .7rem .55rem; color: var(--ink-muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nav-dropdown a { padding: .55rem .7rem; border-radius: 8px; color: var(--ink); font-size: .88rem; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { color: var(--ink); background: var(--panel); outline: 0; }
.nav-dropdown__all { margin-top: .35rem; border-top: 1px solid var(--line); border-radius: 0 !important; color: var(--ink) !important; font-weight: 800; }
.nav-item--products:hover .nav-dropdown, .nav-item--products:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
.header-actions { display: flex; align-items: center; gap: .75rem; }
.header-phone { display: grid; gap: .05rem; padding-right: .75rem; border-right: 1px solid var(--line); color: var(--ink); line-height: 1.16; white-space: nowrap; }
.header-phone__icon { display: none; }
.header-phone__meta { display: grid; gap: .05rem; }
.header-phone span { color: var(--ink-muted); font-size: .64rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.header-phone strong { font-size: .82rem; letter-spacing: 0; }
.header-phone:hover strong { color: var(--accent); }
.footer-html { margin-top: .95rem; max-width: 38rem; color: var(--muted); font-size: .88rem; line-height: 1.7; }
.footer-html > :first-child { margin-top: 0; }
.footer-html > :last-child { margin-bottom: 0; }
.footer-html a { color: inherit; text-decoration: underline; text-underline-offset: .18em; }

.category-card, .industry-card, .product-card, .article-card, .feature-card, .event-card, .career-card, .testimonial-card, .key-contact-card, .contact-card, .branch-card { border: 1px solid var(--line) !important; border-radius: 14px !important; overflow: hidden; box-shadow: none !important; transition: transform .18s cubic-bezier(.23,1,.32,1), box-shadow .18s cubic-bezier(.23,1,.32,1), border-color .18s cubic-bezier(.23,1,.32,1) !important; }
.category-card::before, .industry-card::before, .product-card::before, .article-card::before, .feature-card::before, .event-card::before, .career-card::before, .testimonial-card::before, .key-contact-card::before, .contact-card::before, .branch-card::before { content: none !important; }
.career-row--opening { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: none; transition: transform .18s cubic-bezier(.23,1,.32,1), box-shadow .18s cubic-bezier(.23,1,.32,1), border-color .18s cubic-bezier(.23,1,.32,1); }
.career-row--opening .text-link { appearance: none; padding: 0; border: 0; background: transparent; font: inherit; cursor: pointer; }
.career-dialog .button { text-decoration: none; }
.field-optional { color: var(--muted); font-size: .82em; font-weight: 400; }
.contact-form select,
.career-apply-form select {
  width: 100%; min-height: 48px; padding: .75rem 2.75rem .75rem .85rem; border: 1px solid var(--line); border-radius: 12px;
  color: var(--ink); background: var(--panel); font: inherit; line-height: 1.25; cursor: pointer;
  appearance: auto; transition: border-color .18s cubic-bezier(.23,1,.32,1), box-shadow .18s cubic-bezier(.23,1,.32,1);
}
.contact-form select:hover,
.career-apply-form select:hover { border-color: var(--ink); }
.contact-form select:focus,
.career-apply-form select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(240,124,0,.16); outline: 0; }
.career-apply-form > .button { border-radius: 999px; min-height: 48px; padding-inline: 1.25rem; }
.whatsapp-float { width: 80px; height: 80px; }
.whatsapp-float--image img { width: 80px; height: 80px; }
.quick-contact-dialog { width: min(100% - 2rem, 34rem); margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: var(--panel); box-shadow: 0 24px 70px rgba(21,29,37,.24); }
.quick-contact-dialog::backdrop { background: rgba(15,22,29,.52); }
.quick-contact-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--line); }
.quick-contact-dialog__header h2 { margin: 0; font-size: 1.25rem; }
.quick-contact-close { width: 38px; height: 38px; border: 1px solid var(--ink); border-radius: 50%; color: var(--ink); background: var(--paper); font: inherit; font-size: 1.45rem; line-height: 1; cursor: pointer; }
.quick-contact-form { display: grid; gap: .9rem; padding: 1.2rem; }
.quick-contact-form .button { justify-self: start; border-radius: 999px; }
.quick-contact-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quick-contact-form .honey, .quick-contact-form > label:nth-last-of-type(-n+2), .quick-contact-form .consent, .quick-contact-form .button { grid-column: 1 / -1; }
.form-notice--success[data-enquiry-notice] { cursor: pointer; animation: enquiry-notice-in .2s cubic-bezier(.23,1,.32,1) both; }
.safe-public-feedback, .contact-form .form-notice--error, .career-apply-form .form-notice--error { position: relative; grid-column: 1 / -1; margin: 0; padding: 1rem 3.15rem 1rem 1rem; border: 1px solid #b74721; border-left: 5px solid var(--accent); border-radius: 12px; color: #4a2015; background: #fff8f4; box-shadow: 0 12px 28px rgba(21,29,37,.12); line-height: 1.55; }
.safe-public-feedback { position: fixed; z-index: 120; top: 1rem; right: 1rem; width: min(100% - 2rem, 30rem); }
.safe-public-feedback p { margin: .35rem 0; }
.safe-public-feedback__eyebrow, .safe-public-feedback__code { color: #8e3b1f; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.safe-public-feedback__close { position: absolute; top: .65rem; right: .7rem; width: 34px; height: 34px; border: 1px solid #9f4b30; border-radius: 50%; color: #5f2417; background: #fff; font: inherit; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.safe-public-feedback__close:hover, .safe-public-feedback__close:focus-visible { color: #fff; background: var(--accent); outline: 2px solid #5f2417; outline-offset: 2px; }
.site-header .site-nav a { color: #111; font-weight: 400; }
.site-header .nav-dropdown a, .site-header .nav-dropdown__all { font-weight: 400; }
.site-footer__bottom { width: 100%; color: #fff; background: #000; }
.social-links a, .social-links a img { width: 30px; height: 30px; }
.hero__status { display: none !important; }
.article-detail__lead, .blog-detail__lead { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .9fr); gap: clamp(1.25rem, 4vw, 3rem); align-items: start; }
@keyframes enquiry-notice-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (hover: hover) {
  .category-card:hover, .industry-card:hover, .product-card:hover, .article-card:hover, .feature-card:hover, .event-card:hover, .career-card:hover, .testimonial-card:hover, .key-contact-card:hover, .contact-card:hover, .branch-card:hover { border-color: var(--ink) !important; box-shadow: 0 12px 28px rgba(21, 29, 37, .10) !important; transform: translateY(-2px); }
  .career-row--opening:hover { border-color: var(--ink); box-shadow: 0 12px 28px rgba(21, 29, 37, .10); transform: translateY(-2px); }
}

@media (max-width: 820px) {
  .site-header__inner { min-height: 70px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: .4rem; flex-wrap: nowrap; }
  .site-header__inner .brand { min-width: 0; overflow: hidden; }
  .site-header__inner .brand__image { width: auto; max-width: 100%; height: 42px; object-fit: contain; object-position: left center; }
  .site-nav-toggle { display: inline-flex; justify-self: end; }
  .header-actions { display: contents !important; }
  .header-phone { display: inline-flex !important; width: 40px; height: 40px; padding: 0; border: 1px solid var(--ink); border-radius: 50%; align-items: center; justify-content: center; font-size: 0; }
  .header-phone__icon { display: inline-flex; width: 19px; height: 19px; color: currentColor; }
  .header-phone__icon svg { width: 100%; height: 100%; }
  .header-phone__meta { display: none; }
  .header-contact { display: inline-flex !important; align-items: center; justify-content: center; width: 40px; min-width: 40px; height: 40px; min-height: 40px; padding: 0; white-space: nowrap; }
  .header-contact__label { display: none; }
  .header-contact__icon { display: inline-flex; width: 20px; height: 20px; }
  .header-contact__icon svg { width: 100%; height: 100%; }
  .site-nav { display: none !important; position: absolute; z-index: 30; top: calc(100% - .35rem); right: 0; left: 0; padding: .55rem; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); box-shadow: 0 16px 36px rgba(21,29,37,.16); }
  .site-nav.site-nav--open { display: grid !important; grid-template-columns: 1fr; }
  .site-nav a { display: block; padding: .8rem .85rem; border-radius: 9px; }
  .site-nav a:hover, .site-nav a:focus-visible { background: rgba(240,124,0,.08); }
  .nav-item { display: block; }
  .nav-dropdown { display: none !important; }
  .quick-contact-form { grid-template-columns: 1fr; }
  .quick-contact-form > * { grid-column: 1 / -1 !important; }
  .article-detail__lead, .blog-detail__lead { grid-template-columns: 1fr; }
}
@media (max-width: 360px) {
  .site-header__inner { gap: .3rem; }
  .site-nav-toggle { min-height: 38px; padding: .48rem .58rem; gap: .42rem; font-size: .76rem; }
  .header-phone, .header-contact { width: 38px; min-width: 38px; height: 38px; min-height: 38px; }
  .site-header__inner .brand__image { height: 38px; }
}
@media (prefers-reduced-motion: reduce) { .category-card, .industry-card, .product-card, .article-card, .feature-card, .event-card, .career-card, .testimonial-card, .key-contact-card, .contact-card, .branch-card { transition: none !important; } }

/* Cumulative content-management visual refinements. */
.site-footer__bottom, .footer-bottom, .site-footer .copyright { background: #000; color: #fff; }
.site-footer { position: relative; z-index: 1; }
.site-footer__bottom { width: 100%; }
.site-footer__bottom .container { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; }
.client-strip { position: relative; z-index: 2; min-height: 142px; height: auto; padding-block: 1.25rem; overflow: visible; }
.client-strip__inner { grid-template-columns: minmax(12rem, .7fr) minmax(0, 1.3fr); }
.client-strip__intro { display: grid; gap: .35rem; align-content: center; }
.client-strip__intro .eyebrow { margin: 0; color: var(--ink-muted); }
.client-strip__intro h2 { margin: 0; font-size: clamp(1.05rem, 1.7vw, 1.45rem); line-height: 1.25; }
.client-strip__logos { min-width: 0; width: 100%; }
.homepage-featured-section .card-grid { gap: 22px; }
.card-link { display: flex; flex-direction: column; min-height: 100%; color: inherit; text-decoration: none; }
.product-card .card-link > div, .article-card .card-link > div, .event-card .card-link > div { display: grid; align-content: start; gap: .75rem; padding: 20px; }
.product-card .card-link > div .eyebrow, .event-card .card-link > div .eyebrow { margin: 0; }
.product-card .card-link > div h3, .article-card .card-link > div h3, .event-card .card-link > div h3 { margin: 0; font-size: 1.18rem; line-height: 1.38; }
.product-card .card-link > div p, .article-card .card-link > div p, .event-card .card-link > div p { margin: 0; color: var(--ink-muted); font-size: .94rem; line-height: 1.65; }
.product-card .card-link > div .text-link, .article-card .card-link > div .text-link, .event-card .card-link > div .text-link { margin-top: .25rem; }
.header-contact__icon { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 820px) {
  .header-contact__icon { display: inline-flex; width: 20px; height: 20px; }
  .header-contact__icon svg { width: 100%; height: 100%; }
}
.media-library-path { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.media-library-path code { max-width: min(100%, 32rem); overflow-wrap: anywhere; }
.media-library-path button { white-space: nowrap; }

/* Mixed homepage hero media and scheduled companion branding. */
.hero__media--video video,
.hero__media--video .hero__mobile-fallback { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero__media--video .hero__mobile-fallback { display: none; }
.brand-cluster { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.brand__seasonal-mark { width: 58px; height: 58px; object-fit: contain; flex: 0 0 58px; }

@media (max-width: 720px) {
  .hero__media--video video { display: none; }
  .hero__media--video .hero__mobile-fallback { display: block; }
  .brand-cluster { gap: 7px; }
  .brand__seasonal-mark { width: 42px; height: 42px; flex-basis: 42px; }
}
@media (max-width: 420px) { .brand__seasonal-mark { width: 38px; height: 38px; flex-basis: 38px; } }

/* Header, footer, marquee, and rich-content refinements. */
.site-footer, .site-footer p, .site-footer li, .site-footer a, .site-footer .footer-html, .site-footer .footer-html * { color: #fff; }
.site-footer .social-links { gap: 1rem; }
.site-footer .social-links a { border: 0; background: transparent; box-shadow: none; }
.rich-content table, .product-detail > article table, .product-detail__content table, .blog-detail__content table { width: 100%; border: 1px solid #5b6268; border-radius: 10px; border-spacing: 0; border-collapse: separate; overflow: hidden; }
.rich-content th, .rich-content td, .product-detail > article th, .product-detail > article td, .product-detail__content th, .product-detail__content td, .blog-detail__content th, .blog-detail__content td { padding: .7rem .8rem; border-right: 1px solid #5b6268; border-bottom: 1px solid #5b6268; text-align: left; vertical-align: top; }
.rich-content tr > :last-child, .product-detail > article tr > :last-child, .product-detail__content tr > :last-child, .blog-detail__content tr > :last-child { border-right: 0; }
.rich-content tr:last-child > *, .product-detail > article tr:last-child > *, .product-detail__content tr:last-child > *, .blog-detail__content tr:last-child > * { border-bottom: 0; }

/* Product Category and Product cover images use the active theme's hero treatment; detail media stays uncropped below. */
.product-cover-hero.page-intro--image .breadcrumbs { color: rgba(255, 255, 255, .76); }
.product-cover-hero.page-intro--image .breadcrumbs a { color: inherit; }
.product-cover-hero.page-intro--image .breadcrumbs a:hover,
.product-cover-hero.page-intro--image .breadcrumbs a:focus-visible { color: #fff; }
.product-media-gallery figure { margin: 0; }
.product-media-gallery .media-grid img { display: block; width: 100%; height: auto; max-height: 44rem; aspect-ratio: auto; object-fit: contain; background: transparent; }
@media (min-width: 821px) and (hover: hover) {
  .site-header .site-nav > a:hover, .site-header .site-nav > a:focus-visible, .site-header .site-nav > .nav-item > a:hover, .site-header .site-nav > .nav-item > a:focus-visible { color: var(--accent); }
}
@media (max-width: 820px) {
  .header-phone__icon svg { transform: rotate(-8deg) scale(1.08); }
  .site-nav a { padding-block: .52rem; }
}

/* Image-card containment and enquiry feedback repair. */
.product-card .card-link > img,
.article-card .card-link > img,
.category-card > img,
.industry-card > img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 16 / 9;
  padding: .55rem;
  background: var(--panel);
  object-fit: contain !important;
  object-position: center;
}
.enquiry-toast {
  position: fixed;
  z-index: 80;
  top: 1rem;
  right: 1rem;
  max-width: min(28rem, calc(100vw - 2rem));
  padding: .9rem 1rem;
  border: 1px solid #5b6268;
  border-radius: 12px;
  color: var(--ink);
  background: var(--panel);
  box-shadow: 0 14px 36px rgba(21,29,37,.16);
  animation: enquiry-notice-in .2s cubic-bezier(.23,1,.32,1) both;
}
.enquiry-toast--success { border-left: 4px solid var(--accent); }
.enquiry-toast--error { border-left: 4px solid #9f2525; }
@media (max-width: 820px) {
  .header-control__custom-image { display: block; width: 100%; height: 100%; object-fit: contain; }
  .header-phone__icon--custom svg,
  .header-contact__icon--custom svg { display: none; }
  .enquiry-toast { top: .75rem; right: .75rem; left: .75rem; max-width: none; }
}

/* Keep the provider launcher reachable above WhatsApp. Its custom 120px image treatment
   is emitted only by evana-icon.css.php after a valid CMS image path is confirmed. */
body .evana-widget-root button.evana-launcher {
  right: 22px !important;
  bottom: 116px !important;
  z-index: 100 !important;
}

/* The 80px WhatsApp launcher stays 22px from the viewport edge; Evana keeps a compact 22px clearance above it. */
@media (min-width: 821px) {
  body .evana-widget-root button.evana-launcher {
    bottom: 124px !important;
  }
}

/* The provider root is static by default, so its z-index is ignored in some browsers.
   Make it a real top-level stacking context without moving the launcher. */
body .evana-widget-root {
  position: relative !important;
  z-index: 2147483000 !important;
  isolation: isolate;
  pointer-events: none;
}
body .evana-widget-root button.evana-launcher,
body .evana-widget-root .evana-panel,
body .evana-widget-root .evana-panel textarea,
body .evana-widget-root .evana-panel input,
body .evana-widget-root .evana-panel button {
  pointer-events: auto !important;
}
body .evana-widget-root .evana-panel {
  position: fixed !important;
  z-index: 2147483001 !important;
  touch-action: manipulation;
}
body .evana-widget-root .evana-panel textarea,
body .evana-widget-root .evana-panel input,
body .evana-widget-root .evana-panel button {
  position: relative;
  z-index: 2147483002 !important;
  touch-action: manipulation;
}

/* Product catalogue cards reuse the established Product hover-card language. */
.card-grid--documents { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.document-card .card-link { min-height: 100%; }
.document-card h3 { margin-top: .25rem; }
.document-card p:not(.eyebrow) { overflow-wrap: anywhere; }
.pdf-download-list { display: flex; flex-wrap: wrap; gap: .8rem; }

.sai-search-section { padding-block: 1.25rem 0; }
.section--tight-top { padding-top: clamp(20px, 3vw, 36px); }

#sai-industry-search, #sai-industry-search * { font-family: inherit !important; }
#sai-industry-search { background: var(--panel) !important; border-radius: var(--card-radius) !important; padding: 1.5rem !important; }
#sai-industry-search .sai-search__title { margin: 0 0 1rem !important; font-size: 1.15rem !important; font-weight: 800 !important; color: var(--ink) !important; }
#sai-industry-search .sai-search__form { display: flex !important; align-items: stretch !important; gap: .6rem !important; width: 100% !important; }
#sai-industry-search .sai-search__input { flex: 1 1 auto !important; min-width: 0 !important; box-sizing: border-box !important; width: 100% !important; height: 64px !important; padding: 0 1.4rem !important; border: 1px solid var(--line) !important; border-radius: 999px !important; background: var(--paper) !important; color: var(--ink) !important; font-size: 1.05rem !important; }
#sai-industry-search .sai-search__input:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 1px !important; }
#sai-industry-search .sai-search__button { flex: 0 0 auto !important; height: 64px !important; min-height: 64px !important; padding-inline: 1.6rem !important; }
#sai-industry-search .sai-search__results:empty { margin: 0 !important; }
#sai-industry-search .sai-search__results { margin-top: 1.25rem !important; }
#sai-industry-search .sai-loading, #sai-industry-search .sai-error { color: var(--ink-muted) !important; margin: 0 !important; }
#sai-industry-search .sai-error { color: var(--accent) !important; }
#sai-industry-search .sai-answer { line-height: 1.6 !important; font-size: 1rem !important; }
#sai-industry-search .sai-table-wrap { overflow-x: auto !important; margin: 1rem 0 !important; border: 1px solid var(--line) !important; border-radius: 8px !important; }
#sai-industry-search table.sai-data-table, #sai-industry-search table.sai-spec-table { width: 100% !important; border-collapse: collapse !important; font-size: .92rem !important; }
#sai-industry-search table.sai-data-table th, #sai-industry-search table.sai-data-table td, #sai-industry-search table.sai-spec-table td { padding: .6rem .9rem !important; border: 1px solid var(--line) !important; text-align: left !important; }
#sai-industry-search table.sai-data-table th { background: var(--panel) !important; font-weight: 800 !important; }
#sai-industry-search table.sai-spec-table caption { text-align: left !important; font-weight: 800 !important; padding: .6rem .9rem !important; background: var(--panel) !important; border-bottom: 1px solid var(--line) !important; caption-side: top !important; }
#sai-industry-search table.sai-spec-table td:first-child { font-weight: 700 !important; width: 40% !important; background: var(--panel) !important; }
#sai-industry-search .sai-source-links, #sai-industry-search .sai-chips { display: flex !important; flex-wrap: wrap !important; gap: .5rem !important; margin-top: 1rem !important; }
#sai-industry-search a.sai-source-btn { display: inline-flex !important; align-items: center !important; padding: .45rem .9rem !important; border: 1px solid var(--ink) !important; border-radius: 999px !important; color: var(--ink) !important; background: var(--paper) !important; text-decoration: none !important; font-size: .85rem !important; font-weight: 800 !important; }
#sai-industry-search a.sai-source-btn:hover { background: var(--ink) !important; color: var(--paper) !important; }
#sai-industry-search button.sai-chip { display: inline-flex !important; align-items: center !important; padding: .45rem .9rem !important; border: 1px solid var(--ink) !important; border-radius: 999px !important; background: var(--paper) !important; color: var(--ink) !important; font-size: .85rem !important; cursor: pointer !important; }
#sai-industry-search button.sai-chip:hover { border-color: var(--accent) !important; color: var(--accent-ink) !important; background: var(--accent) !important; }
@media (max-width: 820px) { #sai-industry-search .sai-search__form { flex-direction: column !important; } #sai-industry-search .sai-search__button { width: 100% !important; } }

.application-list { display: flex; flex-direction: column; gap: 14px; }
.application-row { display: grid; grid-template-columns: 140px 1fr 160px; gap: 20px; align-items: center; padding: 1.1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.application-row__image { width: 140px; height: 100px; object-fit: cover; border-radius: 8px; background: var(--surface, var(--paper)); }
.application-row__image--placeholder { display: block; background: var(--paper); border: 1px dashed var(--line); }
.application-row__body h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
.application-row__body p { margin: 0; color: var(--ink-muted); line-height: 1.55; font-size: .95rem; }
.application-row__product { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: .75rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); text-decoration: none; color: var(--ink); text-align: center; transition: border-color .18s ease, transform .18s ease; }
.application-row__product:hover { border-color: var(--accent); transform: translateY(-2px); }
.application-row__product img { width: 100%; height: 64px; object-fit: contain; }
.application-row__product span { font-size: .8rem; font-weight: 700; line-height: 1.3; }
@media (max-width: 820px) { .application-row { grid-template-columns: 1fr; text-align: left; } .application-row__image, .application-row__image--placeholder { width: 100%; height: 160px; } .application-row__product { flex-direction: row; justify-content: flex-start; text-align: left; } .application-row__product img { width: 56px; height: 56px; flex: 0 0 auto; } }

/* Home hero H1 — scoped down from the global h1 size, doesn't affect other pages */
.hero--home .hero__content h1 { font-size: clamp(2.1rem, 4.2vw, 3.6rem); }

/* Reduce vertical gap between homepage sections (was clamp(58px, 9vw, 110px)) */
body.is-home .section { padding-block: clamp(32px, 5vw, 64px); }

/* Mobile hero: was opacity .58 with a heavy overlay, making the image barely visible */
@media (max-width: 820px) {
  .hero__media { opacity: .85; }
  .hero__media::after { background: linear-gradient(180deg, var(--hero-surface) 0%, rgba(0,0,0,.10) 100%); }
}

/* First-row table cells were losing their top border under border-collapse: separate */
.rich-content tr:first-child th, .rich-content tr:first-child td,
.product-detail > article tr:first-child th, .product-detail > article tr:first-child td,
.product-detail__content tr:first-child th, .product-detail__content tr:first-child td,
.blog-detail__content tr:first-child th, .blog-detail__content tr:first-child td {
  border-top: 1px solid #5b6268;
}

/* Flat FAQ list - question bold, answer plain, no per-item expand/collapse */
.product-faq-item { margin-bottom: 1.1rem; }
.product-faq-item:last-child { margin-bottom: 0; }
.product-faq-item__question { font-weight: 800; margin: 0 0 .35rem; }
.product-faq-item__answer { margin-left: 2rem; color: var(--ink-muted); }

/* Page bookmarks: keeps a jumped-to H2 from landing hidden under the sticky header */
.rich-content h2[id] { scroll-margin-top: 110px; }

/* Blog References footer */
.blog-references { border-top: 1px solid var(--line); padding-top: 1.5rem; }
.blog-references h2 { font-size: 1.2rem; }
.blog-references ol { padding-left: 1.4rem; margin: 0; }
.blog-references li { margin-bottom: .5rem; color: var(--ink-muted); }
.blog-references cite { font-style: normal; }
.blog-references a { color: var(--ink); }

.branch-address strong { display: block; color: var(--ink); font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .3rem; }

/* Product gallery trigger card */
.product-gallery-card { display: flex; align-items: center; gap: 16px; width: 100%; padding: 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; cursor: pointer; text-align: left; font: inherit; color: var(--ink); margin-bottom: 1.25rem; }
.product-gallery-card:hover { border-color: var(--accent); }
.product-gallery-card__stack { flex: 0 0 auto; display: flex; }
.product-gallery-card__stack-item { position: relative; width: 52px; height: 52px; border-radius: 10px; overflow: hidden; border: 2px solid var(--panel); margin-left: -18px; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.product-gallery-card__stack-item:first-child { margin-left: 0; }
.product-gallery-card__stack-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.product-gallery-card__stack-more { position: absolute; inset: 0; background: rgba(0,0,0,.5); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 800; }
.product-gallery-card__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.product-gallery-card__title { font-weight: 800; font-size: .95rem; white-space: normal; }
.product-gallery-card__count { font-size: .82rem; color: var(--ink-muted); white-space: normal; }
.product-gallery-card__chevron { flex: 0 0 auto; font-size: 1.3rem; color: var(--ink-muted); }
@media (max-width: 560px) {
  .product-gallery-card { gap: 12px; padding: 10px; }
  .product-gallery-card__stack-item { width: 40px; height: 40px; margin-left: -14px; }
  .product-gallery-card__title { font-size: .85rem; }
  .product-gallery-card__count { font-size: .75rem; }
}

/* Product gallery popup */
.product-gallery-dialog { border: none; border-radius: var(--card-radius); padding: 0; width: min(94vw, 760px); overflow: hidden auto; max-height: 92vh; }
.product-gallery-dialog::backdrop { background: rgba(0,0,0,.55); }
.product-gallery-dialog__header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.product-gallery-dialog__counter { margin: 0; font-size: .85rem; color: var(--ink-muted); }
.product-gallery-close { border: none; background: transparent; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--ink-muted); padding: 4px 8px; }
.product-gallery-dialog__viewer { position: relative; background: var(--paper); min-height: 280px; display: flex; align-items: center; justify-content: center; }
.product-gallery-dialog__image-wrap { width: 100%; height: min(56vh, 460px); display: flex; align-items: center; justify-content: center; }
.product-gallery-dialog__image-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; }
.product-gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); border: none; background: var(--panel); width: 38px; height: 38px; border-radius: 50%; font-size: 1.2rem; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.product-gallery-nav--prev { left: 14px; }
.product-gallery-nav--next { right: 14px; }
.product-gallery-dialog__thumbs { display: flex; gap: 12px; padding: 18px; overflow-x: auto; border-top: 1px solid var(--line); }
.product-gallery-thumb { flex: 0 0 auto; width: 92px; height: 92px; border-radius: 12px; border: 2px solid var(--line); padding: 4px; overflow: hidden; cursor: pointer; background: var(--paper); }
.product-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 8px; }
.product-gallery-thumb.is-active { border-color: var(--accent); }
@media (max-width: 560px) { .product-gallery-dialog__image-wrap { height: 42vh; } .product-gallery-thumb { width: 68px; height: 68px; } }

/* Service page Complaint Portal */
.complaint-portal { background: var(--panel); border-radius: var(--card-radius); padding: clamp(1.5rem, 3vw, 2.5rem); }
.complaint-portal .contact-form { margin-top: 1.25rem; }

/* Reduce vertical gap between sections on the Support page specifically */
body.is-service .section { padding-block: clamp(24px, 4vw, 48px); }
body.is-service .section:first-of-type { padding-top: clamp(20px, 3vw, 36px); }

/* Seasonal Companion Mark caption: the mark's alt text is otherwise invisible
   to sighted users (alt text has no native visible rendering), so this
   surfaces it as a small caption bubble beside the icon. Auto-reveals once
   per browser session (see site.js), stays up 15s, then fades. The trigger
   button re-reveals it on demand afterward, on any screen size. */
.brand__seasonal-mark-wrap { position: relative; display: inline-flex; }
.brand__seasonal-mark-trigger { padding: 0; border: 0; background: none; line-height: 0; cursor: pointer; }
.brand__seasonal-caption { position: absolute; left: calc(100% + 8px); top: 50%; z-index: 20; max-width: 200px; padding: 8px 12px; border-radius: 10px; background: var(--panel); color: var(--ink); border: 1px solid var(--line); box-shadow: 0 10px 26px rgba(0, 0, 0, .16); font-size: 13px; line-height: 1.4; text-align: left; opacity: 0; pointer-events: none; transform: translateY(-50%) translateX(-4px); transition: opacity .35s ease, transform .35s ease; }
.brand__seasonal-caption--visible { opacity: 1; transform: translateY(-50%) translateX(0); pointer-events: auto; }
@media (max-width: 480px) {
  .brand__seasonal-caption { left: 0; top: calc(100% + 8px); max-width: 160px; transform: translateY(-4px); }
  .brand__seasonal-caption--visible { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .brand__seasonal-caption { transition: opacity .01s linear; }
}
