/* Customer content only. Header, navigation, footer and admin/report pages have
   separate owners. Component styles may refine this foundation. */
body.psu-storefront {
    --psu-ink: #302a25;
    --psu-muted: #6e655e;
    --psu-accent: #743c2e;
    --psu-accent-hover: #54291e;
    --psu-border: #e6dfd7;
    --psu-surface: #f7f4ef;
    --psu-font: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    margin: 0;
    background: var(--psu-surface);
}
.psu-storefront #content {
    color: var(--psu-ink);
    font: 16px/1.6 var(--psu-font);
}
.psu-storefront :where(#page, #content, #content *, #content *::before, #content *::after) { box-sizing: border-box; }
.psu-storefront :where(#content) :where(h1, h2, h3, h4) {
    color: var(--psu-ink);
    font-family: var(--psu-font);
    font-weight: 400;
    line-height: 1.3;
    margin: 0 0 20px;
    overflow-wrap: anywhere;
}
.psu-storefront :where(#content) :where(h1) { font-size: clamp(26px, 2.4vw, 34px); }
.psu-storefront :where(#content) :where(h2) { font-size: 24px; }
.psu-storefront :where(#content) :where(h3, h4) { font-size: 20px; }
.psu-storefront :where(#content) :where(p) { margin: 0 0 20px; }
.psu-storefront :where(#content) :where(a) { color: var(--psu-accent); text-underline-offset: 3px; }
.psu-storefront :where(#content) :where(a:hover) { color: var(--psu-accent-hover); }
.psu-storefront :where(#content) :where(img) { max-width: 100%; height: auto; }
.psu-storefront :where(#content) :where(button, input, select, textarea) { font-family: var(--psu-font); }
.psu-storefront #content :where(button, input, select, textarea, a, summary):focus-visible {
    outline: 3px solid var(--psu-accent);
    outline-offset: 3px;
}
.psu-storefront #content :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="number"], input[type="url"], select, textarea):not(:where(.loop-qty, .pc-qo-input, .qty, .psu-single-product-search__field)) {
    max-width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--psu-border);
    border-radius: 8px;
    background-color: #fff;
    color: var(--psu-ink);
    font-size: 16px;
    line-height: 1.4;
    box-shadow: none;
}
.psu-storefront :where(#content) :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--psu-accent); }
.psu-storefront #content .select2-container .select2-selection--single { min-height: 44px; border: 1px solid var(--psu-border); border-radius: 8px; background: #fff; }
.psu-storefront #content .select2-container .select2-selection__rendered { padding: 10px 30px 10px 12px; color: var(--psu-ink); font: 16px/22px var(--psu-font); }
.psu-storefront #content .select2-container .select2-selection__arrow { height: 42px; }
.psu-storefront #content .woocommerce-invalid :is(input.input-text, select, .select2-container .select2-selection) { border-color: #a13928; }
body.psu-storefront :where(#content) :is(a.button, button.button, input.button, button[type="submit"], input[type="submit"]) {
    min-height: 44px;
    padding: 11px 18px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: var(--psu-accent);
    color: #fff;
    font: 600 15px/1.4 var(--psu-font);
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;
}
body.psu-storefront :where(#content) :is(a.button, button.button, input.button, button[type="submit"], input[type="submit"]):hover {
    background: var(--psu-accent-hover);
    color: #fff;
}
body.psu-storefront :where(#content) :is(.button, button, input[type="submit"]):is(:disabled, .disabled, [aria-disabled="true"]) { opacity: .5; cursor: not-allowed; }

/* GeneratePress shell adapter: one gutter instead of nested 95% containers.
   The product module already owns its wrapper and retains its gallery geometry. */
.psu-storefront:not(.psu-product-page) #page {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 28px 32px 48px;
}
.psu-storefront:not(.psu-product-page) #content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 24px;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
.psu-storefront:not(.psu-product-page) #primary,
.psu-storefront:not(.psu-product-page) #main {
    float: none;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
}
.psu-storefront:not(.psu-product-page) #main .inside-article {
    margin: 0;
    padding: 24px;
    border: 1px solid var(--psu-border);
    border-radius: 16px;
    background: #fff;
}
.psu-storefront #main .entry-content { margin: 0; }
.psu-storefront #content .widget-area { width: 100%; min-width: 0; margin: 0; padding: 0; }
.psu-storefront #content .inside-left-sidebar,
.psu-storefront #content .inside-right-sidebar { margin: 0; padding: 0; }
.psu-storefront #content .widget {
    padding: 20px;
    margin: 0 0 20px;
    border: 1px solid var(--psu-border);
    border-radius: 16px;
    background: #fff;
}
.psu-storefront #content .widget-title { font-size: 20px; margin-bottom: 16px; }
@media (min-width: 1025px) {
    .psu-storefront.right-sidebar #content { grid-template-columns: minmax(0, 1fr) 280px; }
    .psu-storefront.left-sidebar #content { grid-template-columns: 280px minmax(0, 1fr); }
    .psu-storefront.left-sidebar #primary { grid-column: 2; grid-row: 1; }
    .psu-storefront.left-sidebar #left-sidebar { grid-column: 1; grid-row: 1; }
}

/* Catalogue rhythm. Grid and compact buying controls belong to catalog-cards. */
.psu-storefront #main .woocommerce-products-header {
    position: static;
    margin: 0 0 20px;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.psu-storefront #main .woocommerce-products-header h1 { margin: 0; font-size: clamp(24px, 2vw, 30px); font-weight: 400; }
.psu-storefront #main .woocommerce-breadcrumb { margin: 0 0 20px; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.psu-storefront #main .woocommerce-breadcrumb a { color: var(--psu-muted); }
.psu-storefront #main .psu-catalog-filters { margin: 0 0 20px; padding: 16px; border-color: var(--psu-border); border-radius: 12px; background: var(--psu-surface); }
.psu-storefront #main .psu-catalog-filters__advanced > summary { color: var(--psu-accent); }
.psu-storefront #main .psu-catalog-filters__actions button { min-height: 44px; border-color: var(--psu-accent); border-radius: 8px; background: var(--psu-accent); color: #fff; }
.psu-storefront #main .psu-catalog-filters__actions button:hover { background: var(--psu-accent-hover); }
.psu-storefront #main .psu-per-page { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 16px 0 20px; font-size: 14px; }
.psu-storefront #main .psu-per-page__label { margin-right: 6px; color: var(--psu-muted); }
.psu-storefront #main .psu-per-page__btn { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid var(--psu-border); border-radius: 8px; text-decoration: none; }
.psu-storefront #main .psu-per-page__btn.is-active { border-color: var(--psu-accent); background: var(--psu-accent); color: #fff; }
.psu-storefront #main .psu-catalog-pagination ul.page-numbers li :is(a, span) { min-width: 44px; min-height: 44px; border-color: var(--psu-border); border-radius: 8px; }
.psu-storefront #main .psu-catalog-pagination ul.page-numbers li .current { border-color: var(--psu-accent); background: var(--psu-accent); color: #fff; }
.psu-storefront #main .woocommerce-result-count { color: var(--psu-muted); font-size: 14px; }
.psu-storefront #main .woocommerce-ordering { max-width: 100%; }
.psu-storefront #main .woocommerce-loop-category__title .count { color: var(--psu-muted); background: transparent; font-weight: 400; }

/* Account tabs keep their wrapping layout and no longer inherit theme blue. */
.psu-storefront .woocommerce-MyAccount-navigation,
.psu-storefront .woocommerce-MyAccount-content { float: none; width: 100%; max-width: 100%; min-width: 0; }
.psu-storefront .woocommerce-MyAccount-navigation { margin: 0 0 28px; }
.psu-storefront .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 0 0 12px; list-style: none; border-bottom: 1px solid var(--psu-border); }
.psu-storefront .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
.psu-storefront .woocommerce-MyAccount-navigation a { display: block; min-height: 44px; padding: 11px 14px; border-radius: 8px; color: var(--psu-muted); font-size: 14px; font-weight: 500; line-height: 1.5; text-decoration: none; }
.psu-storefront .woocommerce-MyAccount-navigation li.is-active a,
.psu-storefront .woocommerce-MyAccount-navigation a:hover { background: var(--psu-surface); color: var(--psu-accent); }
.psu-storefront .woocommerce form.login,
.psu-storefront .woocommerce form.register { padding: 24px; border: 1px solid var(--psu-border); border-radius: 12px; }
.psu-storefront--account:not(.logged-in) #page:has(form.login):not(:has(form.register)) { max-width: 720px; }
.psu-storefront #main .woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.psu-storefront #main .woocommerce form .form-row label { margin-bottom: 6px; line-height: 1.5; }
.psu-storefront #main table.shop_table { width: 100%; border-color: var(--psu-border); border-radius: 10px; border-spacing: 0; border-collapse: separate; }
.psu-storefront #main table.shop_table :is(th, td) { max-width: none; border-color: var(--psu-border); overflow-wrap: anywhere; }
.psu-storefront #main table.shop_table th { font-weight: 600; }
.psu-storefront :where(#main) table.shop_table :is(th, td) { border-style: solid; border-width: 1px 0 0; }
.psu-storefront :where(#main) table.shop_table thead th { border-top: 0; }
.psu-storefront #main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { border-radius: 8px; font-size: 15px; }
.psu-storefront #main .pc-qo-table-wrap { border-color: var(--psu-border); }
.psu-storefront #main .pc-qo-table { margin: 0; border: 0; }
.psu-storefront #main .pc-qo-table :is(th, td) { border: 0; border-bottom: 1px solid var(--psu-border); }
.psu-storefront #main .pc-qo-input { background: #fff; color: var(--psu-ink); line-height: 1.4; }

@media (min-width: 769px) {
    .psu-storefront #main .psu-catalog-filters { grid-template-columns: minmax(0, 1fr) auto; }
    .psu-storefront #main .psu-catalog-filters__advanced { grid-column: 1; }
    .psu-storefront #main .psu-catalog-filters__advanced[open] { grid-column: 1 / -1; }
    .psu-storefront #main .psu-catalog-filters__actions { grid-column: 2; }
}

@media (max-width: 768px) {
    .psu-storefront:not(.psu-product-page) #page { padding: 16px 12px 32px; }
    .psu-storefront:not(.psu-product-page) #main .inside-article { padding: 20px 16px; border-radius: 12px; }
    .psu-storefront.psu-catalog #main .inside-article { padding: 16px 8px; }
    .psu-storefront #main .psu-catalog-filters { padding: 12px; }
    .psu-storefront .woocommerce form.login,
    .psu-storefront .woocommerce form.register { padding: 18px 14px; }
    .psu-storefront .woocommerce-MyAccount-navigation { margin-bottom: 20px; }
    .psu-storefront .woocommerce-MyAccount-navigation a { padding: 10px; }
}
