/*
Theme Name: Gaura Style (Bricks Child)
Description: Child theme for the Gaura Style site. Custom code lives here so Bricks updates never overwrite it.
Author: Gaura Style
Template: bricks
Version: 1.10.4
Text Domain: gaura-bricks-child
*/

/* Sibling switchers ([gs_finish], [gs_stones]) */
.gs-dot { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--gs-dot, #A9A6A1); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2); }
.gs-sib__label { margin: 0 0 10px; font-size: var(--gs-fs-s, 13px); }
.gs-sib__label span { color: var(--gs-muted, #5F5B55); margin-left: 6px; }
.gs-sib__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-sib__opt { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--gs-line, #A9A6A1); border-radius: var(--gs-radius, 4px); font-size: var(--gs-fs-xs, 11px); text-transform: uppercase; letter-spacing: var(--gs-tracking, .04em); transition: border-color .2s; }
.gs-sib__opt:hover, .gs-sib__opt.is-current { border-color: var(--gs-ink, #161514); opacity: 1; }
.gs-stones { border-bottom: 1px solid var(--gs-line, #A9A6A1); }
.gs-stones__head { padding: 28px var(--gs-gutter, 24px); background: var(--gs-bg, #F7F7F7); border-bottom: 1px solid var(--gs-line, #A9A6A1); }
.gs-stones__head h2 { margin: 0; font-size: var(--gs-fs-m, 15px); letter-spacing: var(--gs-tracking, .04em); }
.gs-stones__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); background: var(--gs-bg, #F7F7F7); overflow: hidden; }
.gs-stones__cell { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 20px var(--gs-gutter, 24px); background: var(--gs-bg, #F7F7F7); box-shadow: 1px 0 0 var(--gs-line, #A9A6A1), 0 1px 0 var(--gs-line, #A9A6A1); margin: 0 0 -1px 0; }
.gs-stones__cell img { display: block; width: 100%; max-width: 160px; height: auto; aspect-ratio: 1 / 1; margin: 0 auto; object-fit: contain; mix-blend-mode: multiply; filter: brightness(1.085) contrast(1.04); }
.gs-stones__name { display: flex; align-items: center; gap: 6px; font-size: var(--gs-fs-xs, 11px); text-transform: uppercase; letter-spacing: var(--gs-tracking, .04em); }
.gs-stones__name .gs-dot + .gs-dot { margin-left: -4px; }
.gs-stones__cell.is-current { box-shadow: inset 0 -2px 0 var(--gs-ink, #161514); }
.gs-stones__cell:hover { opacity: 1; }
.gs-stones__cell:hover img { transform: scale(1.03); transition: transform .4s ease; }
@media (max-width: 767px) { .gs-stones__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===================== Journal article body ===================== */
.gs-article { font-size: var(--gs-fs-l); line-height: 1.75; color: var(--gs-ink); max-width: 720px; }
.gs-article > * { margin: 0 0 1.25em; }
.gs-article > *:last-child { margin-bottom: 0; }
.gs-article > h2 { font-size: var(--gs-fs-xl); letter-spacing: var(--gs-tracking); line-height: 1.25; margin: 2.2em 0 .8em; padding-top: 1.2em; border-top: 1px solid var(--gs-line); scroll-margin-top: calc(var(--gs-header-h) + 24px); }
.gs-article > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.gs-article > h3 { font-size: var(--gs-fs-l); letter-spacing: var(--gs-tracking); margin: 1.8em 0 .6em; scroll-margin-top: calc(var(--gs-header-h) + 24px); }
.gs-article > h4 { font-size: var(--gs-fs-m); margin: 1.6em 0 .5em; }
.gs-article a:not(.button):not(.wp-block-button__link):not(.add_to_cart_button) { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gs-line); }
.gs-article a:hover { text-decoration-color: var(--gs-ink); }
.gs-article strong { font-weight: 500; }
.gs-article ul, .gs-article ol { padding-left: 1.2em; }
.gs-article li { margin: .35em 0; }
.gs-article blockquote, .gs-article .wp-block-quote, .gs-article .wp-block-pullquote { margin: 2em 0; padding: 1.4em 0; border: 0; border-top: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); font-size: var(--gs-fs-xl); font-weight: 300; line-height: 1.45; }
.gs-article blockquote p { margin: 0; }
.gs-article blockquote cite, .gs-article .wp-block-quote cite { display: block; margin-top: .8em; font-size: var(--gs-fs-xs); font-style: normal; text-transform: uppercase; letter-spacing: var(--gs-tracking); color: var(--gs-muted); }
.gs-article figure, .gs-article .wp-block-image { margin: 2em 0; }
.gs-article img { display: block; width: 100%; height: auto; border-radius: var(--gs-radius); }
.gs-article figcaption { margin-top: .6em; font-size: var(--gs-fs-s); color: var(--gs-muted); text-align: left; }
.gs-article .wp-block-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gs-article .wp-block-gallery figure { margin: 0; width: auto !important; }
.gs-article hr, .gs-article .wp-block-separator { border: 0; border-top: 1px solid var(--gs-line); margin: 2.4em 0; opacity: 1; }
.gs-article table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--gs-line); border-radius: var(--gs-radius); font-size: var(--gs-fs-m); }
.gs-article th, .gs-article td { padding: 12px 14px; border-bottom: 1px solid var(--gs-line); text-align: left; }
.gs-article tr:last-child td { border-bottom: 0; }
.gs-article th { font-size: var(--gs-fs-xs); font-weight: 400; text-transform: uppercase; letter-spacing: var(--gs-tracking); color: var(--gs-muted); }
.gs-article .wp-block-button__link { display: inline-flex; padding: 12px 28px; border: 1px solid var(--gs-ink); border-radius: var(--gs-radius); background: var(--gs-ink); color: var(--gs-bg); font-size: var(--gs-fs-s); text-transform: uppercase; letter-spacing: var(--gs-tracking); }
.gs-article .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--gs-ink); }

/* Products placed inside articles (WooCommerce blocks or [products] shortcode) */
.gs-article .woocommerce, .gs-article .wp-block-woocommerce-handpicked-products, .gs-article .wp-block-woocommerce-product-collection, .gs-article .wc-block-grid { margin: 2.4em 0; max-width: none; }
.gs-article ul.products, .gs-article .wc-block-grid__products, .gs-article ul.wc-block-product-template {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0 !important; padding: 0 !important; list-style: none;
	border-top: 1px solid var(--gs-line); border-left: 1px solid var(--gs-line);
}
.gs-article ul.products::before, .gs-article ul.products::after { display: none !important; }
.gs-article ul.products li.product, .gs-article .wc-block-grid__product, .gs-article li.wc-block-product {
	float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 16px !important;
	border-right: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); text-align: left !important; display: flex !important; flex-direction: column; gap: 6px; font-size: var(--gs-fs-s);
}
.gs-article ul.products li.product img, .gs-article .wc-block-grid__product img, .gs-article li.wc-block-product img { aspect-ratio: 1 / 1; object-fit: contain; border-radius: 0; margin: 0 0 8px !important; filter: brightness(1.085) contrast(1.04); mix-blend-mode: multiply; }
.gs-article .woocommerce-loop-product__title, .gs-article .wc-block-grid__product-title, .gs-article li.wc-block-product .wp-block-post-title { font-size: var(--gs-fs-s) !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: var(--gs-tracking); line-height: 1.4; margin: 0 !important; padding: 0 !important; }
.gs-article li.product a, .gs-article .wc-block-grid__product a, .gs-article li.wc-block-product a { text-decoration: none !important; color: var(--gs-ink); }
.gs-article .price, .gs-article .wc-block-grid__product-price, .gs-article .wc-block-components-product-price { font-size: var(--gs-fs-s) !important; color: var(--gs-muted) !important; margin: 0 !important; }
.gs-article .star-rating, .gs-article .wc-block-grid__product-rating, .gs-article .onsale, .gs-article .wc-block-grid__product-onsale { display: none !important; }
.gs-article li.product .button, .gs-article .wc-block-grid__product-add-to-cart .wp-block-button__link, .gs-article .wc-block-components-product-button__button {
	margin-top: auto !important; align-self: flex-start; padding: 8px 16px !important; border: 1px solid var(--gs-ink) !important; border-radius: var(--gs-radius) !important; background: transparent !important; color: var(--gs-ink) !important;
	font-size: var(--gs-fs-xs) !important; text-transform: uppercase; letter-spacing: var(--gs-tracking); font-weight: 400 !important; line-height: 1.3 !important; min-height: 0 !important;
}
.gs-article li.product .button:hover, .gs-article .wc-block-grid__product-add-to-cart .wp-block-button__link:hover, .gs-article .wc-block-components-product-button__button:hover { background: var(--gs-ink) !important; color: var(--gs-bg) !important; }
.gs-article .added_to_cart { font-size: var(--gs-fs-xs); text-transform: uppercase; letter-spacing: var(--gs-tracking); }
@media (min-width: 768px) {
	.gs-article--wide ul.products, .gs-article--wide .wc-block-grid__products, .gs-article--wide ul.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.gs-article ul.products.columns-3, .gs-article .wc-block-grid.has-3-columns .wc-block-grid__products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Gift guide: numbered chapters, wider product rows */
.gs-article--gift { max-width: 980px; }
.gs-article--gift { counter-reset: gs-chapter; }
.gs-article--gift > :not(h2):not(.woocommerce):not(.wp-block-woocommerce-handpicked-products):not(.wp-block-woocommerce-product-collection):not(.wc-block-grid):not(figure):not(.wp-block-image) { max-width: 720px; }
.gs-article--gift > h2 { counter-increment: gs-chapter; display: grid; grid-template-columns: 64px 1fr; align-items: baseline; }
.gs-article--gift > h2::before { content: counter(gs-chapter, decimal-leading-zero); font-size: var(--gs-fs-s); color: var(--gs-muted); letter-spacing: var(--gs-tracking); }

/* Style story: wide images, big quotes */
.gs-article--story { max-width: 680px; margin-left: auto; margin-right: auto; }
.gs-article--story > p:first-child::first-letter { float: left; font-size: 4.2em; line-height: .85; padding: .06em .12em 0 0; font-weight: 300; }
@media (min-width: 992px) {
	.gs-article--story > figure, .gs-article--story > .wp-block-image, .gs-article--story > .wp-block-gallery { width: min(1080px, calc(100vw - 96px)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
	.gs-article--story > .woocommerce, .gs-article--story > .wp-block-woocommerce-handpicked-products, .gs-article--story > .wp-block-woocommerce-product-collection, .gs-article--story > .wc-block-grid { width: min(1080px, calc(100vw - 96px)); margin-left: 50%; transform: translateX(-50%); }
	.gs-article--story ul.products, .gs-article--story .wc-block-grid__products, .gs-article--story ul.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.gs-article--story blockquote, .gs-article--story .wp-block-pullquote { text-align: center; font-size: clamp(22px, 1.4vw + 12px, 30px); padding: 1.6em 0; }

/* Care & how-to: steps, tips */
.gs-article--care ol { list-style: none; counter-reset: gs-step; padding: 0; border: 1px solid var(--gs-line); border-radius: var(--gs-radius); }
.gs-article--care ol > li { counter-increment: gs-step; position: relative; margin: 0; padding: 16px 16px 16px 64px; border-bottom: 1px solid var(--gs-line); }
.gs-article--care ol > li:last-child { border-bottom: 0; }
.gs-article--care ol > li::before { content: counter(gs-step); position: absolute; left: 16px; top: 14px; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--gs-ink); border-radius: 50%; font-size: var(--gs-fs-s); }
.gs-article--care blockquote, .gs-article--care .wp-block-quote { padding: 16px 20px; border: 1px solid var(--gs-line); border-radius: var(--gs-radius); background: var(--gs-stone); font-size: var(--gs-fs-m); font-weight: 400; line-height: 1.6; }
.gs-article--care blockquote::before { content: "Tip"; display: block; margin-bottom: 6px; font-size: var(--gs-fs-xs); text-transform: uppercase; letter-spacing: var(--gs-tracking); color: var(--gs-muted); }

@media (max-width: 767px) {
	.gs-article { font-size: var(--gs-fs-m); }
	.gs-article > h2 { font-size: var(--gs-fs-l); }
	.gs-article--gift > h2 { grid-template-columns: 44px 1fr; }
}

/* Table of contents (Bricks post-toc) */
.gs-toc .toc-list, .gs-toc ol, .gs-toc ul { list-style: none; margin: 0; padding: 0; }
.gs-toc a { display: block; padding: 10px 0; border-bottom: 1px solid var(--gs-line); font-size: var(--gs-fs-s); line-height: 1.4; color: var(--gs-muted); transition: color var(--gs-ease); }
.gs-toc a:hover, .gs-toc .is-active-link, .gs-toc a.is-active-link { color: var(--gs-ink); }
.gs-toc .is-collapsible { max-height: none; }
.gs-toc .toc-list .toc-list a { padding-left: 14px; }

/* Journal cards */
.gs-jcard { color: var(--gs-ink); }
.gs-jcard .gs-jcard-img { display: block; overflow: hidden; aspect-ratio: 3 / 2; background: var(--gs-mist); }
.gs-jcard .gs-jcard-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gs-jcard:hover .gs-jcard-img img { transform: scale(1.03); }
.gs-jcard .gs-jcard-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--gs-fs-xs); text-transform: uppercase; letter-spacing: var(--gs-tracking); color: var(--gs-muted); }
.gs-jcard .gs-jcard-meta a { color: var(--gs-ink); }
.gs-jcard .gs-jcard-title a { color: var(--gs-ink); }
.gs-jcard .gs-jcard-excerpt { color: var(--gs-muted); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Journal: meta separators, empty related rows, image focus */
.gs-jmeta > * + *::before { content: "·"; margin-right: 16px; }
.gs-jgrid:not(:has(.gs-jcard)):not(:has(.gs-jempty)), .gs-jrel-head:has(+ .gs-jgrid:not(:has(.gs-jcard))) { display: none !important; }
.gs-jfeat img { object-position: 50% 30%; }

/* Region & language switcher */
.gs-lang { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; font-size: var(--gs-fs-xs); letter-spacing: .04em; text-transform: uppercase; }
.gs-lang__group { display: inline-flex; align-items: center; gap: 8px; }
.gs-lang__label { opacity: .6; margin-right: 2px; }
.gs-lang__sep { opacity: .4; }
.gs-lang a { color: inherit; text-decoration: none; opacity: .65; }
.gs-lang a:hover, .gs-lang a[aria-current="true"] { opacity: 1; }
.gs-lang a[aria-current="true"] { text-decoration: underline; text-underline-offset: 4px; }
.gs-lang--header { white-space: nowrap; }

/* Tax invoice fields at checkout: required once ticked, so hide "(optional)". */
.gs-taxinv .optional { display: none; }

/* Product Details table: values centered on the same line as their labels. */
.woocommerce-product-attributes th, .woocommerce-product-attributes td { vertical-align: middle; }
.woocommerce-product-attributes td p { margin: 0 !important; }

/* Product photo viewer (PhotoSwipe): page background with dark controls. */
.pswp__bg { background: var(--gs-bg, #F7F7F7); }
.pswp__top-bar, .pswp__caption, .pswp__ui--fit .pswp__top-bar, .pswp__ui--fit .pswp__caption { background: transparent !important; }
.pswp__counter, .pswp__caption__center { color: var(--gs-ink, #161514); opacity: 1; }
.pswp__button { filter: invert(1); opacity: .85; }
.pswp__button:hover, .pswp__button:focus-visible { opacity: 1; }

/* Mobile header: the logo shrinks to fit instead of running under the icons. */
@media (max-width: 480px) {
	body #brxe-hdr010.brxe-div { min-width: 0; }
	body #brxe-hdr012.brxe-image { flex: 0 1 auto; min-width: 0; }
	body #brxe-hdr012.brxe-image img { max-width: 100%; height: auto; }
	body #brxe-hdr031 .toggle, body #brxe-hdr032.brxe-woocommerce-mini-cart { width: 36px; min-width: 36px; }
	body .gs-lang--header .gs-lang__group { gap: 5px; }
	body .gs-lang--header { letter-spacing: .02em; }
}

/* Mobile header: menu (burger) icon centered on the logo line. */
body #brxe-hdr011.brxe-toggle { align-items: center; justify-content: center; }

/* Cart count: small round badge on the bag icon (hidden while the bag is empty). */
#brx-header .cart-icon .cart-count { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: auto; min-width: 17px; height: 17px; padding: 0 5px; top: -6px; right: -9px; border-radius: 999px; background: var(--gs-ink, #161514); color: #FFFFFF !important; font-size: 10px; font-weight: 500; line-height: 1; letter-spacing: 0; }
#brx-header .cart-icon .cart-count.hide { display: none; }

/* Bag popup: name, then "1 × price" on its own line, however long the name. */
body .gs-bag li.mini_cart_item { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 16px; row-gap: 6px; align-items: start; }
body .gs-bag li.mini_cart_item > a:not(.remove) { display: contents; }
body .gs-bag li.mini_cart_item img { grid-column: 1; grid-row: 1 / span 3; width: 72px; height: auto; margin: 0; }
body .gs-bag li.mini_cart_item .variation, body .gs-bag li.mini_cart_item .quantity { grid-column: 2; margin: 0; min-height: 0; }

/* Home category grid: no empty cell when five cards wrap; wide cards keep the same image height. */
@media (max-width: 991px) and (min-width: 768px) {
	body .gs-grid--5.brxe-div { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	body .gs-grid--5.brxe-div > .gs-card { grid-column: span 2; }
	body .gs-grid--5.brxe-div > .gs-card:nth-child(n+4) { grid-column: span 3; }
	body #brxe-hm0009.gs-grid--5 > .gs-card:nth-child(n+4) .gs-card__media img { width: auto; max-height: 240px; }
}
@media (max-width: 767px) {
	body .gs-grid--5.brxe-div > .gs-card:nth-child(5) { grid-column: 1 / -1; }
	body #brxe-hm0009.gs-grid--5 > .gs-card:nth-child(5) .gs-card__media img { width: auto; max-height: 165px; }
}

/* Search overlay: field sits inside the page margins. */
body .bricks-search-overlay .bricks-search-inner { box-sizing: border-box; width: 100%; max-width: 640px; margin: 0 auto; padding: 0 var(--gs-gutter, 24px); }
body .bricks-search-overlay .bricks-search-form, body .bricks-search-overlay .bricks-search-form input[type="search"] { box-sizing: border-box; width: 100%; max-width: 100%; }

/* Blog FAQ accordion: lined items, + / − on the right (blog-faq.php). */
body .gs-faq { border-top: 1px solid var(--gs-line, #A9A6A1); margin: 8px 0 40px; }
body .gs-faq__item { border-bottom: 1px solid var(--gs-line, #A9A6A1); }
body .gs-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; cursor: pointer; list-style: none; color: var(--gs-ink, #161514); font-size: 1em; line-height: 1.45; }
body .gs-faq__q::-webkit-details-marker { display: none; }
body .gs-faq__q::after { content: ""; flex: 0 0 12px; width: 12px; height: 12px; background: linear-gradient(currentColor, currentColor) center / 12px 1px no-repeat, linear-gradient(currentColor, currentColor) center / 1px 12px no-repeat; }
body .gs-faq__item[open] > .gs-faq__q::after { background: linear-gradient(currentColor, currentColor) center / 12px 1px no-repeat; }
body .gs-faq__q:focus-visible { outline: 2px solid var(--gs-ink, #161514); outline-offset: 4px; }
body .gs-faq__a { padding: 0 32px 20px 0; color: var(--gs-muted, #5F5B55); }
body .gs-faq__a > *:first-child { margin-top: 0; }
body .gs-faq__a > *:last-child { margin-bottom: 0; }

/* Mobile menu: Rings…Brooches shown as sub-items of Shop all, on a thin guide line. */
body #brxe-hdr053 > :is(#brxe-hdr055, #brxe-hdr056, #brxe-hdr057, #brxe-hdr058, #brxe-hdr059) { margin-top: -18px; padding: 10px 0 10px 18px; border-left: 1px solid var(--gs-line, #A9A6A1); font-size: 15px; line-height: 1.5; color: var(--gs-muted, #5F5B55); }
body #brxe-hdr053 > #brxe-hdr055 { margin-top: -8px; }
body #brxe-hdr053 > :is(#brxe-hdr055, #brxe-hdr056, #brxe-hdr057, #brxe-hdr058, #brxe-hdr059):hover { color: var(--gs-ink, #161514); }

/* "Shop the collection" line at the end of some articles. */
body .gs-shop-collection { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--gs-line, #A9A6A1); }
body .gs-shop-collection a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
