yerinde-tamir/public/style.css

385 lines
13 KiB
CSS
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.

/* ============================================================
ÖMER KALPAT CEP TELEFONU TAMİRİ — Yerinde Servis Vitrin
Dark tema · profesyonel · responsive
============================================================ */
:root {
--bg: #070b14;
--bg-2: #0b111e;
--panel: #101828;
--panel-2: #16203a;
--line: rgba(148, 163, 184, 0.15);
--text: #e7ecf5;
--muted: #94a3b8;
--accent: #00d9ff;
--accent-2: #0a84ff;
--gold: #ffb020;
--green: #22c58b;
--red: #f43f5e;
--radius: 16px;
--shad: 0 18px 50px -18px rgba(0, 0, 0, 0.8);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.6;
/* İçerik taşarsa dikey kaydırma her zaman açık kalsın */
overflow-y: auto;
overflow-x: clip;
min-height: 100vh;
}
img, svg { display: inline-block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent); }
ul { list-style: none; }
.container {
width: 100%;
max-width: min(1160px, 95vw);
margin-inline: auto;
padding-inline: 20px;
}
/* ---------- ÜST ŞERİT ---------- */
.topbar {
background: linear-gradient(90deg, #0b1220, #0e2233);
border-bottom: 1px solid var(--line);
font-size: 13px;
}
.topbar-in {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
padding-block: 8px;
}
.topbar-item { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); }
.topbar-item a { color: var(--text); }
.dot { width: 9px; height: 9px; border-radius: 50%; background: var(--green); display: inline-block; flex: none; }
.dot.pulse { animation: pulse 1.6s infinite; }
.hero-live .dot { background: var(--green); }
@keyframes pulse {
0%, 100% { box-shadow: 0 0 0 0 rgba(34, 197, 139, 0.5); }
50% { box-shadow: 0 0 0 7px rgba(34, 197, 139, 0); }
}
/* ---------- HEADER / NAV ---------- */
.header {
position: sticky;
top: 0;
z-index: 60;
background: rgba(7, 11, 20, 0.86);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--line);
}
.header.scrolled { background: rgba(7, 11, 20, 0.97); }
.nav {
display: flex;
align-items: center;
gap: 20px;
padding-block: 14px;
flex-wrap: wrap;
}
.brand { display: inline-flex; align-items: center; gap: 12px; margin-right: auto; }
.brand-mark {
width: 44px; height: 44px;
display: grid; place-items: center;
background: linear-gradient(135deg, var(--accent), var(--accent-2));
color: #04121a;
font-weight: 800;
font-size: 18px;
border-radius: 12px;
flex: none;
}
.brand-text { display: flex; flex-direction: column; line-height: 1.2; }
.brand-text strong { font-size: 17px; letter-spacing: 0.2px; }
.brand-text small { color: var(--accent); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
#navbar { display: flex; gap: 26px; }
.nav-link { color: var(--muted); font-size: 15px; font-weight: 500; }
.nav-link:hover { color: var(--accent); }
.nav-cta { margin-left: 8px; }
/* ---------- BUTONLAR ---------- */
.btn {
display: inline-flex; align-items: center; justify-content: center;
gap: 8px; border: 0; cursor: pointer;
font-weight: 600; font-size: 15px;
padding: 12px 20px; border-radius: 12px;
font-family: inherit; transition: transform .15s, box-shadow .2s, filter .2s;
}
.btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.btn-accent {
background: linear-gradient(135deg, var(--accent), var(--accent-2));
color: #04121a;
box-shadow: 0 10px 26px -12px rgba(10, 132, 255, 0.65);
}
.btn-ghost { background: transparent; border: 1px solid var(--line); color: var(--text); }
.btn-ghost:hover { border-color: var(--accent); }
.btn-lg { padding: 15px 26px; font-size: 16px; }
.btn-block { width: 100%; }
/* ---------- MOBİL MENÜ ---------- */
.menu-btn {
display: none;
flex-direction: column; gap: 5px;
background: var(--panel); border: 1px solid var(--line);
width: 42px; height: 42px; border-radius: 10px;
align-items: center; justify-content: center; cursor: pointer;
}
.menu-btn span { width: 20px; height: 2px; background: var(--text); border-radius: 2px; transition: .3s; }
.menu-btn.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-btn.active span:nth-child(2) { opacity: 0; }
.menu-btn.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* ---------- HERO ---------- */
.hero {
position: relative;
overflow: clip;
background:
radial-gradient(900px 480px at 85% -10%, rgba(10, 132, 255, 0.18), transparent 60%),
radial-gradient(700px 420px at -10% 20%, rgba(0, 217, 255, 0.14), transparent 60%),
var(--bg);
padding: 72px 0 90px;
overflow: hidden;
}
.hero::after { /* alt ızgara çizgileri hissi */
content: '';
position: absolute; inset: 0;
background-image: linear-gradient(rgba(148,163,184,.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(148,163,184,.04) 1px, transparent 1px);
background-size: 46px 46px;
pointer-events: none;
mask-image: radial-gradient(circle at 50% 40%, #000, transparent 78%);
}
.hero-grid {
position: relative;
display: grid;
grid-template-columns: 1.2fr 1fr;
gap: 46px;
align-items: center;
}
.badge {
display: inline-block; font-size: 13px; font-weight: 600;
color: var(--accent); background: rgba(0, 217, 255, 0.1);
border: 1px solid rgba(0, 217, 255, 0.25);
padding: 6px 14px; border-radius: 999px; margin-bottom: 18px;
}
.hero h1 { font-size: clamp(32px, 5vw, 54px); line-height: 1.12; font-weight: 800; letter-spacing: -1px; }
.grad {
background: linear-gradient(90deg, var(--accent), var(--accent-2));
-webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero p { color: var(--muted); font-size: 17px; max-width: 520px; margin: 18px 0 24px; }
.hero p strong { color: var(--text); }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 24px; }
.hero-points { display: flex; gap: 18px; flex-wrap: wrap; font-size: 14px; font-weight: 500; color: #cbd5e1; }
.hero-points li { color: var(--muted); }
/* Hero kartı (hızlı form) */
.hero-card {
background: linear-gradient(180deg, rgba(16,24,40,.9), rgba(11,17,30,.95));
border: 1px solid var(--line);
border-radius: 22px;
padding: 26px 24px;
box-shadow: var(--shad);
}
.hero-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.hero-card-title { font-weight: 700; font-size: 18px; }
.hero-live { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; color: var(--green); background: rgba(34,197,139,.1); padding: 4px 10px; border-radius: 999px; }
.hero-card-sub { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
/* ---------- FORM ALANLARI ---------- */
.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.field span { font-size: 13px; font-weight: 500; color: #cbd5e1; }
.field input, .field select, .field textarea {
width: 100%;
background: var(--bg-2);
border: 1px solid var(--line);
color: var(--text);
font-size: 15px;
padding: 12px 14px;
border-radius: 10px;
outline: none;
font-family: inherit;
transition: border-color .2s;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); }
.field input::placeholder, .field textarea::placeholder { color: #5b6b7e; }
select option { background: var(--bg-2); color: var(--text); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.app-form .field { margin-bottom: 14px; }
.form-msg { margin-top: 12px; font-weight: 600; font-size: 14px; min-height: 20px; }
.form-msg.ok { color: var(--green); }
.form-msg.err { color: var(--red); }
/* ---------- BÖLÜM BAŞLIKLARI ---------- */
.section { padding: 80px 0; }
.section-alt { background: var(--bg-2); border-block: 1px solid var(--line); }
.sec-head { text-align: center; max-width: 640px; margin: 0 auto 44px; }
.sec-tag {
display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 1.5px;
text-transform: uppercase; color: var(--accent);
margin-bottom: 12px;
}
.sec-head h2 { font-size: clamp(24px, 3.5vw, 36px); font-weight: 800; letter-spacing: -0.5px; }
/* ---------- HİZMET KARTLARI ---------- */
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 20px;
}
.svc-card {
background: linear-gradient(180deg, var(--panel), var(--bg-2));
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 24px 20px;
transition: transform .2s, border-color .2s;
}
.svc-card:hover { transform: translateY(-5px); border-color: rgba(0,217,255,.4); }
.svc-ic {
width: 52px; height: 52px; border-radius: 14px;
display: grid; place-items: center; font-size: 26px;
background: rgba(0,217,255,.1);
margin-bottom: 14px;
}
.svc-card h3 { font-size: 17px; margin-bottom: 8px; }
.svc-card p { color: var(--muted); font-size: 14px; }
.svc-card .svc-more { display: block; margin-top: 14px; color: var(--accent); font-size: 13.5px; font-weight: 600; }
/* ---------- ADIMLAR ---------- */
.steps {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 22px;
counter-reset: step;
}
.step {
background: var(--panel);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 26px 22px;
position: relative;
}
.step-num {
width: 44px; height: 44px;
display: grid; place-items: center;
font-weight: 800; font-size: 19px;
border-radius: 12px;
background: linear-gradient(135deg, var(--accent), var(--accent-2));
color: #04121a;
margin-bottom: 14px;
}
.step h3 { font-size: 17px; margin-bottom: 8px; }
.step p { color: var(--muted); font-size: 14px; }
/* ---------- FİYAT ---------- */
.price-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
gap: 20px;
}
.price-card {
background: var(--panel);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 24px;
display: flex; flex-direction: column;
}
.price-card .pc-ic { font-size: 30px; margin-bottom: 10px; }
.price-card h3 { font-size: 18px; margin-bottom: 14px; }
.price-card .prc { font-size: 26px; font-weight: 800; color: var(--accent); margin-bottom: 6px; }
.price-card .prc small { font-size: 13px; color: var(--muted); font-weight: 500; }
.price-card .pc-note { color: var(--muted); font-size: 13.5px; margin-top: auto; }
.price-card.featured { border-color: rgba(0,217,255,.5); box-shadow: 0 0 0 1px rgba(0,217,255,.2), var(--shad); }
.price-card .badge-feat { align-self: flex-start; font-size: 11px; font-weight: 700; color: #04121a; background: var(--gold); padding: 4px 10px; border-radius: 999px; margin-bottom: 10px; }
.price-note { text-align: center; color: var(--muted); font-size: 13.5px; margin-top: 26px; }
/* ---------- İLETİŞİM ---------- */
.contact-grid {
display: grid;
grid-template-columns: 1fr 1.1fr;
gap: 46px;
align-items: start;
}
.contact-info h2, .map-card h2 { font-size: clamp(22px, 3vw, 30px); margin-bottom: 20px; }
.meta-list li {
display: flex; gap: 16px; align-items: flex-start;
padding: 18px 0; border-bottom: 1px solid var(--line);
}
.meta-ic {
width: 46px; height: 46px; flex: none;
border-radius: 12px; background: rgba(0,217,255,.1);
display: grid; place-items: center; font-size: 20px;
}
.meta-list strong { display: block; font-size: 14px; margin-bottom: 2px; }
.meta-list div { color: var(--muted); font-size: 15px; }
.map-card {
background: linear-gradient(180deg, var(--panel), var(--bg-2));
border: 1px solid var(--line);
border-radius: 22px;
padding: 28px 26px;
box-shadow: var(--shad);
}
.map-card .sec-tag { margin-bottom: 8px; }
.map-card h2 { margin-bottom: 18px; }
/* ---------- FOOTER ---------- */
.footer { background: var(--bg-2); border-top: 1px solid var(--line); }
.footer-in {
display: grid;
grid-template-columns: 1.6fr 1fr 1fr;
gap: 30px;
padding-block: 46px;
}
.footer-brand .brand-mark { margin-bottom: 14px; }
.footer-brand p { color: var(--muted); font-size: 14px; max-width: 340px; }
.footer-col h4 { font-size: 15px; margin-bottom: 14px; }
.footer-col ul li { color: var(--muted); font-size: 14px; padding: 5px 0; }
.footer-col ul li a { color: var(--muted); }
.footer-col ul li a:hover { color: var(--accent); }
.footer-bottom { border-top: 1px solid var(--line); padding-block: 18px; font-size: 13px; color: #64748b; }
/* ---------- RESPONSIVE ---------- */
@media (max-width: 960px) {
.hero-grid, .contact-grid { grid-template-columns: 1fr; }
.hero { padding: 46px 0 60px; }
#navbar {
position: fixed; top: 0; right: -100%;
height: 100vh; width: 260px;
flex-direction: column; gap: 0;
background: var(--bg-2);
border-left: 1px solid var(--line);
padding: 90px 26px 40px;
transition: right .3s ease;
z-index: 90;
}
#navbar.open { right: 0; }
#navbar .nav-link { padding: 14px 0; font-size: 17px; border-bottom: 1px solid var(--line); }
.menu-btn { display: inline-flex; }
.nav-cta { display: none; }
.footer-in { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
.row2 { grid-template-columns: 1fr; }
.topbar-in { justify-content: center; text-align: center; }
.hero-points { flex-direction: column; gap: 6px; }
.cards, .steps, .price-cards { grid-template-columns: 1fr; }
}