/* V3.8A: readable type, art first, and bounded slideshow photographs. */
html { font-size:16px; }
body { font-size:1rem; }
[hidden] { display:none !important; }
h1, .catalogue-hero h1, .shop-launchpad h1, .product-detail h1, .page-hero h1 { font-size:clamp(1.75rem,2.6vw,2rem); line-height:1.18; overflow-wrap:anywhere; }
h2 { font-size:clamp(1.3rem,1.8vw,1.6rem); line-height:1.3; }
input,select,textarea,button { font-size:1rem; }
small,.field-note,.product-specs,.section-card__specs,.section-mini-card small,.catalogue-filters,.catalogue-toolbar label,.catalogue-toolbar p,.product-facts dt,.footer-bottom,.site-footer p,.site-footer h2,.eyebrow { font-size:.875rem; }
.catalogue-toolbar select,.section-card select,.section-card input,.section-card small,.stock-quantity small,.product-price small { font-size:.9375rem; }
.shell, main, .shell > *, .two-column-copy > *, .product-layout > * { min-width:0; }
.staff-preview-bar { position:static; padding:.75rem 1rem; margin:1rem auto; background:#fff5d8; color:#33280a; border-left:4px solid #cc8b00; border-radius:6px; font-size:.9375rem; }
.staff-preview-bar a { color:#03256a; }
.staff-preview-bar form { display:inline; }
.staff-preview-bar button { background:none; border:0; color:#03256a; text-decoration:underline; font-size:inherit; padding:.25rem; cursor:pointer; }
.staff-menu-link { display:none; }
.home-department-grid.v38-home-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:1.5rem; align-items:stretch; }
.v38-home-departments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.v38-home-departments .shop-dept-card { padding:1.1rem; gap:.8rem; }
.v38-home-departments .shop-dept-card:last-child { grid-column:1/-1; }
.v38-home-departments .shop-dept-card__icon { width:3.1rem; height:3.1rem; }
.v38-home-departments .shop-dept-card__icon svg { width:2rem; height:2rem; }
.v38-home-departments .shop-dept-card__body strong { font-size:1.18rem; }
.v38-home-departments .shop-dept-card__body>span { font-size:.9375rem; }
.v38-home-departments .shop-dept-card__meta { flex-wrap:wrap; gap:.4rem; font-size:.875rem; }
.home-art-feature { min-width:0; border:1px solid #d6dfec; border-radius:18px; background:#03256a; color:white; overflow:hidden; display:flex; flex-direction:column; }
/* Intrinsic photo sizes must not enlarge an implicit grid row. Each slide
   fills this definite frame; its caption takes a normal row below the photo. */
.home-art-stage { position:relative; min-width:0; min-height:0; height:clamp(22rem,38vw,34rem); flex:none; overflow:hidden; background:#ebeff4; }
.home-art-slide { position:absolute; inset:0; margin:0; min-width:0; min-height:0; opacity:0; visibility:hidden; transition:opacity .7s ease; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; }
.home-art-slide.is-active { opacity:1; visibility:visible; }
.home-art-subject { position:relative; display:block; min-width:0; min-height:0; overflow:hidden; }
.home-art-slide img { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }
.home-art-slide figcaption { min-width:0; margin:0; overflow-wrap:anywhere; background:#03256a; color:white; padding:.7rem 1.2rem; font-size:.9375rem; }
.home-art-feature-content { padding:1.2rem; }
.home-art-feature-content h2 { color:white; font-size:1.65rem; margin:0 0 .5rem; }
.home-art-feature-content p { font-size:1rem; }
.home-art-feature-content .button { background:white; color:#03256a; border-color:white; width:100%; }
.home-art-controls { display:flex; align-items:center; justify-content:center; gap:.5rem; padding:.5rem 1rem; background:#03256a; }
.home-art-controls button { min-height:44px; border:1px solid #a7b5ce; border-radius:5px; padding:.35rem .7rem; color:white; background:transparent; cursor:pointer; }
.home-art-controls span { font-size:.875rem; }
.art-filters { display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 1rem; }
.art-filters a { border:1px solid #9dacc5; border-radius:7px; padding:.6rem 1.1rem; color:#03256a; text-decoration:none; font-weight:700; min-height:44px; background:white; }
.art-filters a[aria-current] { color:white; background:#03256a; }
.art-demo-note { font-size:.9375rem; color:#475568; }
.v38-art-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr)); gap:1.4rem; margin-top:1.5rem; }
.v38-art-card { min-width:0; border:1px solid #d6dfec; border-radius:15px; overflow:hidden; background:white; display:flex; flex-direction:column; box-shadow:0 5px 15px #05245709; }
.v38-art-card-photo { display:block; background:#ebeff4; }
.v38-art-card-photo img { display:block; width:100%; height:auto; max-height:25rem; object-fit:contain; }
.v38-stag-photo img { aspect-ratio:799/770; height:auto; max-height:none; object-fit:cover; object-position:top; }
.v38-art-card-body { padding:1.2rem; display:flex; flex:1; flex-direction:column; gap:.7rem; }
.v38-art-card-body p,.v38-art-card-body h2 { margin:0; }
.v38-art-card-body h2 { font-size:1.35rem; }
.v38-art-card-body h2 a { text-decoration:none; }
.v38-art-card-body>p:not(.eyebrow) { font-size:1rem; }
.v38-art-card-body .art-purchase { margin-top:auto; padding-top:1rem; }
.art-stock { border-top:1px solid #d6dfec; padding-top:.8rem; margin:0 0 .8rem !important; font-size:.9375rem; }
.art-price { margin-bottom:1rem !important; }
.art-price strong { display:block; font-size:1.3rem; color:#03256a; }
.art-price small { display:block; margin-top:.4rem; font-size:.875rem; }
.art-buy-actions { display:flex; align-items:end; gap:.6rem; }
.art-buy-actions label { width:5rem; flex-shrink:0; font-size:.9375rem; }
.art-buy-actions input { width:100%; min-height:44px; }
.art-buy-actions button { flex:1; }
.art-purchase>.button { width:100%; }
.art-details-link { padding-top:.5rem; font-weight:700; }
.staff-edit-link { font-size:.875rem; }
.art-detail { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:2rem; align-items:start; }
.art-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.art-gallery-photo { display:block; border-radius:12px; overflow:hidden; background:#ebeff4; text-decoration:none; }
.art-gallery-photo:first-child { grid-column:1/-1; }
.art-gallery-photo img { width:100%; height:auto; display:block; max-height:70svh; object-fit:contain; }
.art-gallery-photo span { display:block; padding:.7rem; font-size:.9375rem; }
.art-detail-copy { background:white; border:1px solid #d6dfec; border-radius:12px; padding:1.5rem; }
.art-detail-copy p { white-space:pre-line; }
.art-detail-copy dl { display:grid; grid-template-columns:6rem 1fr; gap:.5rem 1rem; }
.art-detail-copy dd { margin:0; overflow-wrap:anywhere; }
.art-detail-copy dt { font-weight:700; }
.art-ageing { margin-top:2rem; border-left:4px solid #a76639; padding:1rem 1.5rem; background:#f8f2ec; }
.art-ageing p { max-width:85ch; }
.coming-soon { max-width:65rem; min-height:20rem; }
@media(max-width:1100px) { .home-department-grid.v38-home-grid { grid-template-columns:1fr 1fr; } .v38-home-departments { grid-template-columns:1fr; } .v38-home-departments .shop-dept-card { display:grid; grid-template-columns:3.1rem 1fr; } .v38-home-departments .shop-dept-card__meta { grid-column:1/-1; } }
@media(max-width:800px) { .home-department-grid.v38-home-grid { grid-template-columns:1fr; } .home-art-feature { grid-row:1; } .home-art-stage { height:auto; aspect-ratio:1/1; } .art-detail { grid-template-columns:1fr; } .staff-menu-link { display:block; } .art-detail-copy { padding:1.1rem; } }
@media(max-width:520px) { .v38-art-card-photo img { max-height:34rem; } .home-art-controls { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .home-art-slide { transition:none; } }
/* Product forms must reflow before their old fixed minimum columns overflow. */
.product-detail { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:2rem; }
.product-detail__summary { position:static; }
.product-detail__summary h1 { font-size:clamp(1.75rem,2.6vw,2rem); }
.product-facts,.product-facts dd,.section-product-card__body>small,.section-product-card__buy label,.section-product-card__buy small,.section-product-card__buy select,.section-product-card__buy input,.fastener-column-headings,.fastener-order-row__details,.shop-search-suggestion small,.shop-search-suggestion em,.shop-search-suggestions__heading { font-size:.875rem; }
.product-summary-stats span,.product-summary-stats small,.prototype-note,.calculation-summary small,.form-card label,.configurator-card label { font-size:.9375rem; }
.section-product-card__buy .button,.fastener-row-actions .button { font-size:1rem; }
@media(max-width:1100px) { .product-detail { grid-template-columns:minmax(0,1fr); } }
.primary-nav .staff-menu-link { display:none; }
@media(max-width:800px) { .primary-nav .staff-menu-link { display:block; } }
