/*
Theme Name: Gallery Luxe
Author: Mark Rimmer Leeds SEO
Description: A refined, image-led WooCommerce theme for premium wall art, framed prints and statement interiors.
Version: 1.5.7
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gallery-luxe
Tags: e-commerce, custom-logo, custom-menu, featured-images, full-width-template, theme-options, translation-ready, wide-blocks
*/

:root {
  --gl-ink: #171715;
  --gl-muted: #6e6b64;
  --gl-paper: #f5f1e9;
  --gl-white: #fffdf9;
  --gl-line: #ded7ca;
  --gl-accent: #aa8551;
  --gl-dark: #171715;
  --gl-serif: Georgia, 'Times New Roman', serif;
  --gl-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gl-radius: 2px;
  --gl-shadow: 0 24px 70px rgba(25, 22, 16, .12);
  --gl-wrap: min(1380px, calc(100% - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--gl-ink);
  background: var(--gl-white);
  font-family: var(--gl-sans);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
a:hover { color: var(--gl-accent); }
button, input, select, textarea { font: inherit; }
button, .button, input[type='submit'] { cursor: pointer; }

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px;
}
.screen-reader-text:focus {
  clip: auto !important; clip-path: none; background: #fff; color: #111; display: block;
  font-size: 14px; height: auto; left: 12px; padding: 12px 16px; top: 12px; width: auto; z-index: 100000;
}

.gl-wrap { width: var(--gl-wrap); margin-inline: auto; }
.gl-narrow { width: min(780px, calc(100% - 48px)); margin-inline: auto; }
.gl-section { padding: clamp(70px, 8vw, 130px) 0; }
.gl-section--paper { background: var(--gl-paper); }
.gl-section--dark { background: var(--gl-dark); color: #fff; }
.gl-eyebrow {
  margin: 0 0 18px; color: var(--gl-accent); font-size: 12px; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
}
.gl-display, h1, h2, h3 {
  font-family: var(--gl-serif); font-weight: 400; line-height: 1.08; letter-spacing: -.025em;
}
h1 { font-size: clamp(44px, 7vw, 92px); margin: 0 0 26px; }
h2 { font-size: clamp(38px, 5vw, 66px); margin: 0 0 24px; }
h3 { font-size: clamp(25px, 2.7vw, 36px); margin: 0 0 16px; }
p { margin: 0 0 1.25em; }

.gl-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 52px; padding: 13px 25px; border: 1px solid var(--gl-dark); border-radius: 0;
  background: var(--gl-dark); color: #fff; font-size: 12px; font-weight: 700;
  letter-spacing: .14em; line-height: 1; text-decoration: none; text-transform: uppercase;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.gl-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: var(--gl-accent); border-color: var(--gl-accent); color: #fff; transform: translateY(-1px);
}
.gl-button--light { background: #fff; color: var(--gl-dark); border-color: #fff; }
.gl-button--ghost { background: transparent; color: var(--gl-dark); }
.gl-button--ghost:hover { color: #fff; }
.gl-text-link {
  display: inline-flex; align-items: center; gap: 10px; color: var(--gl-ink); font-size: 12px;
  font-weight: 700; letter-spacing: .15em; text-decoration: none; text-transform: uppercase;
}
.gl-text-link::after { content: '→'; font-size: 18px; transition: transform .2s ease; }
.gl-text-link:hover::after { transform: translateX(5px); }

/* Announcement */
.gl-announcement {
  min-height: 34px; padding: 8px 24px; background: var(--gl-accent); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .16em; text-align: center; text-transform: uppercase;
}

/* Header */
.site-header {
  position: relative; z-index: 100; border-bottom: 1px solid rgba(222, 215, 202, .85);
  background: rgba(255, 253, 249, .96); backdrop-filter: blur(14px);
}
.home .site-header { position: absolute; left: 0; right: 0; background: rgba(255, 253, 249, .86); }
.site-header.is-scrolled { position: fixed; top: 0; left: 0; right: 0; box-shadow: 0 10px 35px rgba(20, 18, 14, .08); }
.admin-bar .site-header.is-scrolled { top: 32px; }
.gl-header-inner {
  width: var(--gl-wrap); min-height: 86px; margin-inline: auto; display: grid;
  grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px;
}
.site-branding { justify-self: center; text-align: center; line-height: 1; }
.custom-logo { max-height: 54px; width: auto; }
.site-title {
  display: block; font-family: var(--gl-serif); font-size: 28px; letter-spacing: .08em;
  line-height: 1; text-decoration: none; text-transform: uppercase;
}
.site-description { margin: 7px 0 0; color: var(--gl-muted); font-size: 9px; letter-spacing: .22em; text-transform: uppercase; }
.gl-nav { justify-self: start; }
.gl-nav ul { display: flex; gap: 28px; align-items: center; margin: 0; padding: 0; list-style: none; }
.gl-nav li, .gl-nav a { white-space: nowrap; }
.gl-nav a { font-size: 12px; font-weight: 650; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.gl-header-actions { justify-self: end; display: flex; align-items: center; gap: 18px; }
.gl-icon-link { position: relative; display: inline-flex; align-items: center; justify-content: center; color: var(--gl-dark); text-decoration: none; }
.gl-icon-link svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.gl-cart-count {
  position: absolute; top: -7px; right: -9px; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 20px; background: var(--gl-accent); color: #fff; font-size: 9px; line-height: 17px; text-align: center;
}
.gl-menu-toggle { display: none; width: 42px; height: 42px; padding: 9px; border: 0; background: transparent; }
.gl-menu-toggle span { display: block; width: 23px; height: 1px; margin: 5px auto; background: var(--gl-dark); transition: transform .2s ease, opacity .2s ease; }

/* Hero */
.gl-hero {
  position: relative; min-height: min(900px, 96vh); overflow: hidden; background: #e9e1d4;
  display: flex; align-items: center; padding: 150px 0 90px;
}
.gl-hero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(244, 239, 230, .96) 0%, rgba(244, 239, 230, .82) 38%, rgba(244, 239, 230, .12) 70%);
}
.gl-hero.has-image { background-size: cover; background-position: center; }
.gl-hero-inner { position: relative; z-index: 2; width: var(--gl-wrap); margin-inline: auto; }
.gl-hero-copy { max-width: 690px; }
.gl-hero-copy p:not(.gl-eyebrow) { max-width: 550px; color: #46433e; font-size: clamp(17px, 1.4vw, 20px); }
.gl-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.gl-hero-art { position: absolute; inset: 0 0 0 48%; overflow: hidden; }
.gl-art-frame {
  position: absolute; padding: 14px; background: #efe7da; box-shadow: 0 30px 70px rgba(20, 18, 12, .22);
}
.gl-art-frame::before { content: ''; display: block; width: 100%; height: 100%; background: var(--art); }
.gl-art-frame--1 { width: 34%; height: 58%; left: 19%; top: 19%; transform: rotate(-3deg); --art: linear-gradient(145deg, #151515 0 48%, #b99561 49% 54%, #d7c6a8 55%); }
.gl-art-frame--2 { width: 29%; height: 47%; right: 3%; top: 9%; transform: rotate(4deg); --art: radial-gradient(circle at 68% 38%, #d3a76e 0 17%, transparent 18%), linear-gradient(35deg, #dfd5c3 0 48%, #27251f 49%); }
.gl-art-frame--3 { width: 27%; height: 42%; right: 10%; bottom: 5%; transform: rotate(-2deg); --art: linear-gradient(160deg, #b68854 0 26%, #f3ead9 27% 62%, #34302b 63%); }

/* Trust strip */
.gl-trust { border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); background: var(--gl-white); }
.gl-trust-grid { width: var(--gl-wrap); margin-inline: auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.gl-trust-item { min-height: 120px; padding: 30px; border-right: 1px solid var(--gl-line); display: flex; flex-direction: column; justify-content: center; }
.gl-trust-item:first-child { border-left: 1px solid var(--gl-line); }
.gl-trust-item strong { font-family: var(--gl-serif); font-size: 20px; font-weight: 400; }
.gl-trust-item span { margin-top: 4px; color: var(--gl-muted); font-size: 12px; }

/* Section headings */
.gl-section-head { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 52px; }
.gl-section-head > div { max-width: 780px; }
.gl-section-head h2 { margin-bottom: 0; }

/* Categories */
.gl-category-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 24px; }
.gl-category-card { position: relative; min-height: 520px; overflow: hidden; background: #ddd5c8; color: #fff; text-decoration: none; }
.gl-category-card:nth-child(n+2) { min-height: 430px; }
.gl-category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.6,.2,1); }
.gl-category-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 38%, rgba(15, 14, 12, .72)); }
.gl-category-card:hover img { transform: scale(1.035); }
.gl-category-card__fallback { position: absolute; inset: 0; background: linear-gradient(145deg, #d4c4ab, #756957); }
.gl-category-card__body { position: absolute; z-index: 2; left: 34px; right: 34px; bottom: 30px; }
.gl-category-card h3 { margin: 0 0 8px; color: #fff; font-size: 35px; }
.gl-category-card span { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }

/* Editorial */
.gl-editorial { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 700px; background: var(--gl-paper); }
.gl-editorial-media { position: relative; min-height: 600px; background: #d6c8b4; overflow: hidden; }
.gl-editorial-media img { width: 100%; height: 100%; object-fit: cover; }
.gl-editorial-placeholder { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(135deg, #a8875e, #eee3d2 55%, #302c27); }
.gl-editorial-placeholder::before { content: ''; width: 48%; aspect-ratio: 1; border: 16px solid #e8decf; background: linear-gradient(145deg, #181817 0 48%, #b78d59 49% 56%, #d8cab8 57%); box-shadow: var(--gl-shadow); }
.gl-editorial-copy { padding: clamp(55px, 8vw, 130px); display: flex; flex-direction: column; justify-content: center; }
.gl-editorial-copy p:not(.gl-eyebrow) { color: #58544d; font-size: 18px; }

/* Quote */
.gl-quote { text-align: center; }
.gl-quote blockquote { margin: 0 auto 28px; max-width: 980px; font-family: var(--gl-serif); font-size: clamp(32px, 4vw, 58px); line-height: 1.22; }
.gl-quote cite { color: var(--gl-accent); font-size: 11px; font-style: normal; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }

/* Journal */
.gl-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.gl-post-card { border-top: 1px solid var(--gl-line); padding-top: 18px; }
.gl-post-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 22px; }
.gl-post-card__meta { color: var(--gl-accent); font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.gl-post-card h3 { margin: 12px 0 15px; font-size: 29px; }
.gl-post-card h3 a { text-decoration: none; }
.gl-post-card p { color: var(--gl-muted); }

/* Content */
.site-main { min-height: 50vh; }
.gl-page-header { padding: 170px 0 70px; background: var(--gl-paper); text-align: center; }
.gl-page-header h1 { font-size: clamp(46px, 6vw, 78px); }
.gl-content { padding: 80px 0 110px; }
.entry-content > * { max-width: 780px; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: 1180px; }
.entry-content > .alignfull { max-width: none; }
.entry-content img { margin-top: 2em; margin-bottom: 2em; }
.entry-meta { color: var(--gl-muted); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.navigation.pagination { margin-top: 60px; }
.nav-links { display: flex; gap: 8px; justify-content: center; }
.page-numbers { min-width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--gl-line); text-decoration: none; }
.page-numbers.current, .page-numbers:hover { border-color: var(--gl-dark); background: var(--gl-dark); color: #fff; }

/* Forms */
input[type='text'], input[type='email'], input[type='tel'], input[type='password'], input[type='search'], input[type='number'], textarea, select {
  width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--gl-line); border-radius: 0; background: #fff; color: var(--gl-ink);
}
textarea { min-height: 140px; }
input:focus, textarea:focus, select:focus { outline: 2px solid rgba(170, 133, 81, .25); border-color: var(--gl-accent); }

/* WooCommerce */
.gl-shop-shell { width: var(--gl-wrap); margin-inline: auto; padding: 110px 0 100px; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 34px; color: var(--gl-muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce .woocommerce-breadcrumb a { color: var(--gl-ink); text-decoration: none; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 32px; color: var(--gl-muted); }
.woocommerce .woocommerce-ordering select { min-width: 230px; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 46px 24px; margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { position: relative; float: none; width: auto; margin: 0; list-style: none; }
.woocommerce ul.products li.product a { text-decoration: none; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1.12; object-fit: cover; margin: 0 0 20px; background: var(--gl-paper); transition: transform .4s ease, box-shadow .4s ease; }
.woocommerce ul.products li.product:hover a img { transform: translateY(-4px); box-shadow: 0 25px 45px rgba(25, 22, 16, .11); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; font-family: var(--gl-serif); font-size: 22px; font-weight: 400; }
.woocommerce ul.products li.product .price { color: var(--gl-muted); font-size: 14px; }
.woocommerce ul.products li.product .price ins { color: var(--gl-accent); text-decoration: none; }
.woocommerce ul.products li.product .button { width: 100%; margin-top: 14px; }
.woocommerce span.onsale { min-width: 48px; min-height: 48px; padding: 0; border-radius: 50%; background: var(--gl-accent); font-size: 10px; line-height: 48px; letter-spacing: .08em; text-transform: uppercase; }
.home .woocommerce ul.products li.product .onsale { position: absolute; z-index: 2; top: -8px; left: -8px; margin: 0; text-align: center; }
.home .woocommerce ul.products li.product .price { display: block; }
.home .woocommerce .star-rating { position: relative; width: 5.4em; height: 1.1em; margin: 0 0 10px; overflow: hidden; color: #c7b18e; font-family: Arial,sans-serif; font-size: 13px; line-height: 1; letter-spacing: .08em; }
.home .woocommerce .star-rating::before { content: '★★★★★'; position: absolute; inset: 0; color: #d6d1c8; }
.home .woocommerce .star-rating span { position: absolute; top: 0; left: 0; height: 1.1em; padding-top: 1.1em; overflow: hidden; }
.home .woocommerce .star-rating span::before { content: '★★★★★'; position: absolute; top: 0; left: 0; color: #c09252; }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .82fr); gap: clamp(42px, 5vw, 78px); }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.woocommerce div.product .product_title { font-size: clamp(38px, 3.8vw, 58px); line-height: 1.04; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--gl-accent); font-family: var(--gl-serif); font-size: 28px; }
.woocommerce-product-details__short-description { color: var(--gl-muted); font-size: 17px; }
.woocommerce div.product form.cart { display: flex; gap: 10px; margin: 32px 0; }
.woocommerce .quantity .qty { min-height: 52px; width: 76px; }
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 50px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 30px; padding: 0; border-bottom: 1px solid var(--gl-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 15px 0; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--gl-accent); }
.woocommerce div.product .related.products { grid-column: 1 / -1; margin-top: 60px; }
.woocommerce table.shop_table { border: 1px solid var(--gl-line); border-radius: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 16px; border-color: var(--gl-line); }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top-color: var(--gl-accent); background: var(--gl-paper); }
.woocommerce-info::before, .woocommerce-message::before { color: var(--gl-accent); }
.woocommerce form .form-row label { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.woocommerce-checkout #payment { border-radius: 0; background: var(--gl-paper); }
.woocommerce-cart .cart-collaterals .cart_totals, .woocommerce-checkout-review-order { background: var(--gl-paper); padding: 28px; }

/* Footer */
.site-footer { background: var(--gl-dark); color: rgba(255,255,255,.78); }
.gl-footer-main { width: var(--gl-wrap); margin-inline: auto; padding: 85px 0 65px; display: grid; grid-template-columns: 1.4fr .7fr .7fr 1fr; gap: 60px; }
.gl-footer-brand { max-width: 390px; }
.gl-footer-brand .site-title { color: #fff; margin-bottom: 22px; }
.gl-footer-brand p { color: rgba(255,255,255,.6); }
.gl-footer-col h3 { color: #fff; font-family: var(--gl-sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.gl-footer-col ul { margin: 0; padding: 0; list-style: none; }
.gl-footer-col li { margin: 9px 0; }
.gl-footer-col a { color: rgba(255,255,255,.7); text-decoration: none; }
.gl-footer-col a:hover { color: #fff; }
.gl-footer-bottom { border-top: 1px solid rgba(255,255,255,.13); }
.gl-footer-bottom-inner { width: var(--gl-wrap); min-height: 76px; margin-inline: auto; display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 11px; }
.gl-socials { display: flex; gap: 18px; }


/* Compact laptop layout */
@media (max-width: 1500px) and (min-width: 1101px) {
  :root { --gl-wrap: min(1240px, calc(100% - 56px)); }
  .gl-header-inner { min-height: 76px; gap: 22px; }
  .custom-logo { max-height: 46px; }
  .gl-nav ul { gap: 18px; }
  .gl-nav a { font-size: 11px; letter-spacing: .07em; }
  .gl-header-actions { gap: 15px; }
  .gl-shop-shell { padding-top: 82px; }
  .woocommerce div.product { grid-template-columns: minmax(0, 1fr) minmax(360px, .86fr); gap: 48px; }
  .woocommerce div.product .product_title { font-size: clamp(38px, 3.25vw, 52px); }
  .woocommerce-product-details__short-description { font-size: 16px; }
  .woocommerce div.product p.price,
  .woocommerce div.product span.price { font-size: 25px; }
}

@media (max-height: 850px) and (min-width: 1101px) {
  .gl-shop-shell { padding-top: 64px; }
  .woocommerce div.product .product_title { margin-bottom: 18px; }
  .woocommerce div.product form.cart { margin: 24px 0; }
}

/* Responsive */
@media (max-width: 1100px) {
  :root { --gl-wrap: min(100% - 36px, 1380px); }
  .gl-header-inner { grid-template-columns: auto 1fr auto; }
  .site-branding { justify-self: start; }
  .gl-menu-toggle { display: block; }
  .gl-nav {
    position: fixed; inset: 0; top: 0; padding: 120px 30px 40px; background: var(--gl-white);
    opacity: 0; visibility: hidden; transform: translateY(-12px); transition: .25s ease;
  }
  .menu-open .gl-nav { opacity: 1; visibility: visible; transform: none; }
  .gl-nav ul { flex-direction: column; align-items: flex-start; gap: 23px; }
  .gl-nav a { font-family: var(--gl-serif); font-size: 34px; font-weight: 400; letter-spacing: -.02em; text-transform: none; }
  .menu-open .gl-menu-toggle { position: fixed; z-index: 101; right: 24px; top: 24px; }
  .admin-bar.menu-open .gl-menu-toggle { top: 56px; }
  .menu-open .gl-menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-open .gl-menu-toggle span:nth-child(2) { opacity: 0; }
  .menu-open .gl-menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .gl-hero-art { left: 52%; }
  .gl-trust-grid { grid-template-columns: repeat(2, 1fr); }
  .gl-trust-item:nth-child(3) { border-left: 1px solid var(--gl-line); border-top: 1px solid var(--gl-line); }
  .gl-trust-item:nth-child(4) { border-top: 1px solid var(--gl-line); }
  .gl-category-grid { grid-template-columns: 1fr 1fr; }
  .gl-category-card:first-child { grid-column: 1 / -1; }
  .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gl-footer-main { grid-template-columns: 1.3fr 1fr 1fr; }
  .gl-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 780px) {
  :root { --gl-wrap: calc(100% - 28px); }
  .admin-bar .site-header.is-scrolled { top: 46px; }
  .gl-header-inner { min-height: 72px; gap: 14px; }
  .site-title { font-size: 22px; }
  .site-description, .gl-header-search { display: none; }
  .gl-hero { min-height: 820px; padding: 125px 0 360px; align-items: flex-start; }
  .gl-hero::after { background: linear-gradient(180deg, rgba(244,239,230,.96) 0 49%, rgba(244,239,230,.18) 78%); }
  .gl-hero-art { left: 0; top: 54%; }
  .gl-art-frame--1 { width: 48%; height: 60%; left: 9%; top: 10%; }
  .gl-art-frame--2 { width: 39%; height: 46%; right: 7%; top: 2%; }
  .gl-art-frame--3 { width: 36%; height: 40%; right: 13%; bottom: 4%; }
  .gl-section { padding: 75px 0; }
  .gl-section-head { display: block; margin-bottom: 35px; }
  .gl-section-head .gl-text-link { margin-top: 18px; }
  .gl-trust-grid { grid-template-columns: 1fr; }
  .gl-trust-item, .gl-trust-item:first-child, .gl-trust-item:nth-child(3) { border-left: 1px solid var(--gl-line); border-top: 1px solid var(--gl-line); }
  .gl-category-grid { grid-template-columns: 1fr; }
  .gl-category-card:first-child { grid-column: auto; }
  .gl-category-card, .gl-category-card:nth-child(n+2) { min-height: 430px; }
  .gl-editorial { grid-template-columns: 1fr; }
  .gl-editorial-media { min-height: 470px; }
  .gl-editorial-copy { padding: 65px 28px; }
  .gl-post-grid { grid-template-columns: 1fr; }
  .gl-page-header { padding-top: 130px; }
  .gl-shop-shell { padding: 105px 0 80px; }
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 14px; }
  .woocommerce div.product { grid-template-columns: 1fr; gap: 30px; }
  .woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related.products { grid-column: auto; }
  .gl-footer-main { grid-template-columns: 1fr 1fr; gap: 45px 25px; padding-top: 65px; }
  .gl-footer-brand { grid-column: 1 / -1; }
  .gl-footer-bottom-inner { align-items: flex-start; flex-direction: column; justify-content: center; padding: 22px 0; }
}

@media (max-width: 480px) {
  h1 { font-size: 45px; }
  h2 { font-size: 39px; }
  .gl-hero { min-height: 760px; }
  .gl-hero-actions { align-items: stretch; flex-direction: column; }
  .gl-hero-actions .gl-button { width: 100%; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .woocommerce div.product form.cart { align-items: stretch; flex-direction: column; }
  .woocommerce .quantity .qty { width: 100%; }
  .gl-footer-main { grid-template-columns: 1fr; }
  .gl-footer-brand { grid-column: auto; }
}

/* About and contact page templates */
.gl-inner-hero { position: relative; overflow: hidden; background: var(--gl-paper); }
.gl-inner-hero__grid { min-height: 760px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: stretch; }
.gl-inner-hero__copy { padding: clamp(100px, 10vw, 170px) clamp(40px, 7vw, 110px) 100px 0; display: flex; flex-direction: column; justify-content: center; }
.gl-inner-hero__copy h1 { font-size: clamp(52px, 6.5vw, 96px); }
.gl-inner-hero__intro { max-width: 670px; color: #504c45; font-family: var(--gl-serif); font-size: clamp(20px, 2vw, 28px); line-height: 1.45; }
.gl-inner-hero__media { position: relative; min-height: 620px; background: #d8cdbd; overflow: hidden; }
.gl-inner-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.gl-about-art { position: absolute; inset: 0; display: block; }
.gl-about-art--one { background: linear-gradient(145deg, #c9b899 0 24%, #f0e7d7 25% 55%, #28251f 56% 72%, #9a7350 73%); }
.gl-about-art--one::after { content: ''; position: absolute; inset: 13% 17%; border: 18px solid #eee5d6; box-shadow: var(--gl-shadow); background: linear-gradient(155deg, #181816 0 44%, #b58a57 45% 51%, #dacdb8 52%); transform: rotate(2deg); }
.gl-about-story { display: grid; grid-template-columns: .38fr 1fr; gap: clamp(50px, 8vw, 130px); }
.gl-about-story__copy { max-width: 900px; }
.gl-about-story__copy > p { color: #514e47; font-family: var(--gl-serif); font-size: clamp(21px, 2vw, 29px); line-height: 1.55; }
.gl-about-editor-content { margin-top: 38px; color: var(--gl-muted); }
.gl-about-editor-content > * { max-width: none; }
.gl-about-values { padding: 0; border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); }
.gl-about-values__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.gl-about-values article { min-height: 310px; padding: 58px 44px; border-right: 1px solid var(--gl-line); }
.gl-about-values article:first-child { border-left: 1px solid var(--gl-line); }
.gl-about-values article > span { color: var(--gl-accent); font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.gl-about-values h3 { margin-top: 55px; }
.gl-about-values p { color: var(--gl-muted); }
.gl-about-craft { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(50px, 8vw, 130px); }
.gl-about-craft__media { position: relative; min-height: 650px; overflow: hidden; background: #d4c6b1; }
.gl-about-craft__media img { width: 100%; height: 100%; object-fit: cover; }
.gl-about-art--two { background: radial-gradient(circle at 68% 27%, #c6995f 0 10%, transparent 11%), linear-gradient(130deg, #ede3d3 0 44%, #4a433a 45% 65%, #af8558 66%); }
.gl-about-art--two::after { content: ''; position: absolute; width: 46%; aspect-ratio: 1 / 1.25; left: 11%; bottom: 9%; border: 14px solid #ece2d3; box-shadow: 0 25px 60px rgba(20,18,12,.22); background: linear-gradient(165deg, #b58350 0 28%, #f1e7d7 29% 68%, #27241f 69%); transform: rotate(-3deg); }
.gl-about-craft__copy p:not(.gl-eyebrow) { color: #57534c; font-size: 18px; }
.gl-about-quote { text-align: center; }
.gl-about-quote blockquote { margin: 0 0 42px; font-family: var(--gl-serif); font-size: clamp(34px, 5vw, 67px); line-height: 1.2; }

.gl-inner-hero--contact { padding: clamp(100px, 10vw, 160px) 0 90px; text-align: center; }
.gl-contact-intro h1 { font-size: clamp(50px, 7vw, 90px); }
.gl-contact-intro .gl-inner-hero__intro { margin-inline: auto; }
.gl-contact-details { border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); background: var(--gl-white); }
.gl-contact-details__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.gl-contact-details article { min-height: 190px; padding: 38px 30px; border-right: 1px solid var(--gl-line); }
.gl-contact-details article:first-child { border-left: 1px solid var(--gl-line); }
.gl-contact-details article > span { display: block; margin-bottom: 18px; color: var(--gl-accent); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.gl-contact-details article a { font-family: var(--gl-serif); font-size: 23px; text-decoration: none; }
.gl-contact-details article p { margin: 0; color: var(--gl-muted); }
.gl-contact-main { display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr); gap: clamp(35px, 6vw, 95px); align-items: stretch; }
.gl-contact-form-panel { padding: clamp(35px, 5vw, 70px); background: var(--gl-white); box-shadow: 0 25px 70px rgba(26,22,15,.07); }
.gl-contact-form-panel h2 { font-size: clamp(40px, 4vw, 61px); }
.gl-contact-form { display: grid; gap: 22px; margin-top: 35px; }
.gl-contact-form label { display: grid; gap: 8px; color: #48443e; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.gl-contact-form label span { color: var(--gl-accent); }
.gl-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.gl-form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.gl-form-notice { margin: 25px 0; padding: 15px 18px; border-left: 3px solid var(--gl-accent); background: var(--gl-paper); }
.gl-form-notice--success { border-left-color: #4d7b59; }
.gl-form-notice--error { border-left-color: #9a3f39; }
.gl-map-panel { min-height: 720px; background: #d7ccba; }
.gl-map-panel iframe { width: 100%; height: 100%; min-height: 720px; border: 0; filter: saturate(.75) contrast(.95); }
.gl-map-placeholder { height: 100%; min-height: 720px; padding: 70px; display: flex; flex-direction: column; justify-content: flex-end; background: radial-gradient(circle at 65% 25%, rgba(170,133,81,.4) 0 10%, transparent 11%), linear-gradient(135deg, #e8dfd0, #b7a78e); }
.gl-map-placeholder h3 { max-width: 440px; }

@media (max-width: 1100px) {
  .gl-inner-hero__grid { min-height: 680px; grid-template-columns: 1fr 1fr; }
  .gl-contact-details__grid { grid-template-columns: repeat(2, 1fr); }
  .gl-contact-details article:nth-child(3) { border-left: 1px solid var(--gl-line); border-top: 1px solid var(--gl-line); }
  .gl-contact-details article:nth-child(4) { border-top: 1px solid var(--gl-line); }
  .gl-contact-main { grid-template-columns: 1fr 1fr; gap: 30px; }
}

@media (max-width: 780px) {
  .gl-inner-hero__grid { display: flex; flex-direction: column; }
  .gl-inner-hero__copy { padding: 90px 0 65px; }
  .gl-inner-hero__media { min-height: 500px; }
  .gl-about-story { grid-template-columns: 1fr; gap: 20px; }
  .gl-about-values__grid { grid-template-columns: 1fr; }
  .gl-about-values article, .gl-about-values article:first-child { min-height: auto; border-left: 1px solid var(--gl-line); border-top: 1px solid var(--gl-line); }
  .gl-about-values article:first-child { border-top: 0; }
  .gl-about-values h3 { margin-top: 28px; }
  .gl-about-craft { grid-template-columns: 1fr; }
  .gl-about-craft__media { min-height: 500px; }
  .gl-inner-hero--contact { padding-top: 95px; }
  .gl-contact-details__grid { grid-template-columns: 1fr; }
  .gl-contact-details article, .gl-contact-details article:first-child, .gl-contact-details article:nth-child(3) { min-height: auto; border-left: 1px solid var(--gl-line); border-top: 1px solid var(--gl-line); }
  .gl-contact-details article:first-child { border-top: 0; }
  .gl-contact-main { grid-template-columns: 1fr; }
  .gl-map-panel, .gl-map-panel iframe, .gl-map-placeholder { min-height: 520px; }
}

@media (max-width: 520px) {
  .gl-inner-hero__media, .gl-about-craft__media { min-height: 400px; }
  .gl-form-row { grid-template-columns: 1fr; }
  .gl-contact-form-panel { padding: 35px 22px; }
  .gl-map-placeholder { padding: 35px 25px; }
}


/* Compact desktop and corrected product purchase layout — v1.1.4 */
@media (min-width: 1101px) {
  /* Keep the overall site refined rather than billboard-sized on laptops. */
  :root { --gl-wrap: min(1120px, calc(100% - 56px)); }

  body { font-size: 15px; }
  .gl-announcement { min-height: 28px; padding-top: 6px; padding-bottom: 6px; font-size: 9px; }
  .gl-header-inner { min-height: 68px; gap: 18px; }
  .custom-logo { max-height: 38px; }
  .site-title { font-size: 22px; }
  .gl-nav ul { gap: 16px; }
  .gl-nav a { font-size: 10px; letter-spacing: .06em; }
  .gl-header-actions { gap: 14px; }
  .gl-icon-link svg { width: 18px; height: 18px; }

  .gl-section { padding-top: 82px; padding-bottom: 82px; }
  .gl-footer-main {
    width: min(1040px, calc(100% - 56px));
    padding: 54px 0 44px;
    gap: 42px;
  }
  .gl-footer-bottom-inner { width: min(1040px, calc(100% - 56px)); min-height: 58px; }

  .single-product .gl-shop-shell {
    width: calc(100% - 56px);
    max-width: 1000px;
    margin-inline: auto;
    padding-top: 34px;
    padding-bottom: 56px;
  }

  .single-product .woocommerce div.product {
    width: 100%;
    max-width: 1000px;
    margin-inline: auto;
    grid-template-columns: minmax(0, 460px) minmax(0, 370px);
    justify-content: center;
    align-items: start;
    column-gap: 48px;
    row-gap: 0;
  }

  .single-product .woocommerce div.product div.images {
    width: 100%;
    max-width: 460px;
    margin-bottom: 0;
  }

  .single-product .woocommerce div.product div.summary {
    width: 100%;
    max-width: 370px;
    margin-bottom: 0;
  }

  .single-product .woocommerce div.product .product_title {
    max-width: 13em;
    margin: 0 0 12px;
    font-size: 36px;
    line-height: 1.04;
  }

  .single-product .woocommerce div.product p.price,
  .single-product .woocommerce div.product span.price {
    margin-bottom: 14px;
    font-size: 21px;
  }

  .single-product .woocommerce-product-details__short-description {
    font-size: 14px;
    line-height: 1.55;
  }

  /*
   * Frame-choice plugins commonly inject their selector as the first child of
   * form.cart. Force that block onto its own row so it cannot stretch the
   * basket button to the full height of the frame preview/options.
   */
  .single-product .summary form.cart {
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: flex-start !important;
    align-content: flex-start !important;
    gap: 10px !important;
    width: 100%;
    margin: 18px 0 !important;
  }

  .single-product .summary form.cart > *:not(.quantity):not(.single_add_to_cart_button):not(button[type='submit']) {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product .summary form.cart .quantity {
    float: none !important;
    flex: 0 0 68px !important;
    width: 68px !important;
    margin: 0 !important;
  }

  .single-product .summary form.cart .quantity .qty {
    width: 68px !important;
    min-height: 48px !important;
    height: 48px !important;
    max-height: 48px !important;
    padding: 8px !important;
  }

  .single-product .summary form.cart .single_add_to_cart_button,
  .single-product .summary form.cart button[type='submit'] {
    float: none !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    width: auto !important;
    min-width: 170px !important;
    max-width: 230px !important;
    min-height: 48px !important;
    height: 48px !important;
    max-height: 48px !important;
    padding: 11px 20px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  .single-product .woocommerce div.product .product_meta {
    margin-top: 12px;
    font-size: 11px;
  }

  .single-product .woocommerce div.product .woocommerce-tabs {
    margin-top: 28px;
  }

  .single-product .woocommerce div.product .woocommerce-tabs .panel {
    max-width: 820px;
    margin-inline: auto;
    font-size: 14px;
    line-height: 1.6;
  }

  .single-product .woocommerce div.product .woocommerce-tabs .panel h2 {
    margin-bottom: 14px;
    font-size: 34px;
  }

  .single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
    gap: 24px;
  }

  .single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 12px 0;
    font-size: 9px;
  }
}

@media (min-width: 1601px) {
  .single-product .gl-shop-shell,
  .single-product .woocommerce div.product { max-width: 1080px; }
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(0, 500px) minmax(0, 390px);
    column-gap: 56px;
  }
  .single-product .woocommerce div.product div.images { max-width: 500px; }
  .single-product .woocommerce div.product div.summary { max-width: 390px; }
  .single-product .woocommerce div.product .product_title { font-size: 38px; }
}

@media (min-width: 1101px) and (max-width: 1366px) {
  :root { --gl-wrap: min(980px, calc(100% - 44px)); }
  .gl-header-inner { min-height: 62px; }
  .custom-logo { max-height: 34px; }
  .gl-nav ul { gap: 12px; }
  .gl-nav a { font-size: 9px; }

  .single-product .gl-shop-shell {
    width: calc(100% - 44px);
    max-width: 900px;
    padding-top: 28px;
    padding-bottom: 48px;
  }

  .single-product .woocommerce div.product {
    max-width: 900px;
    grid-template-columns: minmax(0, 410px) minmax(0, 330px);
    column-gap: 40px;
  }

  .single-product .woocommerce div.product div.images { max-width: 410px; }
  .single-product .woocommerce div.product div.summary { max-width: 330px; }
  .single-product .woocommerce div.product .product_title { font-size: 31px; }
  .single-product .woocommerce-product-details__short-description { font-size: 13px; }
  .single-product .woocommerce div.product p.price,
  .single-product .woocommerce div.product span.price { font-size: 19px; }
  .single-product .summary form.cart .single_add_to_cart_button,
  .single-product .summary form.cart button[type='submit'] { min-width: 155px !important; padding-inline: 16px !important; }
  .single-product .woocommerce div.product .woocommerce-tabs .panel { max-width: 760px; }
  .single-product .woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 30px; }
}

@media (min-width: 1101px) and (max-height: 800px) {
  .single-product .gl-shop-shell { padding-top: 22px; }
  .single-product .woocommerce div.product .product_title { margin-bottom: 9px; }
  .single-product .summary form.cart { margin-top: 14px !important; margin-bottom: 14px !important; }
  .single-product .woocommerce div.product .woocommerce-tabs { margin-top: 22px; }
}



/* ==============================================================
   Normalised desktop scale and WooCommerce layouts — v1.2.0
   A laptop-first pass that replaces the original billboard scale.
   ============================================================== */

@media (min-width: 1101px) {
  :root {
    --gl-wrap: min(1120px, calc(100% - 64px));
  }

  body {
    font-size: 15px;
    line-height: 1.58;
  }

  h1 { font-size: clamp(46px, 4.4vw, 68px); }
  h2 { font-size: clamp(34px, 3.2vw, 50px); }
  h3 { font-size: clamp(23px, 2vw, 31px); }

  .gl-section {
    padding-top: 68px;
    padding-bottom: 68px;
  }

  .gl-eyebrow {
    margin-bottom: 12px;
    font-size: 10px;
    letter-spacing: .18em;
  }

  .gl-button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .woocommerce #respond input#submit {
    min-height: 46px;
    padding: 11px 20px;
    font-size: 10px;
  }

  /* Header */
  .gl-announcement {
    min-height: 26px;
    padding: 5px 20px;
    font-size: 9px;
  }

  .gl-header-inner {
    min-height: 70px;
    gap: 20px;
  }

  .custom-logo { max-height: 40px; }
  .site-title { font-size: 22px; }
  .gl-nav ul { gap: 17px; }
  .gl-nav a { font-size: 10px; letter-spacing: .065em; }

  /* Homepage hero */
  .gl-hero {
    min-height: 0;
    height: clamp(540px, 66vh, 660px);
    padding: 112px 0 54px;
  }

  .gl-hero-copy { max-width: 550px; }
  .gl-hero-copy h1 {
    max-width: 9.5em;
    margin-bottom: 18px;
    font-size: clamp(48px, 4.4vw, 66px);
  }

  .gl-hero-copy p:not(.gl-eyebrow) {
    max-width: 480px;
    font-size: 16px;
    line-height: 1.6;
  }

  .gl-hero-actions {
    gap: 10px;
    margin-top: 25px;
  }

  .gl-hero-art { left: 50%; }
  .gl-art-frame { padding: 10px; }
  .gl-art-frame--1 { width: 36%; height: 54%; left: 13%; top: 21%; }
  .gl-art-frame--2 { width: 28%; height: 43%; right: 3%; top: 12%; }
  .gl-art-frame--3 { width: 27%; height: 39%; right: 10%; bottom: 8%; }

  /* Benefits */
  .gl-trust-item {
    min-height: 88px;
    padding: 18px 22px;
  }
  .gl-trust-item strong { font-size: 17px; }
  .gl-trust-item span { font-size: 10px; }

  /* Homepage sections */
  .gl-section-head {
    margin-bottom: 34px;
  }

  .gl-section-head > div { max-width: 650px; }

  .gl-category-grid {
    grid-template-columns: 1.18fr .91fr .91fr;
    gap: 18px;
  }

  .gl-category-card,
  .gl-category-card:nth-child(n+2) {
    min-height: 330px;
  }

  .gl-category-card:first-child { min-height: 380px; }
  .gl-category-card__body { left: 24px; right: 24px; bottom: 22px; }
  .gl-category-card h3 { font-size: 28px; }

  /* Do not let sparse category grids stretch one or two cards across the
     entire content width. A collection tile should read like curated artwork,
     not a full-width billboard. */
  .gl-category-grid--1 {
    grid-template-columns: minmax(0, 340px);
    justify-content: start;
  }
  .gl-category-grid--1 .gl-category-card:first-child {
    width: 340px;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .gl-category-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 340px));
    justify-content: start;
  }
  .gl-category-grid--2 .gl-category-card,
  .gl-category-grid--2 .gl-category-card:first-child {
    width: 340px;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }


  .gl-category-grid--1 .gl-category-card img,
  .gl-category-grid--2 .gl-category-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .home .woocommerce ul.products {
    gap: 34px 20px;
  }
  .home .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 19px;
    line-height: 1.22;
  }
  .home .woocommerce ul.products li.product a img {
    margin-bottom: 14px;
  }
  .home .woocommerce ul.products li.product .button {
    margin-top: 10px;
  }

  /* Editorial block */
  .gl-editorial {
    min-height: 0;
    grid-template-columns: 1fr 1fr;
  }
  .gl-editorial-media { min-height: 500px; }
  .gl-editorial-copy { padding: 58px clamp(48px, 5.5vw, 88px); }
  .gl-editorial-copy h2 {
    max-width: 12em;
    font-size: clamp(35px, 3.1vw, 48px);
  }
  .gl-editorial-copy p:not(.gl-eyebrow) {
    max-width: 590px;
    font-size: 15px;
  }

  /* Quote and journal */
  .gl-quote { padding-top: 62px; padding-bottom: 62px; }
  .gl-quote blockquote {
    max-width: 760px;
    margin-bottom: 20px;
    font-size: clamp(30px, 3vw, 43px);
  }

  .gl-post-grid { gap: 24px; }
  .gl-post-card img { margin-bottom: 16px; }
  .gl-post-card h3 { margin: 9px 0 11px; font-size: 24px; }
  .gl-post-card p { font-size: 14px; }

  /* Footer */
  .gl-footer-main {
    width: min(1080px, calc(100% - 64px));
    padding: 54px 0 44px;
    grid-template-columns: 1.25fr .7fr .8fr 1fr;
    gap: 38px;
  }
  .gl-footer-brand { max-width: 310px; }
  .gl-footer-brand .site-title { margin-bottom: 15px; }
  .gl-footer-main p,
  .gl-footer-col li { font-size: 13px; }
  .gl-footer-bottom-inner {
    width: min(1080px, calc(100% - 64px));
    min-height: 54px;
  }

  /* General content pages */
  .gl-page-header { padding: 105px 0 46px; }
  .gl-page-header h1 { font-size: clamp(43px, 4.4vw, 62px); }
  .gl-content { padding: 58px 0 78px; }
  .gl-shop-shell { padding-top: 54px; padding-bottom: 72px; }

  /* About and contact templates */
  .gl-inner-hero__grid { min-height: 590px; }
  .gl-inner-hero__copy { padding-top: 95px; padding-bottom: 72px; }
  .gl-inner-hero__copy h1 { font-size: clamp(48px, 5vw, 70px); }
  .gl-inner-hero__media { min-height: 520px; }
  .gl-about-values article { min-height: 245px; padding: 40px 32px; }
  .gl-about-values h3 { margin-top: 30px; }
  .gl-about-craft__media { min-height: 500px; }
  .gl-about-quote blockquote { font-size: clamp(32px, 3.7vw, 50px); }
  .gl-inner-hero--contact { padding-top: 100px; padding-bottom: 55px; }
  .gl-contact-intro h1 { font-size: clamp(46px, 5vw, 68px); }
  .gl-contact-details article { min-height: 150px; padding: 28px 24px; }
  .gl-map-panel,
  .gl-map-panel iframe,
  .gl-map-placeholder { min-height: 560px; }

  /* WooCommerce archive */
  .woocommerce ul.products { gap: 36px 20px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; }
  .woocommerce ul.products li.product a img { margin-bottom: 15px; }

  /* Basket / Checkout / My Account page shells. */
  body.woocommerce-cart .gl-page-header,
  body.woocommerce-checkout .gl-page-header,
  body.woocommerce-account .gl-page-header {
    padding: 68px 0 32px;
  }

  body.woocommerce-cart .gl-content,
  body.woocommerce-checkout .gl-content,
  body.woocommerce-account .gl-content {
    padding: 42px 0 68px;
  }

  body.woocommerce-cart article.gl-narrow,
  body.woocommerce-checkout article.gl-narrow,
  body.woocommerce-account article.gl-narrow,
  body.woocommerce-cart .entry-content,
  body.woocommerce-checkout .entry-content,
  body.woocommerce-account .entry-content,
  body.woocommerce-cart .entry-content > *,
  body.woocommerce-checkout .entry-content > *,
  body.woocommerce-account .entry-content > * {
    width: min(1120px, calc(100% - 64px));
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* WooCommerce Cart block: keep desktop columns side-by-side. */
  body.woocommerce-cart .wp-block-woocommerce-cart,
  body.woocommerce-cart .wc-block-cart {
    width: 100% !important;
    max-width: none !important;
  }

  body.woocommerce-cart .wc-block-cart__main {
    flex-basis: calc(100% - 390px) !important;
    max-width: calc(100% - 390px) !important;
    padding-right: 42px !important;
  }

  body.woocommerce-cart .wc-block-cart__sidebar {
    flex-basis: 350px !important;
    width: 350px !important;
    max-width: 350px !important;
    margin-top: 0 !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar-layout {
    display: flex !important;
    align-items: flex-start !important;
    gap: 40px !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar {
    position: sticky;
    top: 100px;
    padding: 26px !important;
    border: 1px solid var(--gl-line);
    background: var(--gl-paper);
  }

  /* Classic cart fallback. */
  body.woocommerce-cart .woocommerce-cart-form {
    float: left;
    width: calc(100% - 390px);
  }
  body.woocommerce-cart .cart-collaterals {
    float: right;
    width: 350px;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%;
    padding: 26px;
    border: 1px solid var(--gl-line);
  }
}

@media (min-width: 1101px) and (max-width: 1366px) {
  :root { --gl-wrap: min(1020px, calc(100% - 48px)); }
  .gl-hero { height: clamp(500px, 64vh, 590px); }
  .gl-hero-copy h1 { font-size: 54px; }
  .gl-category-card,
  .gl-category-card:nth-child(n+2) { min-height: 300px; }
  .gl-category-card:first-child { min-height: 340px; }
  .gl-category-grid--1 .gl-category-card:first-child,
  .gl-category-grid--2 .gl-category-card,
  .gl-category-grid--2 .gl-category-card:first-child {
    width: 320px;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }
  .gl-category-grid--1 { grid-template-columns: minmax(0, 320px); }
  .gl-category-grid--2 { grid-template-columns: repeat(2, minmax(0, 320px)); }
  .gl-editorial-media { min-height: 460px; }
  .gl-editorial-copy { padding: 48px 54px; }
}

@media (min-width: 1101px) and (max-height: 820px) {
  .gl-hero {
    height: 520px;
    padding-top: 100px;
  }
  .gl-section { padding-top: 58px; padding-bottom: 58px; }
  .gl-editorial-media { min-height: 440px; }
  .gl-quote { padding-top: 52px; padding-bottom: 52px; }
}

@media (max-width: 1100px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout {
    display: block !important;
  }
  body.woocommerce-cart .wc-block-cart__main,
  body.woocommerce-cart .wc-block-cart__sidebar {
    width: 100% !important;
    max-width: none !important;
    padding-right: 0 !important;
  }
}

/* ============================================================
   Gallery Luxe 1.2.3 — premium four-column footer
   ============================================================ */
.site-footer {
  background: #0c0c0c;
  color: rgba(255,255,255,.82);
}

.gl-footer-main.gl-footer-main--modern {
  width: min(1320px, calc(100% - 72px));
  margin-inline: auto;
  padding: 68px 0 58px;
  display: grid;
  grid-template-columns: .82fr .95fr 1.38fr 1.28fr;
  align-items: start;
  gap: clamp(42px, 5vw, 86px);
}

.gl-footer-main--modern .gl-footer-col {
  min-width: 0;
}

.gl-footer-main--modern .gl-footer-col h3 {
  margin: 0 0 24px;
  color: #fff;
  font-family: var(--gl-sans);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.01em;
  text-transform: none;
}

.gl-footer-main--modern .gl-footer-col ul,
.gl-footer-main--modern .gl-footer-col .menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gl-footer-main--modern .gl-footer-col li {
  margin: 0 0 13px;
  font-size: 15px;
  line-height: 1.45;
}

.gl-footer-main--modern .gl-footer-col a {
  color: rgba(255,255,255,.87);
  text-decoration: none;
  transition: color .2s ease, opacity .2s ease;
}

.gl-footer-main--modern .gl-footer-col a:hover,
.gl-footer-main--modern .gl-footer-col a:focus-visible {
  color: #fff;
}

.gl-footer-mark {
  display: inline-flex;
  width: 66px;
  height: 66px;
  margin: 0 0 30px;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.gl-footer-mark-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
  filter: brightness(0) invert(1);
}

.gl-footer-mark-text {
  position: relative;
  display: block;
  width: 62px;
  height: 62px;
  font-family: var(--gl-serif);
  font-size: 43px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.16em;
}

.gl-footer-mark-text span {
  position: absolute;
  top: 8px;
}

.gl-footer-mark-text span:first-child { left: 4px; }
.gl-footer-mark-text span:last-child { left: 25px; top: 13px; }

.gl-footer-mission p,
.gl-footer-newsletter > p {
  margin: 0;
  max-width: 470px;
  color: rgba(255,255,255,.82);
  font-family: var(--gl-sans);
  font-size: 15px;
  line-height: 1.65;
}

.gl-footer-newsletter > p {
  max-width: 410px;
  margin-bottom: 24px;
}

.gl-footer-newsletter-form {
  max-width: 420px;
}

/* WPForms and common newsletter forms inherit the footer treatment. */
.gl-footer-newsletter .wpforms-container,
.gl-footer-newsletter .mc4wp-form,
.gl-footer-newsletter form {
  margin: 0 !important;
}

.gl-footer-newsletter .wpforms-field,
.gl-footer-newsletter .wpforms-field-container {
  padding: 0 !important;
  margin: 0 !important;
}

.gl-footer-newsletter .wpforms-field-label,
.gl-footer-newsletter .wpforms-field-sublabel,
.gl-footer-newsletter label:not(.wpforms-error) {
  color: #fff !important;
}

.gl-footer-newsletter input[type="email"],
.gl-footer-newsletter input[type="text"] {
  width: 100% !important;
  min-height: 54px !important;
  padding: 0 110px 0 20px !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 15px !important;
}

.gl-footer-newsletter input::placeholder {
  color: rgba(255,255,255,.78) !important;
}

.gl-footer-newsletter .wpforms-submit-container,
.gl-footer-newsletter form > p:last-child {
  margin-top: 10px !important;
  padding: 0 !important;
}

.gl-footer-newsletter button[type="submit"],
.gl-footer-newsletter input[type="submit"] {
  min-height: 44px !important;
  padding: 0 20px !important;
  border: 1px solid rgba(255,255,255,.75) !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.gl-footer-newsletter-setup {
  max-width: 420px;
  min-height: 54px;
  padding: 0 18px 0 20px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: rgba(255,255,255,.68);
  font-size: 12px;
  line-height: 1.35;
}

.gl-footer-newsletter-setup span:last-child {
  color: #fff;
  font-size: 20px;
}

.gl-footer-bottom {
  border-top: 1px solid rgba(255,255,255,.12);
}

.gl-footer-bottom-inner {
  width: min(1320px, calc(100% - 72px));
  min-height: 62px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  color: rgba(255,255,255,.55);
  font-size: 11px;
}

.gl-footer-bottom-inner a { color: rgba(255,255,255,.65); }
.gl-footer-bottom-inner a:hover { color: #fff; }

@media (max-width: 1100px) {
  .gl-footer-main.gl-footer-main--modern {
    width: min(940px, calc(100% - 56px));
    grid-template-columns: .8fr .9fr 1.3fr;
    gap: 46px;
  }
  .gl-footer-newsletter {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    column-gap: 46px;
    align-items: start;
  }
  .gl-footer-newsletter h3 { grid-column: 1; }
  .gl-footer-newsletter > p { grid-column: 1; }
  .gl-footer-newsletter-form,
  .gl-footer-newsletter-setup { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; width: 100%; }
  .gl-footer-bottom-inner { width: min(940px, calc(100% - 56px)); }
}

@media (max-width: 760px) {
  .gl-footer-main.gl-footer-main--modern {
    width: min(100% - 40px, 600px);
    padding: 52px 0 42px;
    grid-template-columns: 1fr 1fr;
    gap: 42px 28px;
  }
  .gl-footer-mark { width: 58px; height: 58px; margin-bottom: 24px; }
  .gl-footer-main--modern .gl-footer-col h3 { margin-bottom: 19px; font-size: 16px; }
  .gl-footer-main--modern .gl-footer-col li,
  .gl-footer-mission p,
  .gl-footer-newsletter > p { font-size: 14px; }
  .gl-footer-mission,
  .gl-footer-newsletter {
    grid-column: 1 / -1;
  }
  .gl-footer-newsletter { display: block; }
  .gl-footer-newsletter-form,
  .gl-footer-newsletter-setup { margin-top: 20px; max-width: 100%; }
  .gl-footer-bottom-inner {
    width: min(100% - 40px, 600px);
    padding: 18px 0;
    min-height: 0;
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .gl-footer-main.gl-footer-main--modern { grid-template-columns: 1fr; }
  .gl-footer-mission,
  .gl-footer-newsletter { grid-column: auto; }
}

/* Gallery Luxe 1.2.3 — automatic collection carousel */
.gl-section-head--carousel {
  align-items: end;
}

.gl-section-head-actions {
  display: flex;
  align-items: center;
  gap: 22px;
}

.gl-carousel-controls {
  display: flex;
  gap: 8px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease;
}

.gl-section.has-scrollable-carousel .gl-carousel-controls {
  opacity: 1;
  visibility: visible;
}

.gl-carousel-button {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--gl-line);
  border-radius: 50%;
  background: transparent;
  color: var(--gl-ink);
  font: inherit;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}

.gl-carousel-button:hover:not(:disabled) {
  border-color: var(--gl-ink);
  background: var(--gl-ink);
  color: #fff;
}

.gl-carousel-button:disabled {
  opacity: .28;
  cursor: default;
}

.gl-category-carousel {
  position: relative;
}

.gl-category-carousel__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.gl-category-carousel__viewport::-webkit-scrollbar {
  display: none;
}

.gl-category-carousel__viewport:focus-visible {
  outline: 2px solid rgba(170, 133, 81, .45);
  outline-offset: 6px;
}

.gl-category-carousel__track {
  display: flex;
  gap: 18px;
  width: max-content;
  padding: 1px 1px 6px;
}

.gl-category-carousel .gl-category-card,
.gl-category-carousel .gl-category-card:first-child,
.gl-category-carousel .gl-category-card:nth-child(n+2) {
  flex: 0 0 clamp(245px, 22vw, 305px);
  width: clamp(245px, 22vw, 305px);
  min-height: 0;
  aspect-ratio: 4 / 5;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}

.gl-category-carousel .gl-category-card img,
.gl-category-carousel .gl-category-card > .gl-category-card__fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gl-category-carousel .gl-category-card > picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.gl-category-carousel .gl-category-card__body {
  left: 22px;
  right: 22px;
  bottom: 20px;
}

.gl-category-carousel .gl-category-card h3 {
  margin-bottom: 5px;
  font-size: clamp(24px, 2vw, 30px);
  line-height: 1.05;
}

@media (max-width: 1100px) {
  .gl-category-carousel .gl-category-card,
  .gl-category-carousel .gl-category-card:first-child,
  .gl-category-carousel .gl-category-card:nth-child(n+2) {
    flex-basis: 280px;
    width: 280px;
  }
}

@media (max-width: 780px) {
  .gl-section-head--carousel {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
  }

  .gl-section-head-actions {
    gap: 10px;
  }

  .gl-section-head-actions .gl-text-link {
    display: none;
  }

  .gl-carousel-controls {
    opacity: 1;
    visibility: visible;
  }

  .gl-category-carousel__track {
    gap: 14px;
  }

  .gl-category-carousel .gl-category-card,
  .gl-category-carousel .gl-category-card:first-child,
  .gl-category-carousel .gl-category-card:nth-child(n+2) {
    flex-basis: min(78vw, 290px);
    width: min(78vw, 290px);
  }
}

/* Category archive resilience. */
.gl-category-fallback { margin-top: 8px; }
.gl-category-fallback + .woocommerce-info { display: none; }


/* ==========================================================
   Elementor Free integration — v1.3.0
   ========================================================== */
.gl-elementor-page,
.gl-elementor-content,
.gl-elementor-content > .entry-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.gl-elementor-content > .entry-content::before,
.gl-elementor-content > .entry-content::after { content: none; }
.gl-elementor-page .elementor { width: 100%; max-width: none; }
.gl-elementor-page .elementor-section-wrap { width: 100%; }
.gl-elementor-page .elementor-widget-gallery-luxe-hero,
.gl-elementor-page .elementor-widget-gallery-luxe-trust,
.gl-elementor-page .elementor-widget-gallery-luxe-collections,
.gl-elementor-page .elementor-widget-gallery-luxe-new-arrivals,
.gl-elementor-page .elementor-widget-gallery-luxe-story,
.gl-elementor-page .elementor-widget-gallery-luxe-quote,
.gl-elementor-page .elementor-widget-gallery-luxe-journal { width: 100%; }
.gl-elementor-page .elementor-widget-container > .gl-hero,
.gl-elementor-page .elementor-widget-container > .gl-trust,
.gl-elementor-page .elementor-widget-container > .gl-section,
.gl-elementor-page .elementor-widget-container > .gl-editorial { margin-block: 0; }
.gl-elementor-richtext > :last-child { margin-bottom: 0; }

/* Elementor's legacy full-width sections can add default column padding. The
   Gallery Luxe widgets already own their internal spacing, so keep wrappers clean. */
.gl-elementor-home .elementor-column-gap-no > .elementor-column > .elementor-element-populated,
.gl-elementor-home .elementor-column-gap-default > .elementor-column > .elementor-element-populated {
  padding: 0;
}

/* Keep dynamic product grids looking like the theme even when nested in Elementor. */
.gl-elementor-products .woocommerce ul.products { margin-bottom: 0; }

@media (max-width: 767px) {
  .gl-elementor-page .elementor-section.elementor-section-stretched { left: 0 !important; width: 100% !important; }
}

/* ============================================================
   Gallery Luxe 1.3.3 — compact product layout, frame-safe
   Scale only the WooCommerce gallery and summary columns. Frame-option
   plugin artwork/previews are deliberately left alone so layered previews
   and swatches keep their own proportions.
   ============================================================ */
@media (min-width: 1101px) {
  body.single-product .gl-shop-shell {
    width: min(860px, calc(100% - 56px)) !important;
    max-width: 860px !important;
    margin-inline: auto !important;
    padding-top: 24px !important;
    padding-bottom: 44px !important;
  }

  body.single-product .woocommerce div.product {
    display: grid !important;
    width: 100% !important;
    max-width: 820px !important;
    margin-inline: auto !important;
    grid-template-columns: 380px 400px !important;
    column-gap: 40px !important;
    row-gap: 0 !important;
    align-items: start !important;
    justify-content: center !important;
  }

  /* Main WooCommerce artwork only — never touch images inside form.cart. */
  body.single-product .woocommerce div.product div.images,
  body.single-product .woocommerce div.product .woocommerce-product-gallery,
  body.single-product .woocommerce div.product .woocommerce-product-gallery__wrapper,
  body.single-product .woocommerce div.product .woocommerce-product-gallery__image,
  body.single-product .woocommerce div.product .woocommerce-product-gallery__image > a {
    float: none !important;
    width: 380px !important;
    max-width: 380px !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body.single-product .woocommerce div.product .woocommerce-product-gallery__image > a > img,
  body.single-product .woocommerce div.product div.images > img.wp-post-image {
    display: block !important;
    width: 380px !important;
    max-width: 380px !important;
    height: auto !important;
    max-height: 455px !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }

  body.single-product .woocommerce div.product div.summary {
    float: none !important;
    width: 400px !important;
    max-width: 400px !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body.single-product .woocommerce div.product .product_title {
    max-width: 400px !important;
    margin: 0 0 10px !important;
    font-size: 32px !important;
    line-height: 1.03 !important;
  }

  body.single-product .woocommerce div.product p.price,
  body.single-product .woocommerce div.product span.price {
    margin: 0 0 12px !important;
    font-size: 19px !important;
  }

  body.single-product .woocommerce-product-details__short-description {
    margin: 0 0 12px !important;
    font-size: 13px !important;
    line-height: 1.48 !important;
  }

  /* Keep the frame chooser on its own row without resizing anything inside it. */
  body.single-product .summary form.cart {
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: flex-start !important;
    align-content: flex-start !important;
    width: 100% !important;
    max-width: 400px !important;
    margin: 14px 0 16px !important;
    gap: 10px !important;
    overflow: visible !important;
  }

  body.single-product .summary form.cart > div:not(.quantity),
  body.single-product .summary form.cart > fieldset {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  body.single-product .summary form.cart .quantity {
    float: none !important;
    flex: 0 0 62px !important;
    width: 62px !important;
    margin: 0 !important;
  }

  body.single-product .summary form.cart .quantity .qty {
    width: 62px !important;
    min-height: 44px !important;
    height: 44px !important;
    max-height: 44px !important;
  }

  body.single-product .summary form.cart .single_add_to_cart_button,
  body.single-product .summary form.cart button[type='submit'] {
    float: none !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 160px !important;
    max-width: 230px !important;
    min-height: 44px !important;
    height: 44px !important;
    max-height: 44px !important;
    padding: 10px 17px !important;
    align-self: flex-start !important;
    white-space: nowrap !important;
  }

  body.single-product .woocommerce div.product .product_meta {
    margin-top: 10px !important;
    font-size: 10px !important;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs {
    margin-top: 24px !important;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs .panel {
    max-width: 780px !important;
    margin-inline: auto !important;
    font-size: 13px !important;
  }
}

/* Short laptop browser viewport: reduce only the main artwork/title. The
   frame chooser keeps the same 400px summary width so its layered preview
   never gets squeezed or distorted. */
@media (min-width: 1101px) and (max-height: 900px) {
  body.single-product .gl-shop-shell {
    width: min(830px, calc(100% - 48px)) !important;
    max-width: 830px !important;
    padding-top: 18px !important;
    padding-bottom: 34px !important;
  }

  body.single-product .woocommerce div.product {
    max-width: 780px !important;
    grid-template-columns: 350px 400px !important;
    column-gap: 30px !important;
  }

  body.single-product .woocommerce div.product div.images,
  body.single-product .woocommerce div.product .woocommerce-product-gallery,
  body.single-product .woocommerce div.product .woocommerce-product-gallery__wrapper,
  body.single-product .woocommerce div.product .woocommerce-product-gallery__image,
  body.single-product .woocommerce div.product .woocommerce-product-gallery__image > a {
    width: 350px !important;
    max-width: 350px !important;
  }

  body.single-product .woocommerce div.product .woocommerce-product-gallery__image > a > img,
  body.single-product .woocommerce div.product div.images > img.wp-post-image {
    width: 350px !important;
    max-width: 350px !important;
    max-height: 400px !important;
  }

  body.single-product .woocommerce div.product .product_title {
    font-size: 29px !important;
  }

  body.single-product .woocommerce div.product p.price,
  body.single-product .woocommerce div.product span.price {
    font-size: 18px !important;
  }

  body.single-product .woocommerce-product-details__short-description {
    font-size: 12px !important;
    line-height: 1.42 !important;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs {
    margin-top: 18px !important;
  }
}


/* ============================================================
   Gallery Luxe 1.3.9 — high-contrast social footer buttons
   ============================================================ */
.gl-footer-bottom-inner {
  min-height: 82px;
}

.gl-socials {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.gl-footer-bottom-inner .gl-social-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: 40px !important;
  padding: 9px 14px !important;
  border: 1px solid rgba(194, 153, 94, .8) !important;
  border-radius: 999px !important;
  background: #141414 !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease !important;
}

.gl-footer-bottom-inner .gl-social-link > span:last-child {
  color: #fff !important;
  opacity: 1 !important;
}

.gl-footer-bottom-inner .gl-social-link:hover,
.gl-footer-bottom-inner .gl-social-link:focus-visible {
  border-color: var(--gl-accent) !important;
  background: var(--gl-accent) !important;
  color: #0c0c0c !important;
  transform: translateY(-1px);
}

.gl-footer-bottom-inner .gl-social-link:hover > span:last-child,
.gl-footer-bottom-inner .gl-social-link:focus-visible > span:last-child {
  color: #0c0c0c !important;
}

.gl-social-icon {
  display: inline-flex !important;
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  opacity: 1 !important;
}

.gl-social-icon svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  overflow: visible !important;
  color: #fff !important;
}

/* Filled icons: Facebook, TikTok, LinkedIn and Privacy. */
.gl-social-icon svg path {
  fill: #fff !important;
  stroke: none !important;
}

/* Instagram outline. */
.gl-social-icon svg rect,
.gl-social-icon svg circle:not(.gl-social-dot) {
  fill: none !important;
  stroke: #fff !important;
  stroke-width: 1.8 !important;
}

.gl-social-icon .gl-social-dot {
  fill: var(--gl-accent) !important;
  stroke: none !important;
}

.gl-footer-bottom-inner .gl-social-link:hover .gl-social-icon,
.gl-footer-bottom-inner .gl-social-link:focus-visible .gl-social-icon,
.gl-footer-bottom-inner .gl-social-link:hover .gl-social-icon svg,
.gl-footer-bottom-inner .gl-social-link:focus-visible .gl-social-icon svg {
  color: #0c0c0c !important;
}

.gl-footer-bottom-inner .gl-social-link:hover .gl-social-icon svg path,
.gl-footer-bottom-inner .gl-social-link:focus-visible .gl-social-icon svg path {
  fill: #0c0c0c !important;
}

.gl-footer-bottom-inner .gl-social-link:hover .gl-social-icon svg rect,
.gl-footer-bottom-inner .gl-social-link:hover .gl-social-icon svg circle:not(.gl-social-dot),
.gl-footer-bottom-inner .gl-social-link:focus-visible .gl-social-icon svg rect,
.gl-footer-bottom-inner .gl-social-link:focus-visible .gl-social-icon svg circle:not(.gl-social-dot) {
  stroke: #0c0c0c !important;
}

.gl-footer-bottom-inner .gl-social-link:hover .gl-social-icon .gl-social-dot,
.gl-footer-bottom-inner .gl-social-link:focus-visible .gl-social-icon .gl-social-dot {
  fill: #0c0c0c !important;
}

.gl-social-link--privacy {
  margin-left: 2px;
}

@media (max-width: 900px) {
  .gl-footer-bottom-inner {
    align-items: flex-start;
    flex-direction: column;
    padding: 20px 0;
  }
  .gl-socials {
    justify-content: flex-start;
  }
}

@media (max-width: 540px) {
  .gl-socials {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gl-footer-bottom-inner .gl-social-link {
    width: 100%;
  }
}

/* ============================================================
   Gallery Luxe 1.4.1 — slide-out collection navigation
   ============================================================ */
.gl-nav {
  display: flex;
  align-items: center;
  gap: 20px;
}

.gl-shop-drawer-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--gl-dark);
  font: inherit;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .13em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
}

.gl-shop-drawer-toggle svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
  transition: transform .2s ease;
}

.gl-shop-drawer-toggle:hover svg,
.gl-shop-drawer-toggle:focus-visible svg {
  transform: translateX(2px);
}

.gl-shop-drawer-shell {
  position: fixed;
  inset: 0;
  z-index: 10000;
  pointer-events: none;
  visibility: hidden;
}

.gl-shop-drawer-shell.is-open {
  pointer-events: auto;
  visibility: visible;
}

.gl-shop-drawer-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(18, 17, 14, .48);
  opacity: 0;
  cursor: default;
  transition: opacity .28s ease;
}

.gl-shop-drawer-shell.is-open .gl-shop-drawer-backdrop {
  opacity: 1;
}

.gl-shop-drawer {
  position: absolute;
  inset: 0 auto 0 0;
  width: min(410px, calc(100vw - 42px));
  max-width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #11110f;
  color: #fff;
  box-shadow: 24px 0 70px rgba(0, 0, 0, .22);
  transform: translateX(-102%);
  transition: transform .32s cubic-bezier(.2,.7,.2,1);
  outline: 0;
}

.gl-shop-drawer-shell.is-open .gl-shop-drawer {
  transform: translateX(0);
}

body.gl-shop-drawer-open {
  overflow: hidden;
}

.gl-shop-drawer-head {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 22px;
  padding: 34px 32px 27px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.gl-shop-drawer-eyebrow,
.gl-shop-drawer-label {
  margin: 0 0 9px;
  color: var(--gl-accent);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.gl-shop-drawer-head h2 {
  margin: 0;
  color: #fff;
  font-size: 34px;
  line-height: 1.05;
}

.gl-shop-drawer-close {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  margin-top: -3px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}

.gl-shop-drawer-close:hover,
.gl-shop-drawer-close:focus-visible {
  border-color: var(--gl-accent);
  background: rgba(170,133,81,.13);
}

.gl-shop-drawer-close svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
}

.gl-shop-drawer-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 32px 32px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.22) transparent;
}

.gl-shop-drawer-featured {
  display: grid;
  gap: 0;
  padding: 12px 0 20px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.gl-shop-drawer-featured a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  color: #fff;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}

.gl-shop-drawer-featured a span:last-child {
  color: var(--gl-accent);
  font-size: 19px;
  transition: transform .2s ease;
}

.gl-shop-drawer-featured a:hover span:last-child,
.gl-shop-drawer-featured a:focus-visible span:last-child {
  transform: translateX(4px);
}

.gl-shop-drawer-section {
  padding-top: 28px;
}

.gl-drawer-categories,
.gl-drawer-subcategories {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gl-drawer-category {
  margin: 0;
  border-bottom: 1px solid rgba(255,255,255,.085);
}

.gl-drawer-category-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 48px;
}

.gl-drawer-category-row > a {
  min-width: 0;
  padding: 11px 8px 11px 0;
  color: #fff;
  font-family: var(--gl-serif);
  font-size: 22px;
  line-height: 1.15;
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}

.gl-drawer-category-row > a:hover,
.gl-drawer-category-row > a:focus-visible {
  color: #e1c08e;
  transform: translateX(3px);
}

.gl-drawer-category-toggle {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.75);
  cursor: pointer;
}

.gl-drawer-category-toggle svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  transition: transform .2s ease;
}

.gl-drawer-category-toggle[aria-expanded='true'] svg {
  transform: rotate(180deg);
}

.gl-drawer-category-children[hidden] {
  display: none !important;
}

.gl-drawer-subcategories {
  margin: 0 0 9px 13px;
  padding-left: 15px;
  border-left: 1px solid rgba(170,133,81,.55);
}

.gl-drawer-subcategories .gl-drawer-category {
  border-bottom: 0;
}

.gl-drawer-subcategories .gl-drawer-category-row {
  min-height: 38px;
}

.gl-drawer-subcategories .gl-drawer-category-row > a {
  padding: 8px 8px 8px 0;
  font-family: var(--gl-sans);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

.gl-drawer-subcategories .gl-drawer-subcategories .gl-drawer-category-row > a {
  color: rgba(255,255,255,.72);
  font-size: 12px;
}

.gl-shop-drawer-empty {
  color: rgba(255,255,255,.62);
  font-size: 13px;
}

.gl-shop-drawer-footer {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 18px 32px 23px;
  border-top: 1px solid rgba(255,255,255,.12);
  background: #0d0d0c;
}

.gl-shop-drawer-footer a {
  color: rgba(255,255,255,.68);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}

.gl-shop-drawer-footer a:hover,
.gl-shop-drawer-footer a:focus-visible {
  color: #fff;
}

@media (max-width: 1500px) and (min-width: 1101px) {
  .gl-nav { gap: 14px; }
  .gl-shop-drawer-toggle { font-size: 10px; letter-spacing: .11em; }
}

@media (max-width: 1100px) {
  /* The existing hamburger becomes the mobile entry point to the same
     collection drawer. The desktop primary menu stays hidden to avoid two
     competing full-screen navigation systems. */
  .gl-nav { display: none !important; }
  .gl-menu-toggle {
    display: block;
    position: relative;
    z-index: 1;
  }
  .gl-menu-toggle span {
    pointer-events: none;
  }
  .gl-shop-drawer-head {
    padding-top: 28px;
  }
}

@media (max-width: 540px) {
  .gl-shop-drawer {
    width: min(360px, calc(100vw - 20px));
  }
  .gl-shop-drawer-head,
  .gl-shop-drawer-nav,
  .gl-shop-drawer-footer {
    padding-left: 22px;
    padding-right: 22px;
  }
  .gl-shop-drawer-head h2 {
    font-size: 29px;
  }
  .gl-drawer-category-row > a {
    font-size: 20px;
  }
}

/* Performance pass v1.4.2 ---------------------------------------------------
   Keep the LCP artwork as a real responsive image instead of a CSS background
   so browsers can prioritise it, choose an efficient srcset candidate and
   report a valid Largest Contentful Paint element. */
.gl-hero-media-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.gl-hero-media-wrap picture {
  display: block;
  width: 100%;
  height: 100%;
}
.gl-hero-media {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
}
.gl-hero-media--mobile { display: none; }
.gl-hero--bundled::after { display: none; }
.gl-hero.has-image { background-image: none !important; }

/* Mobile performance + accessibility pass v1.4.3 ---------------------------
   Desktop is deliberately left almost untouched. These rules reduce the
   amount of work needed for the first mobile viewport and fix Lighthouse
   contrast/touch-target findings without changing the visual direction. */
:root {
  --gl-accent-text: #7a572d;
}

/* Use a darker companion gold for small text on pale backgrounds. The main
   brand gold is retained for fills, borders and large decorative use. */
.gl-eyebrow,
.gl-about-values article > span {
  color: var(--gl-accent-text);
}
.gl-section--dark .gl-eyebrow,
.site-footer .gl-eyebrow,
.gl-shop-drawer .gl-eyebrow {
  color: var(--gl-accent);
}

@media (max-width: 780px) {
  html { scroll-behavior: auto; }

  /* Backdrop blur is relatively expensive on mobile GPUs and adds little at
     this size because the header already has a near-opaque background. */
  .site-header {
    background: rgba(255, 253, 249, .985);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .home .site-header { background: rgba(255, 253, 249, .965); }

  .gl-announcement {
    min-height: 30px;
    padding: 6px 14px;
    font-size: 10px;
  }
  .gl-header-inner {
    min-height: 64px;
    gap: 8px;
  }
  .custom-logo { max-height: 38px; }
  .site-title { font-size: 20px; }
  .gl-header-actions { gap: 4px; }

  /* Lighthouse wants interactive controls to be at least roughly 44px. */
  .gl-icon-link,
  .gl-menu-toggle,
  .gl-shop-drawer-toggle,
  .gl-shop-drawer-close,
  .gl-carousel-button,
  .gl-drawer-category-toggle,
  .gl-footer-bottom-inner .gl-social-link {
    min-width: 44px;
    min-height: 44px;
  }
  .gl-icon-link,
  .gl-shop-drawer-toggle,
  .gl-carousel-button,
  .gl-drawer-category-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .gl-text-link {
    min-height: 44px;
    align-items: center;
  }

  /* Keep the opening viewport materially shorter on phones. This reduces
     paint area and means useful content reaches the viewport sooner. */
  .gl-hero {
    min-height: 640px;
    padding: 96px 0 235px;
  }
  .gl-hero-copy { max-width: 94%; }
  .gl-hero-copy h1 {
    font-size: clamp(42px, 12vw, 58px);
    margin-bottom: 18px;
  }
  .gl-hero-copy p:not(.gl-eyebrow) {
    max-width: 34rem;
    font-size: 16px;
    line-height: 1.55;
  }
  .gl-hero-actions {
    gap: 10px;
    margin-top: 24px;
  }
  .gl-button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .woocommerce #respond input#submit {
    min-height: 46px;
    padding: 11px 18px;
  }
  .gl-hero-media { object-position: center center; }
  .gl-hero-media--desktop { display: none; }
  .gl-hero-media--mobile { display: block; }

  .gl-trust-item {
    min-height: 0;
    padding: 19px 20px;
  }
  .gl-trust-item strong { font-size: 18px; }

  .gl-section { padding: 56px 0; }
  .gl-section-head { margin-bottom: 26px; }
  .gl-section-head h2 { font-size: clamp(34px, 10vw, 44px); }

  .gl-category-carousel .gl-category-card,
  .gl-category-carousel .gl-category-card:first-child,
  .gl-category-carousel .gl-category-card:nth-child(n+2),
  .gl-category-card,
  .gl-category-card:nth-child(n+2) {
    min-height: 350px;
  }
  .gl-category-carousel .gl-category-card h3 { font-size: 27px; }

  .gl-editorial-media { min-height: 350px; }
  .gl-editorial-copy { padding: 50px 24px; }
  .gl-quote blockquote { font-size: clamp(30px, 8vw, 42px); }

  .gl-footer-main {
    gap: 34px 22px;
    padding-top: 50px;
    padding-bottom: 42px;
  }
  .gl-footer-col li { margin: 4px 0; }
  .gl-footer-col a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: rgba(255,255,255,.88);
  }
  .gl-footer-bottom-inner {
    gap: 12px;
    font-size: 12px;
  }

  /* Large decorative shadows/transitions are cheap on desktop but can create
     extra compositing work during the mobile Lighthouse trace. */
  .gl-art-frame,
  .gl-category-card,
  .gl-editorial-media,
  .gl-post-card img {
    box-shadow: none;
  }
  .gl-category-card,
  .gl-button,
  .gl-text-link::after,
  .gl-icon-link,
  .gl-carousel-button {
    transition-duration: .12s;
  }

}

@media (max-width: 480px) {
  .gl-hero {
    min-height: 610px;
    padding-top: 88px;
    padding-bottom: 220px;
  }
  .gl-hero-actions .gl-button { width: 100%; }
  .gl-category-carousel .gl-category-card,
  .gl-category-carousel .gl-category-card:first-child,
  .gl-category-carousel .gl-category-card:nth-child(n+2),
  .gl-category-card,
  .gl-category-card:nth-child(n+2) {
    min-height: 325px;
  }
}


/* Accessibility contrast refinement v1.4.5 -------------------------------
   Keep the lighter brand gold for decorative surfaces and large type, but
   use the darker companion gold wherever small text sits on cream/white. */
.gl-section--paper { color: var(--gl-ink); }
.gl-post-card__meta,
.gl-contact-details article > span,
.gl-contact-form label span,
.woocommerce ul.products li.product .price ins {
  color: var(--gl-accent-text);
}

/* White 11px text on the brand gold was below WCAG AA. Dark ink retains the
   gold announcement strip while giving it comfortably readable contrast. */
.gl-announcement { color: var(--gl-ink); }

/* Hovered text links on pale surfaces should not fall back to the lighter
   decorative gold. */
.gl-section--paper a:not(.gl-button):hover,
.gl-section--paper a:not(.button):focus-visible {
  color: var(--gl-accent-text);
}

/* Mobile LCP layout v1.4.8 -------------------------------------------------
   Keep the desktop hero layered, but place the bundled phone artwork in the
   normal document flow. This gives mobile performance tools the same simple,
   measurable image layout used by product pages. */
@media (max-width: 780px) {
  .gl-hero--bundled {
    min-height: 0;
    padding: 96px 0 0;
    align-items: stretch;
    flex-direction: column;
  }
  .gl-hero--bundled .gl-hero-inner {
    order: 1;
    flex: 0 0 auto;
  }
  .gl-hero--bundled .gl-hero-media-wrap {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    height: auto;
    margin-top: 24px;
  }
  .gl-hero--bundled .gl-hero-media--mobile {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }
}

@media (max-width: 480px) {
  .gl-hero--bundled {
    min-height: 0;
    padding-top: 88px;
    padding-bottom: 0;
  }
}
