Files

744 lines
22 KiB
CSS
Raw Permalink 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.
/* =========================================================
NumexShop — Saf mantık vitrin stilleri
Mobile-first · sıfır bağımlılık · CSS değişkenleri
========================================================= */
:root {
--zemin: #0b0f19;
--zemin-2: #131826;
--zemin-3: #1b2133;
--cizgi: #262d42;
--yazi: #e8ecf6;
--yazi-soluk: #98a2bd;
--vurgu: #ff6b35;
--vurgu-koyu: #e055246;
--vurgu-2: #35d0ba;
--iyi: #2ee6a8;
--kotu: #ff5470;
--uyari: #ffc857;
--radius: 14px;
--radius-kucuk: 10px;
--golge: 0 18px 40px -22px rgba(0, 0, 0, .85);
--gecis: .22s cubic-bezier(.4, 0, .2, 1);
--ust-yukseklik: 64px;
}
* { box-sizing: border-box; }
/* KRİTİK (kök neden düzeltmesi): HTML `hidden` özniteliği yalnızca tarayıcının
varsayılan `display:none`'una dayanır; aynı elemanda `.modal{display:grid}` veya
`.perde{position:fixed}` gibi bir kural varsa hidden EZİLİR ve görünmez overlay
tüm sayfayı tıklamaya kapatır. Bu kural hidden'ı her koşulda geçerli kılar. */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background:
radial-gradient(1000px 600px at 12% -10%, rgba(255, 107, 53, .12), transparent 60%),
radial-gradient(900px 500px at 90% 0%, rgba(53, 208, 186, .10), transparent 55%),
var(--zemin);
color: var(--yazi);
font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
line-height: 1.55;
overflow-x: hidden;
overflow-y: auto;
min-height: 100vh;
}
h1, h2, h3 { line-height: 1.2; margin: 0; }
p { margin: 0; }
img { max-width: 100%; display: block; }
button { font: inherit; cursor: pointer; }
input, select, textarea { font: inherit; }
.kapsayici {
width: 100%;
max-width: 1180px;
margin: 0 auto;
padding: 0 16px;
}
/* ---------- Butonlar ---------- */
.btn {
border: 1px solid transparent;
border-radius: var(--radius-kucuk);
padding: 12px 20px;
min-height: 44px;
font-weight: 600;
letter-spacing: .1px;
transition: transform var(--gecis), background var(--gecis), border-color var(--gecis), opacity var(--gecis);
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-birincil {
background: linear-gradient(135deg, var(--vurgu), #ff8f5c);
color: #17091b;
box-shadow: 0 10px 26px -14px rgba(255, 107, 53, .9);
}
.btn-birincil:hover { filter: brightness(1.06); }
.btn-cerceve {
background: transparent;
border-color: var(--cizgi);
color: var(--yazi);
}
.btn-cerceve:hover { border-color: var(--vurgu); color: #fff; }
.btn-mini { padding: 10px 14px; min-height: 40px; background: var(--zemin-3); color: var(--yazi); border-color: var(--cizgi); }
.btn-mini:hover { border-color: var(--vurgu-2); }
.btn-tam { width: 100%; }
.btn-metin {
background: transparent;
color: var(--yazi-soluk);
border: 0;
padding: 10px;
min-height: 40px;
font-size: .9rem;
}
.btn-metin:hover { color: var(--kotu); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
/* ---------- Üst bar ---------- */
.ustbar {
position: sticky;
top: 0;
z-index: 50;
backdrop-filter: blur(14px);
background: rgba(11, 15, 25, .82);
border-bottom: 1px solid var(--cizgi);
}
.ustbar-ic {
height: var(--ust-yukseklik);
display: flex;
align-items: center;
gap: 12px;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
color: var(--yazi);
flex: 0 0 auto;
}
.logo-isaret {
width: 36px; height: 36px;
display: grid; place-items: center;
border-radius: 11px;
background: linear-gradient(135deg, var(--vurgu), var(--vurgu-2));
color: #0b0f19;
font-weight: 800;
font-size: 1.05rem;
}
.logo-yazi { font-size: 1.05rem; letter-spacing: .2px; }
.logo-yazi strong { color: var(--vurgu); }
.arama-kutu {
position: relative;
flex: 1 1 auto;
min-width: 0;
}
.arama-kutu input {
width: 100%;
background: var(--zemin-2);
border: 1px solid var(--cizgi);
color: var(--yazi);
border-radius: 999px;
padding: 11px 40px 11px 16px;
min-height: 44px;
outline: none;
transition: border-color var(--gecis), background var(--gecis);
}
.arama-kutu input:focus { border-color: var(--vurgu-2); background: var(--zemin-3); }
.arama-kutu input::placeholder { color: var(--yazi-soluk); }
.arama-temizle {
position: absolute;
right: 8px; top: 50%;
transform: translateY(-50%);
width: 32px; height: 32px;
border-radius: 50%;
border: 0;
background: var(--zemin-3);
color: var(--yazi-soluk);
line-height: 1;
font-size: 1.15rem;
}
.arama-temizle:hover { color: var(--yazi); }
.sepet-btn {
flex: 0 0 auto;
display: flex;
align-items: center;
gap: 8px;
min-height: 44px;
padding: 0 16px;
border-radius: 999px;
border: 1px solid var(--cizgi);
background: var(--zemin-2);
color: var(--yazi);
font-weight: 600;
transition: border-color var(--gecis), background var(--gecis);
}
.sepet-btn:hover { border-color: var(--vurgu); }
.sepet-adet {
min-width: 24px;
height: 24px;
padding: 0 6px;
border-radius: 999px;
background: var(--vurgu);
color: #17091b;
font-size: .8rem;
font-weight: 800;
display: grid;
place-items: center;
}
.sepet-adet.patla { animation: patla .4s cubic-bezier(.3, 1.5, .5, 1); }
@keyframes patla {
0% { transform: scale(1); }
45% { transform: scale(1.5); }
100% { transform: scale(1); }
}
/* ---------- Hero ---------- */
.hero { padding: 44px 0 26px; }
.hero-ic {
display: grid;
gap: 28px;
align-items: center;
}
.hero-etiket {
display: inline-block;
font-size: .78rem;
letter-spacing: 1.4px;
text-transform: uppercase;
color: var(--vurgu-2);
border: 1px solid rgba(53, 208, 186, .35);
border-radius: 999px;
padding: 6px 14px;
margin-bottom: 16px;
}
.hero h1 { font-size: clamp(1.6rem, 6vw, 2.7rem); margin-bottom: 14px; }
.hero-alt { color: var(--yazi-soluk); font-size: clamp(.94rem, 3.4vw, 1.05rem); max-width: 60ch; }
.hero-butonlar { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 18px; }
.hero-istatistik {
display: flex;
flex-wrap: wrap;
gap: 10px 22px;
font-size: .88rem;
color: var(--yazi-soluk);
}
.hero-istatistik b { color: var(--yazi); }
.hero-gorsel {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.hero-kart {
background: linear-gradient(160deg, var(--zemin-2), var(--zemin-3));
border: 1px solid var(--cizgi);
border-radius: var(--radius);
padding: 16px;
min-height: 92px;
display: flex;
flex-direction: column;
justify-content: space-between;
box-shadow: var(--golge);
animation: yuzer 6s ease-in-out infinite;
}
.hero-kart span { font-size: .78rem; color: var(--yazi-soluk); letter-spacing: .6px; text-transform: uppercase; }
.hero-kart b { font-size: 1.25rem; }
.kart-a { grid-column: span 2; border-color: rgba(255, 107, 53, .4); }
.kart-b { animation-delay: 1.2s; }
.kart-c { animation-delay: 2.4s; border-color: rgba(53, 208, 186, .35); }
@keyframes yuzer {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-7px); }
}
/* ---------- Filtre barı ---------- */
.filtre-bari {
position: sticky;
top: var(--ust-yukseklik);
z-index: 30;
background: rgba(11, 15, 25, .9);
backdrop-filter: blur(10px);
border-block: 1px solid var(--cizgi);
padding: 12px 0;
}
.filtre-ic {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.kategori-listesi {
display: flex;
gap: 8px;
overflow-x: auto;
padding-bottom: 4px;
scrollbar-width: thin;
flex: 1 1 320px;
}
.kategori-listesi::-webkit-scrollbar { height: 5px; }
.kategori-listesi::-webkit-scrollbar-thumb { background: var(--cizgi); border-radius: 9px; }
.kat-btn {
flex: 0 0 auto;
border: 1px solid var(--cizgi);
background: var(--zemin-2);
color: var(--yazi-soluk);
border-radius: 999px;
padding: 9px 16px;
min-height: 40px;
font-size: .9rem;
transition: all var(--gecis);
white-space: nowrap;
}
.kat-btn:hover { color: var(--yazi); border-color: var(--vurgu-2); }
.kat-btn.aktif {
background: var(--vurgu);
border-color: var(--vurgu);
color: #17091b;
font-weight: 700;
}
.sirala-kutu { display: flex; align-items: center; gap: 8px; font-size: .85rem; color: var(--yazi-soluk); }
.sirala-kutu select {
background: var(--zemin-2);
color: var(--yazi);
border: 1px solid var(--cizgi);
border-radius: var(--radius-kucuk);
padding: 9px 12px;
min-height: 40px;
outline: none;
}
.sirala-kutu select:focus { border-color: var(--vurgu-2); }
/* ---------- Ürünler ---------- */
main { padding: 26px 16px 60px; }
.bolum-baslik {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
margin-bottom: 18px;
}
.bolum-baslik h2 { font-size: clamp(1.15rem, 4.4vw, 1.5rem); }
.sonuc-sayisi { font-size: .85rem; color: var(--yazi-soluk); }
.urun-izgara {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
gap: 16px;
}
.urun-kart {
background: linear-gradient(170deg, var(--zemin-2), #101522);
border: 1px solid var(--cizgi);
border-radius: var(--radius);
overflow: hidden;
display: flex;
flex-direction: column;
transition: transform var(--gecis), border-color var(--gecis), box-shadow var(--gecis);
animation: kartGir .28s ease-out both;
}
@keyframes kartGir {
from { opacity: 0; transform: translateY(14px); }
to { opacity: 1; transform: translateY(0); }
}
/* Kart animasyonu bitti → transform bir daha kendiliğinden değişmez (tıklama stabilitesi) */
.urun-kart.animasyon-bitti { animation: none; transform: none; }
.urun-kart.animasyon-bitti:hover { transform: translateY(-4px); }
.urun-kart:hover {
transform: translateY(-4px);
border-color: rgba(255, 107, 53, .5);
box-shadow: var(--golge);
}
.urun-gorsel {
position: relative;
aspect-ratio: 4 / 3;
display: grid;
place-items: center;
font-size: 3rem;
background:
radial-gradient(circle at 30% 25%, rgba(255, 107, 53, .18), transparent 55%),
var(--zemin-3);
border-bottom: 1px solid var(--cizgi);
}
.etiket {
position: absolute;
top: 10px; left: 10px;
font-size: .7rem;
font-weight: 800;
letter-spacing: .8px;
text-transform: uppercase;
padding: 4px 9px;
border-radius: 999px;
background: var(--vurgu);
color: #17091b;
}
.etiket.tukendi { background: var(--kotu); color: #fff; }
.etiket.az { background: var(--uyari); color: #241c04; }
.urun-govde { padding: 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.urun-kategori { font-size: .72rem; letter-spacing: 1.1px; text-transform: uppercase; color: var(--vurgu-2); }
.urun-ad { font-size: 1rem; font-weight: 650; }
.urun-aciklama { font-size: .84rem; color: var(--yazi-soluk); flex: 1; }
.urun-meta { display: flex; align-items: center; justify-content: space-between; font-size: .8rem; color: var(--yazi-soluk); }
.yildiz { color: var(--uyari); letter-spacing: 1px; }
.urun-alt { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 4px; }
.fiyat { font-size: 1.15rem; font-weight: 750; }
.fiyat s { font-size: .8rem; color: var(--yazi-soluk); font-weight: 400; margin-left: 6px; }
.ekle-btn {
border: 0;
border-radius: var(--radius-kucuk);
min-height: 44px;
min-width: 44px;
padding: 0 14px;
background: var(--zemin-3);
color: var(--yazi);
border: 1px solid var(--cizgi);
font-weight: 650;
transition: all var(--gecis);
}
.ekle-btn:hover:not(:disabled) { background: var(--vurgu); color: #17091b; border-color: var(--vurgu); }
.ekle-btn:disabled { opacity: .4; cursor: not-allowed; }
.bos-durum {
text-align: center;
padding: 60px 20px;
border: 1px dashed var(--cizgi);
border-radius: var(--radius);
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
color: var(--yazi-soluk);
}
.bos-durum b { color: var(--yazi); font-size: 1.05rem; }
/* ---------- Altbilgi ---------- */
.altbilgi { border-top: 1px solid var(--cizgi); padding: 30px 0; background: rgba(19, 24, 38, .5); }
.altbilgi-ic { display: grid; gap: 18px; }
.altbilgi p { color: var(--yazi-soluk); font-size: .88rem; margin-top: 6px; max-width: 62ch; }
.altbilgi-imgeler { display: flex; flex-wrap: wrap; gap: 10px; }
.altbilgi-imgeler span {
font-size: .8rem;
border: 1px solid var(--cizgi);
border-radius: 999px;
padding: 6px 13px;
color: var(--yazi-soluk);
}
/* ---------- Perde + Çekmece ---------- */
.perde {
position: fixed;
inset: 0;
background: rgba(4, 7, 13, .68);
backdrop-filter: blur(3px);
z-index: 60;
animation: solgun .2s ease-out;
}
@keyframes solgun { from { opacity: 0; } to { opacity: 1; } }
.cekmec {
position: fixed;
top: 0; right: 0;
height: 100%;
width: min(420px, 100%);
background: var(--zemin-2);
border-left: 1px solid var(--cizgi);
z-index: 70;
display: flex;
flex-direction: column;
transform: translateX(102%);
transition: transform .28s cubic-bezier(.4, 0, .2, 1);
box-shadow: -20px 0 50px -30px #000;
}
.cekmec.acik { transform: translateX(0); }
.cekmec-ust {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px;
border-bottom: 1px solid var(--cizgi);
}
.cekmec-ust h2 { font-size: 1.1rem; display: flex; align-items: center; gap: 10px; }
.rozet {
background: var(--vurgu);
color: #17091b;
font-size: .75rem;
font-weight: 800;
border-radius: 999px;
padding: 2px 9px;
}
.kapat-btn {
width: 40px; height: 40px;
border-radius: 50%;
border: 1px solid var(--cizgi);
background: var(--zemin-3);
color: var(--yazi);
font-size: 1.3rem;
line-height: 1;
display: grid; place-items: center;
}
.kapat-btn:hover { border-color: var(--kotu); color: var(--kotu); }
.cekmec-govde { flex: 1; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.sepet-bos { text-align: center; color: var(--yazi-soluk); padding: 40px 10px; font-size: .92rem; }
.sepet-satir {
display: grid;
grid-template-columns: 56px 1fr auto;
gap: 12px;
align-items: center;
background: var(--zemin-3);
border: 1px solid var(--cizgi);
border-radius: var(--radius-kucuk);
padding: 10px;
animation: kartGir .28s ease-out;
}
.satir-gorsel {
width: 56px; height: 56px;
border-radius: 10px;
display: grid; place-items: center;
font-size: 1.6rem;
background: var(--zemin-2);
border: 1px solid var(--cizgi);
}
.satir-ad { font-size: .92rem; font-weight: 600; }
.satir-fiyat { font-size: .82rem; color: var(--yazi-soluk); }
.satir-sag { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.adet-kutu {
display: flex;
align-items: center;
gap: 4px;
border: 1px solid var(--cizgi);
border-radius: 999px;
padding: 2px;
background: var(--zemin-2);
}
.adet-kutu button {
width: 30px; height: 30px;
border: 0;
border-radius: 50%;
background: transparent;
color: var(--yazi);
font-size: 1rem;
line-height: 1;
}
.adet-kutu button:hover:not(:disabled) { background: var(--zemin-3); color: var(--vurgu); }
.adet-kutu button:disabled { opacity: .3; cursor: not-allowed; }
.adet-kutu span { min-width: 26px; text-align: center; font-size: .88rem; font-weight: 650; }
.satir-toplam { font-size: .92rem; font-weight: 700; }
.satir-sil { border: 0; background: transparent; color: var(--yazi-soluk); font-size: .78rem; padding: 2px 4px; }
.satir-sil:hover { color: var(--kotu); }
.cekmec-alt { border-top: 1px solid var(--cizgi); padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 10px; background: var(--zemin-2); }
.kupon-satir { display: flex; gap: 8px; }
.kupon-satir input {
flex: 1;
background: var(--zemin-3);
border: 1px solid var(--cizgi);
color: var(--yazi);
border-radius: var(--radius-kucuk);
padding: 10px 12px;
min-height: 40px;
outline: none;
text-transform: uppercase;
}
.kupon-satir input:focus { border-color: var(--vurgu-2); }
.kupon-satir input::placeholder { text-transform: none; color: var(--yazi-soluk); }
.kupon-mesaj { font-size: .82rem; padding: 8px 12px; border-radius: var(--radius-kucuk); }
.kupon-mesaj.iyi { background: rgba(46, 230, 168, .12); color: var(--iyi); border: 1px solid rgba(46, 230, 168, .3); }
.kupon-mesaj.kotu { background: rgba(255, 84, 112, .12); color: var(--kotu); border: 1px solid rgba(255, 84, 112, .3); }
.ozet { margin: 0; display: flex; flex-direction: column; gap: 7px; }
.ozet-satir { display: flex; justify-content: space-between; font-size: .88rem; color: var(--yazi-soluk); }
.ozet-satir b { color: var(--yazi); }
.ozet-satir.indirim b { color: var(--iyi); }
.ozet-satir.toplam { border-top: 1px solid var(--cizgi); padding-top: 9px; font-size: 1.02rem; color: var(--yazi); }
.ozet-satir.toplam b { font-size: 1.15rem; color: var(--vurgu); }
/* ---------- Modal ---------- */
.modal {
position: fixed;
inset: 0;
z-index: 80;
display: grid;
place-items: center;
padding: 16px;
background: rgba(4, 7, 13, .75);
backdrop-filter: blur(4px);
overflow-y: auto;
animation: solgun .2s ease-out;
}
.modal-kart {
width: min(560px, 100%);
background: var(--zemin-2);
border: 1px solid var(--cizgi);
border-radius: var(--radius);
box-shadow: var(--golge);
margin: auto;
display: flex;
flex-direction: column;
max-height: calc(100vh - 32px);
}
.modal-ust {
display: flex; align-items: center; justify-content: space-between;
padding: 16px;
border-bottom: 1px solid var(--cizgi);
}
.modal-ust h2 { font-size: 1.1rem; }
#odeme-form { padding: 16px; overflow-y: auto; flex: 1; }
.modal-alt {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 14px 16px;
border-top: 1px solid var(--cizgi);
}
.modal-alt .btn-birincil { flex: 1; }
.adim-gostergesi { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.adim {
font-size: .78rem;
color: var(--yazi-soluk);
border: 1px solid var(--cizgi);
border-radius: 999px;
padding: 5px 12px;
transition: all var(--gecis);
}
.adim.aktif { color: #17091b; background: var(--vurgu); border-color: var(--vurgu); font-weight: 700; }
.adim.tamam { color: var(--iyi); border-color: rgba(46, 230, 168, .45); }
.adim-alan { border: 0; padding: 0; margin: 0; display: none; }
.adim-alan.aktif { display: block; animation: kartGir .25s ease-out; }
.alan { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; flex: 1; }
.alan label { font-size: .84rem; color: var(--yazi-soluk); }
.alan input, .alan textarea {
background: var(--zemin-3);
border: 1px solid var(--cizgi);
color: var(--yazi);
border-radius: var(--radius-kucuk);
padding: 11px 13px;
min-height: 44px;
outline: none;
resize: vertical;
transition: border-color var(--gecis);
width: 100%;
}
.alan input:focus, .alan textarea:focus { border-color: var(--vurgu-2); }
.alan input.gecersiz, .alan textarea.gecersiz { border-color: var(--kotu); }
.alan-ikili { display: grid; grid-template-columns: 1fr; gap: 0 14px; }
.hata { color: var(--kotu); font-size: .78rem; min-height: 16px; }
.not-kutu {
background: rgba(53, 208, 186, .08);
border: 1px solid rgba(53, 208, 186, .25);
border-radius: var(--radius-kucuk);
padding: 10px 12px;
font-size: .82rem;
color: var(--yazi-soluk);
}
.onay-ozet { font-size: .9rem; }
.onay-blok { border: 1px solid var(--cizgi); border-radius: var(--radius-kucuk); padding: 12px; margin-bottom: 12px; background: var(--zemin-3); }
.onay-blok h3 { font-size: .82rem; text-transform: uppercase; letter-spacing: 1px; color: var(--vurgu-2); margin-bottom: 8px; }
.onay-blok p { font-size: .88rem; color: var(--yazi-soluk); }
.onay-blok p b { color: var(--yazi); }
.onay-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.onay-liste li { display: flex; justify-content: space-between; font-size: .86rem; }
/* ---------- Başarı ---------- */
.basari-kart { text-align: center; padding: 30px 22px; gap: 12px; }
.basari-isaret {
width: 66px; height: 66px;
margin: 0 auto;
border-radius: 50%;
display: grid; place-items: center;
font-size: 2rem;
background: rgba(46, 230, 168, .14);
color: var(--iyi);
border: 2px solid rgba(46, 230, 168, .45);
animation: patla .5s cubic-bezier(.3, 1.5, .5, 1);
}
.siparis-kod { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; color: var(--vurgu); font-weight: 700; letter-spacing: 1px; }
.basari-alt { color: var(--yazi-soluk); font-size: .88rem; }
.siparis-detay { text-align: left; width: 100%; border-top: 1px solid var(--cizgi); padding-top: 14px; font-size: .86rem; color: var(--yazi-soluk); }
.siparis-detay .satir { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; }
.siparis-detay .satir b { color: var(--yazi); }
/* ---------- Bildirim ---------- */
.bildirim-alani {
position: fixed;
left: 50%;
bottom: 22px;
transform: translateX(-50%);
z-index: 95;
display: flex;
flex-direction: column;
gap: 8px;
align-items: center;
pointer-events: none;
width: min(92vw, 420px);
}
.bildirim {
background: var(--zemin-3);
border: 1px solid var(--cizgi);
border-left: 4px solid var(--vurgu);
border-radius: var(--radius-kucuk);
padding: 11px 15px;
font-size: .88rem;
box-shadow: var(--golge);
animation: bildirimGir .3s cubic-bezier(.3, 1.3, .5, 1);
width: 100%;
}
.bildirim.iyi { border-left-color: var(--iyi); }
.bildirim.kotu { border-left-color: var(--kotu); }
.bildirim.cikiyor { animation: bildirimCik .25s ease-in forwards; }
@keyframes bildirimGir { from { opacity: 0; transform: translateY(16px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes bildirimCik { to { opacity: 0; transform: translateY(10px) scale(.96); } }
/* ---------- Erişilebilirlik ---------- */
:focus-visible { outline: 2px solid var(--vurgu-2); outline-offset: 2px; }
/* ---------- Responsive ---------- */
@media (min-width: 560px) {
.alan-ikili { grid-template-columns: 1fr 1fr; }
.hero-gorsel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kart-a { grid-column: span 1; }
}
@media (min-width: 860px) {
.hero { padding: 70px 0 40px; }
.hero-ic { grid-template-columns: 1.15fr .85fr; gap: 40px; }
.hero-gorsel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kart-a { grid-column: span 2; }
.altbilgi-ic { grid-template-columns: 1.4fr 1fr; align-items: start; }
.urun-izgara { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
}
@media (min-width: 1100px) {
.urun-izgara { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
.sepet-btn span:not(.sepet-adet) { display: none; }
.sepet-btn { padding: 0 12px; }
.sirala-kutu label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
* { animation-duration: .001s !important; transition-duration: .001s !important; }
html { scroll-behavior: auto; }
}