/*
Theme Name: Foghart Theme
Theme URI: https://foghart.com
Description: Custom theme pre Foghart eshop
Version: 2.9
Author: Adam Orlovsky
Text Domain: foghart-theme
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/* ===========================
   FONT
   =========================== */
/* FFComma font — file not available, remove @font-face to avoid 404 */

/* ===========================
   BASE RESET
   =========================== */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Courier New', Courier, monospace;
}

:root {
    --fog-black: #1a1a1a;
    --fog-red:   #e07070;
    --fog-line:  #b8cfe8;
    --fog-paper: #f9f7f0;
    --font-main: 'FFComma', cursive;
    --font-hand: 'Caveat', cursive;
}

/* ===========================
   FRONTPAGE — New Design 2026
   =========================== */

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

body.foghart-frontpage {
    margin: 0;
    padding: 0;
    background: #000;
    overflow-y: auto;
    font-family: 'Courier New', Courier, monospace;
}

/* Hide WP chrome */
body.foghart-frontpage .site-header,
body.foghart-frontpage #masthead,
body.foghart-frontpage .main-header-bar,
body.foghart-frontpage .site-footer,
body.foghart-frontpage #colophon,
body.foghart-frontpage .wp-site-blocks > header,
body.foghart-frontpage .wp-site-blocks > footer {
    display: none !important;
}

/* ── Single centered wrapper — content + footer share exact same width ── */
.fg-page {
    width: 1332px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

/* ── Vertically centered main area — fills viewport, footer below fold ── */
.fg-main {
    height: 100vh;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

/* ── Content block — full width of fg-page ── */
.fg-block {
    width: 100%;
    position: relative;
}

/* ── Row 1: Logos (+20%) ── */
.fg-logos {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 566px;
    margin-bottom: 27px;
}

.fg-logo-link {
    display: block;
    line-height: 0;
    text-decoration: none;
}

.fg-logo1 {
    width: 60px;
    height: 39px;
    object-fit: contain;
    display: block;
}

.fg-logo2 {
    width: 112px;
    height: 39px;
    object-fit: contain;
    display: block;
}

/* ── Row 2: Green ticker banner (+20%) ── */
.fg-ticker-wrap {
    width: 566px;
    height: 22px;
    overflow: hidden;
    display: flex;
    align-items: center;
    background: #00B140;
    margin-bottom: 27px;
}

.fg-ticker {
    display: flex;
    white-space: nowrap;
    animation: fg-ticker-scroll 22s linear infinite;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13.5px;
    letter-spacing: 0.04em;
    will-change: transform;
}

.fg-ticker--black { color: #000; }
.fg-ticker--white { color: #fff; }

@keyframes fg-ticker-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* ── Row 3: Nav (left) only — photo is absolutely positioned ── */
.fg-row {
    display: block;
}

/* Left column: 359.5px (+20%), height = photo height minus offset */
.fg-left {
    width: 449px;
    height: 547px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-right: 30px;
}

/* Photo: absolutely positioned flush with logos top, right-aligned */
.fg-right {
    position: absolute;
    top: 0;
    right: 0;
    height: min(662px, calc(100vh - 200px));
    width: auto;
}

.fg-photo {
    height: 100%;
    width: auto;
    display: block;
    object-fit: contain;
}


/* ── Navigation ── */
.fg-nav {
    display: flex;
    flex-direction: column;
    padding-top: 12px;
}

.fg-link {
    display: inline-block;
    width: fit-content;
    font-family: 'Courier New', Courier, monospace;
    font-weight: normal;
    font-size: 22px;
    color: #fff;
    text-decoration: none;
    letter-spacing: 0.01em;
    line-height: 1.72;
    position: relative;
    transition: color 0.15s ease;
}

/* Hover: thin green rectangle — height follows text, not line-height */
.fg-link::after {
    display: none;
}

.fg-link::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1.15em;
    transform: translateY(-50%);
    background: transparent;
    z-index: -1;
    transition: background 0.15s ease;
}

.fg-link:hover::before {
    background: #00B140;
}

.fg-link:hover {
    color: #fff;
}

.fg-link--members {
    color: #fff !important;
}

/* ── Social icons (bottom of left col) ── */
.fg-socials {
    display: flex;
    gap: 13px;
    align-items: center;
    padding-bottom: 0;
}

.fg-social-link {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    display: flex;
    align-items: center;
    transition: color 0.18s ease;
    line-height: 0;
    transform: scale(1.15);
    transform-origin: center center;
}

.fg-social-link:hover {
    color: rgba(255, 255, 255, 0.9);
}

/* ── Footer ── */
.fg-footer {
    background: #000;
    padding: 80px 0 28px;
    flex-shrink: 0;
}

.fg-footer-inner {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 40px 80px;
    width: 100%;
    align-items: start;
}

.fg-footer-title {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    font-weight: bold;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 8px;
}

.fg-footer-subtitle {
    font-size: 12px;
    color: rgba(255,255,255,0.45);
    margin: 0 0 22px;
    line-height: 1.5;
    font-family: 'Courier New', Courier, monospace;
}

.fg-nl-field {
    border-bottom: 1px solid rgba(255,255,255,0.35);
    margin-bottom: 14px;
    padding-bottom: 2px;
    max-width: 260px;
}

.fg-nl-field input {
    background: none;
    border: none;
    outline: none;
    font-size: 11px;
    font-family: 'Courier New', Courier, monospace;
    color: #fff;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    width: 100%;
    padding: 4px 0;
}

.fg-nl-field input::placeholder {
    color: rgba(255,255,255,0.35);
}

.fg-nl-btn {
    background: #00B140;
    color: #000;
    border: none;
    padding: 10px 22px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    letter-spacing: 0.03em;
    cursor: pointer;
    margin-top: 10px;
    display: inline-block;
    transition: background 0.15s;
}

.fg-nl-btn:hover {
    background: #009933;
}

.fg-nl-consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 11px;
    font-family: 'Courier New', Courier, monospace;
    color: rgba(255, 255, 255, 0.6);
    margin: 10px 0;
    cursor: pointer;
    line-height: 1.4;
}

.fg-nl-consent input[type="checkbox"] {
    width: 14px;
    height: 14px;
    margin-top: 2px;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #00B140;
}

.fg-footer-heading {
    font-family: 'Courier New', Courier, monospace;
    font-size: 12px;
    font-weight: bold;
    color: #fff;
    margin: 0 0 10px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fg-footer-col a + .fg-footer-heading {
    margin-top: 24px;
}

.fg-footer-col a {
    display: block;
    font-family: 'Courier New', Courier, monospace;
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    margin-bottom: 8px;
    transition: color 0.15s;
    letter-spacing: 0.02em;
}

.fg-footer-col a:hover {
    color: #fff;
}

.fg-footer-bottom {
    text-align: center;
    padding: 24px 0 0;
    margin-top: 36px;
}

.fg-footer-bottom span {
    font-family: 'Courier New', Courier, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.3);
    letter-spacing: 0.08em;
}

/* ── Light footer (white bg pages) ── */
.fg-footer.fhl-footer {
    background: #fff;
}

.fg-footer.fhl-footer .fg-footer-title {
    color: #1a1a1a;
}

.fg-footer.fhl-footer .fg-footer-subtitle {
    color: rgba(0,0,0,0.45);
}

.fg-footer.fhl-footer .fg-nl-field {
    border-bottom-color: rgba(0,0,0,0.25);
}

.fg-footer.fhl-footer .fg-nl-field input {
    color: #1a1a1a;
}

.fg-footer.fhl-footer .fg-nl-field input::placeholder {
    color: rgba(0,0,0,0.35);
}

.fg-footer.fhl-footer .fg-nl-btn {
    background: #00B140;
    color: #000;
}

.fg-footer.fhl-footer .fg-nl-btn:hover {
    background: #009933;
}

.fg-footer.fhl-footer .fg-footer-heading {
    color: #1a1a1a;
}

.fg-footer.fhl-footer .fg-footer-col a {
    color: rgba(0,0,0,0.5);
}

.fg-footer.fhl-footer .fg-footer-col a:hover {
    color: #1a1a1a;
}

.fg-footer.fhl-footer .fg-footer-bottom {
    border-top-color: rgba(0,0,0,0.1);
}

.fg-footer.fhl-footer .fg-footer-bottom span {
    color: rgba(0,0,0,0.3);
}


/* ══════════════════════════════════════════════════
   GLOBAL FOOTER RESPONSIVE
   ══════════════════════════════════════════════════ */

@media (max-width: 900px) {
    .fg-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
    .fg-footer-col:first-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 600px) {
    .fg-footer {
        padding: 36px 0 20px;
    }
    .fg-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 24px 16px;
    }
    .fg-footer-col:first-child {
        grid-column: 1 / -1;
    }
    .fg-footer-title {
        font-size: 12px;
    }
    .fg-footer-bottom {
        margin-top: 24px;
        padding: 16px 0 0;
    }
}

/* ══════════════════════════════════════════════════
   FRONTPAGE RESPONSIVE
   ══════════════════════════════════════════════════ */

/* ── All tablets (601px – 1400px): unified layout ── */
/* Image fills right half from top to bottom (like product page).
   Logos + ticker constrained to left column. Nav stacked naturally — no empty gap. */
@media (max-width: 1400px) and (min-width: 601px) {
    body.foghart-frontpage {
        overflow-y: auto;
        height: auto;
        min-height: 100vh;
    }

    .fg-main {
        height: auto;
        min-height: 100vh;
        align-items: flex-start;
        padding-top: clamp(16px, 2vw, 28px);
    }

    /* fg-block: position:relative stays from base — critical for absolute fg-right.
       min-height gives fg-right height:100% a reference to fill. */
    .fg-block {
        width: 100%;
        padding: 0;
        box-sizing: border-box;
        min-height: calc(100vh - 70px);
    }

    /* Logos constrained to left side only */
    .fg-logos {
        width: 46%;
        margin-bottom: clamp(10px, 1.5vw, 18px);
    }

    .fg-logo1 { width: clamp(26px, 3.2vw, 42px); height: auto; }
    .fg-logo2 { width: clamp(48px, 6vw, 78px);   height: auto; }

    /* Ticker constrained to left side only */
    .fg-ticker-wrap {
        width: 46%;
        height: 20px;
        margin-bottom: clamp(10px, 1.5vw, 18px);
    }

    .fg-ticker { font-size: clamp(10px, 1.2vw, 14px); }

    /* fg-row: block — fg-right is absolute (not in flow) */
    .fg-row { display: block; }

    /* Left column: flex column, socials pushed to bottom of image */
    .fg-left {
        width: 46%;
        min-height: calc(100vh - 70px);
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        padding-right: clamp(16px, 2vw, 24px);
    }

    /* Image: absolute, flush with right edge of fg-page content area */
    .fg-right {
        position: absolute;
        top: 0;
        right: 0;
        width: 51%;
        height: 100%;
        max-height: none;
    }

    .fg-photo {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top center;
        display: block;
    }

    .fg-link {
        font-size: clamp(13px, 1.8vw, 20px);
        line-height: 1.75;
    }

    .fg-socials { margin-top: auto; padding-bottom: 0; }

}

/* ── Mobile (≤ 600px): stacked — nav then photo ── */
@media (max-width: 600px) {
    body.foghart-frontpage {
        overflow-y: auto;
        height: auto;
        min-height: 100vh;
    }

    .fg-main {
        position: static;
        height: auto;
        flex-shrink: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        width: 100%;
        min-height: 0;
    }

    .fg-block {
        position: static;
        width: 100%;
        max-width: 100%;
        padding: 16px 0 0;
        box-sizing: border-box;
    }

    .fg-logos {
        width: 100%;
        margin-bottom: 10px;
    }

    .fg-logo1 { width: 30px; height: 20px; }
    .fg-logo2 { width: 56px; height: 20px; }

    .fg-ticker-wrap {
        width: 100%;
        margin-bottom: 10px;
    }

    .fg-row {
        display: flex;
        flex-direction: column;
    }

    .fg-left {
        width: 100%;
        height: auto;
        padding-right: 0;
        padding-bottom: 0;
        justify-content: flex-start;
        gap: 0;
    }

    .fg-right {
        position: static;
        width: 100%;
        height: auto;
        margin-top: 16px;
        margin-bottom: 0;
    }

    .fg-photo {
        width: 100%;
        height: auto;
        object-fit: unset;
        display: block;
    }

    .fg-link { font-size: 15px; line-height: 1.85; }
    .fg-socials { margin-top: 16px; padding-bottom: 20px; }

}

/* ============================================================
   PRODUCT PAGE  (body.fhp-body)
   ============================================================ */

body.fhp-body {
    margin: 0;
    padding: 0;
    background: #fff;
    font-family: 'Courier New', Courier, monospace;
    overflow-x: hidden;
    color: #1a1a1a;
}

/* Hide Astra header / footer on product page */
body.fhp-body .site-header,
body.fhp-body #masthead,
body.fhp-body .main-header-bar,
body.fhp-body .site-footer,
body.fhp-body #colophon,
body.fhp-body .wp-site-blocks > header,
body.fhp-body .wp-site-blocks > footer {
    display: none !important;
}

/* ── Page wrapper ── */
.fhp-page {
    width: 1332px;
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100svh;
    padding: 0 20px;
    box-sizing: border-box;
}

/* ── Header: product name | shop link ── */
.fhp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 70px;
    padding: 0;
    flex-shrink: 0;
}

.fhp-product-name {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: normal;
    color: #1a1a1a;
    margin: 0 0 20px;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.fhp-shop-link {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: normal;
    color: #00B140;
    text-decoration: none;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.fhp-shop-link:hover {
    text-decoration: underline;
}

/* ── Content: two columns ── */
.fhp-content {
    display: flex;
    flex: 1;
    min-height: calc(100vh - 70px);
    gap: 60px;
    align-items: flex-start;
    padding-top: 40px;
    padding-bottom: 80px;
}

/* ── Image column (left, ~55%) ── */
.fhp-img-col {
    flex: 0 0 55%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.fhp-main-img {
    width: 100%;
    max-height: 78vh;
    object-fit: contain;
    display: block;
}

/* ── Info column (right) ── */
.fhp-info-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
    padding-top: 4px;
}

/* ── Description ── */
.fhp-desc {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    line-height: 1.75;
    color: #1a1a1a;
}

.fhp-desc p {
    margin: 0 0 0.5em;
}

.fhp-desc p:last-child {
    margin-bottom: 0;
}

.fhp-desc ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fhp-desc ul li {
    padding-left: 1.4em;
    position: relative;
    margin-bottom: 0.2em;
    line-height: 1.75;
}

.fhp-desc ul li::before {
    content: '•';
    position: absolute;
    left: 0;
}

/* ── Price row ── */
.fhp-price-row {
    display: flex;
    align-items: baseline;
    gap: 20px;
}

.fhp-price {
    font-family: 'Courier New', Courier, monospace;
    font-size: 16px;
    color: #1a1a1a;
}

.fhp-price .woocommerce-Price-amount,
.fhp-price bdi {
    color: #1a1a1a;
}

.fhp-size-charts-link {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    color: #00B140;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    letter-spacing: 0.02em;
    text-decoration: none;
}

.fhp-size-charts-link:hover {
    text-decoration: underline;
}

/* ── Cart form actions ── */
.fhp-actions {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

/* Size select */
.fhp-size-select {
    flex: 1;
    padding: 13px 32px 13px 14px;
    border: 1px solid #ccc;
    background: #f5f5f5;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23555' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    color: #1a1a1a;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    letter-spacing: 0.03em;
    border-radius: 0;
    outline: none;
    min-width: 0;
}

.fhp-size-select:focus {
    border-color: #1a1a1a;
}

/* WooCommerce variation wrapper */
.single_variation_wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    border: none !important;
}

.woocommerce-variation.single_variation {
    display: none !important;
}

.woocommerce-variation-add-to-cart {
    border: none !important;
    flex: 1;
    display: flex;
}

/* Add to bag button */
.fhp-atc-btn {
    flex: 1;
    padding: 13px 14px;
    background: #00B140;
    color: #000;
    border: none;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    letter-spacing: 0.03em;
    cursor: pointer;
    text-align: center;
    border-radius: 0;
    transition: background 0.15s;
    white-space: nowrap;
}

.fhp-atc-btn::before,
.fhp-atc-btn::after {
    display: none !important;
}

.fhp-atc-btn:hover {
    background: #009933;
}

/* Sold out */
.fhp-sold-out-btn {
    flex: 1;
    padding: 13px 14px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    color: #888;
    background: #f0f0f0;
    border: none;
    cursor: not-allowed;
    letter-spacing: 0.03em;
    border-radius: 0;
}

/* WooCommerce helper overrides */
.fhp-cart-form hr,
.variations_form hr {
    display: none !important;
}

/* ── Size chart overlay ── */
.fhp-overlay-bg {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1400;
}

.fhp-overlay-bg.active {
    display: block;
}

.fhp-size-overlay {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    z-index: 1500;
    padding: 48px 40px 40px;
    max-width: 600px;
    width: 92%;
    max-height: 80vh;
    overflow-y: auto;
}

.fhp-size-overlay.active {
    display: block;
}

.fhp-overlay-close {
    position: absolute;
    top: 14px;
    right: 18px;
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: #555;
    line-height: 1;
}

.fhp-size-content {
    font-family: 'Courier New', Courier, monospace;
    font-size: 14px;
    color: #333;
}

/* ── Footer ── */
/* fhp-footer replaced by fg-footer fhl-footer */

/* ══════════════════════════════════════════════════
   PRODUCT PAGE RESPONSIVE
   ══════════════════════════════════════════════════ */

/* ── Tablet (601px – 900px): stack image above info ── */
@media (max-width: 900px) {
    .fhp-header {
        height: 70px;
        padding: 0;
    }

    .fhp-content {
        flex-direction: column;
        gap: 28px;
        padding-top: 28px;
        padding-bottom: 60px;
    }

    .fhp-img-col {
        flex: none;
        width: 100%;
    }

    .fhp-main-img {
        max-height: none;
        width: 100%;
        object-fit: contain;
    }

    .fhp-info-col {
        width: 100%;
        padding-top: 0;
        gap: 20px;
    }
}

/* ── Mobile (≤ 600px) ── */
@media (max-width: 600px) {
    .fhp-page {
        padding: 0 16px;
    }

    .fhp-header {
        height: 54px;
        padding: 0;
        align-items: center;
    }

    .fhp-header .fhs-logos {
        display: none;
    }

    .fhp-product-name {
        font-size: 14px;
        max-width: 65%;
        line-height: 1.4;
    }

    .fhp-shop-link {
        font-size: 22px;
    }

    .fhp-desc {
        font-size: 12px;
    }

    .fhp-price {
        font-size: 15px;
    }

    /* Stack select + button vertically on small screens */
    .fhp-actions {
        flex-direction: column;
        gap: 10px;
    }

    .fhp-size-select {
        width: 100%;
        padding: 14px 32px 14px 14px;
        font-size: 14px;
    }

    .fhp-atc-btn {
        width: 100%;
        padding: 14px;
        font-size: 14px;
    }

    .fhp-sold-out-btn {
        width: 100%;
        padding: 14px;
    }

    /* Footer: 2-column grid on mobile */

}


/* ── Very small screens (≤ 380px) ── */
@media (max-width: 380px) {
    .fhp-product-name {
        font-size: 12px;
    }

    .fhp-desc {
        font-size: 11px;
    }
}

/* placeholder — keep old selector names unused but harmless */
.fhp-back,
.fhp-cart-link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #111;
    text-decoration: none;
    width: 40px;
    height: 40px;
    position: relative;
}

/* ============================================================
   SHOP ARCHIVE PAGE  (body.fhs-body)
   ============================================================ */

body.fhs-body {
    background: #fff;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

.fhs-page {
    width: 1332px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100svh;
}

/* ── Header ── */
.fhs-header {
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    padding: 0;
}

.fhs-logos {
    display: flex;
    align-items: center;
    gap: 14px;
}

.fhs-logos a {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.fhs-logo1 {
    height: 39px;
    width: 60px;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}

.fhs-logo2 {
    height: 39px;
    width: 112px;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}

.fhs-cart-link {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #1a1a1a;
    flex-shrink: 0;
}

.fhs-cart-count {
    font-family: 'Courier New', Courier, monospace;
    font-size: 14px;
    color: #1a1a1a;
    line-height: 1;
    white-space: nowrap;
}

.fhs-cart-icon {
    height: 39px;
    width: 39px;
    object-fit: contain;
    display: block;
}

/* ── Grid outer — fills remaining space, footer below fold ── */
.fhs-grid-outer {
    flex: 1;
    min-height: calc(100vh - 70px);
    min-height: calc(100svh - 70px);
    position: relative;
    overflow: hidden;
}

/* ── Scrollable inner container ── */
.fhs-grid-scroll {
    height: 100%;
    overflow-y: scroll;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.fhs-grid-scroll::-webkit-scrollbar {
    display: none;
}

/* ── Custom scrollbar track + thumb ── */
#fhs-scrolltrack {
    position: absolute;
    right: 4px;
    top: 0;
    bottom: 0;
    width: 3px;
    background: transparent;
    border-radius: 2px;
}

#fhs-scrollthumb {
    position: absolute;
    width: 100%;
    background: rgba(0, 0, 0, 0.35);
    border-radius: 2px;
    cursor: pointer;
    display: none;
}

/* ── 5-column product grid ── */
.fhs-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    padding: 20px 0 0;
    gap: 16px;
}

/* ── Product item ── */
.fhs-item {
    padding: 0;
    contain: layout style;
}

.fhs-item--soldout {
    opacity: 0.35;
}

.fhs-item-link {
    display: block;
    text-decoration: none;
    transition: opacity 0.18s ease;
}

.fhs-item-link:hover {
    opacity: 0.75;
}

.fhs-item img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: contain;
    display: block;
    background: #fff;
}

.fhs-item-info {
    padding: 12px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fhs-item-name {
    font-size: 13px;
    font-family: 'Courier New', Courier, monospace;
    color: #1a1a1a;
    font-weight: 500;
    line-height: 1.4;
    word-wrap: break-word;
}

.fhs-item-price {
    font-size: 9px !important;
    font-family: 'Courier New', Courier, monospace !important;
    color: #000 !important;
    font-weight: normal !important;
}

.fhs-item-price bdi {
    font-weight: normal !important;
    color: #000 !important;
}

.fhs-item-price .woocommerce-price-currency-symbol {
    color: #000 !important;
}

.fhs-empty {
    grid-column: 1 / -1;
    text-align: center;
    font-size: 14px;
    color: #888;
    font-family: 'Courier New', Courier, monospace;
    padding: 80px 0;
}

/* ── Category filter sidebar ── */
.fhs-catfilter {
    position: fixed;
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    z-index: 100;
}

.fhs-catfilter__item {
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    color: #1a1a1a;
    text-decoration: none;
    text-align: right;
    line-height: 1.5;
    transition: opacity 0.15s;
}

.fhs-catfilter__item:hover {
    opacity: 0.5;
}

.fhs-catfilter__item--active {
    font-weight: 700;
}

@media (max-width: 768px) {
    .fhs-catfilter {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 6px 14px;
        padding: 10px 0 4px;
        transform: none;
    }
}

/* ── Footer override — white on shop page ── */
body.fhs-body .fg-footer {
    background: #fff;
}

body.fhs-body .fg-footer .fg-footer-heading,
body.fhs-body .fg-footer .fg-footer-title {
    color: #1a1a1a;
}

body.fhs-body .fg-footer .fg-footer-subtitle {
    color: rgba(0,0,0,0.45);
}

body.fhs-body .fg-footer .fg-nl-field {
    border-bottom-color: rgba(0,0,0,0.25);
}

body.fhs-body .fg-footer .fg-nl-field input {
    color: #1a1a1a;
}

body.fhs-body .fg-footer .fg-nl-field input::placeholder {
    color: rgba(0,0,0,0.35);
}

body.fhs-body .fg-footer .fg-nl-btn {
    background: #00B140;
    color: #000;
}

body.fhs-body .fg-footer .fg-footer-col a {
    color: rgba(0,0,0,0.5);
}

body.fhs-body .fg-footer .fg-footer-col a:hover {
    color: #1a1a1a;
}

body.fhs-body .fg-footer .fg-footer-bottom {
    border-top-color: rgba(0,0,0,0.1);
}

body.fhs-body .fg-footer .fg-footer-bottom span {
    color: rgba(0,0,0,0.3);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .fhs-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .fhs-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    /* On mobile let the page scroll naturally — no inner scroll container */
    .fhs-grid-outer {
        overflow: visible;
        height: auto;
    }

    .fhs-grid-scroll {
        height: auto;
        overflow: visible;
    }

    #fhs-scrolltrack {
        display: none;
    }
}

/* Tablet: logos match frontpage clamp sizes */
@media (max-width: 1400px) and (min-width: 601px) {
    .fhs-logo1 { width: clamp(26px, 3.2vw, 42px); height: auto; }
    .fhs-logo2 { width: clamp(48px, 6vw, 78px);   height: auto; }
}

@media (max-width: 600px) {
    .fhs-page {
        padding: 0 16px;
    }

    .fhs-header {
        height: 54px;
        padding: 0;
    }

    .fhs-logo1 {
        height: 20px;
        width: 30px;
    }

    .fhs-logo2 {
        height: 20px;
        width: 56px;
    }

    .fhs-cart-icon {
        height: 20px;
        width: 20px;
    }

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

/* ============================================================
   LEGAL PAGES  (body.fhl-body)
   ============================================================ */

body.fhl-body {
    background: #fff;
    margin: 0;
    padding: 0;
    -webkit-overflow-scrolling: touch;
}

.fhl-page {
    width: 1332px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ── Header ── */
.fhl-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 70px;
    padding: 0;
    flex-shrink: 0;
}

.fhl-title {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: normal;
    color: #1a1a1a;
    text-transform: lowercase;
    letter-spacing: 0.05em;
    margin: 0;
}

.fhl-shop-link {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: normal;
    color: #00B140;
    text-decoration: none;
    letter-spacing: 0.05em;
    text-transform: lowercase;
}

.fhl-shop-link:hover {
    text-decoration: underline;
}

/* ── Content ── */
.fhl-content {
    flex: 1;
    padding: 40px 0 60px;
    max-width: 1332px;
    width: 100%;
    margin: 0 auto;
    overflow-wrap: break-word;
    word-break: break-word;
    content-visibility: auto;
    contain-intrinsic-size: 0 2000px;
}

.fhl-content p,
.fhl-content li,
.fhl-content td {
    font-family: 'Courier New', Courier, monospace;
    font-size: 12px;
    color: #1a1a1a;
    line-height: 1.7;
    letter-spacing: 0.02em;
}

.fhl-content h2,
.fhl-content h3,
.fhl-content h4 {
    font-family: 'Courier New', Courier, monospace;
    font-weight: normal;
    color: #1a1a1a;
    letter-spacing: 0.05em;
    text-transform: lowercase;
    margin: 40px 0 16px;
}

.fhl-content h2 { font-size: 18px; }
.fhl-content h3 { font-size: 15px; }
.fhl-content h4 { font-size: 13px; }

.fhl-content a {
    color: #00B140;
    text-decoration: none;
}

.fhl-content a:hover {
    text-decoration: underline;
}

/* ── Footer override — fhl-body uses fhl-footer class, handled globally ── */

/* ── Responsive ── */
@media (max-width: 540px) {
    .fhl-header {
        height: 54px;
        padding: 0 16px;
    }

    .fhl-title {
        font-size: 20px;
        padding: 20px 16px 0;
    }

    .fhl-content {
        padding: 28px 16px 40px;
    }
}

/* ============================================================
   LOGIN PAGE  (body.fhl-login-body)
   ============================================================ */

/* Step visibility */
.fhl-step { display: none; }
.fhl-step.active { display: block; }

/* Centered single-column form */
.fhl-login-body-inner {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 0 20px;
    flex: 1;
    min-height: calc(100vh - 70px);
}

.fhl-login-form-col {
    width: 100%;
    max-width: 480px;
    padding-top: 40px;
}

/* Inputs — bordered box */
.fhl-input {
    display: block;
    width: 100%;
    padding: 14px 16px;
    margin-bottom: 14px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    color: #1a1a1a;
    background: transparent;
    border: 1px solid #1a1a1a;
    outline: none;
    letter-spacing: 0.03em;
    border-radius: 0;
    -webkit-appearance: none;
}

.fhl-input::placeholder {
    color: rgba(26,26,26,0.4);
}

.fhl-input:focus {
    border-color: #00B140;
}

/* Links row (register / forgot) */
.fhl-form-links {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 8px 0 20px;
}

.fhl-form-links a {
    font-family: 'Courier New', Courier, monospace;
    font-size: 11px;
    color: rgba(26,26,26,0.5);
    text-decoration: none;
    letter-spacing: 0.03em;
}

.fhl-form-links a:hover {
    color: #1a1a1a;
}

/* Button */
.fhl-btn {
    display: block;
    width: 100%;
    padding: 15px 0;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    font-weight: normal;
    letter-spacing: 0.03em;
    color: #1a1a1a;
    background: #00B140;
    border: none;
    cursor: pointer;
    text-align: center;
    transition: background 0.15s;
}

.fhl-btn:hover:not(:disabled) {
    background: #009933;
}

.fhl-btn:disabled {
    opacity: 0.6;
    cursor: default;
}

.fhl-or {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0;
    color: rgba(0,0,0,0.3);
    font-size: 11px;
    letter-spacing: 0.05em;
}
.fhl-or::before,
.fhl-or::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(0,0,0,0.1);
}

.fhl-btn-google {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 13px 0;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    letter-spacing: 0.03em;
    color: #1a1a1a;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.2);
    cursor: pointer;
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s;
}
.fhl-btn-google:hover {
    border-color: rgba(0,0,0,0.5);
    background: #fafafa;
}

/* Status messages */
.fhl-msg {
    font-family: 'Courier New', Courier, monospace;
    font-size: 11px;
    margin-top: 10px;
    min-height: 16px;
    letter-spacing: 0.03em;
}

.fhl-msg--ok   { color: #00B140; }
.fhl-msg--er   { color: #cc3333; }
.fhl-msg--load { color: rgba(26,26,26,0.5); }

/* Divider */
.fhl-divider {
    border: none;
    border-top: 1px solid #e0e0e0;
    margin: 0 20px;
}

/* Login-specific footer */
body.fhl-login-body .fg-footer {
    background: #fff;
}

body.fhl-login-body .fg-footer a {
    color: rgba(0,0,0,0.4);
}

body.fhl-login-body .fg-footer a:hover {
    color: rgba(0,0,0,0.8);
}

/* Responsive login */
@media (max-width: 540px) {
    .fhl-login-body-inner {
        padding: 0 16px;
    }

    .fhl-login-form-col {
        padding-top: 24px;
    }
}

/* ============================================================
   LOOKBOOK PAGE  (body.flb-body)
   ============================================================ */

body.flb-body {
    background: #000;
    margin: 0;
    padding: 0;
    font-family: 'Courier New', Courier, monospace;
}

body.flb-body .site-header,
body.flb-body #masthead,
body.flb-body .main-header-bar,
body.flb-body .site-footer,
body.flb-body #colophon,
body.flb-body .wp-site-blocks > header,
body.flb-body .wp-site-blocks > footer {
    display: none !important;
}

.flb-page {
    width: 1332px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ── Header ── */
.flb-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 70px;
    padding: 0;
    flex-shrink: 0;
}

.flb-logos {
    display: flex;
    align-items: center;
    gap: 14px;
}

.flb-shop-link {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: normal;
    color: #00B140;
    text-decoration: none;
    letter-spacing: 0.02em;
}

/* ── Ticker (reuse existing fg-ticker) ── */
.flb-ticker {
    flex-shrink: 0;
}

/* ── Page title ── */
.flb-title-row {
    max-width: 1332px;
    width: 100%;
    margin: 0 auto;
    padding: 28px 20px 20px;
    box-sizing: border-box;
}

.flb-title {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: normal;
    color: #fff;
    letter-spacing: 0.04em;
    text-transform: lowercase;
}

/* ── Main content area ── */
.flb-main {
    flex: 1;
    min-height: calc(100vh - 70px);
    padding-top: 40px;
    padding-bottom: 60px;
}

/* ── Photo grid (masonry columns) ── */
.flb-grid {
    columns: 6 140px;
    column-gap: 3px;
    padding: 0 3px;
}

.flb-item {
    break-inside: avoid;
    margin-bottom: 3px;
    cursor: zoom-in;
    overflow: hidden;
}

.flb-item img {
    width: 100%;
    display: block;
    transition: transform 0.3s ease;
}

.flb-item:hover img {
    transform: scale(1.03);
}

/* ── Empty state ── */
.flb-empty {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    color: rgba(255,255,255,0.4);
    text-align: center;
    padding: 80px 20px;
    letter-spacing: 0.04em;
}

/* ── Lightbox ── */
.flb-lb {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.94);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}

.flb-lb.active {
    display: flex;
}

.flb-lb-img-wrap {
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.flb-lb-img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    display: block;
}

.flb-lb-close,
.flb-lb-prev,
.flb-lb-next {
    position: fixed;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    font-family: 'Courier New', Courier, monospace;
    padding: 12px;
    z-index: 10000;
    transition: color 0.15s;
}

.flb-lb-close {
    top: 20px;
    right: 24px;
    font-size: 22px;
}

.flb-lb-prev {
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 52px;
    line-height: 1;
}

.flb-lb-next {
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 52px;
    line-height: 1;
}

.flb-lb-close:hover,
.flb-lb-prev:hover,
.flb-lb-next:hover {
    color: #00B140;
}

/* ── Cart count on lookbook (dark bg) ── */
body.flb-body .fhs-cart-count {
    color: #fff;
}

/* ── Footer on lookbook ── */
body.flb-body .fg-footer {
    background: #000;
    margin: 0 -20px;
    padding-left: 20px;
    padding-right: 20px;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .flb-grid {
        columns: 4 120px;
    }
}

@media (max-width: 768px) {
    .flb-grid {
        columns: 3 100px;
    }
}

@media (max-width: 600px) {
    .flb-header {
        height: 56px;
        padding: 0 14px;
    }
    .flb-logos {
        gap: 10px;
    }
    .flb-nav {
        gap: 16px;
    }
    .flb-nav a {
        font-size: 12px;
    }
    .flb-grid {
        columns: 2 100px;
        column-gap: 2px;
        padding: 0 2px;
    }
    .flb-item {
        margin-bottom: 2px;
    }
    .flb-title {
        font-size: 18px;
    }
    .flb-lb-prev {
        left: 4px;
        font-size: 36px;
    }
    .flb-lb-next {
        right: 4px;
        font-size: 36px;
    }
}

/* ============================================================
   CART PAGE  (body.woocommerce-cart)
   ============================================================ */

body.woocommerce-cart {
    background: #fff;
    font-family: 'Courier New', Courier, monospace;
    color: #1a1a1a;
}

/* Hide Astra chrome */
body.woocommerce-cart .site-header,
body.woocommerce-cart #masthead,
body.woocommerce-cart .main-header-bar,
body.woocommerce-cart .site-footer,
body.woocommerce-cart #colophon,
body.woocommerce-cart .wp-site-blocks > header,
body.woocommerce-cart .wp-site-blocks > footer,
body.woocommerce-cart .ast-breadcrumbs-wrapper,
body.woocommerce-cart .ast-below-header-section {
    display: none !important;
}

/* Break out of Astra container constraints */
body.woocommerce-cart #page,
body.woocommerce-cart #content,
body.woocommerce-cart .site-content,
body.woocommerce-cart #primary,
body.woocommerce-cart .site-primary,
body.woocommerce-cart .content-area,
body.woocommerce-cart main,
body.woocommerce-cart article,
body.woocommerce-cart .entry,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .ast-article-single,
body.woocommerce-cart .ast-container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    display: block !important;
}

/* WC notices styling */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .woocommerce-info {
    list-style: none !important;
    padding: 10px 48px !important;
    margin: 0 !important;
    font-size: 12px !important;
    font-weight: normal !important;
    font-family: 'Courier New', Courier, monospace !important;
    letter-spacing: 0.04em !important;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: 1px solid rgba(0,0,0,0.07) !important;
    background: #fff !important;
    color: rgba(0,0,0,0.45) !important;
    box-shadow: none !important;
}
body.woocommerce-cart .woocommerce-error { color: #c0392b !important; }
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before { display: none !important; }
body.woocommerce-cart .woocommerce-message a,
body.woocommerce-cart .woocommerce-info a {
    color: #1a1a1a !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(0,0,0,0.3) !important;
    font-size: 12px !important;
    margin-right: 12px !important;
    float: none !important;
}
body.woocommerce-cart .woocommerce-message a:hover,
body.woocommerce-cart .woocommerce-info a:hover { border-bottom-color: #1a1a1a !important; }
body.woocommerce-cart .woocommerce-notices-wrapper { margin: 0 !important; }

/* ── Page wrapper ── */
.fhc-page {
    padding: 40px 20px 80px;
    min-height: 100vh;
}

/* ── Logo bar ── */
.fhc-logo-bar {
    display: flex;
    justify-content: center;
    padding: 24px 0 36px;
}
.fhc-logo-bar img {
    height: 52px;
    width: auto;
    display: block;
}

/* ── Empty state ── */
.fhc-empty-state {
    text-align: center;
    padding: 60px 0;
}

/* ── Two-column layout ── */
.fhc-layout {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 80px;
    align-items: start;
}

/* ── Shared headings ── */
.fhc-heading {
    font-size: clamp(28px, 3.5vw, 48px);
    font-weight: 900;
    letter-spacing: -0.5px;
    line-height: 1.0;
    text-transform: uppercase;
    color: #000;
    margin-bottom: 14px;
}

.fhc-summary-heading {
    font-size: clamp(28px, 3.5vw, 48px);
    font-weight: 900;
    letter-spacing: -0.5px;
    line-height: 1.0;
    text-transform: uppercase;
    color: #000;
    margin-bottom: 14px;
}

/* ── Divider ── */
.fhc-divider {
    border: none;
    border-top: 1px solid #000;
    margin: 0 0 0 0;
}
.fhc-divider--spaced {
    margin-top: 16px;
}

/* ── Products label ── */
.fhc-products-label {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #000;
    padding: 14px 0 12px;
}

/* ── Cart item ── */
.fhc-item {
    display: grid;
    grid-template-columns: 88px 1fr auto auto 24px;
    gap: 20px;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid #eee;
}

.fhc-item-img {
    width: 88px;
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.fhc-item-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.fhc-item-img a {
    display: block;
    width: 100%;
    height: 100%;
}

.fhc-item-name {
    font-size: 13px;
    font-weight: 700;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.3;
}
.fhc-item-name a {
    color: #000;
    text-decoration: none;
}
.fhc-item-name a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fhc-item-var {
    font-size: 11px;
    color: #888;
    margin-top: 5px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ── Quantity control ── */
.fhc-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #000;
}
.fhc-qty-btn {
    width: 30px;
    height: 30px;
    background: none;
    border: none;
    font-size: 15px;
    cursor: pointer;
    color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
    flex-shrink: 0;
}
.fhc-qty-btn:hover {
    background: #f5f5f5;
}
.fhc-qty-input {
    width: 38px;
    height: 30px;
    border: none;
    border-left: 1px solid #000;
    border-right: 1px solid #000;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    color: #000;
    background: #fff;
    outline: none;
    -moz-appearance: textfield;
    font-family: inherit;
}
.fhc-qty-input::-webkit-outer-spin-button,
.fhc-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ── Item price ── */
.fhc-item-price {
    font-size: 13px;
    font-weight: 700;
    color: #000;
    white-space: nowrap;
    text-align: right;
}

/* ── Remove ── */
.fhc-item-remove {
    font-size: 18px;
    color: #ccc;
    text-decoration: none;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 300;
    transition: color 0.1s;
}
.fhc-item-remove:hover {
    color: #000;
}

/* ── Update bag button ── */
.fhc-form-actions {
    display: flex;
    justify-content: flex-end;
    padding: 14px 0 0;
}
.fhc-update-btn {
    font-size: 13px;
    font-weight: normal;
    letter-spacing: 0.03em;
    color: #bbb;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.1s;
    pointer-events: none;
}
.fhc-update-btn--visible {
    color: #000;
    pointer-events: auto;
}
.fhc-update-btn--visible:hover {
    color: #555;
}

/* ── Summary right column ── */
.fhc-right {
    position: sticky;
    top: 24px;
}

/* ── Coupon ── */
.fhc-coupon-label {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #000;
    margin: 16px 0 10px;
}
.fhc-coupon-form {
    display: flex;
    margin-bottom: 12px;
}
.fhc-coupon-input {
    flex: 1;
    padding: 11px 14px;
    font-size: 14px;
    font-family: inherit;
    border: 1px solid #000;
    border-right: none;
    outline: none;
    color: #000;
    background: #fff;
    border-radius: 0;
}
.fhc-coupon-input:focus {
    border-left-width: 2px;
}
.fhc-coupon-btn {
    padding: 11px 20px;
    font-size: 13px;
    font-weight: normal;
    letter-spacing: 0.03em;
    color: #fff;
    background: #000;
    border: 1px solid #000;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    transition: background 0.12s;
}
.fhc-coupon-btn:hover {
    background: #333;
}

.fhc-applied-coupon {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 700;
    color: #27ae60;
    margin-bottom: 6px;
}
.fhc-remove-coupon {
    font-size: 18px;
    color: #bbb;
    text-decoration: none;
    line-height: 1;
    font-weight: 300;
}
.fhc-remove-coupon:hover {
    color: #000;
}

/* ── Totals ── */
.fhc-total-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 10px 0;
}
.fhc-total-label {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #000;
}
.fhc-total-val {
    font-size: 13px;
    font-weight: 700;
    color: #000;
}
.fhc-free {
    color: #27ae60;
    font-weight: 700;
}

/* Subtotal row — big */
.fhc-subtotal-row {
    padding: 16px 0 8px;
}
.fhc-subtotal-label {
    font-size: clamp(20px, 2.5vw, 32px);
    font-weight: 900;
    letter-spacing: -0.3px;
    text-transform: uppercase;
    color: #000;
    line-height: 1;
}
.fhc-subtotal-val {
    font-size: clamp(18px, 2vw, 26px);
    font-weight: 900;
    color: #000;
}

/* Estimated total row */
.fhc-est-row {
    padding: 14px 0;
}
.fhc-est-label {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #000;
}
.fhc-est-val {
    font-size: 15px;
    font-weight: 900;
    color: #000;
}

/* ── Checkout button ── */
.fhc-checkout-btn {
    display: block;
    width: 100%;
    padding: 16px;
    margin-top: 20px;
    font-size: 13px;
    font-weight: normal;
    letter-spacing: 0.03em;
    color: #fff;
    background: #000;
    border: none;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    font-family: 'Courier New', Courier, monospace;
    transition: background 0.12s;
}
.fhc-checkout-btn:hover {
    background: #333;
    color: #fff;
}
.fhc-checkout-btn--inline {
    display: inline-block;
    width: auto;
    padding: 14px 40px;
    margin-top: 28px;
}

/* ── Cart responsive ── */
@media (max-width: 900px) {
    .fhc-page {
        padding: 0 20px 60px;
    }
    .fhc-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .fhc-right {
        position: static;
    }
    body.woocommerce-cart .woocommerce-message,
    body.woocommerce-cart .woocommerce-error,
    body.woocommerce-cart .woocommerce-info {
        margin: 0 20px 12px;
    }
}

@media (max-width: 600px) {
    .fhc-item {
        grid-template-columns: 72px 1fr 24px;
        grid-template-rows: auto auto;
        gap: 12px;
        padding: 16px 0;
    }
    .fhc-item-img {
        width: 72px;
        height: 72px;
    }
    .fhc-item-meta {
        grid-column: 2;
    }
    .fhc-item-remove {
        grid-column: 3;
        grid-row: 1;
        align-self: start;
    }
    .fhc-item-qty-wrap {
        grid-column: 2;
        grid-row: 2;
    }
    .fhc-item-price {
        grid-column: 3;
        grid-row: 2;
        align-self: center;
        text-align: right;
    }
}

/* ============================================================
   JOIN THE FAMILY PAGE
   ============================================================ */

.fgf-status-msg {
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    color: #1a1a1a;
    line-height: 1.5;
}


/* VIP gold logo */
.fg-logo2--vip {
    filter: brightness(0) saturate(100%) invert(74%) sepia(58%) saturate(500%) hue-rotate(3deg) brightness(90%);
}

/* ============================================================
   COOKIE BANNER
   ============================================================ */

#fg-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 99999;
    background: #1a1a1a;
    color: #fff;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    line-height: 1.5;
    transform: translateY(100%);
    transition: transform 0.35s ease;
    will-change: transform;
    contain: layout style;
}

#fg-cookie-banner.fg-cookie--visible {
    transform: translateY(0);
}

#fg-cookie-banner p {
    margin: 0;
    flex: 1;
}

#fg-cookie-banner a {
    color: #00B140;
    text-decoration: underline;
}

#fg-cookie-accept {
    background: #00B140;
    color: #1a1a1a;
    border: none;
    padding: 10px 22px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    letter-spacing: 0.03em;
}

#fg-cookie-accept:hover {
    background: #009933;
}

@media (max-width: 600px) {
    #fg-cookie-banner {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        padding: 20px 18px;
    }

    #fg-cookie-accept {
        width: 100%;
        text-align: center;
        padding: 12px;
    }
}

/* ===========================
   404 PAGE
   =========================== */

body.foghart-404 {
    margin: 0;
    padding: 0;
    background: #000;
    font-family: 'Courier New', Courier, monospace;
}

body.foghart-404 .site-header,
body.foghart-404 #masthead,
body.foghart-404 .main-header-bar,
body.foghart-404 .site-footer,
body.foghart-404 #colophon,
body.foghart-404 .wp-site-blocks > header,
body.foghart-404 .wp-site-blocks > footer {
    display: none !important;
}

.fh404-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
    padding-top: 12px;
    text-align: left;
}

.fh404-code {
    font-family: 'Courier New', Courier, monospace;
    font-size: 120px;
    color: #00B140;
    line-height: 1;
    letter-spacing: -0.02em;
    margin: 0;
}

.fh404-msg {
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.7;
    margin: 0;
    letter-spacing: 0.02em;
}

.fh404-nav {
    display: flex;
    flex-direction: column;
}

@media (max-width: 767px) {
    .fh404-code {
        font-size: 72px;
    }
}

@media (max-width: 600px) {
    .fh404-code {
        font-size: 48px;
    }
    .fh404-msg {
        font-size: 13px;
    }
}

@media (max-width: 380px) {
    .fh404-code {
        font-size: 36px;
    }
}

/* ── Global shop link — consistent across all pages ── */
.fhl-shop-link,
.fhc-shop-link,
.fhco-shop-link,
.fhp-shop-link,
.flb-shop-link {
    font-size: 22px !important;
}

@media (max-width: 540px) {
    .fhl-shop-link,
    .fhc-shop-link,
    .fhco-shop-link,
    .fhp-shop-link,
    .flb-shop-link {
        font-size: 20px !important;
    }
}

.fhl-shop-link,
.fhc-shop-link,
.fhco-shop-link,
.fhp-shop-link,
.flb-shop-link {
    color: #00B140 !important;
    text-decoration: none !important;
    letter-spacing: .04em !important;
    font-weight: normal !important;
    border: none !important;
    border-bottom: none !important;
    transition: opacity .15s !important;
}
.fhl-shop-link:hover,
.fhc-shop-link:hover,
.fhco-shop-link:hover,
.fhp-shop-link:hover,
.flb-shop-link:hover {
    opacity: .75 !important;
    text-decoration: none !important;
    border-bottom: none !important;
    color: #00B140 !important;
}


/* Light footer: consent text musí byť čierny aby bolo vidno */
.fg-footer.fhl-footer .fg-nl-consent,
.fg-footer.fhl-footer .fg-nl-consent span {
    color: #1a1a1a;
}

.fg-footer.fhl-footer .fg-nl-consent input[type="checkbox"] {
    accent-color: #1a1a1a;
}

/* Cart: zladiť continue + checkout buttony na rovnakú veľkosť */
.fhc-btn-group .fhc-continue-btn,
.fhc-btn-group .fhc-checkout-btn {
    width: 100% !important;
    padding: 16px !important;
    margin-top: 0 !important;
    box-sizing: border-box;
    font-size: 13px !important;
    line-height: 1 !important;
    height: auto;
}
