/* SSC — WordPress layer: Customizer hooks, menus, post content, WooCommerce, Elementor.
   base.css holds the design system; this file adapts it to WordPress markup. */

/* ---------- Customizer hooks ---------- */
.display, .statement, .row__t, .tile__t, .entry__t, .chain li, .drawer nav a, .product__context, .footer__mark, .wordmark {
  font-weight: var(--ssc-display-weight, 700);
  text-transform: var(--ssc-display-case, uppercase);
}
.display--hero { font-size: calc(clamp(64px, 17vw, 208px) * var(--ssc-display-scale, 1)); }
.display--xl { font-size: calc(clamp(52px, 12vw, 152px) * var(--ssc-display-scale, 1)); }
.display--lg { font-size: calc(clamp(40px, 7.4vw, 104px) * var(--ssc-display-scale, 1)); }
.display--md { font-size: calc(clamp(32px, 4.6vw, 60px) * var(--ssc-display-scale, 1)); }
@media (min-width: 720px) {
  .section { padding-block: var(--ssc-section-space, 96px); }
}
@media (min-width: 1024px) {
  .display--hero { font-size: calc(clamp(96px, 12vw, 208px) * var(--ssc-display-scale, 1)); }
}
.no-tabbar { padding-bottom: 0; }
.header-static .header { position: static; }
.admin-bar .header { top: 32px; }
@media (max-width: 782px) { .admin-bar .header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .header { top: 0; } }
.header__menu { min-height: var(--size-touch); font-size: var(--font-size-micro); font-weight: var(--font-weight-medium); letter-spacing: var(--font-tracking-label); text-transform: uppercase; color: var(--color-cold-grey); }

/* ---------- menus ---------- */
.menu { display: contents; }
.header__nav .menu { display: flex; gap: var(--space-6); }
.header .current-menu-item > a, .header .current_page_item > a { color: var(--color-off-white); text-decoration: underline; text-underline-offset: 8px; }
.drawer .current-menu-item > a { color: var(--color-cold-grey); }
.footer__menu .menu { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-5); }
.footer__menu, .footer__grid > .footer__menu { grid-column: 1 / -1; }
.footer__col .widget a { display: flex; align-items: center; min-height: 40px; }
.custom-logo-link img { max-height: 40px; width: auto; }
@media (min-width: 720px) {
  .footer__menu, .footer__grid > .footer__menu { grid-column: 2 / -1; }
  .footer__menu .menu { grid-template-columns: repeat(3, 1fr); }
}
.hero__plate--image { padding: 0 !important; border: 0 !important; }
.hero__plate--image img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- post and page content ---------- */
.prose > * + * { margin-top: var(--space-5); }
.prose h2, .prose h3, .prose h4 { font-family: var(--font-family-display); font-stretch: 75%; font-weight: var(--ssc-display-weight, 700); text-transform: var(--ssc-display-case, uppercase); line-height: 1; margin-top: var(--space-7); }
.prose h2 { font-size: 40px; } .prose h3 { font-size: var(--font-size-title); } .prose h4 { font-size: 22px; }
.prose a:not(.btn):not(.button) { text-decoration: underline; text-underline-offset: 4px; }
.prose ul, .prose ol { padding-left: var(--space-5); }
.prose ul { list-style: square; } .prose ol { list-style: decimal; }
.prose blockquote { margin: 0; padding-left: var(--space-5); border-left: 2px solid var(--color-black); font-size: var(--font-size-lead); }
.prose img { height: auto; }
.prose table { width: 100%; border-collapse: collapse; }
.prose th, .prose td { text-align: left; padding: var(--space-3); border-bottom: var(--border-hairline) solid var(--color-line-on-light); }
.pagehero .lead > * + * { margin-top: var(--space-4); }
.entry__media { display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: var(--space-2); }
.entry__media img { width: 100%; height: 100%; object-fit: cover; }
.entry__t a:hover { text-decoration: underline; text-underline-offset: 4px; }
.alignwide { max-width: var(--size-container); }
.alignleft { float: left; margin: 0 var(--space-5) var(--space-4) 0; }
.alignright { float: right; margin: 0 0 var(--space-4) var(--space-5); }
.aligncenter { margin-inline: auto; }
.wp-caption-text, figcaption { font-size: var(--font-size-small); color: var(--color-mid-grey); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nav-links { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-7); }
.nav-links .page-numbers, .nav-links a { min-width: var(--size-touch); min-height: var(--size-touch); padding: 0 var(--space-3); display: inline-grid; place-items: center; border: var(--border-hairline) solid var(--color-line-on-light); }
.nav-links .current { background: var(--color-black); color: var(--color-off-white); }
.comment-list { list-style: none; padding: 0; }
.comment-body { padding-block: var(--space-4); border-bottom: var(--border-hairline) solid var(--color-line-on-light); }

/* ---------- forms everywhere (comments, WooCommerce, plugins) ---------- */
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], select, textarea {
  width: 100%; min-height: var(--size-control); padding: var(--space-3) var(--space-4); background: transparent; color: inherit;
  border: var(--border-hairline) solid currentColor; border-radius: var(--radius-none);
}
.section--dark .search input { border-color: var(--color-line-on-dark); }
label { font-size: var(--font-size-small); font-weight: var(--font-weight-medium); }
button[type="submit"], input[type="submit"], .button, .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .wc-block-components-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--size-control); padding: 0 var(--space-6);
  border: var(--border-hairline) solid var(--color-black); border-radius: var(--radius-none); background: var(--color-black); color: var(--color-off-white);
  font-family: var(--font-family-body); font-size: var(--font-size-micro); font-weight: var(--font-weight-bold); letter-spacing: var(--font-tracking-label); text-transform: uppercase; line-height: 1.2; cursor: pointer;
  transition: background var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, button[type="submit"]:hover, input[type="submit"]:hover { background: var(--color-steel-grey); color: var(--color-off-white); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled, .woocommerce a.button.disabled { background: transparent; color: var(--color-mid-grey); border-color: var(--color-line-on-light); opacity: 1; padding: 0 var(--space-6); }
.search .btn--light { background: var(--color-off-white); color: var(--color-black); border-color: var(--color-off-white); }

/* ---------- WooCommerce ---------- */
.ssc-woo { padding-top: var(--space-6); }
.woocommerce .woocommerce-breadcrumb { font-size: var(--font-size-micro); letter-spacing: var(--font-tracking-label); text-transform: uppercase; color: var(--color-mid-grey); margin-bottom: var(--space-5); }
.woocommerce .woocommerce-breadcrumb a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.woocommerce-products-header__title, .woocommerce div.product .product_title, .woocommerce-cart .entry-title, .woocommerce h2, .cart_totals h2, .woocommerce-Tabs-panel h2, .related > h2, .upsells > h2, .cross-sells > h2 {
  font-family: var(--font-family-display); font-stretch: 75%; font-weight: var(--ssc-display-weight, 700); text-transform: var(--ssc-display-case, uppercase); line-height: 0.95;
}
.woocommerce-products-header__title { font-size: calc(clamp(52px, 12vw, 152px) * var(--ssc-display-scale, 1)); margin-bottom: var(--space-6); }
.woocommerce div.product .product_title { font-size: clamp(32px, 4.6vw, 60px); }
.woocommerce h2, .related > h2, .upsells > h2 { font-size: clamp(28px, 3.4vw, 44px); margin-bottom: var(--space-5); }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { font-size: var(--font-size-small); color: var(--color-mid-grey); margin-bottom: var(--space-5); }
.woocommerce .woocommerce-ordering select { min-height: var(--size-touch); width: auto; }

.woocommerce ul.products, .woocommerce-page ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6) var(--space-3); margin: 0; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { width: auto; margin: 0; float: none; position: relative; }
.woocommerce ul.products li.product a img { aspect-ratio: 4 / 5; object-fit: cover; margin: 0 0 var(--space-3); background: var(--color-steel-grey); border: var(--border-hairline) solid var(--color-line-on-light); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-family-body); font-size: var(--font-size-body); font-weight: var(--font-weight-bold); line-height: 1.25; padding: 0; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--color-black); font-weight: var(--font-weight-bold); font-variant-numeric: tabular-nums; }
.woocommerce ul.products li.product .price { font-size: var(--font-size-small); margin: var(--space-1) 0 var(--space-3); }
.woocommerce div.product p.price { font-size: var(--font-size-title); }
.woocommerce ul.products li.product .button { min-height: var(--size-touch); padding: 0 var(--space-4); margin-top: 0; background: transparent; color: var(--color-black); }
.woocommerce ul.products li.product .button:hover { background: var(--color-black); color: var(--color-off-white); }
.woocommerce span.onsale { min-height: 0; min-width: 0; line-height: 1.4; padding: var(--space-1) var(--space-2); border-radius: var(--radius-none); background: var(--color-off-white); color: var(--color-black); border: var(--border-hairline) solid var(--color-black); font-size: var(--font-size-micro); letter-spacing: var(--font-tracking-label); text-transform: uppercase; top: var(--space-2); left: var(--space-2); right: auto; margin: 0; }
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--color-black); }
@media (min-width: 720px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-7) var(--space-4); }
  .woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce ul.products.columns-5, .woocommerce ul.products.columns-6 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.woocommerce div.product .woocommerce-product-details__short-description { font-size: var(--font-size-lead); color: var(--color-steel-grey); }
.woocommerce div.product form.cart { margin-block: var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-2); }
.woocommerce div.product form.cart .button { flex: 1 1 200px; float: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity .qty { width: 80px; min-height: var(--size-control); text-align: center; }
.woocommerce div.product form.cart .variations { margin-bottom: var(--space-4); width: 100%; }
.woocommerce div.product form.cart .variations label { font-size: var(--font-size-micro); letter-spacing: var(--font-tracking-label); text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: var(--space-7) 0 0; border-bottom: var(--border-hairline) solid var(--color-black); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; border-radius: 0; background: transparent; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: var(--space-3) var(--space-4); font-size: var(--font-size-micro); letter-spacing: var(--font-tracking-label); text-transform: uppercase; color: var(--color-mid-grey); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--color-black); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-off-white); }
.woocommerce div.product .woocommerce-tabs .panel { padding-block: var(--space-5); }
.woocommerce .product_meta { font-size: var(--font-size-small); color: var(--color-mid-grey); display: grid; gap: var(--space-1); }
.woocommerce div.product div.images img { border: var(--border-hairline) solid var(--color-line-on-light); }

.woocommerce table.shop_table { border: 0; border-radius: 0; border-top: var(--border-hairline) solid var(--color-black); border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-top: 0; border-bottom: var(--border-hairline) solid var(--color-line-on-light); padding: var(--space-4) var(--space-3); }
.woocommerce table.shop_table th { font-size: var(--font-size-micro); letter-spacing: var(--font-tracking-label); text-transform: uppercase; color: var(--color-mid-grey); }
.woocommerce a.remove { color: var(--color-black) !important; border-radius: 0; }
.woocommerce a.remove:hover { background: var(--color-black); color: var(--color-off-white) !important; }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews, p.no-comments { background: transparent; color: inherit; border: var(--border-hairline) solid var(--color-black); border-top-width: var(--border-hairline); border-radius: 0; }
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { color: var(--color-black); }
.woocommerce-error { border-width: 2px; }
.woocommerce form .form-row label { font-size: var(--font-size-micro); letter-spacing: var(--font-tracking-label); text-transform: uppercase; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { border: var(--border-hairline) solid var(--color-line-on-light); border-radius: 0; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border-top: var(--border-hairline) solid var(--color-black); }
.woocommerce-MyAccount-navigation li a { display: flex; align-items: center; min-height: var(--size-control); border-bottom: var(--border-hairline) solid var(--color-line-on-light); text-decoration: none !important; }
.woocommerce-MyAccount-navigation li.is-active a { font-weight: var(--font-weight-bold); }
.select2-container--default .select2-selection--single { height: var(--size-control); border-radius: 0; border-color: var(--color-black); background: transparent; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: var(--size-control); padding-left: var(--space-4); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: var(--size-control); }

/* ---------- saved products (SSC Companion) ---------- */
.ssc-save { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--size-touch); font-size: var(--font-size-micro); font-weight: var(--font-weight-bold); letter-spacing: var(--font-tracking-label); text-transform: uppercase; }
.ssc-save[aria-pressed="true"] svg { fill: currentColor; }
li.product .ssc-save { position: absolute; top: 0; right: 0; width: var(--size-touch); justify-content: center; color: var(--color-off-white); mix-blend-mode: difference; }
li.product .ssc-save span { display: none; }

/* ---------- Elementor ---------- */
/* SSC sections bring their own width and padding; let them run edge to edge inside Elementor. */
.elementor-widget[class*="elementor-widget-ssc-"] > .elementor-widget-container { margin: 0; padding: 0; }
.elementor-page main > .elementor { width: 100%; }
.elementor-editor-active .js .reveal, .elementor-editor-active .reveal { opacity: 1; transform: none; }
/* Elementor's own widgets inherit SSC type by default; anything set in Elementor still wins. */
.elementor-widget-heading .elementor-heading-title { font-family: var(--font-family-display); font-stretch: 75%; font-weight: var(--ssc-display-weight, 700); text-transform: var(--ssc-display-case, uppercase); line-height: 0.95; }
.elementor-button { border-radius: var(--radius-none); }

/* ---------- Quote Studio (SSC Companion) ---------- */
/* Same tool, SSC look: square corners, hairlines, theme colours and type. The print preview itself is untouched. */
.ssq { --ssq-accent: var(--color-black); --ssq-radius: var(--radius-none); gap: var(--space-6); margin: 0; }
.ssq-stage { background: var(--color-steel-grey); border: var(--border-hairline) solid var(--color-line-on-light); }
.ssq-thumb { border-width: var(--border-hairline); border-color: var(--color-line-on-light); border-radius: var(--radius-none); background: var(--color-steel-grey); width: 72px; height: 72px; }
.ssq-thumb[aria-pressed="true"] { border-color: var(--color-black); outline: 1px solid var(--color-black); }
.ssq-intro { font-size: var(--font-size-lead); color: var(--color-steel-grey); }
.ssq-name { font-family: var(--font-family-display); font-stretch: 75%; font-weight: var(--ssc-display-weight, 700); text-transform: var(--ssc-display-case, uppercase); font-size: clamp(32px, 4.6vw, 60px); line-height: 0.95; }
.ssq-price { font-weight: var(--font-weight-bold); font-variant-numeric: tabular-nums; }
.ssq-label { font-size: var(--font-size-micro); font-weight: var(--font-weight-medium); letter-spacing: var(--font-tracking-label); text-transform: uppercase; margin: var(--space-5) 0 var(--space-2); }
.ssq-input, .ssq-select { min-height: var(--size-control); padding: var(--space-3) var(--space-4); border: var(--border-hairline) solid var(--color-black); border-radius: var(--radius-none); background: transparent; color: inherit; }
.ssq-counter { color: var(--color-mid-grey); font-variant-numeric: tabular-nums; }
.ssq-button { min-height: var(--size-control); margin-top: var(--space-5); padding: 0 var(--space-6); border: var(--border-hairline) solid var(--color-black); border-radius: var(--radius-none); background: var(--color-black); color: var(--color-off-white); font-size: var(--font-size-micro); font-weight: var(--font-weight-bold); letter-spacing: var(--font-tracking-label); text-transform: uppercase; }
.ssq-button:hover:not(:disabled) { background: var(--color-steel-grey); }
.ssq-message { padding: var(--space-3) var(--space-4); border: var(--border-hairline) solid currentColor; font-size: var(--font-size-small); }
.ssq-message.ssq-error { border-width: 2px; }
.ssq-rules { margin-top: var(--space-6); padding: 0; background: transparent; border-radius: 0; border-top: var(--border-hairline) solid var(--color-black); border-bottom: var(--border-hairline) solid var(--color-line-on-light); }
.ssq-rules summary { min-height: var(--size-control); display: flex; align-items: center; font-weight: var(--font-weight-bold); }
.ssq-rules ul { margin: 0 0 var(--space-4); padding-left: var(--space-5); list-style: square; }
.ssq-small { color: var(--color-mid-grey); padding-bottom: var(--space-4); }