/** Compact responsive search/navigation and catalogue utility controls. */
.info-header {
    padding:0!important;
}
.info-topline {
    padding:7px 16px;
    font-size:11px;
    letter-spacing:.14em;
}
.info-header .info-header-inner {
    display:grid;
    grid-template-columns:190px minmax(240px,1fr) auto;
    gap:20px;
    align-items:center;
    padding-top:15px;
    padding-bottom:0;
}
.info-header .header-brand img {
    width:180px;
    max-height:72px;
    object-fit:contain;
}
.site-search {
    display:flex;
    align-items:center;
    background:#f0f4f1;
    border:1px solid #cddbd1;
    border-radius:12px;
    padding:5px 5px 5px 14px;
    min-width:0;
    gap:9px;
}
.search-symbol {
    font-size:30px;
    color:#1d654e;
    line-height:1;
}
.site-search input {
    border:0;
    background:transparent;
    min-width:0;
    flex:1;
    padding:12px 0;
    font:inherit;
    font-size:14px;
    color:#142b22;
    outline-offset:4px;
}
.site-search button {
    border:0;
    border-radius:8px;
    background:#164e3e;
    color:white;
    padding:13px 19px;
    font:inherit;
    font-weight:700;
    cursor:pointer;
}
.header-explore {
    font-size:11px;
    line-height:1.6;
    text-decoration:none;
    color:#53685e;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.header-explore strong {
    font-size:12px;
    color:#164e3e;
}
.info-header .info-nav {
    grid-column:1/-1;
    display:flex;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:0;
    border-top:1px solid #e0e8e2;
    margin-top:1px;
    padding:0;
    min-width:0;
}
.info-header .info-nav a {
    font-size:14px;
    padding:14px 24px 14px 0;
    margin-right:20px;
    text-decoration:none;
    position:relative;
}
.info-header .info-nav a:hover {
    color:#217353;
}
.info-header .info-nav a:hover:after {
    content:"";
    position:absolute;
    height:2px;
    background:#217353;
    bottom:0;
    left:0;
    right:24px;
}
.info-header .info-nav .nav-search-link {
    margin-left:auto;
    margin-right:24px;
    padding-right:0;
    color:#217353;
}
.visually-hidden {
    position:absolute!important;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.search-results {
    max-width:1100px;
}
.search-results h1 {
    font-size:clamp(32px,5vw,52px);
    margin:12px 0;
}
.search-result-list {
    display:grid;
    gap:14px;
    margin-top:28px;
}
.search-result-list article {
    background:white;
    border:1px solid #dce5de;
    border-radius:12px;
    padding:24px;
}
.search-result-list h2 {
    font-size:23px;
    margin:8px 0;
}
.search-result-list p {
    font-size:15px;
    line-height:1.7;
    margin:0;
    color:#58685f;
}
.search-result-type {
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#227454;
    font-weight:700;
}
.search-pagination,.product-utility-actions,.product-tags {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:18px 0;
}
.search-pagination a,.product-tags a {
    padding:7px 12px;
    border:1px solid #d3e0d7;
    border-radius:20px;
    text-decoration:none;
    font-size:13px;
}
.search-pagination [aria-current] {
    background:#164e3e;
    color:white;
}
.product-utility-actions button,.product-utility-actions a {
    border:1px solid #cddbd1;
    background:white;
    border-radius:8px;
    padding:10px 15px;
    color:#164e3e;
    font:inherit;
    font-size:14px;
    cursor:pointer;
    text-decoration:none;
}
.product-utility-actions [aria-pressed=true] {
    background:#e4f0e8;
}
.product-rating-summary {
    display:inline-flex;
    gap:8px;
    align-items:center;
    margin-top:16px;
    font-size:14px;
}
.product-rating-summary span {
    color:#a76e05;
}
.demo-product-summary .product-short-description p {
    margin:0 0 12px;
}
.demo-product-summary h2 {
    font-size:clamp(28px,4vw,46px);
}
.store-checkout {
    max-width:1000px;
}
.store-checkout-form {
    display:grid;
    gap:20px;
    max-width:740px;
}
.store-checkout-form label {
    display:block;
}
.store-checkout-form fieldset {
    border:1px solid #cad9cf;
    border-radius:12px;
    padding:18px;
}
.store-checkout-form fieldset label {
    margin:10px 0;
}
.store-order-summary {
    background:#edf4ef;
    padding:20px;
    border-radius:12px;
}
.store-basket-row {
    border-bottom:1px solid #cad9cf;
    padding:22px 0;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.store-basket-row h2 {
    font-size:22px;
}
.store-basket-row input {
    max-width:75px;
}
.store-add-form {
    display:grid;
    grid-template-columns:1fr 85px;
    gap:14px;
    margin:20px 0;
}
.store-add-form .btn {
    grid-column:1/-1;
}
.store-add-form label {
    font-size:13px;
}
.store-add-form select {
    width:100%;
}
@media(max-width:700px) {
    .info-header .info-header-inner {
        grid-template-columns:1fr auto;
        gap:12px;
        padding-top:12px;
    }
    .info-header .header-brand img {
        width:145px;
        max-height:55px;
    }
    .header-explore {
        font-size:9px;
    }
    .header-explore strong {
        font-size:10px;
    }
    .site-search {
        grid-row:2;
        grid-column:1/-1;
    }
    .site-search input {
        font-size:13px;
    }
    .site-search button {
        padding:12px;
        font-size:12px;
    }
    .info-header .info-nav {
        flex-wrap:nowrap;
        overflow-x:auto;
        gap:22px;
    }
    .info-header .info-nav a {
        white-space:nowrap;
        margin:0;
        padding:12px 0;
        font-size:12px;
    }
    .info-header .info-nav .nav-search-link {
        margin:0;
    }
    .info-topline {
        font-size:9px;
        letter-spacing:.08em;
    }
    .publication-breadcrumbs {
        font-size:12px;
    }
    .search-result-list article {
        padding:18px;
    }
}
/* Mobile navigation lists every action in a wrapping grid, never a horizontal scrolling strip. */
.public-menu-toggle { display: none; }
@media (max-width: 700px) {
    .public-menu-toggle:not([hidden]) {
        display: flex;
        justify-content: space-between;
        align-items: center;
        grid-column: 1 / -1;
        width: 100%;
        border: 1px solid #cddbd1;
        border-radius: 8px;
        background: #f0f4f1;
        padding: 12px 16px;
        color: #164e3e;
        font: inherit;
        font-weight: 700;
        cursor: pointer;
    }
    .info-header .info-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 12px;
        overflow: visible;
        padding: 0 0 10px;
    }
    .info-header .info-nav.mobile-menu-closed { display: none; }
    .info-header .info-nav a,
    .info-header .info-nav .nav-search-link {
        margin: 0;
        white-space: normal;
        padding: 13px 8px;
        border-bottom: 1px solid #e0e8e2;
        font-size: 13px;
    }
}

/* Native details remains keyboard-accessible and works without JavaScript. */
.catalogue-menu { position:relative; align-self:center; margin-right:20px; }
.catalogue-menu summary { cursor:pointer; padding:14px 24px 14px 0; font-size:14px; }
.catalogue-menu-links { position:absolute; top:100%; left:0; z-index:30; min-width:240px; max-height:60vh; overflow:auto; background:#fff; border:1px solid #cddbd1; border-radius:8px; padding:10px 16px; box-shadow:0 10px 24px #142b2220; }
.info-header .catalogue-menu-links a { display:block; margin:0; padding:10px 0; }
@media (max-width:700px) { .catalogue-menu { width:100%; } .catalogue-menu-links { position:static; max-height:45vh; box-shadow:none; } }

/* Server-rendered shop filters work with or without JavaScript. */
.shop-filter-bar { display:flex; flex-wrap:wrap; gap:16px; align-items:end; padding:22px; margin:24px 0; border:1px solid #cddbd1; border-radius:12px; background:#f3f7f4; }
.shop-filter-bar > div { flex:1 1 180px; }
.shop-filter-bar label { display:block; font-weight:700; margin-bottom:7px; }
.shop-filter-bar select { width:100%; padding:12px; font:inherit; border:1px solid #b7c9bd; border-radius:7px; background:#fff; color:#18392b; }
.shop-result-count { color:#53685e; }

/* Conditional checkout fields must remain hidden despite shared label display rules. */
.store-checkout-form [hidden] { display: none; }
.store-copy-detail { margin: 18px 0; }
.store-copy-detail label { display: block; }
.store-copy-detail input { width: 100%; margin: 8px 0; }
.store-copy-detail [role="status"] { display: block; margin-top: 6px; }
