/*!
 * pages.css — Phase 8 content + tool pages (FAQ, Terms, Privacy, Shipping,
 * Support, Contact, How to buy crypto, HPLC gallery, Order builder).
 *
 * Sources, all on disk:
 *   - FAQ block            : the <style> shipped inline on source-cdp\faq.html
 *   - HPLC block           : the <style> shipped inline on source-cdp\hplc.html
 *   - Order builder block  : scrape\assets\css\9644bc918142016ffdef.css
 * Those three are the source's own rules, ported with their own class names.
 *
 * The SHARED classes at the top (.pageTitle .panel .panelTitle .muted .btn
 * .field .row2 ...) are declared inside :where() so they carry ZERO
 * specificity: they are a fallback only, and the theme's sitewide base.css
 * always wins wherever it defines the same class.
 */

/* =========================================================================
   0. Shared fallbacks — :where() so base.css always outranks them
   ========================================================================= */

:where(.sp-contentPage) {
	max-width: 1360px;
	margin: 0 auto;
}

:where(.sp-page .sr-only) {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

:where(.sp-contentPage .pageTitle) {
	font-family: var(--ff-d, 'Cormorant Garamond', Georgia, serif);
	font-style: italic;
	font-weight: 700;
	font-size: clamp(2.2rem, 6vw, 3.6rem);
	letter-spacing: 0.01em;
	line-height: 1.12;
	text-align: center;
	color: var(--silver-hi, #ECEEF0);
	margin: 0 0 22px;
}

:where(.sp-contentPage .panel) {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.045) 0%, rgba(255, 255, 255, 0.015) 50%, rgba(255, 255, 255, 0.004) 100%),
		rgba(14, 14, 14, 0.70);
	border: 1px solid rgba(255, 255, 255, 0.065);
	border-radius: 16px;
	padding: 22px;
	box-shadow:
		inset 0 0.5px 0 rgba(255, 255, 255, 0.07),
		0 4px 12px rgba(0, 0, 0, 0.18),
		0 12px 36px rgba(0, 0, 0, 0.35),
		0 24px 64px rgba(0, 0, 0, 0.25);
	backdrop-filter: blur(28px) saturate(180%);
	-webkit-backdrop-filter: blur(28px) saturate(180%);
}

:where(.sp-contentPage .panelTitle) {
	font-family: var(--ff-b, 'Outfit', -apple-system, sans-serif);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--silver-mid, #C2C8D0);
	margin: 0 0 16px;
}

:where(.sp-contentPage .muted) {
	color: var(--tx2, rgba(238, 238, 240, 0.60));
}

:where(.sp-contentPage .panelTopSpace) {
	margin-top: 18px;
}

:where(.sp-contentPage .row2) {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

:where(.sp-contentPage .field) {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 14px;
}

:where(.sp-contentPage .field label) {
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tx3, rgba(238, 238, 240, 0.36));
}

:where(.sp-contentPage input[type="text"]),
:where(.sp-contentPage input[type="email"]),
:where(.sp-contentPage input[type="file"]),
:where(.sp-contentPage textarea) {
	width: 100%;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 11px;
	padding: 12px 14px;
	background: rgba(255, 255, 255, 0.03);
	color: var(--tx, rgba(238, 238, 240, 0.94));
	font: 400 14.5px/1.6 var(--ff-b, 'Outfit', sans-serif);
	outline: none;
}

:where(.sp-contentPage textarea) {
	resize: vertical;
	min-height: 160px;
}

:where(.sp-contentPage input:focus),
:where(.sp-contentPage textarea:focus) {
	box-shadow: 0 0 0 2px rgba(194, 200, 208, 0.30), 0 0 0 5px rgba(194, 200, 208, 0.10);
}

:where(.sp-contentPage .btn) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 24px;
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--tx2, rgba(238, 238, 240, 0.60));
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.038) 0%, rgba(255, 255, 255, 0.009) 100%), rgba(20, 20, 20, 0.90);
	border: none;
	border-radius: 10px;
	cursor: pointer;
}

:where(.sp-contentPage .btnPrimary) {
	background: linear-gradient(180deg, rgba(194, 200, 208, 0.12) 0%, rgba(194, 200, 208, 0.05) 100%), rgba(14, 14, 14, 0.88);
	color: #D4BC82;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), inset 0 -1px 0 rgba(0, 0, 0, 0.72), 0 6px 22px rgba(0, 0, 0, 0.55);
}

/* =========================================================================
   1. Panel content pages (Terms / Privacy / Shipping / Support / Crypto)
   ========================================================================= */

.sp-contentPage .sp-panel h2,
.sp-contentPage .sp-panel .panelTitle {
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--silver-mid, #C2C8D0);
	margin: 0 0 12px;
}

.sp-contentPage .sp-panel h2 {
	margin-top: 26px;
}

.sp-contentPage .sp-panel h2:first-child {
	margin-top: 0;
}

.sp-contentPage .sp-panel p,
.sp-contentPage .sp-panel li,
.sp-contentPage .sp-panel .muted {
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 14.5px;
	line-height: 1.75;
	color: var(--tx2, rgba(238, 238, 240, 0.60));
}

.sp-contentPage .sp-panel ol,
.sp-contentPage .sp-panel ul {
	margin: 10px 0 14px;
	padding-left: 20px;
}

.sp-contentPage .sp-panel li {
	margin-bottom: 7px;
}

.sp-contentPage .sp-panel strong {
	color: var(--gold-mid, #B9965A);
	font-weight: 700;
}

.sp-contentPage .sp-panel a {
	color: #cdb56c;
	text-decoration: none;
	border-bottom: 1px solid rgba(155, 121, 18, 0.35);
}

.sp-contentPage .sp-panel a:hover {
	color: #F8E8AD;
}

/* =========================================================================
   2. Contact / support ticket flow
   ========================================================================= */

.sp-contentPage--contact .flowShell {
	max-width: 640px;
	margin: 0 auto;
}

.sp-contentPage--contact .flowHeader {
	text-align: center;
	margin-bottom: 22px;
}

.sp-contentPage--contact .flowEyebrow {
	margin: 0 0 8px;
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--tx3, rgba(238, 238, 240, 0.36));
}

.sp-contentPage--contact .flowTitle {
	margin: 0 0 10px;
	font-family: var(--ff-d, 'Cormorant Garamond', Georgia, serif);
	font-style: italic;
	font-weight: 700;
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1.1;
	color: var(--silver-hi, #ECEEF0);
}

.sp-contentPage--contact .flowIntro {
	margin: 0;
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 14px;
	line-height: 1.7;
	color: var(--tx2, rgba(238, 238, 240, 0.60));
}

.sp-contentPage--contact .flowActionRow {
	display: flex;
	justify-content: center;
	margin-top: 20px;
}

.sp-contentPage--contact .sp-flowFoot {
	margin: 18px auto 0;
	max-width: 560px;
	text-align: center;
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 12.5px;
	line-height: 1.7;
	color: var(--tx3, rgba(238, 238, 240, 0.36));
}

.contactHumanTrap {
	position: absolute !important;
	left: -10000px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.sp-formNotice {
	margin: 0 0 18px;
	padding: 13px 16px;
	border-radius: 12px;
	font-family: var(--ff-b, 'Outfit', sans-serif);
	font-size: 13px;
	line-height: 1.6;
	background: rgba(255, 255, 255, 0.03);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 2px 10px rgba(0, 0, 0, 0.2);
	border-left: 3px solid rgba(155, 121, 18, 0.5);
	color: var(--tx2, rgba(238, 238, 240, 0.60));
}

.sp-formNotice--good {
	border-left-color: rgba(90, 195, 140, 0.9);
	color: rgba(160, 225, 190, 0.92);
}

.sp-formNotice--bad {
	border-left-color: rgba(210, 100, 100, 0.95);
	color: rgba(232, 168, 168, 0.92);
}

@media (max-width: 640px) {
	:where(.sp-contentPage .row2) {
		grid-template-columns: 1fr;
	}
}

/* =========================================================================
   3. FAQ — the source's own inline stylesheet from faq.html, scoped to
      .sp-faq-wrap / .sp-faq-body so nothing leaks sitewide.
   ========================================================================= */

.sp-faq-wrap{background:#050406;font-family:Arial,Helvetica,sans-serif;padding:32px 16px 64px;background:radial-gradient(ellipse at 50% 0%,rgba(200,155,40,0.12) 0%,rgba(200,155,40,0.03) 30%,transparent 60%),radial-gradient(ellipse at 50% 100%,rgba(180,140,35,0.06) 0%,transparent 50%),#050406;}
.sp-faq-inner{max-width:720px;margin:0 auto;border-radius:26px;overflow:hidden;box-shadow:0 0 0 1px rgba(180,140,50,0.10),0 36px 90px rgba(0,0,0,0.6),0 0 90px rgba(180,140,40,0.08);}
.sp-faq-bar{height:5px;background:linear-gradient(90deg,#2B1F05 0%,#7A5F1A 14%,#C4A030 30%,#F5E6A0 48%,#D4AF37 56%,#C4A030 70%,#7A5F1A 86%,#2B1F05 100%);box-shadow:0 0 24px rgba(212,175,55,0.5),0 0 70px rgba(212,175,55,0.15);}
.sp-faq-hero{padding:36px 40px 28px;background:linear-gradient(175deg,#0F0F11 0%,#0A0A0C 40%,#060608 100%);text-align:center;}
.sp-faq-title{font-size:36px;line-height:40px;font-weight:900;text-transform:uppercase;letter-spacing:0.05em;background:linear-gradient(135deg,#9B7912 0%,#D4AF37 22%,#F8E8AD 42%,#D4AF37 62%,#C5A028 80%,#9B7912 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 4px 12px rgba(0,0,0,0.5));margin:0;}
.sp-faq-divider{height:1px;background:linear-gradient(90deg,transparent 0%,rgba(200,160,50,0.06) 15%,rgba(220,185,80,0.32) 38%,rgba(240,215,140,0.55) 50%,rgba(220,185,80,0.32) 62%,rgba(200,160,50,0.06) 85%,transparent 100%);margin:0 40px;}
.sp-faq-body{background:#0A0A0C;padding:28px 32px 40px;}
.sp-faq-wrap .sp-notice{border-radius:12px;background:linear-gradient(160deg,#111013 0%,#0A090B 48%,#060608 100%);box-shadow:0 2px 0 rgba(255,255,255,0.04) inset,0 -2px 0 rgba(0,0,0,0.78) inset,0 10px 28px rgba(0,0,0,0.6),0 28px 56px rgba(0,0,0,0.4);padding:14px 18px;margin-bottom:10px;font-size:13px;line-height:1.65;color:#888;border-left:3px solid rgba(155,121,18,0.5);}
.sp-faq-wrap .sp-notice strong{color:#D4AF37;font-weight:800;}
.sp-faq-wrap .sp-notices{margin-bottom:28px;}
.sp-faq-wrap .sp-group{margin-bottom:32px;}
.sp-faq-wrap .sp-group-label{font-size:10px;font-weight:900;letter-spacing:0.22em;text-transform:uppercase;font-style:italic;color:#9B7912;padding-bottom:9px;margin-bottom:4px;border-bottom:1px solid rgba(155,121,18,0.2);}
.sp-faq-wrap details.sp-item{margin-top:7px;border-radius:12px;background:linear-gradient(160deg,#111013 0%,#0A090B 48%,#060608 100%);box-shadow:0 2px 0 rgba(255,255,255,0.04) inset,0 -2px 0 rgba(0,0,0,0.78) inset,0 10px 28px rgba(0,0,0,0.5),0 24px 50px rgba(0,0,0,0.38);overflow:hidden;}
.sp-faq-wrap details.sp-item[open]{box-shadow:0 2px 0 rgba(255,255,255,0.05) inset,0 -2px 0 rgba(0,0,0,0.80) inset,0 0 0 1px rgba(155,121,18,0.20),0 12px 36px rgba(0,0,0,0.65),0 28px 64px rgba(0,0,0,0.45),0 0 48px rgba(155,121,18,0.06);}
.sp-faq-wrap summary.sp-trigger{display:flex;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;user-select:none;}
.sp-faq-wrap summary.sp-trigger::-webkit-details-marker{display:none;}
.sp-faq-wrap summary.sp-trigger::marker{display:none;}
.sp-faq-wrap .sp-qnum{font-size:10px;font-weight:900;letter-spacing:0.14em;color:rgba(155,121,18,0.45);min-width:22px;flex-shrink:0;font-style:italic;}
.sp-faq-wrap details.sp-item[open] .sp-qnum{color:#9B7912;}
.sp-faq-wrap .sp-qtext{font-size:14px;font-weight:900;letter-spacing:0.01em;line-height:1.3;color:#d8d0bb;flex:1;}
.sp-faq-wrap details.sp-item[open] .sp-qtext{background:linear-gradient(135deg,#9B7912 0%,#D4AF37 22%,#F8E8AD 42%,#D4AF37 62%,#C5A028 80%,#9B7912 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 6px rgba(0,0,0,0.5));}
.sp-faq-wrap .sp-chevron{width:15px;height:15px;flex-shrink:0;transition:transform 0.28s cubic-bezier(0.4,0,0.2,1);color:rgba(155,121,18,0.38);}
.sp-faq-wrap details.sp-item[open] .sp-chevron{transform:rotate(180deg);color:#9B7912;}
.sp-faq-wrap .sp-answer{padding:0 18px 18px 52px;color:#c8bfa6;font-size:13px;line-height:1.75;border-top:1px solid rgba(155,121,18,0.15);padding-top:14px;}
.sp-faq-wrap .sp-answer p{margin:0 0 10px;}
.sp-faq-wrap .sp-answer p:last-child{margin-bottom:0;}
.sp-faq-wrap .sp-answer ul{list-style:none;padding:0;margin:8px 0 10px;}
.sp-faq-wrap .sp-answer ul li{position:relative;padding-left:14px;margin-bottom:6px;color:#a8a090;}
.sp-faq-wrap .sp-answer ul li::before{content:'·';position:absolute;left:0;color:rgba(155,121,18,0.7);font-size:16px;line-height:1.3;}
.sp-faq-wrap .sp-answer strong{color:#D4AF37;font-weight:800;}
.sp-faq-wrap .sp-answer em{color:#cdb56c;font-style:italic;}
.sp-faq-wrap .sp-answer a{color:#cdb56c;text-decoration:none;border-bottom:1px solid rgba(155,121,18,0.35);}
.sp-faq-wrap .sp-answer a:hover{color:#F8E8AD;border-color:#cdb56c;}
.sp-faq-wrap .sp-ctag{display:inline-block;font-size:11px;font-weight:900;letter-spacing:0.1em;background:linear-gradient(160deg,#111013 0%,#0A090B 100%);color:#D4AF37;padding:2px 8px;border-radius:5px;box-shadow:0 2px 0 rgba(255,255,255,0.04) inset,0 -1.5px 0 rgba(0,0,0,0.7) inset,0 4px 10px rgba(0,0,0,0.6);margin:0 2px;}
.sp-faq-wrap .sp-review-link{display:flex;align-items:center;gap:10px;border-radius:9px;background:linear-gradient(160deg,#0e0d0f 0%,#080709 100%);box-shadow:0 2px 0 rgba(255,255,255,0.03) inset,0 -2px 0 rgba(0,0,0,0.75) inset,0 8px 22px rgba(0,0,0,0.5);padding:11px 14px;text-decoration:none;margin-top:8px;border-bottom:none !important;}
.sp-faq-wrap .sp-review-link:hover{box-shadow:0 2px 0 rgba(255,255,255,0.04) inset,0 -2px 0 rgba(0,0,0,0.75) inset,0 0 0 1px rgba(155,121,18,0.22),0 10px 28px rgba(0,0,0,0.6);}
.sp-faq-wrap .sp-rl-label{font-size:10px;font-weight:900;letter-spacing:0.14em;text-transform:uppercase;font-style:italic;color:#9B7912;min-width:58px;flex-shrink:0;}
.sp-faq-wrap .sp-rl-url{font-size:11px;color:#484848;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-faq-bottom{height:4px;background:linear-gradient(180deg,rgba(180,140,40,0.18) 0%,transparent 100%);}
@media(max-width:600px){
.sp-faq-wrap{padding:0 0 48px;}
.sp-faq-inner{border-radius:0;}
.sp-faq-hero{padding:26px 18px 22px;}
.sp-faq-title{font-size:24px;line-height:28px;}
.sp-faq-divider{margin:0 18px;}
.sp-faq-body{padding:20px 14px 32px;}
.sp-faq-wrap .sp-answer{padding-left:34px;}
}

/* =========================================================================
   4. HPLC gallery — the source's own inline stylesheet from hplc.html.
      Ported verbatim EXCEPT the sassySaveOnly* anti-image-save trap layer and
      the /thumb.php watermark pipeline, which RECON-DESIGN 8.5 says not to build.
   ========================================================================= */
.hplcPage{max-width:1180px;margin:0 auto;padding:0 4px}
.hplcHero{position:relative;overflow:hidden;padding:46px 28px 42px;border-radius:32px;border:1px solid rgba(255,255,255,.07);background:
  radial-gradient(circle at top right, rgba(94,141,108,.14), transparent 34%),
  radial-gradient(circle at top left, rgba(212,175,55,.18), transparent 28%),
  linear-gradient(180deg, rgba(16,16,16,.92), rgba(8,8,8,.985));
  box-shadow:0 38px 90px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04);text-align:center}
.hplcHeroTitle{margin:0 auto;font-family:var(--ff-h,'Cormorant Garamond',serif);font-style:italic;font-weight:700;font-size:clamp(36px,6vw,64px);line-height:1.02;letter-spacing:.02em;background:linear-gradient(180deg, rgba(255,230,166,.98), rgba(212,175,55,.9) 44%, rgba(158,123,38,.94));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 10px 30px rgba(186,141,46,.12)}
.hplcHeroBody{max-width:860px;margin:18px auto 0;font-family:var(--ff-h,'Cormorant Garamond',serif);font-style:italic;font-size:clamp(18px,2.25vw,24px);line-height:1.68;color:rgba(255,240,220,.8)}
.hplcSection{margin-top:28px;padding:0;border:0;background:transparent;box-shadow:none}
.hplcSectionHead{margin:0 0 18px}
.hplcSectionTitle{margin:0;font-family:var(--ff-h,'Cormorant Garamond',serif);font-size:clamp(24px,4vw,36px);color:rgba(255,246,232,.96)}
.hplcSectionBody{margin:10px 0 0;max-width:760px;font-size:14px;line-height:1.85;color:rgba(255,240,220,.66)}
.hplcFaqList{display:grid;gap:12px}
.hplcFaqItem{border-radius:22px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.016));padding:18px 18px 16px;box-shadow:0 16px 36px rgba(0,0,0,.18)}
.hplcFaqTitle{margin:0;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:rgba(235,247,238,.88)}
.hplcFaqBody{margin:10px 0 0;font-size:14px;line-height:1.8;color:rgba(255,240,220,.64)}
.hplcGalleryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 20px;perspective:1400px;align-items:start}
.hplcGalleryCard{position:relative;min-width:0;border:0;background:transparent;box-shadow:none;overflow:visible;content-visibility:auto;contain-intrinsic-size:650px 520px;transform-style:preserve-3d}
.hplcGalleryButton{position:relative;display:block;width:100%;padding:0;border:0;border-radius:25px;background:#0a0a0a;overflow:hidden;cursor:pointer;isolation:isolate;transform:translateZ(0);box-shadow:0 28px 58px rgba(0,0,0,.48),0 10px 24px rgba(0,0,0,.32),0 2px 8px rgba(0,0,0,.26);transition:transform .32s cubic-bezier(.2,.75,.24,1),box-shadow .32s ease,filter .32s ease}
.hplcGalleryMedia{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:inherit;background:linear-gradient(160deg,#171717,#050505)}
.hplcGalleryMedia picture{display:block;width:100%;height:100%}
.hplcGalleryCard img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.002);transition:transform .48s cubic-bezier(.2,.75,.24,1),filter .38s ease}
.hplcGalleryMedia::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(110% 72% at 18% 0%,rgba(255,255,255,.12),transparent 44%),linear-gradient(180deg,transparent 56%,rgba(0,0,0,.16) 74%,rgba(0,0,0,.42) 100%);opacity:.58;transition:opacity .35s ease}
.hplcGalleryCard:hover .hplcGalleryButton,.hplcGalleryCard:focus-within .hplcGalleryButton{transform:translateY(-7px) rotateX(.6deg) scale(1.012);box-shadow:0 38px 78px rgba(0,0,0,.56),0 18px 34px rgba(0,0,0,.34),0 4px 12px rgba(212,175,55,.10);filter:saturate(1.025)}
.hplcGalleryCard:hover img,.hplcGalleryCard:focus-within img{transform:scale(1.045);filter:saturate(1.045) contrast(1.015)}
.hplcGalleryCard:hover .hplcGalleryMedia::after,.hplcGalleryCard:focus-within .hplcGalleryMedia::after{opacity:.72}
.hplcGalleryButton:active{transform:translateY(-1px) scale(.99)!important;transition-duration:.12s}
.hplcGalleryButton:focus-visible{outline:3px solid rgba(212,175,55,.62);outline-offset:5px}
.hplcGalleryTitle{position:absolute;left:0;right:0;bottom:0;z-index:3;margin:0;padding:42px 14px 14px;text-align:center;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(2,2,2,.18) 18%,rgba(2,2,2,.80) 100%)}
body.page-hplc .hplcGalleryTitle>.hplcGalleryTitleText{display:inline-block!important;max-width:100%!important;font-family:var(--ff-h,'Cormorant Garamond','Cormorant',Georgia,serif)!important;font-style:italic!important;font-weight:700!important;font-size:clamp(15px,1.72vw,19px)!important;line-height:1.18!important;letter-spacing:.055em!important;text-align:center!important;overflow-wrap:anywhere!important;word-break:break-word!important;color:#D4AF37!important;background-color:transparent!important;background-image:linear-gradient(135deg,#9B7912 0%,#D4AF37 22%,#F8E8AD 42%,#D4AF37 62%,#C5A028 80%,#9B7912 100%)!important;background-size:100% 100%!important;background-position:50% 50%!important;background-repeat:no-repeat!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;text-shadow:0 2px 5px rgba(0,0,0,.96),0 0 14px rgba(212,175,55,.48),0 0 30px rgba(212,175,55,.22)!important;filter:none!important;opacity:1!important}
.hplcEmpty{padding:22px;border-radius:22px;background:rgba(23,38,28,.22);box-shadow:0 24px 54px rgba(0,0,0,.28);color:rgba(227,243,231,.75)}
.hplcLightbox{position:fixed;inset:0;z-index:300000;background:rgba(2,4,3,.95);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
.hplcLightbox.isOpen{opacity:1;visibility:visible;pointer-events:auto}
.hplcLightboxInner{position:relative;width:min(1120px,100%);padding:16px 58px 18px;border:0;border-radius:30px;background:linear-gradient(180deg,rgba(13,13,13,.965),rgba(5,5,5,.985));box-shadow:0 48px 110px rgba(0,0,0,.62),0 14px 40px rgba(0,0,0,.46);transform:translateY(18px) scale(.975);opacity:0;transition:transform .28s ease,opacity .28s ease}
.hplcLightbox.isOpen .hplcLightboxInner{transform:translateY(0) scale(1);opacity:1}
.hplcLightboxViewport{position:relative;overflow:hidden;border-radius:22px;background:#050505;box-shadow:0 28px 72px rgba(0,0,0,.52)}
.hplcLightboxTrack{display:flex;align-items:center;touch-action:pan-y;will-change:transform;transition:transform .34s cubic-bezier(.22,.61,.36,1)}
.hplcLightboxSlide{min-width:100%;display:flex;align-items:center;justify-content:center}
.hplcLightboxImg{display:block;width:100%;max-height:min(78vh,980px);object-fit:contain;border-radius:20px;user-select:none;-webkit-user-drag:none}
.hplcLightboxCounter{position:absolute;top:24px;right:70px;z-index:4;padding:7px 11px;border-radius:999px;background:rgba(5,5,5,.68);box-shadow:0 12px 28px rgba(0,0,0,.34);font-size:12px;font-weight:700;letter-spacing:.12em;color:rgba(255,245,221,.76);backdrop-filter:blur(10px)}
.hplcLightboxNav{position:absolute;top:50%;z-index:5;width:46px;height:58px;margin-top:-29px;border:0;border-radius:18px;background:rgba(10,10,10,.84);box-shadow:0 18px 38px rgba(0,0,0,.46);color:#D4AF37;font-family:Georgia,serif;font-size:34px;line-height:1;cursor:pointer;transition:transform .2s ease,opacity .2s ease,background .2s ease}
.hplcLightboxNav:hover{transform:scale(1.06);background:rgba(18,18,18,.96)}
.hplcLightboxNav:focus-visible{outline:3px solid rgba(212,175,55,.62);outline-offset:3px}
.hplcLightboxNav:disabled{opacity:.22;cursor:default;transform:none}
.hplcLightboxPrev{left:7px}.hplcLightboxNext{right:7px}
.hplcLightboxCaption{min-height:0;margin:14px auto 0;max-width:760px;text-align:center;font-family:var(--ff-h,'Cormorant Garamond','Cormorant',Georgia,serif);font-style:italic;font-weight:700;font-size:clamp(17px,2.2vw,22px);line-height:1.2;letter-spacing:.045em;color:#D4AF37;background:linear-gradient(135deg,#9B7912 0%,#D4AF37 22%,#F8E8AD 42%,#D4AF37 62%,#C5A028 80%,#9B7912 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 5px rgba(0,0,0,.94),0 0 16px rgba(212,175,55,.35)}
.hplcLightboxCaption[hidden]{display:none}
.hplcLightboxActions{display:flex;justify-content:center;margin-top:16px}
.hplcLightboxClose{position:static;min-width:min(320px,100%)}
@media (max-width:960px){.hplcGalleryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.hplcLightboxInner{padding-left:50px;padding-right:50px}.hplcLightboxCounter{right:62px}}
@media (max-width:640px){.hplcPage{padding:0}.hplcHero{padding:22px 16px;border-radius:24px}.hplcHeroTitle{font-size:42px}.hplcHeroBody{font-size:17px;line-height:1.62}.hplcSectionBody,.hplcFaqBody{font-size:13.5px}.hplcSection{margin-top:18px}.hplcGalleryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 10px}.hplcGalleryButton{border-radius:18px;box-shadow:0 18px 34px rgba(0,0,0,.46),0 7px 15px rgba(0,0,0,.30)}.hplcGalleryCard:hover .hplcGalleryButton,.hplcGalleryCard:focus-within .hplcGalleryButton{transform:none;box-shadow:0 18px 34px rgba(0,0,0,.46),0 7px 15px rgba(0,0,0,.30)}.hplcGalleryCard:hover img,.hplcGalleryCard:focus-within img{transform:scale(1.002);filter:none}.hplcGalleryTitle{padding:34px 8px 9px}body.page-hplc .hplcGalleryTitle>.hplcGalleryTitleText{font-size:14px!important;line-height:1.12!important;letter-spacing:.035em!important}.hplcLightbox{padding:10px}.hplcLightboxInner{padding:10px 10px 14px;border-radius:24px}.hplcLightboxViewport{border-radius:18px}.hplcLightboxImg{border-radius:16px;max-height:74vh}.hplcLightboxNav{width:40px;height:48px;margin-top:-24px;border-radius:15px;font-size:30px;background:rgba(6,6,6,.76)}.hplcLightboxPrev{left:14px}.hplcLightboxNext{right:14px}.hplcLightboxCounter{top:18px;right:18px;padding:6px 9px}.hplcLightboxCaption{margin-top:12px;padding:0 8px;font-size:17px}.hplcLightboxClose{min-width:100%}}
@media (prefers-reduced-motion:reduce){.hplcGalleryButton,.hplcGalleryCard img,.hplcGalleryMedia::after,.hplcLightbox,.hplcLightboxInner,.hplcLightboxTrack,.hplcLightboxNav{transition:none!important}.hplcGalleryCard:hover .hplcGalleryButton,.hplcGalleryCard:focus-within .hplcGalleryButton{transform:none}.hplcGalleryCard:hover img,.hplcGalleryCard:focus-within img{transform:none}}

/* =========================================================================
   5. Order builder — the source's own rules from
      scrapessets\css\9644bc918142016ffdef.css, ported with their class names.
   ========================================================================= */
/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN TOKENS — inherits from storefront bundle, overrides where needed
   ═══════════════════════════════════════════════════════════════════════════ */
.orderBuilderPage,
.vipOrderBuilder {
  /* Gold — muted, never brash (matching store) */
  --ob-gold-hi:  #D4C49A;
  --ob-gold-mid: #B9965A;
  --ob-gold-lo:  #745527;
  --ob-gold-rgb: 185, 150, 90;

  /* Silver — chrome accent */
  --ob-silver-mid: #C2C8D0;
  --ob-silver-rgb: 194, 200, 208;

  /* Voids */
  --ob-b0: #020202;
  --ob-b1: #050505;
  --ob-b2: #090909;
  --ob-b3: #0E0E0E;
  --ob-b4: #131313;
  --ob-b5: #1A1A1A;

  /* Text */
  --ob-tx:  rgba(238, 238, 240, 0.94);
  --ob-tx2: rgba(238, 238, 240, 0.60);
  --ob-tx3: rgba(238, 238, 240, 0.36);
  --ob-tx4: rgba(238, 238, 240, 0.20);

  /* Chrome surfaces */
  --ob-chrome-hi:  rgba(255, 255, 255, 0.10);
  --ob-chrome-mid: rgba(255, 255, 255, 0.055);
  --ob-chrome-lo:  rgba(255, 255, 255, 0.025);

  /* Shadow stacks — matching storefront */
  --ob-sh-raised:
    inset 0 1px 0 var(--ob-chrome-hi),
    inset 0 -1px 0 rgba(0,0,0,0.72),
    0 4px 16px rgba(0,0,0,0.60),
    0 12px 36px rgba(0,0,0,0.40);
  --ob-sh-elevated:
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 -1px 0 rgba(0,0,0,0.88),
    0 8px 32px rgba(0,0,0,0.72),
    0 24px 60px rgba(0,0,0,0.44);
  --ob-sh-hero:
    inset 0 1px 0 rgba(255,255,255,0.14),
    inset 0 -1px 0 rgba(0,0,0,0.92),
    0 16px 56px rgba(0,0,0,0.80),
    0 36px 90px rgba(0,0,0,0.44);

  /* Typography */
  --ob-ff-d: 'Cormorant Garamond', Georgia, serif;
  --ob-ff-b: 'Outfit', system-ui, -apple-system, sans-serif;

  /* Radii — matching store */
  --ob-r: 18px;
  --ob-r-sm: 14px;
  --ob-r-xs: 10px;

  /* Motion */
  --ob-t: 200ms;
  --ob-ease: cubic-bezier(.16,.84,.44,1);
}
/* ═══════ PAGE SHELL ═══════ */
.orderBuilderPage {
  min-height: 100vh;
  overflow-x: hidden;
  background-color: var(--ob-b0);
  background-image:
    radial-gradient(ellipse 980px 620px at 50% -14%,
      rgba(var(--ob-silver-rgb), 0.038) 0%,
      rgba(var(--ob-silver-rgb), 0.010) 42%,
      transparent 74%),
    radial-gradient(ellipse 760px 520px at 50% -6%,
      rgba(var(--ob-gold-rgb), 0.018) 0%,
      rgba(var(--ob-gold-rgb), 0.004) 42%,
      transparent 74%),
    linear-gradient(180deg, #050505 0%, #020202 52%, #010101 100%);
}
/* Chrome horizon line — matching storefront signature */
.orderBuilderPage::before {
  content: '';
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(var(--ob-silver-rgb), 0.38) 18%,
    rgba(var(--ob-gold-rgb), 0.78) 38%,
    rgba(var(--ob-silver-rgb), 0.88) 50%,
    rgba(var(--ob-gold-rgb), 0.78) 62%,
    rgba(var(--ob-silver-rgb), 0.38) 82%,
    transparent 100%);
  z-index: 900;
  pointer-events: none;
}
/* Kill theme toggles & nav */
.orderBuilderPage .topbar,
.orderBuilderPage .mobileNav,
.orderBuilderPage .themeToggle,
.orderBuilderPage .themeToggleFooter,
.orderBuilderPage .themeToggleMobile,
.orderBuilderPage .footerThemeWrap,
.orderBuilderPage [data-theme-toggle],
.orderBuilderPage [class*="themeToggle"],
.orderBuilderPage [class*="theme-toggle"],
.orderBuilderPage .themeDock,
.orderBuilderPage .themeDockBtn,
.orderBuilderPage [aria-label*="theme" i]{display:none !important;visibility:hidden !important;opacity:0 !important;pointer-events:none !important}
.orderBuilderPage .wrap{max-width:1040px;padding-left:24px;padding-right:24px}
/* ═══════ HEADER / LOGO ═══════ */
.obShell {
  padding: 24px 0 92px;
}
.obHeader {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(100%, 720px);
  margin: 0 auto 20px;
  padding: 4px 0 0;
}
.obLogo {
  position: relative;
  z-index: 1;
  display: block;
  width: min(92vw, 680px);
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  filter:
    drop-shadow(0 10px 18px rgba(0,0,0,.38))
    drop-shadow(0 18px 34px rgba(0,0,0,.18));
}
/* ═══════ STAGE — single centered column ═══════ */
.obStage {
  max-width: 560px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
/* ═══════ SHARED CARD SURFACE — borderless 3D depth ═══════ */
.obComposer,
.obCartCard {
  position: relative;
  border-radius: 16px;
  border: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.030) 0%, rgba(255,255,255,0.010) 100%),
    rgba(12, 12, 12, 0.96);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    inset 0 -1px 0 rgba(0,0,0,0.62),
    0 16px 42px rgba(0,0,0,0.50);
  overflow: hidden;
  backdrop-filter: blur(16px) saturate(130%);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
}
/* ═══════ COMPOSER ═══════ */
.obComposer {
  padding: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* ═══════ TEXTAREA — deep inset well ═══════ */
.obFieldWrap {
  position: relative;
  isolation: isolate;
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.026) 0%, rgba(255,255,255,0.006) 100%),
    linear-gradient(180deg, rgba(14,14,15,0.98) 0%, rgba(8,8,9,0.96) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    inset 0 -1px 0 rgba(0,0,0,0.74),
    0 0 0 1px rgba(255,255,255,0.030),
    0 12px 26px rgba(0,0,0,0.34),
    0 22px 42px rgba(0,0,0,0.18);
}
.obFieldWrap::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(180deg, rgba(36,36,39,0.30) 0%, rgba(12,12,14,0.12) 45%, rgba(0,0,0,0.34) 100%);
  box-shadow:
    0 6px 14px rgba(0,0,0,0.18),
    0 14px 28px rgba(0,0,0,0.12);
  opacity: 0.92;
}
.obFieldWrap::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(135deg,
      rgba(255, 236, 192, 0.10) 0%,
      rgba(var(--ob-gold-rgb), 0.14) 18%,
      rgba(255,255,255,0.018) 42%,
      rgba(var(--ob-gold-rgb), 0.08) 64%,
      rgba(88, 64, 26, 0.18) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  box-shadow:
    0 0 0 1px rgba(var(--ob-gold-rgb), 0.10),
    0 0 18px rgba(var(--ob-gold-rgb), 0.08),
    0 10px 22px rgba(0,0,0,0.14);
  opacity: 0.88;
}
.obFieldIcon {
  position: absolute;
  left: 18px;
  top: 21px;
  color: rgba(var(--ob-silver-rgb), 0.28);
  pointer-events: none;
  z-index: 4;
}
.obInput {
  width: 100%;
  min-height: 108px;
  resize: none;
  border: 0;
  border-radius: 14px;
  padding: 16px 18px 16px 48px;
  background: transparent;
  color: var(--ob-tx);
  font: 400 14px/1.7 var(--ob-ff-b);
  letter-spacing: 0.01em;
  outline: none;
  transition: box-shadow var(--ob-t) var(--ob-ease);
  position: relative;
  z-index: 2;
  -webkit-appearance: none;
}
.obInput::placeholder { color: transparent; }
.obInput:focus {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 0 0 1px rgba(var(--ob-silver-rgb), 0.18),
    0 0 0 4px rgba(var(--ob-silver-rgb), 0.06),
    0 4px 22px rgba(0,0,0,0.60);
}
/* Centered placeholder overlay */
.obPlaceholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 16px 18px 16px 48px;
  pointer-events: none;
  z-index: 3;
  text-align: center;
  transition: opacity .22s ease, transform .22s ease;
}
.obPlaceholderLabel {
  font: 600 9px/1 var(--ob-ff-b);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ob-tx4);
}
.obPlaceholderSample {
  font: italic 600 clamp(0.98rem, 2.05vw, 1.1rem)/1.35 var(--ob-ff-d);
  letter-spacing: 0.018em;
  color: rgba(var(--ob-silver-rgb), 0.60);
  -webkit-text-fill-color: rgba(var(--ob-silver-rgb), 0.60);
  opacity: 0.92;
}
.obFieldWrap.hasContent .obPlaceholder,
.obFieldWrap.isFocused .obPlaceholder {
  opacity: 0;
  transform: translateY(-4px) scale(.99);
}
/* ═══════ BUILD BUTTON — matches store's .btn pattern ═══════ */
.obActions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}
.obBuildBtn {
  flex: 1;
  min-height: 52px;
  padding: 13px 24px;
  border: none;
  border-radius: var(--ob-r-xs);
  cursor: pointer;
  outline: none;
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(180deg,
      rgba(255,255,255, 0.075) 0%,
      rgba(var(--ob-silver-rgb), 0.045) 38%,
      rgba(var(--ob-gold-rgb), 0.040) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 10px 30px rgba(0,0,0,0.72);
  transition:
    background var(--ob-t) var(--ob-ease),
    box-shadow var(--ob-t) var(--ob-ease),
    transform var(--ob-t) var(--ob-ease);
  -webkit-tap-highlight-color: transparent;
}
.obBuildBtn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.obBuildBtnLabel {
  font: 700 14.5px/1 var(--ob-ff-b);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ob-gold-hi);
  -webkit-text-fill-color: var(--ob-gold-hi);
}
.obBuildBtn:hover {
  transform: translateY(-2px);
  background:
    linear-gradient(180deg,
      rgba(255,255,255, 0.090) 0%,
      rgba(var(--ob-silver-rgb), 0.060) 38%,
      rgba(var(--ob-gold-rgb), 0.055) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 0 0 1px rgba(var(--ob-silver-rgb), 0.10),
    0 0 28px rgba(var(--ob-silver-rgb), 0.07),
    0 8px 32px rgba(0,0,0,0.70);
}
.obBuildBtn:hover .obBuildBtnLabel {
  color: #E6D6B2;
  -webkit-text-fill-color: #E6D6B2;
}
.obBuildBtn:active {
  transform: translateY(0) scale(0.975);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 10px 30px rgba(0,0,0,0.72);
  transition-duration: 80ms;
}
.obBuildBtn[disabled] {
  opacity: 0.4;
  cursor: wait;
  pointer-events: none;
}
.obHint {
  flex-shrink: 0;
  font: 600 9px/1 var(--ob-ff-b);
  letter-spacing: 0.12em;
  color: var(--ob-tx4);
  white-space: nowrap;
  text-transform: uppercase;
}
/* ═══════ FEEDBACK & MESSAGES ═══════ */
.obFeedback, .obMessages { margin-top: 12px; }
.obFeedback[hidden], .obMessages:empty { display: none !important; }
.obFeedbackList, .obMessages { display: flex; flex-direction: column; gap: 6px; }
.obIssue, .obMsg {
  border-radius: var(--ob-r-sm);
  padding: 12px 14px;
  background: rgba(255,255,255, 0.02);
  border: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255, 0.03),
    0 2px 10px rgba(0,0,0,0.20);
}
.obIssueSource {
  font: 600 10px/1.3 var(--ob-ff-b);
  color: var(--ob-tx2);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.obIssueMeta, .obMsg {
  font: 400 12.5px/1.5 var(--ob-ff-b);
  color: var(--ob-tx3);
}
.obMsg.isWarn { color: rgba(var(--ob-gold-rgb), 0.85); }
.obMsg.isError { color: rgba(210, 100, 100, 0.90); }
/* ═══════ CART ZONE ═══════ */
.obCartZone { min-width: 0; }
.obCartMount { min-width: 0; }
.obCartMount.isFresh .obCartCard {
  animation: obCartLift .3s cubic-bezier(.22,1,.36,1);
}
/* ═══════ CART CARD ═══════ */
.obCartCard,
.orderBuilderPage .panel.obCartCard {
  position: relative;
  isolation: isolate;
  padding: 18px;
  min-height: 0;
  border-radius: 16px;
  border: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.026) 0%, rgba(255,255,255,0.006) 100%),
    linear-gradient(180deg, rgba(14,14,15,0.98) 0%, rgba(8,8,9,0.96) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    inset 0 -1px 0 rgba(0,0,0,0.74),
    0 0 0 1px rgba(255,255,255,0.030),
    0 12px 26px rgba(0,0,0,0.34),
    0 22px 42px rgba(0,0,0,0.18);
}
.obCartCard::before,
.orderBuilderPage .panel.obCartCard::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(180deg, rgba(36,36,39,0.30) 0%, rgba(12,12,14,0.12) 45%, rgba(0,0,0,0.34) 100%);
  box-shadow:
    0 6px 14px rgba(0,0,0,0.18),
    0 14px 28px rgba(0,0,0,0.12);
  opacity: 0.92;
}
.obCartCard::after,
.orderBuilderPage .panel.obCartCard::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(135deg,
      rgba(255, 236, 192, 0.10) 0%,
      rgba(var(--ob-gold-rgb), 0.14) 18%,
      rgba(255,255,255,0.018) 42%,
      rgba(var(--ob-gold-rgb), 0.08) 64%,
      rgba(88, 64, 26, 0.18) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  box-shadow:
    0 0 0 1px rgba(var(--ob-gold-rgb), 0.10),
    0 0 20px rgba(var(--ob-gold-rgb), 0.08),
    0 10px 22px rgba(0,0,0,0.14);
  opacity: 0.88;
}
/* ── Cart header ── */
.obCartHead {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(255,255,255, 0.045);
}
.obCartTitle {
  display: block;
  min-width: 0;
  margin: 0 auto;
  text-align: center;
  font: italic 700 clamp(1.18rem, 1.6vw, 1.3rem)/1 var(--ob-ff-d);
  letter-spacing: 0.012em;
  color: rgba(var(--ob-silver-rgb), 0.86);
  -webkit-text-fill-color: rgba(var(--ob-silver-rgb), 0.86);
}
.obCartCount {
  display: none !important;
}
/* ── Mini / Remove / Checkout btns ── */
.obMiniBtn, .obRemoveBtn, .obCheckoutBtn, .obModalBtn {
  appearance: none;
  border: none;
  outline: none;
  cursor: pointer;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.obMiniBtn, .obRemoveBtn {
  min-height: 36px;
  padding: 0 14px;
  border-radius: var(--ob-r-xs);
  background: rgba(255,255,255, 0.020);
  border: none;
  color: var(--ob-tx2);
  font: 600 9px/1 var(--ob-ff-b);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255, 0.04),
    0 2px 10px rgba(0,0,0,0.36);
  transition:
    transform var(--ob-t) var(--ob-ease),
    background var(--ob-t) var(--ob-ease),
    color var(--ob-t) var(--ob-ease);
}
.obMiniBtn:hover, .obRemoveBtn:hover {
  background: rgba(255,255,255, 0.042);
  color: var(--ob-tx);
}
.obClearCart {
  position: absolute;
  top: 2px;
  right: 0;
}
/* ═══════ EMPTY STATE ═══════ */
.obCartEmpty {
  min-height: 118px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 18px 18px 16px;
}
.obCartEmptyIcon {
  width: 42px;
  height: 42px;
  margin-bottom: 11px;
  border-radius: 50%;
  background: rgba(var(--ob-silver-rgb), 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 4px 14px rgba(0,0,0,0.22);
}
.obCartEmptyIcon svg {
  width: 20px;
  height: 20px;
  stroke: rgba(var(--ob-silver-rgb), 0.22);
  stroke-width: 1.5;
  fill: none;
}
.obCartEmptyTitle {
  font: italic 700 clamp(1.08rem, 1.7vw, 1.24rem)/1.04 var(--ob-ff-d);
  letter-spacing: 0.02em;
  color: var(--ob-tx3);
}
.obCartEmptyMuted {
  margin-top: 4px;
  color: rgba(var(--ob-silver-rgb), 0.30);
  font: 400 11.5px/1.45 var(--ob-ff-b);
}
/* ═══════ CART ROWS ═══════ */
.obCartRows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.obCartRow {
  display: grid;
  grid-template-columns: 70px minmax(0,1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 14px;
  position: relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.022) 0%, rgba(255,255,255,0.006) 100%),
    rgba(9, 9, 9, 0.82);
  border: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255, 0.04),
    inset 0 -1px 0 rgba(0,0,0,0.50),
    0 4px 16px rgba(0,0,0,0.40);
  transition: box-shadow var(--ob-t) var(--ob-ease);
}
.obCartRow:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255, 0.06),
    inset 0 -1px 0 rgba(0,0,0,0.55),
    0 0 0 1px rgba(var(--ob-silver-rgb), 0.05),
    0 8px 28px rgba(0,0,0,0.50);
}
.obCartMedia {
  width: 70px;
  height: 70px;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 30% 10%, rgba(255,255,255,.06), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.18));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 4px 12px rgba(0,0,0,0.25);
}
.obCartMedia img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.obCartInfo { min-width: 0; }
.obCartName {
  color: var(--ob-tx);
  font: 600 13.5px/1.3 var(--ob-ff-b);
  letter-spacing: 0.01em;
}
.obCartPriceLine {
  margin-top: 3px;
  color: var(--ob-tx3);
  font: 400 11.5px/1.4 var(--ob-ff-b);
}
.obCartLineTotal {
  margin-top: 4px;
  font: italic 700 clamp(1rem, 1.5vw, 1.14rem)/1 var(--ob-ff-d);
  color: var(--ob-silver-mid);
  -webkit-text-fill-color: var(--ob-silver-mid);
}
.obCartSide {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
/* ═══════ QUANTITY STEPPER ═══════ */
.obQty {
  display: grid;
  grid-template-columns: 36px 40px 36px;
  align-items: center;
  border-radius: var(--ob-r-xs);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.026) 0%, rgba(255,255,255,0.008) 100%),
    rgba(12, 12, 12, 0.90);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    inset 0 -1px 0 rgba(0,0,0,0.50),
    0 2px 12px rgba(0,0,0,0.40);
}
.obQtyBtn {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(var(--ob-silver-rgb), 0.50);
  font-size: 16px;
  font-weight: 700;
  min-height: 38px;
  cursor: pointer;
  transition: color .14s ease;
}
.obQtyBtn:hover { color: rgba(var(--ob-silver-rgb), 0.90); }
.obQtyBtn:disabled {
  color: rgba(var(--ob-silver-rgb), 0.18);
  cursor: not-allowed;
}
.obQtyInput {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: center;
  color: var(--ob-tx);
  font: 700 13px/1 var(--ob-ff-b);
  outline: none;
  appearance: textfield;
  -webkit-appearance: textfield;
}
input[type=number].obQtyInput::-webkit-inner-spin-button,
input[type=number].obQtyInput::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number].obQtyInput { -moz-appearance: textfield; }
/* ═══════ CART SUMMARY ═══════ */
.obCartSummary {
  display: grid;
  grid-template-columns: minmax(0,1fr) 180px;
  gap: 10px;
  align-items: stretch;
  margin-top: 16px;
}
.obSummaryBox {
  padding: 15px 16px;
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.020) 0%, rgba(255,255,255,0.006) 100%),
    rgba(10,10,10,0.80);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255, 0.03),
    0 2px 10px rgba(0,0,0,0.20);
}
.obSumRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 5px 0;
  color: var(--ob-tx3);
  font: 400 12px/1.4 var(--ob-ff-b);
}
.obSumRow strong {
  color: var(--ob-tx);
  font-weight: 700;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.obSumRow.isTotal {
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255, 0.04);
}
.obSumRow.isTotal strong {
  font: italic 700 clamp(1.2rem, 2vw, 1.5rem)/1 var(--ob-ff-d);
  color: var(--ob-silver-mid);
  -webkit-text-fill-color: var(--ob-silver-mid);
}
/* ═══════ CHECKOUT BUTTON ═══════ */
.obCartActions { display: flex; }
.obCheckoutBtn {
  width: 100%;
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ob-r-xs);
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg,
      rgba(255,255,255, 0.075) 0%,
      rgba(var(--ob-silver-rgb), 0.045) 38%,
      rgba(var(--ob-gold-rgb), 0.040) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 10px 30px rgba(0,0,0,0.72);
  transition:
    background var(--ob-t) var(--ob-ease),
    box-shadow var(--ob-t) var(--ob-ease),
    transform var(--ob-t) var(--ob-ease);
}
.obCheckoutBtn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.obCheckoutBtn .obCheckoutLabel {
  font: 700 13.5px/1 var(--ob-ff-b);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ob-gold-hi);
  -webkit-text-fill-color: var(--ob-gold-hi);
}
.obCheckoutBtn:hover {
  transform: translateY(-2px);
  background:
    linear-gradient(180deg,
      rgba(255,255,255, 0.090) 0%,
      rgba(var(--ob-silver-rgb), 0.060) 38%,
      rgba(var(--ob-gold-rgb), 0.055) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 0 0 1px rgba(var(--ob-silver-rgb), 0.10),
    0 0 28px rgba(var(--ob-silver-rgb), 0.07),
    0 8px 32px rgba(0,0,0,0.70);
}
.obCheckoutBtn:hover .obCheckoutLabel {
  color: #E6D6B2;
  -webkit-text-fill-color: #E6D6B2;
}
.obCheckoutBtn:active {
  transform: translateY(0) scale(0.975);
  transition-duration: 80ms;
}
/* ═══════ BACK LINK — matches store quicklink style ═══════ */
.obReturnWrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 86px;
}
.obBackLink {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 11px;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.034) 0%, rgba(255,255,255,0.008) 100%),
    rgba(18, 18, 18, 0.88);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.07),
    inset 0 -1px 0 rgba(0,0,0,0.75),
    0 6px 20px rgba(0,0,0,0.65);
  transition:
    transform var(--ob-t) var(--ob-ease),
    box-shadow var(--ob-t) var(--ob-ease),
    color var(--ob-t) var(--ob-ease);
}
.obBackLink::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.obBackIco {
  stroke: var(--ob-tx3);
  transition: stroke var(--ob-t) var(--ob-ease);
}
.obBackLabel {
  font: 600 7px/1 var(--ob-ff-b);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ob-tx2);
  transition: color var(--ob-t) var(--ob-ease);
}
.obBackLink:hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(0,0,0,0.80),
    0 0 0 1px rgba(var(--ob-silver-rgb), 0.05),
    0 10px 36px rgba(0,0,0,0.70);
}
.obBackLink:hover .obBackIco { stroke: var(--ob-tx2); }
.obBackLink:hover .obBackLabel { color: var(--ob-tx); }
.obBackLink:active {
  transform: translateY(0) scale(0.975);
  transition-duration: 80ms;
}
.obBuildBtn,
.obCheckoutBtn {
  border: 0 !important;
}
.obBuildBtn .obBuildBtnLabel,
.obCheckoutBtn .obCheckoutLabel {
  color: var(--ob-gold-hi) !important;
  -webkit-text-fill-color: var(--ob-gold-hi) !important;
}
.obRemoveBtn,
.obRemoveBtn.btn,
.obCartCard .obRemoveBtn {
  min-width: 108px;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 12px;
  background: rgba(255,255,255,0.022) !important;
  color: rgba(var(--ob-silver-rgb), 0.72) !important;
  -webkit-text-fill-color: rgba(var(--ob-silver-rgb), 0.72) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    inset 0 -1px 0 rgba(0,0,0,0.58),
    0 2px 12px rgba(0,0,0,0.34) !important;
}
.obRemoveBtn:hover,
.obRemoveBtn.btn:hover,
.obCartCard .obRemoveBtn:hover {
  background: rgba(255,255,255,0.040) !important;
  color: rgba(var(--ob-silver-rgb), 0.9) !important;
  -webkit-text-fill-color: rgba(var(--ob-silver-rgb), 0.9) !important;
}
/* ═══════ MODAL ═══════ */
.obModal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(2,2,4,0.88);
  backdrop-filter: blur(18px) saturate(120%);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
}
.obModal[hidden] { display: none !important; }
.obModalCard {
  width: min(100%, 440px);
  padding: 28px 24px 22px;
  border-radius: var(--ob-r);
  border: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.032) 0%, rgba(255,255,255,0.009) 60%, rgba(0,0,0,0) 100%),
    rgba(13, 13, 13, 0.97);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -1px 0 rgba(0,0,0,0.96),
    0 32px 90px rgba(0,0,0,0.90),
    0 60px 140px rgba(0,0,0,0.55);
  text-align: center;
  position: relative;
}
.obModalTitle {
  margin: 0 0 10px;
  font: italic 700 clamp(1.3rem, 2.2vw, 1.6rem)/1.08 var(--ob-ff-d);
  color: var(--ob-tx);
}
.obModalCopy {
  margin: 0 auto;
  max-width: 360px;
  color: var(--ob-tx3);
  font: 400 13px/1.6 var(--ob-ff-b);
}
.obModalActions {
  display: flex;
  justify-content: center;
  margin-top: 18px;
}
.obModalBtn {
  min-width: 150px;
  min-height: 44px;
  padding: 0 18px;
  border-radius: var(--ob-r-xs);
  background:
    linear-gradient(180deg,
      rgba(var(--ob-silver-rgb), 0.12) 0%,
      rgba(var(--ob-silver-rgb), 0.06) 40%,
      rgba(var(--ob-gold-rgb), 0.07) 100%);
  border: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 10px 30px rgba(0,0,0,0.72);
  color: var(--ob-silver-mid);
  font: 600 10px/1 var(--ob-ff-b);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: transform var(--ob-t) var(--ob-ease), box-shadow var(--ob-t) var(--ob-ease);
  position: relative;
  overflow: hidden;
}
.obModalBtn:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(0,0,0,0.82),
    0 0 0 1px rgba(var(--ob-silver-rgb), 0.10),
    0 0 28px rgba(var(--ob-silver-rgb), 0.07),
    0 8px 32px rgba(0,0,0,0.70);
}
@media (max-width: 520px) {
.obCartCard { padding: 14px; border-radius: 15px; }
.obBuildBtn, .obCheckoutBtn { min-height: 48px; border-radius: 11px; }
.obBuildBtn .obBuildBtnLabel, .obCheckoutBtn .obCheckoutLabel { font-size: 15px; }
.obBackLink { min-height: 36px; border-radius: 11px; }
.obCartHead { align-items: center; justify-content: center; padding-bottom: 10px; }
.obMiniBtn { padding: 0 12px; min-height: 34px; font-size: 8.5px; }
.obCartSummary { gap: 8px; }
.obSummaryBox { padding: 12px 14px; }
.obRemoveBtn, .obRemoveBtn.btn, .obCartCard .obRemoveBtn { min-width: 94px; min-height: 40px; padding: 0 14px; }
.obReturnWrap { margin-top: 72px; }
}
/* ═══════ VIP CATALOGUE TRANSPLANT ═══════
   This is the real standalone builder shell and brand artwork, embedded without
   its page-level nav suppression or return link. All selectors remain scoped
   to the builder's own classes so the VIP catalogue keeps its visual contract. */
.vipOrderBuilder.obShell {
  position: relative;
  isolation: isolate;
  width: min(100%, 720px);
  margin: clamp(38px, 7vw, 64px) auto 0;
  padding: 24px 0 clamp(54px, 9vw, 92px);
  color: var(--ob-tx);
  color-scheme: dark;
  font-family: var(--ob-ff-b);
}
.vipOrderBuilder .obHeader {
  width: min(100%, 720px);
  margin-bottom: 20px;
}
.vipOrderBuilder .obLogo {
  width: min(92vw, 680px);
}
.vipOrderBuilder .obStage {
  width: 100%;
  max-width: 560px;
}
.vipOrderBuilder .obCartCard {
  color: var(--ob-tx);
}
@media (max-width: 520px) {
.vipOrderBuilder.obShell {
    margin-top: 34px;
    padding-top: 18px;
    padding-bottom: 54px;
  }
}

/* =========================================================================
   6. Order builder — OUR additions (no source equivalent)
      Per-line parse feedback, the disambiguation pick list, and the cart notes
      that carry the $400 minimum / $450 free-shipping copy.
   ========================================================================= */

.obLogoFallback {
	font-family: var(--ob-ff-d, 'Cormorant Garamond', Georgia, serif);
	font-style: italic;
	font-weight: 700;
	font-size: clamp(2rem, 5vw, 3rem);
	color: var(--ob-gold-hi, #D4C49A);
	text-align: center;
}

.obMsg.isGood { color: rgba(90, 195, 140, 0.90); }

.obLine {
	border-radius: 14px;
	padding: 11px 13px;
	background: rgba(255, 255, 255, 0.02);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), 0 2px 10px rgba(0, 0, 0, 0.20);
}

.obLineHead {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.obLineRaw {
	font: 600 10px/1.3 var(--ob-ff-b, 'Outfit', sans-serif);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ob-tx2, rgba(238, 238, 240, 0.60));
}

.obLineState {
	font: 400 12.5px/1.5 var(--ob-ff-b, 'Outfit', sans-serif);
	color: var(--ob-tx3, rgba(238, 238, 240, 0.36));
	text-align: right;
}

.obLine--ok .obLineState { color: rgba(90, 195, 140, 0.88); }
.obLine--ambiguous .obLineState { color: rgba(185, 150, 90, 0.90); }
.obLine--none .obLineState { color: rgba(210, 100, 100, 0.90); }
.obLine.isResolved { opacity: 0.45; }

.obLineOptions {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 9px;
}

.obLineOption {
	appearance: none;
	cursor: pointer;
	text-align: left;
	border: 0;
	border-radius: 10px;
	padding: 9px 12px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.030) 0%, rgba(255, 255, 255, 0.008) 100%), rgba(12, 12, 12, 0.92);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 2px 12px rgba(0, 0, 0, 0.34);
	color: rgba(194, 200, 208, 0.86);
	font: 600 12px/1.4 var(--ob-ff-b, 'Outfit', sans-serif);
	transition: background 200ms ease, color 200ms ease;
}

.obLineOption:hover {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.055) 0%, rgba(255, 255, 255, 0.015) 100%), rgba(16, 16, 16, 0.95);
	color: #E6D6B2;
}

.obNote {
	margin-top: 10px;
	padding: 10px 12px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.022);
	border-left: 3px solid rgba(255, 255, 255, 0.10);
	font: 400 12px/1.6 var(--ob-ff-b, 'Outfit', sans-serif);
	color: var(--ob-tx3, rgba(238, 238, 240, 0.36));
}

.obNote strong { color: var(--ob-gold-hi, #D4C49A); }
.obNote--warn { border-left-color: rgba(185, 150, 90, 0.75); }
.obNote--good { border-left-color: rgba(90, 195, 140, 0.75); }

.obCartName a {
	color: inherit;
	text-decoration: none;
}

.obCartName a:hover { color: #E6D6B2; }

.obCartFoot {
	display: flex;
	justify-content: center;
	margin-top: 12px;
}

.obBuildBtn.isBusy { opacity: 0.55; pointer-events: none; }

/* The source's builder page renders NO topbar, NO mobile nav and NO footer -
   it is a distraction-free tool page whose only way out is its own "Back to
   Store" link (RECON-DESIGN 4.4 + 8.1). Reproduced here in CSS, against THIS
   theme's real class names, rather than with the source's MutationObserver.
   The .topbar/.mobileNav selectors above are the source's own names, kept so
   the ported rules stay legible; sp-* are ours. */
.orderBuilderPage .topbar,
.orderBuilderPage .mobileNav,
.orderBuilderPage .sp-topbar,
.orderBuilderPage .sp-mobilenav,
.orderBuilderPage .sp-footer { display: none !important; }

/* The bottom tab bar reserves space at 767px and below; with it hidden the
   builder must not keep the padding. */
@media (max-width: 767px) {
	.orderBuilderPage #main.sp-wrap { padding-bottom: 28px; }
}

@media (prefers-reduced-motion: reduce) {
	.obLineOption,
	.obBuildBtn,
	.obCheckoutBtn,
	.obBackLink { transition: none !important; }
}
