:root {
--bg-primary: #F4F7FB;
--bg-surface: rgba(255, 255, 255, 0.90);
--bg-surface-hover: #FFFFFF;
--bg-surface-solid: #FFFFFF;
--bg-surface-elevated: #F8FAFC;
--bg-input: rgba(15, 23, 42, 0.04);
--border-subtle: rgba(15, 23, 42, 0.08);
--border-hover: rgba(32, 75, 155, 0.22);
--border-focus: rgba(37, 99, 235, 0.40);
--text-primary: #0F172A;
--text-secondary: #475569;
--text-muted: #64748B;
--text-on-accent: #FFFFFF;
--led-red: #E51B20;
--led-green: #2F9E44;         
--led-green-bright: #44AE4D;  
--led-blue: #204B9B;
--led-blue-bright: #2563EB;
--led-red-bg: rgba(229, 27, 32, 0.08);
--led-red-border: rgba(229, 27, 32, 0.22);
--led-red-glow: rgba(229, 27, 32, 0.16);
--led-green-bg: rgba(68, 174, 77, 0.11);
--led-green-border: rgba(47, 158, 68, 0.25);
--led-green-glow: rgba(47, 158, 68, 0.18);
--led-blue-bg: rgba(37, 99, 235, 0.09);
--led-blue-border: rgba(37, 99, 235, 0.22);
--led-blue-glow: rgba(37, 99, 235, 0.18);
--led-rgb-gradient: linear-gradient(90deg, #E51B20 0%, #44AE4D 50%, #204B9B 100%);
--led-rgb-conic: conic-gradient(from 180deg at 50% 50%, #E51B20 0deg, #44AE4D 120deg, #204B9B 240deg, #E51B20 360deg);
--font-body: 'Plus Jakarta Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--font-display: 'Space Grotesk', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--radius-xs: 6px;
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 22px;
--radius-full: 9999px;
--shadow-card: 0 8px 24px -6px rgba(15, 23, 42, 0.07), 0 2px 6px -1px rgba(15, 23, 42, 0.04);
--shadow-hover: 0 14px 32px -6px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.06);
--transition-fast: 0.16s cubic-bezier(0.4, 0, 0.2, 1);
--transition-smooth: 0.26s cubic-bezier(0.16, 1, 0.3, 1);
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
font-size: 16px;
background-color: var(--bg-primary);
color-scheme: light;
}
body {
min-height: 100vh;
background-color: var(--bg-primary);
color: var(--text-primary);
font-family: var(--font-body);
font-weight: 400;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow-x: hidden;
position: relative;
}
img, svg {
display: block;
max-width: 100%;
}
button {
border: none;
background: none;
font-family: inherit;
color: inherit;
cursor: pointer;
}
a {
color: inherit;
text-decoration: none;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: var(--bg-primary);
}
::-webkit-scrollbar-thumb {
background: rgba(15, 23, 42, 0.16);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(15, 23, 42, 0.28);
}
.ambient-bg {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 0;
overflow: hidden;
background: linear-gradient(180deg, #FAFBFD 0%, #EEF3FA 52%, #F5F8FC 100%);
}
.led-grid-overlay {
position: absolute;
inset: 0;
background-image: radial-gradient(rgba(15, 23, 42, 0.06) 1px, transparent 1px);
background-size: 18px 18px;
background-position: center top;
-webkit-mask-image: radial-gradient(circle at 50% 25%, black 45%, transparent 88%);
mask-image: radial-gradient(circle at 50% 25%, black 45%, transparent 88%);
opacity: 0.95;
}
.glow {
position: absolute;
border-radius: 50%;
filter: blur(120px);
pointer-events: none;
will-change: transform;
}
.glow-red {
top: -40px;
left: 8%;
width: 340px;
height: 340px;
background: var(--led-red);
opacity: 0.09;
animation: glowFloatRed 16s ease-in-out infinite alternate;
}
.glow-green {
top: 240px;
right: 4%;
width: 380px;
height: 380px;
background: var(--led-green);
opacity: 0.10;
animation: glowFloatGreen 20s ease-in-out 2s infinite alternate-reverse;
}
.glow-blue {
top: 640px;
left: 4%;
width: 430px;
height: 430px;
background: var(--led-blue-bright);
opacity: 0.11;
animation: glowFloatBlue 18s ease-in-out 4s infinite alternate;
}
@keyframes glowFloatRed {
0% { transform: scale(1) translate(0, 0); }
50% { transform: scale(1.08) translate(18px, 22px); }
100% { transform: scale(0.96) translate(-12px, -10px); }
}
@keyframes glowFloatGreen {
0% { transform: scale(1) translate(0, 0); }
50% { transform: scale(1.05) translate(-20px, 15px); }
100% { transform: scale(0.94) translate(14px, -18px); }
}
@keyframes glowFloatBlue {
0% { transform: scale(1) translate(0, 0); }
50% { transform: scale(1.1) translate(16px, -20px); }
100% { transform: scale(0.95) translate(-14px, 14px); }
}
.hub-shell {
max-width: 560px;
margin: 0 auto;
padding: 20px 18px 56px;
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
gap: 28px;
}
.top-bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 2px 2px 4px;
}
.status-pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 14px;
border-radius: var(--radius-full);
background: rgba(255, 255, 255, 0.88);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
border: 1px solid var(--border-subtle);
font-size: 0.78rem;
font-weight: 600;
color: var(--text-secondary);
letter-spacing: 0.01em;
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.04);
}
.status-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--led-green);
box-shadow: 0 0 0 0 rgba(47, 158, 68, 0.65);
animation: pulseDot 2.2s infinite;
flex-shrink: 0;
}
@keyframes pulseDot {
0% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(47, 158, 68, 0.7);
}
70% {
transform: scale(1);
box-shadow: 0 0 0 6px rgba(47, 158, 68, 0);
}
100% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(47, 158, 68, 0);
}
}
.icon-action-btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 13px;
background: rgba(255, 255, 255, 0.88);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-full);
color: var(--text-secondary);
font-size: 0.78rem;
font-weight: 600;
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.04);
transition: all var(--transition-fast);
}
.icon-action-btn:hover {
background: var(--bg-surface-hover);
color: var(--text-primary);
border-color: var(--border-hover);
box-shadow: 0 4px 12px -2px rgba(15, 23, 42, 0.08);
transform: translateY(-1px);
}
.icon-action-btn:active {
transform: translateY(0);
}
.profile-header {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 4px 0 6px;
}
.avatar-ring {
position: relative;
width: 96px;
height: 96px;
border-radius: 50%;
padding: 3px;
background: var(--led-rgb-conic);
box-shadow: 0 8px 24px -4px rgba(32, 75, 155, 0.20), 0 0 16px -2px rgba(68, 174, 77, 0.16);
margin-bottom: 16px;
animation: ringRotate 24s linear infinite;
}
@keyframes ringRotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.avatar-ring img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: contain;
background: #FFFFFF;
display: block;
animation: ringCounterRotate 24s linear infinite;
}
@keyframes ringCounterRotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(-360deg); }
}
.brand-lockup {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
margin-bottom: 12px;
overflow: visible;
}
.brand-lockup img {
width: min(236px, 68vw);
height: auto;
max-height: none;
object-fit: contain;
display: block;
filter: drop-shadow(0 3px 8px rgba(15, 23, 42, 0.08));
}
.brand-payoff {
font-size: 0.96rem;
line-height: 1.55;
color: #334155;
max-width: 440px;
margin: 0 auto 16px;
text-align: center;
font-weight: 500;
}
.social-row {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}
.social-circle-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.88);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid var(--border-subtle);
color: var(--text-secondary);
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.05);
transition: all var(--transition-fast);
}
.social-circle-btn svg {
width: 19px;
height: 19px;
}
.social-circle-btn:hover {
transform: translateY(-2px);
color: #FFFFFF;
border-color: transparent;
}
.social-circle-btn[data-platform="instagram"]:hover {
background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
box-shadow: 0 6px 18px rgba(214, 36, 159, 0.35);
}
.social-circle-btn[data-platform="facebook"]:hover {
background: #1877F2;
box-shadow: 0 6px 18px rgba(24, 119, 242, 0.35);
}
.social-circle-btn[data-platform="linkedin"]:hover {
background: #0A66C2;
box-shadow: 0 6px 18px rgba(10, 102, 194, 0.35);
}
.social-circle-btn[data-platform="whatsapp"]:hover {
background: #25D366;
box-shadow: 0 6px 18px rgba(37, 211, 102, 0.35);
}
.social-circle-btn[data-platform="phone"]:hover {
background: var(--led-blue-bright);
box-shadow: 0 6px 18px rgba(37, 99, 235, 0.35);
}
.social-circle-btn[data-platform="email"]:hover {
background: var(--led-red);
box-shadow: 0 6px 18px rgba(229, 27, 32, 0.35);
}
.hero-section {
position: relative;
}
.hero-card {
position: relative;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-xl);
padding: 24px 22px;
overflow: hidden;
box-shadow: var(--shadow-card);
}
.hero-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: var(--led-rgb-gradient);
}
.hero-eyebrow {
display: flex;
align-items: center;
gap: 6px;
margin-bottom: 12px;
}
.hero-badge-tag {
display: inline-flex;
align-items: center;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--led-green);
background: var(--led-green-bg);
border: 1px solid var(--led-green-border);
padding: 4px 10px;
border-radius: var(--radius-full);
}
.hero-title {
font-family: var(--font-display);
font-size: 1.42rem;
font-weight: 700;
line-height: 1.3;
color: var(--text-primary);
margin-bottom: 10px;
letter-spacing: -0.02em;
}
.hero-desc {
font-size: 0.92rem;
line-height: 1.55;
color: var(--text-secondary);
margin-bottom: 20px;
}
.hero-stats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 8px;
margin-bottom: 20px;
padding: 12px 10px;
background: #F1F5F9;
border: 1px solid rgba(15, 23, 42, 0.06);
border-radius: var(--radius-md);
}
.stat-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.stat-value {
font-family: var(--font-display);
font-size: clamp(0.92rem, 3.6vw, 1.18rem);
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.02em;
}
.stat-item:nth-child(1) .stat-value { color: var(--led-red); }
.stat-item:nth-child(2) .stat-value { color: var(--led-green); }
.stat-item:nth-child(3) .stat-value { color: var(--led-blue-bright); }
.stat-label {
font-size: 0.72rem;
color: var(--text-muted);
margin-top: 3px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.02em;
}
.hero-cta-group {
display: flex;
flex-direction: column;
gap: 10px;
}
@media (min-width: 440px) {
.hero-cta-group {
flex-direction: row;
}
.hero-cta-group > * {
flex: 1;
}
}
.btn-hero-primary {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 13px 18px;
border-radius: var(--radius-md);
background: linear-gradient(135deg, #44AE4D 0%, #2F9E44 100%);
color: #FFFFFF;
font-weight: 600;
font-size: 0.92rem;
text-decoration: none;
border: 1px solid rgba(255, 255, 255, 0.25);
box-shadow: 0 6px 18px rgba(47, 158, 68, 0.28);
transition: all var(--transition-smooth);
cursor: pointer;
text-align: center;
}
.btn-hero-primary:hover {
background: linear-gradient(135deg, #4bb954 0%, #27883a 100%);
box-shadow: 0 8px 24px rgba(47, 158, 68, 0.38);
transform: translateY(-2px);
color: #FFFFFF;
}
.btn-hero-secondary {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 13px 18px;
border-radius: var(--radius-md);
background: #F1F5F9;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
color: var(--text-primary);
font-weight: 600;
font-size: 0.92rem;
text-decoration: none;
border: 1px solid rgba(15, 23, 42, 0.10);
transition: all var(--transition-smooth);
cursor: pointer;
text-align: center;
}
.btn-hero-secondary:hover {
background: #E2E8F0;
border-color: rgba(15, 23, 42, 0.18);
color: #0F172A;
transform: translateY(-2px);
}
.hub-section {
display: flex;
flex-direction: column;
gap: 14px;
}
.section-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 4px;
}
.section-title {
font-family: var(--font-display);
font-size: 1.12rem;
font-weight: 700;
color: var(--text-primary);
letter-spacing: -0.01em;
display: flex;
align-items: center;
gap: 8px;
}
.section-sub {
font-size: 0.78rem;
color: var(--text-muted);
font-weight: 500;
}
.section-link {
font-size: 0.82rem;
color: var(--led-blue-bright);
text-decoration: none;
font-weight: 600;
transition: color var(--transition-fast);
}
.section-link:hover {
color: var(--led-blue);
text-decoration: underline;
}
.rgb-bar {
display: inline-block;
width: 32px;
height: 3px;
border-radius: 2px;
background: var(--led-rgb-gradient);
}
.links-stack {
display: flex;
flex-direction: column;
gap: 10px;
}
.link-card {
display: flex;
align-items: center;
gap: 14px;
padding: 14px 16px;
background: var(--bg-surface);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-lg);
text-decoration: none;
color: var(--text-primary);
position: relative;
transition: all var(--transition-smooth);
box-shadow: var(--shadow-card);
overflow: hidden;
}
.link-card:hover {
background: var(--bg-surface-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-hover);
}
.link-card[data-accent="blue"]:hover {
border-color: rgba(37, 99, 235, 0.35);
box-shadow: 0 10px 28px -4px rgba(37, 99, 235, 0.14), var(--shadow-card);
}
.link-card[data-accent="green"]:hover {
border-color: rgba(47, 158, 68, 0.35);
box-shadow: 0 10px 28px -4px rgba(47, 158, 68, 0.14), var(--shadow-card);
}
.link-card[data-accent="red"]:hover {
border-color: rgba(229, 27, 32, 0.35);
box-shadow: 0 10px 28px -4px rgba(229, 27, 32, 0.14), var(--shadow-card);
}
.link-card[data-accent="neutral"]:hover {
border-color: rgba(15, 23, 42, 0.18);
}
.link-icon-box {
width: 44px;
height: 44px;
border-radius: var(--radius-md);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: transform var(--transition-smooth);
}
.link-card:hover .link-icon-box {
transform: scale(1.06);
}
.link-card[data-accent="blue"] .link-icon-box {
background: var(--led-blue-bg);
color: var(--led-blue-bright);
border: 1px solid var(--led-blue-border);
}
.link-card[data-accent="green"] .link-icon-box {
background: var(--led-green-bg);
color: var(--led-green);
border: 1px solid var(--led-green-border);
}
.link-card[data-accent="red"] .link-icon-box {
background: var(--led-red-bg);
color: var(--led-red);
border: 1px solid var(--led-red-border);
}
.link-card[data-accent="neutral"] .link-icon-box {
background: #F1F5F9;
color: #334155;
border: 1px solid rgba(15, 23, 42, 0.08);
}
.link-text {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 3px;
}
.link-title-row {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.link-title {
font-size: 0.98rem;
font-weight: 700;
color: var(--text-primary);
line-height: 1.3;
}
.link-badge {
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 2px 7px;
border-radius: var(--radius-full);
background: #F1F5F9;
color: #475569;
border: 1px solid rgba(15, 23, 42, 0.10);
}
.link-card[data-accent="green"] .link-badge {
background: var(--led-green-bg);
color: var(--led-green);
border-color: var(--led-green-border);
}
.link-card[data-accent="red"] .link-badge {
background: var(--led-red-bg);
color: var(--led-red);
border-color: var(--led-red-border);
}
.link-card[data-accent="blue"] .link-badge {
background: var(--led-blue-bg);
color: var(--led-blue-bright);
border-color: var(--led-blue-border);
}
.link-subtitle {
font-size: 0.82rem;
color: var(--text-secondary);
line-height: 1.4;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.link-action {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.draft-tag {
font-size: 0.68rem;
font-weight: 600;
padding: 2px 7px;
border-radius: var(--radius-full);
background: rgba(217, 119, 6, 0.10);
color: #B45309;
border: 1px solid rgba(217, 119, 6, 0.25);
letter-spacing: 0.04em;
}
.link-arrow {
color: var(--text-muted);
display: flex;
align-items: center;
justify-content: center;
transition: transform var(--transition-fast), color var(--transition-fast);
}
.link-card:hover .link-arrow {
transform: translateX(3px);
color: var(--text-primary);
}
.filter-pills {
display: flex;
gap: 8px;
overflow-x: auto;
padding: 2px 2px 6px;
scrollbar-width: none;
-ms-overflow-style: none;
}
.filter-pills::-webkit-scrollbar {
display: none;
}
.filter-pill {
padding: 7px 14px;
border-radius: var(--radius-full);
background: rgba(255, 255, 255, 0.90);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid var(--border-subtle);
color: var(--text-secondary);
font-size: 0.8rem;
font-weight: 600;
white-space: nowrap;
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.04);
transition: all var(--transition-fast);
}
.filter-pill:hover {
background: var(--bg-surface-hover);
color: var(--text-primary);
border-color: var(--border-hover);
}
.filter-pill.active {
background: #0F172A;
color: #FFFFFF;
border-color: #0F172A;
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.16);
}
.products-grid {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
}
@media (min-width: 420px) {
.products-grid {
grid-template-columns: repeat(2, 1fr);
}
}
.product-card {
background: var(--bg-surface);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-lg);
overflow: hidden;
display: flex;
flex-direction: column;
box-shadow: var(--shadow-card);
transition: all var(--transition-smooth);
animation: productCardFadeIn 0.3s ease-out;
}
@keyframes productCardFadeIn {
from {
opacity: 0;
transform: translateY(6px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.product-card:hover {
background: var(--bg-surface-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-hover);
border-color: var(--border-hover);
}
.product-header {
height: 94px;
position: relative;
background: linear-gradient(135deg, #F1F5F9 0%, #E6EEF8 100%);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.product-screen-grid {
position: absolute;
inset: 0;
background-image: radial-gradient(rgba(15, 23, 42, 0.07) 1px, transparent 1px);
background-size: 8px 8px;
opacity: 0.65;
}
.product-screen-glow {
position: absolute;
width: 72px;
height: 72px;
border-radius: 50%;
filter: blur(24px);
pointer-events: none;
}
.product-card[data-accent="red"] .product-screen-glow { background: var(--led-red); opacity: 0.22; }
.product-card[data-accent="green"] .product-screen-glow { background: var(--led-green); opacity: 0.22; }
.product-card[data-accent="blue"] .product-screen-glow { background: var(--led-blue-bright); opacity: 0.22; }
.product-highlight-badge {
position: absolute;
top: 8px;
left: 8px;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.04em;
padding: 2px 7px;
border-radius: var(--radius-full);
background: rgba(255, 255, 255, 0.92);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 1px solid rgba(15, 23, 42, 0.08);
color: var(--text-primary);
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.05);
z-index: 1;
}
.product-screen-icon {
position: relative;
z-index: 1;
width: 46px;
height: 46px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.9);
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
display: flex;
align-items: center;
justify-content: center;
}
.product-card[data-accent="red"] .product-screen-icon { color: var(--led-red); }
.product-card[data-accent="green"] .product-screen-icon { color: var(--led-green); }
.product-card[data-accent="blue"] .product-screen-icon { color: var(--led-blue-bright); }
.product-screen-icon svg {
width: 24px;
height: 24px;
}
.product-body {
padding: 12px 14px 14px;
display: flex;
flex-direction: column;
flex: 1;
}
.product-category {
font-size: 0.7rem;
font-weight: 700;
color: var(--led-blue-bright);
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 4px;
}
.product-title {
font-size: 0.94rem;
font-weight: 700;
color: var(--text-primary);
line-height: 1.3;
margin-bottom: 6px;
}
.product-specs {
font-size: 0.78rem;
color: var(--text-secondary);
line-height: 1.45;
margin-bottom: 12px;
flex: 1;
}
.product-footer {
margin-top: auto;
padding-top: 10px;
border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.product-action-link {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 0.8rem;
font-weight: 600;
color: var(--text-primary);
text-decoration: none;
transition: color var(--transition-fast);
}
.product-action-link:hover {
color: var(--led-blue-bright);
}
.product-action-link .link-arrow {
transition: transform var(--transition-fast);
}
.product-action-link:hover .link-arrow {
transform: translateX(3px);
}
.services-stack {
display: flex;
flex-direction: column;
gap: 10px;
}
.service-item {
background: var(--bg-surface);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-lg);
overflow: hidden;
transition: all var(--transition-smooth);
box-shadow: var(--shadow-card);
}
.service-item.is-open {
border-color: var(--border-hover);
background: var(--bg-surface-hover);
box-shadow: var(--shadow-hover);
}
.service-header {
width: 100%;
padding: 14px 16px;
display: flex;
align-items: center;
justify-content: space-between;
background: transparent;
border: none;
color: var(--text-primary);
cursor: pointer;
text-align: left;
gap: 12px;
}
.service-header-left {
display: flex;
align-items: center;
gap: 12px;
flex: 1;
min-width: 0;
}
.service-icon-box {
width: 38px;
height: 38px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
background: #F1F5F9;
color: var(--text-primary);
border: 1px solid rgba(15, 23, 42, 0.08);
}
.service-icon-box[data-accent="blue"] {
background: var(--led-blue-bg);
color: var(--led-blue-bright);
border: 1px solid var(--led-blue-border);
}
.service-icon-box[data-accent="green"] {
background: var(--led-green-bg);
color: var(--led-green);
border: 1px solid var(--led-green-border);
}
.service-icon-box[data-accent="red"] {
background: var(--led-red-bg);
color: var(--led-red);
border: 1px solid var(--led-red-border);
}
.service-title-wrap {
flex: 1;
min-width: 0;
}
.service-title-row {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.service-title {
font-size: 0.95rem;
font-weight: 700;
color: var(--text-primary);
line-height: 1.3;
}
.service-tag {
font-size: 0.68rem;
font-weight: 600;
padding: 2px 7px;
border-radius: var(--radius-full);
background: #F1F5F9;
color: var(--text-secondary);
border: 1px solid rgba(15, 23, 42, 0.08);
}
.service-chevron {
color: var(--text-muted);
display: flex;
align-items: center;
justify-content: center;
transition: transform var(--transition-smooth);
flex-shrink: 0;
}
.service-item.is-open .service-chevron {
transform: rotate(180deg);
color: var(--text-primary);
}
.service-body {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows var(--transition-smooth);
}
.service-item.is-open .service-body {
grid-template-rows: 1fr;
}
.service-content {
min-height: 0;
overflow: hidden;
padding: 0 16px 0 66px;
transition: padding var(--transition-smooth);
}
.service-item.is-open .service-content {
padding-bottom: 16px;
}
@media (max-width: 480px) {
.service-content {
padding-left: 16px;
}
}
.service-description {
font-size: 0.86rem;
color: var(--text-secondary);
line-height: 1.55;
margin-bottom: 14px;
}
.service-cta-wrap {
display: flex;
}
.btn-service-cta {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 16px;
border-radius: var(--radius-md);
font-size: 0.82rem;
font-weight: 600;
text-decoration: none;
background: #F1F5F9;
color: var(--text-primary);
border: 1px solid rgba(15, 23, 42, 0.10);
transition: all var(--transition-fast);
}
.btn-service-cta[data-accent="green"] {
background: var(--led-green-bg);
color: var(--led-green);
border-color: var(--led-green-border);
}
.btn-service-cta[data-accent="green"]:hover {
background: var(--led-green);
color: #FFFFFF;
}
.btn-service-cta[data-accent="red"] {
background: var(--led-red-bg);
color: var(--led-red);
border-color: var(--led-red-border);
}
.btn-service-cta[data-accent="red"]:hover {
background: var(--led-red);
color: #FFFFFF;
}
.btn-service-cta[data-accent="blue"] {
background: var(--led-blue-bg);
color: var(--led-blue-bright);
border-color: var(--led-blue-border);
}
.btn-service-cta[data-accent="blue"]:hover {
background: var(--led-blue-bright);
color: #FFFFFF;
}
.btn-service-cta:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.10);
}
.btn-service-cta .cta-arrow {
transition: transform var(--transition-fast);
}
.btn-service-cta:hover .cta-arrow {
transform: translateX(3px);
}
.location-card {
background: var(--bg-surface);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-xl);
padding: 20px;
box-shadow: var(--shadow-card);
display: flex;
flex-direction: column;
gap: 20px;
}
.location-block {
display: flex;
flex-direction: column;
gap: 8px;
}
.location-block + .location-block {
padding-top: 18px;
border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.location-badge-title {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--led-blue-bright);
}
.location-block:nth-child(2) .location-badge-title {
color: var(--led-red);
}
.location-address {
font-size: 0.95rem;
font-weight: 600;
color: var(--text-primary);
line-height: 1.4;
}
.location-notes {
font-size: 0.8rem;
color: var(--text-muted);
line-height: 1.4;
}
.location-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 4px;
}
.location-link-btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 7px 12px;
border-radius: var(--radius-md);
font-size: 0.78rem;
font-weight: 600;
color: var(--text-secondary);
background: #F8FAFC;
border: 1px solid var(--border-subtle);
text-decoration: none;
transition: all var(--transition-fast);
}
.location-link-btn:hover {
background: #EFF6FF;
color: var(--text-primary);
border-color: var(--border-hover);
transform: translateY(-1px);
}
.location-link-btn.highlight-adv {
background: var(--led-red-bg);
color: #DC2626;
border-color: rgba(229, 27, 32, 0.25);
}
.location-link-btn.highlight-adv:hover {
background: #E51B20;
color: #FFFFFF;
border-color: #E51B20;
}
.site-footer {
margin-top: 8px;
padding-top: 24px;
border-top: 1px solid rgba(15, 23, 42, 0.08);
display: flex;
flex-direction: column;
gap: 20px;
text-align: center;
}
.social-footer-cards {
display: flex;
flex-direction: column;
gap: 8px;
}
@media (min-width: 440px) {
.social-footer-cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
}
.social-footer-pill {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px;
background: var(--bg-surface);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
text-decoration: none;
color: var(--text-primary);
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.04);
transition: all var(--transition-fast);
text-align: left;
}
.social-footer-pill:hover {
background: var(--bg-surface-hover);
border-color: var(--border-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-card);
}
.social-footer-pill .social-icon {
color: var(--text-secondary);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: color var(--transition-fast);
}
.social-footer-pill:hover .social-icon {
color: var(--led-blue-bright);
}
.social-footer-pill .social-meta {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
}
.social-footer-pill .social-name {
font-size: 0.8rem;
font-weight: 700;
color: var(--text-primary);
line-height: 1.2;
}
.social-footer-pill .social-handle {
font-size: 0.72rem;
color: var(--text-muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.social-footer-pill .social-arrow {
color: var(--text-muted);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: transform var(--transition-fast), color var(--transition-fast);
}
.social-footer-pill:hover .social-arrow {
color: var(--text-primary);
transform: translate(2px, -2px);
}
.footer-actions {
display: flex;
justify-content: center;
}
.btn-secondary-pill {
padding: 10px 20px;
border-radius: var(--radius-full);
background: rgba(255, 255, 255, 0.90);
border: 1px solid var(--border-subtle);
color: var(--text-secondary);
font-size: 0.82rem;
font-weight: 600;
box-shadow: 0 2px 6px -1px rgba(15, 23, 42, 0.04);
transition: all var(--transition-fast);
}
.btn-secondary-pill:hover {
background: #FFFFFF;
color: var(--text-primary);
border-color: var(--border-hover);
transform: translateY(-1px);
box-shadow: 0 4px 12px -2px rgba(15, 23, 42, 0.08);
}
.company-legal {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 0.74rem;
color: var(--text-muted);
line-height: 1.5;
}
.legal-text {
font-weight: 600;
color: var(--text-secondary);
}
.legal-sub {
color: var(--text-muted);
}
.legal-copy {
margin-top: 4px;
font-size: 0.7rem;
color: var(--text-muted);
}
.toast {
position: fixed;
bottom: 24px;
left: 50%;
transform: translate(-50%, 20px);
background: rgba(15, 23, 42, 0.94);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid rgba(255, 255, 255, 0.12);
color: #FFFFFF;
padding: 12px 20px;
border-radius: var(--radius-full);
font-size: 0.84rem;
font-weight: 500;
box-shadow: 0 10px 30px rgba(15, 23, 42, 0.25), 0 2px 8px rgba(15, 23, 42, 0.15);
z-index: 9999;
opacity: 0;
pointer-events: none;
transition: opacity 0.25s ease, transform 0.25s ease;
text-align: center;
max-width: 90vw;
white-space: normal;
}
.toast.show {
opacity: 1;
transform: translate(-50%, 0);
pointer-events: auto;
}
:focus-visible {
outline: 2px solid var(--led-blue-bright);
outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}