/*
Theme Name: Botiga Child - Historicum
Theme URI: https://historicum.pl
Description: Custom child theme for Historicum 2026 Remake - Medieval Combat Equipment
Author: Historicum
Author URI: https://historicum.pl
Template: botiga
Version: 1.0.0
Text Domain: botiga-child
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* 
===========================================
HISTORICUM 2026 - DESIGN SYSTEM
===========================================
*/

/* -----------------------------------------
   CUSTOM FONTS
----------------------------------------- */
@font-face {
    font-family: 'Augusta';
    src: url('./assets/fonts/Augusta.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Augusta Shadow';
    src: url('./assets/fonts/Augusta-Shadow.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'BlackCastleMF';
    src: url('./assets/fonts/BlackCastleMF.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DeutscheZierschrift';
    src: url('./assets/fonts/DeutscheZierschrift.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Enchanted Land';
    src: url('./assets/fonts/Enchanted_Land.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Perrygot';
    src: url('./assets/fonts/PERRYGOT.TTF') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PeterSchlemihl';
    src: url('./assets/fonts/PeterSchlemihl.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Sketch Gothic School';
    src: url('./assets/fonts/Sketch_Gothic_School.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


/* -----------------------------------------
   CSS VARIABLES - DESIGN TOKENS
----------------------------------------- */
:root {
    /* === COLORS === */
    --h-accent: #EBBC00;
    --h-accent-hover: #d4a900;
    --h-accent-light: rgba(235, 188, 0, 0.1);

    --h-black: #000000;
    --h-gradient-start: #080501;

    --h-white: #FFFFFF;
    --h-gray-light: #cccccc;
    --h-gray-mid: #888888;
    --h-gray-dark: #333333;
    --h-paper: #F5F0E6;

    /* === FONTS === */
    --h-font-cinzel: 'Cinzel', serif;
    --h-font-cormorant: 'Cormorant', serif;
    --h-font-augusta: 'Augusta', serif;
    --h-font-instrument: 'Instrument Sans', sans-serif;
    --h-font-readable: var(--h-font-instrument);

    /*
     * STYLE GUIDE: Instrument Sans is the readability font.
     * Use it for form inputs, descriptions, prices, numeric values,
     * and any content where quick scanning matters more than decoration.
     */

    /* === TYPOGRAPHY SIZES === */
    --h-size-main-title: 50px;
    --h-size-h1: 40px;
    --h-size-h2: 35px;
    --h-size-h3: 25px;
    --h-size-body: 16px;
    --h-size-small: 15px;
    --h-size-price: 35px;

    /* === SPACING === */
    --h-space-xs: 0.5rem;
    --h-space-sm: 1rem;
    --h-space-md: 2rem;
    --h-space-lg: 4rem;
    --h-space-xl: 6rem;
    --h-space-xxl: 8rem;

    /* === LAYOUT === */
    --h-container-width: 1200px;
    --h-container-wide: 1400px;

    /* === EFFECTS === */
    --h-transition: 0.3s ease;
    --h-shadow: none;
    --h-shadow-hover: none;

    /* === BORDERS === */
    --h-border-radius: 4px;
    --h-border-radius-lg: 8px;

    /* === NOISE SHADOW === */
    --h-noise-shadow-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 72' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='grain' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='5.8' numOctaves='1' seed='27' result='noise'/%3E%3CfeColorMatrix in='noise' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 -5.7' result='blackNoise'/%3E%3C/filter%3E%3ClinearGradient id='falloff' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='white' stop-opacity='.92'/%3E%3Cstop offset='34%25' stop-color='white' stop-opacity='.54'/%3E%3Cstop offset='100%25' stop-color='white' stop-opacity='0'/%3E%3C/linearGradient%3E%3CradialGradient id='round' cx='50%25' cy='0%25' r='82%25'%3E%3Cstop offset='0%25' stop-color='white' stop-opacity='1'/%3E%3Cstop offset='72%25' stop-color='white' stop-opacity='.7'/%3E%3Cstop offset='100%25' stop-color='white' stop-opacity='0'/%3E%3C/radialGradient%3E%3Cmask id='fall' mask-type='alpha'%3E%3Cellipse cx='60' cy='14' rx='58' ry='34' fill='url(%23round)'/%3E%3Crect x='1' y='0' width='118' height='70' fill='url(%23falloff)'/%3E%3C/mask%3E%3C/defs%3E%3Crect width='120' height='72' fill='black' filter='url(%23grain)' mask='url(%23fall)' opacity='1'/%3E%3C/svg%3E");
}


/* -----------------------------------------
   ACCESSIBILITY UTILITIES
----------------------------------------- */
.screen-reader-text,
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
}

.screen-reader-text:focus,
.sr-only:focus {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    white-space: normal !important;
}


/* -----------------------------------------
   TYPOGRAPHY CLASSES
----------------------------------------- */
.h-main-title {
    font-family: var(--h-font-cinzel);
    font-weight: 700;
    font-size: var(--h-size-main-title);
    color: var(--h-white);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

.h-subtitle {
    font-family: var(--h-font-cormorant);
    font-weight: 400;
    font-size: var(--h-size-h3);
    color: var(--h-white);
}

.h-cta-text {
    font-family: var(--h-font-augusta);
    font-weight: 400;
    font-size: var(--h-size-h3);
    color: var(--h-accent);
}

.h-h1, 
.historicum-homepage h1 {
    font-family: var(--h-font-cinzel);
    font-weight: 700;
    font-size: var(--h-size-h1);
    color: var(--h-white);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.h-h2,
.historicum-homepage h2 {
    font-family: var(--h-font-cormorant);
    font-weight: 700;
    font-size: var(--h-size-h2);
    color: var(--h-white);
}

.h-h3,
.historicum-homepage h3 {
    font-family: var(--h-font-cormorant);
    font-weight: 700;
    font-size: var(--h-size-h3);
    color: var(--h-white);
}

.h-big-number {
    font-family: var(--h-font-cinzel);
    font-weight: 700;
    font-size: var(--h-size-main-title);
    color: var(--h-accent);
}

.h-stat-label {
    font-family: var(--h-font-cormorant);
    font-weight: 400;
    font-size: var(--h-size-h3);
    color: var(--h-white);
}

.h-product-name {
    font-family: var(--h-font-cormorant);
    font-weight: 400;
    font-size: var(--h-size-h3);
    color: var(--h-white);
}

.h-product-reviews {
    font-family: var(--h-font-cormorant);
    font-weight: 400;
    font-size: var(--h-size-small);
    color: var(--h-gray-light);
}

.h-product-price {
    font-family: var(--h-font-readable);
    font-weight: 400;
    font-size: var(--h-size-price);
    color: var(--h-accent);
}

.h-body,
.historicum-homepage p {
    font-family: var(--h-font-readable);
    font-weight: 400;
    font-size: var(--h-size-body);
    line-height: 1.6;
    color: var(--h-white);
}


/* -----------------------------------------
   GLOBAL RESETS FOR HOMEPAGE
----------------------------------------- */
body.historicum-home-page {
    margin: 0;
    padding: 0;
    background-color: var(--h-black);
}

body.historicum-home-page .site-header,
body.historicum-home-page .site-footer,
body.historicum-home-page .content-wrapper,
body.historicum-home-page .page-wrap {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.historicum-home-page .entry-header,
body.historicum-home-page .page-header,
body.historicum-home-page .botiga-page-header {
    display: none !important;
}

.historicum-homepage {
    width: 100%;
    min-height: 100vh;
    background-color: var(--h-black);
    color: var(--h-white);
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

.historicum-homepage *,
.historicum-homepage *::before,
.historicum-homepage *::after {
    box-sizing: border-box;
}

.historicum-homepage section {
    width: 100%;
    max-width: 100%;
}


/* -----------------------------------------
   CONTAINER
----------------------------------------- */
.h-container {
    width: 100%;
    max-width: var(--h-container-width);
    margin: 0 auto;
    padding: 0 var(--h-space-md);
}

.h-container-wide {
    max-width: var(--h-container-wide);
}

.h-container-full {
    max-width: 100%;
    padding: 0;
}


/* -----------------------------------------
   SECTIONS BASE
----------------------------------------- */
.h-section {
    width: 100%;
    padding: var(--h-space-xl) 0;
}

.h-section-dark {
    background-color: var(--h-black);
}

.h-section-gradient {
    background: linear-gradient(180deg, var(--h-gradient-start) 0%, var(--h-black) 100%);
}

.h-section-paper {
    position: relative;
    background-color: #F5F0E6;
    color: var(--h-black);
    z-index: 5;
    overflow: visible;
}

.h-section-paper::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('https://historicum.pl/wp-content/uploads/2026/04/noise.png');
    background-repeat: repeat;
    background-size: 256px 256px;
    opacity: 0.055;
    pointer-events: none;
    z-index: 0;
}

.h-section-paper::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at center,
        transparent 35%,
        rgba(150, 120, 80, 0.18) 100%
    );
    pointer-events: none;
    z-index: 0;
}

.h-section-paper > * {
    position: relative;
    z-index: 1;
}

.h-section-paper h1,
.h-section-paper h2,
.h-section-paper h3,
.h-section-paper p {
    color: var(--h-black);
}

.h-title-with-lines .h-h1 {
    background: #F5F0E6;
    position: relative;
    z-index: 2;
}


/* -----------------------------------------
   HERO SECTION - FULL SCREEN
----------------------------------------- */
.h-hero {
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    padding: var(--h-space-xl) var(--h-space-md);
}

.h-hero-content {
    position: relative;
    z-index: 2;
}

.h-hero-images {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.h-hero .h-subtitle {
    margin-bottom: var(--h-space-sm);
}

.h-hero .h-main-title {
    margin-bottom: var(--h-space-sm);
}

.h-hero .h-cta-text {
    margin-top: var(--h-space-md);
}


/* -----------------------------------------
   BUTTONS
----------------------------------------- */
.h-btn {
    display: inline-block;
    font-family: var(--h-font-cinzel);
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 12px 32px;
    border: none;
    cursor: pointer;
    transition: var(--h-transition);
    text-decoration: none;
}

.h-btn-primary {
    background-color: var(--h-accent);
    color: var(--h-black);
}

.h-btn-primary:hover {
    background-color: var(--h-accent-hover);
    transform: translateY(-2px);
    box-shadow: none !important;
}

.h-btn-outline {
    background-color: transparent;
    color: var(--h-accent);
    border: 2px solid var(--h-accent);
}

.h-btn-outline:hover {
    background-color: var(--h-accent);
    color: var(--h-black);
}


/* -----------------------------------------
   PRODUCT CARDS
----------------------------------------- */
.h-product-card {
    background: linear-gradient(180deg, var(--h-gradient-start) 0%, var(--h-black) 100%);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--h-space-sm);
    transition: var(--h-transition);
}

.h-product-card:hover {
    border-color: var(--h-accent);
    transform: translateY(-4px);
    box-shadow: none !important;
}

.h-product-card-image {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    margin-bottom: var(--h-space-sm);
}

.h-product-card-info {
    text-align: center;
}

.h-product-card .h-product-name {
    margin-bottom: var(--h-space-xs);
}

.h-product-card .h-product-reviews {
    margin-bottom: var(--h-space-xs);
}

.h-product-card .h-product-price {
    margin-top: var(--h-space-xs);
}


/* -----------------------------------------
   STAR RATINGS
----------------------------------------- */
.h-stars {
    color: var(--h-accent);
    font-size: 14px;
    letter-spacing: 2px;
}


/* -----------------------------------------
   RESPONSIVE - TABLET
----------------------------------------- */
@media screen and (max-width: 1200px) {
    :root {
        --h-size-main-title: 42px;
        --h-size-h1: 34px;
        --h-size-h2: 30px;
    }
}

@media screen and (max-width: 991px) {
    :root {
        --h-size-main-title: 36px;
        --h-size-h1: 30px;
        --h-size-h2: 26px;
        --h-size-h3: 22px;
    }

    .h-container {
        padding: 0 var(--h-space-sm);
    }

    .h-section {
        padding: var(--h-space-lg) 0;
    }

    .h-hero {
        min-height: auto;
        padding: var(--h-space-xxl) var(--h-space-sm);
    }

    .h-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .h-grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    .h-training-grid {
        grid-template-columns: 1fr;
    }
}

/* -----------------------------------------
   RESPONSIVE - MOBILE
----------------------------------------- */
@media screen and (max-width: 767px) {
    :root {
        --h-size-main-title: 28px;
        --h-size-h1: 24px;
        --h-size-h2: 22px;
        --h-size-h3: 18px;
        --h-size-price: 28px;
        --h-size-body: 15px;
    }

    .h-section {
        padding: var(--h-space-md) 0;
    }

    .h-hero {
        padding: var(--h-space-xl) var(--h-space-sm);
        min-height: 80vh;
    }

    .h-grid-2,
    .h-grid-3,
    .h-grid-4 {
        grid-template-columns: 1fr;
        gap: var(--h-space-sm);
    }

    .h-stats .h-grid-3 {
        grid-template-columns: 1fr;
        gap: var(--h-space-md);
    }

    .h-stat {
        padding: var(--h-space-sm) 0;
    }

    .h-btn {
        width: 100%;
        text-align: center;
        padding: 14px 24px;
    }

    .h-product-card {
        padding: var(--h-space-sm);
    }
}

/* -----------------------------------------
   RESPONSIVE - SMALL MOBILE
----------------------------------------- */
@media screen and (max-width: 480px) {
    :root {
        --h-size-main-title: 24px;
        --h-size-h1: 20px;
        --h-size-h2: 18px;
        --h-size-h3: 16px;
        --h-size-price: 24px;
    }

    .h-container {
        padding: 0 var(--h-space-xs);
    }

    .h-big-number {
        font-size: 36px;
    }
}


/* -----------------------------------------
   ANIMATIONS
----------------------------------------- */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.h-animate-in {
    animation: fadeInUp 0.6s ease forwards;
}

.h-stagger > *:nth-child(1) { animation-delay: 0.1s; }
.h-stagger > *:nth-child(2) { animation-delay: 0.2s; }
.h-stagger > *:nth-child(3) { animation-delay: 0.3s; }
.h-stagger > *:nth-child(4) { animation-delay: 0.4s; }
.h-stagger > *:nth-child(5) { animation-delay: 0.5s; }
.h-stagger > *:nth-child(6) { animation-delay: 0.6s; }


/* -----------------------------------------
   UTILITY CLASSES
----------------------------------------- */
.h-text-center { text-align: center; }
.h-text-left { text-align: left; }
.h-text-right { text-align: right; }

.h-text-accent { color: var(--h-accent); }
.h-text-white { color: var(--h-white); }
.h-text-black { color: var(--h-black); }

.h-bg-black { background-color: var(--h-black); }
.h-bg-paper { background-color: var(--h-paper); }

.h-mt-sm { margin-top: var(--h-space-sm); }
.h-mt-md { margin-top: var(--h-space-md); }
.h-mt-lg { margin-top: var(--h-space-lg); }

.h-mb-sm { margin-bottom: var(--h-space-sm); }
.h-mb-md { margin-bottom: var(--h-space-md); }
.h-mb-lg { margin-bottom: var(--h-space-lg); }

.h-py-sm { padding-top: var(--h-space-sm); padding-bottom: var(--h-space-sm); }
.h-py-md { padding-top: var(--h-space-md); padding-bottom: var(--h-space-md); }
.h-py-lg { padding-top: var(--h-space-lg); padding-bottom: var(--h-space-lg); }


/* -----------------------------------------
   FLEXBOX & GRID HELPERS
----------------------------------------- */
.h-flex {
    display: flex;
}

.h-flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.h-flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.h-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--h-space-md);
}

.h-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--h-space-md);
}

.h-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--h-space-md);
}

@media screen and (max-width: 991px) {
    .h-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 576px) {
    .h-grid-2,
    .h-grid-3,
    .h-grid-4 {
        grid-template-columns: 1fr;
    }
}

/* Hide default shop page wrapper */
body.woocommerce .site-main > .page-header,
body.woocommerce .site-main > .entry-header,
body.post-type-archive-product .botiga-page-header,
body.tax-product_cat .botiga-page-header {
    display: none !important;
}

body.post-type-archive-product .site-main,
body.tax-product_cat .site-main {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.post-type-archive-product .content-wrapper,
body.tax-product_cat .content-wrapper {
    max-width: 100% !important;
    padding: 0 !important;
}

body.post-type-archive-product .entry-content,
body.tax-product_cat .entry-content {
    background: none !important;
    padding: 0 !important;
    max-width: 100% !important;
}


/* ===========================================
   GLOBAL CARD SHADOW SYSTEM
   =========================================== */
.h-noise-shadow {
    position: relative;
    isolation: isolate;
    overflow: visible;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24) !important;
    --h-noise-shadow-inset: -42px;
    --h-noise-shadow-opacity: 1;
    --h-noise-shadow-radius: 12px;
}

.h-noise-shadow::after {
    content: "";
    position: absolute;
    inset: var(--h-noise-shadow-inset);
    z-index: 0;
    pointer-events: none;
    border-radius: var(--h-noise-shadow-radius);
    background-image: var(--h-noise-shadow-image), var(--h-noise-shadow-image);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
    opacity: var(--h-noise-shadow-opacity);
    mix-blend-mode: multiply;
    display: none;
}

.h-noise-shadow > * {
    position: relative;
    z-index: 1;
}

:where(
    .h-training-image,
    .h-product-card,
    .h-bs-slide,
    .h-ws-cell,
    .h-ss-cell,
    .h-blog-slide,
    .h-shop-product-card,
    .h-testimonial-card,
    .h-contact-card,
    .h-cart-item,
    .h-cart-totals,
    .h-featured-image,
    .h-blog-card,
    .h-faq-item,
    .h-value-card,
    .h-feature-card,
    .h-company-card,
    .h-key-point-card,
    .h-product-req-card,
    .h-tip-card,
    .h-rule-card,
    .h-achievement,
    .historicum-product-review-card,
    body.single-product .woocommerce-tabs,
    body.single-product .historicum-product-reviews
) {
    position: relative;
    isolation: isolate;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24) !important;
    --h-noise-shadow-inset: -42px;
    --h-noise-shadow-opacity: 1;
    --h-noise-shadow-radius: 12px;
}

:where(
    .h-training-image,
    .h-product-card,
    .h-bs-slide,
    .h-ws-cell,
    .h-ss-cell,
    .h-blog-slide,
    .h-shop-product-card,
    .h-testimonial-card,
    .h-contact-card,
    .h-cart-item,
    .h-cart-totals,
    .h-featured-image,
    .h-blog-card,
    .h-faq-item,
    .h-value-card,
    .h-feature-card,
    .h-company-card,
    .h-key-point-card,
    .h-product-req-card,
    .h-tip-card,
    .h-rule-card,
    .h-achievement,
    .historicum-product-review-card,
    body.single-product .woocommerce-tabs,
    body.single-product .historicum-product-reviews
)::after {
    content: "";
    position: absolute;
    inset: var(--h-noise-shadow-inset);
    z-index: 0;
    pointer-events: none;
    border-radius: var(--h-noise-shadow-radius);
    background-image: var(--h-noise-shadow-image), var(--h-noise-shadow-image);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
    opacity: var(--h-noise-shadow-opacity);
    mix-blend-mode: multiply;
    display: none;
}

:where(
    .h-training-image,
    .h-product-card,
    .h-bs-slide,
    .h-ws-cell,
    .h-ss-cell,
    .h-blog-slide,
    .h-shop-product-card,
    .h-testimonial-card,
    .h-contact-card,
    .h-cart-item,
    .h-cart-totals,
    .h-featured-image,
    .h-blog-card,
    .h-faq-item,
    .h-value-card,
    .h-feature-card,
    .h-company-card,
    .h-key-point-card,
    .h-product-req-card,
    .h-tip-card,
    .h-rule-card,
    .h-achievement,
    .historicum-product-review-card,
    body.single-product .woocommerce-tabs,
    body.single-product .historicum-product-reviews
) > * {
    position: relative;
    z-index: 1;
}

:where(
    .h-bs-card,
    .h-ws-card,
    .h-ss-card,
    .h-shop-ws-card,
    .h-product-card,
    .h-blog-card,
    .h-testimonial-card,
    .h-contact-card,
    .h-cart-item,
    .h-cart-totals,
    .h-value-card,
    .h-feature-card,
    .h-company-card,
    .h-key-point-card,
    .h-product-req-card,
    .h-tip-card,
    .h-rule-card,
    .h-achievement,
    .historicum-product-review-card,
    body.single-product div.product,
    body.single-product .woocommerce-tabs,
    body.single-product .historicum-product-reviews,
    .historicum-review-paper
) {
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24) !important;
}

:where(
    .h-bs-card,
    .h-ws-card,
    .h-ss-card,
    .h-shop-ws-card,
    .h-product-card,
    .h-blog-card,
    .h-testimonial-card,
    .h-contact-card,
    .h-cart-item,
    .h-cart-totals,
    .h-value-card,
    .h-feature-card,
    .h-company-card,
    .h-key-point-card,
    .h-product-req-card,
    .h-tip-card,
    .h-rule-card,
    .h-achievement,
    .historicum-product-review-card,
    body.single-product div.product,
    body.single-product .woocommerce-tabs,
    body.single-product .historicum-product-reviews,
    .historicum-review-paper
):hover {
    box-shadow: 0 22px 42px rgba(0, 0, 0, 0.3) !important;
}

body.single-product div.product,
.historicum-review-paper {
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24) !important;
}

/* -----------------------------------------
   GLOBAL DEPTH GRADIENT (DARK SURFACES)
----------------------------------------- */
:where(
    .h-bs-card,
    .h-ws-card,
    .h-ss-card,
    .h-shop-ws-card,
    .h-product-card,
    .h-blog-card,
    .h-testimonial-card,
    .h-contact-card,
    .h-value-card,
    .h-feature-card,
    .h-company-card,
    .h-key-point-card,
    .h-product-req-card,
    .h-tip-card,
    .h-rule-card,
    .h-achievement,
    .historicum-product-review-card
) {
    background-image:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.05) 0%,
            rgba(76, 76, 76, 0.26) 38%,
            rgba(34, 34, 34, 0.34) 68%,
            rgba(13, 13, 13, 0.5) 100%
        ),
        linear-gradient(
            135deg,
            rgba(88, 88, 88, 0.16) 0%,
            rgba(22, 22, 22, 0.2) 55%,
            rgba(8, 8, 8, 0.22) 100%
        ) !important;
    background-blend-mode: multiply, multiply !important;
    border-color: rgba(104, 104, 104, 0.32) !important;
}

/* -----------------------------------------
   Paper Grain Texture For Light Surfaces
----------------------------------------- */
:where(
    .h-paper-content,
    .h-contact-form,
    .h-measurement-warning,
    .h-faq-item,
    .h-blog-card,
    .h-contact-card,
    .h-value-card,
    .h-feature-card
) {
    position: relative;
    overflow: visible;
}

:where(
    .h-paper-content,
    .h-contact-form,
    .h-measurement-warning,
    .h-faq-item,
    .h-blog-card,
    .h-contact-card,
    .h-value-card,
    .h-feature-card
)::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url('https://historicum.pl/wp-content/uploads/2026/04/noise.png');
    background-repeat: repeat;
    background-size: 256px 256px;
    opacity: 0.055;
}

:where(
    .h-paper-content,
    .h-contact-form,
    .h-measurement-warning,
    .h-faq-item,
    .h-blog-card,
    .h-contact-card,
    .h-value-card,
    .h-feature-card
)::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(
        ellipse at center,
        transparent 35%,
        rgba(150, 120, 80, 0.18) 100%
    );
}

:where(
    .h-paper-content,
    .h-contact-form,
    .h-measurement-warning,
    .h-faq-item,
    .h-blog-card,
    .h-contact-card,
    .h-value-card,
    .h-feature-card
) > * {
    position: relative;
    z-index: 1;
}

/* --- Mobile footer social alignment --- */
@media screen and (max-width: 820px) {
    .h-site-footer-panel-right {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
        align-items: center !important;
    }

    .h-site-footer-social {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
    }

    .h-site-footer-social h2 {
        text-align: center !important;
    }

    .h-site-footer-social-links {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 12px !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .h-site-footer-nav-right {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 12px !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
    }
}

/* Mobile cookie compliance popup: keep plugin UI inside the viewport. */
@media screen and (max-width: 767px) {
    .cmplz-cookiebanner,
    .cmplz-cookiebanner.cmplz-show,
    .cmplz-cookiebanner.cmplz-bottom,
    .cmplz-cookiebanner.cmplz-left,
    .cmplz-cookiebanner.cmplz-right {
        right: 12px !important;
        bottom: 12px !important;
        left: 12px !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - 24px) !important;
        padding: 16px !important;
        overflow: auto !important;
        border-radius: 10px !important;
        transform: none !important;
    }

    .cmplz-cookiebanner .cmplz-header,
    .cmplz-cookiebanner .cmplz-body,
    .cmplz-cookiebanner .cmplz-categories,
    .cmplz-cookiebanner .cmplz-buttons {
        width: 100% !important;
        max-width: 100% !important;
    }

    .cmplz-cookiebanner .cmplz-title {
        font-size: 17px !important;
        line-height: 1.2 !important;
    }

    .cmplz-cookiebanner .cmplz-message,
    .cmplz-cookiebanner .cmplz-category,
    .cmplz-cookiebanner .cmplz-description {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    .cmplz-cookiebanner .cmplz-buttons {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-top: 14px !important;
    }

    .cmplz-cookiebanner .cmplz-btn {
        width: 100% !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 10px 14px !important;
        white-space: normal !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
    }

    #cmplz-manage-consent {
        right: 12px !important;
        bottom: 12px !important;
        left: auto !important;
        max-width: calc(100vw - 24px) !important;
    }
}
