/* =========================================================
   Plato Çiçek — Tema (component katmanı)
   =========================================================
   Bu dosya artık tokens.css'in ÜZERİNE kurulu. Aşağıdaki :root bloğu,
   projenin geri kalanında (bu dosya + admin.css + tüm view'lar) hâlâ
   kullanılan KISA isimleri (--color-primary vb.) tokens.css'teki yeni
   kanonik token'lara eşleyen bir "legacy alias" katmanıdır — hiçbir
   component stili değişmedi, sadece değerlerin KAYNAĞI değişti.

   tokens.css BU DOSYADAN ÖNCE yüklenmelidir (bkz. layout <head>).
   Marka rengi/logo netleştiğinde artık BURASI DEĞİL, tokens.css'teki
   "1. COLOR TOKENS" primitive paleti güncellenir — bu dosyaya dokunmaya
   gerek kalmaz. Ayrıntılı token referansı: docs/DESIGN_SYSTEM.md.
   ========================================================= */
:root {
    --color-primary: var(--pc-color-primary);
    --color-primary-dark: var(--pc-color-primary-hover);
    --color-accent: var(--pc-color-accent);
    --color-accent-hover: var(--pc-color-accent-hover);
    --color-accent-light: var(--pc-color-accent-subtle);
    --color-bg: var(--pc-color-bg-canvas);
    --color-surface: var(--pc-color-bg-surface);
    --color-text: var(--pc-color-text-primary);
    --color-text-muted: var(--pc-color-text-secondary);
    --color-border: var(--pc-color-border-default);
    --color-border-focus: var(--pc-color-border-focus);
    --color-success: var(--pc-color-success-text);
    --color-success-bg: var(--pc-color-success-bg);
    --color-success-border: var(--pc-color-success-border);
    --color-danger: var(--pc-color-danger-text);
    --color-danger-bg: var(--pc-color-danger-bg);
    --color-danger-border: var(--pc-color-danger-border);
    --color-warning: var(--pc-color-warning-text);
    --color-warning-bg: var(--pc-color-warning-bg);

    --font-heading: var(--pc-font-family-heading);
    --font-body: var(--pc-font-family-body);

    --radius-sm: var(--pc-radius-sm);
    --radius-md: var(--pc-radius-md);
    --radius-lg: var(--pc-radius-lg);
    --shadow-sm: var(--pc-shadow-sm);
    --shadow-md: var(--pc-shadow-md);
    --space-1: var(--pc-space-1);
    --space-2: var(--pc-space-2);
    --space-3: var(--pc-space-3);
    --space-4: var(--pc-space-4);
    --space-5: var(--pc-space-5);
    --space-6: var(--pc-space-6);
    --container-width: var(--pc-container-max-width);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--color-text);
    background: var(--color-bg);
    line-height: 1.6;
    font-size: 16px;
}

h1, h2, h3, h4 {
    font-family: var(--font-heading);
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 var(--space-3);
    color: var(--color-primary-dark);
}
h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 var(--space-3); color: var(--color-text-muted); }

a { color: var(--color-primary); text-decoration: none; }
a:hover { color: var(--color-accent); }

img { max-width: 100%; display: block; }

.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--space-4);
}

/* Focus görünürlüğü — erişilebilirlik */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: var(--pc-border-width-thick) solid var(--color-border-focus);
    outline-offset: 2px;
}

/* Görsel olarak gizli ama ekran okuyucu/klavye için erişilebilir metin */
.vh {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0; padding: 0; margin: -1px;
}

/* --- Header ---
   Yükseklik: 88px (docs/homepage/HOMEPAGE_HIGH_FIDELITY_UI.md §1).
   Sticky, dinlenme halinde Elevation 0; scroll sonrası (.is-scrolled,
   header.js ile eklenir) Elevation 2'ye geçiş — progressive enhancement,
   JS yüklenmezse header yine sticky çalışır, sadece gölge geçişi olmaz.
   Stickiness artık .site-header-stack sarmalayıcısında (bkz. aşağıda) —
   böylece anasayfa/mobilde üstüne .promo-marquee eklendiğinde ikisi TEK
   bir sticky blok olarak birlikte kayar, ayrı bir yükseklik hesabı gerekmez. */
.site-header-stack {
    position: sticky;
    top: 0;
    z-index: var(--pc-z-sticky);
}
.site-header {
    background: var(--color-surface);
    border-bottom: 1px solid var(--pc-border-subtle);
    box-shadow: var(--pc-elevation-0);
    transition: box-shadow var(--pc-transition-base), border-color var(--pc-transition-base);
}
.site-header.is-scrolled {
    border-bottom-color: transparent;
    box-shadow: var(--pc-elevation-2);
}

/* Mobil kayan duyuru şeridi — sadece anasayfada (bkz. layouts/storefront.php
   $showMarquee), sadece ≤768px'te görünür. İki aynı <span> art arda + %50
   translateX döngüsü ile sonsuz/kesintisiz akış sağlanır (klasik CSS marquee
   tekniği — bkz. .promo-marquee__track span:nth-child(2)). */
.promo-marquee {
    display: none;
    background: var(--color-primary-dark);
    color: #fff;
    overflow: hidden;
}
.promo-marquee__track {
    display: flex;
    width: max-content;
    animation: promo-marquee-scroll 16s linear infinite;
}
.promo-marquee__track span {
    display: inline-block;
    flex-shrink: 0;
    padding: 7px var(--pc-space-6) 7px 0;
    font-size: 0.8125rem;
    font-weight: var(--pc-font-weight-medium);
    letter-spacing: 0.01em;
    white-space: nowrap;
}
@keyframes promo-marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (max-width: 768px) {
    .promo-marquee { display: block; }
}
@media (prefers-reduced-motion: reduce) {
    .promo-marquee { overflow-x: auto; }
    .promo-marquee__track { animation: none; }
}
.site-header__inner {
    position: relative; /* .main-nav--mobile'ın konumlanma referansı — bkz. aşağıda */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    min-height: 88px;
}
.brand {
    /* Creative pass: logo biraz daha güçlü konumlansın — .text-h4'ten bir
       kademe büyük + hafif harf aralığı, ama hâlâ ölçülü (Aesop tarzı
       "sessiz güç", bağırmayan bir wordmark). */
    font-family: var(--font-heading);
    font-size: var(--pc-font-size-xl); /* 1.25rem */
    font-weight: var(--pc-font-weight-semibold);
    color: var(--color-primary-dark);
    letter-spacing: 0.01em;
    flex-shrink: 0;
}

/* Masaüstü navigasyon — daha hafif optik ağırlık (semibold yerine medium).
   İki ayrı <nav> var (bkz. layouts/storefront.php): .main-nav--desktop her
   zaman düz akışta, .main-nav--mobile sadece ≤768px'te hamburger içinde. */
.main-nav {
    display: flex;
    align-items: center;
    gap: var(--pc-space-5);
    flex-wrap: wrap;
}
.main-nav a {
    color: var(--pc-text-secondary);
    font-size: 0.9375rem; /* .text-label ölçeği */
    font-weight: var(--pc-font-weight-medium);
    transition: color var(--pc-transition-fast);
}
.main-nav a:hover,
.main-nav a:focus-visible {
    color: var(--pc-text-primary); /* accent DEĞİL — HOMEPAGE_HIGH_FIDELITY_UI.md §1 kararı */
}
.main-nav--mobile { display: none; }
.main-nav--desktop { gap: var(--pc-space-4); }

/* Mobil hamburger — native <details>/<summary>, JS'siz çalışır.
   .main-nav--mobile, .nav-toggle'ın İÇİNDE (DOM'da <details> > <nav>) ama
   position:absolute ile konumlanırken .nav-toggle'a DEĞİL (o sadece ~40px'lik
   hamburger düğmesi kadar geniş — buna göre konumlanınca panel yatayda
   40px'e sıkışıp metinler dışarı taşıyordu, bkz. gerçek cihaz raporu) üst
   .site-header__inner'a (position:relative, yukarıda) göre konumlanır. */
.nav-toggle__btn {
    display: none; /* masaüstünde gizli — ≤768px'te @media bloğunda gösterilir */
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: var(--radius-sm);
    color: var(--pc-text-primary);
    cursor: pointer;
    list-style: none;
}
.nav-toggle__btn::-webkit-details-marker { display: none; }
.nav-toggle__btn:hover { background: var(--pc-color-bg-surface-muted); }

/* Arama — masaüstünde VARSAYILAN olarak sadece ikon (40x40, header'ın diğer
   ikon butonlarıyla aynı boyut). Tıklanınca/odaklanınca YATAYDA genişlemek
   yerine (bu, nav'ın kendi genişliğiyle çakışıp kategori sayısı arttıkça
   nav'ı 2 satıra düşürüyordu — gerçek cihaz raporu) ikonun ALTINDA açılan
   bağımsız bir kutu olarak belirir — nav'ın genişliğini hiç etkilemez,
   kategori sayısı ne kadar artarsa artsın bozulmaz. JS'siz: <label for>
   ikonu sarmalıyor, native olarak tıklamak/Tab ile odaklanmak input'u
   focus'lar, :focus-within kutuyu açar. */
.nav-search {
    display: flex;
    align-items: center;
    gap: var(--pc-space-2);
}
.nav-search--desktop {
    position: relative;
    gap: 0;
    width: 40px;
    height: 40px;
}
.nav-search__icon-label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: var(--pc-radius-full);
    flex-shrink: 0;
    cursor: pointer;
    color: var(--pc-text-secondary);
    transition: background-color var(--pc-transition-fast), color var(--pc-transition-fast);
}
.nav-search--desktop:hover .nav-search__icon-label,
.nav-search--desktop:focus-within .nav-search__icon-label {
    color: var(--pc-text-primary);
    background: var(--pc-color-bg-surface-muted);
}
.nav-search--desktop input[type="search"] {
    position: absolute;
    top: 100%; /* boşluksuz bitişik — aradaki bir boşluk, mouse imleci ikondan
                  kutuya inerken hover zincirini kırıp kutuyu erken kapatırdı */
    right: 0;
    width: 280px;
    height: 44px;
    padding: 0 var(--pc-space-3);
    border: 1px solid var(--pc-border-default);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--pc-elevation-3);
    font-size: 0.9375rem;
    color: var(--pc-text-primary);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity var(--pc-transition-fast), transform var(--pc-transition-fast), visibility var(--pc-transition-fast);
    z-index: var(--pc-z-dropdown);
}
.nav-search--desktop:hover input[type="search"],
.nav-search--desktop:focus-within input[type="search"] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nav-search input[type="search"]:focus-visible { outline: none; border-color: var(--color-border-focus); }
.nav-search--mobile { display: none; }

.header-actions { display: flex; align-items: center; gap: var(--pc-space-4); }

/* Sepet — dolgulu buton değil, sessiz ikon + sadece doluyken görünen rozet
   (HOMEPAGE_HIGH_FIDELITY_UI.md §1 "minimal ikon kullanımı" kararı) */
.cart-link, .account-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: var(--radius-sm);
    color: var(--pc-text-primary);
    transition: background-color var(--pc-transition-fast);
}
.cart-link:hover, .account-link:hover { background: var(--pc-color-bg-surface-muted); color: var(--pc-text-primary); }
.cart-badge {
    position: absolute;
    top: 2px; right: 2px;
    min-width: 16px; height: 16px;
    padding: 0 3px;
    border-radius: var(--pc-radius-full);
    background: var(--pc-interactive-primary);
    color: var(--pc-text-inverse);
    font-size: 0.625rem;
    font-weight: var(--pc-font-weight-bold);
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

/* --- Buttons --- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 12px 24px;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    transition: transform var(--pc-transition-fast), background-color var(--pc-transition-fast), box-shadow var(--pc-transition-fast);
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-primary:hover { background: var(--color-primary-dark); color: #fff; }
.btn-accent { background: var(--color-accent); color: #fff; }
.btn-accent:hover { background: var(--color-accent-hover); color: #fff; }
.btn-outline { background: transparent; border-color: var(--color-primary); color: var(--color-primary); }
.btn-outline:hover { background: var(--color-primary); color: #fff; }
.btn-block { width: 100%; }
.btn-sm { padding: 8px 16px; font-size: 0.875rem; }
.btn-lg { padding: 16px 32px; font-size: 1.0625rem; } /* Hero'nun tek CTA'sı — sayfadaki en büyük buton */
.btn-danger { background: var(--color-danger); color: #fff; }

/* --- Promo Hero — ürün/kampanya odaklı üst bölüm (Banner Yönetimi'nden
   beslenir, bkz. home.php + App\Models\Banner). İlk aktif banner büyük
   ana kart, sonraki 2 banner sağda dikey iki küçük karttır — admin panelden
   sıralama (sort_order) değiştirilerek hangi banner'ın "ana" olacağı
   belirlenir. Amaç: markasal/editoryal bir "his" anı değil, doğrudan
   ürün+kampanya+CTA görünürlüğü ("kafası karışmasın, direkt satış odaklı"). */
.promo-hero { padding: var(--pc-space-4) 0 0; margin-bottom: var(--space-5); }
.promo-grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: var(--pc-space-4); align-items: stretch; }
.promo-grid--single { grid-template-columns: 1fr; }

.promo-card { position: relative; display: block; overflow: hidden; border-radius: var(--radius-lg); color: inherit; }
.promo-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.promo-card__content { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--pc-space-1); height: 100%; }

.promo-card--primary { min-height: 460px; background: var(--pc-color-neutral-100); }
.promo-card--primary img { object-position: center 30%; }
.promo-card--primary .promo-card__scrim {
    position: absolute; inset: 0;
    background: linear-gradient(100deg, var(--pc-color-neutral-100) 0%, var(--pc-color-neutral-100) 30%, rgba(243,237,227,0.78) 47%, rgba(243,237,227,0) 68%);
}
.promo-card--primary .promo-card__content { justify-content: center; padding: var(--pc-space-5); max-width: 460px; }
.promo-card--primary .promo-card__eyebrow { color: var(--color-accent-hover); font-weight: 700; margin: 0; }
.promo-card--primary h1 { margin: 0; font-size: clamp(1.75rem, 2.6vw, 2.5rem); color: var(--color-text); }
.promo-card--primary p { margin: 0; color: var(--color-text-muted); max-width: 40ch; }
.promo-card--primary .btn { align-self: flex-start; margin-top: var(--pc-space-2); }

.promo-card--fallback { background: var(--pc-brand-gradient-hero); min-height: 420px; display: flex; align-items: center; }
.promo-card--fallback .promo-card__content { justify-content: center; padding: var(--pc-space-5); max-width: 560px; }
.promo-card--fallback .promo-card__eyebrow { color: rgba(255,255,255,0.75); margin: 0; }
.promo-card--fallback h1 { margin: 0; color: #fff; }
.promo-card--fallback p { margin: 0; color: rgba(255,255,255,0.85); max-width: 42ch; }
.promo-card--fallback .btn { align-self: flex-start; margin-top: var(--pc-space-2); }
/* Hero'da (İçerik Yönetimi) bir görsel yüklenmişse fallback kart arka planı o
   fotoğrafla dolar — .promo-card--primary .promo-card__scrim (krem, banner
   fotoğrafları için) yerine burada koyu bir scrim kullanılır, çünkü fallback
   metni her zaman beyazdır ve krem scrim üzerinde okunmaz. */
.promo-card--fallback img { object-position: center 35%; }
.promo-card--fallback .promo-card__scrim {
    background: linear-gradient(100deg, rgba(23,36,26,0.92) 0%, rgba(23,36,26,0.78) 38%, rgba(23,36,26,0.4) 64%, rgba(23,36,26,0.12) 88%);
}

.promo-card__side { display: flex; flex-direction: column; gap: var(--pc-space-4); height: 100%; }
.promo-card--side { flex: 1; min-height: 210px; }
.promo-card--side .promo-card__scrim {
    position: absolute; inset: 0;
    background: linear-gradient(0deg, rgba(23,36,26,0.85) 0%, rgba(23,36,26,0.18) 58%, rgba(23,36,26,0) 100%);
}
.promo-card--side .promo-card__content { justify-content: flex-end; padding: var(--pc-space-3) var(--pc-space-4); gap: 4px; }
.promo-card--side h3 { margin: 0; color: #fff; font-size: 1.0625rem; }

/* Alt hızlı-seçim şeridi — 4. ve sonrası banner'lar (varsa) burada 3'lü
   sade fotoğraf kartı olarak gösterilir: açıklama/buton yok, kartın tamamı
   button_url'e giden bir link (bkz. home.php .promo-strip). */
.promo-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pc-space-4); margin-top: var(--pc-space-4); }
.promo-card--strip { min-height: 200px; }
.promo-card--strip .promo-card__scrim {
    position: absolute; inset: 0;
    background: linear-gradient(0deg, rgba(23,36,26,0.78) 0%, rgba(23,36,26,0.12) 55%, rgba(23,36,26,0) 100%);
}
.promo-card--strip .promo-card__content { justify-content: flex-end; padding: var(--pc-space-3); }
.promo-card--strip h3 { margin: 0; color: #fff; font-size: 1rem; }
@media (max-width: 700px) {
    .promo-strip { grid-template-columns: 1fr; }
}

/* Kategori şeridi — anasayfa üstünde, ürün/kampanya bölümünden ÖNCE:
   dairesel vitrin fotoğrafı + etiket, admin > Kategoriler'den yönetilir
   (bkz. home.php .category-strip). Yatay kaydırma — ok butonu yok,
   dokunmatik/trackpad kaydırma yeterli. */
.category-strip { padding: var(--pc-space-3) 0; background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
/* Masaüstünde içerik konteynerden dar olduğu sürece ortalanır (kategoriler
   sayfanın soluna yapışık kalmasın); mobilde (≤768px, aşağıdaki @media)
   taşma ihtimaline karşı sola hizalı + kaydırılabilir kalır. */
.category-strip__inner { display: flex; justify-content: center; gap: var(--pc-space-4); overflow-x: auto; scrollbar-width: none; }
.category-strip__inner::-webkit-scrollbar { display: none; }
.category-strip__item { flex: 0 0 auto; width: 84px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; color: var(--color-text); }
.category-strip__photo {
    width: 76px; height: 76px; border-radius: 50%; overflow: hidden; display: block;
    background: var(--pc-color-neutral-100); border: 1px solid var(--color-border);
}
.category-strip__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.category-strip__item:hover .category-strip__photo { border-color: var(--color-accent); }
.category-strip__label { font-size: 0.75rem; font-weight: 600; line-height: 1.25; }
@media (max-width: 768px) {
    .category-strip__inner { justify-content: flex-start; }
}

@media (max-width: 900px) {
    .promo-grid { grid-template-columns: 1fr; }
    .promo-card--primary { min-height: 400px; }
    .promo-card--primary .promo-card__scrim {
        background: linear-gradient(180deg, var(--pc-color-neutral-100) 0%, var(--pc-color-neutral-100) 36%, rgba(243,237,227,0.72) 55%, rgba(243,237,227,0) 80%);
    }
    .promo-card--fallback .promo-card__scrim {
        background: linear-gradient(180deg, rgba(23,36,26,0.3) 0%, rgba(23,36,26,0.65) 45%, rgba(23,36,26,0.94) 100%);
    }
    .promo-card--primary .promo-card__content { max-width: 100%; padding: var(--pc-space-4); }
    .promo-card__side { flex-direction: row; }
}
@media (max-width: 600px) {
    .promo-card__side { flex-direction: column; }
    .promo-card--side { min-height: 160px; }
}

/* --- Section --- */
.section { padding: var(--space-6) 0; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: var(--space-4); flex-wrap: wrap; gap: var(--space-2); }
.section-head--center { flex-direction: column; align-items: center; text-align: center; gap: var(--pc-space-1); }
/* Başlıklar artık boşlukta "asılı" durmuyor — altına kısa bir aksan çubuğu
   demirliyor (modern e-ticaret/editoryal kalıbı). */
.section-head > h1, .section-head > h2 {
    position: relative;
    padding-bottom: var(--pc-space-3);
}
.section-head > h1::after, .section-head > h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 56px;
    height: 3px;
    border-radius: var(--radius-sm);
    background: var(--color-accent);
}
.section-head--center > h1::after, .section-head--center > h2::after {
    left: 50%;
    transform: translateX(-50%);
}

/* --- Occasion Selector ---
   Creative pass: kategori grid'inin YERİNE geçti — "ne istiyorum" değil
   "kimin için" sorusuna cevap veren, premium pill/segment tasarımı.
   Kart DEĞİL — sessiz, tek satırlık bir seçim şeridi (COS/Aesop'un
   filtre/etiket navigasyonu diline yakın). */
.occasion-section { padding: var(--space-6) 0; background: var(--pc-surface-secondary); }
.occasion-section__eyebrow { color: var(--pc-text-secondary); margin-bottom: var(--pc-space-2); }
.occasion-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--pc-space-3);
    margin-top: var(--space-4);
}
.occasion-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--pc-space-2);
    padding: 12px 22px;
    border-radius: var(--pc-radius-full);
    border: 1px solid var(--pc-border-default);
    background: var(--pc-surface-secondary);
    color: var(--pc-text-primary);
    font-size: 0.9375rem;
    font-weight: var(--pc-font-weight-semibold);
    transition: border-color var(--pc-transition-fast), background-color var(--pc-transition-fast), transform var(--pc-transition-fast);
}
.occasion-pill svg {
    /* Bu SVG'lerde HTML width/height attribute'u yok (viewBox'a göre
       ölçekleniyor) — CSS'te AÇIKÇA boyutlandırılmazsa tarayıcı SVG'yi
       varsayılan replaced-element boyutuna (300x150) düşürür ve tüm
       pill layout'unu bozar. Bu görevde ekran görüntüsüyle yakalandı. */
    width: 20px;
    height: 20px;
    color: var(--pc-text-secondary);
    flex-shrink: 0;
    transition: color var(--pc-transition-fast);
}
.occasion-pill:hover,
.occasion-pill:focus-visible {
    border-color: var(--pc-color-primary);
    background: var(--pc-color-primary-subtle);
    transform: translateY(-1px);
}
.occasion-pill:hover svg,
.occasion-pill:focus-visible svg { color: var(--pc-color-primary); }

/* --- Product Card ---
   Creative Director revizyonu — tam yeniden tasarım. Fotoğraf kartın
   yıldızı (4:5 dikey kadraj, edge-to-edge — COS/Aesop katalog kartı
   dili). İsim kalın/belirgin. Fiyatın hemen üstünde kısa (≤140 karakter,
   bkz. partials/product-card.php) bir açıklama satırı. Fiyat zarif ama net
   (nötr ink rengi — marka yeşili DEĞİL, "sakin lüks" hissi). Eski fiyat
   kırmızı + üstü çizili. CTA masaüstünde hover/focus-within'de belirir,
   dokunmatikte her zaman görünür. */
.product-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--space-4);
}
.product-card {
    position: relative;
    z-index: 1;
    background: var(--pc-surface-secondary);
    border: 1px solid var(--pc-border-subtle);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--pc-elevation-1);
    transition: box-shadow var(--pc-transition-fast), transform var(--pc-transition-base);
    display: flex;
    flex-direction: column;
}
.product-card:hover,
.product-card:focus-within {
    box-shadow: var(--pc-elevation-3);
    transform: translateY(-4px);
    z-index: 2;
}
/* Sırada üzerine gelinen ürün öne çıkıp büyür, aynı sıradaki diğer 4 ürün
   arka planda kalıp %25 küçülür (:has() destekleyen tarayıcılarda —
   desteklemeyende kart sadece yukarıda tanımlı translateY ile yükselir). */
.product-grid:has(.product-card:hover) .product-card,
.product-grid:has(.product-card:focus-within) .product-card {
    transform: scale(0.75);
}
.product-grid:has(.product-card:hover) .product-card:hover,
.product-grid:has(.product-card:focus-within) .product-card:focus-within {
    transform: scale(1.08) translateY(-4px);
    z-index: 3;
}
.product-card__image {
    position: relative;
    aspect-ratio: 4/5;
    overflow: hidden;
}
.product-card__image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform var(--pc-transition-base), filter var(--pc-transition-base);
    -webkit-user-drag: none;
    user-select: none;
    -webkit-touch-callout: none;
}
/* Üzerine gelince önce 2 saniye net halde büyür, sonra bulanıklaşıp etiketler
   belirir (bkz. .product-card__badges altındaki eşleşen gecikme) — imleç
   ayrılınca (bu kural devre dışı kalıp yukarıdaki gecikmesiz kurala döner)
   gecikmesiz anında normale döner. */
.product-card:hover .product-card__image img,
.product-card:focus-within .product-card__image img {
    transform: scale(1.045);
    filter: blur(3px);
    transition: transform var(--pc-transition-base), filter var(--pc-transition-base) 2s;
}
.product-card__image-placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    background: radial-gradient(circle at 50% 38%, #f6efe4 0%, #ebe0cd 100%);
    color: rgba(60, 90, 69, 0.3);
}
.product-card__image-placeholder svg { width: 38%; height: 38%; }
/* Aynı Gün Teslim / Kampanyalı gibi etiketler listede varsayılan olarak
   gizli — fotoğraf üzerine gelindiğinde (fotoğrafın kendisi bulanıklaşırken,
   bkz. .product-card__image img:hover) belirir. Dokunmatik cihazlarda hover
   olmadığı için bilerek gizli KALIR — bu etiketler ürün detay sayfasına
   girildiğinde ayrıca (bkz. product.php .product-detail-badges, her zaman
   görünür) gösteriliyor, listede kalabalık etmesin diye. */
.product-card__badges {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transition: opacity var(--pc-transition-fast);
}
.product-card:hover .product-card__badges,
.product-card:focus-within .product-card__badges {
    opacity: 1;
    transition: opacity var(--pc-transition-fast) 2s;
}
.product-card__badge {
    background: rgba(38, 35, 34, 0.72);
    color: #fff;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: var(--pc-font-weight-semibold);
    padding: 6px 14px;
    border-radius: var(--radius-sm);
    white-space: nowrap;
}
.product-card__badge--out-of-stock { position: absolute; top: var(--pc-space-2); right: var(--pc-space-2); left: auto; }
.product-card__badge--same-day { background: var(--color-accent); }
.product-card__badge--bestseller { background: var(--pc-color-warning-text); }
.product-card__badge--new { background: var(--color-success); }
.product-card__badge--sale { background: var(--color-danger); }
/* Klas/modern kart hiyerarşisi: her blok arası net boşluk (eski --pc-space-1
   4px çok sıkıydı, metinler birbirine karışıyordu) — ayraç çizgisi yerine
   sadece boşluk + renk/ağırlık kontrastı ile katmanlar ayrılır. */
.product-card__body {
    padding: var(--pc-space-4) var(--pc-space-4) var(--pc-space-3);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--pc-space-2);
    text-align: center;
}
.product-card__name {
    font-weight: var(--pc-font-weight-bold);
    color: var(--pc-text-primary);
    font-size: 0.9375rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.product-card__description {
    color: var(--pc-text-secondary);
    font-size: 0.8125rem;
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.product-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: var(--pc-space-2) var(--pc-space-2);
    row-gap: 2px;
    margin-top: var(--pc-space-1);
    font-weight: var(--pc-font-weight-semibold);
    color: var(--pc-text-primary);
    font-size: 1.0625rem;
    transition: transform var(--pc-transition-base);
}
/* Fotoğraf büyürken (bkz. .product-card__image img hover kuralı) fiyat da
   aynı anda hafifçe büyür — gecikme yok, ikisi birlikte hareket eder. */
.product-card:hover .product-card__price,
.product-card:focus-within .product-card__price {
    transform: scale(1.08);
}
/* Eski (kırmızı) fiyat, güncel (siyah) fiyattan daha küçük — asıl ödenecek
   tutar görsel olarak baskın kalır, eski fiyat sadece referans amaçlı. */
.product-card__price del {
    color: var(--color-danger);
    font-weight: var(--pc-font-weight-regular);
    font-size: 0.875rem;
    white-space: nowrap;
}
.product-card__price > span { white-space: nowrap; }
.product-card__discount {
    align-self: center;
    background: var(--color-danger);
    color: #fff;
    font-weight: var(--pc-font-weight-semibold);
    font-size: 0.75rem;
    line-height: 1.3;
    padding: 2px 6px;
    border-radius: var(--pc-radius-sm);
    white-space: nowrap;
}
.product-card__cta {
    padding: var(--pc-space-2) var(--pc-space-4) var(--pc-space-4);
    opacity: 0;
    transition: opacity var(--pc-transition-fast);
}
.product-card:hover .product-card__cta,
.product-card:focus-within .product-card__cta {
    opacity: 1;
}
@media (hover: none) {
    .product-card__cta { opacity: 1; }
}
.btn:disabled { opacity: var(--pc-disabled-opacity); cursor: not-allowed; transform: none; }
.btn:disabled:hover { transform: none; }

/* --- Product detail --- */
.product-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
}
.product-gallery__main {
    position: relative;
    aspect-ratio: 1/1;
    background: var(--color-accent-light);
    border-radius: var(--radius-md);
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
}
.product-gallery__main img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 0.25s ease;
}
/* "Modern hover zoom" — lens değil, imleç konumuna göre büyüyen görsel.
   Yalnızca gerçek fare/hassas imleç cihazlarında devreye girer (bkz.
   product-gallery.js) — mobilde native pinch-zoom'a hiç dokunulmaz. */
@media (hover: hover) and (pointer: fine) {
    .product-gallery__main:hover img { transform: scale(1.8); }
}
.product-gallery__thumbs { display: flex; gap: var(--space-2); margin-top: var(--space-2); }
.product-gallery__thumb {
    padding: 0;
    line-height: 0;
    background: none;
    border: 2px solid transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    overflow: hidden;
}
.product-gallery__thumb.is-active { border-color: var(--color-accent); }
.product-gallery__thumbs img { display: block; width: 72px; height: 72px; object-fit: cover; border-radius: calc(var(--radius-sm) - 2px); }
/* Sağ tık/sürükleme engeli yalnızca UX caydırıcıdır — gerçek dosya güvenliği
   sağlamaz (bkz. uploads/.htaccess referer tabanlı hotlink koruması). */
.product-gallery img {
    -webkit-user-drag: none;
    user-select: none;
    -webkit-touch-callout: none;
}
.product-price-row { display: flex; align-items: baseline; gap: var(--space-2); margin: var(--space-3) 0; }
.product-price-row .price { font-size: 1.75rem; font-weight: 700; color: var(--color-primary-dark); }
.product-price-row .compare { text-decoration: line-through; color: var(--color-text-muted); }
.stock-badge { font-size: 0.8125rem; font-weight: 600; padding: 2px 10px; border-radius: 999px; }
.stock-badge.in-stock { background: var(--color-success-bg); color: var(--color-success); }
.stock-badge.out-stock { background: var(--color-danger-bg); color: var(--color-danger); }
.product-detail-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--pc-space-2); }
.product-detail-badges .product-card__badge { position: static; }
.product-delivery-time { font-size: 0.875rem; color: var(--color-text-muted); }

/* --- Forms --- */
.form-group { margin-bottom: var(--space-3); }
label { display: block; font-weight: 600; margin-bottom: var(--space-1); font-size: 0.9375rem; }
input, select, textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 1rem;
    background: #fff;
    color: var(--color-text);
}
textarea { min-height: 100px; resize: vertical; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.field-error { color: var(--color-danger); font-size: 0.8125rem; margin-top: 4px; }
.form-error-summary {
    background: var(--color-danger-bg);
    color: var(--color-danger);
    border: 1px solid var(--color-danger-border);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    margin-bottom: var(--space-4);
}
.alert-success {
    background: var(--color-success-bg);
    color: var(--color-success);
    border: 1px solid var(--color-success-border);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    margin-bottom: var(--space-4);
}
.checkout-maintenance-notice {
    background: var(--color-warning-bg);
    color: var(--color-warning);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    margin-bottom: var(--space-3);
}
.checkout-maintenance-notice p { margin: 4px 0 0; }
.checkout-region-notice {
    background: var(--pc-color-primary-subtle);
    color: var(--color-primary-dark);
    border-left: 4px solid var(--color-accent);
    border-radius: var(--radius-sm);
    padding: var(--space-4);
    margin-bottom: var(--space-4);
    font-size: 1.125rem;
    font-weight: var(--pc-font-weight-medium);
    line-height: 1.5;
}
.checkout-region-notice strong { color: var(--color-accent); }

.whatsapp-float {
    position: fixed;
    right: var(--pc-space-4);
    bottom: calc(var(--pc-space-4) + env(safe-area-inset-bottom, 0px));
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #25D366;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    z-index: var(--pc-z-dropdown);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.whatsapp-float:hover,
.whatsapp-float:focus-visible {
    background: #1EBE57;
    transform: scale(1.06);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
}
.whatsapp-float svg { fill: #fff; }
@media (max-width: 640px) {
    .whatsapp-float {
        width: 50px;
        height: 50px;
        right: var(--pc-space-3);
        bottom: calc(var(--pc-space-3) + env(safe-area-inset-bottom, 0px));
    }
}
@media (prefers-reduced-motion: reduce) {
    .whatsapp-float { transition: none; }
}

/* --- Üyelik: giriş/kayıt sekmeleri, hesap paneli --- */
.auth-tabs { display: flex; border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-4); }
.auth-tabs__tab {
    flex: 1;
    text-align: center;
    padding: var(--space-3) 0;
    font-weight: 600;
    color: var(--color-text-muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.auth-tabs__tab.active { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.auth-tabs__tab:hover { color: var(--color-text); }

.account-shell { display: grid; grid-template-columns: 220px 1fr; gap: var(--space-5); align-items: start; }
.account-nav { display: flex; flex-direction: column; gap: 2px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-2); }
.account-nav a { padding: 10px 14px; border-radius: var(--radius-sm); color: var(--color-text); }
.account-nav a.active { background: var(--color-accent-light); color: var(--color-accent); font-weight: 600; }
.account-nav a:hover { background: var(--pc-color-bg-surface-muted); }
.account-nav form { margin-top: var(--space-2); border-top: 1px solid var(--color-border); padding-top: var(--space-2); }

.address-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-4); margin-bottom: var(--space-3); }
.address-card__title { font-weight: 700; display: flex; align-items: center; gap: 8px; }
.badge-default { background: var(--color-success-bg); color: var(--color-success); font-size: 0.75rem; font-weight: 700; padding: 2px 10px; border-radius: 999px; }

/* --- Yıldız puanı — sade/zarif, jenerik e-ticaret sarısı yerine marka accent rengi --- */
.star-rating { display: inline-flex; gap: 2px; }
.star-rating__star { color: var(--color-border); font-size: 1rem; line-height: 1; }
.star-rating__star.is-filled { color: var(--color-accent); }

/* --- Yorum kartı (homepage, ürün detay, hesap paneli) --- */
.review-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-4); }
.review-card__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--pc-space-2); gap: var(--pc-space-2); flex-wrap: wrap; }
.review-card__author { font-weight: 600; }
.review-card__meta { color: var(--color-text-muted); font-size: 0.8125rem; }
.review-card__comment { margin: var(--pc-space-2) 0 0; }
.review-card__photo { width: 100%; max-width: 160px; aspect-ratio: 1/1; object-fit: cover; border-radius: var(--radius-sm); margin-top: var(--pc-space-2); display: block; }
.review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-3); }

/* --- Homepage V2: Hediye Notu / Marka Hikayesi — "büyük nefes" bölümleri,
   HOMEPAGE_HIGH_FIDELITY_UI.md'deki Hero/CTA ile aynı --pc-space-7 ritmi --- */
.gift-note-section, .brand-story-section { padding: var(--pc-space-7) 0; }
.gift-note-section__inner, .brand-story-section__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
    align-items: center;
}
.gift-note-section__image, .brand-story-section__image {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: var(--radius-lg);
}
.brand-story-section__inner { grid-template-columns: 1fr 1fr; }
.brand-story-section__inner > div:first-child { order: 2; }
.brand-story-section__inner > img { order: 1; }

/* --- Homepage V2: Instagram grid (CMS ile yönetilen statik görsel grid) --- */
.instagram-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--pc-space-2); }
.instagram-grid__item { display: block; aspect-ratio: 1/1; border-radius: var(--radius-sm); overflow: hidden; }
.instagram-grid__item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--pc-transition-base); }
.instagram-grid__item:hover img { transform: scale(1.05); }

/* --- Homepage V2: Newsletter --- */
.newsletter-section { background: var(--color-accent-light); text-align: center; }
.newsletter-section__inner { max-width: 560px; margin: 0 auto; }
.newsletter-form { display: flex; gap: var(--pc-space-2); margin-top: var(--space-3); max-width: 420px; margin-left: auto; margin-right: auto; }
.newsletter-form input[type="email"] {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: 1rem;
}
@media (max-width: 640px) {
    .gift-note-section__inner, .brand-story-section__inner { grid-template-columns: 1fr; }
    .brand-story-section__inner > div:first-child { order: 1; }
    .brand-story-section__inner > img { order: 2; }
    .newsletter-form { flex-direction: column; }
}

/* --- Genel veri tablosu + durum rozeti (hem admin hem Siparişlerim'de kullanılır) --- */
.data-table, .admin-table { width: 100%; border-collapse: collapse; background: var(--color-surface); border-radius: var(--radius-md); overflow: hidden; }
.data-table th, .data-table td, .admin-table th, .admin-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--color-border); font-size: 0.9375rem; }
.data-table th, .admin-table th { background: var(--pc-color-bg-surface-muted); font-weight: 600; color: var(--color-text-muted); font-size: 0.8125rem; text-transform: uppercase; letter-spacing: var(--pc-letter-spacing-wider); }
/* #faf7f1 kasıtlı olarak token'a bağlanmadı: en yakın token (neutral-50 / #faf6f0) 1 birim
   farklı bir ton, birebir eşleşme sağlamadan değiştirmek görsel bir sapma yaratırdı. */
.data-table tr:hover td, .admin-table tr:hover td { background: #faf7f1; }

.status-pill { padding: 3px 10px; border-radius: var(--pc-radius-full); font-size: var(--pc-font-size-2xs); font-weight: var(--pc-font-weight-bold); display: inline-block; }
.status-pending { background: var(--pc-color-warning-bg); color: var(--pc-color-warning-text); }
.status-confirmed { background: var(--pc-color-info-bg); color: var(--pc-color-info-text); }
.status-preparing { background: var(--pc-color-status-preparing-bg); color: var(--pc-color-status-preparing-text); }
.status-out_for_delivery { background: var(--pc-color-status-transit-bg); color: var(--pc-color-status-transit-text); }
.status-delivered { background: var(--pc-color-emerald-50); color: var(--pc-color-emerald-700); }
.status-cancelled { background: var(--pc-color-danger-bg); color: var(--pc-color-red-700); }

@media (max-width: 768px) {
    .account-shell { grid-template-columns: 1fr; }
    .account-nav { flex-direction: row; overflow-x: auto; }
}

/* --- Cart / checkout tables --- */
.cart-table { width: 100%; border-collapse: collapse; }
.cart-table th, .cart-table td { text-align: left; padding: var(--space-3); border-bottom: 1px solid var(--color-border); }
.cart-table img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--radius-sm); }
.qty-input { width: 70px; }
.summary-box {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
}
.summary-row { display: flex; justify-content: space-between; margin-bottom: var(--space-2); }
.summary-row.total { font-weight: 700; font-size: 1.125rem; border-top: 1px solid var(--color-border); padding-top: var(--space-2); margin-top: var(--space-2); }

.checkout-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-5); align-items: start; }

/* --- Trust strip ---
   Dolu, marka rengi (accent) dairesi içinde beyaz ikon + kalın etiket —
   önceki ince outline-icon halinden daha "modern"/göze çarpan bir onay
   damgası bandı. */
.trust-strip {
    background: var(--pc-surface-tertiary);
    border-top: 1px solid var(--pc-border-subtle);
    border-bottom: 1px solid var(--pc-border-subtle);
    padding: var(--space-4) 0;
}
.trust-strip__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--pc-space-7);
    flex-wrap: wrap;
}
.trust-item {
    display: flex;
    align-items: center;
    gap: var(--pc-space-3);
    font-size: 0.9375rem; /* .text-label ölçeği */
    font-weight: var(--pc-font-weight-semibold);
    color: var(--pc-text-secondary);
}
.trust-item__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- Footer ---
   Creative pass: daha hafif his — kolonlar arası boşluk artırıldı (24→64px),
   başlıklar bold h4 yerine küçük/geniş-aralıklı bir "eyebrow" etiketine
   dönüştürüldü, link opaklığı azaltıldı (metin yoğunluğu düşsün diye). */
.site-footer { background: var(--color-primary-dark); color: rgba(255,255,255,0.8); padding: calc(var(--pc-space-7) + var(--pc-space-1)) 0 var(--space-4); margin-top: var(--space-6); }
.footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--pc-space-6); margin-bottom: var(--pc-space-6); }
.site-footer h4 {
    color: rgba(255,255,255,0.9);
    font-size: 0.75rem;
    font-weight: var(--pc-font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--pc-space-3);
}
.site-footer a { color: rgba(255,255,255,0.62); display: block; margin-bottom: var(--pc-space-2); font-size: 0.9375rem; }
.site-footer a:hover { color: #fff; }
.footer-bottom { text-align: center; padding-top: var(--space-4); border-top: 1px solid rgba(255,255,255,0.12); font-size: 0.8125rem; color: rgba(255,255,255,0.5); }
.footer-logo { height: 32px; width: auto; margin-bottom: var(--pc-space-3); }
.footer-social { display: flex; gap: var(--pc-space-3); margin-top: var(--pc-space-2); }
.footer-social a { margin-bottom: 0; }
.brand__logo { height: 32px; width: auto; display: block; }

/* --- Misc --- */
.text-center { text-align: center; }
.mt-4 { margin-top: var(--space-4); }
.mb-4 { margin-bottom: var(--space-4); }
.empty-state { text-align: center; padding: var(--space-6) 0; color: var(--color-text-muted); }
.gift-note-box { background: var(--color-accent-light); border-radius: var(--radius-sm); padding: var(--space-3); margin-top: var(--space-3); }

/* =========================================================
   Responsive
   =========================================================
   NOT: Aşağıdaki piksel değerleri tokens.css → "12. BREAKPOINT TOKENS"
   bölümündeki --pc-breakpoint-lg (1024px) / --pc-breakpoint-md (768px) /
   --pc-breakpoint-sm (480px) ile birebir eşleşir. CSS custom property'ler
   @media koşulu içinde kullanılamadığı için (spesifikasyon kısıtı) burada
   sabit değer yazılmaya devam eder — bu üçü DEĞİŞTİRİLİRSE token'lar da
   güncellenmelidir (bkz. docs/DESIGN_SYSTEM.md → "Responsive Kuralları").
   ========================================================= */
@media (max-width: 1024px) {
    .product-grid { grid-template-columns: repeat(4, 1fr); }
    .hero__inner { grid-template-columns: 1fr; }
    .hero-visual { order: -1; aspect-ratio: 16/9; }
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    /* Hamburger menü devreye girer, masaüstü nav'ı gizlenir. */
    .main-nav--desktop { display: none; }
    .nav-toggle__btn { display: flex; }
    .main-nav--mobile {
        display: none;
        position: absolute;
        top: calc(100% + 1px);
        left: 0; right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background: var(--color-surface);
        border: 1px solid var(--pc-border-subtle);
        border-radius: var(--radius-md);
        box-shadow: var(--pc-elevation-3);
        padding: var(--space-3);
    }
    .nav-toggle[open] .main-nav--mobile { display: flex; }
    .main-nav a { padding: var(--space-3) var(--space-2); border-radius: var(--radius-sm); }
    .main-nav a:hover, .main-nav a:focus-visible { background: var(--pc-color-bg-surface-muted); }

    .nav-search--desktop { display: none; }
    .nav-search--mobile {
        display: flex;
        margin-top: var(--space-2);
        padding-top: var(--space-3);
        border-top: 1px solid var(--pc-border-subtle);
    }
    .nav-search--mobile input[type="search"] {
        flex: 1;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-sm);
        padding: 10px 12px;
    }
    .nav-search__submit {
        display: flex; align-items: center; justify-content: center;
        width: 40px; height: 40px; border-radius: var(--radius-sm);
        color: var(--pc-text-secondary); flex-shrink: 0;
    }

    .product-grid { grid-template-columns: repeat(2, 1fr); }
    .product-detail, .checkout-layout { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; }

    /* Tablette 96px'lik masaüstü aralığı sığmaz — daralt, sıraya devam et */
    .trust-strip__inner { gap: var(--space-5); }
}

@media (max-width: 480px) {
    .product-grid { grid-template-columns: 1fr 1fr; gap: var(--space-2); }
    .container { padding: 0 var(--space-3); }
    .hero { padding: var(--space-5) 0; }
    .footer-grid { grid-template-columns: 1fr; }

    /* 2 sütunlu dar kartlarda iki fiyat bir satıra sığmıyordu — aralık daraltılıp
       biraz küçültülür, satır dışına taşmaz. */
    .product-card__price { gap: var(--pc-space-1); font-size: 0.9375rem; }
    .product-card__price del { font-size: 0.8125rem; }
    .product-card__discount { font-size: 0.6875rem; padding: 1px 5px; }

    /* Cepte 3 öğe yan yana sığmaz — dikey istifle, sola hizala */
    .trust-strip__inner { flex-direction: column; align-items: flex-start; gap: var(--pc-space-2); }
}
