/* =====================================================
	 InsertWeb — Dark Luxury CSS
	 Design system: #080808 bg · #C9A84C gold · Cormorant/DM Sans
	 ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,700;1,400;1,700&family=DM+Sans:wght@400;500&family=DM+Mono:wght@400&display=swap');

/* =====================================================
	 TOKENS
	 ===================================================== */
:root {
	--bg:            #080808;
	--surface:       #111111;
	--surface-2:     #181818;
	--gold:          #C9A84C;
	--gold-light:    #E8CB7A;
	--text:          #F0EDE6;
	--muted:         #7A7168;
	--border:        rgba(201,168,76,0.15);
	--border-subtle: rgba(255,255,255,0.06);
	--radius:        12px;
	--container:     1380px;
	--header-height: 56px;
	--transition:    0.35s cubic-bezier(0.25,0.46,0.45,0.94);

	/* legacy aliases kept for compatibility */
	--color-bg:             var(--bg);
	--color-surface:        var(--surface);
	--color-surface-soft:   var(--surface-2);
	--color-surface-muted:  #1e1e1e;
	--color-text:           var(--text);
	--color-text-soft:      var(--muted);
	--color-primary:        var(--gold);
	--color-primary-strong: var(--gold-light);
	--color-secondary:      var(--gold);
	--color-border:         var(--border);
	--color-overlay:        rgba(0,0,0,0.55);
	--shadow-soft:          0 8px 32px rgba(0,0,0,0.4);
	--shadow-elevated:      0 16px 56px rgba(0,0,0,0.55);
	--radius-sm: var(--radius);
	--radius-md: var(--radius);
	--radius-lg: 20px;
	--progress-gradient: linear-gradient(90deg, var(--gold), var(--gold-light));
}

/* Light mode palette driven by JS toggle (data-theme on <html>) */
html[data-theme="light"] {
	--bg:            #f6f2ea;
	--surface:       #ffffff;
	--surface-2:     #f2ece1;
	--text:          #1f1b16;
	--muted:         #6f6458;
	--border:        rgba(201,168,76,0.32);
	--border-subtle: rgba(31,27,22,0.08);
	--shadow-soft:   0 8px 28px rgba(31,27,22,0.08);
	--shadow-elevated: 0 16px 48px rgba(31,27,22,0.12);
	--color-overlay: rgba(0,0,0,0.2);
}

html[data-theme="light"] body::before {
	opacity: 0.012;
}

html[data-theme="light"] .header-shell {
	background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(250,247,241,0.86) 100%);
	border-color: rgba(201,168,76,0.28);
	box-shadow: 0 14px 34px rgba(31,27,22,0.07);
}

html[data-theme="light"] .site-header.is-scrolled .header-shell {
	background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(247,242,234,0.94) 100%);
}

html[data-theme="light"] .site-nav {
	background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(247,241,231,0.98) 100%);
	border-color: rgba(201,168,76,0.24);
}

html[data-theme="light"] .hero::before {
	background: radial-gradient(ellipse at 50% 58%, rgba(201,168,76,0.08) 0%, transparent 68%);
}

html[data-theme="light"] body {
	background:
		radial-gradient(circle at top center, rgba(201,168,76,0.08), transparent 32%),
		linear-gradient(180deg, #f8f4ed 0%, #f3ede4 100%);
	color: var(--text);
}

html[data-theme="light"] .hero,
html[data-theme="light"] .real-hero,
html[data-theme="light"] .band {
	background: transparent;
}

html[data-theme="light"] .card,
html[data-theme="light"] .band-shell,
html[data-theme="light"] .cta-strip,
html[data-theme="light"] .project-thumb,
html[data-theme="light"] .browser-mockup,
html[data-theme="light"] .site-shot,
html[data-theme="light"] .faq-question,
html[data-theme="light"] .chat-panel,
html[data-theme="light"] .chat-form {
	background: var(--surface);
	border-color: var(--border);
	box-shadow: var(--shadow-soft);
}

html[data-theme="light"] .band-shell,
html[data-theme="light"] .cta-strip,
html[data-theme="light"] .card,
html[data-theme="light"] .browser-mockup,
html[data-theme="light"] .project-thumb,
html[data-theme="light"] .site-shot,
html[data-theme="light"] .hero-side-note {
	box-shadow: 0 16px 38px rgba(31,27,22,0.06);
}

html[data-theme="light"] .site-footer {
	background: #efe8dd;
	border-top-color: rgba(201,168,76,0.24);
}

html[data-theme="light"] .footer-links a,
html[data-theme="light"] .footer-meta,
html[data-theme="light"] .footer-brand p,
html[data-theme="light"] .footer-top h3,
html[data-theme="light"] .brand-text small,
html[data-theme="light"] .site-nav a,
html[data-theme="light"] .section-intro,
html[data-theme="light"] .feature-card p,
html[data-theme="light"] .service-card p,
html[data-theme="light"] .process-card p,
html[data-theme="light"] .real-card-body p,
html[data-theme="light"] .field label {
	color: var(--muted);
}

html[data-theme="light"] .chat-messages,
html[data-theme="light"] .chat-input,
html[data-theme="light"] .chat-quick-replies {
	background: #f7f2e8;
	border-color: rgba(201,168,76,0.28);
}

html[data-theme="light"] .chat-message.ai {
	background: #fbf8f2;
	border-color: rgba(201,168,76,0.32);
	color: var(--text);
}

html[data-theme="light"] .chat-input::placeholder {
	color: #8a7e72;
}

html[data-theme="light"] .field input,
html[data-theme="light"] .field select,
html[data-theme="light"] .field textarea {
	background: transparent;
	color: var(--text);
	border-color: rgba(201,168,76,0.34);
}

html[data-theme="light"] .field input::placeholder,
html[data-theme="light"] .field textarea::placeholder {
	color: #8a7e72;
}

html[data-theme="light"] .field select option {
	background: #ffffff;
	color: #1f1b16;
}

html[data-theme="light"] .media-lightbox {
	background: rgba(0,0,0,0.82);
}

html[data-theme="light"] .back-to-top {
	background: #ffffff;
	box-shadow: 0 8px 20px rgba(31,27,22,0.12);
}

html[data-theme="light"] .theme-toggle,
html[data-theme="light"] .nav-toggle {
	background: #ffffff;
	border-color: rgba(201,168,76,0.24);
}

html[data-theme="light"] .brand-logo {
	box-shadow: none;
}

html[data-theme="light"] .btn-secondary {
	background: rgba(201,168,76,0.06);
}

html[data-theme="light"] .hero-side-note,
html[data-theme="light"] .hero-metrics article {
	background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(246,242,234,0.95) 100%);
}

html[data-theme="light"] .hero-eyebrow,
html[data-theme="light"] .hero-trust span,
html[data-theme="light"] .hero-proofline span {
	background: rgba(255,255,255,0.72);
	border-color: rgba(201,168,76,0.18);
}

html[data-theme="light"] .hero-home .browser-preview::before {
	opacity: 0.18;
}

html[data-theme="light"] .hero-home .browser-preview::after {
	opacity: 0.34;
}

html[data-theme="light"] .project-carousel-btn {
	background: rgba(255,255,255,0.82);
	border-color: rgba(201,168,76,0.26);
}

html[data-theme="light"] .project-carousel-btn:hover {
	background: rgba(255,255,255,0.96);
}

html[data-theme="light"] nav.scrolled {
	background: rgba(255,255,255,0.95);
	border: 1px solid rgba(201,168,76,0.3);
}

/* =====================================================
	 RESET / BASE
	 ===================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: 'DM Sans', 'Segoe UI', sans-serif;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--text);
	background-color: var(--bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

/* Grain overlay */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
	opacity: 0.035;
}

body::after { display: none !important; }

img { max-width: 100%; display: block; }

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--transition);
}

main { overflow-x: clip; }

/* =====================================================
	 TYPOGRAPHY
	 ===================================================== */
h1, h2, h3, h4, h5, h6 {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--text);
	margin: 0;
}

p { color: var(--text); }

strong { color: var(--text); }

/* =====================================================
	 LAYOUT HELPERS
	 ===================================================== */
.container {
	width: min(var(--container), calc(100% - clamp(2rem, 4vw, 6rem)));
	margin-inline: auto;
}

.section {
	padding: clamp(4.35rem, 5.2vw, 6.25rem) 0;
	position: relative;
}

.grid { display: grid; gap: 1.25rem; }

.cards-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.cards-4 { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }

.section-grid-tight { margin-top: 2rem; }
.section-actions     { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem; }

/* =====================================================
	 SECTION TITLES
	 ===================================================== */
.section-title {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(2rem, 1.2rem + 2.4vw, 3.2rem);
	line-height: 1.08;
	color: var(--text);
	letter-spacing: -0.024em;
	max-width: 18ch;
}

.section-title::after {
	content: '';
	display: block;
	margin-top: 10px;
	width: 0;
	height: 1px;
	background: var(--gold);
	transition: width 0.65s cubic-bezier(0.4,0,0.2,1) 0.35s;
}

.section-title.visible::after { width: 48px; }

.section-intro {
	max-width: 62ch;
	margin: 1rem 0 0;
	color: color-mix(in srgb, var(--text) 16%, var(--muted));
	font-size: 1rem;
	line-height: 1.78;
}

/* =====================================================
	 SCROLL PROGRESS
	 ===================================================== */
.scroll-progress {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 2px;
	z-index: 1200;
	background: transparent;
}

.scroll-progress-bar {
	width: 0; height: 100%;
	background: linear-gradient(90deg, var(--gold), var(--gold-light));
	box-shadow: 0 0 10px rgba(201,168,76,0.45);
	transition: width 0.12s linear;
}
/* =====================================================
	 HEADER / NAV
	 ===================================================== */
.site-header {
	position: fixed;
	top: 0; left: 0;
	width: 100%;
	z-index: 1000;
	padding-top: 0.4rem;
	transition: transform var(--transition), padding var(--transition);
	transform: translateY(0);
}

.site-header.is-scrolled { padding-top: 0.25rem; }

.site-header.hide-nav {
	transform: translateY(-100%);
}

.header-shell {
	min-height: var(--header-height);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.9rem;
	padding: 0.35rem 1rem;
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(18,18,18,0.82) 0%, rgba(10,10,10,0.72) 100%);
	backdrop-filter: blur(16px);
	border: 1px solid rgba(201,168,76,0.16);
	box-shadow: 0 10px 28px rgba(0,0,0,0.3);
	transition: background var(--transition), border-color var(--transition);
}

.site-header.is-scrolled .header-shell {
	background: linear-gradient(180deg, rgba(14,14,14,0.9) 0%, rgba(10,10,10,0.84) 100%);
	border-color: rgba(201,168,76,0.24);
}

/* Brand */
.brand {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
	min-width: 0;
	text-decoration: none;
}

.brand--logo-only {
	max-width: min(360px, 42vw);
}

.brand-logo {
	display: block;
	height: 72px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	object-position: left center;
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
	filter: none;
}

.brand-text {
	display: none;
}

/* Nav toggle */
.nav-toggle {
	width: 42px; height: 42px;
	border: 1px solid rgba(201,168,76,0.18);
	border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(255,255,255,0.02);
	color: var(--text);
	cursor: pointer;
	transition: border-color var(--transition), background var(--transition);
}

.nav-toggle:hover { background: rgba(201,168,76,0.08); border-color: rgba(201,168,76,0.42); }
.nav-toggle i { transition: transform var(--transition); }

/* Nav menu */
.site-nav {
	position: absolute;
	top: calc(100% + 0.6rem);
	right: 1rem; left: 1rem;
	background: linear-gradient(180deg, rgba(16,16,16,0.96) 0%, rgba(10,10,10,0.98) 100%);
	border: 1px solid rgba(201,168,76,0.18);
	border-radius: 18px;
	box-shadow: 0 24px 48px rgba(0,0,0,0.34);
	padding: 0.8rem;
	opacity: 0;
	transform: translateY(-8px);
	pointer-events: none;
	transition: opacity var(--transition), transform var(--transition);
}

.site-nav.open {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

nav.scrolled {
	background: rgba(8,8,8,0.95);
}

.site-nav ul {
	list-style: none;
	margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 0.32rem;
}

.site-nav a {
	display: block;
	padding: 0.74rem 1rem;
	border-radius: 999px;
	font-family: 'DM Mono', monospace;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--text) 52%, var(--muted));
	transition: color var(--transition), background var(--transition);
}

.site-nav a:hover,
.site-nav a.active {
	color: var(--gold);
	background: rgba(201,168,76,0.09);
}

/* Theme toggle */
.theme-toggle {
	width: 42px; height: 42px;
	border: 1px solid rgba(201,168,76,0.18);
	border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(255,255,255,0.02);
	color: var(--muted);
	cursor: pointer;
	transition: color var(--transition), border-color var(--transition), background var(--transition);
}

.theme-toggle:hover {
	color: var(--gold);
	border-color: rgba(201,168,76,0.42);
	background: rgba(201,168,76,0.08);
}

/* CTA in header */
.header-cta {
	display: none;
	border: 1px solid var(--gold) !important;
	background: rgba(201,168,76,0.03) !important;
	color: var(--gold) !important;
	border-radius: 50px !important;
	font-family: 'DM Mono', monospace;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.72rem 1.35rem !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
	transition: background var(--transition), color var(--transition), border-color var(--transition) !important;
}

.header-cta:hover {
	background: var(--gold) !important;
	color: #0a0a0a !important;
}

/* =====================================================
	 BUTTONS
	 ===================================================== */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border: none;
	border-radius: 50px;
	padding: 0.9rem 1.65rem;
	font-family: 'DM Sans', sans-serif;
	font-weight: 500;
	font-size: 0.92rem;
	letter-spacing: 0.01em;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	box-shadow: 0 10px 24px rgba(0,0,0,0.18);
	transition: transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
}

.btn:hover { transform: translateY(-2px); }
.btn:active { transform: scale(0.97); }

.btn-primary {
	background: linear-gradient(180deg, #d3b45f 0%, var(--gold) 100%);
	color: #0a0a0a;
	box-shadow: 0 12px 30px rgba(201,168,76,0.24);
}

.btn-primary:hover {
	background: linear-gradient(180deg, #ddc067 0%, var(--gold-light) 100%);
	box-shadow: 0 14px 34px rgba(201,168,76,0.3);
}

.btn-secondary {
	background: rgba(201,168,76,0.03);
	border: 1px solid rgba(201,168,76,0.55);
	color: var(--gold);
	box-shadow: none;
}

.btn-secondary:hover {
	background: rgba(201,168,76,0.08);
	border-color: var(--gold-light);
	transform: translateY(-2px);
}

/* =====================================================
	 HERO (global)
	 ===================================================== */
.hero {
	min-height: 100svh;
	padding: calc(var(--header-height) + 3rem) 0 4rem;
	display: flex;
	align-items: center;
	overflow: hidden;
	position: relative;
	isolation: isolate;
	background: var(--bg);
}

/* Radial gold glow */
.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(ellipse at 50% 58%, rgba(201,168,76,0.045) 0%, transparent 68%);
	z-index: -1;
}

.hero::after { display: none !important; }

.hero-inner {
	display: grid;
	gap: clamp(2rem, 4vw, 5rem);
	width: 100%;
	align-items: center;
}

/* HERO HOME */
.hero-home { background: var(--bg); }

.hero-home .hero-inner {
	grid-template-columns: minmax(0, 1.06fr) minmax(360px, 0.94fr);
	gap: clamp(3rem, 4vw, 5.4rem);
}

/* Homepage hero compact variant */
.hero-home {
	min-height: 88svh;
	padding: calc(var(--header-height) + 2.6rem) 0 3.2rem;
}

.hero-home .hero-inner {
	align-items: center;
	gap: clamp(1.4rem, 2.6vw, 3rem);
}

.hero-home .hero-copy { max-width: 690px; }

.hero-home .hero-copy h1 {
	font-size: clamp(2.95rem, 2.1rem + 2.75vw, 4.95rem);
	max-width: 15ch;
	margin-bottom: 1rem;
}

.hero-home .hero-copy > p {
	max-width: 58ch;
	line-height: 1.72;
}

.hero-home .hero-actions { margin-top: 1.45rem; }
.hero-home .hero-trust { margin-top: 0.9rem; }
.hero-home .hero-metrics { margin-top: 1.15rem; max-width: 620px; }

.hero-home .hero-showcase {
	width: min(100%, 660px);
	margin-top: 0;
}

.hero-home .browser-preview { aspect-ratio: 1.45 / 1; }

.hero-home .hero-side-note {
	margin-top: 0.65rem;
	padding: 0.8rem 0.95rem;
}

.hero-copy {
	max-width: 900px;
	text-align: center;
	margin: 0 auto;
}

.hero-eyebrow {
	margin: 0 0 1.2rem;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.42rem 0.9rem;
	border-radius: 999px;
	background: #161616;
	border: 1px solid var(--border);
	font-family: 'DM Mono', monospace;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gold);
}

.hero-eyebrow span {
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--gold);
	box-shadow: 0 0 6px rgba(201,168,76,0.6);
}

/* suppress kicker — eyebrow takes that role */
.hero-kicker {
	display: none !important;
}

.hero-brand-claim {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(1rem, 0.92rem + 0.58vw, 1.28rem);
	font-weight: 400;
	font-style: italic;
	line-height: 1.6;
	color: color-mix(in srgb, var(--text) 34%, var(--muted));
	margin: 0 auto 1rem;
	max-width: 65ch;
	background: none;
	-webkit-text-fill-color: currentColor;
	text-shadow: none;
	animation: none;
}

.hero-copy h1 {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(3rem, 2rem + 3.5vw, 6rem);
	font-weight: 700;
	line-height: 1.03;
	letter-spacing: -0.03em;
	color: var(--text);
	max-width: 100%;
	text-shadow: none;
	text-wrap: balance;
	margin: 0 auto 1.2rem;
}

.hero-copy p {
	color: color-mix(in srgb, var(--text) 18%, var(--muted));
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem);
	max-width: 100%;
	line-height: 1.72;
	margin: 0 auto;
}

.hero-home .hero-copy > p { color: var(--muted); }

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1.8rem;
	justify-content: center;
}

.hero-home .btn { min-width: 190px; min-height: 52px; }

/* trust / proof pills */
.hero-trust,
.hero-proofline {
	margin-top: 1.2rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	color: var(--muted);
	font-size: 0.84rem;
	justify-content: center;
}

.hero-trust span,
.hero-proofline span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.56rem 0.85rem;
	border-radius: 999px;
	border: 1px solid rgba(201,168,76,0.14);
	background: rgba(201,168,76,0.035);
	color: var(--muted);
}

.hero-trust i, .hero-proofline i { color: var(--gold); }

/* Hero metrics */
.hero-metrics {
	margin-top: 1.6rem;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem;
	max-width: 580px;
	margin-left: auto;
	margin-right: auto;
}

.hero-metrics article {
	border-radius: 16px;
	border: 1px solid rgba(201,168,76,0.14);
	background: linear-gradient(180deg, rgba(201,168,76,0.05) 0%, rgba(255,255,255,0.015) 100%);
	padding: 0.95rem 1rem;
	transition: background var(--transition), transform var(--transition);
}

.hero-metrics article:hover {
	transform: translateY(-2px);
	background: rgba(201,168,76,0.08);
}

.hero-metrics strong {
	display: block;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--gold);
	line-height: 1;
}

.hero-metrics small {
	display: block;
	margin-top: 0.25rem;
	font-family: 'DM Mono', monospace;
	font-size: 0.66rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
}

/* =====================================================
	 BROWSER MOCKUP
	 ===================================================== */
.hero-showcase {
	position: relative;
	justify-self: end;
	width: min(100%, 610px);
	perspective: 1200px;
}

/* hide decorative floats */
.hero-showcase-glow,
.hero-showcase::before,
.hero-showcase::after,
.hero-floating-chip,
.hero-showcase-card,
.hero-scroll-indicator,
.hero-scroll-mouse {
	display: none !important;
}

.hero-side-note {
	margin-top: 1rem;
	padding: 1rem 1.1rem;
	border-radius: 16px;
	border: 1px solid rgba(201,168,76,0.14);
	background: linear-gradient(180deg, rgba(18,18,18,0.92) 0%, rgba(13,13,13,0.88) 100%);
	box-shadow: 0 16px 36px rgba(0,0,0,0.22);
}

.hero-side-note strong {
	display: block;
	color: var(--text);
	font-family: 'DM Sans', sans-serif;
	font-size: 0.95rem;
}

.hero-side-note span {
	display: block;
	margin-top: 0.3rem;
	color: var(--muted);
	font-size: 0.88rem;
	line-height: 1.6;
}

.browser-mockup {
	position: relative;
	--tilt-x: 4deg;
	--tilt-y: -10deg;
	--lift: 0px;
	border-radius: 20px;
	overflow: hidden;
	background: var(--surface);
	border: 1px solid rgba(201,168,76,0.14);
	box-shadow: 0 0 58px rgba(201,168,76,0.07), 0 30px 72px rgba(0,0,0,0.5);
	transform: perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift));
	animation: none;
	transform-style: preserve-3d;
	transform-origin: center right;
	backface-visibility: hidden;
	will-change: transform;
	transition: transform 280ms cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow var(--transition), border-color var(--transition);
}

.hero-home .browser-mockup {
	transform: perspective(1400px) rotateX(6deg) rotateY(-13deg) translateY(0) !important;
	box-shadow: 0 0 66px rgba(201,168,76,0.08), 0 38px 90px rgba(0,0,0,0.56);
}

.hero-showcase:hover .browser-mockup,
.browser-mockup:hover {
	--tilt-x: 5deg;
	--tilt-y: -12deg;
	--lift: -8px;
	box-shadow: 0 0 72px rgba(201,168,76,0.09), 0 42px 96px rgba(0,0,0,0.58);
	border-color: rgba(201,168,76,0.24);
}

.hero-home .hero-showcase:hover .browser-mockup,
.hero-home .browser-mockup:hover {
	transform: perspective(1400px) rotateX(7deg) rotateY(-15deg) translateY(-8px) !important;
	box-shadow: 0 0 80px rgba(201,168,76,0.1), 0 50px 110px rgba(0,0,0,0.64);
}

.browser-topbar {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.95rem 1.05rem;
	border-bottom: 1px solid var(--border);
	background: rgba(255,255,255,0.02);
}

.browser-topbar span {
	width: 9px; height: 9px;
	border-radius: 50%;
	background: rgba(255,255,255,0.18);
}

.browser-address {
	margin-left: 0.5rem;
	padding: 0.22rem 0.65rem;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: rgba(201,168,76,0.06);
	color: var(--muted);
	font-family: 'DM Mono', monospace;
	font-size: 0.7rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.browser-preview {
	position: relative;
	aspect-ratio: 1.36 / 1;
	background: #0a0a0a;
}

/* Subtle life for homepage hero video */
.hero-home .browser-preview {
	overflow: hidden;
	isolation: isolate;
}

.hero-home .browser-preview::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(115deg, transparent 12%, rgba(255,255,255,0.08) 34%, transparent 56%),
		linear-gradient(205deg, transparent 18%, rgba(201,168,76,0.12) 45%, transparent 72%);
	opacity: 0.32;
	animation: heroVideoSheen 7.5s ease-in-out infinite;
	z-index: 1;
}

.hero-home .browser-preview::after {
	content: "";
	position: absolute;
	inset: -20% -10%;
	pointer-events: none;
	background:
		radial-gradient(ellipse at 20% 30%, rgba(201,168,76,0.14) 0%, transparent 55%),
		radial-gradient(ellipse at 80% 70%, rgba(201,168,76,0.1) 0%, transparent 58%);
	opacity: 0.55;
	mix-blend-mode: screen;
	animation: heroVideoGlow 8.5s ease-in-out infinite;
	z-index: 2;
}

.hero-home .browser-preview video {
	transform-origin: 52% 50%;
	animation: heroVideoPanZoom 14s ease-in-out infinite alternate;
	filter: saturate(1.08) contrast(1.05) brightness(1.02);
	animation-name: heroVideoPanZoom, heroVideoTone;
	animation-duration: 14s, 9.5s;
	animation-timing-function: ease-in-out, ease-in-out;
	animation-iteration-count: infinite, infinite;
	animation-direction: alternate, alternate;
	will-change: transform;
}

.hero-home .browser-preview:hover video {
	animation-duration: 10s;
}

.browser-preview img,
.browser-preview video {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}

/* =====================================================
	 CARDS
	 ===================================================== */
.card {
	background: var(--surface);
	border: 1px solid rgba(201,168,76,0.12);
	border-radius: 16px;
	padding: 1.7rem;
	box-shadow: 0 14px 34px rgba(0,0,0,0.12);
	transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);
}

.card:hover {
	transform: translateY(-4px);
	border-color: rgba(201,168,76,0.22);
	box-shadow: 0 18px 38px rgba(0,0,0,0.16);
}

.price-card:hover         { transform: translateY(-4px); }
.price-card.featured:hover { transform: translateY(-8px); }

.icon-wrap {
	width: 46px; height: 46px;
	border-radius: 12px;
	display: grid; place-items: center;
	margin-bottom: 1rem;
	font-size: 1.1rem;
	color: var(--gold);
	background: rgba(201,168,76,0.08);
	border: 1px solid rgba(201,168,76,0.16);
	animation: none;
}

/* Feature / service / process cards */
.feature-card { background: var(--surface); height: 100%; }
.service-card  { position: relative; overflow: hidden; padding-top: 1.7rem; height: 100%; }
.process-card  { background: var(--surface); height: 100%; }

.cards-3 > article.card,
.cards-4 > article.card,
.pricing-grid > article.card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.cards-3 > article.card .list,
.cards-4 > article.card .list {
	margin-top: auto;
	padding-top: 1.1rem;
}

.feature-card h3,
.service-card h3,
.process-card h3 {
	font-size: clamp(1.1rem, 0.9rem + 0.5vw, 1.35rem);
	color: var(--text);
	margin: 0.2rem 0 0;
}

.feature-card p,
.service-card p,
.process-card p {
	margin: 0.7rem 0 0;
	color: var(--muted);
	font-size: 0.95rem;
	line-height: 1.7;
}

.service-card-label {
	margin: 0 0 0.85rem;
	font-family: 'DM Mono', monospace;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gold);
}

/* =====================================================
	 PORTFOLIO CARDS
	 ===================================================== */
.portfolio-card      { padding: 1.55rem; height: 100%; }
.case-study-card     { padding: 1.6rem; }

.portfolio-card h3   { color: var(--text); margin-top: 0.1rem; margin-bottom: 0.15rem; }
.portfolio-card p    { color: var(--muted); margin: 0.6rem 0 0; font-size: 0.93rem; }

.portfolio-grid {
	gap: 1.55rem;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}

.portfolio-card:hover {
	border-color: var(--gold);
	box-shadow: 0 0 40px rgba(201,168,76,0.1);
}

/* =====================================================
	 PROJECT THUMBNAIL / CAROUSEL
	 ===================================================== */
.project-thumb {
	border-radius: 16px;
	margin-bottom: 1rem;
	min-height: 300px;
	border: 1px solid rgba(201,168,76,0.12);
	overflow: hidden;
	background: var(--surface-2);
	position: relative;
}

.project-thumb img,
.project-thumb video {
	width: 100%; height: 100%;
	min-height: 300px;
	object-fit: cover;
}

.project-carousel { position: relative; width: 100%; height: 100%; min-height: inherit; }

.project-carousel-track {
	display: flex;
	width: 100%; height: 100%;
	transition: transform 0.45s ease;
	will-change: transform;
}

.project-carousel-track .zoomable-media {
	width: 100%; min-width: 100%;
	height: 100%; min-height: 300px;
	object-fit: cover;
}

.project-carousel-track video.zoomable-media {
	width: 100%; min-width: 100%;
	height: 100%; min-height: 300px;
	object-fit: cover;
	display: block;
}

.zoomable-media { cursor: zoom-in; transition: transform var(--transition); }
.project-thumb:hover .zoomable-media { transform: scale(1.03); }

.project-carousel-btn {
	position: absolute;
	top: 50%; transform: translateY(-50%);
	width: 34px; height: 34px;
	border: 1px solid rgba(201,168,76,0.4);
	border-radius: 50%;
	background: rgba(8,8,8,0.7);
	color: var(--gold);
	display: grid; place-items: center;
	cursor: pointer;
	z-index: 2;
	transition: background var(--transition), border-color var(--transition);
}

.project-carousel-btn:hover {
	background: rgba(201,168,76,0.15);
	border-color: var(--gold);
}

.project-carousel-btn.prev { left: 0.7rem; }
.project-carousel-btn.next { right: 0.7rem; }

.project-carousel-dots {
	position: absolute;
	left: 50%; bottom: 0.7rem;
	transform: translateX(-50%);
	display: inline-flex; gap: 0.34rem;
	z-index: 2;
}

.project-carousel-dot {
	width: 7px; height: 7px;
	border-radius: 50%;
	background: rgba(201,168,76,0.35);
	border: none; padding: 0; cursor: pointer;
}

.project-carousel-dot.is-active { background: var(--gold); }

.project-type {
	margin: 0.2rem 0 0.5rem;
	font-family: 'DM Mono', monospace;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gold);
}

.project-tags { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.8rem; }

.project-tags span {
	font-family: 'DM Mono', monospace;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	padding: 0.24rem 0.6rem;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--muted);
	transition: all var(--transition);
}

.project-tags span:hover {
	background: rgba(201,168,76,0.1);
	border-color: var(--gold);
	color: var(--gold);
}

.project-actions { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: 0.55rem; }

.project-actions a {
	font-size: 0.82rem;
	font-weight: 500;
	padding: 0.5rem 0.85rem;
	border-radius: 10px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--muted);
	transition: all var(--transition);
}

.project-actions a:hover {
	border-color: var(--gold);
	color: var(--gold);
	background: rgba(201,168,76,0.06);
}

/* =====================================================
	 LIGHTBOX
	 ===================================================== */
.media-lightbox {
	position: fixed; inset: 0; z-index: 2400;
	display: none; align-items: center; justify-content: center;
	padding: clamp(1rem, 2.6vw, 2rem);
	background: rgba(0,0,0,0.92);
	backdrop-filter: blur(12px);
}

.media-lightbox.open { display: flex; }

.media-lightbox-content { width: 100%; height: 100%; display: grid; place-items: center; }

.media-lightbox img,
.media-lightbox video {
	display: none;
	width: min(1280px, 96vw);
	max-height: 90vh;
	object-fit: contain;
	border-radius: 14px;
	border: 1px solid var(--border);
	box-shadow: 0 30px 80px rgba(0,0,0,0.7);
}

.media-lightbox img.is-active,
.media-lightbox video.is-active { display: block; }

.media-lightbox-close {
	position: absolute;
	top: clamp(0.7rem, 2.4vw, 1.25rem);
	right: clamp(0.7rem, 2.4vw, 1.25rem);
	width: 44px; height: 44px;
	border: 1px solid var(--border);
	border-radius: 999px;
	background: rgba(8,8,8,0.8);
	color: var(--text);
	display: grid; place-items: center;
	font-size: 1.2rem;
	cursor: pointer;
	transition: border-color var(--transition), color var(--transition);
}

.media-lightbox-close:hover { border-color: var(--gold); color: var(--gold); }
body.lightbox-open { overflow: hidden; }

/* =====================================================
	 BAND (inner page hero strip)
	 ===================================================== */
.band { padding: 5rem 0; margin-top: calc(var(--header-height) + 1.2rem); }

.band-shell {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	color: var(--text);
	box-shadow: 0 0 60px rgba(201,168,76,0.05);
	position: relative;
	overflow: hidden;
}

.band-shell::before { display: none; }
.band-shell > * { position: relative; z-index: 1; }
.band-shell p { color: var(--muted); }

.kpis { margin-top: 1.6rem; display: grid; gap: 0.9rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.kpis .card { background: rgba(201,168,76,0.05); border-color: var(--border); box-shadow: none; }
.kpis strong { font-size: 1.4rem; display: block; color: var(--gold); font-family: 'Cormorant Garamond', serif; }
.kpis span { color: var(--muted); font-size: 0.85rem; }

/* =====================================================
	 SITE SHOT (mockup compatible)
	 ===================================================== */
.site-shot {
	--shot-primary: #C9A84C;
	--shot-secondary: #96762a;
	--shot-tint: #1a1508;
	--shot-line: rgba(201,168,76,0.12);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 14px;
	min-height: 320px;
	overflow: hidden;
	position: relative;
	transition: all var(--transition);
}

.shot-plomberie  { --shot-primary: #C9A84C; }
.shot-restaurant { --shot-primary: #C9A84C; }
.shot-avocat     { --shot-primary: #C9A84C; }
.shot-immobilier { --shot-primary: #C9A84C; }
.shot-coiffure   { --shot-primary: #C9A84C; }
.shot-batiment   { --shot-primary: #C9A84C; }

.site-shot-top {
	height: 34px;
	display: flex; align-items: center; gap: 5px;
	padding: 0 0.8rem;
	background: #0c0c0c;
	border-bottom: 1px solid var(--border);
}

.site-shot-top span { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.14); }
.site-shot-tab { width: 80px; height: 16px; border-radius: 6px 6px 0 0; margin-left: 0.4rem; background: rgba(201,168,76,0.08); border: 1px solid var(--border); border-bottom: none; }
.site-shot-top small { margin-left: auto; font-family: 'DM Mono', monospace; font-size: 0.62rem; letter-spacing: 0.06em; color: var(--muted); }
.site-shot-canvas { display: grid; grid-template-columns: 40px 1fr; gap: 0.65rem; padding: 0.75rem; background: #0c0c0c; }
.site-shot-side { border-radius: 10px; border: 1px solid var(--border); background: #121212; padding: 0.4rem; display: grid; gap: 0.35rem; align-content: start; }
.site-shot-side i { display: block; height: 8px; border-radius: 999px; background: rgba(201,168,76,0.15); }
.site-shot-nav { height: 32px; border-radius: 9px; border: 1px solid var(--border); background: #121212; }
.site-shot-hero { margin-top: 0.5rem; border-radius: 10px; border: 1px solid var(--border); background: linear-gradient(140deg, #1a1100, #0d0b00); padding: 0.6rem; }
.site-shot-hero b { display: inline-flex; padding: 0.18rem 0.5rem; border-radius: 999px; font-size: 0.6rem; font-weight: 700; color: #0a0a0a; background: var(--gold); }
.site-shot-hero i { display: block; height: 6px; border-radius: 999px; background: rgba(201,168,76,0.5); }
.site-shot-hero i:nth-child(2) { width: 72%; margin-top: 0.44rem; }
.site-shot-hero i:nth-child(3) { width: 52%; margin-top: 0.28rem; opacity: 0.7; }
.site-shot-kpis { margin-top: 0.48rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0.36rem; }
.site-shot-kpis span { display: block; height: 26px; border-radius: 8px; border: 1px solid var(--border); background: #121212; }
.site-shot-grid { margin-top: 0.44rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0.36rem; }
.site-shot-grid em { display: block; height: 58px; border-radius: 9px; border: 1px solid var(--border); background: #121212; }
.site-shot-cta { margin-top: 0.44rem; height: 12px; width: 56%; border-radius: 999px; background: rgba(201,168,76,0.2); }
.portfolio-card:hover .site-shot { transform: translateY(-4px); border-color: var(--gold); box-shadow: 0 0 40px rgba(201,168,76,0.1); }

/* =====================================================
	 MOCKUP COMPAT
	 ===================================================== */
.mockup-site { background: var(--surface-2); padding: 0.6rem; }
.mockup-topbar { height: 14px; display: flex; align-items: center; gap: 4px; }
.mockup-topbar span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.14); }
.mockup-navbar { height: 24px; margin-top: 0.3rem; border: 1px solid var(--border); border-radius: 7px; background: var(--surface); display: flex; align-items: center; justify-content: space-between; padding: 0 0.4rem; }
.mockup-brand { font-size: 0.54rem; font-weight: 700; color: var(--gold); }
.mockup-navline { width: 38px; height: 5px; border-radius: 999px; background: rgba(201,168,76,0.2); }
.mockup-hero-block { margin-top: 0.4rem; border-radius: 9px; border: 1px solid var(--border); background: linear-gradient(135deg, #1a1100, #0d0b00); padding: 0.5rem; }
.mockup-hero-block i { display: block; height: 5px; border-radius: 999px; background: rgba(201,168,76,0.6); }
.mockup-hero-block i:nth-child(1) { width: 72%; }
.mockup-hero-block i:nth-child(2) { width: 50%; margin-top: 0.3rem; }
.mockup-hero-block i:nth-child(3) { width: 34%; margin-top: 0.38rem; height: 10px; background: var(--gold); }
.mockup-content-grid { margin-top: 0.42rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0.3rem; }
.mockup-content-grid b { display: block; height: 34px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface); }

/* =====================================================
	 PRICING
	 ===================================================== */
.list { display: grid; gap: 0.7rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.list li { display: flex; align-items: flex-start; gap: 0.6rem; color: var(--muted); line-height: 1.6; }
.list i { margin-top: 0.28rem; color: var(--gold); }

.pricing-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); align-items: stretch; }

.price-card { position: relative; }

.price {
	margin: 1rem 0;
	font-size: 2.2rem;
	font-weight: 700;
	font-family: 'Cormorant Garamond', serif;
	color: var(--gold);
	line-height: 1;
}

.price small { font-size: 0.9rem; color: var(--muted); font-family: 'DM Sans', sans-serif; }

.price-card.featured {
	border-color: rgba(201,168,76,0.5);
	box-shadow: 0 0 60px rgba(201,168,76,0.12);
	transform: translateY(-4px);
}

.badge {
	position: absolute; top: 1rem; right: 1rem;
	font-family: 'DM Mono', monospace;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	background: rgba(201,168,76,0.14);
	color: var(--gold);
	border-radius: 999px;
	padding: 0.3rem 0.65rem;
	border: 1px solid var(--border);
}

/* =====================================================
	 FAQ
	 ===================================================== */
.faq-item { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 0.5rem; }
.faq-question { width: 100%; text-align: left; background: var(--surface); border: none; padding: 1rem; font-family: 'DM Sans', sans-serif; font-weight: 500; color: var(--text); display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: background var(--transition), color var(--transition); }
.faq-question:hover { background: var(--surface-2); color: var(--gold); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height var(--transition), padding var(--transition); padding: 0 1rem; color: var(--muted); }
.faq-item.open .faq-answer { max-height: 220px; padding: 0 1rem 1rem; }
.faq-item.open .faq-question i { transform: rotate(180deg); }

/* =====================================================
	 CTA STRIP
	 ===================================================== */
.cta-strip {
	padding: clamp(2rem, 4vw, 3rem);
	border-radius: 20px;
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: 0 0 80px rgba(201,168,76,0.06);
	text-align: center;
	color: var(--text);
}

.cta-strip .section-title { max-width: none; color: var(--text); }
.cta-strip p { max-width: 58ch; color: var(--muted); margin: 0.75rem auto 0; }
.cta-strip .btn-secondary { border-color: var(--gold); color: var(--gold); }
.cta-strip .btn-secondary:hover { background: rgba(201,168,76,0.1); }

/* =====================================================
	 CONTACT FORM
	 ===================================================== */
.contact-grid { display: grid; gap: 1rem; }
.form-grid { display: grid; gap: 0.85rem; }
.field { display: grid; gap: 0.4rem; }

.field label {
	font-family: 'DM Mono', monospace;
	font-size: 0.74rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
}

.field input,
.field select,
.field textarea {
	width: 100%;
	border: none;
	border-bottom: 1px solid var(--border);
	border-radius: 0;
	padding: 0.85rem 0;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.95rem;
	background: transparent;
	color: var(--text);
	transition: border-color var(--transition);
}

.field input::placeholder,
.field textarea::placeholder { color: rgba(122,113,104,0.5); }

.field input:focus,
.field select:focus,
.field textarea:focus { outline: none; border-bottom-color: var(--gold); }

.field textarea {
	min-height: 140px;
	resize: vertical;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 0.85rem;
}

.field textarea:focus { border-color: var(--gold); }

.field select {
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 0.85rem;
}

.field select:focus { border-color: var(--gold); }

/* Keep placeholder choice readable and options high contrast */
.field select:invalid { color: var(--muted); }

.field select option {
	color: var(--text);
	background: #111111;
}

.field select option[value=""] { color: var(--muted); }

.info-list { display: grid; gap: 0.9rem; }
.map { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); min-height: 280px; }
.map iframe { border: 0; width: 100%; height: 100%; }

/* =====================================================
	 FORM STATUS
	 ===================================================== */
.form-status {
	margin: 0.8rem 0 0;
	padding: 0.72rem 0.9rem;
	border-radius: 10px;
	border: 1px solid transparent;
	font-family: 'DM Mono', monospace;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	display: none;
}

.form-status.show { display: block; }
.form-status.success { background: rgba(201,168,76,0.1); border-color: rgba(201,168,76,0.4); color: var(--gold); }
.form-status.error { background: rgba(200,50,50,0.1); border-color: rgba(200,50,50,0.3); color: #e08080; }

/* =====================================================
	 FOOTER
	 ===================================================== */
.site-footer {
	padding: 3.5rem 0 2rem;
	background: #050505;
	color: var(--muted);
	border-top: 1px solid var(--border);
	margin-top: 4rem;
}

.footer-brand-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.4rem; }
.footer-brand-head h3 { font-family: 'DM Sans', sans-serif; font-size: 1rem; font-weight: 500; color: var(--text); }
.footer-logo { width: clamp(170px, 22vw, 320px); height: auto; object-fit: contain; }
.footer-top { display: grid; gap: 1.5rem; }
.footer-brand { max-width: 400px; }
.footer-brand p { color: var(--muted); font-size: 0.9rem; line-height: 1.75; }
.footer-top h3 { font-family: 'DM Mono', monospace; font-size: 0.72rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.75rem; }
.footer-links { display: grid; gap: 0.45rem; }
.footer-links a, .footer-meta { color: var(--muted); font-size: 0.88rem; transition: color var(--transition); }
.footer-links a:hover { color: var(--gold); }
.footer-meta { line-height: 1.7; }

.social-links { margin-top: 1.2rem; display: flex; gap: 0.6rem; }

.social-links a {
	width: 38px; height: 38px;
	border-radius: 50%;
	border: 1px solid var(--border);
	display: grid; place-items: center;
	color: var(--muted);
	transition: all var(--transition);
}

.social-links a:hover {
	transform: translateY(-2px);
	border-color: var(--gold);
	color: var(--gold);
	background: rgba(201,168,76,0.08);
}

.footer-bottom {
	margin-top: 2rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--border);
	display: flex; flex-wrap: wrap;
	justify-content: space-between; gap: 0.7rem;
}

/* =====================================================
	 SCROLL REVEAL
	 ===================================================== */
.reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94);
	transition-delay: var(--reveal-delay, 0ms);
}

.reveal.visible { opacity: 1; transform: translateY(0); }

/* =====================================================
	 BACK TO TOP
	 ===================================================== */
.back-to-top {
	position: fixed;
	right: 1.2rem; bottom: 5.8rem;
	width: 46px; height: 46px;
	border: 1px solid var(--border);
	border-radius: 50%;
	background: var(--surface);
	color: var(--muted);
	display: grid; place-items: center;
	opacity: 0; transform: translateY(12px);
	pointer-events: none;
	transition: opacity var(--transition), transform var(--transition), color var(--transition), border-color var(--transition);
	z-index: 950;
}

.back-to-top.visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.back-to-top:hover { color: var(--gold); border-color: var(--gold); }

/* =====================================================
	 CHAT WIDGET
	 ===================================================== */
.chat-widget { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 960; }

.chat-toggle {
	width: 54px; height: 54px;
	border-radius: 50%; border: none;
	background: var(--gold);
	color: #0a0a0a;
	box-shadow: 0 8px 28px rgba(201,168,76,0.35);
	display: grid; place-items: center;
	font-size: 1.15rem;
	cursor: pointer;
	transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
}

.chat-toggle:hover { transform: translateY(-2px); background: var(--gold-light); box-shadow: 0 12px 36px rgba(201,168,76,0.42); }

.chat-panel {
	position: absolute; right: 0; bottom: 4.2rem;
	width: min(350px, calc(100vw - 1.8rem));
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.6);
	overflow: hidden;
	opacity: 0; pointer-events: none;
	transform: translateY(12px) scale(0.98);
	transform-origin: bottom right;
	transition: opacity var(--transition), transform var(--transition);
}

.chat-widget.open .chat-panel { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }

.chat-head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 0.8rem 0.9rem;
	background: rgba(201,168,76,0.1);
	border-bottom: 1px solid var(--border);
	color: var(--text);
}

.chat-close { border: 1px solid var(--border); background: transparent; color: var(--muted); width: 32px; height: 32px; border-radius: 50%; cursor: pointer; transition: all var(--transition); }
.chat-close:hover { border-color: var(--gold); color: var(--gold); }

.chat-messages { height: 280px; overflow-y: auto; padding: 0.9rem; display: grid; gap: 0.7rem; background: #0a0a0a; }

.chat-message { max-width: 85%; padding: 0.6rem 0.75rem; border-radius: 12px; font-size: 0.9rem; line-height: 1.55; }
.chat-message.user { margin-left: auto; background: var(--gold); color: #0a0a0a; }
.chat-message.ai { margin-right: auto; background: var(--surface-2); color: var(--text); border: 1px solid var(--border); }

.chat-form {
	display: flex; gap: 0.55rem;
	padding: 0.75rem;
	border-top: 1px solid var(--border);
	background: var(--surface);
}

.chat-input {
	width: 100%;
	border-radius: 8px;
	border: 1px solid var(--border);
	background: #0a0a0a;
	color: var(--text);
	padding: 0.56rem 0.7rem;
	font-family: 'DM Sans', sans-serif;
	font-size: 0.9rem;
}

.chat-input::placeholder { color: var(--muted); }
.chat-input:focus { outline: none; border-color: var(--gold); }

.chat-send { border: none; border-radius: 8px; width: 40px; background: var(--gold); color: #0a0a0a; cursor: pointer; transition: background var(--transition); }
.chat-send:hover { background: var(--gold-light); }

/* Quick replies */
.chat-quick-replies {
	display: flex; flex-wrap: wrap; gap: 0.42rem;
	padding: 0.65rem 0.85rem 0.5rem;
	border-top: 1px solid var(--border);
	background: #0a0a0a;
}

.chat-quick-replies.hidden { display: none; }

.chat-quick-reply {
	padding: 0.3rem 0.75rem;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--gold);
	font-family: 'DM Mono', monospace;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	cursor: pointer;
	white-space: nowrap;
	transition: all var(--transition);
}

.chat-quick-reply:hover {
	background: rgba(201,168,76,0.12);
	border-color: var(--gold);
	transform: translateY(-1px);
}

/* =====================================================
	 CUSTOM CURSOR
	 ===================================================== */
#cursor {
	width: 18px; height: 18px;
	border: 1.5px solid var(--gold);
	border-radius: 50%;
	position: fixed;
	pointer-events: none;
	transform: translate(-50%, -50%);
	transition: width 0.2s ease, height 0.2s ease;
	z-index: 9999;
}

#cursor.big { width: 36px; height: 36px; }

.custom-cursor, .custom-cursor-trail { display: none !important; }

body.cursor-enabled,
body.cursor-enabled a,
body.cursor-enabled button,
body.cursor-enabled .card { cursor: none; }

body.cursor-enabled input,
body.cursor-enabled textarea,
body.cursor-enabled select { cursor: text; }

/* =====================================================
	 RESPONSIVE
	 ===================================================== */
@media (min-width: 960px) {
	.header-shell {
		justify-content: flex-start;
	}

	.brand {
		margin-right: 1.1rem;
	}

	.nav-toggle { display: none; }

	.site-nav {
		position: static;
		opacity: 1; pointer-events: auto; transform: none;
		border: none; box-shadow: none; background: transparent;
		width: auto; padding: 0;
		margin-inline: auto;
	}

	.site-nav ul { flex-direction: row; align-items: center; gap: 0.22rem; }
	.site-nav a { padding: 0.7rem 1rem; }
	.header-cta { display: inline-flex; }
}

@media (min-width: 720px) {
	.contact-grid { grid-template-columns: 1fr 1fr; align-items: start; }
	.footer-top { grid-template-columns: 1.2fr 0.8fr 0.8fr; }
}

@media (min-width: 1200px) {
	.cards-3       { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
	.portfolio-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
	.hero-home .hero-inner { grid-template-columns: 1fr; }
	.cards-3, .cards-4, .portfolio-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
	.portfolio-grid { grid-template-columns: 1fr; }
	.project-thumb, .project-thumb img, .project-thumb video { min-height: 240px; }
	.project-carousel-track .zoomable-media { min-height: 240px; }
	.project-carousel-track video.zoomable-media { min-height: 240px; }
}

@media (max-width: 768px) {
	h1 { font-size: clamp(2.6rem, 8vw, 4.5rem); }
	h2 { font-size: clamp(1.8rem, 5vw, 3rem); }
	.hero { padding: calc(var(--header-height) + 2rem) 0 3rem; }
	.hero-copy h1 { max-width: none; }
	.hero-metrics { grid-template-columns: 1fr; max-width: 100%; }
	.cards-3, .cards-4, .portfolio-grid { grid-template-columns: 1fr; }
	.hero-actions { flex-direction: column; }
	.hero-actions .btn { width: 100%; }
	.cta-strip { padding: 1.8rem; }
	.back-to-top { right: 1rem; bottom: 5.6rem; }
	.chat-widget { right: 1rem; bottom: 1rem; }
	.header-shell { min-height: 52px; padding: 0.3rem 0.85rem; gap: 0.8rem; }
	.brand--logo-only { max-width: min(260px, 65vw); }
	.brand-logo { height: 58px; }
	.footer-logo { width: clamp(150px, 42vw, 260px); }
	.hero-home .hero-inner { gap: 2rem; }
	.cards-3 > article.card,
	.cards-4 > article.card { padding: 1.45rem; }
}

@media (max-width: 959px) {
	.hero { padding: calc(var(--header-height) + 2.2rem) 0 3.2rem; }
	.hero-showcase { justify-self: center; width: min(100%, 520px); }
	.browser-mockup { animation: none; }
	.hero-home .browser-mockup { transform: perspective(1100px) rotateX(4deg) rotateY(-9deg) translateY(0) !important; }
	.theme-toggle { order: 4; }
	.header-cta { display: none; }
	.site-header { padding-top: 0.7rem; }
}

@media (max-width: 420px) {
	.container { width: calc(100% - 1.3rem); }
	.section { padding: 3.2rem 0; }
	.header-shell { min-height: 48px; padding: 0.25rem 0.58rem; gap: 0.55rem; }
	.brand--logo-only { max-width: min(210px, 72vw); }
	.brand-logo { height: 52px; }
	.footer-logo { width: clamp(130px, 58vw, 220px); }
	.nav-toggle, .theme-toggle { width: 38px; height: 38px; }

	.hero { padding: calc(var(--header-height) + 1.35rem) 0 2.2rem; }
	.hero-home { min-height: auto; padding: calc(var(--header-height) + 1.35rem) 0 2.2rem; }
	.hero-eyebrow { font-size: 0.64rem; padding: 0.36rem 0.64rem; margin-bottom: 0.7rem; }
	.hero-brand-claim { font-size: 1rem; line-height: 1.45; margin-bottom: 0.7rem; }
	.hero-home .hero-copy h1,
	.hero-copy h1 { font-size: clamp(2rem, 9.2vw, 2.7rem); line-height: 1.04; margin-bottom: 0.65rem; }
	.hero-copy p,
	.hero-home .hero-copy > p { font-size: 0.96rem; line-height: 1.58; }
	.hero-home .btn,
	.hero-actions .btn { min-width: 0; min-height: 48px; width: 100%; padding-inline: 1rem; }
	.hero-actions { gap: 0.65rem; margin-top: 0.9rem; }
	.hero-trust { gap: 0.45rem; margin-top: 0.6rem; }
	.hero-trust span { font-size: 0.7rem; padding: 0.42rem 0.6rem; }
	.hero-home .hero-metrics,
	.hero-metrics { margin-top: 0.75rem; gap: 0.55rem; }
	.hero-metrics article { padding: 0.68rem 0.7rem; }
	.hero-metrics strong { font-size: 1.3rem; }
	.hero-metrics small { font-size: 0.58rem; }

	.hero-showcase { width: 100%; }
	.hero-home .browser-mockup { transform: perspective(900px) rotateX(3deg) rotateY(-7deg) translateY(0) !important; }
	.browser-topbar { padding: 0.62rem 0.75rem; }
	.browser-preview { aspect-ratio: 1.25 / 1; }
	.hero-side-note { margin-top: 0.5rem; padding: 0.68rem 0.75rem; }
	.hero-side-note strong { font-size: 0.86rem; }
	.hero-side-note span { font-size: 0.8rem; }

	.project-thumb,
	.project-thumb img,
	.project-thumb video,
	.project-carousel-track .zoomable-media,
	.project-carousel-track video.zoomable-media { min-height: 205px; }
	.project-carousel-btn { width: 30px; height: 30px; }

	.real-hero { min-height: auto; padding: calc(var(--header-height) + 2.5rem) 0 2.5rem; }
	.real-hero-title { font-size: clamp(2.8rem, 15vw, 4.3rem); }
	.real-hero-sub { margin-bottom: 1.3rem; line-height: 1.6; }
	.real-counters { gap: 0.9rem 1.2rem; }
	.real-counter-item strong { font-size: clamp(2rem, 9vw, 2.7rem); }
	.real-filter-btn { font-size: 0.66rem; padding: 0.42rem 0.7rem; }

	.chat-widget { right: 0.7rem; bottom: 0.7rem; }
	.chat-panel { width: min(330px, calc(100vw - 1rem)); bottom: 3.8rem; }
	.chat-messages { height: 240px; }
	.back-to-top { right: 0.75rem; bottom: 5rem; width: 42px; height: 42px; }
}

@media (max-width: 360px) {
	.container { width: calc(100% - 1rem); }
	.header-shell { padding-inline: 0.48rem; }
	.brand-tagline { display: none; }
	.hero-home .hero-copy h1,
	.hero-copy h1 { font-size: clamp(1.8rem, 8.6vw, 2.35rem); }
	.hero-trust span { padding: 0.38rem 0.55rem; }
	.project-thumb,
	.project-thumb img,
	.project-thumb video,
	.project-carousel-track .zoomable-media,
	.project-carousel-track video.zoomable-media { min-height: 188px; }
	.real-filter-btn { padding: 0.38rem 0.6rem; letter-spacing: 0.07em; }
}

/* =====================================================
	 REDUCED MOTION
	 ===================================================== */
@media (prefers-reduced-motion: reduce) {
	.reveal { transition-duration: 0.01ms; transform: none; }
	* { animation: none !important; transition-duration: 0.01ms !important; }
}

/* =====================================================
	 KEYFRAMES
	 ===================================================== */
@keyframes ambientDrift {
	0%   { transform: translate3d(0,0,0) scale(1); }
	50%  { transform: translate3d(2.4vw,-2vh,0) scale(1.06); }
	100% { transform: translate3d(0,0,0) scale(1); }
}

@keyframes ambientFloat {
	0%, 100% { transform: translate3d(0,0,0); }
	50%      { transform: translate3d(8px,-14px,0); }
}

@keyframes blobPulse {
	0%,100% { filter: blur(0px); }
	50%     { filter: blur(4px); }
}

@keyframes claimFadeIn {
	0%   { opacity: 0; transform: translateY(-14px); }
	100% { opacity: 1; transform: translateY(0); }
}

@keyframes scrollDot {
	0%  { transform: translateY(0); opacity: 1; }
	70% { transform: translateY(14px); opacity: 0; }
	100%{ transform: translateY(0); opacity: 0; }
}

@keyframes premiumMockupFloat {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-6px); }
}

@keyframes heroVideoPanZoom {
	0%   { transform: scale(1.02) translate3d(0, 0, 0); }
	35%  { transform: scale(1.07) translate3d(-1.2%, -0.8%, 0); }
	70%  { transform: scale(1.05) translate3d(1%, 0.9%, 0); }
	100% { transform: scale(1.08) translate3d(0.6%, -0.5%, 0); }
}

@keyframes heroVideoGlow {
	0%, 100% { opacity: 0.44; transform: translate3d(0,0,0) scale(1); }
	50%      { opacity: 0.72; transform: translate3d(1.8%, -1.2%, 0) scale(1.05); }
}

@keyframes heroVideoSheen {
	0%, 100% { opacity: 0.18; transform: translate3d(-3%, 0, 0) scale(1); }
	50%      { opacity: 0.42; transform: translate3d(3%, -1.5%, 0) scale(1.04); }
}

@keyframes heroVideoTone {
	0%   { filter: saturate(1.04) contrast(1.03) brightness(1.01); }
	50%  { filter: saturate(1.12) contrast(1.07) brightness(1.04); }
	100% { filter: saturate(1.07) contrast(1.05) brightness(1.02); }
}
@keyframes premiumMockupFloat {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-6px); }
}

/* =====================================================
	 RÉALISATIONS PAGE
	 ===================================================== */

/* Hero */
.real-hero {
	min-height: 72vh;
	display: flex;
	align-items: flex-end;
	padding: calc(var(--header-height) + 5rem) 0 4.5rem;
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.real-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(ellipse at 40% 80%, rgba(201,168,76,0.07) 0%, transparent 65%);
	z-index: -1;
}

.real-hero-title {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(5rem, 3rem + 7vw, 12rem);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.04em;
	color: var(--text);
	margin: 0.6rem 0 1rem;
}

.real-hero-sub {
	font-size: clamp(1rem, 0.9rem + 0.4vw, 1.2rem);
	color: var(--muted);
	max-width: 54ch;
	margin: 0 0 2.5rem;
	line-height: 1.75;
}

/* Counter row */
.real-counters {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1.5rem, 3vw, 3rem);
}

.real-counter-item {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.real-counter-item strong {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(2.5rem, 1.5rem + 2vw, 4rem);
	font-weight: 700;
	color: var(--gold);
	line-height: 1;
	letter-spacing: -0.02em;
}

.real-counter-item span {
	font-family: 'DM Mono', monospace;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}

/* Filter buttons */
.real-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: 2.5rem;
}

.real-filter-btn {
	border: 1px solid var(--border);
	border-radius: 999px;
	padding: 0.5rem 1.1rem;
	background: transparent;
	color: var(--muted);
	font-family: 'DM Mono', monospace;
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: all var(--transition);
}

.real-filter-btn:hover {
	border-color: var(--gold);
	color: var(--gold-light);
}

.real-filter-btn.active {
	background: var(--gold);
	border-color: var(--gold);
	color: #0a0a0a;
}

/* 2-col masonry grid */
.real-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: start;
}

/* Card */
.real-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 18px;
	overflow: hidden;
	transition: border-color var(--transition), box-shadow var(--transition);
}

.real-card:hover {
	border-color: rgba(201,168,76,0.45);
	box-shadow: 0 0 60px rgba(201,168,76,0.1);
}

/* Card thumbnail wrapper */
.real-card-thumb {
	position: relative;
	overflow: hidden;
	cursor: pointer;
}

.real-card-thumb img,
.real-card-thumb video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.55s ease;
}

.real-card:hover .real-card-thumb img,
.real-card:hover .real-card-thumb video { transform: scale(1.04); }

/* Aspect ratios — alternating portrait/landscape */
.real-card:nth-child(odd)  .real-card-thumb { aspect-ratio: 4 / 5; }
.real-card:nth-child(even) .real-card-thumb { aspect-ratio: 16 / 10; }

/* Carousel inside real-card-thumb */
.real-card-thumb .project-carousel {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.real-card-thumb .project-carousel-track {
	height: 100%;
	display: flex;
}

.real-card-thumb .project-carousel-track .zoomable-media {
	width: 100%;
	min-width: 100%;
	height: 100%;
	min-height: unset;
	object-fit: cover;
}

/* Hover overlay */
.real-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.85);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.6rem;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
	z-index: 3;
}

.real-card:hover .real-overlay { opacity: 1; }

.real-overlay-title {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(1.8rem, 1.2rem + 1.5vw, 2.8rem);
	font-weight: 700;
	color: #ffffff;
	margin: 0;
	line-height: 1.05;
}

.real-overlay-type {
	font-family: 'DM Mono', monospace;
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gold);
	margin: 0 0 0.5rem;
}

.real-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border: 1px solid var(--gold);
	border-radius: 50%;
	color: var(--gold);
	font-size: 1rem;
	margin-top: 1rem;
	transition: background var(--transition), transform var(--transition);
}

.real-card:hover .real-arrow {
	background: rgba(201,168,76,0.18);
	transform: translateY(-2px);
}

/* Card body */
.real-card-body { padding: 1.25rem 1.4rem 1.4rem; }

.real-card-body .project-type {
	margin: 0 0 0.4rem;
	font-family: 'DM Mono', monospace;
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gold);
}

.real-card-body h3 {
	font-size: clamp(1.2rem, 0.9rem + 0.8vw, 1.55rem);
	color: var(--text);
	margin: 0 0 0.5rem;
}

.real-card-body p {
	color: var(--muted);
	font-size: 0.93rem;
	line-height: 1.7;
	margin: 0;
}

/* Responsive */
@media (max-width: 720px) {
	.real-grid { grid-template-columns: 1fr; }
	.real-card:nth-child(odd)  .real-card-thumb,
	.real-card:nth-child(even) .real-card-thumb { aspect-ratio: 16 / 10; }
	.real-hero-title { font-size: clamp(3.5rem, 10vw, 6rem); }
}
