/* BUILD 1.1.1 — 2026-10-18 · Sparkle Events (spk) · WordPress plugin */
/* =====================================================================
   WP · reset layer — placed BEFORE the design stylesheet so that, on equal
   specificity, every Sparkle rule wins over these resets.
   ===================================================================== */
/* theme button reset — beats theme `button` rules (1,0,1 > 0,3,1) yet loses to every Sparkle button
   rule (armoured to 1,1,0+), so the static design's values always apply */
button:where([class*="spk-"]):not(#spk-a) {
	padding: 1px 6px; margin: 0; min-width: auto; min-height: auto; border-radius: 0; box-shadow: none; text-shadow: none;
	background-image: none; background-color: transparent; color: inherit; font-family: inherit; font-size: 13.333px;
	font-weight: 400; line-height: normal; letter-spacing: normal; text-transform: none; text-decoration: none; outline-offset: 0;
}

/* themes that set text-align: left on body (LTR stylesheets) — the design reads from the start side */
body.spk-page.spk-page { text-align: start; line-height: normal; letter-spacing: normal; }

/* theme element resets — UA behaviour for bare elements inside Sparkle widgets (1,0,1: beats any
   theme rule, loses to every Sparkle rule, which is armoured to 1,1,0+) */
:where([class*="spk-"]) figcaption:not(#spk-a),  :where([class*="spk-"]) figure:not(#spk-a) { margin: 0; padding: 0; font-size: inherit; line-height: inherit; text-align: inherit; color: inherit; font-style: normal; }
:where([class*="spk-"]) :is(h1, h2, h3, h4, h5, h6):not(#spk-a) { font-family: inherit; font-weight: bold; letter-spacing: normal; text-transform: none; }
:where([class*="spk-"]) a:not(#spk-a) { text-decoration-thickness: auto; text-underline-offset: auto; }

:where([class*="spk-"]) :is(strong, b):not(#spk-a) { font-weight: bolder; }

/* =====================================================================
   180D BASE — the invariant layer.
   Extracted from the ten delivered plugins (Fulaz, ENGR FIX, Boscoo,
   SANA, SAT, LJS1, Super Mentality, KFSH-J, Lolita, Auto-Gate).
   Every one of them contained this layer, modulo the prefix.

   HOW TO USE: replace every spk with the project prefix (kfshj, sat,
   boscoo…). Never edit this file's rules to fix a component — add a
   component rule instead. This layer is the contract that survives the
   HTML → Elementor conversion untouched.
   ===================================================================== */

/* ---------------------------------------------------------------------
   0. TOKENS — fill in per project. See references/tokens.md.
   Keep the NAMES exactly; only the VALUES change per project.
   --------------------------------------------------------------------- */
:root {
	/* layout concept: ivory canvas, gold gradients everywhere (cards, bands, type), dark only as the far end of a gradient */
	color-scheme: light;

	/* surfaces */
	--spk-bg:          #FFFCF5;
	--spk-bg-deep:     #F6ECD2;
	--spk-fg:          #1E170D;
	--spk-card:        #FFFFFF;
	--spk-card-fg:     #1E170D;
	--spk-muted:       #F3E9D0;
	--spk-muted-fg:    #655843;
	--spk-border:      rgba(140, 108, 47, .28);

	/* brand — sampled from the logo: glitter gold, black, white */
	--spk-primary:     #C9A250;
	--spk-primary-fg:  #FFFFFF;
	--spk-primary-glow:#F0DDA6;
	--spk-accent:      #7A5A22;
	--spk-accent-fg:   #FFFFFF;
	--spk-gold-deep:   #8C6C2F;
	--spk-white:       #FFFFFF;
	--spk-black:       #140F08;
	--spk-ok:          #1F7A3A;
	--spk-err:         #B3261E;

	/* type */
	--spk-font:         "Cairo", system-ui, "Segoe UI", Tahoma, sans-serif;
	--spk-font-display: "Thmanyah Serif Display", "Cairo", system-ui, "Segoe UI", sans-serif;

	/* geometry */
	--spk-radius:      0.75rem;
	--spk-radius-lg:   1.75rem;
	--spk-max:         76rem;
	--spk-max-narrow:  52rem;
	--spk-pad:         1rem;
	--spk-pad-lg:      2rem;

	/* elevation */
	--spk-shadow-sm:   0 1px 3px rgba(74, 55, 22, .14);
	--spk-shadow-md:   0 8px 20px -10px rgba(74, 55, 22, .45);
	--spk-shadow-card: 0 26px 50px -28px rgba(74, 55, 22, .55), inset 0 1px 0 rgba(255, 255, 255, .7);
	--spk-shadow-glow: 0 0 36px rgba(201, 162, 80, .45), 0 16px 36px -14px rgba(74, 55, 22, .5);

	/* gradients — the site's main material */
	--spk-gradient-primary: linear-gradient(to left, #1E170D 0%, #5A431B 50%, #8C6C2F 100%);
	--spk-gradient-accent:  linear-gradient(135deg, #C9A250 0%, #F0DDA6 100%);
	--spk-gradient-gold:    linear-gradient(to left, #BE9645 0%, #EBD493 48%, #C6A04E 100%);
	--spk-gradient-soft:    linear-gradient(to left, #F7EBCB 0%, #FFFCF5 55%, #F3E2B4 100%);
	--spk-gradient-card:    linear-gradient(200deg, #EDD9A2 0%, #FAF2DC 34%, #FFFFFF 72%);
	--spk-gradient-dusk:    linear-gradient(to left, #1A1309 0%, #4A3716 46%, #8C6C2F 100%);
	--spk-gradient-text:    linear-gradient(100deg, #7A5A22 0%, #B08333 55%, #8C6C2F 100%);
	--spk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

	--spk-transition:  all .3s cubic-bezier(.4, 0, .2, 1);
}

/* ---------------------------------------------------------------------
   1. HORIZONTAL-SCROLL DEFENSE — mandatory, nine layers.
   This block shipped in 10/10 projects. Do not trim it.
   --------------------------------------------------------------------- */
[class^="spk-"]:not(#spk-a), [class*=" spk-"]:not(#spk-a), [class^="spk-"] *:not(#spk-a), [class*=" spk-"] *:not(#spk-a), [class^="spk-"] *:not(#spk-a)::before, [class*=" spk-"] *:not(#spk-a)::before, [class^="spk-"] *:not(#spk-a)::after, [class*=" spk-"] *:not(#spk-a)::after { box-sizing: border-box; }

/* 1b — section-level clip. Add every top-level wrapper class here. */
.spk-section:not(#spk-a), .spk-hero:not(#spk-a), .spk-page-hero:not(#spk-a), .spk-header:not(#spk-a), .spk-footer:not(#spk-a), .spk-cta-banner:not(#spk-a), .spk-contact:not(#spk-a), .spk-marquee:not(#spk-a), .spk-cta:not(#spk-a), .spk-booking:not(#spk-a), .spk-strip:not(#spk-a) {
	max-width: 100%;
	overflow-x: hidden;
	overflow-x: clip;
}

/* 1c — grid/flex children must be allowed to shrink below intrinsic width */
[class^="spk-"][class*="-grid"] > *:not(#spk-a), [class^="spk-"][class*="-row"]  > *:not(#spk-a), .spk-form-row > *:not(#spk-a), .spk-form-field:not(#spk-a) { min-width: 0; max-width: 100%; }

/* 1d — media */
[class^="spk-"] img:not(#spk-a), [class*=" spk-"] img:not(#spk-a), [class^="spk-"] svg:not(#spk-a), [class*=" spk-"] svg:not(#spk-a), [class^="spk-"] video:not(#spk-a), [class*=" spk-"] video:not(#spk-a), [class^="spk-"] iframe:not(#spk-a), [class*=" spk-"] iframe:not(#spk-a) { max-width: 100%; }
[class^="spk-"] img:not(#spk-a), [class^="spk-"] iframe:not(#spk-a) { height: auto; }

/* 1e — form controls */
[class^="spk-"] input:not(#spk-a), [class^="spk-"] textarea:not(#spk-a), [class^="spk-"] select:not(#spk-a), [class^="spk-"] button:not(#spk-a) { max-width: 100%; }
[class^="spk-"] input[type="text"]:not(#spk-a), [class^="spk-"] input[type="email"]:not(#spk-a), [class^="spk-"] input[type="tel"]:not(#spk-a), [class^="spk-"] input[type="number"]:not(#spk-a), [class^="spk-"] textarea:not(#spk-a), [class^="spk-"] select:not(#spk-a) { width: 100%; }

/* 1f — long unbroken strings (emails, phones, URLs) */
[class^="spk-"] p:not(#spk-a), [class^="spk-"] a:not(#spk-a), [class^="spk-"] span:not(#spk-a), [class^="spk-"] li:not(#spk-a), [class^="spk-"] dd:not(#spk-a) { overflow-wrap: anywhere; word-break: break-word; }

/* 1g — honeypot (spam trap, never visible, never pushes layout) */
.spk-honeypot:not(#spk-a) {
	position: absolute !important; left: -10000px !important;
	width: 1px !important; height: 1px !important; overflow: hidden !important;
}

/* ---------------------------------------------------------------------
   2. TYPOGRAPHY BASELINE
   Arabic needs a taller line-height than Latin — this is not optional.
   --------------------------------------------------------------------- */
[class^="spk-"]:not(#spk-a), [class*=" spk-"]:not(#spk-a) { font-family: var(--spk-font); }

[class^="spk-"] h1:not(#spk-a), [class^="spk-"] h2:not(#spk-a), [class^="spk-"] h3:not(#spk-a), [class^="spk-"] h4:not(#spk-a), [class^="spk-"][class*="-title"]:not(#spk-a), [class^="spk-"][class*="-headline"]:not(#spk-a) {
	font-family: var(--spk-font-display);
	line-height: 1.25;
	margin: 0;
}

[class^="spk-"] p:not(#spk-a), [class^="spk-"] li:not(#spk-a), [class^="spk-"][class*="-desc"]:not(#spk-a) { line-height: 1.75; }

body.rtl      [class^="spk-"] p:not(#spk-a), body.rtl      [class^="spk-"] li:not(#spk-a), html[lang^="ar"] [class^="spk-"] p:not(#spk-a), html[lang^="ar"] [class^="spk-"] li:not(#spk-a), body.rtl      [class^="spk-"][class*="-desc"]:not(#spk-a), html[lang^="ar"] [class^="spk-"][class*="-desc"]:not(#spk-a) { line-height: 1.9; }

/* Latin runs inside RTL (phone numbers, emails, prices) */
.spk-ltr:not(#spk-a), [dir="ltr"]:not(#spk-a) { direction: ltr; unicode-bidi: embed; }

/* ---------------------------------------------------------------------
   3. LAYOUT PRIMITIVES
   --------------------------------------------------------------------- */
.spk-container:not(#spk-a) {
	width: 100%;
	max-width: var(--spk-max);
	margin-inline: auto;
	padding-inline: var(--spk-pad);
}
.spk-container-narrow:not(#spk-a) { max-width: var(--spk-max-narrow); }
@media (min-width: 768px) { .spk-container:not(#spk-a) { padding-inline: var(--spk-pad-lg); } }

.spk-section:not(#spk-a) { position: relative; padding-block: 4rem; background: transparent; }
@media (min-width: 768px) { .spk-section:not(#spk-a) { padding-block: 6rem; } }

/* Responsive grid helper — mobile 1col, tablet 2, desktop N.
   Use .spk-cols-2/3/4 on the same element. */
.spk-grid:not(#spk-a) { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) {
	.spk-cols-2:not(#spk-a), .spk-cols-3:not(#spk-a), .spk-cols-4:not(#spk-a) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.spk-cols-3:not(#spk-a) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.spk-cols-4:not(#spk-a) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------------------------------------------------------------------
   4. SECTION-HEAD RHYTHM
   Doubled class = specificity 0:not(#spk-a), 2:not(#spk-a), 0:not(#spk-a), which beats Elementor's
   `h1..h6:not(#spk-a) { margin: 0 }` reset. This was the #1 round-two complaint
   before it was single-sourced. Never set head spacing per component.
   --------------------------------------------------------------------- */
.spk-section-head.spk-section-head:not(#spk-a) { margin-bottom: 3rem; }
.spk-section-head.spk-section-head .spk-eyebrow:not(#spk-a) {
	display: block;
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--spk-accent);
}
.spk-section-head.spk-section-head .spk-section-title:not(#spk-a) { margin: 0 0 1rem; }
.spk-section-head.spk-section-head .spk-head-rule:not(#spk-a) {
	display: block; width: 6rem; height: 0.25rem;
	margin: 0 auto 1.25rem; border-radius: 999px;
	background: var(--spk-gradient-accent);
}
.spk-section-head.spk-section-head .spk-section-desc:not(#spk-a) {
	margin: 0 auto; max-width: 40rem; color: var(--spk-muted-fg);
}
.spk-align-center:not(#spk-a) { text-align: center; }
.spk-align-center h1:not(#spk-a), .spk-align-center h2:not(#spk-a), .spk-align-center h3:not(#spk-a), .spk-align-center p:not(#spk-a), .spk-align-center span:not(#spk-a) { text-align: center; }
.spk-align-start .spk-head-rule:not(#spk-a) { margin-inline: 0; }

/* ---------------------------------------------------------------------
   5. ICON CONTAINER — SIZE AND LAYOUT ONLY.
   Colour is declared PER COMPONENT against its own chip background.
   This selector is 0,2,0 and silently beat per-component colours in
   three builds, shipping invisible icons. Never add `color` here.
   --------------------------------------------------------------------- */
[class^="spk-"][class*="-icon"]:not(#spk-a), [class*=" spk-"][class*="-icon"]:not(#spk-a) {
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0; line-height: 1;
}
[class^="spk-"][class*="-icon"] svg:not(#spk-a), [class*=" spk-"][class*="-icon"] svg:not(#spk-a) {
	width: 1.5rem; height: 1.5rem; display: block;
	color: inherit; fill: none; stroke: currentColor;
}
[class^="spk-"][class*="-icon"] i:not(#spk-a), [class*=" spk-"][class*="-icon"] i:not(#spk-a) { font-size: 1.1rem; color: inherit; line-height: 1; }

/* Icon chip — the recurring "coloured square behind an icon" pattern.
   Set the colour on the chip; the icon inherits it. */
.spk-icon-chip:not(#spk-a) {
	width: 3.5rem; height: 3.5rem;
	border-radius: var(--spk-radius);
	background: var(--spk-gradient-accent);
	color: var(--spk-primary-fg);              /* ← per-component override */
	box-shadow: var(--spk-shadow-md);
	transition: var(--spk-transition);
}

/* ---------------------------------------------------------------------
   6. BUTTON SYSTEM — three-layer defense against theme resets.
   Layer 1 (here): shape. Layer 2: element+class selectors with
   !important on colour. Layer 3: descendant colour lock.
   --------------------------------------------------------------------- */
.spk-btn:not(#spk-a) {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	font-family: var(--spk-font); font-weight: 700; font-size: 1rem; line-height: 1.2;
	padding: 0.85rem 2rem;
	border-radius: 9999px;
	border: 0; cursor: pointer; text-decoration: none; white-space: nowrap;
	transition: var(--spk-transition);
}
a.spk-btn.spk-btn-primary:not(#spk-a), a.spk-btn.spk-btn-primary:link:not(#spk-a), a.spk-btn.spk-btn-primary:visited:not(#spk-a), button.spk-btn.spk-btn-primary:not(#spk-a), .spk-btn.spk-btn-primary[class]:not(#spk-a) {
	background: var(--spk-gradient-primary) !important;
	color: var(--spk-primary-fg) !important;
	text-decoration: none !important;
	box-shadow: var(--spk-shadow-md);
}
a.spk-btn.spk-btn-primary:hover:not(#spk-a), button.spk-btn.spk-btn-primary:hover:not(#spk-a), .spk-btn.spk-btn-primary[class]:hover:not(#spk-a) {
	color: var(--spk-primary-fg) !important;
	transform: translateY(-2px);
	box-shadow: var(--spk-shadow-glow);
}
.spk-btn.spk-btn-primary *:not(#spk-a) { color: var(--spk-primary-fg) !important; }

a.spk-btn.spk-btn-outline:not(#spk-a), button.spk-btn.spk-btn-outline:not(#spk-a), .spk-btn.spk-btn-outline[class]:not(#spk-a) {
	background: transparent !important;
	color: var(--spk-fg) !important;
	border: 1px solid var(--spk-border) !important;
}
a.spk-btn.spk-btn-outline:hover:not(#spk-a), .spk-btn.spk-btn-outline[class]:hover:not(#spk-a) {
	border-color: var(--spk-accent) !important;
	color: var(--spk-accent) !important;
}
.spk-btn-block:not(#spk-a) { width: 100%; }

/* ---------------------------------------------------------------------
   7. CARD
   --------------------------------------------------------------------- */
.spk-card:not(#spk-a) {
	position: relative;
	display: flex; flex-direction: column; gap: 1rem;
	padding: 1.75rem;
	border-radius: var(--spk-radius-lg);
	border: 1px solid var(--spk-border);
	background: var(--spk-card);
	color: var(--spk-card-fg);
	box-shadow: var(--spk-shadow-card);
	transition: var(--spk-transition);
	height: 100%;
}
.spk-card:hover:not(#spk-a) { transform: translateY(-6px); box-shadow: var(--spk-shadow-glow); }
.spk-card-title:not(#spk-a) { font-size: 1.25rem; font-weight: 700; margin: 0; }
.spk-card-desc:not(#spk-a) { color: var(--spk-muted-fg); margin: 0; }

/* ---------------------------------------------------------------------
   8. FORM
   --------------------------------------------------------------------- */
.spk-form-row:not(#spk-a) { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .spk-form-row:not(#spk-a) { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
.spk-form-field:not(#spk-a) { margin-bottom: 1.25rem; }
.spk-form-field label:not(#spk-a) {
	display: block; margin-bottom: 0.5rem;
	font-size: 0.875rem; font-weight: 600;
	letter-spacing: 0;
	color: var(--spk-muted-fg);
}
.spk-form-field input:not(#spk-a), .spk-form-field textarea:not(#spk-a), .spk-form-field select:not(#spk-a) {
	width: 100%; max-width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--spk-border);
	border-radius: var(--spk-radius);
	background: var(--spk-card);
	color: var(--spk-fg);
	font: inherit; font-size: 0.9375rem;
	transition: border-color .3s;
}
.spk-form-field textarea:not(#spk-a) { min-height: 8rem; resize: vertical; }
.spk-form-field :is(input, textarea, select):focus:not(#spk-a) {
	outline: 0; border-color: var(--spk-accent);
}
/* Native <select> popup is painted by the OS. On dark themes the option
   text renders white-on-white without these two lines. */
.spk-form-field select:not(#spk-a) {
	-webkit-appearance: none; appearance: none;
	background-color: var(--spk-card);
}
.spk-form-notice:not(#spk-a) { display: none; margin-top: 1rem; padding: 0.9rem 1.1rem; border-radius: var(--spk-radius); font-size: 0.9rem; }
.spk-form-notice.is-ok:not(#spk-a) { display: block; background: rgba(31,122,58,.10); color: var(--spk-ok); }
.spk-form-notice.is-err:not(#spk-a) { display: block; background: rgba(179,38,30,.08); color: var(--spk-err); }

/* 8b — FORM-SECTION CONTAINMENT (v7.1 layer 9).
   The contact section is where horizontal scroll came back three times. */
.spk-contact:not(#spk-a), .spk-contact *:not(#spk-a) { min-width: 0; }
.spk-contact:not(#spk-a) { overflow-x: clip; }

/* ---------------------------------------------------------------------
   9. MOTION — see references/motion.md for the full keyframe set.
   --------------------------------------------------------------------- */
@keyframes spk-fade-up   { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes spk-fade-in   { from { opacity: 0; } to { opacity: 1; } }
@keyframes spk-slide-l   { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: none; } }
@keyframes spk-slide-r   { from { opacity: 0; transform: translateX(60px); }  to { opacity: 1; transform: none; } }
@keyframes spk-float     { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes spk-marquee   { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.spk-anim-fade:not(#spk-a) { animation: spk-fade-up .7s cubic-bezier(.2,.8,.2,1) both; }
.spk-anim-left:not(#spk-a) { animation: spk-slide-l .75s cubic-bezier(.2,.8,.2,1) both; }
.spk-anim-right:not(#spk-a) { animation: spk-slide-r .75s cubic-bezier(.2,.8,.2,1) both; }
.spk-anim-float:not(#spk-a) { animation: spk-float 4s ease-in-out infinite; }

/* Scroll reveal — JS adds .is-visible. NEVER apply .spk-reveal to
   dynamic content (filtered grids, AJAX lists, WooCommerce archives):
   re-rendered nodes never receive .is-visible and stay invisible. */
.spk-js .spk-reveal:not(#spk-a) { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; transition-delay: calc(var(--i, 0) * 80ms); }
.spk-js .spk-reveal.is-visible:not(#spk-a) { opacity: 1; transform: none; }

/* Editor preview + reduced motion — force final state so the canvas is
   never blank while an animation delay is pending. */
.elementor-editor-active [class*="spk-anim-"]:not(#spk-a), .elementor-editor-active .spk-reveal:not(#spk-a), body.elementor-editor-preview [class*="spk-anim-"]:not(#spk-a), body.elementor-editor-preview .spk-reveal:not(#spk-a) {
	opacity: 1 !important; transform: none !important; animation: none !important;
}
@media (prefers-reduced-motion: reduce) {
	[class*="spk-anim-"]:not(#spk-a), .spk-reveal:not(#spk-a) {
		opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important;
	}
}

/* ---------------------------------------------------------------------
   10. MOBILE PERFORMANCE BUDGET
   Blur/backdrop-filter and large shadows repaint every scroll frame.
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
	[class^="spk-"]:not(#spk-a) { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
	.spk-anim-float:not(#spk-a) { animation: none !important; }
	.spk-card:not(#spk-a) { box-shadow: 0 4px 12px -6px rgba(0,0,0,.35) !important; }
}

/* ---------------------------------------------------------------------
   11. WORDPRESS/ELEMENTOR NEUTRALISATION
   Keep this block even in the HTML build — it is dead weight in the
   browser and load-bearing after conversion.
   --------------------------------------------------------------------- */
.elementor-widget-container > [class^="spk-"]:not(#spk-a) { width: 100%; }
[class^="spk-"] a:not(#spk-a) { text-decoration: none; }
[class^="spk-"] ul:not(#spk-a), [class^="spk-"] ol:not(#spk-a) { list-style: none; margin: 0; padding: 0; }

/* ---------------------------------------------------------------------
   12. IMAGE SLOTS
   Class B (factual: projects, gallery, real products) ships as a visible
   placeholder that reserves the final dimensions, so nothing reflows when
   the client uploads the real image in WordPress.
   See references/imagery.md.
   --------------------------------------------------------------------- */
.spk-media:not(#spk-a) { position: relative; overflow: hidden; border-radius: var(--spk-radius-lg); }
.spk-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.spk-media:hover img:not(#spk-a) { transform: scale(1.05); }

.spk-placeholder:not(#spk-a) {
	display: grid; place-items: center; min-height: 12rem;
	border: 1px dashed var(--spk-border);
	border-radius: var(--spk-radius-lg);
	background:
		repeating-linear-gradient(45deg, var(--spk-muted) 0 12px, transparent 12px 24px),
		var(--spk-bg-deep);
}
.spk-placeholder-label:not(#spk-a) {
	font-size: .8rem; letter-spacing: .15em; color: var(--spk-muted-fg);
}

/* =====================================================================
   PROJECT LAYER — Sparkle Events  (light canvas, gradient-led)
   Signature moves, repeated on every page:
   A) outlined gold numerals for prices and stats        (.spk-price)
   B) gold gradients as the main material: type, cards, bands, buttons
      + glitter grain on the gold bands — the logo's texture (.spk-glitter)
   ===================================================================== */

/* ---------------------------------------------------------------------
   13. GLOBAL CANVAS + SHARED PARTS
   --------------------------------------------------------------------- */
html,  body {
	background-color: var(--spk-bg) !important;
	color: var(--spk-fg);
}
html,  body {
	background-image:
		radial-gradient(circle at 4% 12%, rgba(201,162,80,.30), transparent 40%),
		radial-gradient(circle at 98% 62%, rgba(201,162,80,.24), transparent 38%),
		radial-gradient(circle at 30% 100%, rgba(240,221,166,.38), transparent 46%) !important;
	background-attachment: fixed !important;
	background-repeat: no-repeat !important;
}
body { margin: 0; }
.spk-page:not(#spk-a) { font-family: var(--spk-font); font-size: 1rem; color: var(--spk-fg); }
.spk-page :not(#spk-a)::selection { background: var(--spk-primary); color: var(--spk-black); }
.spk-page :focus-visible:not(#spk-a) { outline: 2px solid var(--spk-accent); outline-offset: 3px; border-radius: 4px; }
.spk-skip:not(#spk-a) { position: absolute; inset-inline-start: 1rem; top: -4rem; z-index: 100; padding: .6rem 1rem; border-radius: var(--spk-radius); background: var(--spk-black); color: var(--spk-white); font-weight: 700; }
.spk-skip:focus:not(#spk-a) { top: 1rem; }
.spk-sprite:not(#spk-a) { position: absolute; width: 0; height: 0; overflow: hidden; }

.spk-i:not(#spk-a) {
	width: 1.25em; height: 1.25em; flex-shrink: 0; display: inline-block; vertical-align: middle;
	fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
}

/* gradient type — light surfaces; solid light gold on dark gradients */
.spk-gold:not(#spk-a) {
	background: var(--spk-gradient-text); -webkit-background-clip: text; background-clip: text;
	color: transparent; -webkit-box-decoration-break: clone; box-decoration-break: clone; padding-block: .12em;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) { .spk-gold:not(#spk-a) { color: var(--spk-accent); } }
.spk-gold-light:not(#spk-a) { color: var(--spk-primary-glow); }

/* section washes */
.spk-wash:not(#spk-a) { background: var(--spk-gradient-soft); }
.spk-wash-down:not(#spk-a) { background: linear-gradient(180deg, rgba(255,252,245,0) 0%, #F6E9C6 100%); }

/* section label — the logo star marks every section */
.spk-label.spk-label:not(#spk-a) {
	display: inline-flex; align-items: center; gap: .55rem;
	margin: 0; font-family: var(--spk-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.4;
	color: var(--spk-fg);
}
.spk-label .spk-i:not(#spk-a) { color: var(--spk-gold-deep); width: 1.05em; height: 1.05em; }

.spk-head-row.spk-head-row:not(#spk-a) {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap;
	margin-bottom: 2.5rem;
}
.spk-head-note:not(#spk-a) { margin: 0; color: var(--spk-muted-fg); font-size: .9375rem; }
.spk-head-link:not(#spk-a) {
	display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; font-size: .9375rem;
	color: var(--spk-accent); border-bottom: 1px solid transparent; transition: var(--spk-transition);
}
.spk-head-link:hover:not(#spk-a) { border-bottom-color: var(--spk-accent); }

.spk-h2.spk-h2:not(#spk-a) {
	font-family: var(--spk-font-display); font-weight: 700; line-height: 1.4; margin: 0;
	font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); text-wrap: balance;
}

/* A) outlined gold numerals */
.spk-price:not(#spk-a) {
	display: inline-block; font-family: var(--spk-font-display); font-weight: 700; line-height: 1;
	font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4rem);
	color: transparent; -webkit-text-stroke: 1.5px var(--spk-gold-deep);
	font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate;
}
@supports not (-webkit-text-stroke: 1px #000) { .spk-price:not(#spk-a) { color: var(--spk-gold-deep); } }

/* B) glitter grain */
.spk-glitter:not(#spk-a) { position: relative; isolation: isolate; }
.spk-glitter:not(#spk-a)::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: var(--spk-grain); opacity: .22; mix-blend-mode: overlay;
}

/* buttons on top of the base system */
a.spk-btn.spk-btn-light:not(#spk-a), button.spk-btn.spk-btn-light:not(#spk-a), .spk-btn.spk-btn-light[class]:not(#spk-a) {
	background: linear-gradient(135deg, #FFFFFF 0%, #F6E9C6 100%) !important; color: var(--spk-black) !important;
	box-shadow: var(--spk-shadow-md);
}
a.spk-btn.spk-btn-light:hover:not(#spk-a), button.spk-btn.spk-btn-light:hover:not(#spk-a) { transform: translateY(-2px); box-shadow: var(--spk-shadow-glow); }
a.spk-btn.spk-btn-gold:not(#spk-a), button.spk-btn.spk-btn-gold:not(#spk-a), .spk-btn.spk-btn-gold[class]:not(#spk-a) {
	background: var(--spk-gradient-gold) !important; color: var(--spk-black) !important;
	box-shadow: var(--spk-shadow-md);
}
a.spk-btn.spk-btn-gold:hover:not(#spk-a), button.spk-btn.spk-btn-gold:hover:not(#spk-a) { transform: translateY(-2px); box-shadow: var(--spk-shadow-glow); }
a.spk-btn.spk-btn-ghost:not(#spk-a), button.spk-btn.spk-btn-ghost:not(#spk-a), .spk-btn.spk-btn-ghost[class]:not(#spk-a) {
	background: transparent !important; color: var(--spk-white) !important; border: 1px solid rgba(255,255,255,.7) !important;
}
a.spk-btn.spk-btn-ghost:hover:not(#spk-a), button.spk-btn.spk-btn-ghost:hover:not(#spk-a) { background: rgba(255,255,255,.14) !important; }
.spk-btn-sm:not(#spk-a) { padding: .6rem 1.35rem; font-size: .9375rem; }

/* gradient card — gold corner fading to white (the design's glass card, recoloured) */
.spk-gcard:not(#spk-a) {
	border-radius: var(--spk-radius-lg); border: 1px solid var(--spk-border);
	background: var(--spk-gradient-card); box-shadow: var(--spk-shadow-card);
}

/* ---------------------------------------------------------------------
   14. HEADER  (links hug the centred logo; drawer under 1024)
   --------------------------------------------------------------------- */
.spk-header:not(#spk-a) {
	position: fixed; inset-inline: 0; top: 0; z-index: 60;
	padding-top: env(safe-area-inset-top, 0px);
	background: linear-gradient(to left, rgba(255,252,245,.95) 0%, rgba(247,235,203,.95) 100%);
	border-bottom: 1px solid var(--spk-border);
	transition: box-shadow .3s ease;
}
.spk-header.is-scrolled:not(#spk-a) { box-shadow: 0 14px 30px -22px rgba(74,55,22,.7); }
.spk-header-inner:not(#spk-a) {
	display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 1rem;
	min-height: 4.75rem;
}
.spk-header-side:not(#spk-a) { display: flex; align-items: center; gap: .75rem; }
.spk-header-side-end:not(#spk-a) { justify-content: flex-end; }
.spk-burger:not(#spk-a) {
	width: 2.75rem; height: 2.75rem; border-radius: 999px; border: 0; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--spk-gradient-primary); color: var(--spk-white); transition: var(--spk-transition);
}
.spk-burger:hover:not(#spk-a) { transform: scale(1.06); box-shadow: var(--spk-shadow-glow); }
.spk-header .spk-header-social:not(#spk-a) { display: none; }
.spk-nav:not(#spk-a) { display: none; align-items: center; gap: 2rem; }
.spk-nav-link:not(#spk-a) {
	position: relative; padding: .5rem 0; font-size: .9375rem; font-weight: 700; color: var(--spk-fg); white-space: nowrap;
	transition: color .2s ease;
}
.spk-nav-link:not(#spk-a)::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--spk-gradient-gold); transform: scaleX(0); transition: transform .25s ease; }
.spk-nav-link:hover:not(#spk-a), .spk-nav-link[aria-current="page"]:not(#spk-a) { color: var(--spk-accent); }
.spk-nav-link:hover:not(#spk-a)::after, .spk-nav-link[aria-current="page"]:not(#spk-a)::after { transform: scaleX(1); }
.spk-logo:not(#spk-a) { display: block; }
.spk-logo img:not(#spk-a) { display: block; width: auto; height: 3.5rem; }
@media (min-width: 1024px) {
	.spk-header-inner:not(#spk-a) { grid-template-columns: minmax(0,1fr) auto auto auto minmax(0,1fr); gap: 2.5rem; }
	.spk-nav:not(#spk-a) { display: flex; }
	.spk-burger:not(#spk-a) { display: none; }
	.spk-header .spk-header-social:not(#spk-a) { display: inline-flex; }
}
@media (max-width: 479px) {
	.spk-header-inner:not(#spk-a) { min-height: 4.25rem; gap: .5rem; }
	.spk-logo img:not(#spk-a) { height: 2.75rem; }
	.spk-header-cta:not(#spk-a) { padding: .55rem 1rem; font-size: .875rem; }
}

/* drawer — works with :target when JS is off, .is-open when it is on */
.spk-menu:not(#spk-a) {
	position: fixed; inset-block: 0; inset-inline-start: 0; z-index: 80;
	width: min(22rem, 88vw); padding: calc(1.25rem + env(safe-area-inset-top, 0px)) 1.5rem 2rem;
	display: flex; flex-direction: column; gap: 1.5rem; overflow-y: auto;
	background: linear-gradient(180deg, #FFFCF5 0%, #F3E2B4 100%); border-inline-end: 1px solid var(--spk-border);
	box-shadow: -30px 0 60px -30px rgba(26,19,9,.55);
	transform: translateX(105%); visibility: hidden;
	transition: transform .35s cubic-bezier(.2,.8,.2,1), visibility 0s linear .35s;
}
.spk-menu:target:not(#spk-a), .spk-menu.is-open:not(#spk-a) { transform: none; visibility: visible; transition-delay: 0s; }
.spk-menu-top:not(#spk-a) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.spk-menu-top img:not(#spk-a) { height: 3rem; width: auto; display: block; }
.spk-menu-close:not(#spk-a) {
	width: 2.5rem; height: 2.5rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--spk-border); color: var(--spk-fg); background: var(--spk-white); cursor: pointer;
}
.spk-menu-list:not(#spk-a) { display: flex; flex-direction: column; }
.spk-menu-link:not(#spk-a) {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: .95rem 0; border-bottom: 1px solid var(--spk-border);
	font-family: var(--spk-font-display); font-size: 1.25rem; font-weight: 700; color: var(--spk-fg);
	transition: color .2s ease, padding .2s ease;
}
.spk-menu-link:hover:not(#spk-a), .spk-menu-link[aria-current="page"]:not(#spk-a) { color: var(--spk-accent); padding-inline-start: .35rem; }
.spk-menu-link .spk-i:not(#spk-a) { color: var(--spk-gold-deep); width: 1em; height: 1em; }
.spk-menu-foot:not(#spk-a) { margin-top: auto; display: flex; flex-direction: column; gap: .75rem; }
.spk-menu-backdrop:not(#spk-a) {
	position: fixed; inset: 0; z-index: 70; background: rgba(26,19,9,.5);
	opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility 0s linear .3s;
}
.spk-menu.is-open + .spk-menu-backdrop:not(#spk-a), .spk-menu:target + .spk-menu-backdrop:not(#spk-a) { opacity: 1; visibility: visible; transition-delay: 0s; }

.spk-social:not(#spk-a) {
	width: 2.5rem; height: 2.5rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
	background: var(--spk-gradient-primary); color: var(--spk-white); transition: var(--spk-transition);
}
.spk-social:hover:not(#spk-a) { transform: translateY(-3px); box-shadow: var(--spk-shadow-glow); }

/* ---------------------------------------------------------------------
   16. PAGE HERO  (inner pages) — a dark dusk veil over a sharp photo, closed by a gold rule
   --------------------------------------------------------------------- */
.spk-page-hero:not(#spk-a) { position: relative; isolation: isolate; padding-top: calc(var(--spk-head-h) + env(safe-area-inset-top, 0px)); text-align: center; color: var(--spk-white); background: var(--spk-black); }
.spk-page-hero-media:not(#spk-a) { position: absolute; inset: 0; z-index: -1; background: var(--spk-black); overflow: hidden; }
.spk-page-hero-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.spk-page-hero-media:not(#spk-a)::after {
	content: ""; position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(12,9,4,.62) 0%, rgba(12,9,4,.12) 46%, rgba(12,9,4,.58) 100%),
		linear-gradient(to left, rgba(12,9,4,.90) 0%, rgba(20,15,8,.80) 46%, rgba(58,42,16,.66) 100%);
}
.spk-page-hero:not(#spk-a)::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 4px; background: var(--spk-gradient-gold); }
.spk-page-hero-body:not(#spk-a) { padding-block: 4.5rem 5rem; max-width: 46rem; margin-inline: auto; }
.spk-page-hero-overlap .spk-page-hero-body:not(#spk-a) { padding-bottom: 11rem; }
.spk-page-hero-title.spk-page-hero-title:not(#spk-a) { margin: 0 0 1rem; font-size: clamp(2.25rem, 1.4rem + 3.6vw, 3.75rem); font-weight: 700; line-height: 1.4; color: var(--spk-white); }
.spk-page-hero-sub:not(#spk-a) { margin: 0 auto 1.25rem; max-width: 38rem; font-size: 1.0625rem; color: rgba(255,255,255,.92); }
.spk-crumbs:not(#spk-a) { display: inline-flex; align-items: center; gap: .5rem; font-size: .9375rem; font-weight: 700; color: var(--spk-white); }
.spk-crumbs a:not(#spk-a) { color: var(--spk-primary-glow); }
.spk-crumbs a:hover:not(#spk-a) { text-decoration: underline; }
@media (max-width: 767px) { .spk-page-hero-body:not(#spk-a) { padding-block: 3rem 3.25rem; } .spk-page-hero-overlap .spk-page-hero-body:not(#spk-a) { padding-bottom: 9.5rem; } }

/* ---------------------------------------------------------------------
   17. ABOUT ROW (home) + VALUES / STATS / CATEGORIES / STRIP / TEAM (about page)
   --------------------------------------------------------------------- */
.spk-about-row:not(#spk-a) { display: grid; gap: 1.5rem 3rem; align-items: start; grid-template-columns: minmax(0,1fr); }
.spk-about-title:not(#spk-a) { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.25rem); }
.spk-about-text:not(#spk-a) { margin: 0; color: var(--spk-muted-fg); font-size: 1.0625rem; }
.spk-about-text + .spk-about-text:not(#spk-a) { margin-top: 1rem; }
@media (min-width: 900px) {
	.spk-about-row:not(#spk-a) { grid-template-columns: minmax(0,.9fr) minmax(0,1.6fr) auto; }
	.spk-about-action:not(#spk-a) { padding-top: .5rem; }
}

.spk-values-grid:not(#spk-a) { display: grid; gap: 2.5rem 4rem; grid-template-columns: minmax(0,1fr); align-items: start; }
.spk-values-title.spk-values-title:not(#spk-a) { margin: 1rem 0 1.25rem; font-size: clamp(1.875rem, 1.25rem + 2.4vw, 2.875rem); font-weight: 700; line-height: 1.5; }
.spk-values-text:not(#spk-a) { margin: 0; color: var(--spk-muted-fg); }
.spk-value:not(#spk-a) { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 1.5rem; align-items: start; padding-block: 1.75rem; border-bottom: 1px solid var(--spk-border); }
.spk-value:first-child:not(#spk-a) { padding-top: 0; }
.spk-value:last-child:not(#spk-a) { border-bottom: 0; padding-bottom: 0; }
.spk-value-icon:not(#spk-a) { width: 4.25rem; height: 4.25rem; border-radius: 999px; background: var(--spk-gradient-accent); color: var(--spk-black); box-shadow: var(--spk-shadow-md); }
.spk-value-icon.spk-value-icon svg:not(#spk-a) { width: 2rem; height: 2rem; stroke-width: 1.4; }
.spk-value-title.spk-value-title:not(#spk-a) { margin: 0 0 .4rem; font-size: 1.3125rem; font-weight: 700; line-height: 1.5; }
.spk-value-desc:not(#spk-a) { margin: 0; color: var(--spk-muted-fg); font-size: .9375rem; }
@media (min-width: 900px) { .spk-values-grid:not(#spk-a) { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); } .spk-values-copy:not(#spk-a) { position: sticky; top: 7rem; } }

.spk-stats:not(#spk-a) { display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 4rem; padding: 2.25rem 1.5rem; text-align: center; border-radius: var(--spk-radius-lg); border: 1px solid var(--spk-border); background: var(--spk-gradient-card); box-shadow: var(--spk-shadow-card); }
.spk-stat-num:not(#spk-a) { display: block; font-family: var(--spk-font-display); font-weight: 700; line-height: 1.1; font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.5rem); font-variant-numeric: tabular-nums; }
.spk-stat-num .spk-price:not(#spk-a) { font-size: inherit; }
.spk-stat-label:not(#spk-a) { display: block; margin-top: .5rem; font-size: .9375rem; font-weight: 600; line-height: 1.6; color: var(--spk-muted-fg); }
@media (min-width: 800px) { .spk-stats:not(#spk-a) { grid-template-columns: repeat(4, minmax(0,1fr)); padding: 2.75rem 2rem; } }

.spk-cats-row:not(#spk-a) { display: grid; gap: 2rem; grid-template-columns: minmax(0,1fr); }
.spk-cats-grid:not(#spk-a) { display: grid; gap: 1.5rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.spk-cat:not(#spk-a) { display: block; color: var(--spk-fg); }
.spk-cat-media:not(#spk-a) { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--spk-radius); margin-bottom: 1rem; }
.spk-cat-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.spk-cat-media:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(74,55,22,.55) 0%, rgba(201,162,80,.14) 46%, transparent 70%); }
.spk-cat:hover .spk-cat-media img:not(#spk-a) { transform: scale(1.06); }
.spk-cat-title.spk-cat-title:not(#spk-a) { margin: 0 0 .3rem; font-size: 1.1875rem; font-weight: 700; line-height: 1.5; }
.spk-cat-desc:not(#spk-a) { margin: 0; font-size: .875rem; color: var(--spk-muted-fg); }
@media (min-width: 900px) { .spk-cats-row:not(#spk-a) { grid-template-columns: 9rem minmax(0,1fr); gap: 2.5rem; } .spk-cats-grid:not(#spk-a) { grid-template-columns: repeat(4, minmax(0,1fr)); } }

.spk-strip:not(#spk-a) { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.spk-strip-item:not(#spk-a) { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.spk-strip-item img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-strip-item:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgba(240,221,166,.30) 0%, transparent 45%, rgba(74,55,22,.38) 100%); }
.spk-strip-tag:not(#spk-a) { position: absolute; z-index: 1; inset-inline-start: 0; bottom: 0; display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .9rem; background: var(--spk-gradient-primary); color: var(--spk-white); font-size: .8125rem; font-weight: 700; line-height: 1.6; }
@media (min-width: 800px) { .spk-strip:not(#spk-a) { grid-template-columns: repeat(4, minmax(0,1fr)); } }

.spk-team-grid:not(#spk-a) { display: grid; gap: 2.5rem; grid-template-columns: minmax(0,1fr); align-items: center; }
.spk-team-media:not(#spk-a) { position: relative; isolation: isolate; aspect-ratio: 1 / 1; max-width: 26rem; width: 100%; margin-inline: auto; }
.spk-team-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--spk-radius-lg); }
.spk-team-media:not(#spk-a)::after { content: ""; position: absolute; inset-inline-start: 1rem; top: 1rem; inset-inline-end: -1rem; bottom: -1rem; border-radius: var(--spk-radius-lg); background: var(--spk-gradient-gold); z-index: -1; }
.spk-team-title.spk-team-title:not(#spk-a) { margin: 1rem 0 1rem; font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); font-weight: 700; line-height: 1.5; }
.spk-team-text:not(#spk-a) { margin: 0 0 1.5rem; color: var(--spk-muted-fg); font-size: 1.0625rem; }
.spk-ticks:not(#spk-a) { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1.75rem; }
.spk-ticks.spk-ticks:not(#spk-a) { margin-bottom: 1.75rem; }
.spk-ticks li:not(#spk-a) { display: flex; gap: .6rem; align-items: flex-start; font-weight: 600; }
.spk-ticks .spk-i:not(#spk-a) { margin-top: .45em; width: 1em; height: 1em; color: var(--spk-gold-deep); }
@media (min-width: 900px) { .spk-team-grid:not(#spk-a) { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 5rem; } .spk-team-media:not(#spk-a) { margin-inline: 0; } }

/* ---------------------------------------------------------------------
   23. BOOKING  (two-tone statement + gradient form card)
   --------------------------------------------------------------------- */
.spk-booking:not(#spk-a) { scroll-margin-top: 5rem; }
.spk-booking-grid:not(#spk-a) { display: grid; gap: 2.5rem; grid-template-columns: minmax(0,1fr); align-items: start; }
.spk-booking-title.spk-booking-title:not(#spk-a) { margin: .85rem 0 1.25rem; font-size: clamp(2rem, 1.3rem + 2.8vw, 3.125rem); font-weight: 700; line-height: 1.45; }
.spk-booking-text:not(#spk-a) { margin: 0 0 1.5rem; color: var(--spk-muted-fg); max-width: 28rem; }
.spk-next:not(#spk-a) { display: flex; flex-direction: column; gap: .85rem; max-width: 28rem; }
.spk-next li:not(#spk-a) { display: flex; gap: .75rem; align-items: flex-start; line-height: 1.7; font-weight: 600; }
.spk-next-num:not(#spk-a) { flex: 0 0 auto; width: 1.9rem; height: 1.9rem; border-radius: 999px; background: var(--spk-gradient-accent); color: var(--spk-black); display: inline-flex; align-items: center; justify-content: center; font-family: var(--spk-font-display); font-weight: 700; font-size: .9375rem; line-height: 1; margin-top: .05rem; }
.spk-form:not(#spk-a) {
	padding: 1.75rem 1.25rem; border-radius: var(--spk-radius-lg); border: 1px solid var(--spk-border);
	background: var(--spk-gradient-card); box-shadow: var(--spk-shadow-card);
}
.spk-form .spk-form-field:not(#spk-a) { margin-bottom: 1.35rem; }
.spk-form .spk-form-field input:not(#spk-a), .spk-form .spk-form-field textarea:not(#spk-a), .spk-form .spk-form-field select:not(#spk-a) {
	border: 0; border-bottom: 1px solid rgba(74,55,22,.5); border-radius: 0; background: transparent;
	padding: .55rem 0; color: var(--spk-fg); font-size: 1rem; line-height: 1.6;
}
.spk-form .spk-form-field select:not(#spk-a) { background-color: transparent; padding-inline-end: 1.75rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A5A22' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-position: left .1rem center; background-size: 1.1rem 1.1rem; background-repeat: no-repeat; }
.spk-form .spk-form-field textarea:not(#spk-a) { min-height: 5.5rem; }
.spk-form .spk-form-field :not(#spk-a)::placeholder { color: rgba(101,88,67,.75); }
.spk-form .spk-form-field :is(input, textarea, select):focus:not(#spk-a) { border-bottom-color: var(--spk-accent); box-shadow: 0 1px 0 var(--spk-accent); outline: 0; }
.spk-form .spk-form-field :is(input, textarea, select)[aria-invalid="true"]:not(#spk-a) { border-bottom-color: var(--spk-err); }
.spk-req:not(#spk-a) { color: var(--spk-err); }
.spk-field-error:not(#spk-a) { display: none; margin-top: .35rem; font-size: .8125rem; line-height: 1.6; color: var(--spk-err); }
[aria-invalid="true"] ~ .spk-field-error:not(#spk-a) { display: block; }
.spk-fieldset:not(#spk-a) { border: 0; padding: 0; margin: 0 0 1.35rem; min-width: 0; }
.spk-fieldset legend:not(#spk-a) { padding: 0; margin-bottom: .65rem; font-size: .875rem; font-weight: 600; color: var(--spk-muted-fg); }
.spk-checks:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .5rem; }
.spk-check:not(#spk-a) { position: relative; display: inline-flex; cursor: pointer; }
.spk-check input:not(#spk-a) { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.spk-check span:not(#spk-a) { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .95rem; border-radius: 999px; border: 1px solid rgba(74,55,22,.4); background: rgba(255,255,255,.6); font-size: .9375rem; font-weight: 600; line-height: 1.5; transition: var(--spk-transition); }
.spk-check input:checked + span:not(#spk-a) { background: var(--spk-gradient-primary); border-color: transparent; color: var(--spk-white); }
.spk-check input:focus-visible + span:not(#spk-a) { outline: 2px solid var(--spk-accent); outline-offset: 2px; }
.spk-form-foot:not(#spk-a) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.spk-form-foot p:not(#spk-a) { margin: 0; font-size: .8125rem; color: var(--spk-muted-fg); flex: 1 1 12rem; min-width: 0; }
@media (min-width: 640px) { .spk-form:not(#spk-a) { padding: 2.25rem 2.25rem 2rem; } }
@media (min-width: 1000px) { .spk-booking-grid:not(#spk-a) { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 4rem; } .spk-booking-copy:not(#spk-a) { position: sticky; top: 7rem; } }

/* contact page: the form card rides up over the page hero */
.spk-booking-solo:not(#spk-a) { padding-top: 0; }
.spk-page-hero + .spk-booking-solo:not(#spk-a) { padding-top: 0; }
.spk-booking-solo .spk-form:not(#spk-a) { position: relative; z-index: 1; max-width: 58rem; margin: -6.5rem auto 0; }
.spk-after:not(#spk-a) { display: grid; gap: 1.25rem; grid-template-columns: minmax(0,1fr); max-width: 58rem; margin: 2.5rem auto 0; }
.spk-after-item:not(#spk-a) { display: flex; gap: .85rem; align-items: flex-start; }
.spk-after-item p:not(#spk-a) { margin: 0; font-size: .9375rem; font-weight: 600; }
@media (min-width: 800px) { .spk-after:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }

/* ---------------------------------------------------------------------
   24. CONTACT  (pattern panel + info bar)
   --------------------------------------------------------------------- */
.spk-contact-panel:not(#spk-a) {
	position: relative; isolation: isolate; overflow: hidden; min-height: 19rem; display: flex; flex-direction: column; justify-content: space-between;
	border-radius: var(--spk-radius-lg); border: 1px solid var(--spk-border);
	background-color: #FBF1D6;
	background-image: radial-gradient(rgba(140,108,47,.42) 1px, transparent 1.5px), radial-gradient(rgba(201,162,80,.5) 1px, transparent 1.5px);
	background-size: 34px 34px, 21px 21px; background-position: 0 0, 9px 13px;
}
.spk-contact-panel:not(#spk-a)::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 50% 38%, rgba(255,255,255,.95) 0%, rgba(255,252,245,.7) 34%, rgba(240,221,166,.2) 70%), linear-gradient(to left, rgba(201,162,80,.35), transparent 40%, rgba(201,162,80,.35)); }
.spk-contact-main:not(#spk-a) { padding: 2.75rem 1.5rem 2.25rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.spk-contact-pin:not(#spk-a) { display: inline-flex; align-items: center; justify-content: center; width: 3.75rem; height: 3.75rem; border-radius: 999px; background: var(--spk-gradient-primary); color: var(--spk-white); box-shadow: 0 0 0 .6rem rgba(201,162,80,.28); }
.spk-contact-pin svg:not(#spk-a) { width: 1.6rem; height: 1.6rem; }
.spk-contact-title.spk-contact-title:not(#spk-a) { margin: .5rem 0 0; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem); font-weight: 700; line-height: 1.5; }
.spk-contact-text:not(#spk-a) { margin: 0; max-width: 32rem; color: var(--spk-muted-fg); }
.spk-contact-bar:not(#spk-a) { display: grid; grid-template-columns: minmax(0,1fr); background: var(--spk-gradient-gold); }
.spk-contact-item:not(#spk-a) { padding: 1rem 1.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; border-top: 1px solid rgba(26,19,9,.2); }
.spk-contact-item:first-child:not(#spk-a) { border-top: 0; }
.spk-contact-value:not(#spk-a) { font-weight: 700; font-size: 1rem; line-height: 1.6; color: var(--spk-black); }
a.spk-contact-value:hover:not(#spk-a) { text-decoration: underline; }
.spk-contact-key:not(#spk-a) { font-size: .8125rem; font-weight: 600; line-height: 1.6; color: rgba(26,19,9,.78); }
.spk-pending:not(#spk-a) { display: inline-flex; align-items: center; gap: .4rem; padding: .1rem .6rem; border: 1px dashed rgba(26,19,9,.7); border-radius: 999px; font-size: .8125rem; font-weight: 700; color: var(--spk-black); width: fit-content; max-width: 100%; }
@media (min-width: 800px) { .spk-contact-bar:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } .spk-contact-item:not(#spk-a) { border-top: 0; border-inline-start: 1px solid rgba(26,19,9,.2); } .spk-contact-item:first-child:not(#spk-a) { border-inline-start: 0; } }

/* ---------------------------------------------------------------------
   26. FAQ  (centred two-tone title + gradient card)
   --------------------------------------------------------------------- */
.spk-faq-title.spk-faq-title:not(#spk-a) { margin: 0 auto 2.5rem; max-width: 34rem; text-align: center; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.625rem); font-weight: 700; line-height: 1.55; text-wrap: balance; }
.spk-faq-card:not(#spk-a) { max-width: 44rem; margin-inline: auto; padding: 1.5rem 1.25rem; border-radius: var(--spk-radius-lg); border: 1px solid var(--spk-border); background: var(--spk-gradient-card); box-shadow: var(--spk-shadow-card); }
.spk-faq-item + .spk-faq-item:not(#spk-a) { margin-top: .5rem; }
.spk-faq-q:not(#spk-a) { width: 100%; display: flex; align-items: flex-start; gap: .85rem; padding: .75rem 0; border: 0; background: transparent; cursor: pointer; text-align: start; color: var(--spk-fg); font-family: var(--spk-font); font-size: 1.125rem; font-weight: 700; line-height: 1.6; transition: color .2s ease; }
.spk-faq-q:hover:not(#spk-a), .spk-faq-q[aria-expanded="true"]:not(#spk-a) { color: var(--spk-accent); }
.spk-faq-icon:not(#spk-a) { width: 1.75rem; height: 1.75rem; border-radius: 999px; border: 1px solid currentColor; margin-top: .1rem; transition: transform .3s ease; }
.spk-faq-icon.spk-faq-icon svg:not(#spk-a) { width: .9rem; height: .9rem; }
.spk-faq-q[aria-expanded="true"] .spk-faq-icon:not(#spk-a) { transform: rotate(-45deg); background: var(--spk-gradient-primary); border-color: transparent; color: var(--spk-white); }
.spk-faq-a:not(#spk-a) { padding-inline-start: 2.6rem; padding-bottom: .75rem; }
.spk-faq-a[hidden]:not(#spk-a) { display: none; }
.spk-faq-a p:not(#spk-a) { margin: 0; font-size: .9375rem; color: var(--spk-muted-fg); }
.spk-faq-a a:not(#spk-a) { color: var(--spk-accent); font-weight: 700; border-bottom: 1px solid currentColor; }
@media (min-width: 640px) { .spk-faq-card:not(#spk-a) { padding: 2.5rem 3rem; } }

/* ---------------------------------------------------------------------
   27. FOOTER  — dusk gradient, ring ornaments, columns, credit
   --------------------------------------------------------------------- */
.spk-footer:not(#spk-a) { position: relative; isolation: isolate; overflow: hidden; padding-block: 4rem calc(1.75rem + env(safe-area-inset-bottom, 0px)); background: var(--spk-gradient-dusk); color: var(--spk-white); }
.spk-footer:not(#spk-a)::before, .spk-footer-rings:not(#spk-a) {
	content: ""; position: absolute; z-index: -1; width: 24rem; height: 24rem; border-radius: 50%; pointer-events: none;
	background: repeating-radial-gradient(circle, transparent 0 9px, rgba(240,221,166,.2) 9px 10px);
	-webkit-mask-image: radial-gradient(circle, #000 30%, transparent 70%); mask-image: radial-gradient(circle, #000 30%, transparent 70%);
}
.spk-footer:not(#spk-a)::before { top: -10rem; inset-inline-start: -7rem; }
.spk-footer-rings:not(#spk-a) { bottom: -12rem; inset-inline-end: -6rem; }
.spk-footer-top:not(#spk-a) { display: grid; gap: 1.5rem 3rem; grid-template-columns: minmax(0,1fr); align-items: center; padding-bottom: 2.75rem; }
.spk-footer-title.spk-footer-title:not(#spk-a) { margin: 0; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); font-weight: 700; line-height: 1.5; color: var(--spk-white); text-wrap: balance; }
.spk-footer-text:not(#spk-a) { margin: 0; color: rgba(255,255,255,.92); }
.spk-footer-actions:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .75rem; }
.spk-footer-cols:not(#spk-a) { display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(2, minmax(0,1fr)); padding-block: 2.25rem; border-top: 1px solid rgba(255,255,255,.24); }
.spk-footer-brand:not(#spk-a) { grid-column: 1 / -1; }
.spk-footer-logo:not(#spk-a) { display: inline-block; margin-bottom: 1rem; }
.spk-footer-logo img:not(#spk-a) { height: 3.75rem; width: auto; display: block; }
.spk-footer-blurb:not(#spk-a) { margin: 0; max-width: 20rem; font-size: .9375rem; color: rgba(255,255,255,.9); }
.spk-footer-col-title.spk-footer-col-title:not(#spk-a) { margin: 0 0 1rem; font-family: var(--spk-font); font-size: .9375rem; font-weight: 700; line-height: 1.6; color: var(--spk-primary-glow); }
.spk-footer-links:not(#spk-a) { display: flex; flex-direction: column; gap: .35rem; }
.spk-footer-links a:not(#spk-a), .spk-footer-links span:not(#spk-a) { display: inline-flex; align-items: center; gap: .5rem; font-size: .9375rem; color: rgba(255,255,255,.92); transition: color .2s ease; }
.spk-footer-links a:hover:not(#spk-a) { color: var(--spk-primary-glow); }
.spk-footer-links .spk-i:not(#spk-a) { width: 1em; height: 1em; }
.spk-footer-links .spk-pending:not(#spk-a) { border-color: rgba(255,255,255,.7); color: var(--spk-white); font-weight: 600; }
.spk-footer-bottom:not(#spk-a) { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.24); font-size: .875rem; line-height: 1.7; color: rgba(255,255,255,.92); }
.spk-footer-bottom p:not(#spk-a) { margin: 0; }
.spk-footer-bottom a:not(#spk-a) { color: var(--spk-white); font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.6); }
.spk-footer-bottom a:hover:not(#spk-a) { color: var(--spk-primary-glow); }
@media (min-width: 900px) {
	.spk-footer-top:not(#spk-a) { grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr) auto; }
	.spk-footer-cols:not(#spk-a) { grid-template-columns: minmax(0,1.4fr) repeat(3, minmax(0,1fr)); }
	.spk-footer-brand:not(#spk-a) { grid-column: auto; }
}

/* ---------------------------------------------------------------------
   28. SMALL-SCREEN TUNING
   --------------------------------------------------------------------- */
@media (max-width: 767px) {
	.spk-section:not(#spk-a) { padding-block: 3.5rem; }
	.spk-head-row.spk-head-row:not(#spk-a) { margin-bottom: 1.75rem; }
	.spk-offer:not(#spk-a) { grid-template-columns: minmax(0,1fr); gap: .75rem; }
	.spk-offer-price:not(#spk-a) { text-align: start; display: flex; align-items: baseline; gap: .6rem; }
	.spk-offer-unit:not(#spk-a) { margin-top: 0; }
}

.spk-cats-foot.spk-cats-foot:not(#spk-a) { margin: 2.5rem 0 0; }

/* =====================================================================
   BUILD 0.4.0 — booking cart, dark-gradient rhythm
   ===================================================================== */
:root {
	--spk-gradient-night: linear-gradient(135deg, #0E0A05 0%, #1F170A 38%, #3B2B10 72%, #5A431B 100%);
	--spk-night-fg: #F6ECD6;
	--spk-night-muted: rgba(246,236,214,.74);
	--spk-buybar-h: 0px;
}
body.spk-has-buybar { --spk-buybar-h: 4.75rem; padding-bottom: var(--spk-buybar-h); }
html.spk-lock,  html.spk-lock body { overflow: hidden; }

/* ---------------------------------------------------------------------
   29. SHARED (section heads, night sections, extra buttons)
   --------------------------------------------------------------------- */
.spk-sec-head:not(#spk-a) { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.spk-sec-title.spk-sec-title:not(#spk-a) { margin: .75rem 0 0; font-family: var(--spk-font-display); font-weight: 700; line-height: 1.45; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); text-wrap: balance; color: var(--spk-fg); }
.spk-sec-title.spk-on-dark:not(#spk-a) { color: var(--spk-white); }
.spk-sec-note:not(#spk-a) { margin: .75rem 0 0; max-width: 36rem; color: var(--spk-muted-fg); }
.spk-label-light.spk-label-light:not(#spk-a) { color: var(--spk-primary-glow); }
.spk-label-light .spk-i:not(#spk-a) { color: var(--spk-primary); }
.spk-deep:not(#spk-a) { background: linear-gradient(180deg, rgba(255,252,245,0) 0%, #F8EDD2 28%, #F3E2B4 100%); }

.spk-night:not(#spk-a) { position: relative; isolation: isolate; overflow: hidden; background: var(--spk-gradient-night); color: var(--spk-night-fg); }
.spk-night-glow:not(#spk-a) { position: absolute; z-index: -1; inset: -30% -10% auto auto; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(201,162,80,.38) 0%, rgba(201,162,80,0) 65%); pointer-events: none; }
.spk-night:not(#spk-a)::before { content: ""; position: absolute; inset: auto auto -40% -15%; z-index: -1; width: 55%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(240,221,166,.16) 0%, transparent 62%); pointer-events: none; }
.spk-night .spk-price:not(#spk-a) { -webkit-text-stroke-color: var(--spk-primary-glow); }

a.spk-btn.spk-btn-ghost .spk-i:not(#spk-a) { width: 1em; height: 1em; }
.spk-btn .spk-i:not(#spk-a) { width: 1.1em; height: 1.1em; }
.spk-money:not(#spk-a) { white-space: nowrap; }
.spk-mini-title.spk-mini-title:not(#spk-a) { margin: 0 0 .65rem; font-size: .875rem; font-weight: 700; color: var(--spk-accent); }

/* ---------------------------------------------------------------------
   30. HEADER — basket
   --------------------------------------------------------------------- */
.spk-basket:not(#spk-a) { position: relative; width: 2.75rem; height: 2.75rem; border-radius: 999px; border: 1px solid var(--spk-border); background: var(--spk-white); color: var(--spk-fg); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--spk-transition); }
.spk-basket:hover:not(#spk-a) { border-color: var(--spk-gold-deep); box-shadow: var(--spk-shadow-glow); }
.spk-basket .spk-i:not(#spk-a) { width: 1.3rem; height: 1.3rem; }
.spk-basket-count:not(#spk-a) { position: absolute; top: -.3rem; inset-inline-end: -.3rem; min-width: 1.3rem; height: 1.3rem; padding-inline: .3rem; border-radius: 999px; background: var(--spk-gradient-gold); color: var(--spk-black); font-size: .75rem; font-weight: 800; line-height: 1.3rem; text-align: center; box-shadow: 0 0 0 2px var(--spk-white); }
.spk-basket-count[hidden]:not(#spk-a) { display: none; }
@media (max-width: 767px) { .spk-header-cta:not(#spk-a) { display: none; } }

/* ---------------------------------------------------------------------
   31. HERO v4 — dark gradient, sharp graded photo masked into it
   --------------------------------------------------------------------- */
.spk-hero:not(#spk-a) { position: relative; isolation: isolate; overflow: hidden; padding-top: calc(var(--spk-head-h) + env(safe-area-inset-top, 0px)); background: var(--spk-gradient-night); color: var(--spk-night-fg); }
.spk-hero-media:not(#spk-a) { position: relative; overflow: hidden; }
.spk-hero-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; display: block; }
.spk-hero-scrim:not(#spk-a) { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.spk-hero-glow:not(#spk-a) { position: absolute; z-index: -1; inset-inline-end: -10%; top: 10%; width: 55%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(201,162,80,.28), transparent 62%); pointer-events: none; }
.spk-hero-body:not(#spk-a) { position: relative; padding-block: 3rem 3rem; }
.spk-hero-copy:not(#spk-a) { max-width: 37rem; }
.spk-hero-eyebrow:not(#spk-a) { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.1rem; padding: .35rem .9rem; border-radius: 999px; border: 1px solid rgba(201,162,80,.5); background: rgba(201,162,80,.12); font-size: .875rem; font-weight: 700; color: var(--spk-primary-glow); }
.spk-hero-eyebrow .spk-i:not(#spk-a) { width: 1rem; height: 1rem; color: var(--spk-primary); }
.spk-hero-title.spk-hero-title:not(#spk-a) { margin: 0 0 1.25rem; font-weight: 700; line-height: 1.45; text-wrap: balance; color: var(--spk-white); font-size: clamp(2.125rem, 1.25rem + 3.4vw, 3.5rem); }
.spk-hero-sub:not(#spk-a) { margin: 0 0 2rem; max-width: 34rem; font-size: 1.0625rem; color: var(--spk-night-muted); }
.spk-hero-actions:not(#spk-a) { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.spk-hero-social.spk-hero-social:not(#spk-a) { display: none; }
.spk-social-light:not(#spk-a) { background: rgba(255,255,255,.12); border: 1px solid rgba(240,221,166,.5); color: var(--spk-primary-glow); }
@media (min-width: 1200px) {
	.spk-hero-body:not(#spk-a) { padding-block: 5.5rem 6rem; min-height: 36rem; display: flex; flex-direction: column; justify-content: center; }
	.spk-hero-media:not(#spk-a) {
		position: absolute; inset-block: 0; inset-inline-end: 0; width: 54%; z-index: -2;
		-webkit-mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 100%); mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 100%);
	}
	/* a soft dusk veil along the photo's inner edge and bottom keeps it in the gradient */
	.spk-hero-media:not(#spk-a)::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, rgba(14,10,5,.55) 0%, rgba(14,10,5,0) 30%), linear-gradient(to right, rgba(14,10,5,.35) 0%, rgba(14,10,5,0) 25%); }
	.spk-hero-copy:not(#spk-a) { max-width: 33rem; }
}
@media (min-width: 1440px) { .spk-hero-copy:not(#spk-a) { max-width: 36rem; } }
@media (max-width: 1199px) {
	.spk-hero:not(#spk-a) { display: flex; flex-direction: column; }
	.spk-hero-body:not(#spk-a) { order: 1; width: 100%; }
	.spk-hero-media:not(#spk-a) { order: 2; margin: 0 var(--spk-pad) 2.5rem; aspect-ratio: 4 / 3; border-radius: var(--spk-radius-lg); border: 1px solid rgba(201,162,80,.4); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); }
}
@media (min-width: 768px) and (max-width: 1199px) { .spk-hero-media:not(#spk-a) { width: calc(100% - 2 * var(--spk-pad-lg)); max-width: calc(var(--spk-max) - 2 * var(--spk-pad-lg)); margin-inline: auto; aspect-ratio: 16 / 9; } .spk-hero-copy:not(#spk-a) { max-width: 40rem; } }
@media (max-width: 767px) { .spk-hero-body:not(#spk-a) { padding-block: 2.25rem 2rem; } .spk-hero-actions .spk-btn:not(#spk-a) { flex: 1 1 auto; } }

/* ---------------------------------------------------------------------
   32. WHY — three photo cards pulled up over the hero edge
   --------------------------------------------------------------------- */
.spk-why .spk-sec-head:not(#spk-a) { margin-bottom: 2rem; }
.spk-why-grid:not(#spk-a) { display: grid; gap: 1.25rem; grid-template-columns: minmax(0,1fr); }
.spk-why-card:not(#spk-a) { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--spk-radius-lg); border: 1px solid var(--spk-border); background: var(--spk-gradient-card); box-shadow: var(--spk-shadow-card); transition: transform .35s ease, box-shadow .35s ease; }
.spk-why-card:hover:not(#spk-a) { transform: translateY(-4px); box-shadow: var(--spk-shadow-glow); }
.spk-why-media:not(#spk-a) { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.spk-why-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.spk-why-card:hover .spk-why-media img:not(#spk-a) { transform: scale(1.05); }
.spk-why-media:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,10,5,.55) 0%, rgba(14,10,5,0) 55%); }
.spk-why-body:not(#spk-a) { position: relative; padding: 0 1.5rem 1.75rem; }
.spk-why-icon:not(#spk-a) { position: relative; z-index: 1; margin-top: -1.75rem; margin-bottom: 1rem; width: 3.5rem; height: 3.5rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-night); color: var(--spk-primary-glow); box-shadow: 0 0 0 .35rem #FBF4E2, var(--spk-shadow-md); }
.spk-why-icon svg:not(#spk-a) { width: 1.6rem; height: 1.6rem; }
.spk-why-title.spk-why-title:not(#spk-a) { margin: 0 0 .6rem; font-size: 1.375rem; font-weight: 700; line-height: 1.5; }
.spk-why-text:not(#spk-a) { margin: 0; color: var(--spk-muted-fg); font-size: .9375rem; line-height: 1.8; }
@media (min-width: 860px) { .spk-why-grid:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }

/* ---------------------------------------------------------------------
   33. READY — three instant-booking cards + steps strip
   --------------------------------------------------------------------- */
.spk-ready-grid:not(#spk-a) { display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr); }
.spk-ready-card:not(#spk-a) { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-card); color: var(--spk-fg); transition: transform .35s ease, box-shadow .35s ease; }
.spk-ready-card:hover:not(#spk-a) { transform: translateY(-5px); box-shadow: var(--spk-shadow-glow); }
.spk-ready-media:not(#spk-a) { position: relative; aspect-ratio: 4 / 3.4; overflow: hidden; background: var(--spk-black); }
.spk-ready-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.spk-ready-card:hover .spk-ready-media img:not(#spk-a) { transform: scale(1.05); }
.spk-ready-media:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,10,5,.6) 0%, rgba(14,10,5,0) 45%); }
.spk-ready-badge:not(#spk-a) { position: absolute; z-index: 1; top: 1rem; inset-inline-start: 1rem; display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .8rem; border-radius: 999px; background: rgba(14,10,5,.72); backdrop-filter: blur(6px); color: var(--spk-primary-glow); font-size: .8125rem; font-weight: 700; }
.spk-ready-badge .spk-i:not(#spk-a) { width: 1rem; height: 1rem; }
.spk-ready-body:not(#spk-a) { flex: 1 1 auto; display: flex; flex-direction: column; padding: 1.5rem; gap: 1rem; }
.spk-ready-title.spk-ready-title:not(#spk-a) { margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.4; }
.spk-ready-inc.spk-ready-inc:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .4rem; }
.spk-ready-inc li:not(#spk-a) { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .7rem; border-radius: 999px; background: #FBF1D6; font-size: .8125rem; font-weight: 600; }
.spk-ready-inc .spk-i:not(#spk-a) { width: .9rem; height: .9rem; color: var(--spk-gold-deep); }
.spk-ready-foot:not(#spk-a) { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-top: 1rem; border-top: 1px solid var(--spk-border); }
.spk-ready-price:not(#spk-a) { margin: 0; display: flex; align-items: baseline; gap: .35rem; }
.spk-ready-price .spk-price:not(#spk-a) { font-size: 2.75rem; }
.spk-ready-price small:not(#spk-a) { font-weight: 700; color: var(--spk-accent); }
@media (min-width: 900px) { .spk-ready-grid:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }

.spk-steps-strip.spk-steps-strip:not(#spk-a) { display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr); margin-top: 2.5rem; counter-reset: spk-step; }
.spk-steps-strip .spk-step:not(#spk-a) { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; border-radius: var(--spk-radius); background: rgba(255,255,255,.7); border: 1px solid var(--spk-border); counter-increment: spk-step; }
.spk-step-icon:not(#spk-a) { flex: 0 0 auto; width: 3rem; height: 3rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-accent); color: var(--spk-black); }
.spk-step-icon svg:not(#spk-a) { width: 1.4rem; height: 1.4rem; }
.spk-step-title.spk-step-title:not(#spk-a) { margin: 0 0 .25rem; font-size: 1.0625rem; font-weight: 700; line-height: 1.5; }
.spk-step-title:not(#spk-a)::before { content: counter(spk-step) ". "; color: var(--spk-gold-deep); }
.spk-step-desc:not(#spk-a) { margin: 0; font-size: .875rem; color: var(--spk-muted-fg); }
@media (min-width: 800px) { .spk-steps-strip.spk-steps-strip:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }

/* ---------------------------------------------------------------------
   34. COUNTERS — outlined gold numbers counting up on the night gradient
   --------------------------------------------------------------------- */
.spk-counts:not(#spk-a) { padding-block: 3.5rem; }
.spk-counts-grid:not(#spk-a) { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 2rem 1rem; text-align: center; }
.spk-count:not(#spk-a) { display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.spk-count + .spk-count:not(#spk-a) { position: relative; }
.spk-count-num:not(#spk-a) { display: inline-flex; align-items: baseline; gap: .35rem; }
.spk-count-num .spk-price:not(#spk-a) { font-size: clamp(3rem, 2rem + 3.6vw, 4.75rem); }
.spk-count-num small:not(#spk-a) { color: var(--spk-primary-glow); font-weight: 700; font-family: var(--spk-font-display); font-size: 1.25rem; }
.spk-count-label:not(#spk-a) { font-size: .9375rem; font-weight: 600; color: var(--spk-night-muted); }
@media (min-width: 800px) {
	.spk-counts:not(#spk-a) { padding-block: 4.5rem; }
	.spk-counts-grid:not(#spk-a) { grid-template-columns: repeat(4, minmax(0,1fr)); }
	.spk-count + .spk-count:not(#spk-a)::before { content: ""; position: absolute; inset-inline-start: -.5rem; top: 15%; height: 70%; width: 1px; background: linear-gradient(180deg, transparent, rgba(201,162,80,.6), transparent); }
}
.spk-counts-tight:not(#spk-a) { margin-block: 1rem; }

/* ---------------------------------------------------------------------
   35. PACKAGE CARDS — home slider + packages grid
   --------------------------------------------------------------------- */
.spk-pkg-card:not(#spk-a) { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-card); color: var(--spk-fg); transition: transform .35s ease, box-shadow .35s ease; }
.spk-pkg-card:hover:not(#spk-a) { transform: translateY(-5px); box-shadow: var(--spk-shadow-glow); }
.spk-pkg-card-media:not(#spk-a) { position: relative; aspect-ratio: 4 / 4.2; overflow: hidden; background: var(--spk-gradient-night); }
.spk-pkg-card-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s ease; }
.spk-pkg-card:hover .spk-pkg-card-media img:not(#spk-a) { transform: scale(1.05); }
.spk-pkg-card-media:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,10,5,.55) 0%, rgba(14,10,5,0) 40%); }
.spk-pkg-card-icon:not(#spk-a) { position: absolute; z-index: 1; bottom: 1rem; inset-inline-start: 1rem; width: 2.75rem; height: 2.75rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-gold); color: var(--spk-black); }
.spk-pkg-ph:not(#spk-a) { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; color: var(--spk-primary-glow); background-image: radial-gradient(rgba(201,162,80,.35) 1px, transparent 1.5px); background-size: 22px 22px; }
.spk-pkg-ph .spk-i:not(#spk-a) { width: 3.5rem; height: 3.5rem; stroke-width: 1.1; }
.spk-pkg-ph small:not(#spk-a) { font-size: .8125rem; font-weight: 600; color: var(--spk-night-muted); }
.spk-pkg-card-body:not(#spk-a) { flex: 1 1 auto; display: flex; flex-direction: column; gap: .75rem; padding: 1.35rem 1.35rem 1.25rem; }
.spk-pkg-card-title.spk-pkg-card-title:not(#spk-a) { margin: 0; font-size: 1.375rem; font-weight: 700; line-height: 1.45; }
.spk-pkg-card-lead:not(#spk-a) { margin: 0; font-size: .875rem; color: var(--spk-muted-fg); line-height: 1.75; }
.spk-pkg-card-inc.spk-pkg-card-inc:not(#spk-a) { display: flex; flex-direction: column; gap: .3rem; }
.spk-pkg-card-inc li:not(#spk-a) { display: flex; gap: .4rem; align-items: center; font-size: .875rem; font-weight: 600; }
.spk-pkg-card-inc .spk-i:not(#spk-a) { width: .95rem; height: .95rem; color: var(--spk-gold-deep); }
.spk-pkg-card-foot:not(#spk-a) { margin-top: auto; padding-top: .9rem; border-top: 1px solid var(--spk-border); display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.spk-pkg-card-price:not(#spk-a) { margin: 0; display: flex; flex-direction: column; font-family: var(--spk-font-display); font-weight: 700; font-size: 1.5rem; line-height: 1.2; color: var(--spk-accent); }
.spk-pkg-card-price small:not(#spk-a) { font-family: var(--spk-font); font-size: .75rem; font-weight: 600; color: var(--spk-muted-fg); }
.spk-pkg-card-go:not(#spk-a) { display: inline-flex; align-items: center; gap: .35rem; font-size: .875rem; font-weight: 700; color: var(--spk-accent); }
.spk-pkg-card-go .spk-i:not(#spk-a) { width: 1rem; height: 1rem; transition: transform .25s ease; }
.spk-pkg-card:hover .spk-pkg-card-go .spk-i:not(#spk-a) { transform: translateX(-4px); }
.spk-pkgs-grid:not(#spk-a) { display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr); }
@media (min-width: 640px) { .spk-pkgs-grid:not(#spk-a) { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .spk-pkgs-grid:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }

.spk-pkgs:not(#spk-a) { background: linear-gradient(180deg, #FFFCF5 0%, #F8EDD2 100%); }
.spk-slider:not(#spk-a) { position: relative; }
.spk-slider-track:not(#spk-a) { display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .5rem .25rem 1.5rem; margin-inline: -.25rem; }
.spk-slider-track:not(#spk-a)::-webkit-scrollbar { display: none; }
.spk-slide:not(#spk-a) { flex: 0 0 min(82%, 20rem); scroll-snap-align: start; }
.spk-slide-more:not(#spk-a) { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; padding: 2rem 1.5rem; text-align: center; border-radius: var(--spk-radius-lg); background: var(--spk-gradient-night); color: var(--spk-night-fg); box-shadow: var(--spk-shadow-card); }
.spk-slide-more-num .spk-price:not(#spk-a) { font-size: 4.5rem; -webkit-text-stroke-color: var(--spk-primary-glow); }
.spk-slide-more-text:not(#spk-a) { font-weight: 600; line-height: 1.8; color: var(--spk-night-muted); }
.spk-slider-nav:not(#spk-a) { display: flex; justify-content: flex-end; margin-top: .5rem; }
@media (min-width: 1024px) { .spk-slide:not(#spk-a) { flex-basis: calc((100% - 3 * 1.25rem) / 3.4); } }
.spk-arrows:not(#spk-a) { display: inline-flex; gap: .5rem; direction: ltr; }
.spk-arrow:not(#spk-a) { width: 3rem; height: 3rem; border-radius: 999px; border: 1px solid var(--spk-gold-deep); background: var(--spk-white); color: var(--spk-accent); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: var(--spk-transition); }
.spk-arrow:hover:not(#spk-a) { background: var(--spk-gradient-primary); border-color: transparent; color: var(--spk-white); }
.spk-arrow .spk-i:not(#spk-a) { width: 1.15rem; height: 1.15rem; }

/* ---------------------------------------------------------------------
   36. SPECIAL PACKAGES — night section, WhatsApp + enquiry form
   --------------------------------------------------------------------- */
.spk-special-grid:not(#spk-a) { display: grid; gap: 2.5rem; grid-template-columns: minmax(0,1fr); align-items: start; }
.spk-special-text:not(#spk-a) { margin: 1rem 0 1.5rem; color: var(--spk-night-muted); max-width: 32rem; }
.spk-special-list.spk-special-list:not(#spk-a) { display: grid; gap: .65rem; margin-bottom: 2rem; }
.spk-special-list li:not(#spk-a) { display: flex; gap: .6rem; align-items: flex-start; font-weight: 600; color: var(--spk-white); }
.spk-special-list .spk-i:not(#spk-a) { margin-top: .35em; width: 1rem; height: 1rem; color: var(--spk-primary); }
.spk-special-media:not(#spk-a) { display: none; border-radius: var(--spk-radius-lg); overflow: hidden; border: 1px solid rgba(201,162,80,.4); aspect-ratio: 16 / 10; }
.spk-special-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-wa:not(#spk-a) { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-radius: var(--spk-radius-lg); background: linear-gradient(135deg, #1F8E4E 0%, #25B262 100%); color: var(--spk-white); box-shadow: 0 18px 30px -18px rgba(31,142,78,.8); transition: var(--spk-transition); }
.spk-wa:hover:not(#spk-a) { transform: translateY(-2px); }
.spk-wa > .spk-i:not(#spk-a) { width: 2.25rem; height: 2.25rem; }
.spk-wa span:not(#spk-a) { display: flex; flex-direction: column; gap: .3rem; }
.spk-wa strong:not(#spk-a) { font-size: 1.0625rem; }
.spk-wa .spk-pending:not(#spk-a) { border-color: rgba(255,255,255,.7); color: var(--spk-white); }
.spk-or:not(#spk-a) { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0; font-size: .875rem; font-weight: 700; color: var(--spk-night-muted); }
.spk-or:not(#spk-a)::before, .spk-or:not(#spk-a)::after { content: ""; flex: 1 1 auto; height: 1px; background: rgba(201,162,80,.4); }
.spk-form-light:not(#spk-a) { color: var(--spk-fg); }
@media (min-width: 1000px) { .spk-special-grid:not(#spk-a) { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 4rem; } .spk-special-media:not(#spk-a) { display: block; } }

/* ---------------------------------------------------------------------
   37. MOSAIC (home "from our work") + CTA FAN
   --------------------------------------------------------------------- */
.spk-mosaic:not(#spk-a) { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 11rem; }
.spk-mosaic-item:not(#spk-a) { position: relative; overflow: hidden; border-radius: var(--spk-radius); background: var(--spk-black); }
.spk-mosaic-item:first-child:not(#spk-a) { grid-row: span 2; }
.spk-mosaic-item img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s ease; }
.spk-mosaic-item:hover img:not(#spk-a) { transform: scale(1.06); }
.spk-mosaic-item:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,10,5,.75) 0%, rgba(14,10,5,0) 50%); }
.spk-mosaic-cap:not(#spk-a) { position: absolute; z-index: 1; inset-inline: 1rem; bottom: .9rem; display: flex; flex-direction: column; gap: .15rem; color: var(--spk-white); font-weight: 700; font-size: .9375rem; line-height: 1.5; }
.spk-mosaic-cap small:not(#spk-a) { font-size: .75rem; color: var(--spk-primary-glow); }
@media (min-width: 900px) {
	.spk-mosaic:not(#spk-a) { grid-template-columns: 1.3fr 1fr 1fr; grid-auto-rows: 14rem; gap: 1rem; }
}

.spk-ctafan:not(#spk-a) { padding-block: 4.5rem; }
.spk-ctafan-grid:not(#spk-a) { display: grid; gap: 3rem; grid-template-columns: minmax(0,1fr); align-items: center; }
.spk-ctafan-text:not(#spk-a) { margin: 1rem 0 2rem; max-width: 30rem; color: var(--spk-night-muted); font-size: 1.0625rem; }
.spk-cta-actions:not(#spk-a) { display: flex; flex-wrap: wrap; gap: 1rem; }
.spk-fan:not(#spk-a) { position: relative; height: 20rem; max-width: 30rem; width: 100%; margin-inline: auto; }
.spk-fan-item:not(#spk-a) { position: absolute; top: 50%; inset-inline-start: 50%; width: 52%; aspect-ratio: 3 / 4; margin: 0; border-radius: var(--spk-radius-lg); overflow: hidden; border: 3px solid rgba(240,221,166,.9); box-shadow: 0 30px 50px -25px rgba(0,0,0,.9); transform: translate(50%, -50%) rotate(calc((var(--i) - 1) * 9deg)) translateX(calc((var(--i) - 1) * -42%)); transition: transform .5s ease; }
.spk-fan-item:nth-child(2):not(#spk-a) { z-index: 2; }
.spk-fan-item img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-ctafan:hover .spk-fan-item:not(#spk-a) { transform: translate(50%, -50%) rotate(calc((var(--i) - 1) * 12deg)) translateX(calc((var(--i) - 1) * -52%)); }
@media (min-width: 900px) { .spk-ctafan-grid:not(#spk-a) { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } .spk-fan:not(#spk-a) { height: 24rem; } }

/* ---------------------------------------------------------------------
   38. WORKS — filter chips + masonry with natural ratios + lightbox
   --------------------------------------------------------------------- */
.spk-works-bar:not(#spk-a) { position: sticky; top: calc(var(--spk-head-h) + .5rem); z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; padding: .5rem; border-radius: 999px; background: rgba(255,252,245,.92); backdrop-filter: blur(8px); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-md); }
.spk-filter:not(#spk-a) { display: flex; gap: .35rem; overflow-x: auto; scrollbar-width: none; }
.spk-filter:not(#spk-a)::-webkit-scrollbar { display: none; }
.spk-filter-btn:not(#spk-a) { flex: 0 0 auto; padding: .5rem 1rem; border-radius: 999px; border: 0; background: transparent; cursor: pointer; font: 700 .875rem/1.5 var(--spk-font); color: var(--spk-fg); white-space: nowrap; transition: var(--spk-transition); }
.spk-filter-btn:hover:not(#spk-a) { color: var(--spk-accent); }
.spk-filter-btn[aria-pressed="true"]:not(#spk-a) { background: var(--spk-gradient-primary); color: var(--spk-white); }
.spk-works-count:not(#spk-a) { flex: 0 0 auto; margin: 0; padding-inline: .75rem; font-size: .8125rem; font-weight: 700; color: var(--spk-muted-fg); }
.spk-masonry:not(#spk-a) { columns: 2; column-gap: .75rem; }
.spk-work:not(#spk-a) { break-inside: avoid; margin: 0 0 .75rem; position: relative; overflow: hidden; border-radius: var(--spk-radius); background: var(--spk-black); }
.spk-work[hidden]:not(#spk-a) { display: none; }
.spk-work-open:not(#spk-a) { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.spk-work-open img:not(#spk-a) { width: 100%; height: auto; display: block; transition: transform .7s ease; }
.spk-work:hover .spk-work-open img:not(#spk-a) { transform: scale(1.04); }
.spk-work-zoom:not(#spk-a) { position: absolute; top: .75rem; inset-inline-end: .75rem; width: 2.25rem; height: 2.25rem; padding: .5rem; border-radius: 999px; background: rgba(14,10,5,.6); color: var(--spk-white); opacity: 0; transition: opacity .3s ease; }
.spk-work:hover .spk-work-zoom:not(#spk-a) { opacity: 1; }
.spk-work figcaption:not(#spk-a) { position: absolute; inset-inline: 0; bottom: 0; padding: 2.5rem .9rem .8rem; display: flex; flex-direction: column; gap: .15rem; background: linear-gradient(to top, rgba(14,10,5,.85), rgba(14,10,5,0)); color: var(--spk-white); pointer-events: none; }
.spk-work figcaption strong:not(#spk-a) { font-size: .9375rem; line-height: 1.5; }
.spk-work figcaption small:not(#spk-a) { font-size: .75rem; color: rgba(255,255,255,.8); }
.spk-work-tag:not(#spk-a) { align-self: flex-start; padding: .15rem .55rem; border-radius: 999px; background: var(--spk-gradient-gold); color: var(--spk-black); font-size: .6875rem; font-weight: 800; }
@media (min-width: 768px) { .spk-masonry:not(#spk-a) { columns: 3; column-gap: 1rem; } .spk-work:not(#spk-a) { margin-bottom: 1rem; } }
@media (min-width: 1200px) { .spk-masonry:not(#spk-a) { columns: 4; } }
.spk-works-cta:not(#spk-a) { margin-top: 2.5rem; padding: 1.75rem; border-radius: var(--spk-radius-lg); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; background: var(--spk-gradient-card); border: 1px solid var(--spk-border); }
.spk-works-cta p:not(#spk-a) { margin: 0; font-weight: 700; font-size: 1.0625rem; }
.spk-lightbox:not(#spk-a) { max-width: min(92vw, 60rem); max-height: 92vh; padding: 0; border: 0; border-radius: var(--spk-radius-lg); background: var(--spk-black); color: var(--spk-white); overflow: hidden; }
.spk-lightbox::backdrop:not(#spk-a) { background: rgba(14,10,5,.85); }
.spk-lightbox img:not(#spk-a) { display: block; max-width: 100%; max-height: 80vh; margin-inline: auto; }
.spk-lightbox p:not(#spk-a) { margin: 0; padding: .75rem 1.25rem; font-weight: 700; }
.spk-lightbox-close:not(#spk-a) { position: absolute; top: .75rem; inset-inline-end: .75rem; width: 2.5rem; height: 2.5rem; border-radius: 999px; border: 0; background: rgba(255,255,255,.18); color: var(--spk-white); cursor: pointer; }

/* ---------------------------------------------------------------------
   39. PACKAGE PAGE — product block, configurator, summary, buy bar
   --------------------------------------------------------------------- */
.spk-pkg-bar:not(#spk-a) { padding: calc(var(--spk-head-h) + 1rem) 0 1rem; background: var(--spk-gradient-night); }
.spk-pkg-bar .spk-crumbs:not(#spk-a) { color: var(--spk-night-fg); }
.spk-pkg:not(#spk-a) { padding-top: 2.5rem; }
.spk-pkg-grid:not(#spk-a) { display: grid; gap: 2rem; grid-template-columns: minmax(0,1fr); align-items: start; }
.spk-pkg-media:not(#spk-a) { display: flex; flex-direction: column; gap: .75rem; }
.spk-pkg-main:not(#spk-a) { position: relative; aspect-ratio: 4 / 4.4; border-radius: var(--spk-radius-lg); overflow: hidden; background: var(--spk-gradient-night); box-shadow: var(--spk-shadow-card); }
.spk-pkg-main img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-pkg-main.spk-placeholder:not(#spk-a) { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; text-align: center; color: var(--spk-primary-glow); font-weight: 600; background-image: radial-gradient(rgba(201,162,80,.35) 1px, transparent 1.5px), var(--spk-gradient-night); background-size: 22px 22px, auto; }
.spk-pkg-main.spk-placeholder .spk-i:not(#spk-a) { width: 4rem; height: 4rem; stroke-width: 1.1; }
.spk-thumbs:not(#spk-a) { display: flex; gap: .6rem; overflow-x: auto; scrollbar-width: none; }
.spk-thumb:not(#spk-a) { flex: 0 0 4.5rem; height: 4.5rem; padding: 0; border-radius: var(--spk-radius); overflow: hidden; border: 2px solid transparent; cursor: pointer; background: none; opacity: .7; transition: var(--spk-transition); }
.spk-thumb img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-thumb[aria-pressed="true"]:not(#spk-a), .spk-thumb:hover:not(#spk-a) { opacity: 1; border-color: var(--spk-primary); }
.spk-pkg-info:not(#spk-a) { padding: 1.75rem 1.25rem; border-radius: var(--spk-radius-lg); background: var(--spk-gradient-card); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-card); transition: border-color .3s ease, box-shadow .3s ease; }
.spk-pkg.is-on .spk-pkg-info:not(#spk-a) { border-color: var(--spk-primary); box-shadow: 0 0 0 3px rgba(201,162,80,.35), var(--spk-shadow-card); }
.spk-pkg-title.spk-pkg-title:not(#spk-a) { margin: .75rem 0 .75rem; font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem); font-weight: 700; line-height: 1.4; }
.spk-pkg-lead:not(#spk-a) { margin: 0 0 1.25rem; color: var(--spk-muted-fg); }
.spk-pkg-price:not(#spk-a) { margin: 0 0 1.25rem; display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; }
.spk-pkg-price small:not(#spk-a) { font-weight: 700; color: var(--spk-muted-fg); }
.spk-pkg-price strong:not(#spk-a) { font-family: var(--spk-font-display); font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem); line-height: 1.1; color: var(--spk-accent); }
.spk-pkg-inc:not(#spk-a) { margin-bottom: 1.25rem; }
.spk-pkg-inc ul:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .45rem; }
.spk-pkg-inc li:not(#spk-a) { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .85rem; border-radius: 999px; background: var(--spk-white); border: 1px solid var(--spk-border); font-size: .875rem; font-weight: 600; }
.spk-pkg-inc .spk-i:not(#spk-a) { width: .95rem; height: .95rem; color: var(--spk-gold-deep); }
.spk-pkg-choice:not(#spk-a) { margin-bottom: 1.25rem; }
.spk-segs:not(#spk-a) { display: inline-flex; flex-wrap: wrap; gap: .35rem; padding: .3rem; border-radius: 999px; background: var(--spk-white); border: 1px solid var(--spk-border); }
.spk-seg:not(#spk-a) { padding: .5rem 1.1rem; border: 0; border-radius: 999px; background: transparent; cursor: pointer; font: 700 .9375rem/1.4 var(--spk-font); color: var(--spk-fg); transition: var(--spk-transition); }
.spk-seg[aria-pressed="true"]:not(#spk-a) { background: var(--spk-gradient-primary); color: var(--spk-white); }
.spk-choose-main:not(#spk-a) { width: 100%; justify-content: center; padding-block: 1rem; font-size: 1.0625rem; }
.spk-choose[aria-pressed="true"]:not(#spk-a) { background: var(--spk-gradient-gold) !important; color: var(--spk-black) !important; }
.spk-choose.is-nudge:not(#spk-a) { animation: spk-nudge .7s ease 2; }
@keyframes spk-nudge { 0%, 100% { transform: none; box-shadow: none; } 40% { transform: scale(1.04); box-shadow: 0 0 0 8px rgba(201,162,80,.35); } }
.spk-pkg-note:not(#spk-a) { margin: 1rem 0 0; display: flex; gap: .5rem; align-items: flex-start; font-size: .8125rem; color: var(--spk-muted-fg); }
.spk-pkg-note .spk-i:not(#spk-a) { width: 1rem; height: 1rem; margin-top: .2rem; color: var(--spk-gold-deep); }
.spk-pkg.is-on .spk-pkg-note:not(#spk-a) { display: none; }
.spk-bases:not(#spk-a) { display: grid; gap: .75rem; }
.spk-base:not(#spk-a) { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem 1rem; align-items: center; padding: 1rem 1.1rem; border-radius: var(--spk-radius); background: var(--spk-white); border: 1.5px solid var(--spk-border); transition: var(--spk-transition); }
.spk-base.is-picked:not(#spk-a) { border-color: var(--spk-primary); background: linear-gradient(135deg, #FFFFFF 0%, #FBF1D6 100%); box-shadow: 0 0 0 3px rgba(201,162,80,.3); }
.spk-base-name.spk-base-name:not(#spk-a) { margin: 0; font-family: var(--spk-font); font-size: 1rem; font-weight: 700; line-height: 1.5; }
.spk-base-desc:not(#spk-a) { margin: .2rem 0 0; font-size: .8125rem; color: var(--spk-muted-fg); }
.spk-base-price:not(#spk-a) { margin: 0; font-family: var(--spk-font-display); font-weight: 700; font-size: 1.25rem; color: var(--spk-accent); }
.spk-base .spk-choose:not(#spk-a) { grid-column: 1 / -1; justify-content: center; }
@media (min-width: 560px) { .spk-base:not(#spk-a) { grid-template-columns: minmax(0,1fr) auto auto; } .spk-base .spk-choose:not(#spk-a) { grid-column: auto; } }
@media (min-width: 1000px) {
	.spk-pkg-grid:not(#spk-a) { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 3rem; }
	.spk-pkg-media:not(#spk-a) { position: sticky; top: calc(var(--spk-head-h) + 1rem); }
	.spk-pkg-info:not(#spk-a) { padding: 2.25rem 2rem; }
}

.spk-cfg:not(#spk-a) { display: grid; gap: 2rem; grid-template-columns: minmax(0,1fr); margin-top: 3rem; align-items: start; }
.spk-cfg-groups:not(#spk-a) { position: relative; display: flex; flex-direction: column; gap: 2.75rem; }
.spk-lock-note:not(#spk-a) { display: none; align-items: center; gap: .6rem; padding: .9rem 1.1rem; border-radius: var(--spk-radius); background: var(--spk-gradient-night); color: var(--spk-primary-glow); font-weight: 700; }
.spk-lock-note .spk-i:not(#spk-a) { color: var(--spk-primary); }
.spk-cfg-groups[data-locked] .spk-lock-note:not(#spk-a) { display: flex; position: sticky; top: calc(var(--spk-head-h) + .75rem); z-index: 4; }
.spk-cfg-groups[data-locked] .spk-cfg-group:not(#spk-a) { opacity: .5; filter: saturate(.6); }
.spk-cfg-groups .spk-cfg-group:not(#spk-a) { transition: opacity .4s ease, filter .4s ease; scroll-margin-top: calc(var(--spk-head-h) + 1rem); }
.spk-cfg-group-head:not(#spk-a) { margin-bottom: 1.25rem; }
.spk-cfg-group-title.spk-cfg-group-title:not(#spk-a) { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.4; }
.spk-cfg-group-title .spk-i:not(#spk-a) { width: 1.6rem; height: 1.6rem; padding: .3rem; border-radius: 999px; background: var(--spk-gradient-accent); color: var(--spk-black); }
.spk-group-note:not(#spk-a) { margin: .5rem 0 0; font-size: .875rem; color: var(--spk-muted-fg); }
@media (min-width: 1100px) { .spk-cfg:not(#spk-a) { grid-template-columns: minmax(0,1fr) 22rem; gap: 2.5rem; } }

.spk-themes:not(#spk-a) { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.spk-theme:not(#spk-a) { position: relative; display: flex; flex-direction: column; padding: 0; overflow: hidden; border-radius: var(--spk-radius); border: 2px solid transparent; background: var(--spk-white); box-shadow: var(--spk-shadow-md); cursor: pointer; text-align: start; transition: var(--spk-transition); }
.spk-theme-media:not(#spk-a) { display: block; aspect-ratio: 1; overflow: hidden; background: var(--spk-gradient-night); }
.spk-theme-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.spk-theme:hover .spk-theme-media img:not(#spk-a) { transform: scale(1.06); }
.spk-theme-tile:not(#spk-a) { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--spk-primary-glow); }
.spk-theme-tile .spk-i:not(#spk-a) { width: 2.75rem; height: 2.75rem; stroke-width: 1.2; }
.spk-theme-name:not(#spk-a) { display: block; padding: .65rem .75rem; font-weight: 700; font-size: .9375rem; line-height: 1.5; color: var(--spk-fg); }
.spk-theme-check:not(#spk-a), .spk-opt-check:not(#spk-a) { position: absolute; top: .6rem; inset-inline-start: .6rem; width: 1.9rem; height: 1.9rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-gold); color: var(--spk-black); transform: scale(0); transition: transform .3s cubic-bezier(.3,1.6,.5,1); }
.spk-theme-check .spk-i:not(#spk-a), .spk-opt-check .spk-i:not(#spk-a) { width: 1.1rem; height: 1.1rem; stroke-width: 2.4; }
.spk-theme.is-picked:not(#spk-a) { border-color: var(--spk-primary); box-shadow: 0 0 0 3px rgba(201,162,80,.35), var(--spk-shadow-md); }
.spk-theme.is-picked .spk-theme-check:not(#spk-a), .spk-opt.is-added .spk-opt-check:not(#spk-a) { transform: scale(1); }
.spk-theme-other:not(#spk-a) { margin-top: 1rem; padding: 1rem 1.1rem; border-radius: var(--spk-radius); background: var(--spk-white); border: 1px dashed var(--spk-gold-deep); }
.spk-theme-other label:not(#spk-a) { display: block; margin-bottom: .5rem; font-weight: 700; font-size: .9375rem; }
.spk-theme-other input:not(#spk-a) { width: 100%; padding: .7rem .9rem; border-radius: var(--spk-radius); border: 1px solid var(--spk-border); font: inherit; background: #FFFCF5; }
.spk-theme-other small:not(#spk-a) { display: block; margin-top: .4rem; color: var(--spk-muted-fg); font-size: .8125rem; }
@media (min-width: 640px) { .spk-themes:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }

.spk-opts:not(#spk-a) { display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr); }
.spk-opts[hidden]:not(#spk-a) { display: none; }
.spk-opt:not(#spk-a) { position: relative; display: grid; grid-template-columns: 7.5rem minmax(0,1fr); overflow: hidden; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 2px solid transparent; box-shadow: var(--spk-shadow-md); transition: border-color .3s ease, box-shadow .3s ease, background .3s ease; scroll-margin-top: calc(var(--spk-head-h) + 1rem); }
.spk-opt.is-added:not(#spk-a) { border-color: var(--spk-primary); background: linear-gradient(135deg, #FFFFFF 0%, #FBF1D6 100%); box-shadow: 0 0 0 3px rgba(201,162,80,.3), var(--spk-shadow-md); }
.spk-opt-media:not(#spk-a) { position: relative; overflow: hidden; background: var(--spk-gradient-night); }
.spk-opt-media img:not(#spk-a) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-opt-tile:not(#spk-a) { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; color: var(--spk-primary-glow); }
.spk-opt-tile .spk-i:not(#spk-a) { width: 2.25rem; height: 2.25rem; stroke-width: 1.2; }
.spk-opt-tile small:not(#spk-a) { font-size: .6875rem; color: var(--spk-night-muted); }
.spk-opt-body:not(#spk-a) { padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .45rem; min-width: 0; }
.spk-opt-title.spk-opt-title:not(#spk-a) { margin: 0; font-family: var(--spk-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.5; }
.spk-opt-desc:not(#spk-a) { margin: 0; font-size: .8125rem; color: var(--spk-muted-fg); line-height: 1.7; }
.spk-opt-price:not(#spk-a) { margin: 0; display: flex; align-items: baseline; gap: .4rem; font-family: var(--spk-font-display); font-weight: 700; font-size: 1.25rem; color: var(--spk-accent); }
.spk-opt-price small:not(#spk-a) { font-family: var(--spk-font); font-size: .75rem; font-weight: 600; color: var(--spk-muted-fg); }
.spk-opt-actions:not(#spk-a) { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.spk-add:not(#spk-a) { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.5rem; padding: .45rem 1.1rem; border-radius: 999px; border: 1.5px solid var(--spk-gold-deep); background: var(--spk-white); color: var(--spk-accent); cursor: pointer; font: 700 .9375rem/1.3 var(--spk-font); transition: var(--spk-transition); }
.spk-add:hover:not(#spk-a) { background: #FBF1D6; }
.spk-add[aria-pressed="true"]:not(#spk-a) { background: var(--spk-gradient-primary); border-color: transparent; color: var(--spk-white); }
.spk-add-wide:not(#spk-a) { width: 100%; }
.spk-opt-remove:not(#spk-a) { display: inline-flex; align-items: center; gap: .25rem; padding: .3rem .6rem; border: 0; border-radius: 999px; background: transparent; color: var(--spk-err); cursor: pointer; font: 700 .8125rem/1.4 var(--spk-font); }
.spk-opt-remove .spk-i:not(#spk-a) { width: .9rem; height: .9rem; }
.spk-opt-remove[hidden]:not(#spk-a) { display: none; }
.spk-stepper:not(#spk-a) { display: inline-flex; align-items: center; border-radius: 999px; border: 1.5px solid var(--spk-gold-deep); background: var(--spk-white); overflow: hidden; direction: ltr; }
.spk-stepper[hidden]:not(#spk-a) { display: none; }
.spk-stepper button:not(#spk-a) { width: 2.4rem; height: 2.4rem; border: 0; background: transparent; cursor: pointer; font: 700 1.2rem/1 var(--spk-font); color: var(--spk-accent); }
.spk-stepper button:hover:not(#spk-a) { background: #FBF1D6; }
.spk-stepper output:not(#spk-a) { min-width: 2.2rem; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.spk-stepper-sm button:not(#spk-a) { width: 1.9rem; height: 1.9rem; font-size: 1rem; }
.spk-stepper-sm output:not(#spk-a) { min-width: 1.6rem; font-size: .875rem; }
.spk-variants:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .4rem; }
.spk-variant:not(#spk-a) { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .05rem; padding: .45rem .8rem; border-radius: var(--spk-radius); border: 1.5px solid var(--spk-border); background: var(--spk-white); cursor: pointer; text-align: start; font: 700 .875rem/1.4 var(--spk-font); color: var(--spk-fg); transition: var(--spk-transition); }
.spk-variant b:not(#spk-a) { font-weight: 700; font-size: .8125rem; color: var(--spk-accent); }
.spk-variant:hover:not(#spk-a) { border-color: var(--spk-gold-deep); }
.spk-variant[aria-pressed="true"]:not(#spk-a) { background: var(--spk-gradient-primary); border-color: transparent; color: var(--spk-white); }
.spk-variant[aria-pressed="true"] b:not(#spk-a) { color: var(--spk-primary-glow); }
.spk-opt.is-flash:not(#spk-a), .spk-box.is-flash:not(#spk-a), .spk-cfg-group.is-flash:not(#spk-a) { animation: spk-flash 1.2s ease; }
@keyframes spk-flash { 0%, 100% { box-shadow: var(--spk-shadow-md); } 30% { box-shadow: 0 0 0 6px rgba(201,162,80,.55), var(--spk-shadow-md); } }
@media (min-width: 640px) { .spk-opts:not(#spk-a) { grid-template-columns: repeat(2, minmax(0,1fr)); } .spk-opt:not(#spk-a) { grid-template-columns: minmax(0,1fr); } .spk-opt-media:not(#spk-a) { aspect-ratio: 4 / 3; } }
@media (min-width: 640px) { .spk-opt-var .spk-opt-media:not(#spk-a) { aspect-ratio: 16 / 9; } }

.spk-gift-hint:not(#spk-a) { margin: 0 0 1rem; padding: .75rem 1rem; border-radius: var(--spk-radius); background: #FBF1D6; border: 1px dashed var(--spk-gold-deep); font-weight: 600; font-size: .875rem; }
.spk-gift-hint[hidden]:not(#spk-a) { display: none; }
.spk-box:not(#spk-a) { display: grid; grid-template-columns: minmax(0,1fr); margin-top: 1rem; overflow: hidden; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 2px solid transparent; box-shadow: var(--spk-shadow-md); transition: var(--spk-transition); }
.spk-box.is-added:not(#spk-a) { border-color: var(--spk-primary); box-shadow: 0 0 0 3px rgba(201,162,80,.3), var(--spk-shadow-md); }
.spk-box-media:not(#spk-a) { aspect-ratio: 16 / 9; overflow: hidden; }
.spk-box-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-box-body:not(#spk-a) { padding: 1.25rem; display: flex; flex-direction: column; gap: .85rem; }
.spk-box-tag:not(#spk-a) { display: inline-block; margin-inline-start: .4rem; padding: .1rem .55rem; border-radius: 999px; background: var(--spk-gradient-accent); font-size: .75rem; font-weight: 800; vertical-align: middle; }
.spk-chipbtns:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .45rem; }
.spk-chipbtn:not(#spk-a) { padding: .45rem .9rem; border-radius: 999px; border: 1.5px solid var(--spk-border); background: #FFFCF5; cursor: pointer; font: 700 .875rem/1.4 var(--spk-font); color: var(--spk-fg); transition: var(--spk-transition); }
.spk-chipbtn b:not(#spk-a) { font-weight: 700; color: var(--spk-accent); font-size: .8125rem; }
.spk-chipbtn[aria-pressed="true"]:not(#spk-a) { background: var(--spk-gradient-primary); border-color: transparent; color: var(--spk-white); }
.spk-chipbtn[aria-pressed="true"] b:not(#spk-a) { color: var(--spk-primary-glow); }
.spk-box-row:not(#spk-a) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.spk-box-qlabel:not(#spk-a) { font-weight: 700; font-size: .9375rem; }
.spk-box-price:not(#spk-a) { margin: 0; padding: .75rem 1rem; border-radius: var(--spk-radius); background: #FBF1D6; font-size: .9375rem; font-weight: 600; }
.spk-box-price strong:not(#spk-a) { font-family: var(--spk-font-display); font-size: 1.15rem; color: var(--spk-accent); }
@media (min-width: 760px) { .spk-box:not(#spk-a) { grid-template-columns: 16rem minmax(0,1fr); } .spk-box-media:not(#spk-a) { aspect-ratio: auto; } }

.spk-cfg-aside:not(#spk-a) { display: block; }
.spk-summary:not(#spk-a) { padding: 1.5rem; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-card); display: flex; flex-direction: column; gap: .85rem; }
.spk-summary-title.spk-summary-title:not(#spk-a) { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: 1.25rem; font-weight: 700; }
.spk-summary-title .spk-i:not(#spk-a) { color: var(--spk-gold-deep); }
.spk-summary-total:not(#spk-a) { margin: 0; padding-top: .85rem; border-top: 1.5px dashed var(--spk-border); display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; font-weight: 700; }
.spk-summary-total strong:not(#spk-a) { font-family: var(--spk-font-display); font-size: 1.75rem; color: var(--spk-accent); }
.spk-summary-hint:not(#spk-a) { margin: 0; display: flex; gap: .5rem; font-size: .8125rem; color: var(--spk-muted-fg); }
.spk-summary-hint .spk-i:not(#spk-a) { color: var(--spk-gold-deep); width: 1.1rem; height: 1.1rem; }
@media (min-width: 1100px) { .spk-cfg-aside:not(#spk-a) { display: block; position: sticky; top: calc(var(--spk-head-h) + 1rem); } }

.spk-lines.spk-lines:not(#spk-a) { display: flex; flex-direction: column; }
.spk-line:not(#spk-a) { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; padding-block: .6rem; border-bottom: 1px solid rgba(140,108,47,.15); }
.spk-line:last-child:not(#spk-a) { border-bottom: 0; }
.spk-line.is-base .spk-line-name:not(#spk-a) { font-weight: 800; }
.spk-line.is-missing small:not(#spk-a) { color: var(--spk-err); }
.spk-line-main:not(#spk-a) { display: flex; flex-direction: column; min-width: 0; }
.spk-line-name:not(#spk-a) { padding: 0; border: 0; background: none; text-align: start; font: 700 .9375rem/1.5 var(--spk-font); color: var(--spk-fg); }
button.spk-line-name:not(#spk-a) { cursor: pointer; text-decoration: underline; text-decoration-color: rgba(140,108,47,.4); text-underline-offset: 3px; }
.spk-line-main small:not(#spk-a) { font-size: .78rem; color: var(--spk-muted-fg); line-height: 1.6; }
.spk-line-side:not(#spk-a) { flex: 0 0 auto; display: flex; align-items: center; gap: .4rem; }
.spk-line-price:not(#spk-a) { font-weight: 800; font-size: .875rem; white-space: nowrap; }
.spk-line-x:not(#spk-a) { width: 1.8rem; height: 1.8rem; border-radius: 999px; border: 1px solid var(--spk-border); background: var(--spk-white); color: var(--spk-err); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.spk-line-x .spk-i:not(#spk-a) { width: .9rem; height: .9rem; }

.spk-buybar:not(#spk-a) { position: fixed; z-index: 55; inset-inline: 0; bottom: 0; padding: .6rem 0 calc(.6rem + env(safe-area-inset-bottom, 0px)); background: rgba(14,10,5,.94); backdrop-filter: blur(10px); border-top: 1px solid rgba(201,162,80,.45); box-shadow: 0 -18px 40px -24px rgba(0,0,0,.8); }
.spk-buybar-inner:not(#spk-a) { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.spk-buybar-total:not(#spk-a) { margin: 0; display: flex; flex-direction: column; color: var(--spk-night-fg); line-height: 1.2; }
.spk-buybar-total small:not(#spk-a) { font-size: .75rem; font-weight: 600; color: var(--spk-night-muted); }
.spk-buybar-total strong:not(#spk-a) { font-family: var(--spk-font-display); font-size: 1.5rem; color: var(--spk-primary-glow); }
.spk-buybar-actions:not(#spk-a) { display: flex; gap: .5rem; }
@media (max-width: 420px) { .spk-buybar-actions .spk-btn:not(#spk-a) { padding-inline: .8rem; font-size: .8125rem; } .spk-buybar-total strong:not(#spk-a) { font-size: 1.2rem; } }

/* ---------------------------------------------------------------------
   40. CART DRAWER, CART PAGE, CHECKOUT, TOAST
   --------------------------------------------------------------------- */
.spk-drawer:not(#spk-a) { position: fixed; inset: 0; z-index: 90; }
.spk-drawer[hidden]:not(#spk-a) { display: none; }
.spk-drawer-backdrop:not(#spk-a) { position: absolute; inset: 0; background: rgba(14,10,5,.55); opacity: 0; transition: opacity .25s ease; }
.spk-drawer-panel:not(#spk-a) { position: absolute; inset-block: 0; inset-inline-end: 0; width: min(26rem, 94vw); display: flex; flex-direction: column; background: #FFFCF5; box-shadow: 30px 0 60px -30px rgba(0,0,0,.6); transform: translateX(-104%); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.spk-drawer.is-open .spk-drawer-backdrop:not(#spk-a) { opacity: 1; }
.spk-drawer.is-open .spk-drawer-panel:not(#spk-a) { transform: none; }
.spk-drawer-head:not(#spk-a) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: calc(1rem + env(safe-area-inset-top, 0px)) 1.25rem 1rem; background: var(--spk-gradient-night); color: var(--spk-primary-glow); }
.spk-drawer-head h2:not(#spk-a) { display: flex; align-items: center; gap: .5rem; margin: 0; font-family: var(--spk-font-display); font-size: 1.35rem; color: var(--spk-white); }
.spk-drawer-close:not(#spk-a) { width: 2.5rem; height: 2.5rem; border-radius: 999px; border: 1px solid rgba(240,221,166,.5); background: transparent; color: var(--spk-primary-glow); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.spk-drawer-body:not(#spk-a) { flex: 1 1 auto; overflow-y: auto; padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: 1rem; }
.spk-drawer-foot:not(#spk-a) { padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--spk-border); display: flex; flex-direction: column; gap: .6rem; background: var(--spk-white); }
.spk-drawer-foot[hidden]:not(#spk-a) { display: none; }
.spk-drawer-total:not(#spk-a) { margin: 0 0 .25rem; display: flex; justify-content: space-between; align-items: baseline; font-weight: 700; }
.spk-drawer-total strong:not(#spk-a) { font-family: var(--spk-font-display); font-size: 1.5rem; color: var(--spk-accent); }

.spk-booking-card:not(#spk-a) { padding: 1rem; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-md); }
.spk-booking-head:not(#spk-a) { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .85rem; align-items: center; margin-bottom: .5rem; }
.spk-booking-head img:not(#spk-a), .spk-booking-ph:not(#spk-a) { width: 3.75rem; height: 4.5rem; border-radius: var(--spk-radius); object-fit: cover; display: block; }
.spk-booking-ph:not(#spk-a) { display: flex; align-items: center; justify-content: center; background: var(--spk-gradient-night); color: var(--spk-primary-glow); }
.spk-booking-head h3:not(#spk-a) { margin: 0 0 .2rem; font-family: var(--spk-font); font-size: 1rem; font-weight: 800; line-height: 1.5; }
.spk-booking-edit:not(#spk-a) { display: inline-flex; align-items: center; gap: .3rem; font-size: .8125rem; font-weight: 700; color: var(--spk-accent); }
.spk-booking-edit .spk-i:not(#spk-a) { width: .95rem; height: .95rem; }
.spk-booking-sum:not(#spk-a) { margin: .5rem 0 0; padding-top: .6rem; border-top: 1px dashed var(--spk-border); display: flex; justify-content: space-between; align-items: baseline; font-weight: 700; font-size: .9375rem; }
.spk-booking-sum strong:not(#spk-a) { color: var(--spk-accent); }
.spk-empty:not(#spk-a) { padding: 2.5rem 1rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1rem; color: var(--spk-muted-fg); font-weight: 600; }
.spk-empty > .spk-i:not(#spk-a) { width: 3rem; height: 3rem; color: var(--spk-gold-deep); stroke-width: 1.2; }
.spk-empty p:not(#spk-a) { margin: 0; }

.spk-page-hero-plain:not(#spk-a) { background: var(--spk-gradient-night); }
.spk-page-hero-plain .spk-page-hero-body:not(#spk-a) { padding-block: 2.5rem 3rem; }
.spk-cart-grid:not(#spk-a), .spk-checkout-grid:not(#spk-a) { display: grid; gap: 2rem; grid-template-columns: minmax(0,1fr); align-items: start; }
.spk-cart-list:not(#spk-a) { display: flex; flex-direction: column; gap: 1.25rem; }
.spk-cart-aside[hidden]:not(#spk-a) { display: none; }
@media (min-width: 1000px) {
	.spk-cart-grid:not(#spk-a), .spk-checkout-grid:not(#spk-a) { grid-template-columns: minmax(0,1fr) 23rem; gap: 2.5rem; }
	.spk-cart-aside:not(#spk-a), .spk-checkout-aside:not(#spk-a) { position: sticky; top: calc(var(--spk-head-h) + 1rem); }
}
.spk-checkout-aside [data-checkout-review]:not(#spk-a) { display: flex; flex-direction: column; gap: .85rem; max-height: 60vh; overflow-y: auto; }
.spk-checkout-aside .spk-booking-card:not(#spk-a) { box-shadow: none; }
.spk-form-title.spk-form-title:not(#spk-a) { display: flex; align-items: center; gap: .55rem; margin: 0 0 1.25rem; font-size: 1.25rem; font-weight: 700; line-height: 1.5; }
.spk-form-title + *:not(#spk-a) { margin-top: 0; }
.spk-form .spk-form-title:not(:first-child):not(#spk-a) { margin-top: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--spk-border); }
.spk-form-title .spk-i:not(#spk-a) { color: var(--spk-gold-deep); }
.spk-pay:not(#spk-a) { margin-bottom: 1.5rem; padding: 1rem; border-radius: var(--spk-radius); background: rgba(255,255,255,.7); border: 1px dashed var(--spk-gold-deep); }
.spk-pay .spk-pending:not(#spk-a) { border-radius: var(--spk-radius); line-height: 1.7; }
.spk-done:not(#spk-a) { padding: 2.5rem 1.5rem; text-align: center; border-radius: var(--spk-radius-lg); background: var(--spk-gradient-card); border: 1px solid var(--spk-primary); box-shadow: var(--spk-shadow-card); display: flex; flex-direction: column; align-items: center; gap: .85rem; }
.spk-done[hidden]:not(#spk-a) { display: none; }
.spk-done-icon:not(#spk-a) { width: 4rem; height: 4rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-gold); color: var(--spk-black); }
.spk-done-icon .spk-i:not(#spk-a) { width: 2rem; height: 2rem; }
.spk-done h2:not(#spk-a) { margin: 0; font-family: var(--spk-font-display); font-size: 2rem; }
.spk-done p:not(#spk-a) { margin: 0; }
.spk-noscript:not(#spk-a) { color: var(--spk-muted-fg); }

.spk-toast:not(#spk-a) { position: fixed; z-index: 99; inset-inline: 0; margin-inline: auto; bottom: calc(var(--spk-buybar-h) + 1rem + env(safe-area-inset-bottom, 0px)); width: fit-content; max-width: calc(100% - 2rem); padding: .7rem 1.2rem; border-radius: 999px; background: var(--spk-black); color: var(--spk-primary-glow); font-family: var(--spk-font); font-weight: 700; font-size: .9375rem; box-shadow: 0 16px 34px -14px rgba(0,0,0,.8); opacity: 0; transform: translateY(1rem); pointer-events: none; transition: opacity .25s ease, transform .25s ease; }
.spk-toast.is-on:not(#spk-a) { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.spk-fan-item:not(#spk-a), .spk-drawer-panel:not(#spk-a), .spk-toast:not(#spk-a) { transition: none; }
	.spk-choose.is-nudge:not(#spk-a), .spk-opt.is-flash:not(#spk-a) { animation: none; }
}

/* =====================================================================
   BUILD 0.4.1 — one menu only, taller hero, occasion pages without add-on photos,
   wedding tiers, special occasions (WhatsApp request)
   ===================================================================== */
:root { --spk-head-h: 4.8rem; }
@media (max-width: 479px) { :root { --spk-head-h: 4.3rem; } }

/* hero: a little taller */
@media (min-width: 1200px) {
	.spk-hero-body:not(#spk-a) { min-height: 43rem; padding-block: 6.5rem 7rem; }
	.spk-hero-title.spk-hero-title:not(#spk-a) { font-size: clamp(2.5rem, 1.4rem + 2.6vw, 3.9rem); }
	.spk-hero-sub:not(#spk-a) { font-size: 1.125rem; }
}
@media (max-width: 1199px) { .spk-hero-body:not(#spk-a) { padding-block: 3.25rem 2.75rem; } }
@media (max-width: 767px) { .spk-hero-body:not(#spk-a) { padding-block: 2.75rem 2.25rem; } }

/* ---------------------------------------------------------------------
   41. OCCASION ADD-ONS — compact text cards (no photos)
   --------------------------------------------------------------------- */
.spk-opts.spk-opts-compact:not(#spk-a) { grid-template-columns: minmax(0,1fr); gap: .75rem; }
@media (min-width: 640px) { .spk-opts.spk-opts-compact:not(#spk-a) { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1400px) { .spk-opts.spk-opts-compact:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.spk-opt.spk-opt-compact:not(#spk-a) { grid-template-columns: minmax(0,1fr); border-radius: var(--spk-radius); box-shadow: var(--spk-shadow-sm); border: 1.5px solid var(--spk-border); }
.spk-opt.spk-opt-compact.is-added:not(#spk-a) { border-color: var(--spk-primary); }
.spk-opt-compact .spk-opt-body:not(#spk-a) { position: relative; padding: 1rem 1.1rem 1.05rem; gap: .35rem; }
.spk-opt-compact .spk-opt-title.spk-opt-title:not(#spk-a) { padding-inline-end: 2.25rem; font-size: 1rem; }
.spk-opt-compact .spk-opt-check:not(#spk-a) { top: .85rem; inset-inline-start: auto; inset-inline-end: .85rem; width: 1.6rem; height: 1.6rem; }
.spk-opt-compact .spk-opt-price:not(#spk-a) { font-size: 1.125rem; }
.spk-opt-compact .spk-opt-actions:not(#spk-a) { margin-top: .35rem; }
.spk-opt-compact .spk-add:not(#spk-a) { min-height: 2.25rem; padding: .35rem .95rem; font-size: .875rem; }

/* ---------------------------------------------------------------------
   42. TIERS — three package cards side by side (wedding & engagement)
   --------------------------------------------------------------------- */
.spk-tiers:not(#spk-a) { display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr); align-items: stretch; }
@media (min-width: 760px) { .spk-tiers:not(#spk-a) { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.spk-tier:not(#spk-a) { position: relative; display: flex; flex-direction: column; gap: .75rem; padding: 1.5rem 1.25rem 1.25rem; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1.5px solid var(--spk-border); box-shadow: var(--spk-shadow-md); transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; scroll-margin-top: calc(var(--spk-head-h) + 1rem); }
.spk-tier:hover:not(#spk-a) { transform: translateY(-3px); }
.spk-tier.is-featured:not(#spk-a) { background: var(--spk-gradient-night); color: var(--spk-night-fg); border-color: rgba(201,162,80,.6); }
.spk-tier.is-picked:not(#spk-a) { border-color: var(--spk-primary); box-shadow: 0 0 0 3px rgba(201,162,80,.4), var(--spk-shadow-md); }
.spk-tier-flag:not(#spk-a) { position: absolute; top: -.8rem; inset-inline-start: 1.25rem; padding: .2rem .8rem; border-radius: 999px; background: var(--spk-gradient-gold); color: var(--spk-black); font-size: .75rem; font-weight: 800; }
.spk-tier-name.spk-tier-name:not(#spk-a) { margin: 0; font-family: var(--spk-font-display); font-size: 1.375rem; font-weight: 700; line-height: 1.4; }
.spk-tier.is-featured .spk-tier-name:not(#spk-a) { color: var(--spk-white); }
.spk-tier-sub:not(#spk-a) { margin: 0; display: inline-flex; align-items: center; gap: .35rem; font-size: .875rem; font-weight: 700; color: var(--spk-muted-fg); }
.spk-tier.is-featured .spk-tier-sub:not(#spk-a) { color: var(--spk-night-muted); }
.spk-tier-sub .spk-i:not(#spk-a) { width: 1rem; height: 1rem; color: var(--spk-gold-deep); }
.spk-tier-price:not(#spk-a) { margin: 0; padding-bottom: .75rem; border-bottom: 1px dashed var(--spk-border); font-family: var(--spk-font-display); font-weight: 700; font-size: 1.75rem; color: var(--spk-accent); }
.spk-tier.is-featured .spk-tier-price:not(#spk-a) { color: var(--spk-primary-glow); border-color: rgba(201,162,80,.4); }
.spk-tier-inc.spk-tier-inc:not(#spk-a) { flex: 1 1 auto; display: flex; flex-direction: column; gap: .45rem; margin: 0; }
.spk-tier-inc li:not(#spk-a) { display: flex; gap: .45rem; align-items: flex-start; font-size: .9375rem; font-weight: 600; line-height: 1.6; }
.spk-tier-inc .spk-i:not(#spk-a) { flex: 0 0 auto; margin-top: .3em; width: .95rem; height: .95rem; color: var(--spk-gold-deep); }
.spk-tier.is-featured .spk-tier-inc .spk-i:not(#spk-a) { color: var(--spk-primary); }
.spk-tier .spk-choose:not(#spk-a) { margin-top: .5rem; justify-content: center; }
.spk-tier.is-featured .spk-choose:not([aria-pressed="true"]):not(#spk-a) { background: var(--spk-gradient-gold) !important; color: var(--spk-black) !important; }
.spk-tier.is-featured .spk-choose:not([aria-pressed="true"]) *:not(#spk-a) { color: var(--spk-black) !important; }

/* ---------------------------------------------------------------------
   43. SPECIAL OCCASIONS — two cards (home + packages) and their pages
   --------------------------------------------------------------------- */
.spk-on-dark-note.spk-on-dark-note:not(#spk-a) { color: var(--spk-night-muted); }
.spk-sp-grid:not(#spk-a) { display: grid; gap: 1.5rem; grid-template-columns: minmax(0,1fr); }
@media (min-width: 860px) { .spk-sp-grid:not(#spk-a) { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.spk-sp-card:not(#spk-a) { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--spk-radius-lg); background: rgba(255,255,255,.04); border: 1px solid rgba(201,162,80,.45); color: var(--spk-night-fg); transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease; }
.spk-sp-card:hover:not(#spk-a) { transform: translateY(-5px); border-color: var(--spk-primary); box-shadow: 0 30px 60px -30px rgba(0,0,0,.9); }
.spk-sp-media:not(#spk-a) { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.spk-sp-media img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s ease; }
.spk-sp-card:hover .spk-sp-media img:not(#spk-a) { transform: scale(1.05); }
.spk-sp-media:not(#spk-a)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,10,5,.9) 0%, rgba(14,10,5,0) 55%); }
.spk-sp-body:not(#spk-a) { position: relative; display: flex; flex-direction: column; gap: .8rem; padding: 0 1.5rem 1.6rem; margin-top: -2.5rem; }
.spk-sp-icon:not(#spk-a) { width: 3.25rem; height: 3.25rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-gold); color: var(--spk-black); box-shadow: 0 0 0 .35rem #1F170A; }
.spk-sp-icon .spk-i:not(#spk-a) { width: 1.5rem; height: 1.5rem; }
.spk-sp-title.spk-sp-title:not(#spk-a) { margin: 0; font-family: var(--spk-font-display); font-size: 1.625rem; font-weight: 700; line-height: 1.4; color: var(--spk-white); }
.spk-sp-lead:not(#spk-a) { margin: 0; font-size: .9375rem; line-height: 1.8; color: var(--spk-night-muted); }
.spk-sp-tags.spk-sp-tags:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; }
.spk-sp-tags li:not(#spk-a) { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .75rem; border-radius: 999px; background: rgba(201,162,80,.14); border: 1px solid rgba(201,162,80,.35); font-size: .8125rem; font-weight: 600; color: var(--spk-primary-glow); }
.spk-sp-tags .spk-i:not(#spk-a) { width: .85rem; height: .85rem; }
.spk-sp-go:not(#spk-a) { margin-top: .25rem; display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--spk-primary-glow); }
.spk-sp-go .spk-i:not(#spk-a) { width: 1rem; height: 1rem; transition: transform .25s ease; }
.spk-sp-card:hover .spk-sp-go .spk-i:not(#spk-a) { transform: translateX(-4px); }

.spk-sp-quote:not(#spk-a) { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem) !important; }
.spk-sp-blocks:not(#spk-a) { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }
.spk-sp-block .spk-mini-title:not(#spk-a) { display: flex; align-items: center; gap: .4rem; }
.spk-sp-block .spk-mini-title .spk-i:not(#spk-a) { width: 1rem; height: 1rem; }
.spk-chips-list.spk-chips-list:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; }
.spk-chips-list li:not(#spk-a) { padding: .4rem .85rem; border-radius: 999px; background: var(--spk-white); border: 1px solid var(--spk-border); font-size: .875rem; font-weight: 600; }
.spk-sp-request-grid:not(#spk-a) { display: grid; gap: 2.5rem; grid-template-columns: minmax(0,1fr); align-items: start; }
@media (min-width: 1000px) { .spk-sp-request-grid:not(#spk-a) { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 4rem; } }
.spk-btn.spk-btn-wa:not(#spk-a) { background: linear-gradient(135deg, #1F8E4E 0%, #25B262 100%) !important; color: var(--spk-white) !important; border: 0 !important; }
.spk-btn.spk-btn-wa *:not(#spk-a) { color: var(--spk-white) !important; }
.spk-btn.spk-btn-wa .spk-i:not(#spk-a) { width: 1.2rem; height: 1.2rem; }
.spk-wa-pending:not(#spk-a) { margin: .75rem 0 0; font-size: .75rem; }
.spk-form-notice a:not(#spk-a) { font-weight: 800; text-decoration: underline; }

/* ---------------------------------------------------------------------
   44. ROUND 3 — brand-gradient buy bar, gift note, remove booking, soirée picks
   --------------------------------------------------------------------- */
.spk-buybar:not(#spk-a) { background: linear-gradient(to left, #3B2B10 0%, #6E5322 45%, #B08A3E 100%); border-top: 1px solid rgba(240,221,166,.7); box-shadow: 0 -18px 40px -22px rgba(74,55,22,.75); backdrop-filter: none; }
.spk-buybar-total small:not(#spk-a) { color: rgba(255,252,245,.82); }
.spk-buybar-total strong:not(#spk-a) { color: var(--spk-white); }
.spk-buybar .spk-btn.spk-btn-gold[class]:not(#spk-a) { background: var(--spk-white) !important; color: var(--spk-accent) !important; box-shadow: 0 8px 18px -10px rgba(20,15,8,.6); }
.spk-buybar .spk-btn.spk-btn-gold[class] *:not(#spk-a) { color: var(--spk-accent) !important; }
.spk-buybar .spk-btn.spk-btn-ghost[class]:not(#spk-a) { border-color: rgba(255,255,255,.75) !important; color: var(--spk-white) !important; }
.spk-buybar .spk-btn.spk-btn-ghost[class] *:not(#spk-a) { color: var(--spk-white) !important; }
.spk-by-choice:not(#spk-a) { font-family: var(--spk-font); font-size: 1.05rem; font-weight: 800; }
.spk-pkg-price .spk-by-choice:not(#spk-a) { font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); }

.spk-giftnote:not(#spk-a) { position: relative; display: flex; gap: 1rem; align-items: flex-start; margin-top: 1.25rem; padding: 1.15rem 1.15rem 1.2rem; border-radius: var(--spk-radius-lg); background: var(--spk-gradient-night); color: var(--spk-night-fg); border: 1px solid rgba(201,162,80,.55); box-shadow: 0 18px 36px -24px rgba(20,15,8,.9); scroll-margin-top: calc(var(--spk-head-h) + 1rem); }
.spk-giftnote.is-on:not(#spk-a) { border-color: var(--spk-primary); box-shadow: 0 0 0 3px rgba(201,162,80,.35), 0 18px 36px -24px rgba(20,15,8,.9); }
.spk-giftnote-icon:not(#spk-a) { flex: 0 0 auto; width: 3rem; height: 3rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: var(--spk-gradient-gold); color: var(--spk-black); }
.spk-giftnote-icon .spk-i:not(#spk-a) { width: 1.4rem; height: 1.4rem; }
.spk-giftnote-body:not(#spk-a) { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
.spk-giftnote-title:not(#spk-a) { margin: 0; font-family: var(--spk-font-display); font-size: 1.25rem; font-weight: 700; color: var(--spk-white); }
.spk-giftnote-text:not(#spk-a) { margin: 0; font-size: .875rem; line-height: 1.75; color: var(--spk-night-muted); }
.spk-giftnote-check:not(#spk-a) { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--spk-primary-glow); cursor: pointer; }
.spk-giftnote-check input:not(#spk-a) { width: 1.15rem; height: 1.15rem; accent-color: #C9A250; }
.spk-giftnote textarea:not(#spk-a) { width: 100%; padding: .7rem .85rem; border-radius: var(--spk-radius); border: 1px solid rgba(240,221,166,.5); background: rgba(255,255,255,.95); color: var(--spk-fg); font: inherit; resize: vertical; }
.spk-giftnote textarea[hidden]:not(#spk-a) { display: none; }

.spk-booking-remove:not(#spk-a) { margin-top: .75rem; width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .55rem 1rem; border-radius: 999px; border: 1px solid rgba(178,58,46,.35); background: #FFF5F2; color: var(--spk-err); cursor: pointer; font: 700 .875rem/1.4 var(--spk-font); transition: var(--spk-transition); }
.spk-booking-remove:hover:not(#spk-a) { background: var(--spk-err); color: var(--spk-white); }
.spk-booking-remove .spk-i:not(#spk-a) { width: .95rem; height: .95rem; }

.spk-sp-block .spk-mini-title small:not(#spk-a) { margin-inline-start: auto; font-size: .75rem; font-weight: 600; color: var(--spk-muted-fg); }
.spk-sp-notes:not(#spk-a) { margin-bottom: 1rem; }
.spk-sp-notes textarea:not(#spk-a) { min-height: 4.5rem; }
.spk-sp-page .spk-btn-wa.spk-choose-main:not(#spk-a) { width: 100%; justify-content: center; }

/* 45. stronger «كل الباقات» CTA, fixed chips, halls hint */
.spk-head-cta .spk-head-link:not(#spk-a) { display: inline-flex; align-items: center; gap: .5rem; padding: .85rem 1.6rem; border-radius: 999px; background: var(--spk-gradient-primary); color: var(--spk-white) !important; font-weight: 800; font-size: 1rem; box-shadow: 0 14px 28px -14px rgba(74,55,22,.8); transition: transform .25s ease, box-shadow .25s ease; }
.spk-head-cta .spk-head-link *:not(#spk-a) { color: var(--spk-white) !important; }
.spk-head-cta .spk-head-link:hover:not(#spk-a) { transform: translateY(-2px); box-shadow: var(--spk-shadow-glow); }
.spk-head-cta .spk-head-link .spk-i:not(#spk-a) { width: 1.1rem; height: 1.1rem; }
.spk-chipbtn.is-fixed:not(#spk-a) { display: inline-flex; align-items: center; gap: .35rem; cursor: default; background: var(--spk-gradient-night); border-color: transparent; color: var(--spk-primary-glow); }
.spk-chipbtn.is-fixed .spk-i:not(#spk-a) { width: .9rem; height: .9rem; color: var(--spk-primary); }
.spk-sp-next:not(#spk-a) { margin: .75rem 0 0; font-size: .8125rem; color: var(--spk-muted-fg); }

/* 46. compact add-on cards — tidy, equal height, price + action footer */
.spk-opts.spk-opts-compact:not(#spk-a) { align-items: stretch; }
.spk-opt.spk-opt-compact:not(#spk-a) { position: relative; overflow: hidden; background: linear-gradient(160deg, #FFFFFF 0%, #FFFBF1 100%); border: 1px solid rgba(140,108,47,.22); box-shadow: 0 10px 24px -20px rgba(74,55,22,.55); transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.spk-opt.spk-opt-compact:not(#spk-a)::before { content: ""; position: absolute; inset-inline: 0; top: 0; height: 3px; background: var(--spk-gradient-gold); opacity: .55; transition: opacity .25s ease; }
.spk-opt.spk-opt-compact:hover:not(#spk-a) { transform: translateY(-2px); border-color: rgba(201,162,80,.6); box-shadow: 0 16px 30px -22px rgba(74,55,22,.7); }
.spk-opt.spk-opt-compact.is-added:not(#spk-a) { border-color: var(--spk-primary); background: linear-gradient(160deg, #FFFFFF 0%, #FBF1D6 100%); box-shadow: 0 0 0 2px rgba(201,162,80,.35), 0 16px 30px -22px rgba(74,55,22,.7); }
.spk-opt.spk-opt-compact.is-added:not(#spk-a)::before { opacity: 1; }
.spk-opt-compact .spk-opt-body:not(#spk-a) { height: 100%; padding: 1.15rem 1.15rem 1rem; gap: .3rem; }
.spk-opt-compact .spk-opt-title.spk-opt-title:not(#spk-a) { font-size: 1.0625rem; font-weight: 800; }
.spk-opt-compact .spk-opt-desc:not(#spk-a) { min-height: 1.4em; }
.spk-opt-foot:not(#spk-a) { margin-top: auto; padding-top: .8rem; border-top: 1px dashed rgba(140,108,47,.25); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.spk-opt-foot .spk-opt-price:not(#spk-a) { margin: 0; }
.spk-opt-foot .spk-opt-actions:not(#spk-a) { margin: 0; }
.spk-opt-compact.spk-opt-var .spk-opt-price:not(#spk-a) { margin-top: .25rem; }
.spk-opt-compact.spk-opt-var .spk-variants:not(#spk-a) { margin-top: auto; padding-top: .8rem; border-top: 1px dashed rgba(140,108,47,.25); }
.spk-opt-compact .spk-variant:not(#spk-a) { flex: 1 1 0; align-items: center; text-align: center; }

/* ===== 47 · v0.4.5 — saved party idea, soirée includes ===== */
.spk-theme-other-row:not(#spk-a) { display: flex; gap: .6rem; align-items: stretch; }
.spk-theme-other-row input:not(#spk-a) { flex: 1; min-width: 0; }
.spk-theme-save:not(#spk-a) { flex: none; padding: .65rem 1.1rem; font-size: .9375rem; white-space: nowrap; }
.spk-theme-save svg:not(#spk-a) { width: 1rem; height: 1rem; }
.spk-theme-other.is-saved:not(#spk-a) { border-style: solid; border-color: #B08A3E; background: linear-gradient(180deg, #FFFCF5, #FBF3E2); }
.spk-theme-saved:not(#spk-a) { display: flex; align-items: center; gap: .75rem; }
.spk-theme-saved[hidden]:not(#spk-a), .spk-theme-other-row[hidden]:not(#spk-a), [data-theme-hint][hidden]:not(#spk-a) { display: none; }
.spk-theme-saved-ico:not(#spk-a) { flex: none; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: #B08A3E; color: #fff; }
.spk-theme-saved-ico svg:not(#spk-a) { width: 1.1rem; height: 1.1rem; }
.spk-theme-saved p:not(#spk-a) { flex: 1; min-width: 0; margin: 0; display: flex; flex-direction: column; gap: .1rem; }
.spk-theme-saved p small:not(#spk-a) { margin: 0; color: var(--spk-gold-deep); font-weight: 700; font-size: .8125rem; }
.spk-theme-saved p strong:not(#spk-a) { font-size: 1rem; overflow-wrap: anywhere; }
.spk-theme-saved-btn:not(#spk-a) { flex: none; padding: .45rem .8rem; border-radius: 999px; border: 1px solid var(--spk-border); background: #fff; font: inherit; font-size: .8125rem; font-weight: 700; cursor: pointer; color: var(--spk-fg, #2A1F0E); }
.spk-theme-saved-btn:hover:not(#spk-a) { border-color: #B08A3E; }
.spk-theme-saved-btn.is-danger:not(#spk-a) { color: #A23B2A; }
.spk-theme-saved-btn.is-danger:hover:not(#spk-a) { border-color: #A23B2A; }
.spk-sp-inc:not(#spk-a) { margin: 0 0 1.25rem; padding: 1rem 1.1rem; border-radius: var(--spk-radius); background: linear-gradient(180deg, #FFFCF5, #FBF3E2); border: 1px solid #E7D6AE; }
.spk-sp-inc .spk-mini-title:not(#spk-a) { margin-bottom: .6rem; }
.spk-sp-inc ul:not(#spk-a) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.spk-sp-inc li:not(#spk-a) { display: flex; align-items: center; gap: .45rem; padding: 0; border: 0; background: none; border-radius: 0; font-size: .9375rem; font-weight: 700; }
.spk-sp-inc li .spk-i:not(#spk-a) { flex: none; width: 1.35rem; height: 1.35rem; padding: .25rem; border-radius: 50%; background: #B08A3E; color: #fff; }
@media (max-width: 480px) { .spk-sp-inc ul:not(#spk-a) { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) {
  .spk-theme-other-row:not(#spk-a) { flex-direction: column; }
  .spk-theme-saved:not(#spk-a) { flex-wrap: wrap; }
  .spk-theme-saved p:not(#spk-a) { flex-basis: calc(100% - 3rem); }
}


/* =====================================================================
   WP · WordPress / Elementor / WooCommerce layer (plugin only).
   Everything above is the static build verbatim. This block only adapts
   it to WordPress: admin bar, Elementor wrappers, and the REAL WooCommerce
   checkout markup dressed in the Sparkle form design (tokens only).
   ===================================================================== */

/* ---- WordPress chrome */
.admin-bar .spk-header:not(#spk-a) { top: 32px; }
@media (max-width: 782px) { .admin-bar .spk-header:not(#spk-a) { top: 46px; } }
.spk-menu-link.spk-menu-sub:not(#spk-a) { padding-inline-start: 2.25rem; font-size: .9375rem; font-weight: 600; }

/* ---- Elementor: our widgets own their spacing; never inherit widget/container gaps */
.elementor-widget[class*="elementor-widget-spk-"]:not(#spk-a) { margin-block: 0; }
.elementor-widget[class*="elementor-widget-spk-"] > .elementor-widget-container:not(#spk-a) { padding: 0; margin: 0; }
.elementor-location-header .elementor-widget-spk-header:not(#spk-a), .elementor-location-footer .elementor-widget-spk-footer:not(#spk-a) { width: 100%; }

/* ---- checkout: token bridge (each one is a control on the checkout widget) */
.spk-checkout-page:not(#spk-a) {
	--spk-co-text: var(--spk-fg);
	--spk-co-muted: var(--spk-muted-fg);
	--spk-co-accent: var(--spk-accent);
	--spk-co-border: rgba(74, 55, 22, .5);
	--spk-co-field-bg: transparent;
	--spk-co-radius: 0;
	--spk-co-danger: var(--spk-err);
	--spk-co-success: var(--spk-ok);
}
.spk-checkout-page .woocommerce:not(#spk-a), .spk-checkout-page .woocommerce-checkout:not(#spk-a), .spk-checkout-page form.checkout:not(#spk-a) { width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important; }
.spk-checkout-page .spk-checkout-grid:not(#spk-a)::before, .spk-checkout-page .spk-checkout-grid:not(#spk-a)::after { content: none; display: none; }
.spk-checkout-page #customer_details:not(#spk-a) { width: auto; float: none; }
.spk-checkout-page .woocommerce-billing-fields > h3:not(#spk-a), .spk-checkout-page .woocommerce-additional-fields > h3:not(#spk-a) { display: none; }

/* fields — same look as .spk-form in the static build (underline inputs on the gold card) */
.spk-checkout-page .woocommerce-billing-fields__field-wrapper:not(#spk-a), .spk-checkout-page .woocommerce-shipping-fields__field-wrapper:not(#spk-a) {
	display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 1.25rem;
}
@media (min-width: 640px) {
	.spk-checkout-page .woocommerce-billing-fields__field-wrapper:not(#spk-a), .spk-checkout-page .woocommerce-shipping-fields__field-wrapper:not(#spk-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.spk-checkout-page .form-row-wide:not(#spk-a), .spk-checkout-page .spk-co-subhead:not(#spk-a) { grid-column: 1 / -1; }
}
.spk-checkout-page .form-row:not(#spk-a) { float: none !important; width: auto !important; min-width: 0; margin: 0 0 1.35rem; padding: 0; }
.spk-checkout-page .form-row label:not(#spk-a) {
	display: block; margin-bottom: .5rem; font-size: .875rem; font-weight: 600; line-height: 1.6;
	color: var(--spk-co-muted);
}
.spk-checkout-page .form-row .required:not(#spk-a) { color: var(--spk-co-danger); text-decoration: none; border: 0; }
.spk-checkout-page .form-row .optional:not(#spk-a) { display: none; }
.spk-checkout-page .woocommerce-input-wrapper:not(#spk-a) { display: block; width: 100%; }
.spk-checkout-page .form-row .input-text:not(#spk-a), .spk-checkout-page .form-row textarea:not(#spk-a), .spk-checkout-page .form-row select:not(#spk-a), .spk-checkout-page .select2-container .select2-selection--single:not(#spk-a) {
	width: 100%; max-width: 100%; min-height: 0;
	padding: .55rem 0; border: 0; border-bottom: 1px solid var(--spk-co-border); border-radius: var(--spk-co-radius);
	background: var(--spk-co-field-bg); box-shadow: none;
	color: var(--spk-co-text); font: inherit; font-size: 1rem; line-height: 1.6;
	transition: border-color .3s, box-shadow .3s;
}
.spk-checkout-page .form-row textarea:not(#spk-a) { min-height: 5.5rem; resize: vertical; }
.spk-checkout-page .form-row :not(#spk-a)::placeholder { color: rgba(101, 88, 67, .75); opacity: 1; }
.spk-checkout-page .form-row :is(.input-text, textarea, select):focus:not(#spk-a) {
	outline: 0; border-bottom-color: var(--spk-co-accent); box-shadow: 0 1px 0 var(--spk-co-accent);
}
.spk-checkout-page .form-row.woocommerce-invalid :is(.input-text, textarea, select):not(#spk-a) { border-bottom-color: var(--spk-co-danger); }
.spk-checkout-page .form-row.woocommerce-validated :is(.input-text, select):not(#spk-a) { border-bottom-color: var(--spk-co-border); }
.spk-checkout-page #billing_phone:not(#spk-a) { direction: ltr; text-align: right; }
.spk-checkout-page .spk-co-subhead:not(#spk-a) {
	display: flex; align-items: center; gap: .55rem; margin: 1rem 0 1.25rem; padding-top: 1.25rem;
	border-top: 1px solid var(--spk-border); font-size: 1.25rem; font-weight: 700; line-height: 1.5; color: var(--spk-co-text);
}
.spk-checkout-page .spk-co-subhead .spk-i:not(#spk-a), .spk-co-pay-title .spk-i:not(#spk-a) { color: var(--spk-gold-deep); }
.spk-checkout-page .woocommerce-additional-fields:not(#spk-a) { margin-top: 0; }
.spk-checkout-page .spk-co-hint:not(#spk-a) { margin: -.5rem 0 1rem; font-size: .8125rem; color: var(--spk-co-muted); }

/* payment */
.spk-checkout-page #payment:not(#spk-a) { background: transparent; border-radius: 0; }
.spk-checkout-page #payment ul.payment_methods:not(#spk-a) { list-style: none; margin: 0 0 1rem; padding: 0; border: 0; display: grid; gap: .6rem; }
.spk-checkout-page #payment ul.payment_methods li:not(#spk-a) {
	margin: 0; padding: .85rem 1rem; border: 1px solid var(--spk-border); border-radius: var(--spk-radius);
	background: rgba(255, 255, 255, .6); line-height: 1.6;
}
.spk-checkout-page #payment ul.payment_methods li label:not(#spk-a) { font-weight: 700; color: var(--spk-co-text); cursor: pointer; }
.spk-checkout-page #payment ul.payment_methods li input[type="radio"]:not(#spk-a) { accent-color: var(--spk-accent); margin-inline-end: .5rem; }
.spk-checkout-page #payment div.payment_box:not(#spk-a) {
	margin: .75rem 0 0; padding: .75rem 1rem; border-radius: var(--spk-radius);
	background: var(--spk-bg); border: 1px dashed var(--spk-border); color: var(--spk-co-muted); font-size: .875rem;
}
.spk-checkout-page #payment div.payment_box:not(#spk-a)::before { display: none; }
.spk-checkout-page #payment .woocommerce-notice:not(#spk-a), .spk-checkout-page #payment .woocommerce-info:not(#spk-a) { margin-bottom: 1rem; }
.spk-checkout-page #payment div.form-row.place-order:not(#spk-a) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: 0; }
.spk-checkout-page .woocommerce-terms-and-conditions-wrapper:not(#spk-a) { flex: 1 1 100%; font-size: .8125rem; color: var(--spk-co-muted); }
.spk-checkout-page .woocommerce-privacy-policy-text p:not(#spk-a) { margin: 0; font-size: inherit; line-height: 1.8; color: inherit; }
.spk-checkout-page .woocommerce-privacy-policy-text a:not(#spk-a), .spk-checkout-page .woocommerce-terms-and-conditions-wrapper a:not(#spk-a) { color: var(--spk-co-accent); font-weight: 700; }
.spk-checkout-page #place_order:not(#spk-a), .spk-checkout-page .woocommerce #payment #place_order:not(#spk-a) {
	float: none; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	margin-inline-start: auto; padding: .85rem 2rem; border: 0; border-radius: 9999px; cursor: pointer;
	background: var(--spk-gradient-primary) !important; color: var(--spk-primary-fg) !important;
	font-family: var(--spk-font); font-weight: 700; font-size: 1rem; line-height: 1.2;
	box-shadow: var(--spk-shadow-md); transition: var(--spk-transition);
}
.spk-checkout-page #place_order:hover:not(#spk-a) { transform: translateY(-2px); box-shadow: var(--spk-shadow-glow); }
@media (max-width: 639px) { .spk-checkout-page #place_order:not(#spk-a) { width: 100%; } }

/* order review (aside) */
.spk-checkout-page .spk-checkout-aside #order_review:not(#spk-a) { max-height: none; }
.spk-checkout-page .shop_table:not(#spk-a) { width: 100%; margin: 0; border: 0 !important; border-collapse: collapse; background: transparent; font-family: var(--spk-font); }
.spk-checkout-page .shop_table th:not(#spk-a), .spk-checkout-page .shop_table td:not(#spk-a) { padding: .6rem 0; border: 0 !important; background: transparent !important; text-align: start; vertical-align: top; font-size: .9375rem; line-height: 1.6; }
.spk-checkout-page .shop_table thead:not(#spk-a) { display: none; }
.spk-checkout-page .shop_table tbody tr:not(#spk-a) { border-bottom: 1px solid rgba(140, 108, 47, .15); }
.spk-checkout-page .shop_table .product-name:not(#spk-a) { font-weight: 800; color: var(--spk-co-text); }
.spk-checkout-page .shop_table .product-quantity:not(#spk-a) { display: none; }
.spk-checkout-page .shop_table .product-total:not(#spk-a), .spk-checkout-page .shop_table tfoot td:not(#spk-a) { text-align: end; white-space: nowrap; font-weight: 700; }
.spk-checkout-page .shop_table dl.variation:not(#spk-a) { margin: .5rem 0 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; font-size: .8125rem; font-weight: 500; line-height: 1.75; color: var(--spk-co-muted); }
.spk-checkout-page .shop_table dl.variation dt:not(#spk-a) { font-weight: 700; color: var(--spk-co-text); margin: .45rem 0 0; float: none; clear: none; }
.spk-checkout-page .shop_table dl.variation dt:first-child:not(#spk-a) { margin-top: 0; }
.spk-checkout-page .shop_table dl.variation dd:not(#spk-a) { margin: 0; padding: 0; float: none; }
.spk-checkout-page .shop_table dl.variation dd p:not(#spk-a) { margin: 0; }
.spk-checkout-page .shop_table tfoot tr.order-total th:not(#spk-a), .spk-checkout-page .shop_table tfoot tr.order-total td:not(#spk-a) {
	padding-top: .85rem; border-top: 1.5px dashed var(--spk-border) !important; font-weight: 700;
}
.spk-checkout-page .shop_table tfoot tr.order-total td:not(#spk-a) { font-family: var(--spk-font-display); font-size: 1.5rem; color: var(--spk-accent); }

/* notices + coupon (WooCommerce markup, Sparkle look) */
.spk-checkout-page .woocommerce-error:not(#spk-a), .spk-checkout-page .woocommerce-message:not(#spk-a), .spk-checkout-page .woocommerce-info:not(#spk-a), .spk-checkout-page .woocommerce-NoticeGroup ul:not(#spk-a) {
	list-style: none; margin: 0 0 1.25rem; padding: .9rem 1.1rem; border: 1px solid var(--spk-border); border-inline-start-width: 4px;
	border-radius: var(--spk-radius); background: var(--spk-white); color: var(--spk-co-text);
	font-family: var(--spk-font); font-size: .9375rem; line-height: 1.7;
}
.spk-checkout-page .woocommerce-error:not(#spk-a) { border-color: var(--spk-co-danger); background: rgba(179, 38, 30, .05); }
.spk-checkout-page .woocommerce-message:not(#spk-a) { border-color: var(--spk-co-success); background: rgba(31, 122, 58, .06); }
.spk-checkout-page .woocommerce-info:not(#spk-a) { border-color: var(--spk-primary); background: var(--spk-gradient-soft); }
.spk-checkout-page .woocommerce-error:not(#spk-a)::before, .spk-checkout-page .woocommerce-message:not(#spk-a)::before, .spk-checkout-page .woocommerce-info:not(#spk-a)::before { content: none !important; }
.spk-checkout-page .woocommerce-error li:not(#spk-a) { margin: 0; padding: 0; }
.spk-checkout-page .woocommerce-info a:not(#spk-a), .spk-checkout-page .woocommerce-error a:not(#spk-a) { color: var(--spk-accent); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.spk-checkout-page form.checkout_coupon:not(#spk-a) {
	display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 0 0 1.25rem; padding: 1rem 1.1rem;
	border: 1px dashed var(--spk-border); border-radius: var(--spk-radius); background: var(--spk-white);
}
.spk-checkout-page form.checkout_coupon .form-row:not(#spk-a) { flex: 1 1 12rem; margin: 0; }
.spk-checkout-page form.checkout_coupon .form-row-last:not(#spk-a) { flex: 0 0 auto; }
.spk-checkout-page form.checkout_coupon .clear:not(#spk-a) { display: none; }
.spk-checkout-page form.checkout_coupon .button:not(#spk-a) {
	padding: .7rem 1.5rem; border: 1.5px solid var(--spk-accent); border-radius: 9999px; background: transparent;
	color: var(--spk-accent); font: 700 .9375rem/1.2 var(--spk-font); cursor: pointer;
}
.spk-checkout-page form.checkout_coupon .button:hover:not(#spk-a) { background: var(--spk-accent); color: var(--spk-white); }
.spk-checkout-page .woocommerce-form-login:not(#spk-a) { margin-bottom: 1.25rem; }

/* no "View cart" anchor after an add-to-cart, anywhere (never hide .wc-forward globally) */
a.added_to_cart:not(#spk-a), .woocommerce-message a.button.wc-forward:not(#spk-a) { display: none !important; }

/* empty-cart page rendered by WooCommerce inside Sparkle pages */
.spk-checkout-page .cart-empty:not(#spk-a), .spk-checkout-page .return-to-shop:not(#spk-a) { text-align: center; }
.spk-checkout-page .return-to-shop .button:not(#spk-a) {
	display: inline-flex; padding: .85rem 2rem; border-radius: 9999px; background: var(--spk-gradient-primary) !important; color: var(--spk-white) !important; font-weight: 700;
}

/* semantic + JS hook classes (section wrappers, labels the scripts rewrite) — styled by their
   children; declared here so the class map is complete */
.spk-ready:not(#spk-a), .spk-cart:not(#spk-a), .spk-cart-page:not(#spk-a), .spk-cats:not(#spk-a), .spk-cats-head:not(#spk-a), .spk-checkout:not(#spk-a), .spk-checkout-form:not(#spk-a), .spk-checkout-main:not(#spk-a), .spk-ctafan-copy:not(#spk-a), .spk-faq:not(#spk-a), .spk-footer-col:not(#spk-a), .spk-gallery:not(#spk-a), .spk-opt-gift:not(#spk-a), .spk-pkgs-all:not(#spk-a), .spk-sp-request:not(#spk-a), .spk-sp-request-copy:not(#spk-a), .spk-sp-request-form:not(#spk-a), .spk-special:not(#spk-a), .spk-team:not(#spk-a), .spk-values:not(#spk-a), .spk-values-list:not(#spk-a), .spk-wc-shell:not(#spk-a), .spk-works:not(#spk-a), .spk-add-label:not(#spk-a), .spk-choose-label:not(#spk-a) { --spk-hook: 1; }

/* ---------------------------------------------------------------------
   WP-3. PAGE HERO height (inner pages + package pages) — taller than the static build, body centred.
         The «ارتفاع الهيرو» control overrides min-height per page.
   --------------------------------------------------------------------- */
.spk-page-hero:not(#spk-a) { display: flex; flex-direction: column; justify-content: center; min-height: 34rem; }
.spk-page-hero > .spk-container:not(#spk-a) { width: 100%; }
.spk-page-hero-plain:not(#spk-a) { min-height: 0; }
@media (max-width: 1023px) { .spk-page-hero:not(#spk-a) { min-height: 30rem; } .spk-page-hero-plain:not(#spk-a) { min-height: 0; } }
@media (max-width: 767px)  { .spk-page-hero:not(#spk-a) { min-height: 25rem; } .spk-page-hero-plain:not(#spk-a) { min-height: 0; } }
/* a package page with a hero: the booking card starts closer to it */
.spk-pkg-hero + .spk-pkg:not(#spk-a) { padding-top: clamp(2.5rem, 1.5rem + 3vw, 4rem); }

/* ---------------------------------------------------------------------
   WP-4. THANK-YOU / ORDER DETAILS  (templates/woocommerce/checkout/thankyou.php + order/*)
   --------------------------------------------------------------------- */
.spk-thanks:not(#spk-a) { display: grid; gap: 1.5rem; max-width: 56rem; margin-inline: auto; color: var(--spk-fg); text-align: start; }
.spk-thanks-head:not(#spk-a) {
	text-align: center; padding: 2.5rem 1.5rem 2.25rem; border-radius: var(--spk-radius-lg);
	background: var(--spk-gradient-card); border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-card);
}
.spk-thanks-icon:not(#spk-a) {
	display: inline-flex; align-items: center; justify-content: center; width: 4.25rem; height: 4.25rem; border-radius: 50%;
	background: var(--spk-gradient-primary); color: var(--spk-primary-glow); box-shadow: var(--spk-shadow-glow);
}
.spk-thanks-icon svg:not(#spk-a) { width: 2rem; height: 2rem; }
.spk-thanks-head.is-failed .spk-thanks-icon:not(#spk-a) { background: var(--spk-err); color: var(--spk-white); box-shadow: none; }
.spk-thanks-title.spk-thanks-title:not(#spk-a) { margin: 1rem 0 .4rem; font-family: var(--spk-font-display); font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); font-weight: 700; line-height: 1.45; color: var(--spk-fg); }
.spk-thanks-text.spk-thanks-text:not(#spk-a) { margin: 0 auto; max-width: 34rem; font-family: var(--spk-font); font-size: 1.0625rem; line-height: 1.9; color: var(--spk-muted-fg); background: none; border: 0; padding: 0; }
.spk-thanks-text:not(#spk-a)::before { content: none; }

.spk-thanks-meta:not(#spk-a) {
	list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
	border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); overflow: hidden;
}
.spk-thanks-meta:not(#spk-a)::before, .spk-thanks-meta:not(#spk-a)::after { content: none; display: none; }
.spk-thanks-meta li:not(#spk-a) {
	float: none; margin: 0; padding: 1.1rem 1.35rem; list-style: none; border: 0; border-inline-start: 1px solid var(--spk-border);
	font-size: .875rem; line-height: 1.7; text-transform: none; color: var(--spk-muted-fg);
}
.spk-thanks-meta li:first-child:not(#spk-a) { border-inline-start: 0; }
.spk-thanks-meta li span:not(#spk-a) { display: block; font-weight: 600; }
.spk-thanks-meta li strong:not(#spk-a) { display: block; margin-top: .2rem; font-size: 1.0625rem; font-weight: 700; line-height: 1.6; color: var(--spk-fg); text-transform: none; }
.spk-thanks-meta .total strong:not(#spk-a) { color: var(--spk-accent); white-space: nowrap; }
.spk-od-item-total .amount:not(#spk-a), .spk-od-total dd .amount:not(#spk-a) { white-space: nowrap; }

.spk-thanks-pay:not(#spk-a) {
	display: flex; align-items: flex-start; gap: .85rem; padding: 1rem 1.35rem; border-radius: var(--spk-radius);
	background: var(--spk-muted); border: 1px solid var(--spk-border); color: var(--spk-fg);
}
.spk-thanks-pay > svg:not(#spk-a) { flex: none; width: 1.35rem; height: 1.35rem; margin-top: .3rem; color: var(--spk-accent); }
.spk-thanks-pay p:not(#spk-a) { margin: 0; line-height: 1.9; }
.spk-thanks-pay h2:not(#spk-a), .spk-thanks-pay h3:not(#spk-a) { margin: 0 0 .5rem; font-size: 1.125rem; }
.spk-thanks-actions:not(#spk-a) { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin: .5rem 0 0; }

.spk-od:not(#spk-a), .spk-od-customer:not(#spk-a) { display: grid; gap: 1rem; margin: 0; }
.spk-od-title.spk-od-title:not(#spk-a) {
	display: flex; align-items: center; gap: .6rem; margin: .5rem 0 0; font-family: var(--spk-font-display);
	font-size: 1.5rem; font-weight: 700; line-height: 1.5; color: var(--spk-fg);
}
.spk-od-title svg:not(#spk-a) { width: 1.35rem; height: 1.35rem; color: var(--spk-accent); }
.spk-od-items:not(#spk-a) { display: grid; gap: 1rem; margin: 0; border: 0; border-collapse: separate; }
.spk-od-item:not(#spk-a) {
	padding: 1.25rem 1.5rem; border-radius: var(--spk-radius-lg); background: var(--spk-white);
	border: 1px solid var(--spk-border); box-shadow: var(--spk-shadow-sm);
}
.spk-od-item-head:not(#spk-a) {
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem;
	padding-bottom: 1rem; margin-bottom: .35rem; border-bottom: 1px dashed var(--spk-border);
}
.spk-od-item-head:not(:has(.spk-od-item-img)):not(#spk-a) { grid-template-columns: minmax(0, 1fr) auto; }
.spk-od-item-img:not(#spk-a) { display: block; width: 3.75rem; height: 3.75rem; border-radius: var(--spk-radius); overflow: hidden; background: var(--spk-muted); }
.spk-od-item-img img:not(#spk-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
.spk-od-item-name.spk-od-item-name:not(#spk-a) { margin: 0; font-family: var(--spk-font-display); font-size: 1.25rem; font-weight: 700; line-height: 1.5; color: var(--spk-fg); }
.spk-od-item-name a:not(#spk-a) { color: inherit; text-decoration: none; }
.spk-od-item-name a:hover:not(#spk-a) { color: var(--spk-accent); }
.spk-od-item-total:not(#spk-a) { font-size: 1.125rem; font-weight: 700; color: var(--spk-accent); white-space: nowrap; }
.spk-od-lines:not(#spk-a) { margin: 0; padding: 0; display: grid; }
.spk-od-line:not(#spk-a) {
	display: grid; grid-template-columns: minmax(7.5rem, 12rem) minmax(0, 1fr); gap: 1rem; align-items: baseline;
	padding: .7rem 0; border-bottom: 1px solid rgba(140, 108, 47, .14);
}
.spk-od-line:last-child:not(#spk-a) { border-bottom: 0; }
.spk-od-line dt:not(#spk-a) { margin: 0; font-weight: 700; line-height: 1.8; color: var(--spk-fg); }
.spk-od-line dd:not(#spk-a) { margin: 0; line-height: 1.8; color: var(--spk-muted-fg); overflow-wrap: anywhere; }
.spk-od-line dd a:not(#spk-a) { color: var(--spk-accent); text-decoration: none; font-weight: 700; }
.spk-od-note:not(#spk-a) { margin-top: .75rem; color: var(--spk-muted-fg); }

.spk-od-totals:not(#spk-a) { margin: 0; padding: .35rem 1.5rem; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); }
.spk-od-total:not(#spk-a) { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid rgba(140, 108, 47, .14); }
.spk-od-total:last-child:not(#spk-a) { border-bottom: 0; }
.spk-od-total dt:not(#spk-a) { margin: 0; font-weight: 600; color: var(--spk-muted-fg); }
.spk-od-total dd:not(#spk-a) { margin: 0; font-weight: 700; color: var(--spk-fg); text-align: end; }
.spk-od-total--order_total dt:not(#spk-a) { font-weight: 700; color: var(--spk-fg); }
.spk-od-total--order_total dd:not(#spk-a) { font-size: 1.375rem; color: var(--spk-accent); }
.spk-od-total--note:not(#spk-a) { display: grid; justify-content: stretch; gap: .25rem; }
.spk-od-total--note dd:not(#spk-a) { font-weight: 400; color: var(--spk-muted-fg); text-align: start; }
.spk-od-actions:not(#spk-a) { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }

.spk-od-card:not(#spk-a) { margin: 0; padding: .35rem 1.5rem; font-style: normal; border-radius: var(--spk-radius-lg); background: var(--spk-white); border: 1px solid var(--spk-border); }
.spk-od-customer .woocommerce-customer-details--phone:not(#spk-a)::before, .spk-od-customer .woocommerce-customer-details--email:not(#spk-a)::before { content: none; }
.spk-thanks .spk-ltr:not(#spk-a), .spk-od-customer .spk-ltr:not(#spk-a) { unicode-bidi: isolate; }

@media (max-width: 600px) {
	.spk-thanks-head:not(#spk-a) { padding: 2rem 1.1rem 1.75rem; }
	.spk-thanks-meta:not(#spk-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.spk-thanks-meta li:not(#spk-a) { border-inline-start: 0; border-top: 1px solid var(--spk-border); }
	.spk-thanks-meta li:nth-child(-n+2):not(#spk-a) { border-top: 0; }
	.spk-thanks-meta li:nth-child(even):not(#spk-a) { border-inline-start: 1px solid var(--spk-border); }
	.spk-od-item:not(#spk-a), .spk-od-totals:not(#spk-a), .spk-od-card:not(#spk-a) { padding-inline: 1.1rem; }
	.spk-od-item-head:not(#spk-a) { grid-template-columns: auto minmax(0, 1fr); }
	.spk-od-item-head:not(:has(.spk-od-item-img)):not(#spk-a) { grid-template-columns: minmax(0, 1fr); }
	.spk-od-item-total:not(#spk-a) { grid-column: -2 / -1; }
	.spk-od-line:not(#spk-a) { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
}

/* ---------------------------------------------------------------------
   WP-5. Fixes from the live review
   --------------------------------------------------------------------- */
/* checkout: WooCommerce puts the error box first inside the form (a grid) — it spans the full row */
.spk-checkout-page form.checkout > .woocommerce-NoticeGroup:not(#spk-a), .spk-checkout-page form.checkout > .woocommerce-error:not(#spk-a), .spk-checkout-page form.checkout > .woocommerce-message:not(#spk-a), .spk-checkout-page form.checkout > .woocommerce-info:not(#spk-a) { grid-column: 1 / -1; width: 100%; margin: 0 0 1.25rem; }
.spk-checkout-page .woocommerce-NoticeGroup ul.woocommerce-error:not(#spk-a), .spk-checkout-page ul.woocommerce-error:not(#spk-a) { margin: 0; border-color: var(--spk-co-danger); background: rgba(179, 38, 30, .05); }
.spk-checkout-page .woocommerce-NoticeGroup ul.woocommerce-error li + li:not(#spk-a) { margin-top: .35rem; }
.spk-checkout-page .woocommerce-error a:not(#spk-a) { color: var(--spk-co-danger); text-decoration: none; font-weight: 600; }
.spk-checkout-page .woocommerce-error a strong:not(#spk-a) { font-weight: 800; }
.spk-checkout-page .form-row .checkout-inline-error-message:not(#spk-a) { margin: .35rem 0 0; font-size: .8125rem; line-height: 1.7; color: var(--spk-co-danger); }

/* empty cart: the message and its button sit in the middle of the page */
.spk-cart-grid:has(.spk-cart-list > .spk-empty):not(#spk-a) { grid-template-columns: minmax(0, 1fr); }
.spk-cart-grid:has(.spk-cart-list > .spk-empty) > :not(.spk-cart-list):not(#spk-a) { display: none; }
.spk-cart-list:has(> .spk-empty):not(#spk-a) { grid-column: 1 / -1; align-items: center; justify-content: center; min-height: 18rem; }
.spk-cart-list > .spk-empty:not(#spk-a) { width: 100%; max-width: 32rem; margin-inline: auto; }

@media (max-width: 767px) {
	/* home packages slider: a shorter card on phones (smaller photo, two-line lead, includes as chips) */
	.spk-slider .spk-slide:not(#spk-a) { flex-basis: min(80%, 18.5rem); }
	.spk-slider .spk-pkg-card-media:not(#spk-a) { aspect-ratio: 16 / 11; }
	.spk-slider .spk-pkg-card-icon:not(#spk-a) { width: 2.4rem; height: 2.4rem; bottom: .75rem; inset-inline-start: .75rem; }
	.spk-slider .spk-pkg-card-body:not(#spk-a) { gap: .55rem; padding: 1rem 1.1rem 1rem; }
	.spk-slider .spk-pkg-card-title.spk-pkg-card-title:not(#spk-a) { font-size: 1.1875rem; }
	.spk-slider .spk-pkg-card-lead:not(#spk-a) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; font-size: .8125rem; line-height: 1.7; }
	.spk-slider .spk-pkg-card-inc.spk-pkg-card-inc:not(#spk-a) { flex-direction: row; flex-wrap: wrap; gap: .3rem .75rem; }
	.spk-slider .spk-pkg-card-inc li:not(#spk-a) { font-size: .8125rem; }
	.spk-slider .spk-pkg-card-foot:not(#spk-a) { padding-top: .7rem; }
	.spk-slider .spk-pkg-card-price:not(#spk-a) { font-size: 1.3125rem; }

	/* closing CTA with the photo fan (about / home): centred copy, equal buttons, the fan kept inside the screen */
	.spk-ctafan:not(#spk-a) { padding-block: 3.5rem; overflow: hidden; }
	.spk-ctafan-grid:not(#spk-a) { gap: 2.25rem; }
	.spk-ctafan-copy:not(#spk-a) { text-align: center; }
	.spk-ctafan-text:not(#spk-a) { margin-inline: auto; }
	.spk-ctafan .spk-cta-actions:not(#spk-a) { flex-direction: column; align-items: stretch; max-width: 20rem; margin-inline: auto; gap: .75rem; }
	.spk-ctafan .spk-cta-actions .spk-btn:not(#spk-a) { width: 100%; justify-content: center; }
	.spk-fan:not(#spk-a) { height: 15rem; max-width: 21rem; }
	.spk-fan-item:not(#spk-a) { width: 40%; transform: translate(50%, -50%) rotate(calc((var(--i) - 1) * 8deg)) translateX(calc((var(--i) - 1) * -58%)); }
	.spk-ctafan:hover .spk-fan-item:not(#spk-a) { transform: translate(50%, -50%) rotate(calc((var(--i) - 1) * 8deg)) translateX(calc((var(--i) - 1) * -58%)); }
}
