/*
Theme Name: Zambros
Theme URI: https://zambros.com/
Author: PB Shop Architect
Author URI: https://delpho.it
Description: Tema per Ecommerce Zambros
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: pb_shop
*/

/**
 * Essenzapb Framework v2.3 - Final Production Grade
 * Focus: Resilient WooCommerce Integration, Accessibility & Motion.
 */

:root {
  /* Calibration: 1rem = 16px (User Agent standard) */
  --font-size-root: 100%;
  
  /* Layout Architecture */
  --container-max: 1280px;
  --gutter: 1.5rem;
  
  /* Z-Index Stratography */
  --z-hide: -1;
  --z-base: 1;
  --z-nav: 100;
  --z-modal: 1000;
  --z-popover: 1100;

  /* Systematic Spacing (Geometric Progression) */
  --s-0: 0;
  --s-1: 0.25rem; /* 4px */
  --s-2: 0.5rem;  /* 8px */
  --s-3: 1rem;    /* 16px */
  --s-4: 1.5rem;  /* 24px */
  --s-5: 2rem;    /* 32px */
  --s-6: 3rem;    /* 48px */
  --s-7: 4rem;    /* 64px */
  --s-8: 6rem;    /* 96px */
  --s-9: 8rem;    /* 128px */

  /* Semantic Design Tokens */
  --color-primary: #000000;
  --color-success: #10b981;
  --color-error: #ef4444;
  --color-warning: #f59e0b;
  
  /* Dynamic Surface Management */
  --color-text: #000;
  --color-bg: white;
  --color-surface: color-mix(in srgb, var(--color-text), transparent 97%);
  --color-border: color-mix(in srgb, var(--color-text), transparent 88%);

  /* Typography System (Fluid & Balanced) */
  --font-main: "Roboto", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-condensed: "Roboto Condensed", "Roboto", system-ui, sans-serif;
  
  --fs-base: 1rem;
  --fs-sm: 0.875rem;
  --fs-xs: 0.75rem;
  --fs-h1: clamp(2.5rem, 6vw, 4rem);
  --fs-h2: clamp(1.8rem, 5vw, 2.8rem);
  --fs-h2-archive: 32px; /* User Request: Archive H2 Control */
  --fs-h3: clamp(1.3rem, 4vw, 1.8rem);
  
  --fw-light: 300;
  --fw-reg: 400;
  --fw-bold: 700;
  --lh-tight: 1.15;
  --lh-base: 1.65;

  /* Functional Tokens */
  --rounded: 10px;
  --transition-fast: 0.15s ease;
  --transition-main: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--color-primary), transparent 60%);
  
  color-scheme: light dark;

  /* Theme Specific Overrides (pb- prefix) */
  --pb-header-height: 80px;
}

/* 1. RESET & GLOBAL BASE */
html { 
  font-size: var(--font-size-root); 
  scroll-behavior: smooth; 
  -webkit-text-size-adjust: 100%;
}

*, *::after, *::before { 
  box-sizing: border-box; 
  margin: 0; 
  padding: 0;
}

body { 
  line-height: var(--lh-base); 
  font-family: var(--font-main); 
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--color-text);
  background: var(--color-bg);
  min-height: 100dvh;
  font-family: var(--font-condensed);
}

/* 2. ACCESSIBILITY & UTILITIES */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;
}

.hidden { display: none !important; }
.bg-white { background-color: #ffffff; }
.bg-light-gray { background-color: #f5f5f5; }

/* 3. MODERN LAYOUT ENGINE (Grid Breakouts) */
.site-wrapper {
  display: grid;
  grid-template-columns: 
    [full-start] minmax(var(--gutter), 1fr) 
    [content-start] min(var(--container-max), 100% - (var(--gutter) * 2)) [content-end]
    minmax(var(--gutter), 1fr) [full-end];
}

.site-wrapper > * { grid-column: content; }
.full-width { grid-column: full; width: 100%; }
.content-area { padding-top: 40px; }

/* 4. COMPOSITIONAL ENGINES (Flex & Grid) */
.flex { display: flex; gap: var(--flex-gap, var(--s-3)); flex-wrap: wrap; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }

.flex-center { align-items: center; justify-content: center; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }

.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.justify-start { justify-content: flex-start; }

.content-center { align-content: center; }
.content-start { align-content: flex-start; }
.content-end { align-content: flex-end; }
.content-between { align-content: space-between; }
.content-around { align-content: space-around; }

.stack > * + * { margin-top: var(--stack-gap, var(--s-3)); }

.grid { display: grid; gap: var(--grid-gap, var(--s-4)); grid-template-columns: repeat(var(--cols, 1), 1fr); }
.grid-auto { display: grid; gap: var(--grid-gap, var(--s-4)); grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); }
.grid-2-cols { display: grid; grid-template-columns: 1fr 1fr; }
.grid-3-cols { display: grid; grid-template-columns: repeat(3, 1fr); }
.grid-4-cols { display: grid; grid-template-columns: repeat(4, 1fr); }

.col-span-2 { grid-column: span 2; }
.col-span-3 { grid-column: span 3; }
.col-span-full { grid-column: 1 / -1; }

.start-1 { grid-column-start: 1; }
.start-2 { grid-column-start: 2; }

/* 5. FORM ARCHITECTURE (WooCommerce Ready) */
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], select, textarea {
  width: 100%;
  padding: var(--s-3);
  font-family: inherit;
  font-size: var(--fs-base);
  border: 1.5px solid var(--color-border);
  border-radius: var(--rounded);
  background: var(--color-surface);
  color: var(--color-text);
  transition: var(--transition-fast);
  appearance: none;
}

input:focus, select:focus, textarea:focus { 
  outline: none; 
  border-color: var(--color-primary); 
  box-shadow: var(--focus-ring);
  background: var(--color-bg);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--s-3) var(--s-5);
  border-radius: var(--rounded);
  font-weight: var(--fw-bold);
  font-family: inherit;
  cursor: pointer;
  transition: var(--transition-main);
  border: none;
  background: var(--color-primary);
  color: #ffffff;
  text-decoration: none;
  line-height: 1;
}

.btn:hover { filter: brightness(1.1); }
.btn:active { transform: scale(0.97); }
.btn.secondary { background: var(--color-surface); color: var(--color-text); border: 1.5px solid var(--color-border); }

/* 6. TYPOGRAPHY & SEMANTIC BLOCKS */
h1, h2, h3 { line-height: var(--lh-tight); text-wrap: balance; font-weight: var(--fw-bold); margin-bottom: 0.5em; }
h1 {
    font-family: var(--font-condensed);
    font-size: 32px;
    font-weight: 700;
    text-transform: uppercase;
    color: #000000;
}
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }

p, .woocommerce-product-details__short-description,
 .pb-tabs-content {
    font-size: 14px;
    line-height: 24px;
    font-family: 'Roboto Condensed', sans-serif;
    letter-spacing: 0.1em;
    font-weight: 300;
    margin-bottom: 0px;
    color: #000000;
}

/* Short Description Accordion */
.woocommerce-product-details__short-description {
    max-height: 300px;
    overflow: hidden;
    position: relative;
    transition: max-height 0.5s ease;
}

.woocommerce-product-details__short-description.expanded {
    max-height: 2000px; /* Arbitrary large height for transition */
}

/* Fade out effect */
.woocommerce-product-details__short-description:not(.expanded)::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background: linear-gradient(to bottom, transparent, var(--color-bg, #fff));
    pointer-events: none;
}

.pb-short-description-read-more-wrapper {
    margin-top: var(--s-2);
}

.pb-read-more-trigger {
    background: none;
    border: none;
    color:  #000; /* Use primary or black */
    font-family: var(--font-condensed);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.2s;
}

.pb-read-more-trigger:hover {
    opacity: 0.7;
}

b, strong {
    font-weight: 700 !important;
}

/* Typography Composites */
.heading.big {
    font-size: 56px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 0.9; /* Added for tight display */
    font-family: var(--font-condensed);
}

.text-sm { font-size: var(--fs-sm); }
.text-muted { color: color-mix(in srgb, var(--color-text), transparent 40%); }
.no-underline { text-decoration: none; }
.black { color: #000000; }
.white { color: #ffffff; }

/* 7. WOOCOMMERCE SPECIFIC OVERRIDES */
.price { font-weight: var(--fw-bold); color: var(--color-primary); }
.onsale { background: var(--color-error); padding: var(--s-1) var(--s-2); border-radius: 4px; font-size: var(--fs-xs); color: #fff; }

/* High specificity to override WooCommerce defaults */
/* Main CTA Standardized Style */
.woocommerce button.button,
.woocommerce .button,
.woocommerce .checkout-button,
.woocommerce input.button,
.woocommerce #respond input#submit,
button.single_add_to_cart_button,
.wc-proceed-to-checkout .checkout-button {
    background-color: var(--color-text) !important; /* #000 */
    color: var(--color-bg) !important; /* #fff */
    height: var(--s-6) !important; /* 48px */
    width: 100%;
    font-size: var(--fs-sm) !important; /* 14px */
    font-weight: var(--fw-light) !important; /* 300 */
    text-transform: uppercase !important;
    cursor: pointer;
    margin-top: 0; /* Managed by context usually, but single product had 20px */
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    border: none !important;
    border-radius: 0 !important;
    letter-spacing: 0.05em !important;
    padding: 0 1rem !important;
    text-decoration: none !important;
    transition: all 0.2s ease;
    line-height: 1 !important;
}

.woocommerce button.button:hover,
.woocommerce .button:hover,
.woocommerce .checkout-button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
button.single_add_to_cart_button:hover {
     opacity: 0.8;
     background-color: var(--color-text) !important;
     color: var(--color-bg) !important;
}

/* Specific Override for Single Product Add to Cart to maintain margin */
button.single_add_to_cart_button {
    margin-top: 20px !important;
}

/* Product Tabs */
.pb-product-tabs-wrapper {
    margin-top: 2rem;
    border: 1px solid #e5e5e5;
    border-radius: 0; /* User request */
    overflow: hidden;
}

.pb-tabs-nav {
    display: flex;
    background: #f9f9f9;
    border-bottom: 1px solid #e5e5e5;
}

.pb-tab-trigger {
    flex: 1;
    background: none;
    border: none;
    transition: all 0.2s;
    /* User request */
    font-size: 14px;
    font-weight: 300;
    padding: 20px 25px;
    cursor: pointer;
    color: #BDBDBD;
}

.pb-tab-trigger:hover {
    background: #f0f0f0;
}

.pb-tab-trigger.active {
    background: #fff;
    /* User request */
    text-decoration: underline;
    text-underline-offset: 8px;
    color: #000;
}

/* Functional & Inner Content Styles */
.pb-tabs-content {
    padding: 1.5rem;
    background: #fff;
}

.pb-tab-panel {
    display: none;
}

.pb-tab-panel.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

.pb-ingredients-list, .pb-details-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pb-ingredient-item, .pb-detail-item {
    padding: 0.5rem 0;
    border-bottom: 1px solid #eee;
    display: flex;
    justify-content: space-between;
}

.pb-ingredient-item:last-child, .pb-detail-item:last-child {
    border-bottom: none;
}

.pb-ing-label {
    font-weight: 600;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

#tab-dettagli .pb-detail-item {
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.5rem;
}

.product-card {
  padding: var(--s-4);
  transition: var(--transition-main);
}
.product-card:hover { border-color: var(--color-primary); box-shadow: 0 10px 30px -10px color-mix(in srgb, var(--color-primary), transparent 85%); }

.product-img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: calc(var(--rounded) / 2);
  width: 100%;
}

/* 8. RESPONSIVE & UTILITIES */
.p-inline { padding-inline: var(--p-inline, var(--s-4)); }
.p-block { padding-block: var(--p-block, var(--s-5)); }

.cols-2 { --cols: 2; } .cols-3 { --cols: 3; } .cols-4 { --cols: 4; }


/* 9. MOTION & PRINT */




/* --- Theme Specific Layers --- */
.entry-header {
  max-width: 1200px;
  margin: 40px auto;
}
.pb-site-header {
    border-bottom: 1px solid var(--color-border);
    padding-block: var(--s-4);
    position: sticky;
    top: 0;
    z-index: var(--z-nav);
    padding: 20px var(--s-6);
}

.pb-header-grid {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Logo Area */
.pb-logo-icon-placeholder {
    display: block;
    width: 32px;
    height: 32px;
    background-color: var(--color-text); /* Placeholder fill */
    border-radius: 2px;
}
.site-title-text {
    font-size: 1.2rem;
    color: var(--color-text);
    letter-spacing: 0.1em;
}

/* Navigation */
.pb-nav-menu li {
    list-style: none;
}
.pb-nav-menu a {
    text-decoration: none;
    color: var(--color-text);
    font-size: var(--fs-xs);
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: color var(--transition-fast), font-weight var(--transition-fast);
}
.pb-nav-menu a:hover,
.pb-nav-menu .current-menu-item > a,
.pb-nav-menu .current_page_item > a {
    color: var(--color-primary);
    font-weight: 700;
}
/* Actions & Icon Placeholders */
.pb-action-item {
    display: flex; /* Flex aligned for centering */
    align-items: center;
    justify-content: center;
    color: var(--color-text);
    text-decoration: none;
    transition: opacity var(--transition-fast);
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    font-size: 20px; /* Base size for icons */
}
.pb-action-item:hover {
    opacity: 0.7;
    color: var(--color-primary);
}

.pb-action-item i {
    line-height: 1;
}

.pb-lang {
    font-size: var(--fs-xs);
    font-weight: var(--fw-bold);
    margin-right: 8px; /* Space from icons */
}

/* Utilities (Move to top if needed globally, but here for now) */
.relative { position: relative; }

/* Cart Count Badge */
.pb-cart-count {
    position: absolute;
    top: -6px;
    right: -8px;
    background-color: var(--color-primary);
    color: white;
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    pointer-events: none;
}

/* --- Footer Specifics --- */
.pb-site-footer {
    background-color: #000000;
    color: #ffffff;
    padding-top: var(--s-6);
    padding-bottom: var(--s-4);
    padding-left: var(--s-6);
    margin-top: var(--s-6);
    padding-right: var(--s-6);
}

.pb-footer-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--s-4);
    margin-bottom: var(--s-6);
}
.pb-footer-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}



.footer-heading {
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: var(--fw-bold);
    color: #ffffff;
    margin-bottom: var(--s-4);
}

.footer-branding .footer-logo-icon {
    background-color: #ffffff;
    border: 1px solid #ffffff;
}

/* Footer Links */
.pb-footer-menu li {
    margin-bottom: var(--s-2);
}
.pb-footer-menu a {
    color: color-mix(in srgb, #ffffff, transparent 40%);
    text-decoration: none;
    font-size: var(--fs-xs);
    transition: color var(--transition-fast);
}
.pb-footer-menu a:hover {
    color: #ffffff;
}

/* Social Icons Placeholder */
.pb-social-icon {
    display: inline-block;
    color: #ffffff;
    opacity: 0.8;
    transition: opacity var(--transition-fast);
}
.pb-social-icon:hover { opacity: 1; }

/* Newsletter Form */
.pb-newsletter-form { max-width: 300px; }
.newsletter-input-group {
    display: flex;
    border-bottom: 1px solid #ffffff;
    padding-bottom: var(--s-1);
}
.pb-input-dark {
    background: transparent;
    border: none;
    color: #ffffff;
    padding: var(--s-1);
    width: 100%;
    outline: none;
    font-size: var(--fs-xs);
}
.pb-input-dark::placeholder { color: color-mix(in srgb, #ffffff, transparent 60%); }
.pb-arrow-submit {
    background: transparent;
    border: none;
    color: #ffffff;
    cursor: pointer;
    font-size: var(--fs-base);
    padding-inline: var(--s-1);
}

/* Checkbox Label */
.pb-checkbox-label {
    display: flex;
    gap: var(--s-2);
    align-items: center;
    color: color-mix(in srgb, #ffffff, transparent 40%);
    font-size: 10px;
}

/* Footer Bottom */
.pb-footer-bottom {
    border-top: 1px solid color-mix(in srgb, #ffffff, transparent 85%);
    padding-top: var(--s-4);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* WhatsApp Floating */
.pb-whatsapp-float {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: #25D366; /* WhatsApp Green */
    border-radius: 50%;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    transition: transform var(--transition-fast);
}
.pb-whatsapp-float:hover { transform: scale(1.1); }
.icon-whatsapp {
    display: block;
    width: 20px;
    height: 20px;
    border: 2px solid white;
    border-radius: 4px; /* Placeholder shape */
}

/* Global utility override needed for white text on dark bg components */
.text-white { color: #ffffff; }


/* --- Home Categories Block --- */
.pb-home-categories {
    display: flex;
    flex-direction: column;
}

.pb-category {
    min-height: 80vh; /* Occupy significant screen height */
    position: relative;
    overflow: hidden;
}

.pb-cat-bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}
.pb-cat-bg-video iframe,
.pb-cat-bg-video video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover; /* Works for video */
    pointer-events: none;
    /* Aspect Ratio Hack for iFrames to cover */
    min-width: 100%;
    min-height: 100%;
}
/* Ensure iframe strives to cover if object-fit fails */
.pb-cat-bg-video iframe {
    /* Rough approximation to force cover if ratio differs, often needs JS or aspect-ratio checks, sticking to 100% for now but adding min-size */
    width: 100vw; /* Force viewport width if needed, or container width */
    height: 56.25vw; /* 16:9 ratio based on width */ 
    min-height: 100vh;
    min-width: 177.77vh; /* 16:9 ratio based on height */
    /* This generic "Mega Cover" hack ensures coverage for 16:9 content */
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
}
/* Reset specific for video tag which handles object-fit natively */
.pb-cat-bg-video video {
    width: 100%;
    height: 100%;
}

/* Force MediaElement.js (WordPress Default Player) to fill container */
.pb-cat-bg-video .mejs-container,
.pb-cat-bg-video .mejs-overlay,
.pb-cat-bg-video .mejs-poster {
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    top: 0;
    left: 0;
}
.pb-cat-bg-video .mejs-mediaelement {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.pb-cat-bg-video .mejs-mediaelement video {
    object-fit: cover !important; /* Force cover on the internal video */
}
/* Hide controls if they accidentally appear */
.pb-cat-bg-video .mejs-controls,
.pb-cat-bg-video .mejs-overlay-play,
.pb-cat-bg-video .mejs-overlay-loading,
.pb-cat-bg-video video::-webkit-media-controls,
.pb-cat-bg-video video::-webkit-media-controls-start-playback-button {
    display: none !important;
    opacity: 0 !important;
}

/* Text Side */
.pb-cat-text {
    color: #000000;
    padding: var(--s-6);
    padding-bottom: var(--s-8); /* Push content up slightly */
    position: relative;
    z-index: 2;
}

.pb-cat-title {
    font-size: var(--fs-xl); /* Big impact */
    line-height: 0.9;
    letter-spacing: -0.02em;
}

.pb-cat-cta {
    color: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    opacity: 0.7;
    transition: opacity var(--transition-fast);
}
.pb-cat-cta:hover { opacity: 1; }

/* Media Side */
.pb-cat-media {
    background-size: cover;
    background-position: center;
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pb-video-embed {
    width: 100%;
    height: 100%;
    display: flex; /* Centers iframe */
}

.pb-video-embed iframe,
.pb-video-embed video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: none;
    min-height: 400px; /* Ensure minimum height */
}

/* Placeholder for when no video is present */
.pb-video-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e0e0e0 0%, #f5f5f5 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.pb-play-icon {
    width: 60px;
    height: 60px;
    border: 2px solid #000;
    border-radius: 50%;
    position: relative;
}
.pb-play-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 55%;
    transform: translate(-50%, -50%);
    border-left: 10px solid #000;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
}

/* Responsive */


/* --- Logo Sizing --- */
.pb-header-logo {
    max-height: 40px;
    width: auto;
    object-fit: contain;
}

.pb-footer-logo {
    max-height: 40px;
    width: auto;
    object-fit: contain;
}





/* --- WooCommerce Archive Product Card (Zambros Style) --- */

/* Base Card Structure */
.product-card {
  /* Già definito in Essenza, manteniamo le sue proprietà base */
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100px;
}

/* Media Container with fixed aspect */
/* Media Container with fixed aspect */
.pb-product-media {
  position: relative;
  overflow: hidden;
  height: auto; /* Fixed height come originale */
}

.pb-product-link {
  display: block;
  height: auto;
}

.product-img {
  position: relative;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 0; /* Override Essenza per mantenere sharp edges */
}

/* CTA Overlay - nascosto di default, slide up on hover */
.pb-product-cta-overlay {
  position: absolute;
  bottom: -48px; /* Start hidden */
  left: 0;
  right: 0;
  height: var(--s-6); /* 48px */
  background-color: var(--color-text); /* #000 */
  display: flex;
  align-items: center;
  justify-content: center; /* center */
  vertical-align: middle;
  z-index: var(--z-base);
  transition: bottom 150ms linear;
  margin-top: 20px; /* Kept per user request, though ineffective on absolute constrained box */
}

.product-card:hover .pb-product-cta-overlay {
  bottom: 0;
}

.pb-product-cta-overlay:hover {
  opacity: 0.8;
}

.pb-cta-view {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-align: center;
  color: var(--color-bg) !important; /* #fff */
  font-size: var(--fs-sm); /* 14px */
  font-weight: var(--fw-light); /* 300 */
  text-transform: uppercase;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
  letter-spacing: 0.05em; /* Kept for consistency */
}

/* Info Container */
.pb-product-info {
  padding-top: var(--s-4);
}

.pb-product-cat {
  font-size: var(--fs-sm);
  font-weight: var(--fw-reg);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-text);
  margin: 0;
}

.pb-product-title {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-text);
  line-height: var(--lh-tight);
  margin: 0;
}

.pb-product-price {
  font-size: var(--fs-sm);
  font-weight: 300; /* Light come originale */
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text);
  white-space: nowrap;
}

/* Grid Layout per Archive */
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Fix for WooCommerce clearfix interference with Grid */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none;
    content: none;
}

.woocommerce ul.products li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce-page ul.products.columns-2 li.product {
  /* Reset Flex/Legacy properties */
  flex: unset;
  max-width: 100%;
  margin: 0;
  width: 100%; /* Force grid cell width */
}

.woocommerce ul.products li.product::before {
  display: none !important;
  content: none !important;
}

/* Custom Category Width */
.pb-archive-width {
  --container-max: 1140px;
}

.archive h2,
.tax-product_cat h2 {
    font-size: var(--fs-h2-archive);
    text-transform: uppercase;
    font-weight: 700;
    text-align: left;
}
section.related.products, section.up-sells.products {
    clear: both!important;
    position: relative;
    margin-top: 4rem; /* Additional separation */
}

section.related.products h2, 
section.up-sells.products h2 {
    font-size: 24px !important;
    text-transform: uppercase !important;
    font-weight: 700;
    margin-bottom: 30px;
    letter-spacing: 0.1em;
}

section.related.products ul.products, 
section.up-sells.products ul.products {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    gap: 0 !important; /* Gap handled by padding to calculate precise widths */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
    grid-template-columns: none !important; /* Override previous grid */
}

section.related.products ul.products::-webkit-scrollbar, 
section.up-sells.products ul.products::-webkit-scrollbar {
    display: none;
}

section.related.products ul.products li.product, 
section.up-sells.products ul.products li.product {
    flex: 0 0 25%; /* 4 columns Desktop */
    width: 25%;
    scroll-snap-align: start;
    padding: 0 10px; /* Simulated gap */
    box-sizing: border-box;
}

/* Dots Navigation */
.pb-carousel-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.pb-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ccc;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.3s;
}

.pb-dot.active {
    background: #000;
}

.pb-single-pre-title-cat {
    font-family: var(--font-condensed);
    font-size: 12px;

    text-transform: uppercase;
    color: #000000;
    margin-bottom: 0.5rem; /* Aggiunto spazio sotto */
}

.pb-single-pre-title-cat a {
    color: inherit;
    text-decoration: none;
}

.pb-single-pre-title-cat a:hover {
    text-decoration: underline;
}

/* Single Product Price Styling */
#pb-product-price-target.price,
#pb-product-price-target .price,
.woocommerce div.product p.price {
    color: #333333 !important; /* Requested #333 */
    display: flex; /* Keep flex for structure, but check placement */
    margin-bottom: 0.2rem !important; /* Reduced margin to stick to disclaimer */
    font-size: 14px !important; /* Requested 14px */
    font-weight: 700 !important; 
    gap: 10px;
}

/* Ensure inner visible elements also inherit or respect this */
#pb-product-price-target span.woocommerce-Price-amount {
    font-size: 14px !important;
    color: #333333 !important;
}

.woocommerce div.product p.price del {
    opacity: 0.5;
    font-weight: 300;
    font-size: 0.9em;
    margin-bottom: 2px;
}

.woocommerce div.product p.price ins {
    text-decoration: none;
    font-weight: 700;
}

/* Price Disclaimer */
.pb-price-disclaimer {
    font-size: 12px !important;
    font-weight: 300 !important;
    margin-top: 0 !important;
    margin-bottom: 1.5rem !important; /* Spacing after disclaimer */
    color: #000; /* Inherit or specific? Defaulting to black/text */
    line-height: normal;
}

/* Shipping Class */
.pb-shipping-class {
    margin-top: 0.5rem;
    font-family: var(--font-condensed);
    font-size: 12px;
    text-transform: uppercase;
    color: #666;
    letter-spacing: 0.05em;
}

/* Custom Variation Swatches & Table Overrides */
table.variations {
    display: block;
    width: 100%;
    margin-bottom: var(--s-4);
    border: none;
    padding: 20px 0px;
}

table.variations tbody {
    display: flex;
    flex-direction: row; 
    align-items: center;
    gap: var(--s-3);
    width: 100%;
    flex-wrap: wrap; 
    justify-content: space-between;
}

table.variations tr {
    display: flex;
    align-items: center;
}

table.variations th.label {
    display: none; 
}

table.variations td.value {
    display: block;
    width: auto; 
    padding: 0;
}

/* Custom Swatches Redesign */
.zambrosSingleProductVariationsContainer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}

.zambrosSingleProductVariationItemContainer {
    display: flex;
    align-items: center;
}

.zambrosSingleProductVariationItem,
.zambrosSingleProductVariationTypeItem {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 0 10px;
    border: none;
    background-color: transparent;
    color: #999; /* Inactive color */
    cursor: pointer;
    font-family: var(--font-condensed);
    font-size: 16px;
    text-transform: uppercase;
    transition: color 0.2s ease;
    min-width: auto;
    text-align: center;
    line-height: 1;
}

/* Enforce Type Item Active Status Always */
.zambrosSingleProductVariationTypeItem {
    color: #000 !important;
    font-weight: 700 !important;
    cursor: default;
}

/* First item padding adjust? Maybe not needed if container handles it */
.zambrosSingleProductVariationItemContainer:first-child .zambrosSingleProductVariationItem,
.zambrosSingleProductVariationItemContainer:first-child .zambrosSingleProductVariationTypeItem {
    padding-left: 0;
}

.zambrosSingleProductVariationItem:hover,
.zambrosSingleProductVariationTypeItem:hover {
    color: #000;
}

.zambrosSingleProductVariationItem.active {
    background-color: transparent;
    color: #000;
    font-weight: 700;
    border: none;
}

/* Separator */
.zambrosSingleProductVariationSeparator {
    width: 1px;
    height: 14px;
    background-color: #000;
    display: block;
    margin: 0 2px;
}

/* Hide separator for last item */
.zambrosSingleProductVariationItemContainer:last-child .zambrosSingleProductVariationSeparator {
    display: none;
}

/* HIDE RESET LINK */
.reset_variations {
    display: none !important;
}

/* HIDE QUANTITY INPUT */
.quantity, .woocommerce-variation-add-to-cart .quantity {
    display: none !important;
}

/* --- Single Product Custom Layout --- */

/* 1. New Wrapper Grid (Separates Top Content from Related Products) */
.pb-single-product-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start; /* Crucial for sticky */
    justify-content: space-between;
    gap: var(--s-6);
    width: 100%;
}

/* Ensure default product wrapper doesn't interfere */
.woocommerce div.product {
    display: block; /* Reset back to block so related products flow naturally below */
}

/* 2. Custom Image Stack (Left Column) */
.pb-product-images-stack {
    flex: 1 1 50%; /* Grow, Shrink, Basis */
    width: 50%; /* Fallback */
    min-width: 320px;
    display: flex;
    flex-direction: column;
    gap: var(--s-4);
}

.pb-stack-item {
    width: 100%;
    margin-bottom: 0;
}

img.pb-product-full-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* 3. Sticky Summary (Right Column) */
.woocommerce div.product div.summary {
    flex: 1 1 40%;
    width: 40%; /* Fallback */
    min-width: 300px;
    position: sticky;
    top: calc(var(--pb-header-height, 80px) + 20px); /* sticky offset */
    margin-bottom: var(--s-6);
    padding: 0;
    float: none;
    clear: none;
    height: fit-content; /* Ensure it only takes needed height for stickiness to work optimally */
}

/* Override standard WC widths */
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
    float: none !important;
    width: auto !important; 
}

/* Responsive */


/* --- Custom Cart Page Layout --- */

.pb-cart-heading {
    text-transform: uppercase;
    font-size: 24px;
    font-weight: 700;
    margin-bottom: var(--s-5);
    letter-spacing: 0.1em;
}

.pb-cart-layout {
    display: flex;
    flex-direction: column;
    gap: var(--s-6);
    margin-top: var(--s-4);
    margin-bottom: var(--s-8);
}



/* Left Column: Products List (Refactoring Table) */
.pb-cart-products .shop_table {
    width: 100%;
    border-collapse: collapse;
    border: none !important;
}

.pb-cart-products .shop_table tr.cart_item {
    display: grid;
    grid-template-columns: auto 100px 1fr auto; /* X | Img | Content | Price */
    gap: var(--s-4);
    align-items: center; /* Center vertically relative to image */
    border-bottom: 1px solid #e5e5e5;
    padding-block: var(--s-4);
}

/* Mobile Layout for Cart Items */


.pb-cart-products td {
    border: none !important;
    padding: 0 !important;
    display: block; /* Make tds block for grid placement */
}

/* 1. Remove Icon */
.pb-cart-products .product-remove {
    width: 20px;
}
.pb-cart-products .product-remove a.remove {
    font-size: 24px;
    color: #000;
    font-weight: 300;
    text-decoration: none;
    line-height: 1;
    display: block;
}
.pb-cart-products .product-remove a.remove:hover {
    color: var(--color-error);
    background: none;
}

/* 2. Thumbnail */
.pb-cart-products .product-thumbnail {
    width: 100px;
}
.pb-cart-products .product-thumbnail img {
    width: 100%;
    min-width: 90px; /* User Request: Min 90px */
    height: auto;
    border-radius: 4px;
    display: block;
}

/* 3. Product Content (Name, Meta, Qty) */
.pb-cart-products .product-name {
    align-self: start; /* Align text to top of row/image */
    padding-top: var(--s-1) !important;
}

.pb-cart-product-title {
    display: block;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    color: #000;
    text-decoration: none;
    margin-bottom: 2px;
}

/* Variation Attributes Plain Text using Span (New .attr_product) */
.attr_product {
    display: block;
    margin-top: 4px;
    font-size: 14px;
    color: #777;
    font-weight: 300 !important; /* User Request: font-weight 300 */
    line-height: 1.4;
}

/* Old DL variation styles (kept just in case, but overridden by span usage) */
.pb-cart-products dl.variation {
    display: none !important; 
}

/* Wrapper for Qty to space it out from title */
.pb-cart-qty-wrapper {
    margin-top: var(--s-3);
    display: flex;
    align-items: center;
    visibility: visible !important; /* Force visible */
}

/* Quantity Selectors */
.quantity {
    display: inline-flex !important;
    align-items: center;
    gap: var(--s-2);
    opacity: 1 !important;
    visibility: visible !important;
}

/* Quantity Input */
.quantity input.qty {
    width: 30px;
    border: none;
    background: transparent;
    padding: 0;
    text-align: center;
    font-size: 14px;
    font-weight: 400;
    appearance: textfield; /* Remove spinner */
    -moz-appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Custom Btns injected via JS */
.pb-qty-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: #000;
    padding: 0 4px;
    font-weight: 300;
    width: 20px;
    display: flex;
    justify-content: center;
}
.pb-qty-btn:hover {
    color: var(--color-primary);
}

/* 4. Subtotal (Right aligned) */
.pb-cart-products .product-subtotal {
    text-align: right;
    font-weight: 400;
    font-size: 14px;
    color: #000;
    min-width: 80px;
}

/* Hide Actions Row from View (We moved the button logic but kept row for update cart button mechanics if strict) */
.cart-actions-row {
    display: none; /* Hide standard update cart row */
}


/* --- Right Column: Summary & Totals --- */

.pb-cart-summary {
    background: transparent;
}

/* Coupon Form */

.pb-coupon-label {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    color: #999;
    margin-bottom: var(--s-2);
    font-weight: 600;
    letter-spacing: 0.05em;
}

.pb-coupon-input-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #000;
    padding-bottom: 4px;
}

.pb-coupon-input {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 14px;
    font-weight: 600;
    color: #000;
    outline: none !important;
    box-shadow: none !important;
}
.pb-coupon-input::placeholder {
    font-weight: 400;
    color: #999;
}

.pb-apply-coupon {
    background: transparent !important;
    color: #000 !important;
    border: none !important;
    padding: 0 !important;
    font-size: 12px !important;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 4px;
    font-weight: 700 !important;
    height: auto !important;
    width: auto !important;
    min-height: 0 !important;
}
.pb-apply-coupon:hover {
    opacity: 0.7;
}

/* Cart Totals Table Overrides */
.cart_totals h2 {
    display: none; /* Hide default WC heading */
}

.cart_totals table.shop_table {
    border: none;
    width: 100%;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
    border: none;
    padding: var(--s-2) 0;
    font-size: 14px;
    background: transparent;
}

.cart_totals table.shop_table th {
    font-weight: 400;
    color: #555;
    text-align: left;
}

.cart_totals table.shop_table td {
    text-align: right;
    font-weight: 400;
    color: #000;
}

.cart_totals .cart-subtotal th {
    font-weight: 400;
}

.cart_totals .order-total th {
    font-weight: 700;
    text-transform: uppercase;
    color: #000;
    padding-top: var(--s-4);
}
.cart_totals .order-total td {
    font-weight: 700;
    font-size: 16px;
    padding-top: var(--s-4);
}

/* Proceed to Checkout Button */
.wc-proceed-to-checkout {
    margin-top: var(--s-5);
}




.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
    border: 0;
    margin: 2em 0;
    text-align: left;
    border-radius: 5px;
}
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals {
    float: right;
    width: 100%;
}

.woocommerce .quantity .qty {
    width: 3.631em;
    text-align: center;
    color: #000;
}

/* --- 10. CHECKOUT PAGE --- */

.pb-checkout-layout {
    display: flex;
    flex-direction: column;
    gap: var(--s-8);
    margin-top: var(--s-5);
    align-items: start;
}

/* Left Column: Details */
.pb-checkout-details {
    width: 100%;
}

.col2-set {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-4);
    width: 100%;
}

.col2-set .col-1, 
.col2-set .col-2 {
    float: none;
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%; 
}

/* Form Fields Clean Up - Reference Match */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
#order_review_heading {
    font-size: 14px; /* Reduced from 20px to match crisp look */
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: var(--s-5);
    letter-spacing: 0.1em;
    border-bottom: none; /* Reference doesn't show border on heading, maybe just space */
    padding-bottom: 0;
}

.woocommerce form .form-row {
    padding: 0;
    margin: 0 0 var(--s-4); /* More space */
}

/* Labels: Small, Uppercase, Gray */
.woocommerce form .form-row label {
    display: block;
    margin-bottom: 0.2rem;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 400; /* Regular weight */
    color: #666;
    letter-spacing: 0.05em;
    line-height: 1;
}

/* Inputs: Underline Style */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
    width: 100%;
    border: none;
    border-bottom: 1px solid #000; /* Sharp black underline */
    background: transparent;
    border-radius: 0;
    padding: 8px 0; /* Horizontal padding 0 */
    font-size: 14px;
    font-weight: 700; /* Input text often bold in these high end designs, checking reference... Name looks bold "Franco" */
    color: #000;
    outline: none;
    box-shadow: none;
    transition: border-color 0.2s;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    border-bottom-color: var(--color-primary); /* Keep black or specific focus color */
    box-shadow: none;
}

/* Selects: Underline Style */
.woocommerce form .form-row select {
    width: 100%;
    border: none;
    border-bottom: 1px solid #000;
    background: transparent;
    border-radius: 0;
    padding: 8px 0;
    font-size: 14px;
    font-weight: 400; /* Selects usually regular */
    color: #000;
    outline: none;
    box-shadow: none;
    appearance: none; /* Remove default arrow */
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 16px;
}

/* Checkbox Style (Ship to different) */
.woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 700; /* Bold as per reference "SHIP TO A DIFFERENT ADDRESS?" */
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.woocommerce-form__label-for-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    border: 1px solid #000;
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    display: inline-block;
    position: relative;
    cursor: pointer;
}
.woocommerce-form__label-for-checkbox input[type="checkbox"]:checked {
    background-color: #000;
}

/* Required Star */
.required {
    color: var(--color-error);
    text-decoration: none;
}

/* Right Column: Order Review */
.pb-checkout-review {
    background: #f9f9f9;
    padding: var(--s-5);
    border: 1px solid #eee;
    /* Sticky moved to responsive.css for desktop only */
}

/* Order Table Styles - Minimalist */
.woocommerce-checkout-review-order-table {
    width: 100%;
    border: none;
    margin-bottom: var(--s-5);
}

.woocommerce-checkout-review-order-table th, 
.woocommerce-checkout-review-order-table td {
    border: none;
    border-bottom: 1px solid #eee; /* Faint separator */
    padding: 12px 0;
    font-size: 13px;
    background: transparent;
}

.woocommerce-checkout-review-order-table th {
    font-weight: 400;
    color: #777;
    text-align: left;
    text-transform: none; /* Reference has standard case for labels like "Subtotal" */
}
.woocommerce-checkout-review-order-table td {
    font-weight: 500;
    text-align: right;
    color: #000;
}

.woocommerce-checkout-review-order-table tfoot th {
    font-weight: 400; /* Reference "Subtotal", "Shipping" are light/regular */
    color: #777;
}

.woocommerce-checkout-review-order-table .order-total th {
    border-bottom: none;
    font-weight: 700;
    text-transform: uppercase; /* "TOTAL" usually uppercase in ref */
    color: #000;
    padding-top: 20px;
    font-size: 16px;
    letter-spacing: 0.05em;
}
.woocommerce-checkout-review-order-table .order-total td {
    border-bottom: none;
    font-weight: 700;
    font-size: 18px;
    padding-top: 20px;
    color: #000;
}

/* Shipping Methods Radio List */
#shipping_method {
    list-style: none;
    padding: 0;
    margin: 0;
}
#shipping_method li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    font-size: 13px;
}
#shipping_method li input[type="radio"] {
    order: 2; /* Radio on right? Reference shows radio on right for some lists, let's keep standard left or check. Ref "Punto di consegna BRT... (radio icon on right)". OK, radio strictly on right. */
    float: right;
    margin-left: 10px;
    margin-right: 0;
    /* Custom Radio Style if needed, but defaults are usually fine or hard to style pure CSS */
    accent-color: #000;
}
#shipping_method li label {
    order: 1;
    width: 100%;
    text-align: left;
    font-weight: 400;
    color: #000;
    display: flex;
    justify-content: space-between; /* To separate text and price if inside label */
}

/* Payment Methods - Boxed Style */
#payment {
    background: transparent;
    border-radius: 0;
}

#payment .payment_methods {
    padding: 0;
    margin: 0 0 var(--s-4);
    border-bottom: none;
}

#payment .payment_methods li {
    list-style: none;
    border: 1px solid #000; /* Box around selection? Reference shows "Bonifico bancario" inside a box with radio. */
    padding: 15px;
    margin-bottom: 10px;
    background: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
}



#payment .payment_methods li input[type="radio"] {
    accent-color: #000;
    width: 18px;
    height: 18px;
}

#payment .payment_methods li label {
    margin: 0;
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    color: #000;
    cursor: pointer;
    width: 100%;
}

#payment div.payment_box {
    background-color: transparent;
    color: #555;
    margin: 0;
    padding: 10px 0 0 30px; /* Indent below label */
    font-size: 12px;
    border: none;
    border-radius: 0;
    position: relative;
    line-height: 1.5;
}
#payment div.payment_box::before {
    display: none; /* Remove triangle */
}

/* Place Order Button */
#place_order {
    background-color: #fff !important; /* Reference implies maybe button is further down, but typically black. Wait, user reference cuts off. Standard Essenza is Black. Let's stick to Black. */
    background-color: #000 !important;
    color: #fff !important;
    width: 100%;
    font-size: 14px !important;
    padding: 18px !important;
    text-transform: uppercase;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    border: 1px solid #000 !important;
    transition: all 0.2s;
}
#place_order:hover {
    background-color: #fff !important;
    color: #000 !important;
}

/* Privacy Text */
.woocommerce-privacy-policy-text {
    font-size: 11px;
    color: #777;
    margin-bottom: 20px;
    line-height: 1.5;
}



/* ============================================
   SINGLE PRODUCT: META AGROS BLOCK (CAT 30)
   ============================================ */

.pb-meta-agros-block {
    margin-top: var(--s-8);
    margin-bottom: var(--s-8);
    background-color: #fff;
}

.pb-meta-agros-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-6);
    align-items: center;
}

.pb-meta-agros-media img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.pb-meta-agros-content {
    padding: var(--s-4);
}

.pb-meta-agros-title {
    font-family: var(--font-condensed);
    font-size: 42px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1;
    margin-bottom: var(--s-3);
    color: #000;
}

.pb-meta-agros-subtitle {
    font-size: 18px;
    font-weight: 700; /* Bold as per tone */
    margin-bottom: var(--s-4);
    color: #000;
    line-height: 1.4;
}

.pb-meta-agros-text p {
    font-size: 14px;
    line-height: 1.6;
    font-weight: 300;
    margin-bottom: var(--s-3);
    color: #333;
}


