/* Gold Factory Toolkit front-end styles */
.gft-tool { max-width: 640px; margin: 0 auto; padding: 28px; background: #fff; border: 1px solid #e8e2d5; }
.gft-field { margin-bottom: 16px; }
.gft-field label { display: block; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: #6a6156; margin-bottom: 6px; }
.gft-field input, .gft-field select, .gft-field textarea { width: 100%; padding: 11px 14px; border: 1px solid #d8d0c0; background: #fff; font-size: 15px; }
.gft-field input:focus, .gft-field select:focus, .gft-field textarea:focus { outline: none; border-color: #c6a44e; }
.gft-row { display: flex; gap: 16px; }
.gft-row .gft-field { flex: 1; }
.gft-row-inline { display: flex; align-items: center; gap: 12px; }
.gft-row-inline label { margin: 0; flex: 1; }
.gft-row-inline input { width: 140px; }
.gft-btn { display: inline-block; background: #1a1a1a; color: #fff; border: none; padding: 13px 30px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.gft-btn:hover { background: #c6a44e; color: #fff; }
.gft-result { margin-top: 18px; padding: 14px 16px; background: #faf6ec; border-left: 3px solid #c6a44e; font-size: 16px; }
.gft-result-trad { background: #fdf9f0; }
.gft-success { margin: 0 0 18px; padding: 14px 16px; background: #f0f7ef; border-left: 3px solid #5a9a58; }
.gft-error { background: #fbf0f0 !important; border-left-color: #b05050 !important; }
.gft-note { font-size: 13px; color: #8a8172; margin-top: 14px; line-height: 1.5; }

.gft-table { width: 100%; border-collapse: collapse; }
.gft-table th, .gft-table td { padding: 12px 14px; border-bottom: 1px solid #eee6d8; text-align: left; }
.gft-table thead th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #6a6156; border-bottom: 2px solid #c6a44e; }
.gft-price-table td.gft-price-cell { font-weight: 600; }
.gft-price-updated { font-size: 12px; color: #8a8172; margin-top: 10px; }
.gft-breakup-total td { font-weight: 700; border-top: 2px solid #c6a44e; }

.gft-price-breakup { margin: 30px 0; }
.gft-price-breakup h3 { font-size: 20px; margin-bottom: 14px; }

.gft-reserve-wrap { margin-top: 14px; }
.gft-reserve-btn.button { width: 100%; text-align: center; background-image: linear-gradient(134deg,#A8802D 0%,#FBF3A1 47%,#CDA42D 100%); background-color: transparent; color: #1a1a1a; border: 1px solid #c6a44e; transition: box-shadow .3s ease; }
.gft-reserve-btn.button:hover { background-image: linear-gradient(134deg,#A8802D 0%,#FBF3A1 67%,#CDA42D 100%); background-color: transparent; color: #1a1a1a; box-shadow: 0 4px 16px rgba(198,164,78,.45); }
.gft-reserve-note { display: block; margin-top: 8px; font-size: 12px; color: #8a8172; line-height: 1.5; }

/* ---- Zakat al-Mal calculator ---- */
.gft-zakat2 { max-width: 760px; }
.gft-zk2-section { border: 1px solid #E8E2D5; background: #FAF6EF; padding: 22px; margin-bottom: 18px; }
.gft-zk2-section h3 { font-size: 19px; margin: 0 0 14px; color: #23201A; }
.gft-zk2-choice label { display: block; margin-bottom: 10px; font-size: 14px; color: #5A554B; cursor: pointer; }
.gft-zk2-choice input { margin-right: 8px; }
.gft-zk2-goldrow { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.gft-zk2-goldrow input[type=number] { width: 130px; padding: 9px 10px; border: 1px solid #E8E2D5; background: #fff; }
.gft-zk2-goldrow select { padding: 9px 10px; border: 1px solid #E8E2D5; background: #fff; }
.gft-zk2-personal { font-size: 13px; color: #8A8172; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.gft-zk2-remove { border: 1px solid #E8E2D5; background: #fff; color: #8A8172; width: 30px; height: 30px; line-height: 1; cursor: pointer; }
.gft-zk2-remove:hover { color: #C6A44E; border-color: #C6A44E; }
.gft-btn-ghost { background: none; border: 1px dashed #C6A44E; color: #C6A44E; padding: 8px 16px; font-size: 13px; cursor: pointer; }
.gft-btn-ghost:hover { background: #C6A44E; color: #fff; }
.gft-zk2-calc { background-image: linear-gradient(134deg,#A8802D 0%,#FBF3A1 47%,#CDA42D 100%); background-color: transparent; color: #1a1a1a; border: 0; transition: box-shadow .3s ease; }
.gft-zk2-calc:hover { background-image: linear-gradient(134deg,#A8802D 0%,#FBF3A1 67%,#CDA42D 100%); background-color: transparent; color: #1a1a1a; box-shadow: 0 4px 16px rgba(198,164,78,.45); }
.gft-zk2-result { margin-top: 22px; border: 1px solid #E8E2D5; padding: 22px; }
.gft-zk2-result h3 { font-size: 19px; margin: 0 0 14px; }
.gft-zk2-result td:last-child { text-align: right; font-weight: 600; }

@media (max-width: 600px) {
	.gft-zk2-goldrow input[type=number] { width: 100%; }
	.gft-zk2-goldrow select { width: 100%; }

	.gft-row { flex-direction: column; gap: 0; }
	.gft-tool { padding: 18px; }
}

/* ---- traditional weight breakdown (converter + product page) ---- */
.gft-result-trad { background: #FAF6EF; border-left: 3px solid #C6A44E; padding: 16px 20px; }
.gft-bd-title { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: #8A8172; margin-bottom: 10px; }
.gft-bd-row { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; border-bottom: 1px solid #E8E2D5; font-size: 15px; color: #5A554B; }
.gft-bd-row:last-child { border-bottom: 0; }
.gft-bd-row strong { color: #23201A; text-align: right; }
.gft-local-weights { margin: 26px 0 8px; }
.gft-local-weights h3 { font-size: 20px; margin-bottom: 14px; }
.gft-local-weights td:last-child { text-align: right; font-weight: 600; color: #23201A; }
.gft-weight-converter optgroup { font-style: normal; font-weight: 600; color: #8A8172; }

/* ---- loyalty points ---- */
.gft-points-row th { vertical-align: top; }
.gft-points-row td { text-align: right; }
.gft-points-note { display: block; margin-top: 6px; font-size: 13px; font-weight: 400; color: #8A8172; line-height: 1.55; }
.gft-points-panel { margin: 0 0 26px; padding: 22px 26px; background: #FAF6EF; border-left: 3px solid #C6A44E; }
.gft-points-panel h3 { margin: 0 0 6px; font-size: 22px; color: #23201A; }
.gft-points-panel p { margin: 0; color: #5A554B; font-size: 15px; line-height: 1.6; }

/* ---- membership rewards ---- */
.gft-tier-badge { display: inline-block; margin-bottom: 10px; padding: 5px 14px; background: linear-gradient(134deg,#A8802D 0%,#FBF3A1 47%,#CDA42D 100%); color: #1A1A1A; font-size: 11px; font-weight: 600; letter-spacing: .16em; }
.gft-tier-upgrade { margin: 0 0 12px; padding: 10px 14px; background: #1A1A1A; color: #FBF3A1; font-size: 14px; }
.gft-tier-bar { height: 8px; margin: 14px 0 8px; background: #E8E2D5; border-radius: 4px; overflow: hidden; }
.gft-tier-bar span { display: block; height: 100%; background: linear-gradient(90deg,#A8802D,#CDA42D); }
.gft-product-points { margin: 10px 0 16px; padding: 10px 14px; background: #FAF6EF; border-left: 3px solid #C6A44E; font-size: 14px; color: #5A554B; }
.gft-product-points a { color: #A8802D; text-decoration: underline; }

/* ---- checkout payment options + returns notices ---- */
.gft-pay-options { margin: 0 0 26px; padding: 22px 26px; border: 1px solid #E8E2D5; background: #FFFFFF; }
.gft-pay-options h3 { margin: 0 0 14px; font-size: 19px; color: #23201A; }
.gft-pay-alert { margin: 0 0 14px; padding: 12px 16px; background: #1A1A1A; color: #FBF3A1; font-size: 14px; line-height: 1.55; }
.gft-pay-list { list-style: none; margin: 0; padding: 0; }
.gft-pay-list li { padding: 12px 0; border-bottom: 1px solid #F1EAD9; }
.gft-pay-list li:last-child { border-bottom: 0; }
.gft-pay-name { display: block; font-size: 14px; font-weight: 600; letter-spacing: .06em; color: #23201A; text-transform: uppercase; }
.gft-pay-note { display: block; margin-top: 4px; font-size: 13.5px; color: #5A554B; line-height: 1.6; }
.gft-pay-returns { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #E8E2D5; font-size: 13.5px; color: #5A554B; line-height: 1.6; }
.gft-no-return { margin: 12px 0 16px; padding: 12px 16px; background: #FBF4F0; border-left: 3px solid #B0764A; font-size: 14px; color: #5A554B; line-height: 1.6; }
.gft-can-return { margin: 8px 0 14px; font-size: 13.5px; color: #8A8172; }
.gft-loop-flag { display: block; margin-top: 4px; font-size: 11px; letter-spacing: .08em; color: #B0764A; text-transform: uppercase; }
.gft-track-login { margin-top: 14px; font-size: 14px; color: #5A554B; }
.gft-track-login a { color: #A8802D; text-decoration: underline; }
.gft-hygiene-note { padding: 12px 16px; background: #FBF4F0; border-left: 3px solid #B0764A; color: #5A554B; }
.gft-check { display: block; margin: 14px 0 18px; font-size: 14px; color: #5A554B; line-height: 1.55; }
.gft-check input { margin-right: 8px; }

/* ---- showroom availability + viewing button ---- */
.gft-showroom { margin: 6px 0 12px; font-size: 14px; line-height: 1.55; }
.gft-showroom-yes { color: #3E7D4E; }
.gft-showroom-yes:before { content: "\2713"; margin-right: 7px; font-weight: 700; }
.gft-showroom-made { color: #8A6D2F; }
.gft-viewing-btn.button { display: inline-block; margin-top: 10px; width: 100%; text-align: center; background: transparent; color: #1A1A1A; border: 1px solid #1A1A1A; }
.gft-viewing-btn.button:hover { background: #1A1A1A; color: #FFFFFF; }

/* ---- gold weight (gross) + payment options on the product page ---- */
.gft-weight-line { margin: 0 0 12px; display: flex; align-items: baseline; gap: 10px; font-size: 15px; color: #5A554B; }
.gft-weight-label { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8A8172; }
.gft-weight-line strong { color: #23201A; font-weight: 600; }
.gft-pay-line { margin: 0 0 18px; padding: 11px 15px; background: #FAF6EF; border-left: 3px solid #C6A44E; font-size: 13px; line-height: 1.8; color: #5A554B; }
.gft-pay-line-label { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8A8172; margin-bottom: 2px; }
.gft-pay-sep { display: inline-block; width: 4px; height: 4px; margin: 0 9px; border-radius: 50%; background: #C6A44E; vertical-align: middle; }
.gft-pay-line a { color: #A8802D; text-decoration: underline; }
.gft-pay-choose { margin: 14px 0 0 !important; color: #8A8172 !important; }

/* ---- pricing engine, pre orders and sizing ---- */
.gft-enquire-price { display: inline-flex; align-items: baseline; gap: 5px; }
.gft-enquire-price .gft-enquire-symbol { color: #23201A; font-weight: 600; }
.gft-enquire-price a { color: #A8802D; font-weight: 600; text-decoration: underline; letter-spacing: .04em; }
.gft-enquire-price a:hover { color: #23201A; }
.gft-preorder-note { margin: 12px 0 0; padding: 11px 15px; background: #FAF6EF; border-left: 3px solid #C6A44E; font-size: 13.5px; line-height: 1.6; color: #5A554B; }
.gft-preorder-note strong { color: #23201A; }
.gft-loop-preorder { color: #A8802D; }
.gft-size-specs { margin: 4px 0 16px; }
.gft-size-specs table { width: 100%; }
.gft-size-specs td { padding: 7px 0; border-bottom: 1px solid #F1EAD9; font-size: 14px; color: #5A554B; }
.gft-size-specs td:last-child { text-align: right; color: #23201A; }
.gft-bangle-sizes { margin: 0 0 18px; padding: 12px 15px; background: #FAF6EF; border-left: 3px solid #C6A44E; }
.gft-bangle-sizes summary { cursor: pointer; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #8A8172; }
.gft-bangle-sizes table { margin-top: 12px; }
.gft-bangle-sizes .gft-note { margin: 10px 0 0; font-size: 13px; color: #8A8172; }
.gft-resize { margin: 0 0 18px; }
.gft-resize label { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8A8172; margin-bottom: 6px; }
.gft-resize select, .gft-resize input[type=text] { width: 100%; max-width: 340px; padding: 10px 12px; border: 1px solid #E8E2D5; background: #fff; font-size: 15px; }
.gft-resize-note { margin: 8px 0 0; font-size: 13px; color: #8A8172; line-height: 1.6; }
.gft-size-table td, .gft-size-table th { white-space: nowrap; }

/* ---- gold bank, trade portal and collections ---- */
.gft-bank-panel { margin: 0 0 26px; padding: 22px 26px; background: #FAF6EF; border-left: 3px solid #C6A44E; }
.gft-bank-panel h3 { margin: 0 0 10px; font-size: 20px; color: #23201A; }
.gft-bank-balance { font-size: 17px; color: #23201A; margin: 0 0 8px; }
.gft-bank-balance strong { color: #A8802D; }
.gft-bank-note { font-size: 13.5px; color: #5A554B; line-height: 1.6; margin: 0 0 12px; }
.gft-bank-panel .gft-table { margin-top: 14px; background: #fff; }
.gft-collection { margin: 0 0 6px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #A8802D; }
.gft-trade-form .gft-check { margin: 16px 0; }
.gft-worksheet-item img { max-width: 100%; height: auto; }

/* ---- gold buying calculator, buying prices, valuations ---- */
.gft-gold-calc { max-width: 860px; }
.gft-calc-row { display: grid; grid-template-columns: 1.4fr 1fr auto auto 36px; gap: 10px; align-items: center; margin-bottom: 10px; }
.gft-calc-row select, .gft-calc-row input { padding: 10px 12px; border: 1px solid #E8E2D5; background: #fff; font-size: 15px; width: 100%; }
.gft-calc-rate { font-size: 13px; color: #8A8172; white-space: nowrap; }
.gft-calc-value { font-size: 15px; font-weight: 600; color: #23201A; white-space: nowrap; }
.gft-calc-remove { border: 1px solid #E8E2D5; background: #fff; color: #8A8172; width: 34px; height: 34px; line-height: 1; font-size: 18px; cursor: pointer; }
.gft-calc-remove:hover { color: #C6A44E; border-color: #C6A44E; }
.gft-calc-result { margin-top: 24px; border-top: 1px solid #E8E2D5; padding-top: 20px; }
.gft-calc-total { font-size: 19px; color: #5A554B; margin: 16px 0 20px; }
.gft-calc-total strong { color: #A8802D; font-size: 26px; }
.gft-calc-options { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gft-calc-option { padding: 18px 20px; background: #FAF6EF; border-left: 3px solid #C6A44E; }
.gft-calc-option h4 { margin: 0 0 8px; font-size: 17px; color: #23201A; }
.gft-calc-option p { font-size: 14px; line-height: 1.6; color: #5A554B; margin: 0 0 14px; }
.gft-calc-charge { font-size: 13px; color: #8A8172; }
.gft-buying-prices { max-width: 620px; }
.gft-buying-prices td:last-child { text-align: right; }
.gft-val-print { border: 1px solid #E8E2D5; padding: 26px; background: #fff; }
.gft-val-print h2 { margin: 0 0 4px; font-size: 22px; }
.gft-val-ref { font-size: 18px; letter-spacing: .1em; color: #A8802D; margin: 0 0 18px; }
.gft-val-items { white-space: pre-wrap; font-family: inherit; background: #FAF6EF; padding: 12px 14px; font-size: 14px; }
.gft-val-small { font-size: 13px; color: #8A8172; line-height: 1.6; }
@media (max-width: 720px) {
	.gft-calc-row { grid-template-columns: 1fr 1fr; }
	.gft-calc-rate, .gft-calc-value { grid-column: span 1; }
	.gft-calc-options { grid-template-columns: 1fr; }
}
@media print {
	body * { visibility: hidden; }
	.gft-val-print, .gft-val-print * { visibility: visible; }
	.gft-val-print { position: absolute; left: 0; top: 0; width: 100%; border: 0; }
}

/* ---- frequently asked questions ---- */
.gft-faq { max-width: 860px; }
.gft-faq-search { margin: 0 0 22px; }
.gft-faq-search input { width: 100%; padding: 13px 16px; border: 1px solid #E8E2D5; background: #fff; font-size: 16px; }
.gft-faq-search input:focus { outline: none; border-color: #C6A44E; }
.gft-faq-count { margin: 8px 0 0; font-size: 13px; color: #8A8172; }
.gft-faq-group { margin: 30px 0 12px; font-size: 15px; letter-spacing: .1em; text-transform: uppercase; color: #A8802D; }
.gft-faq-group:first-of-type { margin-top: 8px; }
.gft-faq-item { border-bottom: 1px solid #F1EAD9; }
.gft-faq-item summary { padding: 15px 30px 15px 0; cursor: pointer; font-size: 16px; color: #23201A; position: relative; list-style: none; }
.gft-faq-item summary::-webkit-details-marker { display: none; }
.gft-faq-item summary:after { content: "+"; position: absolute; right: 4px; top: 13px; font-size: 20px; color: #C6A44E; }
.gft-faq-item[open] summary:after { content: "\2212"; }
.gft-faq-item summary:hover { color: #A8802D; }
.gft-faq-answer { padding: 0 30px 18px 0; }
.gft-faq-answer p { font-size: 15px; line-height: 1.7; color: #5A554B; margin: 0 0 10px; }
.gft-faq-where { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #8A8172; }
.gft-faq-empty { padding: 18px 0; color: #8A8172; }
.gft-faq-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.gft-faq-card { display: block; padding: 20px 22px; background: #FAF6EF; border-left: 3px solid #C6A44E; text-decoration: none; transition: box-shadow .25s ease, transform .25s ease; }
.gft-faq-card:hover { box-shadow: 0 6px 20px rgba(35,32,26,.10); transform: translateY(-2px); }
.gft-faq-card-name { display: block; font-size: 16px; color: #23201A; line-height: 1.45; }
.gft-faq-card-count { display: block; margin-top: 6px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #8A8172; }
@media (max-width: 900px) { .gft-faq-index { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .gft-faq-index { grid-template-columns: 1fr; } }

/* ---- product options ---- */
.gft-options { margin: 0 0 20px; }
.gft-option { margin: 0 0 14px; }
.gft-option label { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8A8172; margin-bottom: 6px; }
.gft-option select, .gft-option input[type=text] { width: 100%; max-width: 340px; padding: 10px 12px; border: 1px solid #E8E2D5; background: #fff; font-size: 15px; }
.gft-option select:focus, .gft-option input[type=text]:focus { outline: none; border-color: #C6A44E; }
.gft-option-note { margin: 6px 0 0; font-size: 13px; color: #8A8172; line-height: 1.6; }
.gft-options-total { margin: 4px 0 0; padding: 10px 14px; background: #FAF6EF; border-left: 3px solid #C6A44E; font-size: 14px; color: #23201A; }

/* Repair form: work-needed checkbox grid */
.gft-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 2px 18px; margin-top: 6px; }
.gft-checks .gft-check { margin: 6px 0; }
@media (max-width: 600px) { .gft-checks { grid-template-columns: 1fr; } }

/* Gift cards */
.gft-gc-fields { margin: 18px 0 4px; padding: 18px 20px; background: #FAF6EF; border: 1px solid #EDE4D2; }
.gft-gc-apply { margin: 0 0 20px; }
.gft-gc-apply label { display: block; font-size: 14px; margin-bottom: 6px; color: #5A554B; }
.gft-gc-row { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; }
.gft-gc-row input { flex: 1 1 200px; }
.gft-gc-applied { margin: 10px 0 0; font-size: 14px; color: #5A554B; }
.gft-gc-applied a { color: #8A8172; text-decoration: underline; }

/* Collections and Styles filter */
.gft-tax-filter { margin: 0 0 24px; }
.gft-tax-filter h5 { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 10px; color: #23201A; }
.gft-tax-filter ul { list-style: none; margin: 0; padding: 0; }
.gft-tax-filter li { margin: 0 0 6px; }
.gft-tax-filter a { font-size: 14px; color: #5A554B; }
.gft-tax-filter a:hover { color: #C6A44E; }
.gft-tax-filter span { color: #8A8172; }

/* Product video */
.gft-product-video-wrap { margin: 34px 0; }
.gft-product-video-wrap h3 { font-size: 20px; margin: 0 0 14px; }
.gft-product-video video { width: 100%; max-width: 720px; height: auto; display: block; background: #1A1A1A; }


/* Recently viewed */
.gft-recently-viewed { margin: 40px 0 10px; clear: both; }
.gft-recently-viewed > h2 { font-size: 22px; margin: 0 0 18px; color: #23201A; }
.gft-recent-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 18px; }
.gft-recent-card { display: block; text-decoration: none; color: #23201A; }
.gft-recent-card img, .gft-recent-noimg { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; background: #FAF6EF; }
.gft-recent-name { display: block; font-size: 14px; margin-top: 10px; line-height: 1.4; }
.gft-recent-price { display: block; font-size: 14px; color: #5A554B; margin-top: 4px; }
.gft-recent-card:hover .gft-recent-name { color: #C6A44E; }

/* ---- price sections, for example Under £200 ---- */
.gft-price-band { margin: 0 0 30px; }
.gft-band-count { margin: 0 0 18px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #8A8172; }
.gft-band-empty { padding: 26px 22px; background: #FAF6EF; border-left: 3px solid #C6A44E; color: #5A554B; }
.gft-band-empty a { color: #A8802D; }
.gft-band-pages { display: flex; flex-wrap: wrap; gap: 6px; margin: 26px 0 0; }
.gft-band-pages a,
.gft-band-pages .current { min-width: 38px; padding: 8px 10px; text-align: center; border: 1px solid #E7DFCC; font-size: 14px; }
.gft-band-pages a { color: #5A554B; text-decoration: none; }
.gft-band-pages a:hover { border-color: #C6A44E; color: #23201A; }
.gft-band-pages .current { background: #C6A44E; border-color: #C6A44E; color: #1A1A1A; font-weight: 600; }

/* ---- several photos on the contact form ---- */
.gft-photos { margin: 0 0 6px; }
.gft-photos.is-enhanced .gft-photos-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gft-photos-drop { display: flex; flex-direction: column; gap: 4px; padding: 20px 22px; text-align: center; cursor: pointer; background: #FAF6EF; border: 1px dashed #C6A44E; border-radius: 2px; transition: background .2s ease, border-color .2s ease; }
.gft-photos-drop strong { font-size: 15px; color: #23201A; letter-spacing: .02em; }
.gft-photos-drop span { font-size: 13px; color: #8A8172; }
.gft-photos-drop:hover, .gft-photos-drop:focus-visible, .gft-photos-drop.is-over { background: #F3ECDD; border-color: #A8802D; outline: none; }
.gft-photos-drop.is-full { opacity: .55; cursor: not-allowed; }
.gft-photos-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.gft-photos-list li { position: relative; width: 92px; }
.gft-photos-list img { display: block; width: 92px; height: 92px; object-fit: cover; border: 1px solid #E7DFCC; border-radius: 2px; }
.gft-photos-meta { display: block; margin-top: 3px; font-size: 11px; color: #8A8172; text-align: center; }
.gft-photos-remove { position: absolute; top: -7px; right: -7px; width: 22px; height: 22px; padding: 0; line-height: 20px; font-size: 12px; color: #FFFFFF; background: #1A1A1A; border: 0; border-radius: 50%; cursor: pointer; }
.gft-photos-remove:hover { background: #A6402F; }
.gft-photos-note { margin: 8px 0 0; font-size: 13px; color: #5A554B; min-height: 1em; }
.gft-photos-note.is-warn { color: #A6402F; }

/* ---- gold price in gram, tola and ounce ---- */
.gft-gold-units { margin: 0 0 22px; }
.gft-units-head { margin: 0 0 12px; font-size: 18px; color: #23201A; }
.gft-units-scroll { overflow-x: auto; }
.gft-units-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.gft-units-table th, .gft-units-table td { padding: 10px 14px; text-align: right; border-bottom: 1px solid #EDE3CE; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gft-units-table thead th { text-align: right; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #8A8172; font-weight: 500; background: #FAF6EF; }
.gft-units-table th[scope="row"], .gft-units-table thead th:first-child { text-align: left; color: #23201A; font-weight: 600; }
.gft-units-table tbody tr:last-child th, .gft-units-table tbody tr:last-child td { border-bottom: 0; }
.gft-units-note { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: #8A8172; }
.gft-units-empty { padding: 14px 16px; background: #FAF6EF; border-left: 3px solid #C6A44E; color: #5A554B; }
.gft-ticker-units { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: 12px; font-size: .86em; opacity: .82; }
.gft-ticker-sep { opacity: .5; }

/* ---- category tags under the product title ---- */
.gft-single-cats { margin: -2px 0 14px; font-size: 12.5px; line-height: 1.6; letter-spacing: .05em; text-transform: uppercase; color: #8A8172; }
.gft-single-cats a { color: #8A8172; text-decoration: none; }
.gft-single-cats a:hover { color: #C6A44E; }

/* ---- a poster that goes somewhere ---- */
.gft-slide-link { display: block; }
.gft-slide-link img { display: block; }

/* ---- ask about this piece ---- */
.gft-ask-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 18px 0 0; }
.gft-ask-btn { background: none; border: 1px solid #C6A44E; color: #8A6A1F; padding: 11px 22px; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease; }
.gft-ask-btn:hover { background: #C6A44E; color: #fff; }
.gft-ask-note { font-size: 13px; color: #8A8172; }
body.gft-ask-open { overflow: hidden; }
.gft-ask { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.gft-ask-backdrop { position: absolute; inset: 0; background: rgba(26,26,26,.62); }
.gft-ask-panel { position: relative; width: 100%; max-width: 560px; max-height: 92vh; overflow-y: auto; background: #fff; border: 1px solid #EDE3CE; padding: 30px 30px 26px; box-shadow: 0 24px 60px rgba(26,26,26,.28); }
.gft-ask-x { position: absolute; top: 10px; right: 14px; background: none; border: 0; font-size: 26px; line-height: 1; color: #8A8172; cursor: pointer; }
.gft-ask-x:hover { color: #23201A; }
.gft-ask-title { margin: 0 0 18px; font-size: 21px; color: #23201A; }
.gft-ask-piece { display: flex; gap: 16px; align-items: flex-start; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #EDE3CE; }
.gft-ask-img { width: 96px; height: 96px; object-fit: cover; border: 1px solid #EDE3CE; flex: none; }
.gft-ask-facts { display: flex; flex-direction: column; gap: 3px; font-size: 14px; color: #8A8172; min-width: 0; }
.gft-ask-facts strong { font-size: 16px; color: #23201A; font-weight: 600; }
.gft-ask-grid { display: grid; gap: 14px; }
.gft-ask-grid label { display: block; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: #6A6156; }
.gft-ask-grid input, .gft-ask-grid textarea { display: block; width: 100%; margin-top: 6px; padding: 11px 13px; border: 1px solid #D8D0C0; background: #fff; font-size: 15px; font-family: inherit; text-transform: none; letter-spacing: normal; color: #23201A; }
.gft-ask-grid input:focus, .gft-ask-grid textarea:focus { outline: none; border-color: #C6A44E; }
.gft-ask-form .gft-btn { margin-top: 18px; }
.gft-ask-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gft-ask-small { margin: 12px 0 0; font-size: 12.5px; line-height: 1.6; color: #8A8172; }
.gft-ask-sent { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 100001; max-width: 92vw; padding: 14px 22px; background: #1A1A1A; color: #fff; font-size: 14px; box-shadow: 0 12px 30px rgba(26,26,26,.3); transition: opacity .6s ease; }
.gft-ask-sent.gft-ask-fade { opacity: 0; pointer-events: none; }
@media (max-width: 600px) {
	.gft-ask-panel { padding: 24px 20px 20px; }
	.gft-ask-img { width: 72px; height: 72px; }
}

/* ---- the gallery ---- */
.gft-gallery { --gft-gal-cols: 4; }
.gft-gal-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.gft-gal-f { background: none; border: 1px solid #EDE3CE; color: #6A6156; padding: 8px 15px; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; transition: all .2s ease; }
.gft-gal-f:hover { border-color: #C6A44E; color: #8A6A1F; }
.gft-gal-f.is-on { background: #1A1A1A; border-color: #1A1A1A; color: #fff; }
.gft-gal-grid { display: grid; grid-template-columns: repeat(var(--gft-gal-cols), minmax(0, 1fr)); gap: 14px; }
.gft-gal-tile { position: relative; display: block; padding: 0; border: 1px solid #EDE3CE; background: #FAF6EF; cursor: pointer; overflow: hidden; }
.gft-gal-tile img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; transition: transform .5s ease; }
.gft-gal-tile:hover img, .gft-gal-tile:focus-visible img { transform: scale(1.05); }
.gft-gal-over { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: 3px; padding: 34px 14px 13px; text-align: left; background: linear-gradient(to top, rgba(26,26,26,.86), rgba(26,26,26,0)); color: #fff; opacity: 0; transition: opacity .3s ease; }
.gft-gal-tile:hover .gft-gal-over, .gft-gal-tile:focus-visible .gft-gal-over { opacity: 1; }
.gft-gal-name { font-size: 14px; font-weight: 600; line-height: 1.3; }
.gft-gal-meta { font-size: 12px; opacity: .8; }
.gft-gal-cta { margin-top: 5px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #E3C877; }
.gft-gal-note { margin: 22px 0 0; font-size: 13.5px; line-height: 1.7; color: #8A8172; max-width: 60ch; }
@media (max-width: 1024px) { .gft-gal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px) { .gft-gal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .gft-gal-over { opacity: 1; padding-top: 26px; } }
/* the panel is display:flex when open, which beats the browser's [hidden] */
.gft-ask[hidden] { display: none; }
/* two columns for the short fields once there is room, so the panel does not
   fill the screen on a laptop */
@media (min-width: 560px) {
	.gft-ask-grid { grid-template-columns: 1fr 1fr; column-gap: 16px; }
	.gft-ask-grid label:nth-child(1) { grid-column: 1 / -1; }
	.gft-ask-grid label:nth-child(4) { grid-column: 1 / -1; }
}

/* ---- members only prices and confirming an address ---- */
.gft-gate-price a { color: #8A6A1F; text-decoration: none; border-bottom: 1px solid rgba(198,164,78,.45); font-size: .92em; letter-spacing: .02em; }
.gft-gate-price a:hover { color: #C6A44E; }
.gft-verify-nudge { margin: 14px 0 0; padding: 12px 15px; background: #FAF6EF; border-left: 3px solid #C6A44E; font-size: 14px; line-height: 1.6; color: #5A554B; }
.gft-verify { margin: 0 0 30px; padding: 22px 24px; background: #FAF6EF; border: 1px solid #EDE3CE; }
.gft-verify h3 { margin: 0 0 14px; font-size: 18px; color: #23201A; }
.gft-verify-table { width: 100%; border-collapse: collapse; }
.gft-verify-table th, .gft-verify-table td { padding: 9px 0; text-align: left; border-bottom: 1px solid #EDE3CE; font-size: 14.5px; vertical-align: middle; }
.gft-verify-table th { font-weight: 600; color: #23201A; width: 40%; }
.gft-verify-table tr:last-child th, .gft-verify-table tr:last-child td { border-bottom: 0; }
.gft-verify-yes { color: #2E6B3E; font-weight: 600; }
.gft-verify-no { color: #8A6A1F; }
.gft-verify-off { color: #8A8172; font-size: 13px; }
.gft-verify-note { margin: 14px 0 0; font-size: 13px; line-height: 1.6; color: #8A8172; }
.gft-verify-ok, .gft-verify-warn { margin: 0 0 18px; padding: 13px 16px; font-size: 14.5px; line-height: 1.6; }
.gft-verify-ok { background: #F1F6F1; border-left: 3px solid #2E6B3E; color: #2C4A34; }
.gft-verify-warn { background: #FAF6EF; border-left: 3px solid #C6A44E; color: #5A554B; }
.gft-btn-small { padding: 7px 15px; font-size: 11.5px; }

/* ---- the bar price on the home page ---- */
.gft-bars { margin: 0; }
.gft-bar-head { margin: 0 0 14px; font-size: 18px; color: #23201A; }
.gft-bar-row { display: flex; flex-wrap: wrap; gap: 14px; }
.gft-bar { flex: 1 1 260px; display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; background: #FAF6EF; border: 1px solid #EDE3CE; border-left: 3px solid #C6A44E; text-decoration: none; transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.gft-bar:hover { background: #fff; border-color: #C6A44E; transform: translateY(-2px); }
.gft-bar-label { font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: #8A8172; }
.gft-bar-price { font-size: 30px; line-height: 1.15; color: #23201A; font-variant-numeric: tabular-nums; }
.gft-bar-quiet .gft-bar-price { font-size: 20px; color: #8A8172; }
.gft-bar-note { font-size: 12.5px; line-height: 1.6; color: #8A8172; }
.gft-bar-cta { margin-top: 6px; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #8A6A1F; }
.gft-bar:hover .gft-bar-cta { color: #C6A44E; }
.gft-bar-foot { margin: 12px 0 0; font-size: 12.5px; line-height: 1.6; color: #8A8172; }
@media (max-width: 600px) { .gft-bar { flex: 1 1 100%; padding: 18px 20px; } .gft-bar-price { font-size: 26px; } }
.gft-bars { text-align: center; }
.gft-bar { text-align: left; }

/* ---- the rate tables written out for a customer ---- */
.gft-matrix { margin: 0 0 8px; }
.gft-matrix-head { margin: 0 0 12px; font-size: 18px; color: #23201A; }
.gft-matrix-scroll { overflow-x: auto; }
.gft-matrix-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.gft-matrix-table th, .gft-matrix-table td { padding: 11px 16px; text-align: right; border-bottom: 1px solid #EDE3CE; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gft-matrix-table thead th { text-align: right; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #8A8172; font-weight: 500; background: #FAF6EF; }
.gft-matrix-table th[scope="row"], .gft-matrix-table thead th:first-child { text-align: left; color: #23201A; font-weight: 600; }
.gft-matrix-table tbody tr:last-child th, .gft-matrix-table tbody tr:last-child td { border-bottom: 0; }
.gft-matrix-note { margin: 10px 0 0; font-size: 12.5px; line-height: 1.7; color: #8A8172; }
.gft-matrix-cta { margin: 12px 0 0; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; }
.gft-matrix-cta a { color: #8A6A1F; text-decoration: none; }
.gft-matrix-cta a:hover { color: #C6A44E; }
.gft-matrix-set { display: flex; flex-direction: column; gap: 42px; }
.gft-matrix-block h2 { margin: 0 0 6px; font-size: 22px; color: #23201A; }
.gft-matrix-intro { margin: 0 0 16px; font-size: 14.5px; line-height: 1.7; color: #5A554B; max-width: 62ch; }
.gft-matrix-foot { margin: 0; padding-top: 24px; border-top: 1px solid #EDE3CE; font-size: 13px; line-height: 1.7; color: #8A8172; }
.gft-matrix-foot a { color: #8A6A1F; }
/* the buying table predates the matrix set and is narrower; match it up only
   where the four sit together, so its own page is left as it was */
.gft-matrix-block .gft-buying-prices .gft-table { width: 100%; }
.gft-matrix-block .gft-buying-prices .gft-table td:last-child,
.gft-matrix-block .gft-buying-prices .gft-table th:last-child { text-align: right; }

/* ---- chat, WhatsApp and the shop's accounts ---- */
.gft-social { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.gft-social-title { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: #8A8172; }
.gft-social-links { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.gft-social-links a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #EDE3CE; color: #8A8172; text-decoration: none; transition: all .2s ease; }
.gft-social-links a:hover { border-color: #C6A44E; color: #C6A44E; background: rgba(198,164,78,.08); }
.gft-social-links svg { fill: currentColor; }
.gft-social-stack { flex-direction: column; align-items: flex-start; }
.wd-footer .gft-social-links a, .footer-container .gft-social-links a { border-color: rgba(255,255,255,.18); color: #A9A296; }
.wd-footer .gft-social-links a:hover, .footer-container .gft-social-links a:hover { border-color: #C6A44E; color: #C6A44E; }
/* The lift keeps the button clear of the theme's sticky bottom bar on phones,
   which otherwise puts the WhatsApp circle straight on top of the Shop icon.
   Its height is measured in JS rather than guessed from a breakpoint, so the
   button drops back down on its own if the shop ever turns the bar off. */
.gft-wa { position: fixed; left: 20px; bottom: calc(20px + var(--gft-float-lift, 0px)); z-index: 9998; display: inline-flex; align-items: center; gap: 9px; padding: 12px 18px 12px 14px; border-radius: 999px; background: #25D366; color: #fff; text-decoration: none; font-size: 14px; font-weight: 600; box-shadow: 0 8px 22px rgba(26,26,26,.26); transition: transform .2s ease, box-shadow .2s ease, bottom .2s ease; }
.gft-wa:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(26,26,26,.32); }
.gft-wa svg { fill: currentColor; flex: none; }
@media (max-width: 768px) {
	.gft-wa { left: 14px; bottom: calc(14px + var(--gft-float-lift, 0px)); padding: 12px; }
	.gft-wa-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media print { .gft-wa { display: none; } }

/* ---- rows that drift slowly ---- */
/* a real scroller, which is what makes it draggable and swipeable; the drift
   is a scroll position nudged each frame rather than a transform */
.gft-marquee-view { overflow-x: auto; overflow-y: hidden; width: 100%; min-width: 0; flex: 1 1 100%; grid-column: 1 / -1; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior-x: contain; cursor: grab; }
.gft-marquee-view::-webkit-scrollbar { display: none; }
.gft-marquee-view.is-dragging { cursor: grabbing; user-select: none; }
.gft-marquee-belt { display: flex; gap: var(--gft-gap, 20px); width: max-content; }
.gft-marquee { display: flex; flex: none; gap: var(--gft-gap, 20px); }
.gft-marquee > * { flex: 0 0 auto; margin: 0; }

/* ---- a category that has nothing in it yet ---- */
.gft-landing { max-width: 760px; margin: 0 auto; padding: 8px 0 40px; }
.gft-landing-lead { margin: 0 0 26px; font-size: 19px; line-height: 1.6; color: #23201A; }
.gft-landing h2 { margin: 0 0 12px; font-size: 17px; letter-spacing: .04em; text-transform: uppercase; color: #8A8172; font-weight: 500; }
.gft-landing-does { margin: 0 0 30px; }
.gft-landing-does ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.gft-landing-does li { position: relative; padding-left: 20px; font-size: 15.5px; line-height: 1.65; color: #5A554B; }
.gft-landing-does li::before { content: ""; position: absolute; left: 0; top: 10px; width: 7px; height: 7px; background: #C6A44E; }
.gft-landing-ask { padding: 24px 26px; background: #FAF6EF; border-left: 3px solid #C6A44E; margin: 0 0 30px; }
.gft-landing-ask p { margin: 0 0 16px; font-size: 15px; line-height: 1.7; color: #5A554B; }
.gft-landing-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 !important; }
.gft-landing-tel { font-size: 14.5px; color: #8A6A1F; text-decoration: none; }
.gft-landing-tel:hover { color: #C6A44E; }
.gft-landing-links { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px 20px; }
.gft-landing-links li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #EDE3CE; font-size: 15px; }
.gft-landing-links a { color: #23201A; text-decoration: none; }
.gft-landing-links a:hover { color: #C6A44E; }
.gft-landing-links span { color: #8A8172; font-size: 13px; white-space: nowrap; }
.gft-landing-all { margin: 18px 0 0; font-size: 14px; }
.gft-landing-all a { color: #8A6A1F; }

/* ---- every category, as a strip ---- */
.gft-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 24px; }
.gft-cat { display: flex; flex-direction: column; gap: 2px; text-decoration: none; width: 210px; }
/* every third tile is wider: a long row of identical squares is the thing the
   client called boring, and a rhythm costs nothing */
.gft-cat-wide { width: 330px; }
/* The tiles are deliberately two widths, which is what the client asked for.
   The picture box therefore has to be a fixed HEIGHT, not a fixed ratio: with a
   ratio, a 330px tile got a 248px picture and a 210px tile got a 158px one, so
   the names underneath sat 90px apart and the row read as broken. */
.gft-cat-img { display: block; background: #FAF6EF; overflow: hidden; margin-bottom: 12px; height: 200px; }
.gft-cat-img img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 12px; box-sizing: border-box; transition: transform .45s ease, opacity .26s ease; }
.gft-cat:hover .gft-cat-img img { transform: scale(1.05); }
.gft-cat-name { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 20px; font-weight: 600; line-height: 1.3; color: #23201A; }
.gft-cat:hover .gft-cat-name { color: #8A6A1F; }
.gft-cat-count { font-size: 12.5px; color: #8A8172; }
.gft-marquee-view .gft-cat img { pointer-events: none; }
@media (max-width: 767px) {
	.gft-cat { width: 150px; }
	.gft-cat-wide { width: 230px; }
	.gft-cat-img { height: 140px; }
	.gft-cat-name { font-size: 17px; }
}

/* ---- the rate cards ---- */
/* Replaces the four column table. The client asked for tola, ten grams and the
   ounce on 24ct and 22ct only, which a shared heading row cannot express: the
   lesser purities would each show three blanks. Cards let a purity carry the
   figures it is actually quoted in, which is what their own design does. */
.gft-rates { margin: 0; }
.gft-rates-major { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; }
.gft-rates-minor { display: grid; grid-template-columns: repeat(auto-fit, minmax(186px, 1fr)); gap: 14px; margin-top: 14px; }

.gft-rate { display: flex; align-items: stretch; gap: 0; border: 1px solid #E4D7BC; border-radius: 3px; background: #fff; overflow: hidden; min-width: 0; }
.gft-rate-pic { flex: 0 0 38%; max-width: 38%; display: block; position: relative; overflow: hidden; background: #FAF6EF; }
/* .elementor img { height: auto } is specificity 0,1,1 and these pages are
   Elementor rendered, so a single class loses to it and the photograph collapses
   to its own aspect ratio inside a taller panel. Two classes, not !important. */
.gft-rate .gft-rate-photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.gft-rate-body { flex: 1 1 auto; min-width: 0; padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.gft-rate-name { margin: 0; font-size: 21px; font-weight: 600; color: #23201A; letter-spacing: .01em; }
.gft-rate-name::after { content: ""; display: block; width: 34px; height: 2px; margin-top: 7px; background: #C6A44E; }
.gft-rate-lines { display: flex; flex-direction: column; }
.gft-rate-line { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 8px 0; border-top: 1px solid #F0E8D8; }
.gft-rate-line:first-child { border-top: 0; }
.gft-rate-unit { display: inline-flex; align-items: center; gap: 7px; flex-wrap: wrap; font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase; color: #8A8172; }
.gft-rate-value { font-size: 19px; font-weight: 600; color: #23201A; font-variant-numeric: tabular-nums; white-space: nowrap; }

.gft-rate-minor { }
.gft-rate-minor .gft-rate-body { padding: 13px 15px; gap: 7px; }
.gft-rate-minor .gft-rate-name { font-size: 17px; }
.gft-rate-minor .gft-rate-value { font-size: 17px; }

/* the countries that weigh in tola or bori, drawn rather than set as emoji
   because emoji flags do not render on Windows at all */
.gft-flags { display: inline-flex; align-items: center; gap: 3px; }
.gft-flag { display: block; width: 18px; height: 12px; border: 1px solid rgba(35,32,26,.16); border-radius: 1px; }

.gft-rates-tool { margin: 16px 0 0; }
.gft-btn-rate { display: inline-flex; align-items: center; gap: 8px; }
.gft-vat-note { display: inline-block; margin-left: 4px; }

@media (max-width: 560px) {
	.gft-rate-pic { flex-basis: 32%; max-width: 32%; }
	.gft-rate-body { padding: 13px 14px; }
	.gft-rate-name { font-size: 18px; }
	.gft-rate-value { font-size: 17px; }
	.gft-rate-unit { font-size: 10.5px; letter-spacing: .07em; }
}

/* a purity the client's artwork does not cover keeps the card's shape */
.gft-rate-pic-blank { display: flex; align-items: center; justify-content: center; background: linear-gradient(140deg, #FAF6EF 0%, #F1E6CE 100%); border-right: 1px solid #EDE3CE; }
.gft-rate-pic-blank span { font-size: 26px; font-weight: 600; color: #C6A44E; letter-spacing: .01em; line-height: 1; }
.gft-rate-pic-blank small { font-size: 13px; font-weight: 500; }

/* the weight converter button, gold rather than the site's default black,
   to match the bar in the client's own design */
.gft-btn-rate { justify-content: center; width: 100%; max-width: 520px; padding: 15px 26px; background-image: linear-gradient(134deg,#A8802D 0%,#FBF3A1 47%,#CDA42D 100%); background-color: transparent; color: #1A1A1A; border: 1px solid #C6A44E; text-decoration: none; transition: box-shadow .3s ease; }
.gft-btn-rate:hover { background-image: linear-gradient(134deg,#A8802D 0%,#FBF3A1 67%,#CDA42D 100%); background-color: transparent; color: #1A1A1A; box-shadow: 0 4px 16px rgba(198,164,78,.45); }

/* a single line card has room for its label on one line, and "PER / GRAM"
   broken across two reads as a squeeze */
.gft-rate-minor .gft-rate-line { gap: 10px; }
.gft-rate-minor .gft-rate-unit { white-space: nowrap; flex-wrap: nowrap; }

/* On a phone the two headline cards carry four rows of figures, which makes
   the side photograph column tall and narrow: a 102 by 263 box holding a
   landscape photograph, so object-fit crops away everything except a pale
   sliver of background. The photograph goes on top instead, in a band whose
   shape matches the picture. The single line cards stay side by side, because
   their panel is close to the picture's own proportions. */
@media (max-width: 560px) {
	.gft-rate-major { flex-direction: column; }
	.gft-rate-major .gft-rate-pic { flex: 0 0 auto; max-width: none; width: 100%; height: 132px; border-right: 0; border-bottom: 1px solid #EDE3CE; }
	.gft-rate-major .gft-rate-body { padding: 14px 16px 16px; }
}

/* ---- the gold price banner ---- */
/* The client sent this as a finished picture with the figures painted in. Built
   as markup over the photograph instead, so every number is the live one and
   the panel reflows on a phone rather than needing a second picture. Colours
   sampled from their artwork: ground #0B0C0C, price gold #EDBA3C, heading
   #F8DF89. */
.gft-bn { position: relative; margin: 28px 0; padding: 0; background-color: #0B0C0C; background-repeat: no-repeat; background-position: right top; background-size: cover; overflow: hidden; border: 1px solid #2A2318; }
/* Two scrims, not one. The client artwork shows the bar photographed top right
   with everything below it on a flat black ground, so a single left to right
   fade leaves the 22ct tiles sitting on bright metal and unreadable. The
   vertical layer takes the lower half back to black; the horizontal one keeps
   the heading side dark. */
.gft-bn-has-bg::before { content: ""; position: absolute; inset: 0; background-image:
	linear-gradient(to bottom, rgba(11,12,12,0) 26%, rgba(11,12,12,.72) 52%, #0B0C0C 68%),
	linear-gradient(90deg, #0B0C0C 0%, #0B0C0C 42%, rgba(11,12,12,.72) 62%, rgba(11,12,12,.28) 82%, rgba(11,12,12,.12) 100%); }
.gft-bn-inner { position: relative; padding: 30px 32px; max-width: 760px; }

.gft-bn-title { margin: 0; font-size: 34px; line-height: 1.1; color: #fff; font-weight: 600; letter-spacing: -.01em; }
.gft-bn-sub { margin: 7px 0 0; font-size: 13.5px; color: #B9B2A4; }
.gft-bn-head { margin-bottom: 22px; }
.gft-bn-head::after { content: ""; display: block; width: 54px; height: 2px; margin-top: 14px; background: linear-gradient(90deg,#F8DF89,#C6A44E); }

.gft-bn-block { margin-bottom: 20px; }
.gft-bn-tag { display: inline-block; margin-bottom: 10px; padding: 6px 16px; background: linear-gradient(134deg,#A8802D 0%,#FBF3A1 47%,#CDA42D 100%); color: #17140E; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.gft-bn-bar { border: 1px solid rgba(198,164,78,.4); padding: 18px 20px; background: rgba(0,0,0,.42); }
.gft-bn-bar-label { display: block; font-size: 12.5px; letter-spacing: .13em; text-transform: uppercase; color: #D8CFBB; }
.gft-bn-bar-price { display: block; margin: 6px 0 8px; font-size: 40px; line-height: 1.05; font-weight: 700; color: #EDBA3C; font-variant-numeric: tabular-nums; }
.gft-bn-bar-note { display: block; font-size: 13px; line-height: 1.6; color: #B9B2A4; }
.gft-bn-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 11px 22px; background: linear-gradient(134deg,#A8802D 0%,#FBF3A1 47%,#CDA42D 100%); color: #17140E; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; transition: box-shadow .3s ease; }
.gft-bn-cta:hover { color: #17140E; box-shadow: 0 4px 16px rgba(198,164,78,.45); }

.gft-bn-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.gft-bn-tile { border: 1px solid rgba(198,164,78,.34); background: rgba(0,0,0,.42); padding: 12px 14px; }
.gft-bn-tile-label { display: block; font-size: 11.5px; letter-spacing: .11em; text-transform: uppercase; color: #B9B2A4; }
/* on its own line for every tile, because inline it wrapped for the tola and
   not for the ounce, which left the two prices sitting at different heights */
.gft-bn-tile-sub { display: block; margin-top: 2px; letter-spacing: .04em; text-transform: none; opacity: .72; }
.gft-bn-tile { display: flex; flex-direction: column; justify-content: space-between; }
.gft-bn-tile-value { display: block; margin-top: 5px; font-size: 21px; font-weight: 700; color: #EDBA3C; font-variant-numeric: tabular-nums; }

.gft-bn-trust { display: flex; flex-wrap: wrap; gap: 10px 26px; list-style: none; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(198,164,78,.26); }
.gft-bn-trust li { position: relative; padding-left: 20px; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #D8CFBB; }
.gft-bn-trust li::before { content: ""; position: absolute; left: 0; top: 4px; width: 10px; height: 6px; border-left: 2px solid #C6A44E; border-bottom: 2px solid #C6A44E; transform: rotate(-45deg); }

.gft-bn-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 22px; margin: 16px 0 0; font-size: 11.5px; line-height: 1.6; color: #8E877A; }

@media (max-width: 860px) {
	.gft-bn { background-image: none !important; }
	.gft-bn-has-bg::before { display: none; }
	.gft-bn-inner { padding: 24px 20px; max-width: none; }
	.gft-bn-title { font-size: 27px; }
	.gft-bn-bar-price { font-size: 33px; }
}

/* ---- Stay Connected ---- */
/* The client's reference shows a grid of social posts badged by network. These
   tiles carry the shop's own jewellery instead, because showing live posts
   needs an access token only the shop can issue. Same shape, honest source. */
.gft-wall { margin: 0; }
.gft-wall-head { text-align: center; margin-bottom: 22px; }
.gft-wall-title { margin: 0; font-family: "Cormorant Garamond", serif; font-size: 40px; font-style: italic; font-weight: 600; line-height: 1.15; color: #23201A; }
.gft-wall-title::after { content: ""; display: block; width: 46px; height: 2px; margin: 12px auto 0; background: linear-gradient(90deg,#F8DF89,#C6A44E); }
.gft-wall-sub { margin: 12px 0 0; font-size: 14.5px; color: #8A8172; }

.gft-wall-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.gft-wall-tile { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid #E4D7BC; background: #FAF6EF; text-decoration: none; }
.gft-wall .gft-wall-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.gft-wall-tile:hover .gft-wall-photo { transform: scale(1.06); }
.gft-wall-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(26,26,26,0) 42%, rgba(26,26,26,.72) 100%); }
/* the shop photographs pale jewellery on white, so a plain white disc
   disappears; the ring and the shadow are what make the badge readable */
.gft-wall-badge { position: absolute; top: 12px; left: 12px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 1px solid rgba(35,32,26,.14); box-shadow: 0 2px 8px rgba(26,26,26,.22); color: #23201A; }
.gft-wall-badge svg { fill: currentColor; }
.gft-wall-name { position: absolute; left: 14px; bottom: 12px; z-index: 2; color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .05em; }

/* each network keeps its own badge colour, which is how a customer recognises it */
.gft-wall-facebook  .gft-wall-badge { color: #1877F2; }
.gft-wall-instagram .gft-wall-badge { color: #C13584; }
.gft-wall-youtube   .gft-wall-badge { color: #FF0000; }
.gft-wall-tiktok    .gft-wall-badge { color: #010101; }

@media (max-width: 560px) {
	.gft-wall-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.gft-wall-title { font-size: 22px; }
	.gft-wall-name { font-size: 12px; }
}

/* ---- guide cards ---- */
.gft-guides { margin: 0; }
/* the page sets its section headings in Cormorant Garamond at 34px and centres
   the editorial ones. These are editorial sections, so they follow that rather
   than inventing a third voice at the bottom of the page. */
.gft-guides-head { margin-bottom: 22px; text-align: center; }
.gft-guides-title { margin: 0; font-family: "Cormorant Garamond", serif; font-size: 40px; font-style: italic; font-weight: 600; line-height: 1.15; color: #23201A; }
.gft-guides-title::after { content: ""; display: block; width: 46px; height: 2px; margin: 12px auto 0; background: linear-gradient(90deg,#F8DF89,#C6A44E); }
.gft-guides-sub { margin: 12px auto 0; font-size: 14.5px; color: #8A8172; max-width: 62ch; }
.gft-guides-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.gft-guide-card { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid #E4D7BC; background: #FAF6EF; text-decoration: none; }
.gft-guides .gft-guide-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.gft-guide-card:hover .gft-guide-photo { transform: scale(1.05); }
.gft-guide-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(26,26,26,0) 38%, rgba(26,26,26,.78) 100%); }
.gft-guide-name { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 2; color: #fff; font-size: 15px; font-weight: 600; line-height: 1.35; }

/* ---- the returns band ---- */
/* One promise standing alone, not a second row of four. The page already has a
   four column row of assurances and this is the one it was missing. */
.gft-promise { margin: 0; }
.gft-promise-item { display: flex; align-items: center; gap: 18px; max-width: 780px; margin: 0 auto; padding: 20px 26px; border: 1px solid #E4D7BC; background: #FAF6EF; text-decoration: none; color: inherit; transition: border-color .2s ease, background .2s ease; }
a.gft-promise-item:hover { border-color: #C6A44E; background: #FDFAF3; }
.gft-promise-icon { flex: none; color: #C6A44E; line-height: 0; }
.gft-promise-icon svg { fill: currentColor; }
.gft-promise-words { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.gft-promise-name { font-size: 16.5px; font-weight: 600; color: #23201A; }
.gft-promise-note { font-size: 13.5px; line-height: 1.6; color: #8A8172; }
.gft-promise-more { flex: none; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #C6A44E; white-space: nowrap; }
@media (max-width: 620px) {
	.gft-promise-item { flex-wrap: wrap; gap: 12px; padding: 16px 18px; }
	.gft-promise-words { flex-basis: calc(100% - 48px); }
	.gft-promise-more { flex-basis: 100%; }
}

/* ---- customer films ---- */
.gft-films { margin: 0; }
/* films sit between two centred editorial sections, so they centre too */
.gft-films-head { margin-bottom: 22px; text-align: center; }
.gft-films-title { margin: 0; font-family: "Cormorant Garamond", serif; font-size: 40px; font-style: italic; font-weight: 600; line-height: 1.15; color: #23201A; }
.gft-films-sub { margin: 10px 0 0; font-size: 14.5px; color: #8A8172; }
.gft-films-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.gft-film { position: relative; display: block; padding: 0; border: 1px solid #E4D7BC; background: #1A1A1A; cursor: pointer; overflow: hidden; aspect-ratio: 16 / 9; }
.gft-film img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .82; transition: opacity .3s ease; }
.gft-film:hover img { opacity: 1; }
.gft-film-play { position: absolute; left: 50%; top: 50%; width: 54px; height: 54px; margin: -27px 0 0 -27px; border-radius: 50%; background: rgba(255,255,255,.92); }
.gft-film-play::after { content: ""; position: absolute; left: 21px; top: 16px; border-style: solid; border-width: 11px 0 11px 17px; border-color: transparent transparent transparent #1A1A1A; }
.gft-film-cap { position: absolute; left: 14px; right: 14px; bottom: 12px; color: #fff; font-size: 13px; text-align: left; }
.gft-film iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media (max-width: 560px) {
	.gft-guides-title, .gft-films-title, .gft-wall-title { font-size: 26px; }
	.gft-guides-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.gft-guide-name { font-size: 13px; left: 12px; right: 12px; }
	.gft-promise-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}

/* a sub heading inside a footer column, for the Media group the client asked for */
.gf-footer-sub { margin: 18px 0 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #C6A44E; font-weight: 600; }

/* ---- the redesign pass, 10 September 2026 ---- */
/* Calibrated against Pragnell and PureJewels: the craft is in air, hairlines
   and hover finesse, not in new colours. Everything here is decoration with no
   native Elementor control; every value that HAS a control was set natively. */

/* the two dark bands get an inset gold hairline, the classic case-lining cue */
.elementor-element-e14786d0 { position: relative; }
.elementor-element-e14786d0::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(198,164,78,.26); pointer-events: none; }

/* cards lift very slightly to the hand; stilled for people who ask for still */
.gft-guide-card, .gft-wall-tile, .gft-film { transition: transform .35s ease, box-shadow .35s ease; }
.gft-guide-card:hover, .gft-wall-tile:hover, .gft-film:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(35,32,26,.10); }
@media (prefers-reduced-motion: reduce) {
	.gft-guide-card, .gft-wall-tile, .gft-film,
	.gft-guide-card:hover, .gft-wall-tile:hover, .gft-film:hover { transform: none; box-shadow: none; transition: none; }
}

/* the category row breathes a little wider and its names sit like captions */
.gft-cats { --gft-gap: 28px; }
.gft-cat-name { letter-spacing: .02em; }

/* section standfirsts share one quiet voice */
.gft-guides-sub, .gft-wall-sub, .gft-films-sub { font-size: 15px; line-height: 1.6; }

/* the small gold rules under our headings, lightened to a mark, not a bar */
.gft-guides-title::after, .gft-wall-title::after { width: 34px; height: 1px; background: #C6A44E; opacity: .55; }

/* --- 14 Sep 2026: New Arrivals drifts, the category wall stands still --- */
/* Static mode: the tiles fill their grid cell instead of carrying the fixed
   marquee widths, otherwise a wide tile overflows its column. */
.gft-cats:not(.gft-marquee-on) .gft-cat,
.gft-cats:not(.gft-marquee-on) .gft-cat-wide { width: auto; }
/* Product tiles inside the drift need a width of their own, because the
   theme's grid sizing dies the moment they leave the grid. */
.gft-marquee > .product-grid-item { width: 262px; max-width: none; }
@media (max-width: 767px) {
	.gft-marquee > .product-grid-item { width: 205px; }
}
/* The static wall on a phone: one column made a 4,800px corridor, so the
   tiles pair up instead. */
@media (max-width: 767px) {
	.gft-cats:not(.gft-marquee-on) { grid-template-columns: repeat(2, 1fr); gap: 18px 14px; }
}

/* --- 14 Sep 2026: the home price band goes short --- */
/* The client drew boxes over the empty image space beside the bar card: use
   it. On the HOME band only, the banner's inner becomes two columns, the
   24ct bar left, the 22ct tiles right in a 2x2, head and trust spanning.
   The full page hero on /todays-gold-price/ keeps its tall single column. */
.elementor-element-e14786d0 .gft-bn { margin: 0; }
.elementor-element-e14786d0 .gft-bn-inner { max-width: none; display: grid; grid-template-columns: 1.08fr 1fr; column-gap: 40px; align-items: start; padding: 26px 36px 20px; }
.elementor-element-e14786d0 .gft-bn-head { grid-column: 1 / -1; margin-bottom: 8px; }
.elementor-element-e14786d0 .gft-bn-block { margin-bottom: 0; }
.elementor-element-e14786d0 .gft-bn-tiles { grid-template-columns: repeat(2, 1fr); }
.elementor-element-e14786d0 .gft-bn-trust { grid-column: 1 / -1; margin-top: 18px; }
.elementor-element-e14786d0 .gft-bn-foot { grid-column: 1 / -1; }
@media (max-width: 900px) {
	.elementor-element-e14786d0 .gft-bn-inner { display: block; }
	.elementor-element-e14786d0 .gft-bn-block { margin-bottom: 20px; }
}

/* A drifting product row clips the theme's hover growth (compare icon,
   pre-order line, excerpt) because overflow-x auto forces overflow-y
   hidden. Padding inside the view moves the clip edge down, the negative
   margin gives the room back, so the hover card can unfold in full. */
.elementor-widget-wd_products .gft-marquee-view { padding-bottom: 140px; margin-bottom: -140px; padding-top: 12px; margin-top: -12px; }
