Files
yslootahrobotics/src/app/configure/page.tsx
T
NajjarandClaude Opus 4.8 873026a4a9
CI/CD / test-and-build (push) Waiting to run
CI/CD / deploy (push) Blocked by required conditions
feat: monochrome black & white rebrand + new Pudu robots
- Convert site from royal-blue theme to black/white monochrome (desaturate
  all blue-hued colors; keep WhatsApp green and error red)
- Swap blue circular brand logo for mono YS mark; regenerate favicon/PWA icons
- Add 6 Pudu robots (CC1 Pro, MT1 Max, MT1 Vac, T600, T600 Underride, BG1 Pro)
- Fix favicon.ico to RGBA (Next 16 Turbopack decode) and Stripe apiVersion type

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:20:26 +04:00

663 lines
28 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use client';
import { ConfiguratorSection } from '@/components/ConfiguratorSection';
import { Navbar } from '@/components/Navbar';
import { FooterAndContact } from '@/components/FooterAndContact';
import { CTAButton } from '@/components/ui/CTAButton';
import Palette from 'lucide-react/dist/esm/icons/palette';
import Shirt from 'lucide-react/dist/esm/icons/shirt';
import Wand2 from 'lucide-react/dist/esm/icons/wand-sparkles';
import Eye from 'lucide-react/dist/esm/icons/eye';
import Send from 'lucide-react/dist/esm/icons/send';
import Headphones from 'lucide-react/dist/esm/icons/headphones';
import MapPin from 'lucide-react/dist/esm/icons/map-pin';
import Clock from 'lucide-react/dist/esm/icons/clock';
import Boxes from 'lucide-react/dist/esm/icons/boxes';
import CheckCircle2 from 'lucide-react/dist/esm/icons/check-circle-2';
const STATS = [
{ value: '5+', label: 'Personas' },
{ value: '10+', label: 'Attires' },
{ value: 'UAE', label: 'Local support' },
{ value: 'Dubai', label: 'Showroom' },
];
const STEPS = [
{
n: '01',
Icon: Shirt,
title: 'Pick persona & attire',
body: 'Choose role and outfit — kandura, business suit, doctor, security guard, hospitality vest, and more.',
},
{
n: '02',
Icon: Palette,
title: 'Customize colors & accessories',
body: 'Adjust accent colors and add accessories. Preview live in 3D as you build the configuration.',
},
{
n: '03',
Icon: Send,
title: 'Request UAE quotation',
body: 'Save and share, then submit to YS Lootah Robotics for pricing, lead time, and a live demo.',
},
];
const POST_CONFIG = [
{
Icon: Eye,
title: 'Share your build',
body: 'Copy a unique link that captures every choice. Send it to your team or stakeholders for review.',
},
{
Icon: Wand2,
title: 'Tailored quotation',
body: 'Our Dubai team confirms availability, lead time, training, and on-site deployment scope.',
},
{
Icon: Headphones,
title: 'Live demo',
body: 'Book a Dubai showroom slot or an on-site visit to see the robot in your space before you commit.',
},
];
const FAQ = [
{
q: 'Which robot can I configure here?',
a: 'The configurator focuses on the Unitree G1 humanoid — the most personalized robot in our catalog. Quadrupeds, delivery, and cleaning robots are configured through a direct consultation with our Dubai team.',
},
{
q: 'How long does delivery take in the UAE?',
a: 'Standard lead time runs 6–10 weeks from confirmed order, depending on persona kit and accessory availability. Demo units in Dubai are available immediately for live testing.',
},
{
q: 'Can the persona be fully custom?',
a: 'Yes. Beyond the presets, we tailor attire, branding, voice persona, and behaviors per venue. Custom configurations are scoped with our team after you share your initial build.',
},
{
q: 'Is training and support included?',
a: 'Every deployment includes on-site setup, operator training, and post-deployment support from our UAE-based team. Service contracts cover updates, repairs, and consumables.',
},
];
export default function ConfigurePage() {
return (
<>
<Navbar />
<main className="cfg-main">
{/* HERO */}
<section className="cfg-hero" aria-labelledby="cfg-hero-title">
<div className="cfg-hero-glow" aria-hidden />
<div className="cfg-hero-glow-b" aria-hidden />
<div className="cfg-hero-grid" aria-hidden />
<div className="container-wide cfg-hero-inner">
<div className="cfg-hero-copy">
<span className="eyebrow cfg-hero-eyebrow">
<span className="cfg-dot" />
Configurator · Unitree G1 · Dubai
</span>
<h1 id="cfg-hero-title" className="cfg-hero-title">
<span className="text-gradient">Configure your robot.</span>
</h1>
<p className="cfg-hero-sub">
Choose persona, attire, colors, and accessories. Preview your Unitree G1 humanoid live in 3D, save your build, then request a UAE quotation from YS Lootah Robotics.
</p>
<ul className="cfg-hero-checks" role="list">
{[
'Live 3D preview as you build',
'Shareable configuration link',
'Dubai-based sales, support, and deployment',
].map((c) => (
<li key={c}>
<CheckCircle2 size={14} strokeWidth={2.2} />
{c}
</li>
))}
</ul>
<div className="cfg-hero-actions">
<CTAButton href="#configurator" variant="primary" size="lg" arrow="right">
Start Configuring
</CTAButton>
<CTAButton href="/book-demo/" variant="secondary" size="lg" arrow="right">
Book a Live Demo
</CTAButton>
</div>
</div>
<aside className="cfg-hero-stats" aria-label="Configurator stats">
{STATS.map((s) => (
<div key={s.label} className="cfg-stat">
<span className="cfg-stat-value">{s.value}</span>
<span className="cfg-stat-label">{s.label}</span>
</div>
))}
</aside>
</div>
</section>
{/* PROCESS STEPS */}
<section className="cfg-steps container-wide" aria-label="Configuration process">
<header className="cfg-section-head">
<span className="eyebrow">How it works</span>
<h2>Three steps from idea to UAE quotation.</h2>
</header>
<ol className="cfg-steps-grid" role="list">
{STEPS.map(({ n, Icon, title, body }) => (
<li key={n} className="cfg-step">
<span className="cfg-step-num">{n}</span>
<span className="cfg-step-icon"><Icon size={20} strokeWidth={1.6} /></span>
<h3>{title}</h3>
<p>{body}</p>
</li>
))}
</ol>
</section>
{/* CONFIGURATOR FRAME */}
<section id="configurator" className="cfg-frame container-wide" aria-label="3D configurator">
<header className="cfg-section-head cfg-frame-head">
<div>
<span className="eyebrow">Live 3D · Build it your way</span>
<h2>Customize the Unitree G1 humanoid.</h2>
</div>
<a href="/robots/unitree-g1/" className="cfg-frame-spec">
View G1 spec sheet
<span aria-hidden>→</span>
</a>
</header>
<div className="cfg-frame-shell">
<div className="cfg-frame-bar">
<span className="cfg-mono"><span className="cfg-live-dot" />Live preview</span>
<span className="cfg-mono cfg-mono-mute">Unitree G1 · Dubai showroom</span>
</div>
<ConfiguratorSection />
</div>
</section>
{/* POST-CONFIG */}
<section className="cfg-post container-wide" aria-label="What happens after configuring">
<header className="cfg-section-head">
<span className="eyebrow">After you configure</span>
<h2>What happens next.</h2>
</header>
<div className="cfg-post-grid">
{POST_CONFIG.map(({ Icon, title, body }) => (
<article key={title} className="cfg-post-card">
<span className="cfg-post-icon"><Icon size={18} strokeWidth={1.6} /></span>
<h3>{title}</h3>
<p>{body}</p>
</article>
))}
</div>
</section>
{/* PILLARS */}
<section className="cfg-pillars container-wide" aria-label="Service pillars">
<ul className="cfg-pillars-grid" role="list">
<li><MapPin size={14} strokeWidth={1.7} /><div><span>UAE-ready</span><small>Deployment across the UAE</small></div></li>
<li><Headphones size={14} strokeWidth={1.7} /><div><span>Dubai support</span><small>Local robotics team</small></div></li>
<li><Boxes size={14} strokeWidth={1.7} /><div><span>Tailored configuration</span><small>Persona, attire, behaviour</small></div></li>
<li><Clock size={14} strokeWidth={1.7} /><div><span>6–10 week lead time</span><small>From confirmed order</small></div></li>
</ul>
</section>
{/* FAQ */}
<section className="cfg-faq container-wide" aria-label="Configuration FAQ">
<header className="cfg-section-head">
<span className="eyebrow">Questions</span>
<h2>Configurator FAQ.</h2>
</header>
<div className="cfg-faq-grid">
{FAQ.map(({ q, a }) => (
<details key={q} className="cfg-faq-item">
<summary>{q}<span aria-hidden className="cfg-faq-icon">+</span></summary>
<p>{a}</p>
</details>
))}
</div>
</section>
{/* FINAL CTA */}
<section className="cfg-cta container-wide" aria-label="Get started">
<div className="cfg-cta-glow" aria-hidden />
<div className="cfg-cta-grid-bg" aria-hidden />
<div className="cfg-cta-inner">
<div className="cfg-cta-text">
<span className="eyebrow">Next step</span>
<h2>Ready to bring your G1 to life in Dubai?</h2>
<p>
Send us your configuration. Our Dubai team will confirm availability, lead time, and book a live demo at our showroom or your venue.
</p>
</div>
<div className="cfg-cta-actions">
<CTAButton href="/contact/" variant="primary" size="lg" arrow="up-right">
Request UAE Quotation
</CTAButton>
<CTAButton href="/book-demo/" variant="secondary" size="lg" arrow="right">
Book a Live Demo
</CTAButton>
<CTAButton
href="https://wa.me/971559482728"
external
variant="ghost"
size="lg"
arrow="up-right"
ariaLabel="Chat with YS Lootah Robotics on WhatsApp"
>
WhatsApp Us
</CTAButton>
</div>
</div>
</section>
</main>
<FooterAndContact />
<style jsx>{`
.cfg-main {
padding-top: clamp(5rem, 9vw, 7rem);
display: flex;
flex-direction: column;
gap: clamp(2.5rem, 5vw, 4.25rem);
padding-bottom: clamp(3rem, 6vw, 5rem);
}
.cfg-section-head {
display: flex;
flex-direction: column;
gap: 0.55rem;
max-width: 760px;
}
.cfg-section-head h2 {
margin: 0;
font-size: clamp(1.5rem, 3vw, 2.1rem);
font-weight: 400;
letter-spacing: -0.02em;
color: #FFFFFF;
line-height: 1.15;
}
/* HERO */
.cfg-hero {
position: relative;
overflow: hidden;
border-bottom: 1px solid rgba(145, 145, 145, 0.16);
background:
radial-gradient(ellipse 70% 100% at 0% 0%, rgba(127, 127, 127, 0.18), transparent 55%),
radial-gradient(ellipse 60% 80% at 100% 100%, rgba(168, 168, 168, 0.14), transparent 60%),
linear-gradient(135deg, rgba(18, 18, 18, 0.95), rgba(8, 8, 8, 0.97));
}
.cfg-hero-glow {
position: absolute; width: 580px; height: 580px; border-radius: 999px;
top: -220px; right: -180px;
background: radial-gradient(circle, rgba(188, 188, 188, 0.34), transparent 70%);
filter: blur(120px); opacity: 0.55; pointer-events: none;
}
.cfg-hero-glow-b {
position: absolute; width: 460px; height: 460px; border-radius: 999px;
bottom: -200px; left: -150px;
background: radial-gradient(circle, rgba(145, 145, 145, 0.32), transparent 70%);
filter: blur(110px); opacity: 0.45; pointer-events: none;
}
.cfg-hero-grid {
position: absolute; inset: 0;
background:
linear-gradient(rgba(145, 145, 145, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(145, 145, 145, 0.05) 1px, transparent 1px);
background-size: 56px 56px;
mask-image: radial-gradient(ellipse 70% 90% at 30% 40%, #000 25%, transparent 80%);
-webkit-mask-image: radial-gradient(ellipse 70% 90% at 30% 40%, #000 25%, transparent 80%);
pointer-events: none;
}
.cfg-hero-inner {
position: relative;
z-index: 1;
padding: clamp(2rem, 4vw, 3.25rem) clamp(1rem, 4vw, 2rem);
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: clamp(1.75rem, 3.5vw, 2.75rem);
align-items: center;
}
.cfg-hero-copy { display: flex; flex-direction: column; gap: 1rem; max-width: 640px; }
.cfg-hero-eyebrow {
display: inline-flex; align-items: center; gap: 0.55rem;
width: fit-content;
}
.cfg-dot {
width: 7px; height: 7px; border-radius: 999px; background: #e7e7e7;
box-shadow: 0 0 14px rgba(231, 231, 231, 0.85);
}
.cfg-hero-title {
margin: 0;
font-size: clamp(2rem, 5vw, 3.2rem);
font-weight: 300;
letter-spacing: -0.03em;
line-height: 1.05;
color: #FFFFFF;
}
.cfg-hero-title :global(.text-gradient) { font-weight: 500; }
.cfg-hero-sub {
margin: 0;
color: #e7e7e7;
font-size: clamp(0.95rem, 1.8vw, 1.1rem);
line-height: 1.65;
max-width: 560px;
}
.cfg-hero-checks {
list-style: none; margin: 0.4rem 0 0; padding: 0;
display: flex; flex-direction: column; gap: 0.55rem;
}
.cfg-hero-checks li {
display: inline-flex; align-items: center; gap: 0.55rem;
color: #e7e7e7; font-size: 0.92rem; line-height: 1.5;
}
.cfg-hero-checks li :global(svg) { color: #ababab; flex: none; }
.cfg-hero-actions {
display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.65rem;
}
/* HERO STATS */
.cfg-hero-stats {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.6rem;
}
.cfg-stat {
position: relative;
display: flex; flex-direction: column; gap: 0.3rem;
padding: 0.95rem 1rem;
border-radius: 16px;
border: 1px solid rgba(188, 188, 188, 0.22);
background:
linear-gradient(135deg, rgba(168, 168, 168, 0.12), rgba(255, 255, 255, 0.03));
overflow: hidden;
min-height: 86px;
transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}
.cfg-stat::before {
content: ''; position: absolute;
top: 0; right: 14px; width: 24px; height: 1px;
background: linear-gradient(90deg, transparent, rgba(218, 218, 218, 0.55));
}
.cfg-stat:hover {
border-color: rgba(188, 188, 188, 0.45);
transform: translateY(-1px);
box-shadow: 0 10px 22px rgba(0, 0, 0, 0.38), 0 0 18px rgba(145, 145, 145, 0.18);
}
.cfg-stat-value {
font-size: clamp(1.4rem, 2.4vw, 1.85rem);
font-weight: 500; letter-spacing: -0.025em; line-height: 1;
background: linear-gradient(180deg, #FFFFFF, #c8c8c8);
-webkit-background-clip: text; background-clip: text; color: transparent;
}
.cfg-stat-label {
font-size: 0.64rem; letter-spacing: 0.22em;
text-transform: uppercase; font-weight: 700; color: #bfbfbf;
}
@media (min-width: 920px) {
.cfg-hero-inner { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.cfg-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* STEPS */
.cfg-steps { display: flex; flex-direction: column; gap: clamp(1.25rem, 2.5vw, 1.75rem); }
.cfg-steps-grid {
list-style: none; margin: 0; padding: 0;
display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem;
counter-reset: step;
}
@media (min-width: 720px) { .cfg-steps-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; } }
.cfg-step {
position: relative;
display: flex; flex-direction: column; gap: 0.6rem;
padding: 1.2rem 1.2rem 1.3rem;
border-radius: 18px;
border: 1px solid rgba(231, 231, 231, 0.10);
background:
radial-gradient(ellipse 80% 60% at 100% 0%, rgba(145, 145, 145, 0.14), transparent 60%),
linear-gradient(180deg, rgba(26, 26, 26, 0.92), rgba(12, 12, 12, 0.96));
transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}
.cfg-step:hover {
border-color: rgba(145, 145, 145, 0.42);
transform: translateY(-3px);
box-shadow: 0 18px 38px rgba(0, 0, 0, 0.5), 0 0 22px rgba(127, 127, 127, 0.18);
}
.cfg-step-num {
position: absolute; top: 0.85rem; right: 1rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.7rem; letter-spacing: 0.22em; font-weight: 800; color: #a8a8a8;
}
.cfg-step-icon {
display: inline-flex; align-items: center; justify-content: center;
width: 40px; height: 40px; border-radius: 12px;
color: #e7e7e7;
background: rgba(145, 145, 145, 0.16);
border: 1px solid rgba(145, 145, 145, 0.38);
}
.cfg-step h3 { margin: 0; font-size: 1.02rem; font-weight: 600; color: #FFFFFF; letter-spacing: -0.005em; }
.cfg-step p { margin: 0; color: #d4d4d4; font-size: 0.9rem; line-height: 1.6; }
/* CONFIGURATOR FRAME */
.cfg-frame { display: flex; flex-direction: column; gap: clamp(1.25rem, 2.5vw, 1.75rem); scroll-margin-top: clamp(80px, 12vh, 120px); }
.cfg-frame-head {
flex-direction: row;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
max-width: none;
gap: 1rem;
}
.cfg-frame-spec {
display: inline-flex; align-items: center; gap: 0.45rem;
font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em;
text-transform: uppercase;
color: #e7e7e7;
text-decoration: none;
padding: 0.6rem 0.95rem;
border-radius: 999px;
border: 1px solid rgba(231, 231, 231, 0.18);
background: rgba(23, 23, 23, 0.7);
transition: color 0.3s, border-color 0.3s, gap 0.3s;
}
.cfg-frame-spec:hover { color: #FFFFFF; border-color: rgba(145, 145, 145, 0.5); gap: 0.65rem; }
.cfg-frame-shell {
border-radius: 24px;
overflow: hidden;
border: 1px solid rgba(145, 145, 145, 0.22);
box-shadow:
0 30px 80px rgba(0, 0, 0, 0.55),
inset 0 1px 0 rgba(255, 255, 255, 0.04),
0 0 28px rgba(127, 127, 127, 0.18);
background: linear-gradient(180deg, rgba(12, 12, 12, 0.95), rgba(8, 8, 8, 0.98));
}
.cfg-frame-bar {
display: flex; align-items: center; justify-content: space-between;
padding: 0.7rem 1rem;
border-bottom: 1px solid rgba(145, 145, 145, 0.18);
background: linear-gradient(180deg, rgba(18, 18, 18, 0.95), rgba(10, 10, 10, 0.97));
}
.cfg-mono {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.62rem; letter-spacing: 0.28em; font-weight: 800; color: #e7e7e7;
display: inline-flex; align-items: center; gap: 0.45rem;
}
.cfg-mono-mute { color: #a8a8a8; }
.cfg-live-dot {
width: 7px; height: 7px; border-radius: 999px; background: #ababab;
box-shadow: 0 0 10px rgba(171, 171, 171, 0.7);
}
/* POST CONFIG */
.cfg-post { display: flex; flex-direction: column; gap: clamp(1.25rem, 2.5vw, 1.75rem); }
.cfg-post-grid {
display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem;
}
@media (min-width: 720px) { .cfg-post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; } }
.cfg-post-card {
display: flex; flex-direction: column; gap: 0.55rem;
padding: 1.2rem 1.2rem 1.25rem;
border-radius: 18px;
border: 1px solid rgba(231, 231, 231, 0.10);
background:
radial-gradient(ellipse 80% 60% at 100% 0%, rgba(171, 171, 171, 0.10), transparent 60%),
linear-gradient(180deg, rgba(26, 26, 26, 0.9), rgba(12, 12, 12, 0.96));
transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}
.cfg-post-card:hover {
border-color: rgba(171, 171, 171, 0.38);
transform: translateY(-3px);
box-shadow: 0 18px 38px rgba(0, 0, 0, 0.5), 0 0 24px rgba(171, 171, 171, 0.14);
}
.cfg-post-icon {
display: inline-flex; align-items: center; justify-content: center;
width: 36px; height: 36px; border-radius: 10px;
color: #ababab;
background: rgba(171, 171, 171, 0.16);
border: 1px solid rgba(171, 171, 171, 0.38);
}
.cfg-post-card h3 { margin: 0; font-size: 1rem; font-weight: 600; color: #FFFFFF; letter-spacing: -0.005em; }
.cfg-post-card p { margin: 0; color: #d4d4d4; font-size: 0.88rem; line-height: 1.55; }
/* PILLARS */
.cfg-pillars-grid {
list-style: none; margin: 0; padding: 0;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.6rem;
}
@media (min-width: 820px) { .cfg-pillars-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; } }
.cfg-pillars-grid li {
display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0.7rem;
padding: 0.95rem 1.05rem;
border-radius: 16px;
border: 1px solid rgba(231, 231, 231, 0.10);
background:
radial-gradient(ellipse 80% 60% at 100% 0%, rgba(145, 145, 145, 0.12), transparent 60%),
linear-gradient(180deg, rgba(26, 26, 26, 0.92), rgba(12, 12, 12, 0.96));
transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}
.cfg-pillars-grid li:hover {
border-color: rgba(145, 145, 145, 0.42);
transform: translateY(-2px);
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45), 0 0 18px rgba(127, 127, 127, 0.16);
}
.cfg-pillars-grid li :global(svg) {
color: #e7e7e7;
background: rgba(145, 145, 145, 0.16);
border: 1px solid rgba(145, 145, 145, 0.38);
border-radius: 10px;
padding: 8px;
width: 32px; height: 32px;
box-sizing: content-box;
}
.cfg-pillars-grid li div { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.cfg-pillars-grid li span { color: #FFFFFF; font-size: 0.82rem; font-weight: 600; letter-spacing: -0.005em; }
.cfg-pillars-grid li small { color: #a8a8a8; font-size: 0.7rem; }
/* FAQ */
.cfg-faq { display: flex; flex-direction: column; gap: clamp(1rem, 2.5vw, 1.5rem); }
.cfg-faq-grid {
display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem;
}
@media (min-width: 820px) { .cfg-faq-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; } }
.cfg-faq-item {
position: relative;
padding: 1rem 1.15rem;
border-radius: 14px;
border: 1px solid rgba(231, 231, 231, 0.10);
background: linear-gradient(135deg, rgba(23, 23, 23, 0.85), rgba(12, 12, 12, 0.94));
transition: border-color 0.3s;
}
.cfg-faq-item[open] { border-color: rgba(145, 145, 145, 0.42); }
.cfg-faq-item summary {
display: flex; align-items: center; justify-content: space-between; gap: 1rem;
cursor: pointer; list-style: none;
font-size: 0.95rem; font-weight: 600; color: #FFFFFF;
letter-spacing: -0.005em;
}
.cfg-faq-item summary::-webkit-details-marker { display: none; }
.cfg-faq-icon {
display: inline-flex; align-items: center; justify-content: center;
width: 26px; height: 26px;
border-radius: 999px;
border: 1px solid rgba(231, 231, 231, 0.18);
color: #e7e7e7;
font-size: 0.95rem;
transition: transform 0.3s, background 0.3s;
flex: none;
}
.cfg-faq-item[open] .cfg-faq-icon { transform: rotate(45deg); background: rgba(145, 145, 145, 0.2); }
.cfg-faq-item p {
margin: 0.75rem 0 0;
color: #d4d4d4;
font-size: 0.9rem;
line-height: 1.65;
}
/* FINAL CTA */
.cfg-cta {
position: relative;
overflow: hidden;
border-radius: 26px;
border: 1px solid rgba(145, 145, 145, 0.26);
background:
radial-gradient(ellipse 60% 100% at 100% 0%, rgba(127, 127, 127, 0.22), transparent 60%),
linear-gradient(135deg, rgba(22, 22, 22, 0.95), rgba(10, 10, 10, 0.97));
box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.cfg-cta-glow {
position: absolute; width: 480px; height: 480px; border-radius: 999px;
top: -160px; left: -160px;
background: radial-gradient(circle, rgba(145, 145, 145, 0.45), transparent 70%);
filter: blur(100px); opacity: 0.55; pointer-events: none;
}
.cfg-cta-grid-bg {
position: absolute; inset: 0;
background:
linear-gradient(rgba(145, 145, 145, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(145, 145, 145, 0.05) 1px, transparent 1px);
background-size: 56px 56px;
mask-image: radial-gradient(ellipse 60% 90% at 70% 50%, #000 25%, transparent 80%);
-webkit-mask-image: radial-gradient(ellipse 60% 90% at 70% 50%, #000 25%, transparent 80%);
pointer-events: none;
}
.cfg-cta-inner {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: clamp(1.3rem, 3vw, 2rem);
padding: clamp(1.75rem, 3.6vw, 2.75rem);
align-items: center;
}
@media (min-width: 900px) {
.cfg-cta-inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
}
.cfg-cta-text { display: flex; flex-direction: column; gap: 0.65rem; max-width: 560px; }
.cfg-cta-text h2 {
margin: 0;
font-size: clamp(1.65rem, 3vw, 2.25rem);
font-weight: 400; letter-spacing: -0.02em; color: #FFFFFF; line-height: 1.1;
}
.cfg-cta-text p { margin: 0; color: #e7e7e7; font-size: 0.95rem; line-height: 1.65; }
.cfg-cta-actions {
display: flex; flex-wrap: wrap; gap: 0.55rem; justify-content: flex-start;
}
@media (min-width: 900px) {
.cfg-cta-actions { justify-content: flex-end; }
}
@media (max-width: 520px) {
.cfg-cta-actions :global(.cta-btn) { width: 100%; justify-content: space-between; }
.cfg-hero-actions :global(.cta-btn) { width: 100%; justify-content: space-between; }
}
`}</style>
</>
);
}