/* =========================================================
   G Stone — theme styles
   Design tokens come straight from the approved landing design.
   ========================================================= */

:root {
    --gs-bg:            #f7f3ec;
    --gs-bg-header:     #f6f2eb;
    --gs-bg-alt:        #efe9de;
    --gs-bg-card:       #fffdfa;

    --gs-ink:           #24211d;
    --gs-ink-strong:    #1b1815;
    --gs-muted:         #6d665d;
    --gs-muted-2:       #4b453d;

    --gs-accent:        #a3856a;
    --gs-accent-dark:   #8e7157;
    --gs-accent-soft:   #9c7f63;

    --gs-dark:          #1d1b17;
    --gs-light:         #fbf8f3;

    --gs-line:          rgba(36, 33, 29, .10);
    --gs-line-strong:   rgba(36, 33, 29, .18);

    --gs-radius:        4px;
    --gs-radius-lg:     6px;

    --gs-pad-x:         clamp(20px, 4.7vw, 90px);
    --gs-section-y:     clamp(48px, 5.6vw, 96px);
    --gs-max:           1600px;

    --gs-font-head:     'Noto Serif Georgian', 'Noto Serif', Georgia, serif;
    --gs-font-body:     'Noto Sans Georgian', 'Helvetica Neue', Arial, sans-serif;
    --gs-font-brand:    'Cormorant Garamond', 'Noto Serif Georgian', Georgia, serif;

    --gs-shadow:        0 18px 44px rgba(29, 27, 23, .10);
    --gs-shadow-soft:   0 8px 24px rgba(29, 27, 23, .07);
}

/* Self-hosted Georgian serif — the Google copy is a progressive enhancement. */
@font-face {
    font-family: 'Noto Serif Georgian';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('../fonts/noto-serif-georgian-georgian.woff2') format('woff2');
    unicode-range: U+10A0-10FF, U+1C90-1CBF, U+2D00-2D2F;
}

@font-face {
    font-family: 'Noto Serif Georgian';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('../fonts/noto-serif-georgian-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}

/* ---------------------------------------------------------
   Base
   --------------------------------------------------------- */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--gs-bg);
    color: var(--gs-ink);
    font-family: var(--gs-font-body);
    font-size: 15.5px;
    font-weight: 400;
    line-height: 1.75;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

body.gs-no-scroll { overflow: hidden; }

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--gs-accent); }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--gs-font-head);
    font-weight: 400;
    color: var(--gs-ink-strong);
    line-height: 1.28;
    margin: 0 0 .6em;
    letter-spacing: -.005em;
    text-wrap: pretty;
}

h1 { font-size: clamp(29px, 3.4vw, 52px); }
h2 { font-size: clamp(26px, 3vw, 46px); line-height: 1.18; }
h3 { font-size: clamp(20px, 1.8vw, 27px); }
h4 { font-size: clamp(17px, 1.35vw, 21px); }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

ul, ol { margin: 0 0 1.1em; padding-left: 1.25em; }

hr { border: 0; border-top: 1px solid var(--gs-line); margin: 2.4em 0; }

blockquote {
    margin: 1.6em 0;
    padding: 4px 0 4px 24px;
    border-left: 2px solid var(--gs-accent);
    font-family: var(--gs-font-head);
    font-size: 1.1em;
    color: var(--gs-muted-2);
}

::selection { background: var(--gs-accent); color: #fff; }

:focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 3px; }

.gs-screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0;
}

.gs-skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 999;
    background: var(--gs-dark); color: var(--gs-light);
    padding: 12px 20px;
}
.gs-skip-link:focus { left: 0; }

/* ---------------------------------------------------------
   Layout helpers
   --------------------------------------------------------- */

.gs-shell { padding-inline: var(--gs-pad-x); }

.gs-container {
    width: 100%;
    max-width: var(--gs-max);
    margin-inline: auto;
    padding-inline: var(--gs-pad-x);
}

.gs-container--narrow { max-width: 980px; }

.gs-section { padding-block: var(--gs-section-y); }
.gs-section--tight { padding-block: clamp(34px, 3.8vw, 62px); }
.gs-section--alt { background: var(--gs-bg-alt); }
.gs-section--dark { background: var(--gs-dark); color: rgba(251, 248, 243, .84); }
.gs-section--dark h1,
.gs-section--dark h2,
.gs-section--dark h3 { color: var(--gs-light); }

/* Section heading block: eyebrow + title (+ optional trailing link) */
.gs-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px 32px;
    flex-wrap: wrap;
    margin-bottom: clamp(24px, 2.6vw, 40px);
}

.gs-eyebrow {
    color: var(--gs-accent-soft);
    font-size: 14.5px;
    letter-spacing: .01em;
    margin-bottom: clamp(8px, 1vw, 14px);
}

.gs-section--dark .gs-eyebrow { color: #c2a488; }

.gs-section-head h2 { margin: 0; }

.gs-section-head__lead {
    max-width: 46em;
    color: var(--gs-muted);
    margin-top: 14px;
}

/* “ყველა პროდუქტი →” style link */
.gs-arrow-link {
    font-size: 14.5px;
    color: var(--gs-muted-2);
    display: inline-flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    padding-bottom: 6px;
    border-bottom: 1px solid transparent;
}
.gs-arrow-link:hover { color: var(--gs-accent); border-bottom-color: var(--gs-accent); }
.gs-arrow-link .gs-arrow {
    position: relative;
    width: 22px; height: 8px;
    display: inline-block;
    flex: 0 0 auto;
}
.gs-arrow::before {
    content: ''; position: absolute; left: 0; top: 3.5px;
    width: 22px; height: 1px; background: currentColor;
}
.gs-arrow::after {
    content: ''; position: absolute; right: 0; top: 1px;
    width: 7px; height: 7px;
    border-top: 1px solid currentColor; border-right: 1px solid currentColor;
    transform: rotate(45deg);
}

/* ---------------------------------------------------------
   Buttons
   --------------------------------------------------------- */

.gs-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    font-family: var(--gs-font-body);
    font-size: 14.5px;
    line-height: 1.2;
    padding: 17px clamp(20px, 2.4vw, 36px);
    border-radius: var(--gs-radius);
    border: 1px solid transparent;
    background: var(--gs-accent);
    color: var(--gs-light);
    cursor: pointer;
    transition: background .22s ease, color .22s ease, border-color .22s ease;
    text-align: center;
}
.gs-btn:hover { background: var(--gs-accent-dark); color: var(--gs-light); }

.gs-btn--ghost {
    background: transparent;
    border-color: var(--gs-line-strong);
    color: var(--gs-ink);
}
.gs-btn--ghost:hover { background: rgba(36, 33, 29, .06); color: var(--gs-ink); border-color: var(--gs-line-strong); }

.gs-btn--ghost-light {
    background: transparent;
    border-color: rgba(250, 247, 241, .75);
    color: var(--gs-light);
}
.gs-btn--ghost-light:hover { background: rgba(250, 247, 241, .12); color: var(--gs-light); }

.gs-btn--sm { padding: 12px 22px; font-size: 13.5px; }

.gs-icon-download {
    display: inline-flex; flex-direction: column; align-items: center; gap: 2px;
    flex: 0 0 auto;
}
.gs-icon-download span:first-child { display: block; width: 1px; height: 9px; background: currentColor; }
.gs-icon-download span:last-child { display: block; width: 9px; height: 1px; background: currentColor; }

/* ---------------------------------------------------------
   Top bar
   --------------------------------------------------------- */

.gs-topbar {
    background: var(--gs-dark);
    color: #ded9d1;
    font-size: 13px;
    letter-spacing: .02em;
}

.gs-topbar__inner {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px 26px;
    flex-wrap: wrap;
    padding-block: 6px;
}

.gs-topbar a { color: #f0ece5; }
.gs-topbar a:hover { color: var(--gs-accent); }

.gs-topbar__item { display: inline-flex; align-items: center; gap: 8px; }
.gs-topbar__item svg { width: 14px; height: 14px; opacity: .8; }

.gs-topbar__langs { display: inline-flex; align-items: center; gap: 12px; }
.gs-topbar__langs .sep { opacity: .4; }
.gs-topbar__langs a.is-muted { color: #b6b0a6; }

/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */

.gs-header {
    background: var(--gs-bg-header);
    border-bottom: 1px solid var(--gs-line);
    position: relative;
    z-index: 60;
}

.gs-header.is-stuck {
    position: sticky;
    top: 0;
    box-shadow: var(--gs-shadow-soft);
}

.gs-header__inner {
    display: flex;
    align-items: center;
    gap: 18px clamp(20px, 3vw, 44px);
    padding-block: 14px;
    min-height: 108px;
}

/* Brand */
.gs-brand { display: flex; align-items: center; gap: 16px; flex: 0 0 auto; }
.gs-brand:hover { color: inherit; }

.gs-brand__mark img { width: auto; height: clamp(56px, 5.4vw, 82px); object-fit: contain; }

.gs-brand__text { display: flex; flex-direction: column; gap: 6px; }

.gs-brand__name {
    font-family: var(--gs-font-brand);
    font-weight: 500;
    font-size: clamp(20px, 1.85vw, 30px);
    letter-spacing: .17em;
    color: #221f1b;
    line-height: 1;
}

.gs-brand__tagline {
    font-family: var(--gs-font-brand);
    font-size: 12.5px;
    letter-spacing: .035em;
    color: var(--gs-muted);
    line-height: 1;
}

/* If a custom logo already contains the wordmark, the text half is hidden. */
.gs-brand--image-only .gs-brand__text { display: none; }

/* Primary navigation */
.gs-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }

.gs-nav ul { list-style: none; margin: 0; padding: 0; }

.gs-nav__menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px clamp(14px, 2.2vw, 36px);
    font-size: clamp(13.5px, 1.02vw, 15px);
    color: #2c2823;
}

.gs-nav__menu > li { position: relative; }

.gs-nav__menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-block: 10px 9px;
    border-bottom: 1.5px solid transparent;
}

.gs-nav__menu > li > a:hover,
.gs-nav__menu > li.current-menu-item > a,
.gs-nav__menu > li.current-menu-parent > a,
.gs-nav__menu > li.current_page_item > a,
.gs-nav__menu > li.gs-is-current > a {
    border-bottom-color: var(--gs-accent);
    color: var(--gs-ink);
}

.gs-caret {
    width: 7px; height: 7px;
    border-right: 1.4px solid #4a453e;
    border-bottom: 1.4px solid #4a453e;
    transform: rotate(45deg) translateY(-2px);
    flex: 0 0 auto;
    transition: transform .2s ease;
}

/* Dropdown */
.gs-nav__menu li > ul {
    position: absolute;
    top: 100%;
    left: -18px;
    min-width: 232px;
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-line);
    border-radius: var(--gs-radius);
    box-shadow: var(--gs-shadow);
    padding: 10px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    z-index: 40;
}

.gs-nav__menu li:hover > ul,
.gs-nav__menu li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }

.gs-nav__menu li > ul li > ul { top: -10px; left: 100%; }

.gs-nav__menu li > ul a {
    display: block;
    padding: 9px 22px;
    font-size: 14px;
    color: var(--gs-muted-2);
}
.gs-nav__menu li > ul a:hover { color: var(--gs-accent); background: rgba(163, 133, 106, .07); }

/* Header actions */
.gs-header__actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; margin-left: auto; }

.gs-icon-btn {
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--gs-line-strong);
    border-radius: var(--gs-radius);
    background: transparent;
    color: var(--gs-ink);
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.gs-icon-btn:hover { background: var(--gs-accent); border-color: var(--gs-accent); color: var(--gs-light); }
.gs-icon-btn svg { width: 18px; height: 18px; }

.gs-burger { display: none; }

@media (max-width: 1180px) {
    .gs-header__inner { min-height: 88px; }
    .gs-nav {
        position: fixed;
        inset: 0 0 0 auto;
        width: min(360px, 86vw);
        background: var(--gs-bg-header);
        border-left: 1px solid var(--gs-line);
        box-shadow: -20px 0 60px rgba(29, 27, 23, .18);
        padding: 84px 28px 40px;
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform .3s cubic-bezier(.4, 0, .2, 1);
        z-index: 90;
        display: block;
    }
    body.gs-menu-open .gs-nav { transform: translateX(0); }

    .gs-nav__menu {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        font-size: 16px;
    }
    .gs-nav__menu > li { border-bottom: 1px solid var(--gs-line); }
    .gs-nav__menu > li > a { display: flex; justify-content: space-between; padding: 15px 0; border-bottom: 0; }
    .gs-nav__menu li > ul {
        position: static;
        opacity: 1; visibility: visible; transform: none;
        box-shadow: none; border: 0; border-radius: 0;
        background: transparent;
        padding: 0 0 12px 16px;
        min-width: 0;
        display: none;
    }
    .gs-nav__menu li.gs-open > ul { display: block; }
    .gs-nav__menu li.gs-open > a .gs-caret { transform: rotate(-135deg) translateY(-2px); }

    .gs-burger { display: inline-flex; }

    .gs-nav__close {
        position: absolute; top: 24px; right: 24px;
        width: 40px; height: 40px;
        border: 1px solid var(--gs-line-strong); border-radius: var(--gs-radius);
        background: transparent; cursor: pointer;
        display: inline-flex; align-items: center; justify-content: center;
        font-size: 22px; line-height: 1; color: var(--gs-ink);
    }
}

@media (min-width: 1181px) { .gs-nav__close { display: none; } }

@media (max-width: 700px) {
    .gs-header__cta { display: none; }
    .gs-brand__tagline { display: none; }
}

.gs-overlay {
    position: fixed; inset: 0;
    background: rgba(20, 18, 16, .45);
    opacity: 0; visibility: hidden;
    transition: opacity .3s ease, visibility .3s;
    z-index: 80;
}
body.gs-menu-open .gs-overlay { opacity: 1; visibility: visible; }

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.gs-hero {
    position: relative;
    min-height: clamp(430px, 43vw, 645px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(103deg, #100e0c 0%, #1b1815 34%, #302a23 52%, #6a5f52 74%, #2e2924 100%);
}

.gs-hero__media { position: absolute; inset: 0; }
.gs-hero__media img { width: 100%; height: 100%; object-fit: cover; }

.gs-hero__scrim {
    position: absolute; inset: 0;
    background:
        linear-gradient(90deg, rgba(10, 9, 8, .82) 0%, rgba(10, 9, 8, .58) 38%, rgba(10, 9, 8, .12) 66%, rgba(10, 9, 8, .3) 100%);
}

.gs-hero__inner { position: relative; width: 100%; padding-block: clamp(56px, 6vw, 96px); }

.gs-hero__content { max-width: min(58%, 760px); }

.gs-hero h1 {
    color: #fdfbf7;
    font-size: clamp(29px, 3.55vw, 57px);
    line-height: 1.34;
    margin: 0 0 clamp(16px, 1.8vw, 28px);
}

.gs-hero__lead {
    font-size: clamp(14px, 1.12vw, 18px);
    line-height: 1.75;
    font-weight: 300;
    color: rgba(250, 247, 241, .88);
    max-width: 30em;
    margin: 0 0 clamp(26px, 3.2vw, 48px);
}

.gs-hero__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

@media (max-width: 900px) {
    .gs-hero__content { max-width: 100%; }
    .gs-hero__scrim { background: linear-gradient(180deg, rgba(10, 9, 8, .55) 0%, rgba(10, 9, 8, .78) 100%); }
}

/* Compact page hero for inner pages */
.gs-pagehead {
    position: relative;
    background: var(--gs-dark);
    color: var(--gs-light);
    overflow: hidden;
}
.gs-pagehead__media { position: absolute; inset: 0; }
.gs-pagehead__media img { width: 100%; height: 100%; object-fit: cover; }
/* Photographs of pale stone need a real scrim, not just opacity, or the white
   heading disappears into the bright areas. */
.gs-pagehead__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(16, 14, 12, .88) 0%, rgba(16, 14, 12, .7) 42%, rgba(16, 14, 12, .42) 72%, rgba(16, 14, 12, .55) 100%),
        linear-gradient(180deg, rgba(16, 14, 12, .3) 0%, rgba(16, 14, 12, .55) 100%);
}
.gs-pagehead__inner {
    position: relative;
    padding-block: clamp(46px, 5vw, 88px);
}
.gs-pagehead h1 { color: var(--gs-light); margin: 0; }
.gs-pagehead__lead { color: rgba(251, 248, 243, .8); max-width: 46em; margin-top: 14px; }

.gs-breadcrumb {
    font-size: 13px;
    color: rgba(251, 248, 243, .66);
    margin-bottom: 16px;
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.gs-breadcrumb a { color: rgba(251, 248, 243, .8); }
.gs-breadcrumb a:hover { color: var(--gs-accent); }
.gs-breadcrumb .sep { opacity: .5; }

/* ---------------------------------------------------------
   Material cards (home + product archive)
   --------------------------------------------------------- */

.gs-materials {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 16px;
}

.gs-material-card {
    position: relative;
    aspect-ratio: 268 / 216;
    border-radius: var(--gs-radius-lg);
    overflow: hidden;
    display: block;
    background: linear-gradient(152deg, #eeebe8 0%, #cfcac5 58%, #e6e3df 100%);
    isolation: isolate;
}

.gs-material-card img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}
.gs-material-card:hover img { transform: scale(1.06); }

.gs-material-card::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(14, 12, 10, .68) 0%, rgba(14, 12, 10, .18) 40%, rgba(14, 12, 10, 0) 64%);
}

.gs-material-card__body {
    position: absolute; left: 18px; right: 14px; bottom: 15px;
    z-index: 2;
}

.gs-material-card__title {
    font-family: var(--gs-font-head);
    color: #fdfbf8;
    font-size: clamp(15px, 1.2vw, 19px);
    margin-bottom: 6px;
    line-height: 1.3;
}

.gs-material-card__meta {
    color: rgba(253, 251, 248, .82);
    font-size: 13px;
    font-weight: 300;
}

.gs-material-card:hover { color: inherit; }

/* ---------------------------------------------------------
   Product grid
   --------------------------------------------------------- */

.gs-products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: clamp(16px, 1.6vw, 26px);
}

.gs-products--home { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

.gs-product-card {
    color: var(--gs-ink);
    display: flex;
    flex-direction: column;
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-line);
    border-radius: var(--gs-radius-lg);
    overflow: hidden;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.gs-product-card:hover {
    border-color: rgba(163, 133, 106, .5);
    box-shadow: var(--gs-shadow);
    transform: translateY(-3px);
    color: inherit;
}

.gs-product-card__media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e7e2da;
}
.gs-product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.22, .61, .36, 1); }
.gs-product-card:hover .gs-product-card__media img { transform: scale(1.05); }

.gs-product-card__badge {
    position: absolute; top: 12px; left: 12px;
    background: rgba(29, 27, 23, .72);
    color: var(--gs-light);
    font-size: 11.5px;
    letter-spacing: .02em;
    padding: 5px 10px;
    border-radius: 3px;
    backdrop-filter: blur(2px);
}

.gs-product-card__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; }

.gs-product-card__title {
    font-family: var(--gs-font-head);
    font-size: 17px;
    line-height: 1.35;
    color: var(--gs-ink-strong);
    margin: 0;
}

.gs-product-card__meta {
    font-size: 13px;
    color: var(--gs-muted);
    display: flex; flex-wrap: wrap; gap: 4px 14px;
    margin-top: auto;
    padding-top: 8px;
}

.gs-empty {
    padding: 44px 0;
    color: var(--gs-muted);
    font-size: 15px;
}

/* Filter bar */
.gs-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: clamp(22px, 2.4vw, 34px);
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gs-line);
}

.gs-filters__label {
    font-size: 13px;
    color: var(--gs-muted);
    margin-right: 6px;
}

.gs-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border: 1px solid var(--gs-line-strong);
    border-radius: 999px;
    font-size: 13.5px;
    color: var(--gs-muted-2);
    background: transparent;
    transition: all .2s ease;
}
.gs-chip:hover { border-color: var(--gs-accent); color: var(--gs-accent); }
.gs-chip.is-active {
    background: var(--gs-accent);
    border-color: var(--gs-accent);
    color: var(--gs-light);
}
.gs-chip__count { opacity: .65; font-size: 12px; }

/* Pagination */
.gs-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: clamp(34px, 3.4vw, 56px);
    flex-wrap: wrap;
}
.gs-pagination .page-numbers {
    min-width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 12px;
    border: 1px solid var(--gs-line-strong);
    border-radius: var(--gs-radius);
    font-size: 14px;
    color: var(--gs-muted-2);
}
.gs-pagination .page-numbers:hover { border-color: var(--gs-accent); color: var(--gs-accent); }
.gs-pagination .page-numbers.current {
    background: var(--gs-accent); border-color: var(--gs-accent); color: var(--gs-light);
}
.gs-pagination .dots { border-color: transparent; }

/* ---------------------------------------------------------
   Services
   --------------------------------------------------------- */

.gs-services {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(268px, 1fr));
    gap: clamp(16px, 1.7vw, 26px);
}

.gs-service-card {
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-line);
    border-radius: var(--gs-radius-lg);
    padding: clamp(24px, 2.2vw, 36px);
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.gs-service-card:hover {
    border-color: rgba(163, 133, 106, .45);
    box-shadow: var(--gs-shadow);
    transform: translateY(-3px);
}

.gs-service-card__num {
    font-family: var(--gs-font-brand);
    font-size: 34px;
    line-height: 1;
    color: rgba(163, 133, 106, .45);
    letter-spacing: .04em;
}

.gs-service-card h3 { margin: 0; font-size: clamp(18px, 1.4vw, 22px); }

.gs-service-card p { color: var(--gs-muted); font-size: 14.5px; margin: 0; }

.gs-service-card__list {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.gs-service-card__list li {
    position: relative;
    padding-left: 26px;
    font-size: 14px;
    color: var(--gs-muted-2);
    line-height: 1.6;
}
.gs-service-card__list li::before {
    content: '';
    position: absolute;
    left: 3px; top: .55em;
    width: 11px; height: 6px;
    border-left: 1.6px solid var(--gs-accent);
    border-bottom: 1.6px solid var(--gs-accent);
    transform: rotate(-45deg);
}

/* ---------------------------------------------------------
   Projects
   --------------------------------------------------------- */

.gs-projects {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: clamp(16px, 1.7vw, 26px);
}

.gs-project-card {
    position: relative;
    display: block;
    border-radius: var(--gs-radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #ddd7cd;
}
.gs-project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22, .61, .36, 1); }
.gs-project-card:hover img { transform: scale(1.06); }
.gs-project-card::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(14, 12, 10, .78) 0%, rgba(14, 12, 10, .2) 42%, rgba(14, 12, 10, 0) 66%);
}
.gs-project-card__body { position: absolute; left: 22px; right: 20px; bottom: 20px; z-index: 2; }
.gs-project-card__title {
    font-family: var(--gs-font-head);
    color: #fdfbf8;
    font-size: clamp(17px, 1.35vw, 22px);
    margin: 0 0 6px;
    line-height: 1.3;
}
.gs-project-card__meta { color: rgba(253, 251, 248, .78); font-size: 13px; font-weight: 300; }
.gs-project-card:hover { color: inherit; }

/* ---------------------------------------------------------
   About / split content
   --------------------------------------------------------- */

.gs-split {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: clamp(28px, 4vw, 72px);
    align-items: center;
}

.gs-split__media { position: relative; border-radius: var(--gs-radius-lg); overflow: hidden; }
.gs-split__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 5 / 4; }

.gs-split__body p { color: var(--gs-muted); }

.gs-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 24px 20px;
    margin-top: clamp(24px, 2.6vw, 40px);
    padding-top: clamp(24px, 2.6vw, 36px);
    border-top: 1px solid var(--gs-line);
}
.gs-stat__value {
    font-family: var(--gs-font-head);
    font-size: clamp(28px, 2.6vw, 42px);
    line-height: 1;
    color: var(--gs-accent);
    margin-bottom: 8px;
}
.gs-stat__label { font-size: 13.5px; color: var(--gs-muted); line-height: 1.5; }

.gs-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gs-checklist li {
    position: relative;
    padding-left: 30px;
    color: var(--gs-muted-2);
    font-size: 15px;
    line-height: 1.6;
}
.gs-checklist li::before {
    content: '';
    position: absolute; left: 4px; top: .5em;
    width: 12px; height: 7px;
    border-left: 1.8px solid var(--gs-accent);
    border-bottom: 1.8px solid var(--gs-accent);
    transform: rotate(-45deg);
}

/* ---------------------------------------------------------
   Contact
   --------------------------------------------------------- */

.gs-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: clamp(28px, 4vw, 68px);
    align-items: start;
}
@media (max-width: 900px) { .gs-contact { grid-template-columns: 1fr; } }

.gs-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 22px; }

.gs-contact-item { display: flex; gap: 16px; align-items: flex-start; }
.gs-contact-item__icon {
    flex: 0 0 auto;
    width: 42px; height: 42px;
    border: 1px solid var(--gs-line-strong);
    border-radius: var(--gs-radius);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--gs-accent);
}
.gs-contact-item__icon svg { width: 18px; height: 18px; }
.gs-contact-item__label { font-size: 12.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--gs-muted); margin-bottom: 3px; }
.gs-contact-item__value { font-size: 15.5px; color: var(--gs-ink); line-height: 1.55; }

.gs-form-card {
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-line);
    border-radius: var(--gs-radius-lg);
    padding: clamp(24px, 2.6vw, 42px);
    box-shadow: var(--gs-shadow-soft);
}

.gs-map { border-radius: var(--gs-radius-lg); overflow: hidden; border: 1px solid var(--gs-line); }
.gs-map iframe { display: block; width: 100%; height: clamp(260px, 34vw, 420px); border: 0; }

/* Forms (also normalises Contact Form 7 output) */
.gs-form-card label,
.gs-form-field label {
    display: block;
    font-size: 13px;
    color: var(--gs-muted);
    margin-bottom: 7px;
}

input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="number"], input[type="search"], input[type="password"], input[type="date"],
select, textarea {
    width: 100%;
    font-family: var(--gs-font-body);
    font-size: 15px;
    color: var(--gs-ink);
    background: #fff;
    border: 1px solid var(--gs-line-strong);
    border-radius: var(--gs-radius);
    padding: 13px 16px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
textarea { min-height: 140px; resize: vertical; }

input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--gs-accent);
    box-shadow: 0 0 0 3px rgba(163, 133, 106, .14);
}

::placeholder { color: #a8a196; opacity: 1; }

.gs-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.gs-form-grid .gs-form-field--full { grid-column: 1 / -1; }

input[type="submit"], button[type="submit"], .wpcf7-submit {
    font-family: var(--gs-font-body);
    font-size: 14.5px;
    padding: 16px 34px;
    border: 0;
    border-radius: var(--gs-radius);
    background: var(--gs-accent);
    color: var(--gs-light);
    cursor: pointer;
    width: auto;
    transition: background .22s ease;
}
input[type="submit"]:hover, button[type="submit"]:hover, .wpcf7-submit:hover { background: var(--gs-accent-dark); }

.wpcf7 form .wpcf7-response-output {
    margin: 18px 0 0;
    border-radius: var(--gs-radius);
    border-width: 1px;
    padding: 12px 16px;
    font-size: 14px;
}
.wpcf7-not-valid-tip { color: #b4453a; font-size: 12.5px; margin-top: 6px; }
.wpcf7-spinner { margin-left: 12px; }

/* ---------------------------------------------------------
   CTA strip
   --------------------------------------------------------- */

.gs-cta {
    position: relative;
    background: var(--gs-dark);
    color: var(--gs-light);
    overflow: hidden;
}
.gs-cta__media { position: absolute; inset: 0; opacity: .3; }
.gs-cta__media img { width: 100%; height: 100%; object-fit: cover; }
.gs-cta__inner {
    position: relative;
    padding-block: clamp(44px, 5vw, 82px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px 48px;
    flex-wrap: wrap;
}
.gs-cta h2 { color: var(--gs-light); margin: 0 0 10px; }
.gs-cta p { color: rgba(251, 248, 243, .78); margin: 0; max-width: 40em; }
.gs-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */

.gs-footer {
    background: #161412;
    color: rgba(222, 217, 209, .78);
    font-size: 14.5px;
}

.gs-footer a { color: rgba(240, 236, 229, .82); }
.gs-footer a:hover { color: var(--gs-accent); }

/* Explicit tracks: auto-fit cannot be mixed with fr tracks in one declaration. */
.gs-footer__top {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(28px, 3vw, 44px);
    padding-block: clamp(44px, 4.6vw, 78px);
}
@media (min-width: 640px) {
    .gs-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gs-footer__col:first-child { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
    .gs-footer__top { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); }
    .gs-footer__col:first-child { grid-column: auto; }
}

.gs-footer__brand { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.gs-footer__brand img { height: 66px; width: auto; }
.gs-footer__brand-name {
    font-family: var(--gs-font-brand);
    font-size: 25px;
    letter-spacing: .17em;
    color: var(--gs-light);
    line-height: 1;
    margin-bottom: 7px;
}
.gs-footer__brand-tagline { font-family: var(--gs-font-brand); font-size: 12.5px; color: rgba(222, 217, 209, .6); letter-spacing: .035em; }

.gs-footer__about { max-width: 34em; color: rgba(222, 217, 209, .68); line-height: 1.8; }

.gs-footer__title {
    font-family: var(--gs-font-head);
    font-size: 17px;
    color: var(--gs-light);
    margin: 0 0 18px;
}

.gs-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }

.gs-footer__socials { display: flex; gap: 10px; margin-top: 22px; }
.gs-footer__socials a {
    width: 40px; height: 40px;
    border: 1px solid rgba(222, 217, 209, .22);
    border-radius: var(--gs-radius);
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.gs-footer__socials a:hover { background: var(--gs-accent); border-color: var(--gs-accent); color: #fff; }
.gs-footer__socials svg { width: 17px; height: 17px; }

.gs-footer__bottom {
    border-top: 1px solid rgba(222, 217, 209, .13);
    padding-block: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 28px;
    flex-wrap: wrap;
    font-size: 13.5px;
    color: rgba(222, 217, 209, .58);
}

/* ---------------------------------------------------------
   Editorial content (pages, posts, single product description)
   --------------------------------------------------------- */

.gs-prose { max-width: 76ch; }
.gs-prose > *:first-child { margin-top: 0; }
.gs-prose h2 { margin-top: 1.8em; }
.gs-prose h3 { margin-top: 1.6em; }
.gs-prose img { border-radius: var(--gs-radius-lg); margin-block: 1.6em; }
.gs-prose ul li, .gs-prose ol li { margin-bottom: .5em; }
.gs-prose a { color: var(--gs-accent); text-decoration: underline; text-underline-offset: 3px; }

.gs-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: clamp(20px, 2vw, 32px); }

.gs-post-card {
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-line);
    border-radius: var(--gs-radius-lg);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.gs-post-card:hover { box-shadow: var(--gs-shadow); transform: translateY(-3px); border-color: rgba(163, 133, 106, .4); color: inherit; }
.gs-post-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: #e7e2da; }
.gs-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gs-post-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; }
.gs-post-card__date { font-size: 12.5px; color: var(--gs-muted); }
.gs-post-card__title { font-family: var(--gs-font-head); font-size: 19px; margin: 0; line-height: 1.35; }
.gs-post-card__excerpt { font-size: 14.5px; color: var(--gs-muted); }

/* ---------------------------------------------------------
   404 / search
   --------------------------------------------------------- */

.gs-404 { text-align: center; padding-block: clamp(60px, 8vw, 140px); }
.gs-404__code {
    font-family: var(--gs-font-brand);
    font-size: clamp(80px, 14vw, 190px);
    line-height: .9;
    color: rgba(163, 133, 106, .3);
    margin-bottom: 18px;
}

.gs-searchform { display: flex; gap: 10px; max-width: 480px; }
.gs-searchform input[type="search"] { flex: 1 1 auto; }

/* ---------------------------------------------------------
   Single product — restyles the [gs_product_single] mu-plugin markup
   so it reads as part of this theme.
   --------------------------------------------------------- */

/* The mu-plugin ships this block styled for a dark theme (#fff text on black).
   Everything below re-skins it for the light G Stone palette. The theme
   stylesheet is enqueued after gs-sp-css, so equal specificity is enough. */

.gs-sp-wrap {
    color: var(--gs-ink);
    padding: 0;
    max-width: none;
    margin: 0;
}

.gs-sp-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(28px, 3.6vw, 64px);
}

/* --- gallery --- */

.gs-sp-main {
    background: #e7e2da;
    border-radius: var(--gs-radius-lg);
}

.gs-sp-counter {
    background: rgba(29, 27, 23, .55);
    border-radius: var(--gs-radius);
    color: #fdfbf8;
    font-size: 12.5px;
    letter-spacing: .04em;
}

.gs-sp-nav {
    width: 44px; height: 44px;
    background: rgba(251, 248, 243, .82);
    border-radius: var(--gs-radius);
}
.gs-sp-nav:hover { background: var(--gs-accent); }
.gs-sp-nav::before { border-top-color: var(--gs-ink); border-right-color: var(--gs-ink); }
.gs-sp-nav:hover::before { border-top-color: #fff; border-right-color: #fff; }

.gs-sp-fullscreen {
    background: rgba(251, 248, 243, .82);
    border-radius: var(--gs-radius);
}
.gs-sp-fullscreen:hover { background: var(--gs-accent); }
.gs-sp-fullscreen::before { border-color: var(--gs-ink); }
.gs-sp-fullscreen:hover::before { border-color: #fff; }

.gs-sp-thumbs .swiper-slide {
    border-radius: var(--gs-radius);
    opacity: .62;
    border-color: transparent;
}
.gs-sp-thumbs .swiper-slide:hover { opacity: 1; }
.gs-sp-thumbs .swiper-slide.gs-thumb-active { opacity: 1; border-color: var(--gs-accent); }
.gs-sp-thumbs::-webkit-scrollbar-thumb { background: var(--gs-line-strong); }

/* --- info column --- */

.gs-sp-info-col { padding-top: 0; }

.gs-sp-tags {
    color: var(--gs-accent-soft);
    font-size: 13px;
    letter-spacing: .14em;
    margin-bottom: 14px;
}

.gs-sp-title {
    font-family: var(--gs-font-head);
    font-weight: 400;
    color: var(--gs-ink-strong);
    font-size: clamp(28px, 3vw, 46px);
    line-height: 1.18;
    letter-spacing: -.005em;
    margin: 0 0 22px;
}

.gs-sp-desc {
    color: var(--gs-muted);
    font-size: 15.5px;
    line-height: 1.75;
    margin-bottom: 32px;
}
.gs-sp-desc strong, .gs-sp-desc b { color: var(--gs-ink); }
.gs-sp-desc a { color: var(--gs-accent); text-decoration: underline; text-underline-offset: 3px; }
.gs-sp-desc ul, .gs-sp-desc ol { padding-left: 1.2em; }

.gs-sp-meta-row { gap: 16px; }

.gs-sp-card {
    background: var(--gs-bg-card);
    border: 1px solid var(--gs-line);
    border-radius: var(--gs-radius-lg);
    padding: 18px 20px 20px;
}

.gs-sp-section-label {
    color: var(--gs-muted);
    font-size: 11px;
    letter-spacing: .18em;
    border-bottom-color: var(--gs-line);
}

.gs-sp-brand-item,
.gs-sp-dim-size { color: var(--gs-ink); }

.gs-sp-dim-w-label,
.gs-sp-dim-h-label { color: var(--gs-muted); }

.gs-sp-dim-rect { box-shadow: 0 4px 14px rgba(29, 27, 23, .18); }

@media (max-width: 991px) {
    .gs-sp-grid { grid-template-columns: 1fr; }
}

/* Enquiry row the theme adds under the product block. */
.gs-sp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid var(--gs-line);
}
.gs-sp-actions__note {
    font-size: 13.5px;
    color: var(--gs-muted);
    flex: 1 1 220px;
}

/* ---------------------------------------------------------
   Utilities
   --------------------------------------------------------- */

.gs-mt-0 { margin-top: 0 !important; }
.gs-text-center { text-align: center; }
.gs-hide { display: none !important; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Reveal-on-scroll */
.gs-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.22, .61, .36, 1); }
.gs-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .gs-reveal { opacity: 1; transform: none; } }

/* ---------------------------------------------------------
   Light breadcrumb bar (single product / single project)
   --------------------------------------------------------- */

.gs-crumbbar {
    border-bottom: 1px solid var(--gs-line);
    background: var(--gs-bg-header);
    padding-block: 16px;
}
.gs-crumbbar .gs-breadcrumb { margin: 0; color: var(--gs-muted); }
.gs-crumbbar .gs-breadcrumb a { color: var(--gs-muted-2); }
.gs-crumbbar .gs-breadcrumb a:hover { color: var(--gs-accent); }

/* ---------------------------------------------------------
   Comments + widgets (blog only, kept deliberately plain)
   --------------------------------------------------------- */

.gs-comments { border-top: 1px solid var(--gs-line); padding-top: 34px; }
.gs-comment-list { list-style: none; margin: 0 0 34px; padding: 0; }
.gs-comment-list ol { list-style: none; padding-left: 28px; }
.gs-comment-list .comment-body { padding: 18px 0; border-bottom: 1px solid var(--gs-line); }
.gs-comment-list .comment-author img { border-radius: 50%; }

.gs-widget { margin-bottom: 34px; }
.gs-widget__title { font-size: 18px; margin-bottom: 14px; }

.gs-form-note { font-size: 13.5px; color: var(--gs-muted); }

/* The product search overlay button sits in the header actions row. */
.gs-header__actions .gs-ps-trigger,
.gs-header__actions .gfb-btn { margin: 0; }

/* ---------------------------------------------------------
   Stacked-stones mark (used until a Custom Logo is uploaded)
   --------------------------------------------------------- */

.gs-stones { position: relative; display: block; width: 58px; height: 88px; }
.gs-stones i {
    position: absolute;
    display: block;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(29, 27, 23, .22);
}
/* Beige · pale grey · charcoal · warm sand · slate base — the real cairn logo. */
.gs-stones i:nth-child(1) { left: 15px; top: 1px;  width: 27px; height: 15px; background: linear-gradient(155deg, #f2e9da 12%, #cfbfa4 60%, #b9a888 100%); }
.gs-stones i:nth-child(2) { left: 5px;  top: 15px; width: 48px; height: 19px; background: linear-gradient(155deg, #d9d5cd 10%, #b0aaa2 62%, #918b83 100%); }
.gs-stones i:nth-child(3) { left: 10px; top: 32px; width: 39px; height: 17px; background: linear-gradient(155deg, #4b4844 10%, #2a2724 65%, #1a1816 100%); }
.gs-stones i:nth-child(4) { left: 6px;  top: 46px; width: 45px; height: 17px; background: linear-gradient(155deg, #ece2d1 10%, #cdbb9f 62%, #b19d80 100%); }
.gs-stones i:nth-child(5) { left: 0;    top: 61px; width: 57px; height: 24px; background: linear-gradient(155deg, #8d857a 8%, #635c53 58%, #423d37 100%); }

.gs-footer__brand .gs-stones { width: 46px; height: 70px; transform: scale(.8); transform-origin: left center; }

.gs-brand--image-only .gs-brand__text { display: none; }
.gs-brand--image-only .gs-brand__mark img { border-radius: var(--gs-radius); }

@media (max-width: 700px) {
    .gs-stones { width: 42px; height: 64px; transform: scale(.72); transform-origin: left center; }
}

/* ---------------------------------------------------------
   mu-plugin widgets, re-tinted for this theme
   (product search trigger + 3D catalog button)
   --------------------------------------------------------- */

.gs-header__actions .gs-ps-trigger {
    width: 42px;
    height: 42px;
    border-radius: var(--gs-radius);
    border: 1px solid var(--gs-line-strong);
    background: transparent;
    color: var(--gs-ink);
}
.gs-header__actions .gs-ps-trigger:hover,
.gs-header__actions .gs-ps-trigger:focus-visible {
    background: var(--gs-accent);
    border-color: var(--gs-accent);
    color: var(--gs-light);
    transform: none;
}
.gs-ps-trigger--desktop { margin-left: 0; }

.gs-ps-panel { font-family: var(--gs-font-body); }
.gs-ps-card-title { font-family: var(--gs-font-head); }

/* Catalog flipbook button — the mu-plugin reuses the old theme's button
   markup, so give it this theme's outline-on-dark treatment. */
.gfb-open-btn__wrap { display: inline-block; text-align: left !important; }
.gfb-btn .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    font-family: var(--gs-font-body);
    font-size: 14.5px;
    line-height: 1.2;
    padding: 17px clamp(20px, 2.4vw, 36px);
    border-radius: var(--gs-radius);
    border: 1px solid rgba(250, 247, 241, .75);
    background: transparent;
    color: var(--gs-light);
    cursor: pointer;
    transition: background .22s ease, border-color .22s ease, color .22s ease;
}
.gfb-btn .btn:hover { background: rgba(250, 247, 241, .12); color: var(--gs-light); }
.gfb-btn .btn svg { flex: 0 0 auto; }

/* Same button on a light background (used inside light sections). */
.gs-section:not(.gs-section--dark) .gfb-btn .btn,
.gs-form-card .gfb-btn .btn {
    border-color: var(--gs-line-strong);
    color: var(--gs-ink);
}
.gs-section:not(.gs-section--dark) .gfb-btn .btn:hover { background: rgba(36, 33, 29, .06); color: var(--gs-ink); }

/* Icons inside buttons need an explicit box — gstone_icon() ships no width/height. */
.gs-btn svg { width: 17px; height: 17px; flex: 0 0 auto; }

/* Product search overlay: swap the old theme's green accent for the brass one. */
.gs-ps-trigger:hover,
.gs-ps-trigger:focus-visible,
.gs-ps-close:hover { background: var(--gs-accent); border-color: var(--gs-accent); }

/* Spec table under the product block (the mu-plugin's own cards only appear
   when a size or brand is set, so this always gives the page a factual base). */
.gs-specs {
    margin: 34px 0 0;
    padding: 0;
    border-top: 1px solid var(--gs-line);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0;
}
.gs-specs__row {
    padding: 18px 0;
    border-bottom: 1px solid var(--gs-line);
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.gs-specs dt {
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gs-muted);
}
.gs-specs dd {
    margin: 0;
    font-size: 16px;
    color: var(--gs-ink);
}
.gs-specs dd a { color: var(--gs-ink); border-bottom: 1px solid var(--gs-line-strong); }
.gs-specs dd a:hover { color: var(--gs-accent); border-bottom-color: var(--gs-accent); }

@media (min-width: 700px) {
    .gs-specs__row + .gs-specs__row { padding-left: 26px; }
}

/* Keep the gallery from dwarfing the information beside it. */
.gs-sp-gallery-col { max-width: 640px; }
.gs-sp-grid { align-items: start; }

.gs-sp-actions { margin-top: 8px; border-top: 0; padding-top: 22px; }

/* ---------------------------------------------------------
   Single product layout
   The mu-plugin renders gallery + info as its own two-column grid. `display:
   contents` flattens it into this container so the spec table and the enquiry
   row can sit in the same right-hand column instead of below everything.
   --------------------------------------------------------- */

@media (min-width: 992px) {
    .gs-product-layout {
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
        column-gap: clamp(32px, 3.6vw, 68px);
        align-items: start;
    }
    .gs-product-layout .gs-sp-wrap,
    .gs-product-layout .gs-sp-grid { display: contents; }

    .gs-product-layout .gs-sp-gallery-col {
        grid-column: 1;
        grid-row: 1 / span 4;
        max-width: 620px;
    }
    .gs-product-layout .gs-sp-info-col,
    .gs-product-layout .gs-specs,
    .gs-product-layout .gs-sp-actions { grid-column: 2; }

    .gs-product-layout .gs-sp-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .gs-product-layout .gs-sp-actions .gs-btn { width: 100%; }
    .gs-product-layout .gs-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gs-product-layout .gs-specs__row + .gs-specs__row { padding-left: 0; }
    .gs-product-layout .gs-specs__row:nth-child(even) { padding-left: 26px; }
}

@media (min-width: 992px) {
    /* In the stacked column the note must not absorb the free space. */
    .gs-product-layout .gs-sp-actions__note { flex: 0 0 auto; }
    .gs-product-layout .gs-sp-actions { align-self: start; gap: 12px; }
}

/* --- fixes found while reviewing the rendered pages --- */

/* Label must sit above the value, not inline with it. */
.gs-contact-item__label { display: block; }
.gs-contact-item__value { display: block; }

/* Two tidy rows of stats when they sit in a half-width column. */
.gs-split__body .gs-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* The cairn's dark stones vanish against the dark footer — lighten them there. */
.gs-footer .gs-stones i:nth-child(2) { background: linear-gradient(155deg, #e7e3db 10%, #c2bcb3 62%, #a49e95 100%); }
.gs-footer .gs-stones i:nth-child(3) { background: linear-gradient(155deg, #8e8781 10%, #6a635c 65%, #4e4842 100%); }
.gs-footer .gs-stones i:nth-child(5) { background: linear-gradient(155deg, #a79e92 8%, #837a6f 58%, #605850 100%); }
.gs-footer .gs-stones i { box-shadow: 0 2px 6px rgba(0, 0, 0, .4); }

/* Category page actions (contact + 3D catalogue). */
.gs-cat-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: clamp(22px, 2.4vw, 34px);
}
.gs-cat-actions .gfb-open-btn__wrap { display: inline-block; }

/* Photo and copy end at the same line in the two-column blocks. */
@media (min-width: 900px) {
    .gs-split { align-items: stretch; }
    .gs-split__media { display: flex; min-height: 400px; }
    .gs-split__media img {
        width: 100%;
        height: 100%;
        aspect-ratio: auto;
        object-fit: cover;
    }
    /* The project page deliberately keeps its columns top-aligned. */
    .single-project .gs-split { align-items: start; }
}
