/* ==========================================================================
   FlowSecure — Cinematic Luxury Theme Stylesheet
   ==========================================================================
   1. Root tokens & resets
   2. Typography
   3. Layout & spacing utilities
   4. Header / Navigation
   5. Hero & sections
   6. Cards, glass panels, service grid
   7. Buttons & links
   8. Animations & scroll reveal
   9. Forms
   10. WooCommerce
   11. Footer
   12. Utilities / responsive
   ========================================================================== */

/* ---------- 1. ROOT TOKENS ---------- */
:root {
	--fs-midnight:    #070A14;
	--fs-obsidian:    #0E1424;
	--fs-graphite:    #1A2235;
	--fs-steel:       #2A3347;
	--fs-platinum:    #E8EBF2;
	--fs-pearl:       #FFFFFF;
	--fs-muted:       #8A93A8;
	--fs-sapphire:    #1E5FBF;
	--fs-azure:       #3B82F6;
	--fs-gold:        #C9A961;
	--fs-gold-bright: #E5C87A;
	--fs-border:      rgba(255,255,255,0.10);
	--fs-border-strong: rgba(255,255,255,0.18);
	--fs-glass:       rgba(255,255,255,0.04);
	--fs-glass-strong: rgba(255,255,255,0.07);
	--fs-shadow-soft: 0 4px 20px rgba(0,0,0,0.35);
	--fs-shadow-deep: 0 30px 80px rgba(0,0,0,0.5);
	--fs-gold-glow:   0 0 40px rgba(201,169,97,0.3);
	--fs-sapphire-glow: 0 0 40px rgba(30,95,191,0.35);
	--fs-radius-sm:   8px;
	--fs-radius-md:   16px;
	--fs-radius-lg:   24px;
	--fs-radius-pill: 999px;
	--fs-ease:        cubic-bezier(0.22, 1, 0.36, 1);
	--fs-ease-in-out: cubic-bezier(0.65, 0.05, 0.36, 1);
	--fs-nav-height:  82px;
}

/* ---------- RESETS / BASE ---------- */
* { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--fs-nav-height);
}

body.flowsecure-theme {
	background: var(--fs-midnight);
	color: var(--fs-platinum);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Background cinematic glow */
body.flowsecure-theme::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(ellipse 1200px 800px at 15% -10%, rgba(30,95,191,0.18), transparent 55%),
		radial-gradient(ellipse 1000px 700px at 85% 110%, rgba(201,169,97,0.10), transparent 55%);
	pointer-events: none;
}

/* Scroll progress bar */
.fs-scroll-progress {
	position: fixed;
	top: 0; left: 0;
	height: 2px;
	width: 0%;
	background: linear-gradient(90deg, var(--fs-sapphire), var(--fs-gold));
	z-index: 9999;
	transition: width 0.1s linear;
	box-shadow: 0 0 10px rgba(201,169,97,0.5);
}

/* ---------- 2. TYPOGRAPHY ---------- */
.flowsecure-theme h1,
.flowsecure-theme h2,
.flowsecure-theme h3,
.flowsecure-theme h4,
.flowsecure-theme h5,
.flowsecure-theme h6 {
	font-family: "Playfair Display", "Times New Roman", Georgia, serif;
	color: var(--fs-pearl);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 0.5em;
}

.flowsecure-theme h1 {
	font-size: clamp(2.75rem, 5vw + 1rem, 5.5rem);
	font-weight: 500;
	letter-spacing: -0.03em;
}

.flowsecure-theme h2 {
	font-size: clamp(2rem, 3.5vw + 0.5rem, 3.75rem);
}

.flowsecure-theme h3 {
	font-size: clamp(1.5rem, 2vw + 0.5rem, 2.25rem);
}

.flowsecure-theme h4 {
	font-size: 1.35rem;
	font-weight: 600;
}

.flowsecure-theme p {
	color: rgba(232,235,242,0.82);
	line-height: 1.7;
	margin: 0 0 1em;
}

.flowsecure-theme .has-display-font,
.flowsecure-theme .has-display-font-family {
	font-family: "Playfair Display", Georgia, serif !important;
}

/* Eyebrow */
.fs-eyebrow {
	display: inline-block;
	font-family: "Inter", sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fs-gold);
	padding: 0.5em 1.2em;
	border: 1px solid rgba(201,169,97,0.35);
	border-radius: var(--fs-radius-pill);
	background: rgba(201,169,97,0.05);
	margin-bottom: 1.5rem;
}

/* Gold gradient text */
.fs-gold-text,
.has-gold-sheen-gradient-background {
	background: linear-gradient(135deg, var(--fs-gold) 0%, var(--fs-gold-bright) 50%, var(--fs-gold) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* ---------- 3. LAYOUT ---------- */
.flowsecure-theme .wp-block-group.alignfull,
.flowsecure-theme .wp-block-cover.alignfull {
	margin-left: 0;
	margin-right: 0;
}

.fs-section {
	padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 4vw, 3rem);
	position: relative;
}

.fs-container {
	max-width: 1280px;
	margin: 0 auto;
}

/* ---------- 4. HEADER / NAV ---------- */
.wp-site-blocks > header,
.flowsecure-theme .site-header,
.flowsecure-theme .wp-block-template-part[data-type="header"] {
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	background: rgba(7, 10, 20, 0.72);
	border-bottom: 1px solid var(--fs-border);
	transition: all 0.3s var(--fs-ease);
}

.flowsecure-theme .wp-block-site-title a,
.flowsecure-theme .wp-block-site-title {
	color: var(--fs-pearl) !important;
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.flowsecure-theme .wp-block-navigation {
	--wp--style--block-gap: 2rem;
	font-size: 0.95rem;
	font-weight: 500;
}

.flowsecure-theme .wp-block-navigation a {
	color: var(--fs-platinum);
	transition: color 0.25s var(--fs-ease);
	position: relative;
}

.flowsecure-theme .wp-block-navigation a:hover {
	color: var(--fs-gold);
}

.flowsecure-theme .wp-block-navigation__submenu-container {
	background: rgba(14, 20, 36, 0.96) !important;
	backdrop-filter: blur(20px);
	border: 1px solid var(--fs-border) !important;
	border-radius: var(--fs-radius-md);
	box-shadow: var(--fs-shadow-deep);
	padding: 0.5rem !important;
	min-width: 220px;
}

.flowsecure-theme .wp-block-navigation__submenu-container a {
	border-radius: var(--fs-radius-sm);
	padding: 0.65rem 1rem !important;
}

.flowsecure-theme .wp-block-navigation__submenu-container a:hover {
	background: var(--fs-glass-strong);
}

/* ---------- 5. HERO ---------- */
.fs-hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(8rem, 14vw, 11rem) 1.5rem clamp(5rem, 8vw, 7rem);
	overflow: hidden;
	text-align: center;
}

.fs-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top, rgba(30,95,191,0.28) 0%, transparent 55%),
		radial-gradient(ellipse at bottom, rgba(201,169,97,0.14) 0%, transparent 60%);
	pointer-events: none;
}

.fs-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
	background-size: 80px 80px;
	mask-image: radial-gradient(ellipse at center, black 20%, transparent 70%);
	pointer-events: none;
}

.fs-hero > * { position: relative; z-index: 2; }

.fs-hero h1 {
	max-width: 17ch;
	margin-left: auto;
	margin-right: auto;
	text-shadow: 0 4px 40px rgba(0,0,0,0.5);
}

.fs-hero-sub {
	max-width: 58ch;
	margin: 1.5rem auto 2.5rem;
	font-size: clamp(1.05rem, 1.4vw + 0.5rem, 1.3rem);
	color: rgba(232,235,242,0.75);
	line-height: 1.65;
}

/* Scroll indicator */
.fs-scroll-indicator {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	color: var(--fs-muted);
	font-size: 0.75rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	opacity: 0.7;
	animation: fsFloat 2.5s ease-in-out infinite;
}

@keyframes fsFloat {
	0%,100% { transform: translate(-50%, 0); }
	50%     { transform: translate(-50%, 8px); }
}

/* ---------- 6. CARDS, GLASS PANELS, SERVICE GRID ---------- */
.fs-glass {
	background: var(--fs-glass);
	border: 1px solid var(--fs-border);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: var(--fs-radius-lg);
	padding: 2.5rem;
	transition: transform 0.5s var(--fs-ease), border-color 0.5s var(--fs-ease), background 0.5s var(--fs-ease);
}

.fs-glass:hover {
	transform: translateY(-6px);
	border-color: rgba(201,169,97,0.3);
	background: var(--fs-glass-strong);
}

.fs-service-card {
	background: linear-gradient(145deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.015) 100%);
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-lg);
	padding: 2.75rem 2.25rem;
	position: relative;
	overflow: hidden;
	transition: all 0.6s var(--fs-ease);
}

.fs-service-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(30,95,191,0.08), transparent 60%);
	opacity: 0;
	transition: opacity 0.5s var(--fs-ease);
	pointer-events: none;
}

.fs-service-card:hover {
	transform: translateY(-8px);
	border-color: rgba(201,169,97,0.35);
	box-shadow: var(--fs-shadow-deep), 0 0 0 1px rgba(201,169,97,0.1);
}

.fs-service-card:hover::before { opacity: 1; }

.fs-service-card .fs-service-number {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 3.5rem;
	font-weight: 500;
	font-style: italic;
	line-height: 1;
	background: linear-gradient(135deg, var(--fs-gold) 0%, var(--fs-gold-bright) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	margin-bottom: 1.25rem;
	display: block;
}

.fs-service-card h3 {
	margin: 0 0 0.75rem;
	font-size: 1.65rem;
}

.fs-service-card p {
	color: rgba(232,235,242,0.72);
	margin: 0 0 1.5rem;
	font-size: 0.98rem;
}

.fs-service-card ul {
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

.fs-service-card ul li {
	padding: 0.55rem 0 0.55rem 1.75rem;
	position: relative;
	color: rgba(232,235,242,0.75);
	font-size: 0.93rem;
	border-bottom: 1px solid rgba(255,255,255,0.05);
}

.fs-service-card ul li:last-child { border-bottom: 0; }

.fs-service-card ul li::before {
	content: "";
	position: absolute;
	left: 0; top: 1.05rem;
	width: 10px; height: 2px;
	background: var(--fs-gold);
	transition: width 0.3s var(--fs-ease);
}

.fs-service-card:hover ul li::before { width: 16px; }

/* Feature / stat card */
.fs-stat {
	text-align: center;
	padding: 2rem 1rem;
}

.fs-stat-number {
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(2.75rem, 5vw, 4.5rem);
	font-weight: 500;
	background: linear-gradient(135deg, var(--fs-gold) 0%, var(--fs-gold-bright) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	display: block;
	line-height: 1;
	margin-bottom: 0.5rem;
}

.fs-stat-label {
	font-size: 0.85rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--fs-muted);
}

/* Process timeline */
.fs-process {
	display: grid;
	gap: 1.5rem;
}

.fs-process-step {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 2rem;
	padding: 2rem;
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-lg);
	background: var(--fs-glass);
	position: relative;
	transition: all 0.5s var(--fs-ease);
}

.fs-process-step:hover {
	border-color: rgba(201,169,97,0.3);
	transform: translateX(4px);
}

/* NOTE: Numbering is now provided by explicit markup in the page content
   (a <p> element with the number), not a CSS counter. Removing the
   ::before counter prevents the duplicate "01 01" / "02 02" bug. */

.fs-process-step h4 {
	margin: 0 0 0.5rem;
	font-size: 1.3rem;
	color: var(--fs-pearl);
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 500;
}

.fs-process-step p {
	margin: 0;
	color: rgba(232,235,242,0.72);
	font-size: 0.95rem;
}

/* Testimonial — readable premium body, decorative gold quote mark */
.fs-testimonial {
	background: linear-gradient(155deg, rgba(255,255,255,0.055), rgba(255,255,255,0.012));
	border: 1px solid rgba(255,255,255,0.09);
	border-radius: 20px;
	padding: 3rem 2.5rem 2.5rem;
	position: relative;
	transition: transform .5s var(--fs-ease), border-color .5s var(--fs-ease), box-shadow .5s var(--fs-ease);
}

.fs-testimonial:hover {
	border-color: rgba(201,169,97,0.25);
	transform: translateY(-4px);
	box-shadow: 0 30px 60px -30px rgba(0,0,0,0.6);
}

.fs-testimonial::before {
	content: """;
	position: absolute;
	top: -1.25rem;
	left: 1.75rem;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 7rem;
	font-style: italic;
	font-weight: 600;
	line-height: 1;
	color: var(--fs-gold);
	opacity: 0.28;
	pointer-events: none;
}

/* Override any inline italic that block-markup tried to set on the quote body —
   long-form italic is hard to read on dark. Keep italic only for attribution flourish. */
.fs-testimonial p,
.fs-testimonial blockquote,
.fs-testimonial .wp-block-paragraph {
	font-family: "Inter", system-ui, sans-serif !important;
	font-style: normal !important;
	font-size: 1.075rem;
	line-height: 1.75;
	font-weight: 400;
	color: var(--fs-platinum);
	letter-spacing: 0.005em;
	margin: 0 0 1.5rem;
	padding: 0;
	border: 0;
}

/* The small attribution line (role + domain) stays in Inter, uppercase, gold */
.fs-testimonial p:last-child,
.fs-testimonial .has-gold-color {
	font-size: 0.78rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase;
	color: var(--fs-gold) !important;
	margin-bottom: 0;
	opacity: 0.95;
}

.fs-testimonial-author { display: flex; align-items: center; gap: 1rem; }
.fs-testimonial-author strong {
	display: block;
	font-family: "Inter", sans-serif;
	font-style: normal;
	color: var(--fs-pearl);
	font-weight: 600;
	font-size: 0.95rem;
}
.fs-testimonial-author span {
	font-family: "Inter", sans-serif;
	font-style: normal;
	color: var(--fs-muted);
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* FAQ */
.fs-faq details {
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-md);
	background: var(--fs-glass);
	margin-bottom: 0.875rem;
	overflow: hidden;
	transition: border-color 0.3s var(--fs-ease);
}

.fs-faq details[open] {
	border-color: rgba(201,169,97,0.3);
}

.fs-faq summary {
	padding: 1.5rem 1.75rem;
	cursor: pointer;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.15rem;
	color: var(--fs-pearl);
	display: flex;
	justify-content: space-between;
	align-items: center;
	list-style: none;
	font-weight: 500;
}

.fs-faq summary::-webkit-details-marker { display: none; }

.fs-faq summary::after {
	content: "+";
	font-family: "Inter", sans-serif;
	color: var(--fs-gold);
	font-size: 1.75rem;
	font-weight: 300;
	line-height: 1;
	transition: transform 0.35s var(--fs-ease);
}

.fs-faq details[open] summary::after { transform: rotate(45deg); }

.fs-faq details > div,
.fs-faq details > p {
	padding: 0 1.75rem 1.5rem;
	color: rgba(232,235,242,0.72);
	margin: 0;
	line-height: 1.7;
}

/* Divider */
.fs-divider {
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, var(--fs-border) 50%, transparent 100%);
	margin: 0;
	border: 0;
}

/* ---------- 7. BUTTONS ---------- */
.flowsecure-theme .wp-block-button__link,
.fs-btn {
	border-radius: var(--fs-radius-pill);
	padding: 0.95rem 2.25rem;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.98rem;
	letter-spacing: 0.02em;
	transition: all 0.35s var(--fs-ease);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	border: 1px solid transparent;
	text-decoration: none;
	cursor: pointer;
}

/* Primary (Gold) */
.flowsecure-theme .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.fs-btn-primary {
	background: linear-gradient(135deg, var(--fs-gold) 0%, var(--fs-gold-bright) 100%);
	color: var(--fs-midnight);
	box-shadow: 0 8px 30px rgba(201,169,97,0.25);
}

.flowsecure-theme .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.fs-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 40px rgba(201,169,97,0.4);
	color: var(--fs-midnight);
}

/* Outline */
.flowsecure-theme .wp-block-button.is-style-outline .wp-block-button__link,
.fs-btn-outline {
	background: transparent;
	border: 1px solid var(--fs-border-strong);
	color: var(--fs-pearl);
}

.flowsecure-theme .wp-block-button.is-style-outline .wp-block-button__link:hover,
.fs-btn-outline:hover {
	border-color: var(--fs-gold);
	color: var(--fs-gold);
	background: rgba(201,169,97,0.05);
}

.fs-btn svg,
.wp-block-button__link svg { width: 16px; height: 16px; }

/* Floating CTA */
.fs-floating-cta {
	position: fixed;
	bottom: 1.75rem;
	right: 1.75rem;
	background: linear-gradient(135deg, var(--fs-gold), var(--fs-gold-bright));
	color: var(--fs-midnight);
	padding: 1rem 1.75rem;
	border-radius: var(--fs-radius-pill);
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 10px 40px rgba(201,169,97,0.35);
	z-index: 50;
	transform: translateY(100px);
	opacity: 0;
	transition: all 0.5s var(--fs-ease);
	font-size: 0.92rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.fs-floating-cta.is-visible {
	transform: translateY(0);
	opacity: 1;
}

.fs-floating-cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 50px rgba(201,169,97,0.5);
}

@media (max-width: 640px) {
	.fs-floating-cta {
		bottom: 1rem;
		right: 1rem;
		padding: 0.85rem 1.25rem;
		font-size: 0.85rem;
	}
}

/* ---------- 8. SCROLL REVEAL ---------- */
[data-fs-reveal] {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.9s var(--fs-ease), transform 0.9s var(--fs-ease);
}

[data-fs-reveal].is-revealed {
	opacity: 1;
	transform: translateY(0);
}

[data-fs-reveal="left"]  { transform: translateX(-40px); }
[data-fs-reveal="right"] { transform: translateX(40px);  }
[data-fs-reveal="left"].is-revealed,
[data-fs-reveal="right"].is-revealed {
	transform: translateX(0);
}

[data-fs-reveal-delay="1"] { transition-delay: 0.1s; }
[data-fs-reveal-delay="2"] { transition-delay: 0.2s; }
[data-fs-reveal-delay="3"] { transition-delay: 0.3s; }
[data-fs-reveal-delay="4"] { transition-delay: 0.4s; }

@media (prefers-reduced-motion: reduce) {
	[data-fs-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
	html { scroll-behavior: auto; }
}

/* ---------- 9. FORMS ---------- */
.fs-form {
	max-width: 640px;
	margin: 0 auto;
}

.fs-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

@media (max-width: 640px) { .fs-form-row { grid-template-columns: 1fr; } }

.fs-form label {
	display: block;
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fs-muted);
	margin-bottom: 0.5rem;
	font-weight: 500;
}

.fs-form input[type="text"],
.fs-form input[type="email"],
.fs-form input[type="tel"],
.fs-form input[type="url"],
.fs-form input[type="number"],
.fs-form select,
.fs-form textarea,
.flowsecure-theme input[type="text"],
.flowsecure-theme input[type="email"],
.flowsecure-theme input[type="tel"],
.flowsecure-theme input[type="password"],
.flowsecure-theme input[type="search"],
.flowsecure-theme input[type="url"],
.flowsecure-theme input[type="number"],
.flowsecure-theme textarea,
.flowsecure-theme select {
	width: 100%;
	background: var(--fs-glass);
	border: 1px solid var(--fs-border);
	color: var(--fs-pearl);
	font-family: "Inter", sans-serif;
	font-size: 1rem;
	padding: 1rem 1.15rem;
	border-radius: var(--fs-radius-md);
	transition: all 0.3s var(--fs-ease);
	outline: none;
}

.fs-form input:focus,
.fs-form select:focus,
.fs-form textarea:focus,
.flowsecure-theme input:focus,
.flowsecure-theme textarea:focus,
.flowsecure-theme select:focus {
	border-color: var(--fs-gold);
	background: var(--fs-glass-strong);
	box-shadow: 0 0 0 4px rgba(201,169,97,0.1);
}

.fs-form textarea { min-height: 140px; resize: vertical; }

.fs-form-row.full { grid-template-columns: 1fr; }

.fs-form-message {
	padding: 1rem 1.25rem;
	border-radius: var(--fs-radius-md);
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}

.fs-form-message.success {
	background: rgba(16,185,129,0.1);
	border: 1px solid rgba(16,185,129,0.3);
	color: #6EE7B7;
}

.fs-form-message.error {
	background: rgba(220,38,38,0.1);
	border: 1px solid rgba(220,38,38,0.3);
	color: #FCA5A5;
}

/* ---------- 10. WOOCOMMERCE ---------- */
.flowsecure-theme .woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.flowsecure-theme .woocommerce ul.products li.product {
	background: linear-gradient(145deg, rgba(255,255,255,0.05), rgba(255,255,255,0.01));
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-lg);
	padding: 1.5rem;
	margin: 0;
	width: 100%;
	float: none;
	transition: all 0.5s var(--fs-ease);
	position: relative;
	overflow: hidden;
}

.flowsecure-theme .woocommerce ul.products li.product::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(30,95,191,0.06), transparent 60%);
	opacity: 0;
	transition: opacity 0.5s var(--fs-ease);
	pointer-events: none;
}

.flowsecure-theme .woocommerce ul.products li.product:hover {
	border-color: rgba(201,169,97,0.3);
	transform: translateY(-6px);
	box-shadow: var(--fs-shadow-deep);
}

.flowsecure-theme .woocommerce ul.products li.product:hover::before { opacity: 1; }

.flowsecure-theme .woocommerce ul.products li.product img {
	border-radius: var(--fs-radius-md);
	margin-bottom: 1.25rem;
}

.flowsecure-theme .woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: "Playfair Display", Georgia, serif !important;
	color: var(--fs-pearl) !important;
	font-size: 1.25rem !important;
	font-weight: 500 !important;
	padding: 0 !important;
	margin: 0 0 0.75rem !important;
	line-height: 1.3 !important;
}

.flowsecure-theme .woocommerce ul.products li.product .price {
	color: var(--fs-gold) !important;
	font-weight: 600 !important;
	font-family: "Inter", sans-serif !important;
	font-size: 1.1rem !important;
	margin-bottom: 1rem !important;
}

.flowsecure-theme .woocommerce ul.products li.product .price del { color: var(--fs-muted) !important; opacity: 0.6; }
.flowsecure-theme .woocommerce ul.products li.product .price ins { background: transparent !important; text-decoration: none; }

.flowsecure-theme .woocommerce ul.products li.product a.button,
.flowsecure-theme .woocommerce a.button,
.flowsecure-theme .woocommerce button.button,
.flowsecure-theme .woocommerce .button,
.flowsecure-theme .woocommerce #respond input#submit,
.flowsecure-theme .woocommerce-page #respond input#submit,
.flowsecure-theme .woocommerce input.button,
.flowsecure-theme .woocommerce #respond input#submit.alt,
.flowsecure-theme .woocommerce a.button.alt,
.flowsecure-theme .woocommerce button.button.alt,
.flowsecure-theme .woocommerce input.button.alt {
	background: linear-gradient(135deg, var(--fs-gold), var(--fs-gold-bright)) !important;
	color: var(--fs-midnight) !important;
	border: none !important;
	padding: 0.85rem 1.75rem !important;
	border-radius: var(--fs-radius-pill) !important;
	font-weight: 600 !important;
	font-size: 0.92rem !important;
	letter-spacing: 0.02em !important;
	transition: all 0.35s var(--fs-ease) !important;
	text-shadow: none !important;
	box-shadow: 0 6px 20px rgba(201,169,97,0.2) !important;
}

.flowsecure-theme .woocommerce a.button:hover,
.flowsecure-theme .woocommerce button.button:hover,
.flowsecure-theme .woocommerce .button:hover,
.flowsecure-theme .woocommerce #respond input#submit:hover,
.flowsecure-theme .woocommerce input.button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 30px rgba(201,169,97,0.35) !important;
}

.flowsecure-theme .woocommerce span.onsale {
	background: linear-gradient(135deg, var(--fs-sapphire), var(--fs-azure)) !important;
	color: var(--fs-pearl) !important;
	font-family: "Inter", sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	border-radius: var(--fs-radius-pill) !important;
	padding: 0.35rem 0.9rem !important;
	min-height: auto !important;
	min-width: auto !important;
	line-height: 1.4 !important;
	top: 1rem !important;
	left: 1rem !important;
}

/* Single product */
.flowsecure-theme .woocommerce div.product .product_title {
	font-family: "Playfair Display", Georgia, serif !important;
	color: var(--fs-pearl) !important;
	font-size: clamp(1.8rem, 3vw, 2.75rem) !important;
	font-weight: 500 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em;
}

.flowsecure-theme .woocommerce div.product p.price,
.flowsecure-theme .woocommerce div.product span.price {
	color: var(--fs-gold) !important;
	font-size: 1.75rem !important;
	font-weight: 600 !important;
	margin-bottom: 1.5rem !important;
}

.flowsecure-theme .woocommerce div.product .woocommerce-product-details__short-description {
	color: rgba(232,235,242,0.8);
	line-height: 1.7;
	margin-bottom: 2rem;
}

.flowsecure-theme .woocommerce div.product form.cart {
	background: var(--fs-glass);
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-lg);
	padding: 1.75rem;
	margin-bottom: 2rem;
}

.flowsecure-theme .woocommerce div.product form.cart .variations {
	margin-bottom: 1.25rem;
}

.flowsecure-theme .woocommerce div.product form.cart .variations th,
.flowsecure-theme .woocommerce div.product form.cart .variations td {
	color: var(--fs-platinum);
	padding: 0.5rem 0;
}

.flowsecure-theme .woocommerce div.product form.cart .variations label {
	color: var(--fs-muted);
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 500;
}

.flowsecure-theme .woocommerce div.product .woocommerce-tabs ul.tabs {
	border-bottom: 1px solid var(--fs-border);
	padding: 0;
	margin: 0 0 2rem;
}

.flowsecure-theme .woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 1.5rem 0 0 !important;
}

.flowsecure-theme .woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--fs-muted) !important;
	padding: 1rem 0 !important;
	font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: 0.9rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-bottom: 2px solid transparent;
	transition: all 0.3s var(--fs-ease);
}

.flowsecure-theme .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--fs-gold) !important;
	border-bottom-color: var(--fs-gold);
}

.flowsecure-theme .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.flowsecure-theme .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.flowsecure-theme .woocommerce-Tabs-panel {
	color: rgba(232,235,242,0.8);
	line-height: 1.75;
}

.flowsecure-theme .woocommerce-Tabs-panel h2 {
	font-size: 1.5rem !important;
	margin-bottom: 1rem !important;
}

/* Cart + checkout */
.flowsecure-theme .woocommerce table.shop_table {
	background: var(--fs-glass);
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.flowsecure-theme .woocommerce table.shop_table th,
.flowsecure-theme .woocommerce table.shop_table td {
	color: var(--fs-platinum);
	padding: 1.25rem 1rem;
	border-bottom: 1px solid var(--fs-border);
}

.flowsecure-theme .woocommerce table.shop_table th {
	color: var(--fs-muted);
	font-weight: 500;
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.flowsecure-theme .woocommerce-cart table.cart img {
	border-radius: var(--fs-radius-sm);
	width: 64px;
}

.flowsecure-theme .woocommerce .cart_totals,
.flowsecure-theme .woocommerce-checkout #order_review,
.flowsecure-theme .woocommerce-checkout .woocommerce-billing-fields,
.flowsecure-theme .woocommerce-checkout .woocommerce-additional-fields {
	background: var(--fs-glass);
	border: 1px solid var(--fs-border);
	border-radius: var(--fs-radius-lg);
	padding: 2rem;
}

.flowsecure-theme .woocommerce form .form-row label {
	color: var(--fs-muted);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 500;
}

.flowsecure-theme .woocommerce form .form-row .required {
	color: var(--fs-gold);
	text-decoration: none;
}

.flowsecure-theme .woocommerce-message,
.flowsecure-theme .woocommerce-info,
.flowsecure-theme .woocommerce-error,
.flowsecure-theme .woocommerce-notice {
	background: var(--fs-glass-strong) !important;
	border-top: 3px solid var(--fs-gold) !important;
	color: var(--fs-pearl) !important;
	border-radius: var(--fs-radius-md) !important;
	padding: 1.25rem 1.5rem !important;
}

.flowsecure-theme .woocommerce-message::before,
.flowsecure-theme .woocommerce-info::before {
	color: var(--fs-gold) !important;
}

/* My Account */
.flowsecure-theme .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.flowsecure-theme .woocommerce-MyAccount-navigation li {
	margin: 0 0 0.5rem;
}

.flowsecure-theme .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.75rem 1rem;
	color: var(--fs-platinum);
	text-decoration: none;
	border-radius: var(--fs-radius-sm);
	border: 1px solid var(--fs-border);
	background: var(--fs-glass);
	transition: all 0.3s var(--fs-ease);
}

.flowsecure-theme .woocommerce-MyAccount-navigation li.is-active a,
.flowsecure-theme .woocommerce-MyAccount-navigation li a:hover {
	color: var(--fs-gold);
	border-color: rgba(201,169,97,0.3);
	background: var(--fs-glass-strong);
}

/* ---------- 11. FOOTER ---------- */
.flowsecure-theme .wp-block-template-part[data-type="footer"],
.flowsecure-theme .site-footer {
	background: linear-gradient(180deg, var(--fs-midnight) 0%, #03060D 100%);
	border-top: 1px solid var(--fs-border);
	padding: 5rem 1.5rem 2rem;
	margin-top: 4rem;
}

/* ---------- 12. UTILITIES ---------- */
.fs-center { text-align: center; }
.fs-muted  { color: var(--fs-muted); }
.fs-gold   { color: var(--fs-gold); }
.fs-pearl  { color: var(--fs-pearl); }

.fs-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.fs-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.fs-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }

@media (max-width: 1024px) {
	.fs-grid-3, .fs-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
	.fs-grid-2, .fs-grid-3, .fs-grid-4 { grid-template-columns: 1fr; }
	.fs-hero { min-height: 80vh; padding-top: 7rem; }
	.fs-section { padding-left: 1.25rem; padding-right: 1.25rem; }
}

/* Selection */
.flowsecure-theme ::selection {
	background: var(--fs-gold);
	color: var(--fs-midnight);
}

/* Scrollbar */
.flowsecure-theme::-webkit-scrollbar,
body.flowsecure-theme::-webkit-scrollbar { width: 10px; }
body.flowsecure-theme::-webkit-scrollbar-track { background: var(--fs-midnight); }
body.flowsecure-theme::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, var(--fs-sapphire), var(--fs-gold));
	border-radius: 10px;
}

/* Admin bar compensation */
.admin-bar .wp-site-blocks > header { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header { top: 46px; } }

/* ==========================================================================
   FOOTER — Premium Redesign (v2)
   ========================================================================== */

.fs-footer {
	background: linear-gradient(180deg, var(--fs-midnight) 0%, #050810 100%) !important;
	position: relative;
	overflow: hidden;
}

.fs-footer::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(201,169,97,0.35) 35%,
		rgba(201,169,97,0.5) 50%,
		rgba(201,169,97,0.35) 65%,
		transparent 100%);
	pointer-events: none;
}

.fs-footer::after {
	content: "";
	position: absolute;
	bottom: -40%;
	right: -10%;
	width: 50%;
	height: 80%;
	background: radial-gradient(ellipse at center, rgba(201,169,97,0.035) 0%, transparent 60%);
	pointer-events: none;
	z-index: 0;
}

.fs-footer > * { position: relative; z-index: 1; }

.fs-footer .wp-block-site-title a,
.fs-footer .wp-block-site-title {
	color: var(--fs-pearl) !important;
	text-decoration: none !important;
	font-family: "Playfair Display", Georgia, serif !important;
	transition: color .3s var(--fs-ease);
}

.fs-footer-tagline {
	font-family: "Playfair Display", Georgia, serif !important;
	letter-spacing: -0.005em;
}

.fs-footer-heading {
	position: relative;
	padding-bottom: .8rem;
	color: var(--fs-gold) !important;
}

.fs-footer-heading::after {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	background: linear-gradient(90deg, var(--fs-gold) 0%, transparent 100%);
	margin-top: .8rem;
}

/* Kill default underlines + make links elegant */
.fs-footer a {
	color: var(--fs-platinum) !important;
	text-decoration: none !important;
	position: relative;
	transition: color .35s var(--fs-ease), padding .35s var(--fs-ease);
	display: inline-block;
}

.fs-footer-list li a,
.fs-footer-legal a {
	color: rgba(232,235,242,0.78) !important;
	font-weight: 400;
}

.fs-footer-list li a::before {
	content: "";
	display: inline-block;
	width: 0;
	height: 1px;
	background: var(--fs-gold);
	margin-right: 0;
	vertical-align: middle;
	transition: width .35s var(--fs-ease), margin-right .35s var(--fs-ease);
}

.fs-footer-list li a:hover {
	color: var(--fs-gold) !important;
}

.fs-footer-list li a:hover::before {
	width: 14px;
	margin-right: 10px;
}

.fs-footer-list li {
	list-style: none;
	border: 0;
	padding: 0;
	margin: 0;
}

.fs-footer-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 1.25rem 0 0 !important;
}

.fs-footer-list::marker { content: none; }

.fs-footer-contact a {
	color: var(--fs-pearl) !important;
	font-weight: 400;
	transition: color .35s var(--fs-ease);
	position: relative;
}

.fs-footer-contact a:first-child {
	color: var(--fs-gold) !important;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.05rem;
	letter-spacing: 0.005em;
}

.fs-footer-contact a:hover { color: var(--fs-gold-bright, #E5C87A) !important; }

.fs-footer-legal a {
	color: rgba(232,235,242,0.6) !important;
	font-size: 0.82rem;
	letter-spacing: 0.05em;
	transition: color .3s var(--fs-ease);
}

.fs-footer-legal a:hover { color: var(--fs-gold) !important; }

.fs-footer-bottom {
	font-family: "Inter", sans-serif;
}

@media (max-width: 900px) {
	.fs-footer-cols { gap: 2.5rem !important; }
	.fs-footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
}

/* ==========================================================================
   PRE-FOOTER CTA — Final conversion before footer
   ========================================================================== */

.fs-pre-footer {
	position: relative;
	background:
		radial-gradient(ellipse at 20% 50%, rgba(30,95,191,0.08) 0%, transparent 60%),
		radial-gradient(ellipse at 80% 50%, rgba(201,169,97,0.06) 0%, transparent 60%),
		linear-gradient(180deg, transparent 0%, rgba(14,20,36,0.6) 100%);
	border-top: 1px solid rgba(255,255,255,0.05);
	overflow: hidden;
}

.fs-pre-footer::before,
.fs-pre-footer::after {
	content: "";
	position: absolute;
	width: 1px;
	height: 60%;
	top: 20%;
	background: linear-gradient(180deg, transparent 0%, rgba(201,169,97,0.3) 50%, transparent 100%);
	pointer-events: none;
}

.fs-pre-footer::before { left: 6%; }
.fs-pre-footer::after  { right: 6%; }

/* ==========================================================================
   HEADER refinement — premium transitions
   ========================================================================== */

.fs-footer .wp-block-site-logo img {
	filter: brightness(1.1);
}

/* ==========================================================================
   EDITOR FIX — When user edits Home page, show helpful context
   ========================================================================== */

.wp-block-post-content .fs-hero,
.wp-block-post-content .fs-section {
	/* Ensure user sees section boundaries in editor */
}

/* ==========================================================================
   Premium subtle refinements
   ========================================================================== */

/* Smoother link hover state for any in-content link */
.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link) {
	color: var(--fs-gold);
	text-decoration: none;
	background-image: linear-gradient(var(--fs-gold), var(--fs-gold));
	background-size: 0% 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: background-size .4s var(--fs-ease);
}
.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link):hover {
	background-size: 100% 1px;
}

/* ==========================================================================
   v2.2 — PREMIUM BUTTON REFINEMENT
   Consistent cinematic buttons across the entire site
   ========================================================================== */

/* Reset any legacy variation, enforce premium baseline */
.fs-btn,
.wp-block-button.fs-btn .wp-block-button__link,
.fs-btn .wp-block-button__link,
.fs-header-cta .wp-block-button__link {
	font-family: "Inter", system-ui, sans-serif !important;
	font-weight: 500 !important;
	font-size: 0.92rem !important;
	letter-spacing: 0.04em !important;
	line-height: 1 !important;
	border-radius: 999px !important;
	transition:
		transform .45s cubic-bezier(0.22,1,0.36,1),
		box-shadow .45s cubic-bezier(0.22,1,0.36,1),
		background .4s cubic-bezier(0.22,1,0.36,1),
		color .3s cubic-bezier(0.22,1,0.36,1),
		border-color .4s cubic-bezier(0.22,1,0.36,1) !important;
	position: relative !important;
	overflow: hidden;
	white-space: nowrap;
	text-decoration: none !important;
	display: inline-block;
	padding: 1.1rem 2.1rem !important;
	border: 1px solid transparent !important;
	cursor: pointer;
	text-align: center;
}

/* PRIMARY — gold pill with cinematic gold sheen sweep on hover */
.fs-btn.fs-btn-primary .wp-block-button__link,
.fs-btn-primary,
button.fs-btn-primary,
.fs-form-actions button[type="submit"],
.wp-block-button.fs-btn-primary .wp-block-button__link {
	background: linear-gradient(135deg, #C9A961 0%, #D8B878 50%, #C9A961 100%) !important;
	background-size: 200% 100% !important;
	background-position: 0% 50% !important;
	color: #070A14 !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.25) inset,
		0 8px 24px -12px rgba(201,169,97,0.55),
		0 2px 6px -2px rgba(201,169,97,0.35) !important;
	border: 1px solid rgba(201,169,97,0.35) !important;
}
.fs-btn.fs-btn-primary .wp-block-button__link::before,
.fs-btn-primary::before {
	content: "";
	position: absolute;
	top: 0; left: -100%;
	width: 100%; height: 100%;
	background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
	transition: left .7s cubic-bezier(0.22,1,0.36,1);
	pointer-events: none;
}
.fs-btn.fs-btn-primary:hover .wp-block-button__link,
.fs-btn.fs-btn-primary .wp-block-button__link:hover,
.fs-btn-primary:hover,
button.fs-btn-primary:hover,
.fs-form-actions button[type="submit"]:hover,
.wp-block-button.fs-btn-primary .wp-block-button__link:hover {
	background-position: 100% 50% !important;
	transform: translateY(-2px) !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.3) inset,
		0 16px 36px -14px rgba(201,169,97,0.75),
		0 4px 12px -3px rgba(201,169,97,0.5) !important;
	color: #070A14 !important;
}
.fs-btn.fs-btn-primary:hover .wp-block-button__link::before,
.fs-btn-primary:hover::before {
	left: 100%;
}
.fs-btn.fs-btn-primary:active .wp-block-button__link,
.fs-btn-primary:active {
	transform: translateY(0) !important;
	transition-duration: .15s !important;
}

/* OUTLINE — hairline border with gold fill-in on hover */
.fs-btn.fs-btn-outline .wp-block-button__link,
.fs-btn-outline,
a.fs-btn-outline,
.wp-block-button.fs-btn-outline .wp-block-button__link {
	background: transparent !important;
	color: #E8EBF2 !important;
	border: 1px solid rgba(201,169,97,0.45) !important;
	box-shadow: 0 0 0 0 rgba(201,169,97,0) !important;
}
.fs-btn.fs-btn-outline .wp-block-button__link::before,
.fs-btn-outline::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(201,169,97,0.15) 0%, rgba(201,169,97,0.05) 100%);
	opacity: 0;
	transition: opacity .4s cubic-bezier(0.22,1,0.36,1);
	pointer-events: none;
}
.fs-btn.fs-btn-outline:hover .wp-block-button__link,
.fs-btn.fs-btn-outline .wp-block-button__link:hover,
.fs-btn-outline:hover,
a.fs-btn-outline:hover,
.wp-block-button.fs-btn-outline .wp-block-button__link:hover {
	border-color: #C9A961 !important;
	color: #E5C87A !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 12px 32px -14px rgba(201,169,97,0.4) !important;
}
.fs-btn.fs-btn-outline:hover .wp-block-button__link::before,
.fs-btn-outline:hover::before {
	opacity: 1;
}

/* Header CTA — slightly more compact */
.fs-header-cta .wp-block-button__link {
	padding: .85rem 1.5rem !important;
	font-size: .88rem !important;
}

/* Form submit button — match primary */
.fs-form button[type="submit"],
.fs-form-ajax button[type="submit"] {
	background: linear-gradient(135deg, #C9A961 0%, #D8B878 50%, #C9A961 100%) !important;
	background-size: 200% 100% !important;
	color: #070A14 !important;
	border: 1px solid rgba(201,169,97,0.35) !important;
	border-radius: 999px !important;
	padding: 1.1rem 2.4rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.05em !important;
	font-size: 0.94rem !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.25) inset,
		0 8px 24px -12px rgba(201,169,97,0.55) !important;
	cursor: pointer;
	transition: all .45s cubic-bezier(0.22,1,0.36,1) !important;
}
.fs-form button[type="submit"]:hover,
.fs-form-ajax button[type="submit"]:hover {
	background-position: 100% 50% !important;
	transform: translateY(-2px) !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.3) inset,
		0 16px 36px -14px rgba(201,169,97,0.75) !important;
}
.fs-form button[type="submit"]:active,
.fs-form-ajax button[type="submit"]:active {
	transform: translateY(0) !important;
}
.fs-form button[type="submit"]:disabled {
	opacity: .6;
	cursor: not-allowed;
	transform: none !important;
}

/* WooCommerce buttons — shop / single product / cart / checkout */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce .button,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order,
body.woocommerce .single_add_to_cart_button,
body.woocommerce-page button.woocommerce-Button,
body .checkout-button,
body .wc-proceed-to-checkout a.button {
	background: linear-gradient(135deg, #C9A961 0%, #D8B878 50%, #C9A961 100%) !important;
	background-size: 200% 100% !important;
	background-position: 0% 50% !important;
	color: #070A14 !important;
	border: 1px solid rgba(201,169,97,0.35) !important;
	border-radius: 999px !important;
	padding: 1rem 2rem !important;
	font-family: "Inter", sans-serif !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	font-size: 0.92rem !important;
	text-transform: none !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.25) inset,
		0 8px 24px -12px rgba(201,169,97,0.55) !important;
	transition: all .45s cubic-bezier(0.22,1,0.36,1) !important;
	text-decoration: none !important;
	text-shadow: none !important;
	line-height: 1 !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #payment #place_order:hover,
body .checkout-button:hover,
body .wc-proceed-to-checkout a.button:hover {
	background-position: 100% 50% !important;
	transform: translateY(-2px) !important;
	color: #070A14 !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.3) inset,
		0 16px 36px -14px rgba(201,169,97,0.75) !important;
}

/* WC secondary buttons (alt / outline variant) */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: linear-gradient(135deg, #1E5FBF 0%, #3B82F6 50%, #1E5FBF 100%) !important;
	background-size: 200% 100% !important;
	color: #fff !important;
	border-color: rgba(30,95,191,0.5) !important;
	box-shadow:
		0 1px 0 rgba(255,255,255,0.2) inset,
		0 8px 24px -12px rgba(30,95,191,0.55) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-position: 100% 50% !important;
	color: #fff !important;
}

/* ==========================================================================
   v2.2 — MOBILE RESPONSIVE PASS
   Intentional mobile layout — not compressed desktop
   ========================================================================== */

/* --- Tablet landscape and below (1024px) --- */
@media (max-width: 1024px) {
	.fs-section {
		padding-left: clamp(1rem, 3vw, 1.5rem) !important;
		padding-right: clamp(1rem, 3vw, 1.5rem) !important;
	}
}

/* --- Tablet portrait (900px) --- */
@media (max-width: 900px) {
	/* Grids fold */
	.fs-grid-4 { grid-template-columns: repeat(2, 1fr) !important; gap: 1.5rem !important; }
	.fs-grid-3 { grid-template-columns: repeat(2, 1fr) !important; gap: 1.5rem !important; }
	.fs-grid-2 { grid-template-columns: 1fr !important; gap: 1.5rem !important; }

	/* Columns unstack */
	.wp-block-columns { flex-wrap: wrap !important; gap: 2rem !important; }
	.wp-block-column { flex-basis: 100% !important; width: 100% !important; }

	/* Hero scaling */
	.fs-hero h1 { font-size: clamp(2.25rem, 9vw, 3.5rem) !important; line-height: 1.06 !important; }
	.fs-hero { min-height: auto !important; padding: clamp(6rem,14vw,8rem) 1.25rem 3rem !important; }

	/* Footer */
	.fs-footer-cols { gap: 2.5rem !important; }
	.fs-footer-bottom { flex-direction: column !important; gap: .75rem !important; text-align: center !important; }
}

/* --- Phone (640px) — the big pass --- */
@media (max-width: 640px) {
	/* Scale down section padding aggressively */
	.fs-section {
		padding-top: clamp(3rem, 10vw, 4.5rem) !important;
		padding-bottom: clamp(3rem, 10vw, 4.5rem) !important;
		padding-left: 1.1rem !important;
		padding-right: 1.1rem !important;
	}

	/* All section headings */
	h1 { font-size: clamp(1.9rem, 9vw, 2.8rem) !important; line-height: 1.08 !important; }
	h2 { font-size: clamp(1.65rem, 7vw, 2.3rem) !important; line-height: 1.1 !important; letter-spacing: -0.02em !important; }
	h3 { font-size: 1.25rem !important; line-height: 1.2 !important; }

	/* Hero */
	.fs-hero { padding: clamp(5rem,15vw,7rem) 1.1rem 2.5rem !important; min-height: auto !important; }
	.fs-hero h1 { font-size: clamp(2rem, 10vw, 3rem) !important; }
	.fs-hero p, .fs-hero .has-muted-color { font-size: 1rem !important; line-height: 1.6 !important; }

	/* Paragraph readability */
	p, .wp-block-paragraph { font-size: 1rem !important; line-height: 1.65 !important; }

	/* Grids collapse to single column */
	.fs-grid-4, .fs-grid-3, .fs-grid-2 { grid-template-columns: 1fr !important; gap: 1rem !important; }

	/* Cards tighter */
	.fs-glass, .fs-service-card {
		padding: 1.75rem 1.4rem !important;
		border-radius: 14px !important;
	}

	/* Service number big */
	.fs-service-number { font-size: 2rem !important; }

	/* Process step: stack number above text */
	.fs-process-step {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: .75rem !important;
		padding: 1.5rem 1.3rem !important;
	}

	/* Stats bar: 2×2 instead of 1×4 */
	.fs-grid-4 > .fs-stat { text-align: center; }
	.fs-stat { gap: .25rem !important; }
	.fs-stat-number { font-size: 2.25rem !important; }
	.fs-stat-label { font-size: 0.75rem !important; letter-spacing: 0.1em !important; }

	/* Testimonials */
	.fs-testimonial {
		padding: 2.25rem 1.5rem 1.75rem !important;
		border-radius: 16px !important;
	}
	.fs-testimonial::before { font-size: 5rem !important; top: -.75rem !important; left: 1.25rem !important; }
	.fs-testimonial p { font-size: 1rem !important; line-height: 1.7 !important; }

	/* FAQ */
	.fs-faq details, details.fs-faq {
		padding: 0 !important;
	}
	.fs-faq summary, details.fs-faq summary {
		padding: 1.1rem 1.25rem !important;
		font-size: 1rem !important;
	}
	.fs-faq-body, details.fs-faq > *:not(summary) {
		padding: 0 1.25rem 1.25rem !important;
		font-size: .95rem !important;
	}

	/* Buttons: full width on mobile for primary CTAs */
	.wp-block-buttons.is-layout-flex { flex-direction: column !important; gap: .75rem !important; width: 100%; }
	.wp-block-buttons.is-layout-flex .wp-block-button { width: 100% !important; }
	.wp-block-buttons.is-layout-flex .wp-block-button .wp-block-button__link { width: 100% !important; padding: 1.1rem 1.5rem !important; text-align: center; }

	/* Header mobile tweaks */
	.fs-header-wrap { padding: .85rem 1rem !important; }
	.fs-header-cta { display: none; } /* nav overlay has its own CTA on mobile */
	.fs-header-brand .wp-block-site-title { font-size: 1rem !important; }
	.wp-block-site-logo img { max-width: 36px !important; height: auto !important; }

	/* Mobile navigation overlay */
	.wp-block-navigation__responsive-container.is-menu-open {
		padding: 5rem 1.5rem 2rem !important;
	}
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		flex-direction: column !important;
		gap: 1.5rem !important;
		align-items: flex-start !important;
	}
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > a {
		font-size: 1.35rem !important;
		font-family: "Playfair Display", Georgia, serif !important;
		font-weight: 500 !important;
		color: #E8EBF2 !important;
	}
	.wp-block-navigation__responsive-container-open svg,
	.wp-block-navigation__responsive-container-close svg {
		fill: #C9A961 !important;
		width: 28px !important; height: 28px !important;
	}

	/* Forms — single column grid */
	.fs-form-grid { grid-template-columns: 1fr !important; gap: 1.1rem !important; }
	.fs-field input, .fs-field select, .fs-field textarea {
		font-size: 16px !important; /* prevents iOS zoom on focus */
		padding: .95rem 1rem !important;
	}
	.fs-form { padding: 1.5rem 1.25rem !important; border-radius: 14px !important; }
	.fs-form button[type="submit"] { width: 100% !important; padding: 1.15rem 1.5rem !important; }
	.fs-form-actions { flex-direction: column !important; align-items: stretch !important; gap: 1rem !important; }

	/* Footer */
	.fs-footer {
		padding: 3.5rem 1.25rem 2rem !important;
	}
	.fs-footer-cols { gap: 2.5rem !important; }
	.fs-footer .wp-block-site-title { font-size: 1.35rem !important; }
	.fs-footer-tagline { font-size: 1rem !important; }
	.fs-footer-bottom { flex-direction: column !important; gap: .75rem !important; text-align: center !important; }

	/* Pre-footer CTA */
	.fs-pre-footer {
		padding: 4rem 1.25rem !important;
	}
	.fs-pre-footer h2 { font-size: clamp(1.75rem, 8vw, 2.4rem) !important; }

	/* CTA banner */
	.fs-cta-banner { padding: 2.5rem 1.5rem !important; border-radius: 16px !important; }

	/* Scroll indicator hide on mobile */
	.fs-scroll-indicator { display: none !important; }

	/* Floating CTA — compact pill */
	.fs-floating-cta {
		bottom: 1rem !important;
		right: 1rem !important;
		padding: .85rem 1.25rem !important;
		font-size: .85rem !important;
	}

	/* WooCommerce products archive */
	body.woocommerce ul.products,
	body.woocommerce-page ul.products {
		grid-template-columns: 1fr !important;
		gap: 1.25rem !important;
	}
	body.woocommerce ul.products li.product { padding: 1.5rem !important; }
	body.woocommerce div.product .woocommerce-product-gallery,
	body.woocommerce div.product .summary {
		width: 100% !important;
		float: none !important;
		margin-right: 0 !important;
	}

	/* WC checkout — stack columns */
	body.woocommerce-checkout form.checkout.woocommerce-checkout { display: block !important; }
	body.woocommerce-checkout #customer_details .col-1,
	body.woocommerce-checkout #customer_details .col-2 {
		width: 100% !important;
		float: none !important;
	}
	body.woocommerce .woocommerce-input-wrapper input,
	body.woocommerce-checkout input[type="text"],
	body.woocommerce-checkout input[type="email"],
	body.woocommerce-checkout input[type="tel"],
	body.woocommerce-checkout textarea,
	body.woocommerce-checkout select { font-size: 16px !important; }

	/* WC my-account nav */
	body.woocommerce-account .woocommerce-MyAccount-navigation {
		width: 100% !important;
		float: none !important;
		margin-bottom: 1.5rem !important;
	}
	body.woocommerce-account .woocommerce-MyAccount-content {
		width: 100% !important;
		float: none !important;
	}

	/* Footer list marker removal on mobile */
	.fs-footer-list { padding-left: 0 !important; }

	/* Reduce horizontal scroll risk */
	body { overflow-x: hidden; }
}

/* --- Small phone (480px) — final squeeze --- */
@media (max-width: 480px) {
	h1 { font-size: clamp(1.75rem, 9vw, 2.4rem) !important; }
	h2 { font-size: clamp(1.5rem, 7.5vw, 2rem) !important; }
	.fs-hero h1 { font-size: clamp(1.85rem, 9.5vw, 2.5rem) !important; }
	.fs-section { padding-left: .9rem !important; padding-right: .9rem !important; }
	.fs-glass, .fs-service-card { padding: 1.5rem 1.2rem !important; }
	.fs-testimonial { padding: 2rem 1.3rem 1.5rem !important; }
	.fs-stat-number { font-size: 2rem !important; }
	.fs-footer { padding: 3rem 1rem 1.5rem !important; }
	.fs-pre-footer { padding: 3rem 1rem !important; }
}

/* --- Landscape phones, allow scroll indicator/floating CTA back --- */
@media (max-width: 640px) and (orientation: landscape) {
	.fs-floating-cta { display: none !important; }
}

/* ==========================================================================
   v2.3 — HEADER POLISH & PREMIUM MOBILE MENU
   ========================================================================== */

/* --- Header refinement (desktop) --- */
.fs-header-wrap { position: relative; z-index: 100; }
.fs-header-inner { gap: 2.5rem !important; }

.fs-header-brand {
	display: flex;
	align-items: center;
	gap: 1rem !important;
}

.fs-header-brand .wp-block-site-logo {
	display: flex;
	align-items: center;
}
.fs-header-brand .wp-block-site-logo img {
	max-height: 52px;
	width: auto;
	display: block;
}

.fs-header-brand .wp-block-site-title {
	line-height: 1.1 !important;
	margin: 0 !important;
	letter-spacing: 0.02em !important;
	font-family: "Playfair Display", Georgia, serif !important;
	font-weight: 500 !important;
	font-size: 1.28rem !important;
	color: var(--fs-pearl) !important;
	white-space: nowrap;
}
.fs-header-brand .wp-block-site-title a {
	color: var(--fs-pearl) !important;
	text-decoration: none !important;
	background: none !important;
	border: 0 !important;
}
.fs-header-brand .wp-block-site-title a:hover {
	color: var(--fs-gold) !important;
}

/* Desktop nav items — refined spacing */
.fs-nav.fs-nav-desktop .wp-block-navigation__container {
	gap: 2.25rem !important;
}
.fs-nav.fs-nav-desktop .wp-block-navigation-item a {
	color: var(--fs-platinum) !important;
	text-decoration: none !important;
	font-size: 0.93rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.01em !important;
	padding: .5rem 0 !important;
	position: relative;
	transition: color .3s var(--fs-ease);
}
.fs-nav.fs-nav-desktop .wp-block-navigation-item a::after {
	content: "";
	position: absolute;
	left: 50%; bottom: 0;
	width: 0; height: 1px;
	background: var(--fs-gold);
	transition: width .3s var(--fs-ease), left .3s var(--fs-ease);
}
.fs-nav.fs-nav-desktop .wp-block-navigation-item a:hover { color: var(--fs-gold-bright, #E5C87A) !important; }
.fs-nav.fs-nav-desktop .wp-block-navigation-item a:hover::after { width: 70%; left: 15%; }
.fs-nav.fs-nav-desktop .wp-block-navigation-item.current-menu-item a { color: var(--fs-gold) !important; }

/* Submenu styling */
.fs-nav.fs-nav-desktop .wp-block-navigation__submenu-container {
	background: rgba(7,10,20,0.95) !important;
	backdrop-filter: blur(20px) saturate(180%);
	border: 1px solid rgba(201,169,97,0.2) !important;
	border-radius: 12px !important;
	padding: .75rem !important;
	min-width: 260px !important;
	box-shadow: 0 30px 60px -20px rgba(0,0,0,0.6) !important;
}
.fs-nav.fs-nav-desktop .wp-block-navigation__submenu-container .wp-block-navigation-item a {
	padding: .6rem .9rem !important;
	border-radius: 8px !important;
	display: block !important;
}
.fs-nav.fs-nav-desktop .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover {
	background: rgba(201,169,97,0.08) !important;
}

/* Header CTA — more refined proportions */
.fs-header-cta .wp-block-button__link,
.fs-header-cta .fs-btn-primary .wp-block-button__link {
	padding: .78rem 1.4rem !important;
	font-size: .86rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.03em !important;
}

/* Hide mobile hamburger on desktop */
.fs-menu-trigger { display: none; }

/* ==========================================================================
   PREMIUM HAMBURGER BUTTON
   ========================================================================== */

.fs-menu-trigger {
	position: relative;
	width: 44px;
	height: 44px;
	background: transparent;
	border: 1px solid rgba(201,169,97,0.25);
	border-radius: 10px;
	cursor: pointer;
	padding: 0;
	transition: border-color .4s var(--fs-ease), background .4s var(--fs-ease);
	flex-shrink: 0;
}
.fs-menu-trigger:hover {
	border-color: rgba(201,169,97,0.5);
	background: rgba(201,169,97,0.05);
}
.fs-menu-trigger:focus-visible {
	outline: 2px solid var(--fs-gold);
	outline-offset: 2px;
}
.fs-menu-trigger-icon {
	display: block;
	position: absolute;
	inset: 0;
	margin: auto;
	width: 22px;
	height: 14px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.fs-menu-trigger-icon span {
	display: block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.5px;
	background: var(--fs-gold);
	border-radius: 2px;
	transition: transform .5s cubic-bezier(0.68,-0.55,0.27,1.55), opacity .3s ease, top .4s ease;
}
.fs-menu-trigger-icon span:nth-child(1) { top: 0; }
.fs-menu-trigger-icon span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.fs-menu-trigger-icon span:nth-child(3) { bottom: 0; top: auto; }

.fs-menu-trigger.is-active .fs-menu-trigger-icon span:nth-child(1) {
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}
.fs-menu-trigger.is-active .fs-menu-trigger-icon span:nth-child(2) { opacity: 0; }
.fs-menu-trigger.is-active .fs-menu-trigger-icon span:nth-child(3) {
	bottom: auto; top: 50%;
	transform: translateY(-50%) rotate(-45deg);
}

/* ==========================================================================
   PREMIUM MOBILE MENU — full-screen overlay, cinematic
   ========================================================================== */

.fs-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 9999;
	visibility: hidden;
	pointer-events: none;
}
.fs-mobile-menu.is-open {
	visibility: visible;
	pointer-events: auto;
}

.fs-mobile-menu-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(7,10,20,0.85);
	backdrop-filter: blur(12px) saturate(160%);
	opacity: 0;
	transition: opacity .5s cubic-bezier(0.22,1,0.36,1);
}
.fs-mobile-menu.is-open .fs-mobile-menu-backdrop { opacity: 1; }

.fs-mobile-menu-panel {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: min(420px, 92vw);
	background:
		radial-gradient(ellipse at 80% 10%, rgba(201,169,97,0.08) 0%, transparent 55%),
		radial-gradient(ellipse at 20% 90%, rgba(30,95,191,0.08) 0%, transparent 55%),
		linear-gradient(180deg, #0E1424 0%, #070A14 100%);
	border-left: 1px solid rgba(201,169,97,0.15);
	box-shadow: -30px 0 80px -20px rgba(0,0,0,0.7);
	transform: translateX(100%);
	transition: transform .55s cubic-bezier(0.22,1,0.36,1);
	display: flex;
	flex-direction: column;
	padding: 1.5rem 1.75rem 2rem;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.fs-mobile-menu.is-open .fs-mobile-menu-panel {
	transform: translateX(0);
}

/* Decorative top gold hairline */
.fs-mobile-menu-panel::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(201,169,97,0.5), transparent);
}

.fs-mobile-menu-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 2rem;
	border-bottom: 1px solid rgba(255,255,255,0.06);
}

.fs-mobile-menu-brand {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.35rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--fs-pearl);
}

.fs-menu-close {
	width: 40px; height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid rgba(201,169,97,0.25);
	color: var(--fs-gold);
	border-radius: 10px;
	cursor: pointer;
	transition: border-color .35s var(--fs-ease), background .35s var(--fs-ease), transform .35s var(--fs-ease);
}
.fs-menu-close:hover {
	border-color: rgba(201,169,97,0.55);
	background: rgba(201,169,97,0.07);
	transform: rotate(90deg);
}
.fs-menu-close:focus-visible { outline: 2px solid var(--fs-gold); outline-offset: 2px; }

/* Menu list */
.fs-mobile-menu-nav {
	padding: 2.25rem 0 1.5rem;
	flex: 1;
}
.fs-mobile-menu-nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
/* v2.6 fix — items are always visible. Panel-level fade handles the entrance. */
.fs-mobile-menu-nav > ul > li {
	border-bottom: 1px solid rgba(255,255,255,0.05);
}

.fs-mobile-menu-nav > ul > li > a {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding: 1.25rem 0;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--fs-pearl);
	text-decoration: none;
	min-height: 52px;
	transition: color .3s var(--fs-ease), padding-left .35s var(--fs-ease);
	line-height: 1.2;
}
.fs-mobile-menu-nav > ul > li > a:hover,
.fs-mobile-menu-nav > ul > li > a:focus-visible {
	color: var(--fs-gold);
	padding-left: .5rem;
	outline: none;
}

.fs-m-num {
	font-family: "Inter", sans-serif;
	font-size: 0.7rem;
	font-weight: 500;
	color: var(--fs-gold);
	letter-spacing: 0.14em;
	opacity: 0.7;
	min-width: 24px;
}

/* Submenu (Services) */
.fs-mobile-sub {
	padding-left: 2.5rem;
	padding-bottom: 1rem;
}
.fs-mobile-sub li a {
	display: block;
	padding: .75rem 0;
	font-family: "Inter", sans-serif;
	font-size: .95rem;
	color: rgba(232,235,242,0.7);
	text-decoration: none;
	transition: color .3s var(--fs-ease), padding-left .3s var(--fs-ease);
}
.fs-mobile-sub li a:hover {
	color: var(--fs-gold);
	padding-left: .35rem;
}

/* CTAs at bottom */
.fs-mobile-menu-ctas {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255,255,255,0.06);
}
.fs-mobile-menu-ctas .fs-btn-primary,
.fs-mobile-menu-ctas .fs-btn-outline {
	text-align: center;
	padding: 1rem 1.5rem !important;
	display: block !important;
	width: 100% !important;
	border-radius: 999px !important;
	font-size: .92rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-decoration: none !important;
	transition: all .4s cubic-bezier(0.22,1,0.36,1) !important;
}
.fs-mobile-menu-ctas .fs-btn-primary {
	background: linear-gradient(135deg, #C9A961 0%, #D8B878 50%, #C9A961 100%);
	color: #070A14 !important;
	border: 1px solid rgba(201,169,97,0.4);
	box-shadow: 0 1px 0 rgba(255,255,255,0.25) inset, 0 8px 24px -12px rgba(201,169,97,0.6);
}
.fs-mobile-menu-ctas .fs-btn-outline {
	background: transparent;
	color: var(--fs-pearl) !important;
	border: 1px solid rgba(201,169,97,0.4);
}
.fs-mobile-menu-ctas .fs-btn-outline:hover {
	color: var(--fs-gold) !important;
	border-color: var(--fs-gold);
}

/* Contact strip at bottom */
.fs-mobile-menu-contact {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255,255,255,0.06);
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.fs-mobile-menu-contact a {
	color: rgba(232,235,242,0.65);
	text-decoration: none;
	font-size: .9rem;
	font-family: "Inter", sans-serif;
	transition: color .3s var(--fs-ease);
}
.fs-mobile-menu-contact a:first-child {
	color: var(--fs-gold);
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1rem;
	letter-spacing: 0.005em;
}
.fs-mobile-menu-contact a:hover { color: var(--fs-gold-bright, #E5C87A); }

body.fs-menu-locked { overflow: hidden; }

/* ==========================================================================
   RESPONSIVE HEADER BEHAVIOR — hide desktop nav/CTA, show hamburger
   ========================================================================== */

@media (max-width: 900px) {
	.fs-nav.fs-nav-desktop,
	.fs-header-cta {
		display: none !important;
	}
	.fs-menu-trigger {
		display: block;
	}
	.fs-header-brand {
		gap: .75rem !important;
	}
	.fs-header-brand .wp-block-site-logo img {
		max-height: 42px;
	}
	.fs-header-brand .wp-block-site-title {
		font-size: 1.08rem !important;
	}
}

@media (max-width: 420px) {
	.fs-header-wrap {
		padding-left: .85rem !important;
		padding-right: .85rem !important;
	}
	.fs-header-brand .wp-block-site-logo img { max-height: 38px; }
	.fs-header-brand .wp-block-site-title { font-size: 1rem !important; }
	.fs-mobile-menu-panel { padding: 1.25rem 1.35rem 1.75rem; }
	.fs-mobile-menu-nav > ul > li > a { font-size: 1.4rem; }
}

/* ==========================================================================
   v2.3 — BUTTON PROPORTION REFINEMENT
   Slightly less tall, more elegant, tighter vertical rhythm
   ========================================================================== */

.fs-btn,
.wp-block-button.fs-btn .wp-block-button__link,
.fs-btn .wp-block-button__link {
	padding: .88rem 1.75rem !important;
	font-size: .9rem !important;
	letter-spacing: 0.035em !important;
}

.fs-header-cta .wp-block-button__link {
	padding: .72rem 1.35rem !important;
	font-size: .85rem !important;
}

/* WooCommerce buttons — match refined proportions */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order,
body .checkout-button {
	padding: .88rem 1.75rem !important;
	font-size: .9rem !important;
	letter-spacing: 0.035em !important;
}

.fs-form button[type="submit"],
.fs-form-ajax button[type="submit"] {
	padding: 1rem 2rem !important;
	font-size: .92rem !important;
}

/* Mobile: buttons never oversized, always consistent */
@media (max-width: 640px) {
	.fs-btn,
	.wp-block-button.fs-btn .wp-block-button__link,
	.fs-btn .wp-block-button__link,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce .button {
		padding: .95rem 1.5rem !important;
		font-size: .9rem !important;
		min-height: 48px;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}
	.fs-form button[type="submit"] {
		min-height: 52px;
	}
}

/* ==========================================================================
   v2.3 — MOBILE TYPOGRAPHY / LAYOUT REFINEMENT
   ========================================================================== */

@media (max-width: 640px) {
	/* Smoother hero first-screen */
	.fs-hero {
		padding-top: clamp(4.5rem, 18vw, 6.5rem) !important;
		padding-bottom: clamp(2rem, 6vw, 3.5rem) !important;
	}
	.fs-hero .fs-eyebrow {
		font-size: .68rem !important;
		letter-spacing: 0.22em !important;
		margin-bottom: 1.2rem !important;
	}
	.fs-hero h1 {
		margin-top: 0 !important;
		margin-bottom: 1.5rem !important;
		text-wrap: balance;
	}
	/* Prevent ugly mid-word breaks on narrow screens */
	h1, h2, h3, .fs-hero h1, .fs-hero p {
		overflow-wrap: break-word;
		hyphens: none;
	}
	/* Tighter subhead under hero */
	.fs-hero p {
		max-width: 36ch;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	/* Uniform card spacing between sections */
	.fs-section + .fs-section { padding-top: 2.5rem !important; }

	/* Eyebrow consistency */
	.fs-eyebrow {
		font-size: .72rem !important;
		letter-spacing: 0.2em !important;
	}

	/* Pre-footer CTA: tighter */
	.fs-pre-footer h2 {
		line-height: 1.1 !important;
		text-wrap: balance;
	}

	/* Footer: reduce horizontal gap so cards don't cramp */
	.fs-footer-heading { font-size: .72rem !important; }
	.fs-footer-list li a { font-size: .95rem !important; line-height: 2 !important; }
	.fs-footer-tagline { font-size: .98rem !important; line-height: 1.55 !important; }
	.fs-footer-contact a:first-child { font-size: 1rem !important; }

	/* Keep the first hero visually centered + anchored */
	.fs-hero > * { position: relative; z-index: 1; }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
	.fs-mobile-menu-panel,
	.fs-mobile-menu-backdrop,
	.fs-mobile-menu-nav > ul > li,
	.fs-menu-trigger-icon span {
		transition: none !important;
	}
}

/* ==========================================================================
   v2.6 — Mobile menu items always visible regardless of JS state.
   Panel slide-in on .fs-mobile-menu-panel already provides the entrance
   animation; we do not rely on JS-added .is-open class for visibility.
   ========================================================================== */

.fs-mobile-menu-nav > ul > li,
.fs-mobile-menu-nav,
.fs-mobile-menu-ctas,
.fs-mobile-menu-contact {
	opacity: 1 !important;
	transform: none !important;
}

/* Unified list styling — no bullet markers, clean layout */
.fs-mobile-menu-nav .fs-m-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.fs-mobile-menu-nav .fs-m-list > li {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid rgba(255,255,255,0.05);
}
.fs-mobile-menu-nav .fs-m-list > li:last-child { border-bottom: 0; }
.fs-mobile-menu-nav .fs-m-list > li > a {
	display: flex !important;
	align-items: baseline;
	gap: 1rem;
	padding: 1.1rem 0 !important;
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: 1.5rem !important;
	font-weight: 500 !important;
	letter-spacing: -0.005em !important;
	color: var(--fs-pearl) !important;
	text-decoration: none !important;
	min-height: 52px;
	transition: color .3s var(--fs-ease), padding-left .35s var(--fs-ease);
	line-height: 1.25;
}
.fs-mobile-menu-nav .fs-m-list > li > a:hover,
.fs-mobile-menu-nav .fs-m-list > li > a:focus-visible {
	color: var(--fs-gold) !important;
	padding-left: .5rem !important;
	outline: none;
}
.fs-m-num {
	flex-shrink: 0;
	font-family: "Inter", sans-serif !important;
	font-size: 0.7rem !important;
	font-weight: 500 !important;
	color: var(--fs-gold) !important;
	letter-spacing: 0.14em !important;
	opacity: 0.6;
	min-width: 22px;
}
.fs-m-label { flex: 1; }

/* Submenu (Services) — always visible, indented */
.fs-mobile-sub {
	list-style: none !important;
	padding: 0 0 1rem 2.5rem !important;
	margin: 0 !important;
}
.fs-mobile-sub li {
	list-style: none !important;
	border: 0 !important;
}
.fs-mobile-sub li a {
	display: block !important;
	padding: .7rem 0 !important;
	font-family: "Inter", sans-serif !important;
	font-size: .92rem !important;
	color: rgba(232,235,242,0.7) !important;
	text-decoration: none !important;
	transition: color .3s var(--fs-ease), padding-left .3s var(--fs-ease);
}
.fs-mobile-sub li a:hover {
	color: var(--fs-gold) !important;
	padding-left: .35rem !important;
}

/* Contact strip — now email + legal links only (no phone) */
.fs-mobile-menu-contact {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255,255,255,0.06);
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.fs-mobile-menu-contact a:first-child {
	color: var(--fs-gold) !important;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1rem;
	letter-spacing: 0.005em;
	text-decoration: none;
}
.fs-mobile-menu-contact a:first-child:hover { color: var(--fs-gold-bright, #E5C87A) !important; }
.fs-mobile-menu-legal {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-size: .82rem;
	color: rgba(232,235,242,0.4);
}
.fs-mobile-menu-legal a {
	color: rgba(232,235,242,0.55) !important;
	text-decoration: none !important;
	transition: color .3s var(--fs-ease);
}
.fs-mobile-menu-legal a:hover { color: var(--fs-gold) !important; }

/* ==========================================================================
   MOBILE HERO — INTENTIONAL REDESIGN (≤ 640px)
   Not compressed desktop — a standalone mobile layout.
   ========================================================================== */

@media (max-width: 640px) {
	/* Hero container — full cinematic with breathing room */
	.fs-hero {
		min-height: calc(100vh - 68px) !important;    /* fill viewport minus header */
		min-height: calc(100svh - 68px) !important;   /* small-viewport-units for iOS chrome */
		padding: 5.5rem 1.5rem 3rem !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		align-items: center !important;
		text-align: center !important;
		position: relative;
	}

	/* Eyebrow: smaller, more refined letter-spacing */
	.fs-hero .fs-eyebrow {
		font-size: .62rem !important;
		letter-spacing: 0.28em !important;
		margin-bottom: 1.5rem !important;
		color: var(--fs-gold) !important;
		opacity: 0.85;
		display: inline-flex;
		align-items: center;
		gap: .5rem;
	}
	.fs-hero .fs-eyebrow::before,
	.fs-hero .fs-eyebrow::after {
		content: "";
		width: 14px;
		height: 1px;
		background: var(--fs-gold);
		opacity: .5;
	}

	/* Headline: balanced, serif italic accent preserved */
	.fs-hero h1 {
		font-size: clamp(2.1rem, 10vw, 2.9rem) !important;
		line-height: 1.04 !important;
		letter-spacing: -0.03em !important;
		font-weight: 500 !important;
		margin: 0 0 1.5rem !important;
		max-width: 18ch;
		text-wrap: balance;
	}
	.fs-hero h1 br { display: block; }

	/* Sub-headline: narrower, softer */
	.fs-hero > p,
	.fs-hero .has-muted-color {
		font-size: 1.02rem !important;
		line-height: 1.6 !important;
		max-width: 32ch !important;
		margin: 0 auto 2rem !important;
		color: rgba(232,235,242,0.72) !important;
	}

	/* CTAs: stacked full-width, primary on top */
	.fs-hero .wp-block-buttons {
		display: flex !important;
		flex-direction: column !important;
		gap: .85rem !important;
		width: 100% !important;
		max-width: 300px !important;
		margin: 0 auto !important;
	}
	.fs-hero .wp-block-buttons .wp-block-button {
		width: 100% !important;
	}
	.fs-hero .wp-block-buttons .wp-block-button__link {
		width: 100% !important;
		padding: 1.05rem 1.5rem !important;
		font-size: .92rem !important;
		letter-spacing: 0.045em !important;
		min-height: 52px;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}

	/* Tiny scroll cue at the bottom */
	.fs-hero::after {
		content: "";
		position: absolute;
		bottom: 1.5rem;
		left: 50%;
		transform: translateX(-50%);
		width: 1px;
		height: 32px;
		background: linear-gradient(180deg, transparent 0%, rgba(201,169,97,0.55) 50%, transparent 100%);
		animation: fsScrollPulse 2s ease-in-out infinite;
		pointer-events: none;
	}
	@keyframes fsScrollPulse {
		0%,100% { opacity: .4; transform: translateX(-50%) scaleY(0.7); }
		50%     { opacity: 1;  transform: translateX(-50%) scaleY(1.1); }
	}

	/* Hide the old desktop scroll indicator on mobile */
	.fs-hero .fs-scroll-indicator,
	.fs-scroll-indicator { display: none !important; }

	/* Tight spacing for hero-to-next-section transition */
	.fs-hero + .fs-section {
		padding-top: 3rem !important;
	}
}

/* Very small phones — even more compact */
@media (max-width: 380px) {
	.fs-hero {
		padding: 5rem 1.15rem 2.5rem !important;
	}
	.fs-hero h1 {
		font-size: clamp(1.9rem, 9.5vw, 2.5rem) !important;
	}
}

/* Tablet portrait — more relaxed, slightly wider hero */
@media (min-width: 641px) and (max-width: 900px) {
	.fs-hero {
		padding: clamp(6rem, 14vw, 8rem) 2rem 4rem !important;
		text-align: center !important;
	}
	.fs-hero h1 {
		font-size: clamp(2.8rem, 7vw, 4rem) !important;
		max-width: 20ch;
		margin-left: auto; margin-right: auto;
	}
	.fs-hero > p { max-width: 44ch !important; margin-left: auto !important; margin-right: auto !important; }
	.fs-hero .wp-block-buttons {
		justify-content: center !important;
	}
}

/* ==========================================================================
   v2.7 — Form <option> readability fix
   Dropdown option list defaults to white bg + black text for legibility.
   Browser-native hover/selected state remains blue/white — unchanged.
   ========================================================================== */

.fs-form select option,
.flowsecure-theme select option,
.fs-form-ajax select option,
body select option {
	background-color: #ffffff !important;
	color: #070A14 !important;
	font-family: "Inter", system-ui, sans-serif;
	font-weight: 400;
	padding: 0.5rem;
}

/* First "placeholder" option — slightly muted but still readable */
.fs-form select option[value=""],
.flowsecure-theme select option[value=""],
.fs-form-ajax select option[value=""] {
	color: #6b7280 !important;
}

/* Firefox-specific: ensures checked/selected state is visible.
   (Hover is browser-native; we intentionally do not override it.) */
.fs-form select option:checked,
.flowsecure-theme select option:checked,
.fs-form-ajax select option:checked {
	background: linear-gradient(#1E5FBF, #1E5FBF) !important;
	color: #ffffff !important;
}

/* ==========================================================================
   v2.8 — Mobile menu full-viewport guarantee
   ========================================================================== */

/* Ensure the menu covers the real full viewport on mobile, using dynamic
   viewport units where supported (handles iOS Safari's shrinking address bar).
   JS also relocates the menu to <body> to escape any transformed/blurred
   ancestor containing block. */
.fs-mobile-menu {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	width: 100dvw !important;
	height: 100vh !important;
	height: 100dvh !important;
	z-index: 99999 !important;
	overflow: hidden;
}

.fs-mobile-menu-backdrop {
	position: absolute !important;
	inset: 0 !important;
	width: 100%;
	height: 100%;
}

.fs-mobile-menu-panel {
	height: 100vh !important;
	height: 100dvh !important;
	max-height: 100vh;
	max-height: 100dvh;
}

/* Belt-and-braces — if the site root has overflow:hidden anywhere,
   don't let it clip the menu once it's moved to <body>. */
body > .fs-mobile-menu {
	position: fixed !important;
}
