/*
Theme Name: Lavka Storefront
Description: Independent document shell for the Lavka shop and its presentation plugins.
Version: 0.1.0
Author: Lavka
Text Domain: lavka-storefront
Domain Path: /languages
Requires at least: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* Baseline only. Paint Shop UX owns customer-page layouts and controls. */
body.lavka-theme { margin: 0; background: #f7f4ef; color: #302a25; font: 16px/1.6 -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; }
.lavka-theme :where(*, *::before, *::after) { box-sizing: border-box; }
.lavka-theme :where(img, video) { max-width: 100%; height: auto; }
.lavka-theme :where(iframe, audio) { max-width: 100%; }
.lavka-theme :where(a) { color: #743c2e; text-underline-offset: 3px; }
.lavka-theme :where(button, input, select, textarea) { font: inherit; }
.lavka-theme :where(button, input[type="submit"]) { cursor: pointer; }
.lavka-theme :where([hidden]) { display: none !important; }
.lavka-theme :where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #743c2e; outline-offset: 3px; }
.lavka-theme :where(h1, h2, h3, h4, h5, h6) { margin: 0 0 20px; font-weight: 400; line-height: 1.3; overflow-wrap: anywhere; }
.lavka-theme :where(h1) { font-size: clamp(28px, 3vw, 40px); }
.lavka-theme :where(h2) { font-size: 26px; }
.lavka-theme :where(h3) { font-size: 21px; }
.lavka-theme :where(p, ul, ol, dl, blockquote, figure, table, pre) { margin-top: 0; margin-bottom: 20px; }
.lavka-theme :where(ul, ol) { padding-left: 1.5em; }
.lavka-theme :where(figure) { margin-left: 0; margin-right: 0; }
.lavka-theme :where(pre) { overflow: auto; }
.lavka-shell { width: 100%; max-width: 1440px; margin: 0 auto; padding: 28px 32px 48px; }
.lavka-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 24px; }
.lavka-theme :where(#primary, #main, .widget-area) { min-width: 0; }
.lavka-entry, .lavka-woocommerce-shell { padding: 32px; border: 1px solid #e6dfd7; border-radius: 16px; background: #fff; }
.lavka-entry + .lavka-entry { margin-top: 24px; }
/* Content may contain application shortcodes: keep defaults easy to override. */
.lavka-theme :where(.lavka-entry > .entry-content > :last-child) { margin-bottom: 0; }
.lavka-theme :where(.lavka-entry > .entry-header) { margin-bottom: 24px; }
.lavka-theme :where(.lavka-entry > .entry-header .entry-title a) { color: inherit; }
.lavka-theme :where(.lavka-entry > .entry-meta) { color: #6e655e; font-size: 13px; }
.lavka-theme :where(.lavka-entry > .post-thumbnail) { margin-bottom: 24px; }
.lavka-theme :where(.lavka-entry > .post-thumbnail img) { display: block; border-radius: 8px; }
/* Keep native table layout; each application owns its responsive table wrapper. */
.lavka-theme :where(.lavka-entry > .entry-content table) { width: 100%; border-collapse: collapse; }
.lavka-theme :where(.lavka-entry > .entry-content th, .lavka-entry > .entry-content td) { padding: 10px 14px; border: 1px solid #e6dfd7; text-align: start; }
.lavka-theme :where(.lavka-entry > .entry-content blockquote) { margin-left: 0; padding: 16px 20px; border-left: 3px solid #743c2e; background: #f7f4ef; }
.lavka-theme :where(.lavka-entry > .entry-content .alignleft) { float: left; margin: 0 20px 20px 0; }
.lavka-theme :where(.lavka-entry > .entry-content .alignright) { float: right; margin: 0 0 20px 20px; }
.lavka-theme :where(.lavka-entry > .entry-content .aligncenter) { display: block; margin-left: auto; margin-right: auto; }
.lavka-theme :where(.lavka-entry > .entry-content)::after { content: ''; display: table; clear: both; }
.lavka-theme :where(.widget) { padding: 20px; border: 1px solid #e6dfd7; border-radius: 12px; background: #fff; }
.lavka-theme :where(.widget + .widget) { margin-top: 20px; }
.lavka-theme :where(.widget-title) { font-size: 20px; }
.lavka-theme :where(.screen-reader-text) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.lavka-theme :where(.screen-reader-text:focus) { position: fixed; top: 12px; left: 12px; z-index: 100001; width: auto; height: auto; padding: 12px 16px; clip: auto; background: #fff; }
.lavka-fallback-header, .lavka-fallback-footer { padding: 24px 32px; background: #fff; }
.lavka-fallback-header { border-bottom: 1px solid #e6dfd7; }
.lavka-fallback-footer { border-top: 1px solid #e6dfd7; }
.lavka-fallback-header__inner, .lavka-fallback-footer__inner { max-width: 1376px; margin: 0 auto; }
.lavka-fallback-header .site-title { margin: 0 0 16px; font-size: 26px; }
.lavka-fallback-header ul { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.lavka-fallback-header .sub-menu { display: block; padding-left: 16px; }
.lavka-fallback-widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin-top: 20px; }
.lavka-fallback-search { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin: 24px 0; }
.lavka-fallback-search label { flex: 1 1 200px; }
.lavka-fallback-search label span { display: block; margin-bottom: 6px; }
.lavka-fallback-search input { width: 100%; min-width: 0; }
.lavka-fallback-search :where(input, button), .lavka-theme:where(:not(.psu-storefront)) :where(.lavka-entry input:not([type="checkbox"]):not([type="radio"]), .lavka-entry textarea, .lavka-entry select) { max-width: 100%; padding: 10px 12px; border: 1px solid #e6dfd7; border-radius: 8px; background: #fff; color: #302a25; }
.lavka-fallback-search :where(button), .lavka-theme:where(:not(.psu-storefront)) :where(.lavka-entry input[type="submit"]) { min-height: 44px; padding: 10px 18px; background: #743c2e; color: #fff; border-color: #743c2e; }
.lavka-theme :where(.nav-links, .page-links) { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.lavka-theme :where(.nav-links > a, .nav-links > span, .page-links > a, .page-links > span) { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid #e6dfd7; border-radius: 8px; }
.lavka-theme :where(.comments-area) { margin-top: 32px; }
.lavka-theme :where(.comment-list) { padding-left: 0; list-style: none; }
.lavka-theme :where(.comment-body) { padding: 20px 0; border-bottom: 1px solid #e6dfd7; }
.lavka-theme :where(.comment-meta, .comment-notes) { font-size: 14px; color: #6e655e; }
.lavka-theme :where(.comment-form textarea) { display: block; width: 100%; }
.lavka-theme :where(.related.products) { clear: both; }
@media (min-width: 1025px) {
    .lavka-theme.right-sidebar .lavka-layout { grid-template-columns: minmax(0, 1fr) 280px; }
    .lavka-theme.left-sidebar .lavka-layout { grid-template-columns: 280px minmax(0, 1fr); }
    .lavka-theme.left-sidebar .lavka-layout > #primary { grid-column: 2; grid-row: 1; }
    .lavka-theme.left-sidebar .lavka-layout > #left-sidebar { grid-column: 1; grid-row: 1; }
}
@media (max-width: 768px) {
    .lavka-shell { padding: 16px 12px 32px; }
    .lavka-entry, .lavka-woocommerce-shell { padding: 24px 20px; border-radius: 12px; }
    .lavka-fallback-header, .lavka-fallback-footer { padding: 20px 16px; }
    .lavka-theme :where(.lavka-entry > .entry-content .alignleft, .lavka-entry > .entry-content .alignright) { float: none; margin-left: 0; margin-right: 0; }
    .lavka-theme :where(.woocommerce-ordering) { float: none; }
}
