agency-web/app/globals.css

122 lines
5.8 KiB
CSS

:root {
--bg: #0a0a0b;
--bg-2: #101013;
--fg: #fafafa;
--muted: #a1a1aa;
--line: rgba(255, 255, 255, 0.1);
--accent: #6366f1;
--accent-2: #22d3ee;
--maxw: 1140px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
background: var(--bg);
color: var(--fg);
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(20px, 5vw, 40px); width: 100%; }
.grad {
background: linear-gradient(90deg, var(--accent), var(--accent-2));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
/* HEADER */
.hd {
position: sticky; top: 0; z-index: 50;
display: flex; justify-content: space-between; align-items: center;
padding: 16px clamp(20px, 5vw, 40px);
background: rgba(10, 10, 11, 0.7);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--line);
}
.logo { font-weight: 700; letter-spacing: -0.02em; }
.hd-nav { display: flex; gap: 1.6rem; align-items: center; font-size: 0.92rem; }
.hd-nav a { color: var(--muted); transition: color 0.15s; }
.hd-nav a:hover { color: var(--fg); }
.hd-cta { color: var(--fg) !important; border: 1px solid var(--line); padding: 0.5rem 1rem; border-radius: 999px; }
@media (max-width: 640px) { .hd-nav a:not(.hd-cta) { display: none; } }
/* HERO */
.hero { position: relative; overflow: hidden; padding: clamp(80px, 14vw, 160px) 0 clamp(60px, 9vw, 110px); }
.hero::before {
content: ""; position: absolute; inset: 0; pointer-events: none;
background: radial-gradient(55% 50% at 72% -10%, rgba(99, 102, 241, 0.28), transparent 70%),
radial-gradient(40% 45% at 0% 110%, rgba(34, 211, 238, 0.12), transparent 70%);
}
.hero .wrap { position: relative; z-index: 1; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.76rem; color: var(--accent-2); margin-bottom: 1.1rem; }
h1 { font-size: clamp(2.3rem, 6vw, 4.6rem); line-height: 1.04; letter-spacing: -0.03em; font-weight: 800; }
.sub { margin-top: 1.5rem; max-width: 620px; font-size: clamp(1rem, 1.5vw, 1.2rem); color: var(--muted); }
.actions { margin-top: 2.2rem; display: flex; gap: 1rem; flex-wrap: wrap; }
.btn { padding: 0.85rem 1.5rem; border-radius: 999px; font-weight: 600; font-size: 0.95rem; transition: transform 0.15s; display: inline-block; }
.btn:hover { transform: translateY(-2px); }
.btn.primary { background: linear-gradient(90deg, var(--accent), var(--accent-2)); color: #04060a; }
.btn.ghost { border: 1px solid var(--line); color: var(--fg); }
.btn.big { padding: 1.05rem 2.2rem; font-size: 1.05rem; }
/* PROOF STRIP */
.strip { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; padding: 22px clamp(20px, 5vw, 40px); color: var(--muted); font-size: 0.9rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.strip .dot { opacity: 0.4; }
/* BANDS */
.band { padding: clamp(56px, 9vw, 110px) 0; }
.band.alt { background: var(--bg-2); }
.band h2 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); letter-spacing: -0.02em; font-weight: 800; }
.lead { margin-top: 0.9rem; max-width: 640px; color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.15rem); }
.lead strong { color: var(--fg); }
/* GRIDS + CARDS */
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; margin-top: 2.6rem; }
.grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; margin-top: 2.6rem; }
@media (max-width: 900px) { .grid3, .grid4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .grid3, .grid4 { grid-template-columns: 1fr; } }
.card {
background: rgba(255, 255, 255, 0.025);
border: 1px solid var(--line);
border-radius: 16px;
padding: 1.5rem;
transition: border-color 0.2s, transform 0.2s;
}
.card:hover { border-color: rgba(99, 102, 241, 0.5); transform: translateY(-3px); }
.card h3 { font-size: 1.15rem; margin-bottom: 0.5rem; letter-spacing: -0.01em; }
.card p { color: var(--muted); font-size: 0.96rem; }
.card .step { font-size: 0.85rem; font-weight: 700; color: var(--accent-2); letter-spacing: 0.1em; }
.vertical { display: grid; gap: 2rem; }
/* PACKAGES */
.pkg { position: relative; background: rgba(255, 255, 255, 0.025); border: 1px solid var(--line); border-radius: 16px; padding: 1.6rem 1.4rem; }
.pkg.featured { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 20px 50px -20px rgba(99, 102, 241, 0.5); }
.pkg .tag { position: absolute; top: -11px; left: 1.4rem; background: linear-gradient(90deg, var(--accent), var(--accent-2)); color: #04060a; font-size: 0.7rem; font-weight: 700; padding: 0.25rem 0.7rem; border-radius: 999px; }
.pkg h3 { font-size: 1.2rem; }
.pkg .who { color: var(--muted); font-size: 0.85rem; margin: 0.3rem 0 1rem; }
.pkg ul { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
.pkg li { font-size: 0.92rem; padding-left: 1.4rem; position: relative; }
.pkg li::before { content: "→"; position: absolute; left: 0; color: var(--accent-2); }
/* CTA */
.cta { position: relative; overflow: hidden; padding: clamp(70px, 11vw, 130px) 0; text-align: center; }
.cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(50% 80% at 50% 0%, rgba(99, 102, 241, 0.22), transparent 70%); pointer-events: none; }
.cta .wrap { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }
.cta h2 { font-size: clamp(1.9rem, 4vw, 3rem); letter-spacing: -0.02em; }
.cta .lead { margin-left: auto; margin-right: auto; text-align: center; }
.cta .btn { margin-top: 2rem; }
/* FOOTER */
.ft { border-top: 1px solid var(--line); padding: 2.5rem 0; }
.ft .wrap { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: 0.85rem; }
.ft .muted { color: var(--muted); }