/*
Theme Name: WIZSP
Theme URI: https://wizsp.com
Author: WIZSP
Author URI: https://wizsp.com
Description: WIZSP brand theme. Block theme (FSE) with full styling for WordPress core blocks, classic markup, comments, widgets, forms (Contact Form 7, WPForms, Gravity Forms, Fluent Forms) and WooCommerce. Built on the WIZSP UI framework (assets/css/wizsp.css). Navy #001799 · Signal Blue #2758CC · Outfit.
Version: 1.4.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary
Text Domain: wizsp
Tags: block-theme, full-site-editing, custom-colors, wide-blocks, editor-style
*/

/* ---------------------------------------------------------------------------
   HOW THIS FILE WORKS
   1. assets/css/wizsp.css  -> tokens + all .wz-* components (enqueued first)
   2. theme.json            -> palette, fonts, sizes, spacing for the editor
   3. style.css (this file) -> maps WordPress markup onto the WIZSP system
   Use as child theme? Add "Template: parent-folder" to the header above.
   Avada / Elementor / other builders: paste section 0 + wizsp.css into
   Global Options -> Custom CSS and use the .wz-* classes in CSS Class fields.
--------------------------------------------------------------------------- */

/* ===================================================================== 0 TOKEN BRIDGE
   theme.json presets <-> --wz-* tokens, so editor colour picks and framework agree */
:root {
  --wp--style--block-gap: var(--wz-space-5);
  --wz-navy: var(--wp--preset--color--navy, #001799);
  --wz-blue: var(--wp--preset--color--signal-blue, #2758CC);
}
body { font-family: var(--wz-font); color: var(--wz-text); background: var(--wz-bg); }

/* ===================================================================== 1 WORDPRESS CORE CLASSES */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; border: 0; word-wrap: normal !important; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; width: auto; height: auto; left: 16px; top: 16px; z-index: 100000; padding: 12px 16px; background: var(--wz-navy); color: var(--wz-white); font-size: var(--wz-text-small); text-decoration: none; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 100000; padding: 12px 16px; background: var(--wz-navy); color: var(--wz-white); }
.skip-link:focus { top: 16px; }

.alignleft { float: left; margin: .3em var(--wz-space-5) var(--wz-space-4) 0; }
.alignright { float: right; margin: .3em 0 var(--wz-space-4) var(--wz-space-5); }
.aligncenter { display: block; margin-inline: auto; text-align: center; }
.alignwide { max-width: var(--wp--style--global--wide-size, 1200px); margin-inline: auto; }
.alignfull { max-width: none; width: 100%; }
.wp-caption { max-width: 100%; margin-bottom: var(--wz-space-5); }
.wp-caption img { display: block; }
.wp-caption-text, .wp-element-caption, .gallery-caption { margin-top: var(--wz-space-2); font-size: var(--wz-text-small); color: var(--wz-text-subtle); text-align: left; }
.sticky .entry-title::before { content: "Featured"; display: inline-block; margin-right: 10px; padding: 4px 8px; font-size: 11px; letter-spacing: var(--wz-tracking-label); text-transform: uppercase; vertical-align: middle; background: var(--wz-navy); color: var(--wz-white); }
.bypostauthor > .comment-body .comment-author .fn::after { content: "Author"; margin-left: 8px; padding: 2px 6px; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; background: var(--wz-blue-100); color: var(--wz-navy); }
.wp-smiley, .emoji { display: inline !important; width: 1em !important; height: 1em !important; margin: 0 .07em !important; vertical-align: -.1em !important; }
.has-drop-cap:not(:focus)::first-letter { float: left; font-size: 4.5em; line-height: .85; font-weight: 600; margin: .05em .1em 0 0; color: var(--wz-navy); }

/* Classic gallery */
.gallery { display: grid; gap: var(--wz-space-2); grid-template-columns: repeat(var(--cols, 3), 1fr); margin-bottom: var(--wz-space-5); }
.gallery-columns-2 { --cols: 2; } .gallery-columns-4 { --cols: 4; } .gallery-columns-5 { --cols: 5; } .gallery-columns-6 { --cols: 6; }
.gallery-item { margin: 0; } .gallery-item img { width: 100%; aspect-ratio: 1; object-fit: cover; }

/* ===================================================================== 2 BLOCK EDITOR COLOUR & SIZE CLASSES (fallbacks) */
.has-navy-color { color: var(--wz-navy) !important; } .has-navy-background-color { background-color: var(--wz-navy) !important; }
.has-signal-blue-color { color: var(--wz-blue) !important; } .has-signal-blue-background-color { background-color: var(--wz-blue) !important; }
.has-white-color { color: #fff !important; } .has-white-background-color { background-color: #fff !important; }
.has-ink-color { color: var(--wz-ink) !important; }
.has-navy-background-color, .has-signal-blue-background-color, .has-navy-950-background-color { color: var(--wz-white); }
.has-navy-background-color :is(h1,h2,h3,h4,h5,h6), .has-navy-950-background-color :is(h1,h2,h3,h4,h5,h6) { color: var(--wz-white); }
.has-navy-background-color a:not(.wp-block-button__link), .has-navy-950-background-color a:not(.wp-block-button__link) { color: var(--wz-white); }
.has-navy-background-color a:not(.wp-block-button__link):hover { color: var(--wz-blue-300); }
.has-navy-background-color .wz-label, .has-navy-background-color .is-style-wz-label { color: var(--wz-blue-300); }
.has-blue-50-background-color, .has-blue-100-background-color { color: var(--wz-ink); }

/* ===================================================================== 3 CORE BLOCKS */
/* Layout */
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group:has(> main) { flex: 1; }
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { margin-inline: auto !important; }
.wp-block-group.has-background { padding: var(--wz-space-7) var(--wz-gutter); }
.wp-block-group.is-style-wz-section { padding-block: var(--wz-section-y); }
.wp-block-group.is-style-wz-navy { background: var(--wz-navy); color: var(--wz-white); padding: var(--wz-space-7) var(--wz-gutter); }
.wp-block-group.is-style-wz-navy :is(h1,h2,h3,h4,h5,h6) { color: var(--wz-white); }
.wp-block-group.is-style-wz-navy p { color: var(--wz-blue-100); }
.wp-block-group.is-style-wz-navy a:not(.wp-block-button__link) { color: var(--wz-white); }
.wp-block-group.is-style-wz-box { border: var(--wz-border); padding: var(--wz-space-6); }
.wp-block-group.is-style-wz-box-subtle { background: var(--wz-bg-subtle); padding: var(--wz-space-6); }
.wp-block-group.is-style-wz-top-rule { border-top: var(--wz-border-accent); padding-top: var(--wz-space-5); }
.wp-block-group.is-style-wz-cta { background: var(--wz-navy); color: var(--wz-white); padding: clamp(32px, 5vw, 64px); }
.wp-block-group.is-style-wz-cta :is(h1,h2,h3,h4) { color: var(--wz-white); margin-top: 0; }
.wp-block-group.is-style-wz-cta p { color: var(--wz-blue-100); }
.wp-block-group.is-style-wz-cta .wp-block-button__link { background: var(--wz-white); color: var(--wz-navy); border-color: var(--wz-white); }
.wp-block-group.is-style-wz-cta .wp-block-button__link:hover { background: var(--wz-blue-100); border-color: var(--wz-blue-100); }
.wp-block-group.is-style-wz-cta .is-style-outline .wp-block-button__link { background: transparent; color: var(--wz-white); border-color: rgba(255,255,255,.7); }

.wp-block-columns { gap: var(--wz-space-6); margin-bottom: 0; }
.wp-block-columns.is-style-wz-divided > .wp-block-column + .wp-block-column { border-left: var(--wz-border); padding-left: var(--wz-space-6); }
@media (max-width: 781px) { .wp-block-columns.is-style-wz-divided > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; border-top: var(--wz-border); padding-top: var(--wz-space-5); } }
.wp-block-column.is-style-wz-feature { border-top: var(--wz-border-accent); padding-top: var(--wz-space-5); }
.wp-block-column.is-style-wz-card { border: var(--wz-border); padding: var(--wz-space-6); background: var(--wz-bg); }

.wp-block-cover { min-height: 480px; padding: var(--wz-space-8) var(--wz-gutter); }
.wp-block-cover .wp-block-cover__inner-container { max-width: var(--wz-container); color: var(--wz-white); }
.wp-block-cover h1, .wp-block-cover h2 { color: var(--wz-white); }
.wp-block-cover.is-style-wz-navy-overlay .wp-block-cover__background { background: linear-gradient(90deg, rgba(0,10,71,.92), rgba(0,10,71,.35)) !important; opacity: 1 !important; }

.wp-block-media-text { gap: var(--wz-space-7); }
.wp-block-media-text .wp-block-media-text__content { padding: 0 var(--wz-space-5); }
.wp-block-spacer { margin: 0 !important; }

/* Text */
.wp-block-heading { text-wrap: balance; }
.is-style-wz-label, p.is-style-wz-label { font-size: var(--wz-text-label) !important; font-weight: 500; letter-spacing: var(--wz-tracking-label); text-transform: uppercase; color: var(--wz-accent); margin-bottom: var(--wz-space-3); }
.is-style-wz-lead, p.is-style-wz-lead { font-size: var(--wz-text-lead); line-height: 1.55; color: var(--wz-text-muted); }
.is-style-wz-display { font-size: var(--wz-text-display) !important; line-height: 1.02 !important; letter-spacing: -0.025em !important; }

.wp-block-quote { margin: var(--wz-space-6) 0; padding-left: var(--wz-space-5); border-left: 2px solid var(--wz-navy); font-size: var(--wz-text-lead); color: var(--wz-heading); }
.wp-block-quote p { margin-bottom: var(--wz-space-3); }
.wp-block-quote cite, .wp-block-quote .wp-block-quote__citation { font-size: var(--wz-text-small); font-style: normal; color: var(--wz-text-muted); }
.wp-block-quote.is-style-large, .wp-block-quote.is-large { border: 0; padding: 0; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem); font-weight: 500; line-height: 1.3; letter-spacing: -0.01em; }
.wp-block-quote.is-style-plain { border: 0; padding: 0; }
.wp-block-pullquote { padding: var(--wz-space-7) 0; border-top: var(--wz-border-accent); border-bottom: var(--wz-border); text-align: left; }
.wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; }
.wp-block-pullquote p { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem); font-weight: 500; line-height: 1.3; color: var(--wz-heading); letter-spacing: -0.01em; }
.wp-block-pullquote cite { font-size: var(--wz-text-small); color: var(--wz-text-muted); font-style: normal; }
.wp-block-verse { font-family: var(--wz-font); background: var(--wz-bg-subtle); padding: var(--wz-space-5); }
.wp-block-preformatted, .wp-block-code { background: var(--wz-navy-950); color: #E3E9F9; padding: var(--wz-space-5); font-family: var(--wz-font-mono); font-size: .875rem; line-height: 1.7; border: 0; border-radius: 0; overflow: auto; }
.wp-block-code code { background: none; color: inherit; padding: 0; }

.wp-block-list li::marker { color: var(--wz-accent); }
ul.is-style-wz-check { list-style: none; padding-left: 0; }
ul.is-style-wz-check li { position: relative; padding-left: 28px; }
ul.is-style-wz-check li::before { content: ""; position: absolute; left: 2px; top: .42em; width: 12px; height: 7px; border-left: 1.5px solid var(--wz-accent); border-bottom: 1.5px solid var(--wz-accent); transform: rotate(-45deg); }
ul.is-style-wz-dash { list-style: none; padding-left: 0; }
ul.is-style-wz-dash li { position: relative; padding-left: 22px; }
ul.is-style-wz-dash li::before { content: ""; position: absolute; left: 0; top: .8em; width: 12px; height: 1.5px; background: var(--wz-accent); }
ol.is-style-wz-numbered { list-style: none; padding-left: 0; counter-reset: wz; }
ol.is-style-wz-numbered li { counter-increment: wz; position: relative; padding-left: 40px; }
ol.is-style-wz-numbered li::before { content: counter(wz, decimal-leading-zero); position: absolute; left: 0; top: .15em; font-size: var(--wz-text-label); letter-spacing: .08em; font-weight: 500; color: var(--wz-accent); }

.wp-block-separator { border: 0; border-top: var(--wz-border); margin-block: var(--wz-space-7); opacity: 1; }
.wp-block-separator.is-style-wide { width: 100%; }
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 64px; border-top: 2px solid var(--wz-navy); margin-inline: 0; }
.wp-block-separator.is-style-dots::before { color: var(--wz-accent); letter-spacing: 1em; font-size: 1.25rem; }
.wp-block-separator.has-background:not(.is-style-dots) { height: 1px; border: 0; }

/* Buttons */
.wp-block-buttons { gap: var(--wz-space-3); }
.wp-block-button__link, .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--wz-control-h); padding: 0 22px !important;
  font-family: var(--wz-font); font-size: 1rem; font-weight: 500; line-height: 1; letter-spacing: .005em; text-decoration: none;
  color: var(--wz-white); background-color: var(--wz-navy);
  border: 1px solid var(--wz-navy); border-radius: var(--wz-radius-1);
  transition: background-color var(--wz-dur-2) var(--wz-ease), color var(--wz-dur-2) var(--wz-ease), border-color var(--wz-dur-2) var(--wz-ease);
}
.wp-block-button__link:hover, .wp-element-button:hover { background-color: var(--wz-blue); border-color: var(--wz-blue); color: var(--wz-white); }
.wp-block-button__link:focus-visible, .wp-element-button:focus-visible { outline: none; box-shadow: var(--wz-focus-ring); }
.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline { background: transparent; color: var(--wz-navy); border: 1px solid var(--wz-navy); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wz-blue-50); color: var(--wz-navy); }
.wp-block-button.is-style-wz-accent > .wp-block-button__link { background: var(--wz-blue); border-color: var(--wz-blue); }
.wp-block-button.is-style-wz-accent > .wp-block-button__link:hover { background: var(--wz-navy); border-color: var(--wz-navy); }
.wp-block-button.is-style-wz-white > .wp-block-button__link { background: var(--wz-white); color: var(--wz-navy); border-color: var(--wz-white); }
.wp-block-button.is-style-wz-white > .wp-block-button__link:hover { background: var(--wz-blue-100); border-color: var(--wz-blue-100); }
.wp-block-button.is-style-wz-outline-white > .wp-block-button__link { background: transparent; color: var(--wz-white); border-color: rgba(255,255,255,.7); }
.wp-block-button.is-style-wz-outline-white > .wp-block-button__link:hover { background: rgba(255,255,255,.1); border-color: var(--wz-white); }
.wp-block-button.is-style-wz-link > .wp-block-button__link { background: none; border: 0; padding: 0 !important; min-height: 0; color: var(--wz-accent); }
.wp-block-button.is-style-wz-link > .wp-block-button__link::after { content: "→"; transition: transform var(--wz-dur-2) var(--wz-ease); }
.wp-block-button.is-style-wz-link > .wp-block-button__link:hover { color: var(--wz-navy); }
.wp-block-button.is-style-wz-link > .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-wz-arrow > .wp-block-button__link::after { content: "→"; transition: transform var(--wz-dur-2) var(--wz-ease); }
.wp-block-button.is-style-wz-arrow > .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.has-custom-width .wp-block-button__link { width: 100%; }
.wp-block-button.is-style-squared .wp-block-button__link, .wp-block-button__link.no-border-radius { border-radius: 0; }
.wp-block-button__link.has-small-font-size { min-height: var(--wz-control-h-sm); padding: 0 14px !important; }
.wp-block-button__link.has-large-font-size { min-height: var(--wz-control-h-lg); padding: 0 28px !important; }
.has-navy-background-color .wp-block-button:not([class*="is-style-"]) .wp-block-button__link:not(.has-background) { background: var(--wz-white); color: var(--wz-navy); border-color: var(--wz-white); }
.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wz-white); border-color: rgba(255,255,255,.7); }

/* Media */
.wp-block-image img { height: auto; }
.wp-block-image.is-style-wz-frame img { border: var(--wz-border); padding: var(--wz-space-2); background: var(--wz-bg); }
.wp-block-image.is-style-rounded img { border-radius: 50%; }
.wp-block-image figcaption { font-size: var(--wz-text-small); color: var(--wz-text-subtle); text-align: left; }
.wp-block-gallery.has-nested-images { gap: var(--wz-space-2); }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption { background: linear-gradient(0deg, rgba(0,10,71,.75), transparent); font-size: var(--wz-text-xs); }
.wp-block-video video, .wp-block-embed iframe { width: 100%; }
.wp-block-embed.is-type-video .wp-block-embed__wrapper { background: var(--wz-navy-950); }
.wp-block-audio audio { width: 100%; }
.wp-block-file { display: flex; align-items: center; justify-content: space-between; gap: var(--wz-space-3); padding: var(--wz-space-4) var(--wz-space-5); border: var(--wz-border); }
.wp-block-file a:not(.wp-block-file__button) { font-weight: 500; color: var(--wz-heading); text-decoration: none; }
.wp-block-file .wp-block-file__button { background: var(--wz-navy); color: var(--wz-white); border-radius: var(--wz-radius-1); padding: 10px 16px; font-size: var(--wz-text-small); font-weight: 500; }
.wp-block-file .wp-block-file__button:hover { background: var(--wz-blue); opacity: 1; }

/* Table */
.wp-block-table { overflow-x: auto; margin: var(--wz-space-6) 0; }
.wp-block-table table { width: 100%; font-size: var(--wz-text-small); border-collapse: collapse; }
.wp-block-table th, .wp-block-table td { padding: 12px 16px; border: 0; border-bottom: 1px solid var(--wz-line); text-align: left; }
.wp-block-table thead { border-bottom: 2px solid var(--wz-navy); }
.wp-block-table thead th { font-size: var(--wz-text-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--wz-text-muted); font-weight: 600; }
.wp-block-table tfoot { border-top: 2px solid var(--wz-navy); font-weight: 600; }
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--wz-bg-muted); }
.wp-block-table.is-style-stripes td, .wp-block-table.is-style-stripes th { border-color: transparent; }
.wp-block-table figcaption { font-size: var(--wz-text-xs); color: var(--wz-text-subtle); }

/* Details / accordion */
.wp-block-details { border-bottom: var(--wz-border); padding: 0; }
.wp-block-details:first-of-type, :not(.wp-block-details) + .wp-block-details { border-top: var(--wz-border); }
.wp-block-details summary { display: flex; justify-content: space-between; align-items: center; gap: var(--wz-space-4); padding: var(--wz-space-5) 0; font-size: 1.125rem; font-weight: 500; color: var(--wz-heading); cursor: pointer; list-style: none; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; flex: none; width: 14px; height: 14px; background: linear-gradient(currentColor, currentColor) center / 14px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 14px no-repeat; transition: transform var(--wz-dur-2) var(--wz-ease); }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { color: var(--wz-text-muted); margin-bottom: var(--wz-space-5); }
.wp-block-details + .wp-block-details { margin-top: 0 !important; }

/* Social icons */
.wp-block-social-links { gap: var(--wz-space-2) !important; }
.wp-block-social-links.is-style-wz-square .wp-social-link { border-radius: 0; background: transparent !important; color: var(--wz-navy) !important; border: var(--wz-border); }
.wp-block-social-links.is-style-wz-square .wp-social-link:hover { background: var(--wz-navy) !important; color: var(--wz-white) !important; border-color: var(--wz-navy); transform: none; }
.wp-block-social-links:not(.is-style-logos-only):not(.has-icon-background-color) .wp-social-link { background: var(--wz-navy); color: var(--wz-white); }

/* Navigation block */
.wp-block-navigation { font-size: 15px; font-weight: 500; gap: var(--wz-space-5); }
.wp-block-navigation a { text-decoration: none; }
.wp-block-navigation .wp-block-navigation-item__content { color: var(--wz-text); padding: 8px 0; position: relative; }
.wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wz-accent); }
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content, .wp-block-navigation [aria-current="page"] { color: var(--wz-heading); }
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after, .wp-block-navigation [aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--wz-navy); }
.wp-block-navigation .wp-block-navigation__submenu-container { min-width: 240px !important; padding: 8px !important; border: var(--wz-border) !important; background: var(--wz-bg) !important; box-shadow: var(--wz-shadow-float); }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 12px; }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wz-bg-subtle); color: var(--wz-heading); }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wz-bg) !important; padding: var(--wz-space-6) var(--wz-gutter) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 0 !important; align-items: stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { border-bottom: 1px solid var(--wz-line-soft); width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 16px 0 !important; font-size: 1.25rem; }
.wp-block-navigation-item.is-style-wz-cta > a, .wp-block-navigation .wz-nav-cta > a { background: var(--wz-navy); color: var(--wz-white) !important; padding: 10px 16px !important; border-radius: var(--wz-radius-1); }
.wp-block-navigation-item.is-style-wz-cta > a:hover, .wp-block-navigation .wz-nav-cta > a:hover { background: var(--wz-blue); }
.wp-block-navigation .wz-nav-cta > a::after { display: none !important; }

/* Site header / footer template parts */
.wz-site-header { position: sticky; top: 0; z-index: var(--wz-z-header); background: color-mix(in srgb, var(--wz-bg) 94%, transparent); backdrop-filter: blur(10px); border-bottom: var(--wz-border); }
.admin-bar .wz-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .wz-site-header { top: 46px; } }
.wp-block-site-logo img { height: 32px; width: auto; }
.wp-block-site-title a { color: var(--wz-heading); text-decoration: none; font-weight: 600; }
.wp-block-site-tagline { font-size: var(--wz-text-small); color: var(--wz-text-muted); }
.wz-site-footer { background: var(--wz-navy); color: var(--wz-blue-100); font-size: var(--wz-text-small); }
.wz-site-footer a { color: var(--wz-white); text-decoration: none; }
.wz-site-footer a:hover { color: var(--wz-blue-300); text-decoration: underline; }
.wz-site-footer :is(h2,h3,h4,h5,h6) { color: var(--wz-blue-300); font-size: var(--wz-text-xs); letter-spacing: var(--wz-tracking-label); text-transform: uppercase; font-weight: 500; }
.wz-site-footer .wp-block-navigation .wp-block-navigation-item__content { color: var(--wz-white); }
.wz-site-footer .wp-block-separator { border-top-color: rgba(255,255,255,.16); width: 100%; }

/* Query loop, posts, meta */
.wp-block-post-template { gap: var(--wz-space-6); }
.wp-block-post-template.is-flex-container > li { margin: 0; }
.wp-block-post-title { margin-bottom: var(--wz-space-3); }
.wp-block-post-title a { color: var(--wz-heading); text-decoration: none; }
.wp-block-post-title a:hover { color: var(--wz-accent); }
.wp-block-post-featured-image { margin-bottom: var(--wz-space-4); overflow: hidden; background: var(--wz-bg-subtle); }
.wp-block-post-featured-image img { transition: transform var(--wz-dur-3) var(--wz-ease); }
.wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.wp-block-post-date, .wp-block-post-author, .wp-block-post-terms, .wp-block-post-author-name, .wp-block-post-time-to-read { font-size: var(--wz-text-small); color: var(--wz-text-subtle); }
.wp-block-post-terms a, .taxonomy-category a { color: var(--wz-accent); text-decoration: none; font-size: var(--wz-text-label); letter-spacing: var(--wz-tracking-label); text-transform: uppercase; font-weight: 500; }
.wp-block-post-terms.is-style-wz-tags a { display: inline-flex; padding: 5px 12px; border: var(--wz-border); border-radius: 999px; font-size: var(--wz-text-small); letter-spacing: 0; text-transform: none; color: var(--wz-text); }
.wp-block-post-terms.is-style-wz-tags a:hover { border-color: var(--wz-navy); color: var(--wz-navy); }
.wp-block-post-terms__separator { color: var(--wz-slate-300); }
.wp-block-post-excerpt__excerpt { color: var(--wz-text-muted); }
.wp-block-post-excerpt__more-link { font-weight: 500; text-decoration: none; }
.wp-block-post-excerpt__more-link::after { content: " →"; }
.wp-block-read-more { font-weight: 500; text-decoration: none; }
.wp-block-post.is-style-wz-card, .wp-block-post-template.is-style-wz-cards > li { border: var(--wz-border); background: var(--wz-bg); display: flex; flex-direction: column; }
.wp-block-post-template.is-style-wz-cards > li > * { padding-inline: var(--wz-space-5); }
.wp-block-post-template.is-style-wz-cards > li > .wp-block-post-featured-image { padding: 0; margin-bottom: var(--wz-space-4); }
.wp-block-post-template.is-style-wz-cards > li > :last-child { padding-bottom: var(--wz-space-5); }
.wp-block-post-author { gap: var(--wz-space-3); align-items: center; }
.wp-block-post-author__avatar img { border-radius: 50%; }
.wp-block-post-author__name { color: var(--wz-heading); font-weight: 600; }
.wp-block-post-navigation-link a { color: var(--wz-heading); font-weight: 500; text-decoration: none; }
.wp-block-post-navigation-link a:hover { color: var(--wz-accent); }

/* Query pagination + classic pagination */
.wp-block-query-pagination { gap: 4px; margin-top: var(--wz-space-7); font-size: var(--wz-text-small); font-weight: 500; }
.wp-block-query-pagination-numbers { display: flex; gap: 4px; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next,
.nav-links .page-numbers, .page-links > a, .page-links > span:not(.page-links-title) {
  display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 12px;
  border: var(--wz-border); border-radius: var(--wz-radius-1); color: var(--wz-text); text-decoration: none; font-size: var(--wz-text-small); font-weight: 500;
}
.wp-block-query-pagination a:hover, .nav-links a.page-numbers:hover, .page-links > a:hover { border-color: var(--wz-navy); color: var(--wz-navy); }
.page-numbers.current, .page-links > span.current, .wp-block-query-pagination .current { background: var(--wz-navy); border-color: var(--wz-navy); color: var(--wz-white); }
.page-numbers.dots { border: 0; min-width: 24px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wz-space-4); border-top: var(--wz-border); padding-top: var(--wz-space-5); }
.post-navigation a { color: var(--wz-heading); text-decoration: none; font-weight: 500; }
.post-navigation .nav-next { text-align: right; }
.post-navigation .meta-nav { display: block; font-size: var(--wz-text-xs); letter-spacing: var(--wz-tracking-label); text-transform: uppercase; color: var(--wz-text-subtle); }

/* Search & forms blocks */
.wp-block-search__label { font-size: var(--wz-text-small); font-weight: 500; margin-bottom: 6px; display: block; }
.wp-block-search__inside-wrapper { gap: 0; }
.wp-block-search__input, .search-field {
  min-height: var(--wz-control-h); padding: 10px 14px; font-family: var(--wz-font); font-size: 1rem;
  border: var(--wz-border); border-radius: var(--wz-radius-1); background: var(--wz-bg); color: var(--wz-text);
}
.wp-block-search__input:focus, .search-field:focus { outline: none; border-color: var(--wz-blue); box-shadow: 0 0 0 3px var(--wz-blue-100); position: relative; z-index: 1; }
.wp-block-search__button, .search-submit { min-height: var(--wz-control-h); margin-left: -1px; padding: 0 18px; background: var(--wz-navy); color: var(--wz-white); border: 1px solid var(--wz-navy); border-radius: 0 var(--wz-radius-1) var(--wz-radius-1) 0; font-weight: 500; }
.wp-block-search__button:hover, .search-submit:hover { background: var(--wz-blue); border-color: var(--wz-blue); }
.wp-block-search__button-inside .wp-block-search__inside-wrapper { border: var(--wz-border); padding: 3px; border-radius: var(--wz-radius-1); }
.wp-block-search__button-inside .wp-block-search__input { border: 0; min-height: 38px; }
.wp-block-search__button-inside .wp-block-search__button { min-height: 38px; border-radius: var(--wz-radius-1); }

/* Classic widgets & block widgets */
.widget, .wp-block-widget-area > * { margin-bottom: var(--wz-space-7); font-size: var(--wz-text-small); }
.widget-title, .widget .wp-block-heading, .widget .wp-block-group > .wp-block-heading:first-child { font-size: var(--wz-text-xs) !important; letter-spacing: var(--wz-tracking-label); text-transform: uppercase; color: var(--wz-accent); font-weight: 500; margin-bottom: var(--wz-space-4); }
.widget ul, .wp-block-latest-posts, .wp-block-categories, .wp-block-archives, .wp-block-page-list, .wp-block-latest-comments { list-style: none; padding: 0; margin: 0; }
.widget li, .wp-block-latest-posts li, .wp-block-categories li, .wp-block-archives li, .wp-block-latest-comments li { padding: 10px 0; margin: 0; border-bottom: 1px solid var(--wz-line-soft); }
.widget li a, .wp-block-latest-posts a, .wp-block-categories a, .wp-block-archives a { color: var(--wz-text); text-decoration: none; }
.widget li a:hover, .wp-block-latest-posts a:hover, .wp-block-categories a:hover, .wp-block-archives a:hover { color: var(--wz-accent); }
.wp-block-latest-posts__post-date, .wp-block-latest-comments__comment-date { display: block; font-size: var(--wz-text-xs); color: var(--wz-text-subtle); margin-top: 2px; }
.wp-block-latest-posts.is-grid { gap: var(--wz-space-5); }
.wp-block-latest-posts.is-grid li { border: 0; padding: 0; }
.wp-block-latest-posts__featured-image img { aspect-ratio: 16/10; object-fit: cover; }
.wp-block-tag-cloud, .tagcloud { display: flex; flex-wrap: wrap; gap: 8px; }
.wp-block-tag-cloud a, .tagcloud a { display: inline-flex; padding: 5px 12px; font-size: var(--wz-text-small) !important; color: var(--wz-text); border: var(--wz-border); border-radius: 999px; text-decoration: none; }
.wp-block-tag-cloud a:hover, .tagcloud a:hover { border-color: var(--wz-navy); color: var(--wz-navy); }
.wp-block-rss__item { padding: 12px 0; border-bottom: 1px solid var(--wz-line-soft); }
.wp-block-calendar table { width: 100%; font-size: var(--wz-text-small); }
.wp-block-calendar th { background: var(--wz-bg-muted); color: var(--wz-text-muted); font-weight: 600; }
.wp-block-calendar td, .wp-block-calendar th { padding: 6px; border: var(--wz-border); text-align: center; }
.wp-block-calendar #today { background: var(--wz-navy); color: var(--wz-white); }
.wp-block-calendar a { color: var(--wz-accent); }

/* Classic nav menus (wp_nav_menu) */
.menu, .wz-menu-classic { display: flex; flex-wrap: wrap; gap: var(--wz-space-1); list-style: none; margin: 0; padding: 0; }
.menu > .menu-item { position: relative; margin: 0; }
.menu > .menu-item > a { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; color: var(--wz-text); font-size: 15px; font-weight: 500; text-decoration: none; position: relative; }
.menu > .menu-item > a:hover { color: var(--wz-accent); }
.menu .current-menu-item > a, .menu .current_page_item > a, .menu .current-menu-ancestor > a { color: var(--wz-heading); }
.menu > .current-menu-item > a::after, .menu > .current_page_item > a::after, .menu > .current-menu-ancestor > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 2px; background: var(--wz-navy); }
.menu .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); position: static; background: none; }
.menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 240px; margin: 0; padding: 8px; list-style: none; background: var(--wz-bg); border: var(--wz-border); box-shadow: var(--wz-shadow-float); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity var(--wz-dur-2) var(--wz-ease), transform var(--wz-dur-2) var(--wz-ease), visibility 0s linear var(--wz-dur-2); z-index: var(--wz-z-dropdown); }
.menu .menu-item:hover > .sub-menu, .menu .menu-item:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.menu .sub-menu .menu-item { margin: 0; position: relative; }
.menu .sub-menu a { display: block; padding: 10px 12px; color: var(--wz-text); text-decoration: none; font-size: 15px; }
.menu .sub-menu a:hover { background: var(--wz-bg-subtle); color: var(--wz-heading); }
.menu .sub-menu .sub-menu { top: -9px; left: 100%; }
.menu .menu-item.wz-cta > a { background: var(--wz-navy); color: var(--wz-white); padding: 10px 16px; border-radius: var(--wz-radius-1); margin-left: var(--wz-space-2); }
.menu .menu-item.wz-cta > a:hover { background: var(--wz-blue); }
.menu .menu-item.wz-cta > a::after { display: none; }

/* ===================================================================== 4 ENTRY / ARTICLE */
.entry-content, .wp-block-post-content { font-size: var(--wz-text-body); line-height: var(--wz-leading-body); }
.entry-content > * + *, .wp-block-post-content > * + * { margin-block-start: 1.25em; }
.entry-content h2, .wp-block-post-content h2 { margin-top: 2em; }
.entry-content h3, .wp-block-post-content h3 { margin-top: 1.6em; }
.entry-content a:not([class]), .wp-block-post-content a:not([class]) { text-decoration: underline; }
.entry-header { margin-bottom: var(--wz-space-6); }
.entry-meta, .entry-footer { display: flex; flex-wrap: wrap; gap: var(--wz-space-3); font-size: var(--wz-text-small); color: var(--wz-text-subtle); }
.entry-meta a, .entry-footer a { color: var(--wz-text-muted); text-decoration: none; }
.entry-meta a:hover, .entry-footer a:hover { color: var(--wz-accent); }
.post-thumbnail img { width: 100%; height: auto; }
.page-header { padding-block: var(--wz-space-7) var(--wz-space-6); border-bottom: var(--wz-border); margin-bottom: var(--wz-space-7); }
.page-title, .archive-title { margin: 0; }
.archive-description { color: var(--wz-text-muted); margin-top: var(--wz-space-3); max-width: var(--wz-measure); }
.no-results, .error404 .page-content { text-align: center; padding-block: var(--wz-space-8); }
.error404 .page-title { font-size: clamp(5rem, 3rem + 10vw, 10rem); font-weight: 300; letter-spacing: -0.04em; line-height: 1; }

/* Password-protected */
.post-password-form { padding: var(--wz-space-6); background: var(--wz-bg-subtle); }
.post-password-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 500; font-size: var(--wz-text-small); }

/* ===================================================================== 5 COMMENTS */
.comments-area, .wp-block-comments { margin-top: var(--wz-space-8); padding-top: var(--wz-space-6); border-top: var(--wz-border-accent); }
.comments-title, .wp-block-comments-title { font-size: var(--wz-text-h3); margin-bottom: var(--wz-space-5); }
.comment-list, .wp-block-comment-template { list-style: none; padding: 0; margin: 0; }
.comment-list .children, .wp-block-comment-template ol { list-style: none; padding-left: var(--wz-space-6); margin: 0; border-left: var(--wz-border); }
.comment-body, .wp-block-comment-template > li > .wp-block-group, .wp-block-comment-template li { padding: var(--wz-space-5) 0; border-bottom: 1px solid var(--wz-line-soft); margin: 0; }
.comment-author, .wp-block-comment-author-name { font-weight: 600; color: var(--wz-heading); font-size: 1rem; }
.comment-author .avatar, .wp-block-avatar img { border-radius: 50%; margin-right: var(--wz-space-3); vertical-align: middle; }
.comment-author .says { display: none; }
.comment-metadata, .wp-block-comment-date, .wp-block-comment-edit-link { font-size: var(--wz-text-xs); color: var(--wz-text-subtle); }
.comment-metadata a, .wp-block-comment-date a { color: inherit; text-decoration: none; }
.comment-content, .wp-block-comment-content { margin-top: var(--wz-space-3); color: var(--wz-text); }
.comment-reply-link, .wp-block-comment-reply-link a { font-size: var(--wz-text-small); font-weight: 500; text-decoration: none; }
.comment-awaiting-moderation { display: inline-block; font-size: var(--wz-text-xs); padding: 4px 8px; background: var(--wz-warning-bg); color: var(--wz-warning); }
.comment-respond, .wp-block-post-comments-form { margin-top: var(--wz-space-7); padding: var(--wz-space-6); background: var(--wz-bg-subtle); }
.comment-reply-title { font-size: var(--wz-text-h3); margin-top: 0; }
.comment-reply-title small a { font-size: var(--wz-text-small); margin-left: var(--wz-space-3); }
.comment-notes, .logged-in-as { font-size: var(--wz-text-small); color: var(--wz-text-muted); }
.comment-form-cookies-consent { display: flex; gap: 10px; align-items: flex-start; font-size: var(--wz-text-small); }

/* ===================================================================== 6 GENERIC FORM ELEMENTS (classic + plugin forms) */
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"],
input[type="date"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="time"], select, textarea {
  width: 100%; min-height: var(--wz-control-h); padding: 10px 14px;
  font-family: var(--wz-font); font-size: 1rem; line-height: 1.4; color: var(--wz-text);
  background: var(--wz-bg); border: var(--wz-border); border-radius: var(--wz-radius-1);
  transition: border-color var(--wz-dur-1) var(--wz-ease), box-shadow var(--wz-dur-1) var(--wz-ease);
}
textarea { min-height: 140px; resize: vertical; }
select { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23001799' stroke-width='1.5'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
select[multiple] { background-image: none; padding-right: 14px; }
input:hover, select:hover, textarea:hover { border-color: var(--wz-border-strong); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--wz-blue); box-shadow: 0 0 0 3px var(--wz-blue-100); }
input::placeholder, textarea::placeholder { color: var(--wz-slate-400); }
input:disabled, select:disabled, textarea:disabled { background: var(--wz-bg-muted); cursor: not-allowed; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--wz-navy); width: 18px; height: 18px; }
input[type="range"] { accent-color: var(--wz-navy); }
label { font-size: var(--wz-text-small); font-weight: 500; color: var(--wz-text); }
fieldset { border: var(--wz-border); padding: var(--wz-space-5); margin: 0 0 var(--wz-space-5); }
legend { padding: 0 8px; font-weight: 600; color: var(--wz-heading); }
button:not([class*="wp-block"]):not([class*="components-"]):not(.wz-btn):not([class*="wz-"]),
input[type="submit"], input[type="button"], input[type="reset"] {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--wz-control-h); padding: 0 22px;
  font-family: var(--wz-font); font-size: 1rem; font-weight: 500; line-height: 1;
  color: var(--wz-white); background: var(--wz-navy); border: 1px solid var(--wz-navy); border-radius: var(--wz-radius-1);
  cursor: pointer; transition: background-color var(--wz-dur-2) var(--wz-ease), border-color var(--wz-dur-2) var(--wz-ease);
  width: auto;
}
button:not([class*="wp-block"]):not([class*="components-"]):not(.wz-btn):not([class*="wz-"]):hover,
input[type="submit"]:hover, input[type="button"]:hover { background: var(--wz-blue); border-color: var(--wz-blue); }
input[type="reset"] { background: transparent; color: var(--wz-navy); }

/* Contact Form 7 */
.wpcf7 form p { margin-bottom: var(--wz-space-5); }
.wpcf7 form label { display: flex; flex-direction: column; gap: 6px; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7-list-item { margin: 0 var(--wz-space-5) var(--wz-space-2) 0; }
.wpcf7-list-item label { flex-direction: row; align-items: center; gap: 10px; font-weight: 400; font-size: 1rem; }
.wpcf7-not-valid { border-color: var(--wz-danger) !important; }
.wpcf7-not-valid-tip { font-size: var(--wz-text-small); color: var(--wz-danger); margin-top: 4px; }
.wpcf7 form .wpcf7-response-output { margin: var(--wz-space-5) 0 0; padding: var(--wz-space-4) var(--wz-space-5); border: 1px solid var(--wz-info-line); background: var(--wz-info-bg); font-size: var(--wz-text-small); }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--wz-success-line); background: var(--wz-success-bg); color: var(--wz-success); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-color: var(--wz-danger-line); background: var(--wz-danger-bg); color: var(--wz-danger); }
.wpcf7-spinner { background-color: var(--wz-navy); }

/* WPForms */
.wpforms-container .wpforms-field { padding: 0 0 var(--wz-space-5) !important; }
.wpforms-container .wpforms-field-label { font-size: var(--wz-text-small) !important; font-weight: 500 !important; color: var(--wz-text) !important; margin-bottom: 6px !important; }
.wpforms-container .wpforms-required-label { color: var(--wz-danger) !important; }
.wpforms-container input.wpforms-field-medium, .wpforms-container select.wpforms-field-medium, .wpforms-container textarea.wpforms-field-medium { max-width: 100% !important; }
.wpforms-container .wpforms-field-description { font-size: var(--wz-text-small) !important; color: var(--wz-text-muted) !important; }
.wpforms-container .wpforms-submit { background: var(--wz-navy) !important; color: var(--wz-white) !important; border: 1px solid var(--wz-navy) !important; border-radius: var(--wz-radius-1) !important; min-height: var(--wz-control-h) !important; padding: 0 22px !important; font-family: var(--wz-font) !important; font-weight: 500 !important; }
.wpforms-container .wpforms-submit:hover { background: var(--wz-blue) !important; border-color: var(--wz-blue) !important; }
.wpforms-container label.wpforms-error, .wpforms-container em.wpforms-error { color: var(--wz-danger) !important; font-size: var(--wz-text-small) !important; }
.wpforms-confirmation-container-full { background: var(--wz-success-bg) !important; border: 1px solid var(--wz-success-line) !important; color: var(--wz-text) !important; }

/* Gravity Forms */
.gform_wrapper.gravity-theme .gfield_label { font-size: var(--wz-text-small); font-weight: 500; color: var(--wz-text); }
.gform_wrapper.gravity-theme .gfield_required { color: var(--wz-danger); }
.gform_wrapper.gravity-theme .gfield_description { font-size: var(--wz-text-small); color: var(--wz-text-muted); }
.gform_wrapper.gravity-theme .gform_footer input[type="submit"], .gform_wrapper .gform_button { background: var(--wz-navy); color: var(--wz-white); border: 1px solid var(--wz-navy); border-radius: var(--wz-radius-1); min-height: var(--wz-control-h); padding: 0 22px; font-weight: 500; }
.gform_wrapper.gravity-theme .gfield_error input, .gform_wrapper.gravity-theme .gfield_error textarea { border-color: var(--wz-danger); }
.gform_wrapper.gravity-theme .validation_message, .gform_wrapper.gravity-theme .gform_submission_error { color: var(--wz-danger); font-size: var(--wz-text-small); }
.gform_wrapper.gravity-theme .gform_validation_errors { border: 1px solid var(--wz-danger-line); background: var(--wz-danger-bg); border-radius: 0; box-shadow: none; }
.gform_confirmation_message { padding: var(--wz-space-5); background: var(--wz-success-bg); border: 1px solid var(--wz-success-line); }

/* Fluent Forms */
.fluentform .ff-el-input--label label { font-size: var(--wz-text-small); font-weight: 500; }
.fluentform .ff-btn-submit { background: var(--wz-navy) !important; border-radius: var(--wz-radius-1) !important; font-weight: 500; min-height: var(--wz-control-h); }
.fluentform .ff-btn-submit:hover { background: var(--wz-blue) !important; opacity: 1 !important; }
.fluentform .ff-el-is-error .ff-el-form-control { border-color: var(--wz-danger); }

/* ===================================================================== 7 WOOCOMMERCE */
.woocommerce, .woocommerce-page { --wc-primary: var(--wz-navy); --wc-primary-text: #fff; --wc-secondary: var(--wz-blue-50); --wc-highlight: var(--wz-blue); --wc-red: var(--wz-danger); --wc-green: var(--wz-success); }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce a.button.alt, .wc-block-components-button:not(.is-link) {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: var(--wz-control-h); padding: 0 22px !important;
  font-family: var(--wz-font) !important; font-size: 1rem !important; font-weight: 500 !important; line-height: 1 !important;
  color: var(--wz-white) !important; background: var(--wz-navy) !important; border: 1px solid var(--wz-navy) !important; border-radius: var(--wz-radius-1) !important;
  transition: background-color var(--wz-dur-2) var(--wz-ease) !important; text-decoration: none !important;
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover, .woocommerce .button.alt:hover, .wc-block-components-button:not(.is-link):hover { background: var(--wz-blue) !important; border-color: var(--wz-blue) !important; color: var(--wz-white) !important; }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .45 !important; }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--wz-space-5); margin: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; display: flex; flex-direction: column; border: var(--wz-border); background: var(--wz-bg); padding: 0 0 var(--wz-space-5) !important; }
.woocommerce ul.products li.product a img { margin: 0 0 var(--wz-space-4) !important; aspect-ratio: 1; object-fit: cover; background: var(--wz-bg-subtle); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0 var(--wz-space-5) !important; font-size: 1.0625rem !important; font-weight: 600; color: var(--wz-heading); }
.woocommerce ul.products li.product .price { padding: 0 var(--wz-space-5); color: var(--wz-heading) !important; font-weight: 500; font-size: 1rem !important; }
.woocommerce ul.products li.product .button { margin: auto var(--wz-space-5) 0 !important; }
.woocommerce ul.products li.product:hover { border-color: var(--wz-navy); }
.woocommerce span.onsale { min-height: 0; min-width: 0; line-height: 1; padding: 6px 10px; border-radius: 0; background: var(--wz-blue); color: #fff; font-size: 11px; letter-spacing: var(--wz-tracking-label); text-transform: uppercase; font-weight: 500; top: 12px !important; left: 12px !important; right: auto !important; margin: 0 !important; }
.woocommerce .price del { color: var(--wz-text-subtle); opacity: 1; }
.woocommerce .price ins { text-decoration: none; color: var(--wz-heading); }
.woocommerce div.product .product_title { font-size: var(--wz-text-h1); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--wz-heading); font-size: 1.75rem; font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 var(--wz-space-5); border-bottom: var(--wz-border); display: flex; gap: var(--wz-space-5); }
.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 { background: none; border: 0; padding: 0; margin: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 0; color: var(--wz-text-muted); font-weight: 500; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wz-heading); box-shadow: inset 0 -2px 0 var(--wz-navy); }
.woocommerce .quantity .qty { width: 72px; min-height: var(--wz-control-h); text-align: center; }
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--wz-navy); }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  padding: var(--wz-space-4) var(--wz-space-5) var(--wz-space-4) 3.25em !important; border: 1px solid var(--wz-info-line) !important; border-top-width: 1px !important; background: var(--wz-info-bg) !important; color: var(--wz-text) !important; font-size: var(--wz-text-small); border-radius: 0 !important;
}
.woocommerce-message { border-color: var(--wz-success-line) !important; background: var(--wz-success-bg) !important; }
.woocommerce-message::before { color: var(--wz-success) !important; }
.woocommerce-info::before { color: var(--wz-blue) !important; }
.woocommerce-error { border-color: var(--wz-danger-line) !important; background: var(--wz-danger-bg) !important; }
.woocommerce-error::before { color: var(--wz-danger) !important; }
.woocommerce-message .button, .woocommerce-info .button { min-height: 36px !important; font-size: var(--wz-text-small) !important; }
.woocommerce table.shop_table { border: var(--wz-border); border-radius: 0; border-collapse: collapse; font-size: var(--wz-text-small); }
.woocommerce table.shop_table th { font-size: var(--wz-text-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--wz-text-muted); background: var(--wz-bg-muted); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 14px 16px; border-top: 1px solid var(--wz-line-soft); }
.woocommerce a.remove { color: var(--wz-danger) !important; border-radius: 0; }
.woocommerce a.remove:hover { background: var(--wz-danger) !important; color: #fff !important; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3 { font-size: var(--wz-text-h3); }
.woocommerce form .form-row label { font-size: var(--wz-text-small); font-weight: 500; line-height: 1.6; }
.woocommerce form .form-row .required { color: var(--wz-danger); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--wz-danger); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--wz-success); }
.woocommerce-checkout #payment { background: var(--wz-bg-subtle); border-radius: 0; }
.woocommerce-checkout #payment div.payment_box { background: var(--wz-bg); color: var(--wz-text); border-radius: 0; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--wz-bg); }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; border-top: var(--wz-border); }
.woocommerce-MyAccount-navigation li { margin: 0; border-bottom: var(--wz-border); }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 14px; color: var(--wz-text-muted); text-decoration: none; border-left: 2px solid transparent; }
.woocommerce-MyAccount-navigation a:hover { background: var(--wz-bg-subtle); color: var(--wz-heading); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--wz-heading); border-left-color: var(--wz-navy); font-weight: 500; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 4px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 40px; height: 40px; display: grid; place-items: center; border: var(--wz-border); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--wz-navy); color: #fff; border-color: var(--wz-navy); }
.woocommerce .woocommerce-breadcrumb { font-size: var(--wz-text-small); color: var(--wz-text-subtle); }
.woocommerce .woocommerce-breadcrumb a { color: var(--wz-text-muted); text-decoration: none; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: var(--wz-radius-1) !important; border-color: var(--wz-line) !important; }
.wc-block-components-text-input.is-active input:focus { border-color: var(--wz-blue) !important; box-shadow: 0 0 0 3px var(--wz-blue-100) !important; }
.wc-block-grid__product { border: var(--wz-border); padding-bottom: var(--wz-space-5) !important; }

/* ===================================================================== 8 BLOCK EDITOR (back-end parity) */
.editor-styles-wrapper { font-family: var(--wz-font); color: var(--wz-text); }
.editor-styles-wrapper .wp-block-post-title { font-size: var(--wz-text-h1); color: var(--wz-heading); font-weight: 600; letter-spacing: var(--wz-tracking-display); }
.block-editor-block-list__layout .is-selected.wp-block-group.is-style-wz-box { outline-color: var(--wz-blue); }

/* ===================================================================== 9 ADMIN BAR / LOGIN (optional brand touches) */
#wpadminbar { background: var(--wz-navy-950); }
body.login { background: var(--wz-blue-50); font-family: var(--wz-font); }
body.login #login h1 a { background-image: url("assets/images/wizsp-logo-stacked-navy.svg"); background-size: contain; width: 120px; height: 150px; }
body.login form { border: var(--wz-border); box-shadow: none; border-radius: 0; }
body.login .button-primary { background: var(--wz-navy); border-color: var(--wz-navy); border-radius: var(--wz-radius-1); min-height: 40px; }
body.login .button-primary:hover { background: var(--wz-blue); border-color: var(--wz-blue); }
body.login #nav a, body.login #backtoblog a { color: var(--wz-navy); }

/* ===================================================================== 10 RESPONSIVE */
@media (max-width: 781px) {
  .alignleft, .alignright { float: none; margin: 0 0 var(--wz-space-4); }
  .wp-block-media-text .wp-block-media-text__content { padding: var(--wz-space-5) 0 0; }
  .post-navigation .nav-links { grid-template-columns: 1fr; }
  .post-navigation .nav-next { text-align: left; }
  .comment-list .children { padding-left: var(--wz-space-4); }
}
