/* ============================================================
   GODDESS & MAKER — Main Stylesheet
   ============================================================ */

/* ------------------------------------------------------------
   1. DESIGN TOKENS
   ------------------------------------------------------------ */
:root {
    --gm-black:        #0a0a0a;
    --gm-dark:         #1a1714;
    --gm-dark-gray:    #3a3530;
    --gm-mid-gray:     #6b6560;
    --gm-warm-gray:    #c8c2bb;
    --gm-light-gray:   #e4e0db;
    --gm-off-white:    #f0ede8;
    --gm-white:        #f8f6f3;
    --gm-pure-white:   #ffffff;

    --gm-gold:         #c9a96e;
    --gm-gold-light:   #e2ca99;
    --gm-gold-dark:    #a07840;
    --gm-silver:       #a8a8a8;
    --gm-brass:        #b5913a;

    --fg-primary:      var(--gm-black);
    --fg-secondary:    var(--gm-dark-gray);
    --fg-tertiary:     var(--gm-mid-gray);
    --fg-placeholder:  var(--gm-warm-gray);
    --fg-inverse:      var(--gm-white);

    --bg-base:         var(--gm-white);
    --bg-subtle:       var(--gm-off-white);
    --bg-muted:        var(--gm-light-gray);
    --bg-inverse:      var(--gm-black);

    --border-default:  var(--gm-light-gray);
    --border-subtle:   var(--gm-off-white);
    --border-strong:   var(--gm-warm-gray);

    /* Montserrat throughout, italic for editorial hero title */
    --font-display:    'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-ui:         'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-body:       'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;

    --text-hero:       clamp(48px, 7vw, 96px);
    --text-display:    clamp(36px, 5vw, 72px);
    --text-headline:   clamp(28px, 3.5vw, 48px);
    --text-subhead:    clamp(22px, 2.5vw, 32px);
    --text-lg: 20px;  --text-base: 17px;  --text-sm: 15px;  --text-xs: 13px;
    --text-label-lg: 13px; --text-label: 11px; --text-label-sm: 10px;

    --lh-display: 1.05; --lh-headline: 1.15; --lh-body: 1.65; --lh-ui: 1.4;
    --ls-tight: -0.02em; --ls-normal: 0; --ls-wide: 0.08em; --ls-wider: 0.15em; --ls-widest: 0.25em;
    --fw-light: 300; --fw-regular: 400; --fw-medium: 500; --fw-semibold: 600;

    --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
    --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;
    --space-20:80px; --space-24:96px; --space-32:128px;

    --container-max: 1440px;
    --container-pad: clamp(20px, 4vw, 48px);
    --header-height: 200px;
    --logo-height:   180px;

    --duration-fast: 200ms; --duration-base: 350ms; --duration-slow: 500ms;
    --ease-default:  cubic-bezier(0.4, 0, 0.2, 1);
}

/* ------------------------------------------------------------
   2. RESET / BASE
   ------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--text-base);
    font-weight: var(--fw-light);
    line-height: var(--lh-body);
    color: var(--fg-secondary);
    background: var(--bg-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity var(--duration-fast) var(--ease-default); }
a:hover { opacity: 0.6; }
button { font: inherit; cursor: pointer; background: none; border: none; padding: 0; color: inherit; }
input, textarea, select { font: inherit; color: inherit; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 var(--space-6); color: var(--fg-primary); }
p { margin: 0 0 var(--space-5); }

h1 { font-family: var(--font-display); font-size: var(--text-display); font-weight: var(--fw-light); line-height: var(--lh-display); letter-spacing: var(--ls-tight); text-wrap: balance; }
h2 { font-family: var(--font-display); font-size: var(--text-headline); font-weight: var(--fw-light); line-height: var(--lh-headline); letter-spacing: var(--ls-tight); text-wrap: balance; }
h3 { font-family: var(--font-display); font-size: var(--text-subhead); font-weight: var(--fw-regular); line-height: var(--lh-headline); }
h4 { font-family: var(--font-ui); font-size: var(--text-label-lg); font-weight: var(--fw-medium); line-height: var(--lh-ui); letter-spacing: var(--ls-widest); text-transform: uppercase; }

::selection { background: var(--gm-black); color: var(--gm-white); }

/* ------------------------------------------------------------
   3. LAYOUT PRIMITIVES
   ------------------------------------------------------------ */
.gm-container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding-left: var(--container-pad); padding-right: var(--container-pad); }
.gm-section { padding: var(--space-20) 0; }
.gm-section--tight { padding: var(--space-12) 0; }
.gm-section--dark { background: var(--bg-inverse); color: var(--fg-inverse); }
.gm-section--dark h1, .gm-section--dark h2, .gm-section--dark h3 { color: var(--fg-inverse); }
.gm-eyebrow { font-family: var(--font-ui); font-size: var(--text-label); font-weight: var(--fw-regular); letter-spacing: var(--ls-widest); text-transform: uppercase; color: var(--fg-tertiary); margin: 0 0 var(--space-4); }

/* ------------------------------------------------------------
   4. BUTTONS
   ------------------------------------------------------------ */
.gm-btn,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button {
    display: inline-flex; align-items: center; justify-content: center;
    gap: var(--space-2);
    font-family: var(--font-ui); font-size: var(--text-label); font-weight: var(--fw-medium);
    letter-spacing: var(--ls-widest); text-transform: uppercase;
    padding: 14px 36px;
    border: 1px solid var(--gm-black);
    background: var(--gm-black); color: var(--gm-white);
    border-radius: 0; cursor: pointer;
    transition: background var(--duration-fast) var(--ease-default),
                color var(--duration-fast) var(--ease-default),
                opacity var(--duration-fast) var(--ease-default);
}
.gm-btn:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--gm-dark-gray); color: var(--gm-white); opacity: 1; }
.gm-btn--ghost,
.gm-btn--outline { background: transparent; color: var(--gm-black); border-color: var(--gm-black); }
.gm-btn--ghost:hover,
.gm-btn--outline:hover { background: var(--gm-black); color: var(--gm-white); }
.gm-btn--ghost-light { background: transparent; color: var(--gm-white); border: 1px solid rgba(248,246,243,0.7); }
.gm-btn--ghost-light:hover { background: var(--gm-white); color: var(--gm-black); border-color: var(--gm-white); }

/* ------------------------------------------------------------
   5. HEADER
   ------------------------------------------------------------ */
.gm-header { position: sticky; top: 0; z-index: 100; background: var(--bg-base); border-bottom: 1px solid var(--border-default); }
.gm-header__inner {
    display: grid; grid-template-columns: 1fr auto 1fr;
    align-items: center; gap: var(--space-8);
    padding: var(--space-6) var(--container-pad);
    max-width: var(--container-max); margin: 0 auto;
    min-height: var(--header-height);
}
.gm-header__logo { grid-column: 2; justify-self: center; display: flex; align-items: center; }
.gm-header__logo img { height: var(--logo-height); width: auto; }
.gm-header__nav { grid-column: 1; display: flex; gap: var(--space-10); align-items: center; }
.gm-header__nav a {
    font-family: var(--font-ui); font-size: var(--text-label);
    font-weight: var(--fw-regular); letter-spacing: var(--ls-widest);
    text-transform: uppercase; color: var(--fg-primary);
}
.gm-header__nav a:hover { opacity: 0.5; }
.gm-header__right { grid-column: 3; display: flex; justify-content: flex-end; align-items: center; gap: var(--space-4); }
.gm-header__cart { display: inline-flex; align-items: center; gap: var(--space-1); position: relative; color: var(--fg-primary); }
.gm-header__cart svg { width: 20px; height: 20px; stroke: currentColor; }
.gm-header__cart-count { font-family: var(--font-ui); font-size: var(--text-label-sm); font-weight: var(--fw-medium); color: var(--fg-primary); }
.gm-header__social {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 9999px;
    background: var(--gm-black); color: var(--gm-white);
}
.gm-header__social svg { width: 14px; height: 14px; fill: currentColor; }
.gm-header__toggle { display: none; }

@media (max-width: 900px) {
    .gm-header__inner { grid-template-columns: auto 1fr auto; min-height: 96px; }
    .gm-header__logo img { height: 72px; }
    .gm-header__nav {
        position: absolute; top: 100%; left: 0; right: 0;
        flex-direction: column; gap: var(--space-6);
        padding: var(--space-8) var(--container-pad);
        background: var(--bg-base); border-bottom: 1px solid var(--border-default);
        transform: translateY(-10px); opacity: 0; pointer-events: none;
        transition: opacity var(--duration-base) var(--ease-default),
                    transform var(--duration-base) var(--ease-default);
    }
    .gm-header.is-open .gm-header__nav { opacity: 1; pointer-events: auto; transform: translateY(0); }
    .gm-header__toggle { display: inline-flex; flex-direction: column; gap: 5px; padding: 8px; grid-column: 1; }
    .gm-header__toggle span { display: block; width: 22px; height: 1px; background: var(--gm-black); }
    .gm-header__logo  { grid-column: 2; }
    .gm-header__right { grid-column: 3; }
}

/* ------------------------------------------------------------
   6. HERO
   ------------------------------------------------------------ */
.gm-hero { position: relative; background: var(--bg-base); }
.gm-hero__stage { position: relative; height: 580px; overflow: hidden; background: var(--gm-dark); }
@media (max-width: 768px) { .gm-hero__stage { height: 420px; } }
.gm-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 800ms var(--ease-default); }
.gm-hero__slide.is-active { opacity: 1; }
.gm-hero__slide img { width: 100%; height: 100%; object-fit: cover; }
.gm-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.55) 100%);
}
.gm-hero__content {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    text-align: center; color: var(--gm-white);
    padding: 0 var(--container-pad); z-index: 2;
}
.gm-hero__eyebrow {
    font-family: var(--font-ui); font-size: var(--text-label);
    font-weight: var(--fw-regular); letter-spacing: var(--ls-widest);
    text-transform: uppercase; color: rgba(248,246,243,0.8);
    margin-bottom: var(--space-3);
}
.gm-hero__title {
    font-family: var(--font-display);
    font-size: clamp(40px, 7vw, 72px);
    font-weight: var(--fw-light); font-style: italic;
    line-height: 1; letter-spacing: -0.01em;
    color: var(--gm-white); margin: 4px 0 var(--space-3);
    text-transform: none;
}
.gm-hero__dots {
    position: absolute; bottom: var(--space-8); left: 0; right: 0;
    display: flex; justify-content: center; gap: var(--space-2); z-index: 3;
}
.gm-hero__dot {
    width: 6px; height: 6px;
    background: var(--gm-white); opacity: 0.35;
    cursor: pointer; transition: opacity var(--duration-fast) var(--ease-default);
}
.gm-hero__dot.is-active { opacity: 1; }

/* Category circle tiles */
.gm-tiles {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: clamp(24px, 4vw, 64px);
    padding: var(--space-20) var(--container-pad) var(--space-24);
    max-width: var(--container-max); margin: 0 auto;
}
.gm-tile {
    display: flex; flex-direction: column; align-items: center;
    cursor: pointer; transition: transform var(--duration-base) var(--ease-default);
}
.gm-tile:hover { opacity: 1; transform: translateY(-4px); }
.gm-tile__circle {
    width: 100%; aspect-ratio: 1; max-width: 380px;
    border-radius: 50%; overflow: hidden; background: var(--bg-subtle);
}
.gm-tile__circle img {
    width: 100%; height: 100%; object-fit: cover;
    filter: grayscale(100%);
    transition: filter var(--duration-base) var(--ease-default),
                transform var(--duration-base) var(--ease-default);
}
.gm-tile:hover .gm-tile__circle img { filter: grayscale(0%); transform: scale(1.04); }
.gm-tile__pill {
    background: var(--gm-black); color: var(--gm-white);
    font-family: var(--font-ui); font-size: var(--text-label);
    font-weight: var(--fw-medium); letter-spacing: var(--ls-widest);
    text-transform: uppercase; padding: 12px 32px; border-radius: 9999px;
    margin-top: -22px; position: relative; z-index: 2;
}
@media (max-width: 768px) {
    .gm-tiles { grid-template-columns: 1fr; gap: var(--space-12); }
}

/* ------------------------------------------------------------
   7. PRODUCT CARD / GRID
   ------------------------------------------------------------ */
.gm-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 3vw, 48px);
}
@media (max-width: 900px) { .gm-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .gm-grid { grid-template-columns: 1fr; } }

.gm-card { display: block; cursor: pointer; }
.gm-card__img-wrap { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--bg-subtle); }
.gm-card__img {
    width: 100%; height: 100%; object-fit: cover;
    transition: opacity var(--duration-base) var(--ease-default),
                transform var(--duration-slow) var(--ease-default);
}
.gm-card:hover .gm-card__img { opacity: 0.9; transform: scale(1.02); }
.gm-card__body { padding-top: var(--space-3); }
.gm-card__name {
    font-family: var(--font-ui); font-size: var(--text-label);
    font-weight: var(--fw-medium); letter-spacing: var(--ls-widest);
    text-transform: uppercase; color: var(--fg-primary); margin: 0 0 var(--space-1);
}
.gm-card__category {
    font-family: var(--font-ui); font-size: var(--text-label-sm);
    font-weight: var(--fw-light); letter-spacing: var(--ls-wider);
    text-transform: uppercase; color: var(--fg-tertiary);
}
.gm-card__price { font-family: var(--font-display); font-size: var(--text-base); color: var(--fg-secondary); margin-top: var(--space-1); }

/* Badges */
.gm-badge {
    position: absolute; top: var(--space-3); left: var(--space-3); z-index: 2;
    background: var(--gm-black); color: var(--gm-white);
    font-family: var(--font-ui); font-size: 9px;
    font-weight: var(--fw-medium); letter-spacing: var(--ls-wider);
    text-transform: uppercase; padding: 4px 9px;
}
.gm-badge--soldout { background: var(--gm-dark-gray); }
.gm-badge--sale    { background: var(--gm-gold-dark); }
.gm-badge--new     { background: var(--gm-black); }

/* ------------------------------------------------------------
   8. SHOP / WOOCOMMERCE OVERRIDES
   ------------------------------------------------------------ */
.gm-shop { padding: var(--space-12) 0 var(--space-20); }
.gm-shop__inner { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.gm-shop__header { text-align: center; padding: var(--space-16) 0 var(--space-12); }
.gm-shop__header h1 { font-size: var(--text-display); text-transform: uppercase; letter-spacing: var(--ls-wider); }

.woocommerce .woocommerce-result-count {
    font-family: var(--font-ui); font-size: var(--text-label-sm);
    letter-spacing: var(--ls-wider); text-transform: uppercase; color: var(--fg-tertiary);
}
.woocommerce .woocommerce-ordering select {
    font-family: var(--font-ui); font-size: var(--text-label);
    letter-spacing: var(--ls-wider); text-transform: uppercase;
    border: 1px solid var(--border-default); background: transparent;
    padding: 10px 32px 10px 14px; border-radius: 0;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important; grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 3vw, 48px); margin: 0; padding: 0; list-style: none;
}
@media (max-width: 900px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: 1fr; }
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: 100% !important; margin: 0 !important; float: none !important;
    text-align: left; background: transparent; padding: 0;
}
.woocommerce ul.products li.product a img {
    margin: 0; aspect-ratio: 1; object-fit: cover; width: 100%; height: auto;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--font-ui); font-size: var(--text-label);
    font-weight: var(--fw-medium); letter-spacing: var(--ls-widest);
    text-transform: uppercase; color: var(--fg-primary);
    padding: var(--space-4) 0 var(--space-1); margin: 0;
}
.woocommerce ul.products li.product .price {
    font-family: var(--font-display); font-size: var(--text-base);
    font-weight: var(--fw-regular); color: var(--fg-secondary);
}
.woocommerce ul.products li.product .price del { color: var(--fg-tertiary); opacity: 0.6; }
.woocommerce ul.products li.product .price ins { background: transparent; text-decoration: none; }

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { margin-top: var(--space-3); width: 100%; }

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale { display: none !important; }

.woocommerce nav.woocommerce-pagination { margin-top: var(--space-12); text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: none; display: inline-flex; gap: var(--space-2); }
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: var(--font-ui); font-size: var(--text-label);
    letter-spacing: var(--ls-wider); padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border-default); color: var(--fg-primary);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--gm-black); color: var(--gm-white); border-color: var(--gm-black);
}

.woocommerce div.product .product_title {
    font-family: var(--font-display); font-size: var(--text-headline);
    font-weight: var(--fw-light); text-transform: uppercase; letter-spacing: var(--ls-wide);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: var(--font-display); font-size: var(--text-subhead); color: var(--fg-secondary);
}

/* ------------------------------------------------------------
   9. FOOTER
   ------------------------------------------------------------ */
.gm-footer { background: var(--gm-black); color: var(--gm-warm-gray); padding: var(--space-16) var(--container-pad) var(--space-8); }
.gm-footer__inner { max-width: var(--container-max); margin: 0 auto; }
.gm-footer__top { display: flex; justify-content: space-between; align-items: center; gap: var(--space-12); flex-wrap: wrap; padding-bottom: var(--space-12); }
.gm-footer__logo img { height: var(--logo-height); width: auto; }
.gm-footer__nav { display: flex; gap: var(--space-8); flex-wrap: wrap; }
.gm-footer__nav a {
    font-family: var(--font-ui); font-size: var(--text-label);
    font-weight: var(--fw-regular); letter-spacing: var(--ls-widest);
    text-transform: uppercase; color: var(--gm-warm-gray);
}
.gm-footer__nav a:hover { color: var(--gm-white); opacity: 1; }
.gm-footer__bottom {
    border-top: 1px solid var(--gm-dark); padding-top: var(--space-6);
    display: flex; justify-content: space-between; align-items: center;
    gap: var(--space-4); flex-wrap: wrap;
    font-family: var(--font-ui); font-size: var(--text-label-sm);
    letter-spacing: var(--ls-wider); color: var(--gm-mid-gray);
}
.gm-footer__widget-title {
    font-family: var(--font-ui); font-size: var(--text-label-lg);
    letter-spacing: var(--ls-widest); color: var(--gm-white);
    margin: 0 0 var(--space-3); text-transform: uppercase; font-weight: var(--fw-medium);
}

/* ------------------------------------------------------------
   10. UTILITIES
   ------------------------------------------------------------ */
.gm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.gm-text-center { text-align: center; }

/* ------------------------------------------------------------
   11. SHOP FILTER BAR
   ------------------------------------------------------------ */
.gm-filter-bar {
    display: flex; align-items: flex-end; justify-content: center; gap: 0;
    padding: var(--space-8) var(--container-pad) 0;
    border-bottom: 1px solid var(--border-default);
    margin-bottom: var(--space-10); flex-wrap: wrap;
}
.gm-filter-bar a,
.gm-filter-bar button {
    font-family: var(--font-ui); font-size: var(--text-label-sm);
    font-weight: var(--fw-regular); letter-spacing: var(--ls-wider);
    text-transform: uppercase;
    padding: 10px 20px; background: transparent;
    color: var(--fg-tertiary);
    border: none; border-bottom: 2px solid transparent;
    cursor: pointer; margin-bottom: -1px; text-decoration: none;
    transition: color var(--duration-fast) var(--ease-default),
                border-color var(--duration-fast) var(--ease-default);
}
.gm-filter-bar a:hover,
.gm-filter-bar button:hover { color: var(--fg-primary); opacity: 1; }
.gm-filter-bar a.is-active,
.gm-filter-bar button.is-active { color: var(--fg-primary); border-bottom-color: var(--fg-primary); }

/* ------------------------------------------------------------
   12. STORY PAGE
   ------------------------------------------------------------ */
.gm-story-hero { height: 480px; overflow: hidden; background: var(--gm-black); }
.gm-story-hero img { width: 100%; height: 100%; object-fit: contain; opacity: 0.85; }
.gm-story-body { max-width: 760px; margin: 0 auto; padding: var(--space-16) var(--container-pad); }
.gm-story-quote {
    font-family: var(--font-display); font-size: clamp(22px, 2.5vw, 34px);
    font-weight: 200; font-style: italic; letter-spacing: 0.04em;
    line-height: 1.3; color: var(--fg-primary);
    margin: 0 0 var(--space-5); text-transform: none;
}
.gm-story-text { font-size: var(--text-base); font-weight: var(--fw-light); line-height: 1.7; color: var(--fg-secondary); margin: 0 0 var(--space-12); }
.gm-story-text--small { font-size: var(--text-xs); color: var(--fg-tertiary); }
.gm-team-divider { border: none; border-top: 1px solid var(--border-default); margin: 0 var(--container-pad) var(--space-12); }
.gm-team-grid { display: flex; flex-direction: column; max-width: 760px; margin: 0 auto; padding: 0 var(--container-pad) var(--space-20); }
.gm-team-card { display: grid; grid-template-columns: 140px 1fr; gap: var(--space-8); padding: var(--space-10) 0; border-bottom: 1px solid var(--border-default); }
.gm-team-card:last-child { border-bottom: none; }
.gm-team-card__photo { width: 140px; height: 140px; object-fit: cover; background: var(--bg-subtle); }
.gm-team-card__role {
    font-family: var(--font-ui); font-size: 9px;
    font-weight: var(--fw-medium); letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--fg-tertiary);
    margin: 0 0 var(--space-1);
}
.gm-team-card__name {
    font-family: var(--font-ui); font-size: var(--text-lg);
    font-weight: var(--fw-regular); letter-spacing: 0.06em;
    color: var(--fg-primary); margin: 0 0 var(--space-3); text-transform: none;
}
.gm-team-card__bio { font-size: var(--text-sm); line-height: 1.65; color: var(--fg-secondary); margin: 0; }
@media (max-width: 600px) {
    .gm-team-card { grid-template-columns: 1fr; gap: var(--space-4); }
    .gm-team-card__photo { width: 100%; max-width: 240px; height: auto; aspect-ratio: 1; }
}

/* ------------------------------------------------------------
   13. CONTACT PAGE
   ------------------------------------------------------------ */
.gm-contact { display: flex; align-items: center; justify-content: center; min-height: 60vh; padding: var(--space-20) var(--container-pad); }
.gm-contact__inner { max-width: 520px; width: 100%; }
.gm-contact__title {
    font-family: var(--font-display); font-size: 36px;
    font-weight: 200; letter-spacing: 0.06em;
    text-transform: uppercase; color: var(--fg-primary); margin: 0 0 var(--space-2);
}
.gm-contact__intro { font-size: var(--text-sm); line-height: 1.7; color: var(--fg-tertiary); margin: 0 0 var(--space-10); }
.gm-form-field { margin-bottom: var(--space-4); }
.gm-form-field label {
    display: block; font-family: var(--font-ui); font-size: 9px;
    font-weight: var(--fw-medium); letter-spacing: var(--ls-wider);
    text-transform: uppercase; color: var(--fg-primary); margin-bottom: 6px;
}
.gm-form-field input,
.gm-form-field select,
.gm-form-field textarea {
    width: 100%; padding: 10px 12px;
    background: transparent; border: 1px solid var(--border-strong);
    font-family: var(--font-body); font-size: var(--text-sm);
    font-weight: var(--fw-light); color: var(--fg-primary);
    outline: none; border-radius: 0;
    transition: border-color var(--duration-fast) var(--ease-default);
}
.gm-form-field textarea { resize: vertical; min-height: 120px; }
.gm-form-field input:focus,
.gm-form-field select:focus,
.gm-form-field textarea:focus { border-color: var(--gm-black); }
.gm-form-notice {
    padding: var(--space-3) var(--space-4); margin-bottom: var(--space-5);
    border: 1px solid var(--border-default);
    font-family: var(--font-ui); font-size: var(--text-label);
    letter-spacing: var(--ls-wider); text-transform: uppercase;
}
.gm-form-notice--success { border-color: var(--gm-gold-dark); color: var(--gm-gold-dark); }
.gm-form-notice--error   { border-color: var(--gm-dark-gray); color: var(--gm-dark-gray); }

/* ------------------------------------------------------------
   14. SINGLE PRODUCT
   ------------------------------------------------------------ */
.gm-product {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0;
    min-height: calc(100vh - var(--header-height));
}
.gm-product__gallery { background: var(--bg-subtle); position: relative; }
.gm-product__main { aspect-ratio: 1; overflow: hidden; }
.gm-product__main img { width: 100%; height: 100%; object-fit: cover; }
.gm-product__thumbs { display: flex; gap: var(--space-2); padding: var(--space-3); flex-wrap: wrap; }
.gm-product__thumb {
    width: 64px; height: 64px; overflow: hidden; cursor: pointer;
    opacity: 0.55; transition: opacity var(--duration-fast) var(--ease-default);
    flex-shrink: 0; border: none; padding: 0; background: transparent;
}
.gm-product__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gm-product__thumb.is-active,
.gm-product__thumb:hover { opacity: 1; }

.gm-product__info { padding: 52px 48px; display: flex; flex-direction: column; gap: var(--space-5); }
.gm-product__breadcrumb {
    font-family: var(--font-ui); font-size: var(--text-label-sm);
    font-weight: var(--fw-regular); letter-spacing: var(--ls-wider);
    text-transform: uppercase; color: var(--fg-tertiary); margin: 0;
}
.gm-product__breadcrumb a:hover { color: var(--fg-primary); opacity: 1; }
.gm-product__category {
    font-family: var(--font-ui); font-size: 9px;
    font-weight: var(--fw-medium); letter-spacing: 0.3em;
    text-transform: uppercase; color: var(--fg-tertiary); margin: 0;
}
.gm-product__name {
    font-family: var(--font-ui); font-size: clamp(24px, 2.5vw, 36px);
    font-weight: var(--fw-light); letter-spacing: 0.1em;
    text-transform: uppercase; line-height: 1.15; margin: 0;
}
.gm-product__price { font-family: var(--font-ui); font-size: var(--text-lg); font-weight: var(--fw-regular); color: var(--fg-secondary); margin: 0; }
.gm-product__material-label {
    font-family: var(--font-ui); font-size: 9px;
    font-weight: var(--fw-medium); letter-spacing: var(--ls-wider);
    text-transform: uppercase; color: var(--fg-tertiary); margin: 0 0 6px;
}
.gm-product__desc { font-size: var(--text-sm); font-weight: var(--fw-light); line-height: 1.7; color: var(--fg-secondary); margin: 0; }
.gm-product__note {
    font-family: var(--font-ui); font-size: 12px;
    font-weight: var(--fw-light); color: var(--fg-tertiary);
    line-height: 1.6; margin-top: var(--space-2);
}
@media (max-width: 900px) {
    .gm-product { grid-template-columns: 1fr; }
    .gm-product__info { padding: var(--space-10) var(--container-pad); }
}

/* ------------------------------------------------------------
   15. FORMS (light)
   ------------------------------------------------------------ */
input[type="text"], input[type="email"], input[type="password"],
input[type="search"], input[type="tel"], input[type="url"],
input[type="number"], select, textarea {
    width: 100%; padding: 12px 14px;
    border: 1px solid var(--border-default); background: var(--bg-base);
    border-radius: 0; font-family: var(--font-body);
    font-size: var(--text-base); color: var(--fg-primary);
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gm-black); }
label {
    font-family: var(--font-ui); font-size: var(--text-label);
    letter-spacing: var(--ls-wider); text-transform: uppercase;
    color: var(--fg-secondary); display: block; margin-bottom: var(--space-2);
}
