/* Compatibility with the updated parent theme; match the established site layout. */
/* Image optimisation moves the hero class from img to a picture wrapper. */
.entry-header picture.header-background-img { width: 100%; height: 100%; }
.entry-header picture.header-background-img > img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: inherit;
}
#site-top-bar { background: #fff; color: #394855; position: relative; z-index: 10; }
#site-top-bar .site-top-message { color: #394855; }
.button_group_item { letter-spacing: .1em; padding: 1rem 1.5rem; }
.button_group_item.button-text { color: inherit; padding: .75rem 0; }
.button_group_item.button-standard.invert-colors { background: #fff; color: #394855; border-color: #fff; }
#masthead .nav-button a { background: #fff !important; color: #394855 !important; }
.top-headers-wrapper.sticky #masthead { background: #bb2642 !important; }
.top-headers-wrapper.sticky #masthead .main-navigation a { color: #fff; }
.section-headline.horizontal { text-align: left; }
.section-headline.horizontal .intro-h-right { text-align: right; }
@media (min-width: 992px) {
    .grid-container { padding-left: 5rem; padding-right: 5rem; }
    .grid-container.full { padding-left: 0; padding-right: 0; }
    .section-headline.horizontal { margin-bottom: 2rem; }
    .column-header .content-column .content-column-inner { padding: 2rem; }
}
/* Reseller search: a quiet surface with the brand colour reserved for action. */
#main-content #wpsl-wrap .wpsl-search {
    display: block;
    background: #fff !important;
    border-top: 3px solid #d00c3e;
    padding: 1.5rem !important;
    margin-bottom: 2rem;
}
#main-content #wpsl-wrap .wpsl-search #wpsl-search-wrap { width: 100%; }
#main-content #wpsl-wrap .wpsl-search #wpsl-search-wrap form {
    display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.25rem;
}
#main-content #wpsl-wrap .wpsl-search .wpsl-input,
#main-content #wpsl-wrap .wpsl-search .wpsl-select-wrap,
#main-content #wpsl-wrap .wpsl-search #wpsl-radius,
#main-content #wpsl-wrap .wpsl-search #wpsl-results,
#main-content #wpsl-wrap .wpsl-search #wpsl-category,
#main-content #wpsl-wrap .wpsl-search .wpsl-search-btn-wrap { margin: 0 !important; min-width: 0; float: none; }
#main-content #wpsl-wrap .wpsl-search .wpsl-input { display: flex; flex-direction: column; height: auto !important; flex: 1 1 18rem; }
#main-content #wpsl-wrap .wpsl-search .wpsl-select-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; flex: 1 1 17rem; height: auto !important; }
#main-content #wpsl-wrap .wpsl-search #wpsl-radius,
#main-content #wpsl-wrap .wpsl-search #wpsl-results { display: flex; flex-direction: column; height: auto !important; min-height: 0; max-height: none; }
#main-content #wpsl-wrap .wpsl-search .wpsl-input,
#main-content #wpsl-wrap .wpsl-search #wpsl-radius,
#main-content #wpsl-wrap .wpsl-search #wpsl-results { align-items: stretch; justify-content: flex-start; }
#main-content #wpsl-wrap .wpsl-search .wpsl-input > div { height: auto !important; min-height: 0; margin: 0; padding: 0; }
#main-content #wpsl-wrap .wpsl-search label {
    display: block; float: none; width: 100% !important; color: #394855; text-align: left;
    margin: 0 0 .5rem !important; padding: 0 !important; font-size: .75rem !important;
    line-height: 1.4; font-weight: 600; letter-spacing: .04em;
}
#main-content #wpsl-wrap .wpsl-search #wpsl-search-input,
#main-content #wpsl-wrap .wpsl-search .wpsl-dropdown {
    width: 100% !important; height: 3rem !important; min-height: 3rem; max-height: none; margin: 0; float: none;
    background: #fff !important; color: #394855 !important;
    border: 1px solid #aeb7be !important; border-radius: 4px !important;
    box-sizing: border-box;
}
#main-content #wpsl-wrap .wpsl-search #wpsl-search-input { padding: .65rem .85rem; font-size: 1rem; }
#main-content #wpsl-wrap .wpsl-search .wpsl-selected-item {
    height: 100%; width: 100%; padding: .65rem 2rem .65rem .85rem;
    color: #394855 !important; font: inherit; text-align: left; line-height: 1.5;
    border: 0; border-radius: 4px; background: transparent;
}
#main-content #wpsl-wrap .wpsl-search .wpsl-selected-item:after { border-top-color: #394855; }
#main-content #wpsl-wrap .wpsl-search .wpsl-dropdown > div { background: #fff; border-color: #aeb7be; }
#main-content #wpsl-wrap .wpsl-search .wpsl-dropdown li { color: #394855; background: #fff; }
#main-content #wpsl-wrap .wpsl-search .wpsl-dropdown li:hover,
#main-content #wpsl-wrap .wpsl-search .wpsl-dropdown li:focus,
#main-content #wpsl-wrap .wpsl-search .wpsl-dropdown li.wpsl-selected-dropdown { background: #eff2f5; color: #394855; }
#main-content #wpsl-wrap .wpsl-search .wpsl-search-btn-wrap { flex: 0 0 9rem; width: auto; }
#main-content #wpsl-wrap .wpsl-search .wpsl-search-btn-wrap #wpsl-search-btn {
    width: 100%; height: 3rem !important; min-height: 3rem; padding: .75rem 1.25rem !important;
    background: #d00c3e; color: #fff; border-radius: 4px !important; letter-spacing: .06em;
}
#main-content #wpsl-wrap .wpsl-search .wpsl-search-btn-wrap #wpsl-search-btn:hover { background: #ae0a34; opacity: 1; }
#main-content #wpsl-wrap .wpsl-search :is(input, button, li):focus-visible { outline: 2px solid #394855; outline-offset: 3px; }
@media (max-width: 767px) {
    #main-content #wpsl-wrap .wpsl-search { padding: 1rem !important; }
    #main-content #wpsl-wrap .wpsl-search #wpsl-search-wrap form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    #main-content #wpsl-wrap .wpsl-search .wpsl-search-btn-wrap { width: 100%; }
}
@media (max-width: 767px) {
    .section-headline.horizontal .intro-h-right { text-align: left; }
    .button__group.maxed-mobile { width: 100%; }
}
#main-content #masthead .site-tools .right-navigation .nav-button > a,
#main-content.transparent_header #masthead.scrolled .site-tools .right-navigation .nav-button > a {
    background: #fff !important; color: #394855 !important; border-color: #fff !important;
}
.button_group_item.button-text { border-color: currentColor; }
#site-footer, #site-footer .site-footer { background: #394855; }
#site-footer .button_group_item { background: #fff; color: #394855 !important; padding: 1rem 1.5rem; border-radius: 5px !important; }
.contact-sales .inner-wrapper, .contact-sales .inner-wrapper h3 { text-align: left; }
.contact-sales .section-image-text-column { display: flex; align-items: center; }
.contact-sales { display: flex; flex-direction: column; overflow: hidden; }
.contact-sales > * { min-width: 0; }
.contact-sales .section-image-image-column figure { margin: 0; height: auto; min-height: 0; padding: 0; aspect-ratio: auto; }
.contact-sales .section-image-image-column picture { display: block; }
.contact-sales .section-image-image-column img { display: block; position: static; width: 100%; height: auto; max-height: none; aspect-ratio: auto; }
.contact-sales .section-image-text-column { padding: 2rem 1.5rem; }
.contact-sales .section-image-text-column h3 { font-size: clamp(1.5rem, 2.2vw, 2.5rem); line-height: 1.25; }
.home .entry-header.video-header .viewport-header > .grid-x:has(> .cell > .page-title.text-align-left) { justify-content: flex-start; }
@media (min-width: 992px) {
    .contact-sales { flex-direction: row; align-items: stretch; }
    .contact-sales.reverse-col { flex-direction: row-reverse; }
    .contact-sales > * { flex: 0 0 50%; width: 50%; }
    .contact-sales .section-image-image-column { min-height: 0; }
    .contact-sales .section-image-image-column figure { position: static; }
    .contact-sales .section-image-text-column { padding: 4rem 5rem; }
    .column-header .content-column .content-column-inner { width: 100%; }
}
@media (max-width: 991px) {
    .contact-sales .section-image-image-column { flex: none; height: auto; }
}
@media (max-width: 767px) {
    .entry-header h1.page-title { font-size: 1.875rem !important; line-height: 1.25; }
    .button__group.maxed-mobile { flex-direction: column; align-items: stretch; }
    .button__group.maxed-mobile > .button_group_item { width: 100%; text-align: center; }
    .image-text-section.full > .grid-x > .cell { padding-top: 0 !important; padding-bottom: 0 !important; }
}
/* Product information must stay readable while gallery/media loading continues. */
.single-product .product_infos .sequential { opacity: 1 !important; visibility: visible !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
    .sequential { opacity: 1 !important; visibility: visible !important; transform: none !important; }
}
@media (max-width: 767px) {
    .single-product .product_infos h1.page-title { font-size: 1.875rem !important; line-height: 1.25; }
}
/* Apply horizontal image/text alignment to the text as well as the flex block. */
.image-text-section .section-image-text-column.h-align-left { text-align: left; }
.image-text-section .section-image-text-column.h-align-center { text-align: center; }
.image-text-section .section-image-text-column.h-align-right { text-align: right; }
/* Match the live navigation typography, including the scrolled header. */
#main-content #masthead .main-navigation a { font-family: 'Barlow', sans-serif !important; }
#main-content #masthead .main-navigation > ul > li > a,
#main-content #masthead .right-navigation > ul > li > a {
    font-size: .9rem !important;
    font-weight: 500;
}
#main-content #masthead .right-navigation > ul > li > a {
    line-height: 1;
    letter-spacing: .1em;
}
/* Contact cards retain the spacing of the established contact layout. */
.contact-cards-section .link-boxes:not(.contact-cards-list) .contact-card .link-box-content { padding: .7rem 0 !important; }
.contact-cards-section .link-boxes:not(.contact-cards-list) .contact-card .link-box-content h3 { margin: 0 0 1rem !important; line-height: 1.2; }
.contact-cards-section .link-boxes:not(.contact-cards-list) .contact-card .link-box-content ul { margin: 0 0 .5rem !important; padding: 0; }
.intro-section .section-headline.text-align-left { text-align: left; }
.intro-section .section-headline.text-align-center { text-align: center; }
.intro-section .section-headline.text-align-right { text-align: right; }
/* Keep the existing shop inquiry form alongside the archive introduction. */
.shop-page .entry-header.has-shop-inquiry > .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 4rem;
    align-items: center;
}
.shop-page .entry-header.has-shop-inquiry > .row > * { width: auto; max-width: none; min-width: 0; }
.shop-page .entry-header .shop-header-inquiry {
    padding: 0; margin: 0; width: 100%; max-width: none;
    opacity: 1 !important; visibility: visible !important; transform: none !important;
}
.shop-page .entry-header .shop-header-inquiry .gform_wrapper { margin: 0; }
@media (max-width: 991px) {
    .shop-page .entry-header.has-shop-inquiry > .row { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}
/* Text-style category links keep readable counts in their active state. */
.list_categories.text-buttons .current-cat > a .category-post-count,
.list_categories.text-buttons .current-cat-parent > a .category-post-count {
    color: inherit !important;
    opacity: .65;
}
/* The child theme already supplies menu-item margins; avoid double spacing. */
#main-content #masthead .main-navigation > ul,
#main-content #masthead .right-navigation > ul,
#main-content #masthead .menu-wrapper,
#main-content #masthead .right-navigation { gap: 0; }

/* Keep distinct controls separated while the link lists use their own margins. */
#main-content #masthead .site-tools { gap: 1rem; }
@media (min-width: 992px) {
    /* The parent selector targets a nested nav, leaving this top-level list stacked. */
    #main-content #masthead .right-navigation > ul {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: .75rem;
    }
    #main-content #masthead .right-navigation > ul > li { margin: 0; float: none; }
    #main-content #masthead .right-navigation > ul > li > a { white-space: nowrap; }
    /* The updated header puts its vertical padding on the branding element. */
    #main-content .top-headers-wrapper.sticky #masthead { padding: .35rem 0; }
    .entry-column-header .column-header > .inner-wrapper { column-gap: 4rem; }
    .entry-column-header .column-header .content-column { padding: 2rem; }
    .entry-column-header .column-header .content-column-inner { width: 100%; max-width: none; padding: 0; }
}
