/* =========================================================
   Kaldeniz Liman Makinaları - Kurumsal site stilleri
   Logo renkleri: Mavi #0F6997 (ana renk, açık/koyu tonları), Turuncu #F08800 (vurgu, açık/koyu tonları)
   Lacivert #1F335E yalnızca birkaç küçük vurguda kullanılır (site genelinde < %3).
   ========================================================= */
:root {
  --kd-blue: #0F6997;
  --kd-blue-dark: #0B5278;
  --kd-blue-darker: #083F5C;
  --kd-blue-light: #1A80B5;
  --kd-blue-soft: #E6F2F8;
  --kd-orange: #F08800;
  --kd-orange-dark: #D97A00;
  --kd-orange-light: #FFA733;
  --kd-orange-soft: #FFF4E5;
  --kd-orange-deep: #A85800;   /* koyu turuncu: açık zeminde yazı + beyaz yazılı dolgular (WCAG AA ≥ 4,5:1) */
  --kd-navy: #1F335E;
  --kd-soft: #F3F7FA;
  --kd-soft-2: #E7EEF4;
  --kd-text: #1F2937;
  --kd-muted: #646B79;
  --kd-border: #D9E4EC;
  --kd-radius: 12px;
  --kd-shadow: 0 6px 24px rgba(15, 105, 151, .10);
  --kd-shadow-sm: 0 2px 8px rgba(15, 105, 151, .06);

  --bs-primary: #0F6997;
  --bs-primary-rgb: 15, 105, 151;
  --bs-link-color: #0F6997;
  --bs-link-color-rgb: 15, 105, 151;
  --bs-link-hover-color: #0B5278;
  --bs-link-hover-color-rgb: 11, 82, 120;
  --bs-body-color: #1F2937;
  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-border-color: #D9E4EC;
  --bs-font-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body { background: #fff; color: var(--kd-text); font-family: var(--bs-body-font-family); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { color: var(--kd-blue-dark); font-weight: 700; letter-spacing: -.01em; }
a { text-decoration: none; }
a:hover { text-decoration: underline; }
mark { background: #FFE8C2; padding: 0 .1em; border-radius: 3px; }
.text-navy { color: var(--kd-blue-dark) !important; }
.text-blue { color: var(--kd-blue) !important; }
.text-orange { color: var(--kd-orange-deep) !important; }
.bg-blue { background: var(--kd-blue) !important; }
.bg-soft { background: var(--kd-soft) !important; }
.bg-orange { background: var(--kd-orange) !important; }
.fw-600 { font-weight: 600; }
.fw-800 { font-weight: 800; }
.small-caps { text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; font-weight: 700; }

/* ---- Bootstrap bileşen teması ---- */
.btn { border-radius: 10px; font-weight: 600; }
.btn-primary { --bs-btn-bg: var(--kd-blue); --bs-btn-border-color: var(--kd-blue); --bs-btn-hover-bg: var(--kd-blue-dark); --bs-btn-hover-border-color: var(--kd-blue-dark); --bs-btn-active-bg: var(--kd-blue-darker); --bs-btn-active-border-color: var(--kd-blue-darker); --bs-btn-disabled-bg: #7FB0C8; --bs-btn-disabled-border-color: #7FB0C8; }
.btn-outline-primary { --bs-btn-color: var(--kd-blue); --bs-btn-border-color: var(--kd-blue); --bs-btn-hover-bg: var(--kd-blue); --bs-btn-hover-border-color: var(--kd-blue); --bs-btn-active-bg: var(--kd-blue-dark); --bs-btn-active-border-color: var(--kd-blue-dark); }
.btn-accent { --bs-btn-color: #fff; --bs-btn-bg: var(--kd-orange-deep); --bs-btn-border-color: var(--kd-orange-deep); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #8F4B00; --bs-btn-hover-border-color: #8F4B00; --bs-btn-active-color: #fff; --bs-btn-active-bg: #8F4B00; --bs-btn-active-border-color: #8F4B00; --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #F5B866; --bs-btn-disabled-border-color: #F5B866; }
.btn-outline-accent { --bs-btn-color: var(--kd-orange-deep); --bs-btn-border-color: var(--kd-orange); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--kd-orange-deep); --bs-btn-hover-border-color: var(--kd-orange-deep); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--kd-orange-dark); --bs-btn-active-border-color: var(--kd-orange-dark); }
.btn-light-orange { --bs-btn-color: var(--kd-orange-deep); --bs-btn-bg: var(--kd-orange-soft); --bs-btn-border-color: var(--kd-orange-soft); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--kd-orange-deep); --bs-btn-hover-border-color: var(--kd-orange-deep); }
.form-control, .form-select { border-radius: 10px; border-color: var(--kd-border); padding: .6rem .85rem; }
.form-control:focus, .form-select:focus { border-color: var(--kd-blue); box-shadow: 0 0 0 .2rem rgba(15, 105, 151, .15); }
.card { border: 1px solid var(--kd-border); border-radius: var(--kd-radius); }
.badge { font-weight: 600; }
.badge.text-bg-primary { background-color: var(--kd-blue) !important; }
.pagination { --bs-pagination-color: var(--kd-blue); --bs-pagination-active-bg: var(--kd-blue); --bs-pagination-active-border-color: var(--kd-blue); --bs-pagination-hover-color: var(--kd-blue-dark); --bs-pagination-focus-color: var(--kd-blue-dark); --bs-pagination-border-radius: 8px; }
.breadcrumb { --bs-breadcrumb-divider-color: #9AA5B5; font-size: .875rem; }
.breadcrumb-item a { color: var(--kd-muted); }
.breadcrumb-item.active { color: var(--kd-blue-dark); font-weight: 600; }
.alert { border-radius: 10px; }
.nav-pills .nav-link.active { background: var(--kd-blue); }
.nav-pills .nav-link { color: var(--kd-blue); font-weight: 600; }
.list-group-item.active { background: var(--kd-blue); border-color: var(--kd-blue); }
.table > :not(caption) > * > * { padding: .7rem .75rem; }
.table thead th { background: var(--kd-soft); color: var(--kd-blue-dark); font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .04em; border-bottom: 2px solid var(--kd-border); }

/* ---- Üst bar ---- */
.topbar { background: var(--kd-blue-darker); color: #CFE3EE; font-size: .8125rem; }
.topbar a { color: #E9F3F8; }
.topbar a:hover { color: var(--kd-orange-light); text-decoration: none; }
.topbar .rate { color: #fff; font-weight: 600; white-space: nowrap; }
.topbar .rate .rate-code { color: var(--kd-orange-light); font-weight: 700; }
.topbar .rate small { color: #A9CBDC; font-weight: 400; }
/* Alt bilgi kur tablosu: para birimi × seçilen kur türleri */
.footer-rates table { border-collapse: collapse; }
.footer-rates th { color: #A9CBDC; font-weight: 400; font-size: .75rem; padding: 0 0 .15rem .9rem; text-align: right; white-space: nowrap; }
.footer-rates td { color: #fff; padding: .1rem 0 .1rem .9rem; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.footer-rates td.fr-code { padding-left: 0; text-align: left; font-weight: 700; color: var(--kd-orange-light); }

/* ---- Başlık ---- */
.site-header { background: #fff; border-bottom: 1px solid var(--kd-border); position: relative; z-index: 1031; }
.site-header .logo img { height: 64px; width: auto; }
.header-search { position: relative; }
.header-search .form-control { height: 50px; border-radius: 12px 0 0 12px; border: 2px solid var(--kd-blue); border-right: 0; font-size: 1rem; }
.header-search .form-control:focus { box-shadow: none; border-color: var(--kd-blue); }
.header-search .btn { height: 50px; border-radius: 0 12px 12px 0; padding: 0 1.25rem; font-size: 1.05rem; }
.header-action { color: var(--kd-blue-dark); font-weight: 600; font-size: .875rem; display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border-radius: 10px; }
.header-action:hover { background: var(--kd-blue-soft); text-decoration: none; }
.header-action i { font-size: 1.35rem; }
.cart-badge { position: absolute; top: -6px; right: -8px; background: var(--kd-orange); color: #fff; font-size: .7rem; font-weight: 700; min-width: 20px; height: 20px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }

/* Otomatik tamamlama */
.suggest-box { position: absolute; z-index: 1050; left: 0; right: 0; top: calc(100% + 6px); background: #fff; border: 1px solid var(--kd-border); border-radius: 12px; box-shadow: var(--kd-shadow); overflow: hidden; display: none; }
.suggest-box.show { display: block; }
.suggest-item { display: flex; gap: .75rem; align-items: center; padding: .55rem .85rem; border-bottom: 1px solid var(--kd-soft-2); color: var(--kd-text); }
.suggest-item:hover, .suggest-item.active { background: var(--kd-soft); text-decoration: none; }
.suggest-item img { width: 44px; height: 44px; object-fit: contain; border: 1px solid var(--kd-soft-2); border-radius: 8px; background: #fff; }
.suggest-item .t { font-weight: 600; font-size: .875rem; color: var(--kd-blue-dark); }
.suggest-item .s { font-size: .75rem; color: var(--kd-muted); }
.suggest-more { display: block; padding: .6rem .85rem; text-align: center; font-weight: 600; font-size: .875rem; background: var(--kd-soft); }
/* Öneri kutusunda sonuç yok: arama sayfasındaki boş-durum iletisi (ziyaretçi üyelik çağrısı / müşteri talep çağrısı) */
.suggest-empty { padding: 1rem .85rem .9rem; text-align: center; border-bottom: 1px solid var(--kd-soft-2); }
.suggest-empty > i { font-size: 1.6rem; color: var(--kd-muted); display: block; line-height: 1; margin-bottom: .35rem; }
.suggest-empty .t { font-weight: 700; font-size: .9rem; color: var(--kd-blue-dark); }
.suggest-empty .s { font-size: .8rem; color: var(--kd-muted); margin: .2rem auto .65rem; max-width: 520px; white-space: normal; }
/* Arama formundaki .btn kuralları (yükseklik 50/60 px, tek taraflı köşe) öneri kutusundaki düğmeye uygulanmasın */
.suggest-box .suggest-empty .btn { height: auto; border-radius: 999px; padding: .45rem 1.1rem; font-size: .875rem; line-height: 1.3; display: inline-flex; align-items: center; }

/* ---- Ana menü ---- */
.site-nav { background: var(--kd-blue); }
.site-nav .navbar-nav .nav-link { color: #EAF4F9; font-weight: 600; padding: .85rem 1rem; position: relative; }
.site-nav .navbar-nav .nav-link:hover, .site-nav .navbar-nav .nav-link.active { color: #fff; }
.site-nav .navbar-nav .nav-link.active::after, .site-nav .navbar-nav .nav-link:hover::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: 6px; height: 3px; background: var(--kd-orange); border-radius: 2px; }
.site-nav .navbar-toggler { border-color: rgba(255,255,255,.3); }
.site-nav .navbar-toggler-icon { filter: invert(1); }
.site-nav .nav-cta { background: var(--kd-orange-deep); color: #fff !important; border-radius: 8px; padding: .5rem 1rem !important; margin: .4rem 0; }
.site-nav .nav-cta::after { display: none !important; }
.site-nav .nav-cta:hover { background: var(--kd-orange-dark); }

/* ---- Hero ---- */
.hero { background: radial-gradient(1200px 400px at 80% -20%, var(--kd-blue-light) 0%, transparent 60%), linear-gradient(135deg, var(--kd-blue) 0%, var(--kd-blue-dark) 60%, var(--kd-blue-darker) 100%); color: #fff; position: relative; overflow: hidden; overflow-x: clip; overflow-y: visible; }
.hero::before { content: ""; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M0 59h60M59 0v60' stroke='%23ffffff' stroke-opacity='.06' fill='none'/%3E%3C/svg%3E"); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: linear-gradient(90deg, var(--kd-orange-light), var(--kd-orange), var(--kd-orange-dark)); }
.hero .container { position: relative; }
.hero h1 { color: #fff; font-size: clamp(1.7rem, 3.4vw, 2.7rem); font-weight: 800; line-height: 1.15; }
.hero .lead { color: #D4E7F1; font-size: 1.05rem; }
.hero .lead strong { color: #fff; font-weight: 700; }
/* Arama kutusu altı not: bulunamayan parça için talep formu bağlantısı */
.hero .slogan { color: var(--kd-orange-light); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: .8rem; }
.hero-search { position: relative; z-index: 5; }
.hero-search .suggest-box { top: calc(100% + 8px); max-height: 420px; overflow-y: auto; }
.hero-search .form-control { height: 60px; font-size: 1.1rem; border: 0; border-radius: 14px 0 0 14px; padding-left: 1.2rem; }
.hero-search .btn { height: 60px; border-radius: 0 14px 14px 0; padding: 0 1.6rem; font-size: 1.05rem; white-space: nowrap; }
.header-search .btn { white-space: nowrap; }
.hero-search .form-control:focus { box-shadow: none; }
.hero .chips a { display: inline-block; background: rgba(255,255,255,.12); color: #EAF4F9; border: 1px solid rgba(255,255,255,.2); padding: .3rem .75rem; border-radius: 999px; font-size: .8125rem; margin: .25rem .25rem 0 0; }
.hero .chips a:hover { background: var(--kd-orange-deep); border-color: var(--kd-orange-deep); color: #fff; text-decoration: none; }
.hero-stats { display: flex; gap: 2rem; flex-wrap: wrap; }
.hero-stats .num { font-size: 1.6rem; font-weight: 800; color: #fff; line-height: 1; }
.hero-stats .lbl { font-size: .8rem; color: #A9CBDC; }
/* Hero istatistik ikonları biraz daha büyük (uzaktan seçilsin) + dünya ikonunun köşesinde turuncu kamyon rozeti (sevkiyat) */
.hero-stats .num { height: 2rem; display: flex; align-items: flex-end; }
.hero-stats .num > i, .hero-stats .num .ico-badge { font-size: 2rem; }
.hero-stats .num .stat-ico { font-size: 1.7rem; margin-right: .45rem; color: var(--kd-orange); }   /* sayaçlı maddede yedek parça ikonu */
.hero-stats .num .unit { font-size: .95rem; font-weight: 700; margin-left: .3rem; color: #EAF4F9; align-self: flex-end; padding-bottom: .12rem; }
.ico-badge { position: relative; display: inline-block; line-height: 1; }
.ico-badge .badge-mini { position: absolute; right: -.5em; bottom: -.3em; width: 1.05em; height: 1.05em; border-radius: 50%; background: var(--kd-orange); color: #fff; font-size: .55em; display: flex; align-items: center; justify-content: center; border: 2px solid #0B5278; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.hero-art { position: relative; }
.hero-art img { max-width: 100%; filter: drop-shadow(0 20px 30px rgba(0,0,0,.3)); border-radius: 18px; background: #fff; padding: 18px; }

/* ---- Bölümler ---- */
.section { padding: 3.5rem 0; }
.section-title { font-size: 1.6rem; font-weight: 800; color: var(--kd-blue-dark); margin-bottom: .35rem; }
.section-sub { color: var(--kd-muted); margin-bottom: 1.75rem; }
.section-title .accent { color: var(--kd-orange-deep); }

/* Süreç adımları */
.step { background: #fff; border: 1px solid var(--kd-border); border-radius: var(--kd-radius); padding: 1.5rem; height: 100%; position: relative; transition: transform .2s, box-shadow .2s; border-top: 4px solid var(--kd-orange-light); }
.step:hover { transform: translateY(-3px); box-shadow: var(--kd-shadow); border-top-color: var(--kd-orange); }
.step .n { width: 40px; height: 40px; border-radius: 12px; background: var(--kd-orange-soft); color: var(--kd-orange-deep); font-weight: 800; display: inline-flex; align-items: center; justify-content: center; margin-bottom: .9rem; }
.step h5 { font-size: 1.05rem; }
.step p { color: var(--kd-muted); font-size: .9rem; margin: 0; }

/* Hizmet kartları */
.service-card { background: #fff; border: 1px solid var(--kd-border); border-radius: var(--kd-radius); padding: 1.35rem; height: 100%; display: flex; gap: 1rem; align-items: flex-start; transition: transform .2s, box-shadow .2s, border-color .2s; }
.service-card:hover { transform: translateY(-3px); box-shadow: var(--kd-shadow); border-color: var(--kd-blue-light); }
.service-card .ic { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 12px; background: var(--kd-blue-soft); color: var(--kd-blue); display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; }
.service-card:nth-child(even) .ic { background: var(--kd-orange-soft); color: var(--kd-orange-dark); }
.service-card h6 { margin: 0 0 .25rem; font-size: .98rem; }
.service-card p { margin: 0; color: var(--kd-muted); font-size: .85rem; }
/* Hizmet kutusu = iletişim formu bağlantısı (konu kutunun başlığıyla dolu gelir); üzerine gelince sağ üstte ok belirir */
a.service-card { position: relative; color: inherit; text-decoration: none; }
a.service-card .go { position: absolute; top: .7rem; right: .8rem; color: var(--kd-blue); font-size: 1rem; opacity: 0; transform: translateX(-4px); transition: opacity .2s, transform .2s; }
a.service-card:hover .go, a.service-card:focus-visible .go { opacity: 1; transform: none; }
a.service-card:focus-visible { outline: 3px solid rgba(15,105,151,.35); outline-offset: 2px; }

/* Ürün kartı */
.product-card { border: 1px solid var(--kd-border); border-radius: var(--kd-radius); background: #fff; height: 100%; display: flex; flex-direction: column; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.product-card:hover { transform: translateY(-3px); box-shadow: var(--kd-shadow); }
.product-card .img { aspect-ratio: 1 / 1; background: #fff; display: flex; align-items: center; justify-content: center; padding: 14px; border-bottom: 1px solid var(--kd-soft-2); }
.product-card .img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.product-card .body { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; flex: 1; }
.product-card .sku { font-size: .75rem; color: var(--kd-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.product-card .title { font-weight: 600; font-size: .9rem; color: var(--kd-blue-dark); line-height: 1.35; margin: .25rem 0 .6rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-card .title a { color: inherit; }
.product-card .actions { margin-top: auto; display: flex; gap: .5rem; }
.brand-pill { display: inline-block; background: var(--kd-orange-soft); color: var(--kd-orange-deep); font-size: .7rem; font-weight: 700; padding: .15rem .5rem; border-radius: 6px; text-transform: uppercase; letter-spacing: .04em; }

/* Marka şeridi */
.brand-strip { background: var(--kd-soft); border-top: 1px solid var(--kd-border); border-bottom: 1px solid var(--kd-border); }
.brand-strip .b { display: inline-block; padding: .45rem 1rem; background: #fff; border: 1px solid var(--kd-border); border-radius: 10px; font-weight: 700; color: var(--kd-blue-dark); margin: .3rem; }
.brand-strip .b:hover { border-color: var(--kd-orange); color: var(--kd-orange-deep); text-decoration: none; }

/* Arama sonuçları (Google mantığı) */
.result { display: flex; gap: 1.1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--kd-soft-2); }
.result .thumb { flex: 0 0 112px; width: 112px; height: 112px; border: 1px solid var(--kd-border); border-radius: 10px; background: #fff; display: flex; align-items: center; justify-content: center; padding: 6px; }
.result .thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.result .body { flex: 1; min-width: 0; }
.result .url { font-size: .78rem; color: #1A7F3C; word-break: break-all; }
.result h3 { font-size: 1.15rem; margin: .15rem 0 .3rem; font-weight: 600; }
.result h3 a { color: var(--kd-blue); }
.result h3 a:hover { text-decoration: underline; color: var(--kd-blue-dark); }
.result .desc { font-size: .9rem; color: #4B5563; margin-bottom: .5rem; }
.result .meta { font-size: .78rem; color: var(--kd-muted); display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.result .meta .badge { font-size: .7rem; }
@media (max-width: 575.98px) { .result .thumb { flex-basis: 80px; width: 80px; height: 80px; } .result h3 { font-size: 1rem; } }

/* Ürün detay */
.product-gallery { border: 1px solid var(--kd-border); border-radius: var(--kd-radius); background: #fff; padding: 1.5rem; display: flex; align-items: center; justify-content: center; min-height: 360px; }
.product-gallery img { max-width: 100%; max-height: 480px; object-fit: contain; }
.spec-table th { width: 40%; color: var(--kd-muted); font-weight: 600; background: var(--kd-soft); }
.qty-input { width: 120px; }
.qty-group .btn { width: 42px; }
/* Küçük adet kutusu (teklif sepeti, katalog dışı kalem): dar − / + düğmeleri, 9999 tam okunur; − / + varken sayı kutusunun ok tuşları gizli */
.qty-mini { display: flex; width: max-content; flex-wrap: nowrap; }
.qty-mini .btn { width: 28px; padding: 0; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.qty-mini .form-control { flex: 0 0 3.5rem; width: 3.5rem; padding-left: .2rem; padding-right: .2rem; font-weight: 600; font-variant-numeric: tabular-nums; -moz-appearance: textfield; appearance: textfield; }
.qty-mini .form-control::-webkit-outer-spin-button, .qty-mini .form-control::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sticky-side { position: sticky; top: 1rem; }

/* Ürünler kenar çubuğu (müşteri girişli): marka listesi ürün listesi boyunda, fazlası kutu içinde kayar; ▼ düğmesi aşağı kaydırır (site.js data-brand-fit).
   Kaydırma çubuğu gösterilmez (kullanıcı isteği) — liste ▼ düğmesi, fare tekerleği / dokunma ve klavyeyle kayar */
.list-group.is-fit { overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
.list-group.is-fit::-webkit-scrollbar { display: none; }
.brand-more { display: flex; align-items: center; justify-content: center; width: 100%; margin-top: .5rem; padding: .3rem 0; border: 1px solid var(--kd-border); border-radius: 8px; background: var(--kd-soft); color: var(--kd-blue); font-size: 1rem; line-height: 1; }
.brand-more:hover:not(:disabled), .brand-more:focus-visible { background: var(--kd-blue); border-color: var(--kd-blue); color: #fff; }
.brand-more:disabled { opacity: .4; cursor: default; }

/* Sepet */
.cart-thumb { width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--kd-border); border-radius: 8px; background: #fff; padding: 3px; }
/* Katalog dışı kalem (sistemde olmayan parça): sepette tablonun altındaki panel (boş sepette kutu), arama boş sonucundaki form */
.custom-item { padding: .75rem 1rem .85rem; border-top: 1px solid var(--kd-border); background: var(--kd-soft); }
.custom-item.is-box { border: 1px solid var(--kd-border); border-radius: 10px; }
.custom-item .ci-head { font-weight: 600; font-size: .9rem; color: var(--kd-blue-dark); margin-bottom: .5rem; }
.custom-item .ci-head .ci-sub { font-weight: 400; font-size: .8rem; color: var(--kd-muted); }
/* Sepet satırındaki "Katalog dışı kalem" etiketi: tıklanınca satır panelde düzenlenir (görünüm etiketle aynı, üzerine gelince turuncu + alt çizgi) */
.ci-edit { display: inline-flex; align-items: center; padding: 0; border: 0; background: none; color: inherit; font: inherit; line-height: inherit; cursor: pointer; }
.ci-edit:hover, .ci-edit:focus-visible { color: var(--kd-orange-dark); text-decoration: underline; }
.custom-item .form-control-sm { padding: .25rem .5rem; border-radius: 8px; }   /* genel .form-control dolgusu küçük kutuyu büyütüyordu: adet kutusu ve düğmeyle aynı 31 px */
.custom-item-search { max-width: 640px; margin: 0 auto; }
/* Teklif kalemleri (müşteri ekranı + yazdırma; e-posta: Quote::emailItemsTable): Excel düzeni, açık gri ince çizgiler.
   Sıra No · Parça No · Parça Adı · Miktar · Birim Fiyat · Tutar · Tahmini Teslim Tarihi; resim yalnız görseli olan üründe */
.table.qitems { --qi-line: #E3E9F0; border-collapse: collapse; font-size: .9rem; }
.table.qitems > :not(caption) > * > * { border: 1px solid var(--qi-line); padding: .5rem .65rem; vertical-align: middle; box-shadow: none; }
.table.qitems > thead > tr > th { background: #F3F6FA; color: var(--kd-blue-dark); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; line-height: 1.25; white-space: nowrap; }   /* başlıklar tek satır (04.11.2026) */
.qitems .qi-no { font-weight: 700; width: 1%; white-space: nowrap; }
.qitems .qi-sku, .qitems .qi-num { white-space: nowrap; font-variant-numeric: tabular-nums; }
.qitems .qi-name { min-width: 220px; }
/* Giriş kısıtı (data-only): izin verilmeyen karakter reddedilince kutu kısa süre kırmızı yanar */
.form-control.only-rej { border-color: #dc3545 !important; box-shadow: 0 0 0 .2rem rgba(220,53,69,.22) !important; transition: none; }
/* Tıklanabilir satır (Tekliflerim): üzerine gelince açık mavi, klavye odağında çerçeve */
.table > tbody > tr.row-link { cursor: pointer; }
.table > tbody > tr.row-link:hover > *, .table > tbody > tr.row-link:focus-visible > * { --bs-table-bg-state: #EAF4FA; }
.table > tbody > tr.row-link:focus-visible { outline: 2px solid var(--kd-blue); outline-offset: -2px; }
/* Okunaklı ipucu (data-bs-custom-class="kd-tip"): koyu lacivert zemin, büyük yazı, geniş */
.tooltip.kd-tip { --bs-tooltip-bg: var(--kd-navy); --bs-tooltip-color: #fff; --bs-tooltip-font-size: .875rem; --bs-tooltip-max-width: 320px; --bs-tooltip-padding-x: .8rem; --bs-tooltip-padding-y: .5rem; --bs-tooltip-opacity: 1; }
.tooltip.kd-tip .tooltip-inner { line-height: 1.4; text-align: left; box-shadow: 0 8px 22px rgba(8,63,92,.28); }
/* Marka etiketi: Parça Adı'nın altında küçük ve soluk (aynı parça no farklı markada olabilir) — sepet, Teklif Al, teklif tablosu */
.part-brand { font-size: .75rem; font-weight: 400; line-height: 1.25; color: var(--kd-muted); margin-top: 1px; }
@media (max-width: 575.98px) { .qitems .qi-name { min-width: 170px; } }   /* telefonda tablo kart içinde yana kayar; ad sütunu biraz daralır */
.qitems .qi-name-in { display: flex; align-items: center; gap: .6rem; }
.qitems .qi-img { flex: 0 0 auto; width: 44px; height: 44px; object-fit: contain; border: 1px solid var(--qi-line); border-radius: 6px; background: #fff; padding: 2px; }
/* Özet satırları (ara toplam … genel toplam): dikey çizgi yok, değer Tutar sütununun altında */
.table.qitems > tfoot > tr > td { border-width: 0 0 1px; color: var(--kd-muted); }
.table.qitems > tfoot > tr > td.qi-num { color: var(--kd-text); }
.table.qitems > tfoot > tr.qi-grand > td { background: #F3F6FA; border-bottom: 0; }

/* Teklif durum şeridi */
.timeline { display: flex; gap: .5rem; flex-wrap: wrap; }
.timeline .tl { flex: 1; min-width: 120px; text-align: center; padding: .6rem .5rem; border-radius: 10px; background: var(--kd-soft); color: var(--kd-muted); font-size: .8rem; font-weight: 600; }
.timeline .tl.done { background: var(--kd-blue-soft); color: var(--kd-blue); }
.timeline .tl.current { background: var(--kd-orange); color: #fff; }
.timeline .tl i { display: block; font-size: 1.2rem; margin-bottom: .2rem; }
.countdown { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; font-size: 1.35rem; color: var(--kd-orange-deep); }
.bank-card { border: 1px solid var(--kd-border); border-left: 5px solid var(--kd-orange); border-radius: 10px; padding: 1rem 1.2rem; background: #fff; }
.bank-card .iban { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; color: var(--kd-navy); font-size: 1.05rem; letter-spacing: .02em; }

/* Giriş kutusu */
.auth-card { max-width: 480px; margin: 0 auto; }
.code-input { font-size: 2rem; letter-spacing: .6em; text-align: center; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

/* İletişim */
.contact-box { background: var(--kd-soft); border-radius: var(--kd-radius); padding: 1.5rem; height: 100%; border-bottom: 3px solid var(--kd-orange-light); }
.contact-box i { color: var(--kd-orange); font-size: 1.5rem; }
.map-card { overflow: hidden; display: flex; flex-direction: column; }
.map-card .map-wrap { flex: 1; min-height: 340px; position: relative; background: var(--kd-soft); }
.map-card .map-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 991.98px) { .map-card .map-wrap { min-height: 300px; } }

/* CTA bandı */
.cta-band { background: linear-gradient(90deg, var(--kd-blue) 0%, var(--kd-blue-darker) 100%); color: #fff; border-radius: 18px; padding: 2.2rem; border-left: 6px solid var(--kd-orange); }
.cta-band h3 { color: #fff; }
.cta-band .lead { color: #D4E7F1; font-size: 1rem; }

/* ---- Alt bilgi ---- */
.site-footer { background: var(--kd-blue-darker); color: #BFD7E4; padding: 3rem 0 0; font-size: .9rem; border-top: 5px solid var(--kd-orange); }
.site-footer h6 { color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; margin-bottom: 1rem; }
.site-footer a { color: #DCEBF3; }
.site-footer a:hover { color: var(--kd-orange-light); text-decoration: none; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: .45rem; }
.site-footer .logo-box { background: #fff; border-radius: 12px; padding: 10px 14px; display: inline-block; }
.site-footer .logo-box img { height: 54px; }
/* İmza şeridi (ATKhosting varyant 05 — degrade şerit): sayfanın altına sabit; üzerine gelince degrade turuncuya kayar */
.atk-credit { background: linear-gradient(90deg, #0d3f70, #155a9c 55%, #f5821f 135%); background-size: 180% 100%; background-position: 0 0; padding: 9px 18px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .25rem 1rem; font: 12px/1.4 "Segoe UI", Arial, sans-serif; color: rgba(255,255,255,.85); transition: background-position .5s ease; }
.atk-credit:hover { background-position: 100% 0; }
.atk-credit .atk-firm { color: rgba(255,255,255,.85); }
.atk-credit .atk-sep { opacity: .5; margin: 0 .2rem; }
.atk-credit a { text-decoration: none; color: rgba(255,255,255,.85); margin-left: auto; white-space: nowrap; }
.atk-credit a:hover { color: #fff; }
.atk-credit a b { color: #fff; font-weight: 700; }
.atk-credit.is-fixed { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; }
body { padding-bottom: 38px; }   /* sabit şerit yüksekliği */
.site-footer { padding-bottom: 2rem; }

/* WhatsApp yüzen buton */
.wa-float { position: fixed; right: 18px; bottom: 56px; width: 54px; height: 54px; border-radius: 50%; background: #25D366; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; box-shadow: 0 8px 20px rgba(0,0,0,.25); z-index: 1040; }
.wa-float:hover { color: #fff; transform: scale(1.06); text-decoration: none; }

/* Toast */
.kd-toast-wrap { position: fixed; top: 1rem; right: 1rem; z-index: 1080; }

/* ---- Duyarlı ---- */
@media (max-width: 991.98px) {
  .site-header .logo img { height: 48px; }
  .hero { text-align: center; }
  .hero-stats { justify-content: center; }
}
@media (max-width: 767.98px) {
  .section { padding: 2.5rem 0; }
  .hero-search .form-control { height: 52px; font-size: 1rem; }
  .hero-search .btn { height: 52px; padding: 0 1rem; }
}
/* ---- Yazdırma / PDF ----
   Teklif sayfası kağıtta tek sayfaya sığacak biçimde sadeleşir: menü, zaman çizelgesi, düğmeler ve uyarılar gizlenir;
   üstte firma + teklif kimliği + müşteri kutusu (print-head), altta geçerlilik notu (print-foot) basılır. */
.print-head, .print-foot { display: none; }
@media print {
  @page { size: A4 portrait; margin: 10mm 11mm 12mm; }
  html, body { background: #fff !important; color: #111; font-size: 10pt; line-height: 1.35; }
  .topbar, .site-header, .site-nav, .site-footer, .wa-float, .atk-credit, .no-print, .timeline, .countdown, .btn, aside,
  .quote-page .alert, .quote-page .card.border-warning { display: none !important; }
  .container, .quote-page { max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
  .quote-page > .row { margin: 0 !important; --bs-gutter-x: 0; --bs-gutter-y: 0; }
  .quote-page > .row > [class*="col-"] { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; padding: 0 !important; }
  /* Kağıt genişliği md kırılımının altında kalır; sevkiyat/notlar ve banka kartları yine iki sütun */
  .quote-page .row .col-md-6 { flex: 0 0 50% !important; max-width: 50% !important; width: 50% !important; }
  .quote-page .row.g-3 { --bs-gutter-x: 4mm; --bs-gutter-y: 3mm; }
  .quote-page a { color: #111 !important; text-decoration: none !important; }
  .quote-page .card { border: 1px solid #c9d3da !important; border-radius: 4px !important; box-shadow: none !important; break-inside: avoid; page-break-inside: avoid; }
  .quote-page .card-header { background: #E6F2F8 !important; padding: 4px 8px !important; font-size: 9.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .quote-page .mb-4 { margin-bottom: 4mm !important; }
  .quote-page .card.p-3 { padding: 6px 8px !important; }
  .quote-page .card.p-4 { padding: 6px 10px !important; }
  .quote-page h5, .quote-page h6 { font-size: 10pt; margin-bottom: 3px !important; }
  /* Kalemler tablosu: yazı küçülür, satırlar sıkışır, çizgiler kağıtta biraz koyulaşır */
  .quote-page .table { font-size: 9pt; margin: 0 !important; }
  .quote-page .table th, .quote-page .table td { padding: 3px 6px !important; vertical-align: middle; }
  .quote-page .table thead th { background: #E6F2F8 !important; color: #0B5278 !important; font-size: 8pt; text-transform: uppercase; letter-spacing: .03em; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .quote-page .qitems { --qi-line: #CFD8DF; }
  .quote-page .qitems .qi-name { min-width: 0; }
  .quote-page .qitems .qi-img { width: 26px; height: 26px; padding: 1px; border-radius: 3px; }   /* resim kağıtta da yalnız görseli olan üründe, küçük */
  .quote-page .table.qitems > tfoot > tr.qi-grand > td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .quote-page tr { break-inside: avoid; page-break-inside: avoid; }
  .quote-page tfoot td { padding: 2px 6px !important; }
  .quote-page tfoot .fs-5 { font-size: 11pt !important; }
  .quote-page .table-light { background: #F3F6FA !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* Ödeme bilgileri: iki sütun, kompakt */
  .quote-page .bank-card { border: 1px solid #c9d3da; border-radius: 4px; padding: 4px 8px; font-size: 8.5pt; }
  .quote-page .bank-card .iban { font-size: 9pt; letter-spacing: .02em; }
  /* Üst bilgi: firma | teklif kimliği | müşteri */
  .print-head { display: grid; grid-template-columns: 1.25fr 1fr 1.1fr; gap: 6mm; align-items: start; padding-bottom: 4mm; margin-bottom: 5mm; border-bottom: 2px solid #0F6997; font-size: 8.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .print-head img { height: 14mm; width: auto; display: block; margin-bottom: 2mm; }
  .print-head .ph-company strong { display: block; font-size: 9.5pt; color: #0B5278; }
  .print-head .ph-title { font-size: 15pt; font-weight: 800; color: #0F6997; letter-spacing: .06em; margin-bottom: 2mm; }
  .print-head .ph-meta td { padding: 0 6px 1px 0; vertical-align: top; }
  .print-head .ph-meta td:first-child { color: #555; white-space: nowrap; }
  .print-head .ph-customer { border: 1px solid #c9d3da; border-left: 4px solid #F08800; border-radius: 4px; padding: 4px 8px; }
  .print-head .ph-label { font-size: 7.5pt; color: #777; text-transform: uppercase; letter-spacing: .06em; }
  .print-head .ph-customer strong { display: block; font-size: 10pt; color: #0B5278; }
  /* Alt bilgi */
  .print-foot { display: block; margin-top: 5mm; padding-top: 3mm; border-top: 1px solid #9aa7b1; font-size: 8pt; color: #444; }
}

/* =========================================================
   Ana sayfa: başlık sahnesi (forklift gemiye parça yüklüyor)
   ========================================================= */
/* Sahne çerçevesiz (şeffaf); ölçek: --s gemi/forklift, --sc vinç. Konumlar JS ile hesaplanır. */
.dock-scene { --s: .38; --sc: .4; --travel: 300px; --bx: 60px; --by: 50px; --dx: 0px; --dy: 0px; --cdrop: 40px; --rope0: calc(20px * var(--sc)); --splash-x: 70%; --crane-x: 55%; position: relative; height: 160px; overflow: visible; }
.dock-water { position: absolute; left: 0; right: 0; bottom: 0; height: 24px; border-radius: 6px; background: linear-gradient(180deg, rgba(15,105,151,.18), rgba(15,105,151,.55)); }
.dock-water::before { content: ""; position: absolute; left: -48px; right: -48px; top: -5px; height: 10px; background: radial-gradient(12px 5px at 12px 5px, rgba(255,255,255,.65) 45%, transparent 48%) repeat-x; background-size: 24px 10px; animation: dockWave 2.6s linear infinite; }
.dock-ground { position: absolute; left: 0; width: var(--ground, 60%); bottom: 22px; height: 5px; background: var(--kd-blue-dark); border-radius: 0 4px 4px 0; z-index: 2; }
.dock-ground::after { content: ""; position: absolute; left: 0; right: 0; top: 5px; height: 3px; background: repeating-linear-gradient(90deg, var(--kd-orange) 0 12px, transparent 12px 20px); opacity: .9; }
.ship { position: absolute; right: 2%; bottom: 8px; width: calc(349px * var(--s)); transform-origin: 50% 100%; animation: shipDip 12s ease-in-out infinite; z-index: 1; }
.ship img { width: 100%; display: block; transform-origin: 50% 100%; animation: shipBob 4.5s ease-in-out infinite; }
.fk { position: absolute; left: 3%; bottom: 28px; width: calc(140px * var(--s)); animation: fkDrive 12s ease-in-out infinite; will-change: transform; z-index: 3; }
.fk-body { width: 100%; display: block; }
.fk-box { position: absolute; left: calc(103px * var(--s)); top: calc(22px * var(--s)); width: calc(91px * var(--s)); animation: fkBox 12s linear infinite; }
.cargo-drop { position: absolute; left: var(--bx); bottom: var(--by); width: calc(91px * var(--s)); opacity: 0; animation: cargoDrop 12s ease-in-out infinite; z-index: 2; }
.cargo-drop img { width: 100%; display: block; }
/* Vinç: gövde gemi arkasında, halat + konteyner önde */
.crane { position: absolute; left: var(--crane-x); bottom: 8px; width: calc(456px * var(--sc)); height: calc(365px * var(--sc)); }
.crane-body { position: absolute; left: 0; top: 0; width: 100%; z-index: 0; }
.crane-rope { position: absolute; left: calc(295px * var(--sc) - 1px); top: calc(146px * var(--sc)); width: 2px; height: var(--rope0); background: var(--kd-orange); z-index: 2; animation: craneRope 12s ease-in-out infinite; }
.crane-rope::after { content: ""; position: absolute; left: 50%; bottom: -5px; width: 9px; height: 9px; margin-left: -4.5px; border-radius: 50%; background: var(--kd-orange); border: 2px solid var(--kd-blue-dark); box-sizing: border-box; }
.crane-load { position: absolute; left: calc(240px * var(--sc)); top: calc(146px * var(--sc) + var(--rope0)); width: calc(110px * var(--sc)); z-index: 2; animation: craneLoad 12s ease-in-out infinite; }
.crane-load img, .crane-left img { width: 100%; display: block; }
.crane-left { position: absolute; left: calc(240px * var(--sc)); top: calc(146px * var(--sc) + var(--rope0) + var(--cdrop)); width: calc(110px * var(--sc)); z-index: 2; opacity: 0; animation: craneLeft 12s linear infinite; }
/* Su sıçraması ve halka */
.splash { position: absolute; left: var(--splash-x); bottom: 22px; width: 0; height: 0; z-index: 3; }
.splash i { position: absolute; left: -3px; top: -3px; width: 6px; height: 6px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(15,105,151,.35); opacity: 0; animation: splashBurst 12s ease-out infinite; }
.splash i:nth-child(1) { --tx: -22px; --ty: -18px; } .splash i:nth-child(2) { --tx: -12px; --ty: -30px; } .splash i:nth-child(3) { --tx: -2px; --ty: -36px; }
.splash i:nth-child(4) { --tx: 8px; --ty: -32px; } .splash i:nth-child(5) { --tx: 18px; --ty: -24px; } .splash i:nth-child(6) { --tx: 26px; --ty: -14px; }
.ripple { position: absolute; left: var(--splash-x); bottom: 16px; width: 60px; height: 14px; margin-left: -30px; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; opacity: 0; z-index: 3; animation: rippleOut 12s ease-out infinite; }
.dock-caption { position: absolute; left: 12px; bottom: 5px; font-size: .64rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.35); display: flex; align-items: center; gap: .4rem; z-index: 4; }
.dock-caption .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--kd-orange); animation: blink 1.4s infinite; }
@keyframes dockWave { to { transform: translateX(24px); } }
@keyframes shipBob { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1.2deg); } }
@keyframes shipDip {
  0%, 50%  { transform: translateY(0) rotate(0deg); }
  52%      { transform: translateY(6px) rotate(1.6deg); }
  56%      { transform: translateY(-2px) rotate(-.6deg); }
  60%, 74% { transform: translateY(0) rotate(0deg); }
  76%      { transform: translateY(6px) rotate(-1.6deg); }
  80%      { transform: translateY(-2px) rotate(.6deg); }
  84%, 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes splashBurst {
  0%, 50%  { opacity: 0; transform: translate(0, 0) scale(.4); }
  51%      { opacity: 1; transform: translate(calc(var(--tx) * .35), calc(var(--ty) * .5)) scale(1); }
  57%      { opacity: 0; transform: translate(var(--tx), var(--ty)) scale(.5); }
  74%      { opacity: 0; transform: translate(0, 0) scale(.4); }
  75%      { opacity: 1; transform: translate(calc(var(--tx) * .35), calc(var(--ty) * .5)) scale(1); }
  81%, 100% { opacity: 0; transform: translate(var(--tx), var(--ty)) scale(.5); }
}
@keyframes rippleOut {
  0%, 50%  { opacity: 0; transform: scale(.3); }
  52%      { opacity: .9; transform: scale(.6); }
  60%      { opacity: 0; transform: scale(1.8); }
  74%      { opacity: 0; transform: scale(.3); }
  76%      { opacity: .9; transform: scale(.6); }
  84%, 100% { opacity: 0; transform: scale(1.8); }
}
@keyframes craneLoad {
  0%, 62%  { opacity: 1; transform: translateY(0); }
  74%      { opacity: 1; transform: translateY(var(--cdrop)); }
  75%      { opacity: 0; transform: translateY(var(--cdrop)); }
  96%      { opacity: 0; transform: translateY(0); }
  98%, 100% { opacity: 1; transform: translateY(0); }
}
@keyframes craneRope {
  0%, 62%  { height: var(--rope0); }
  74%, 84% { height: calc(var(--rope0) + var(--cdrop)); }
  96%, 100% { height: var(--rope0); }
}
@keyframes craneLeft { 0%, 74% { opacity: 0; } 75%, 94% { opacity: 1; } 97%, 100% { opacity: 0; } }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes fkDrive {
  0%   { transform: translateX(0) scaleX(1); }
  40%  { transform: translateX(var(--travel)) scaleX(1); }
  52%  { transform: translateX(var(--travel)) scaleX(1); }
  56%  { transform: translateX(var(--travel)) scaleX(-1); }
  94%  { transform: translateX(0) scaleX(-1); }
  98%  { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes fkBox { 0%, 43% { opacity: 1; } 44%, 97% { opacity: 0; } 98%, 100% { opacity: 1; } }
@keyframes cargoDrop {
  0%, 42%  { opacity: 0; transform: translate(0, 0); }
  44%      { opacity: 1; transform: translate(0, 0); }
  47%      { opacity: 1; transform: translate(calc(var(--dx) * .3), calc(var(--dy) * 1.25)); }
  52%      { opacity: 1; transform: translate(var(--dx), var(--dy)); }
  92%      { opacity: 1; transform: translate(var(--dx), var(--dy)); }
  96%, 100% { opacity: 0; transform: translate(var(--dx), var(--dy)); }
}
@media (prefers-reduced-motion: reduce) { .dock-scene *, .hero-home * { animation: none !important; } }

/* =========================================================
   Ana sayfa başlık animasyonu — "Montaj" (20.10.2026, onaylı örnek 1; views/partials/forklift-anim.php)
   Vektör forklift (yükseklik 64px) parça parça uçarak takılır, etiketi solunda belirir; kutu iner, çatal kaldırır. 12 sn döngü.
   SVG içindeki kaydırmalar çizim biriminde (1 px = 1,5 birim).
   ========================================================= */
.site-header.is-home { overflow: clip visible; }   /* yatayda uçan parçalar kırpılır; hesap menüsü (dikey taşma) görünür kalır */
.fa-scene { position: relative; height: 64px; }
.fa-ground { position: absolute; left: 18%; right: 18%; bottom: 0; height: 3px; border-radius: 2px; background: linear-gradient(90deg, transparent, #D4E8F3 20%, var(--kd-blue) 50%, #D4E8F3 80%, transparent); opacity: .7; }
.fa-stage { position: absolute; left: 50%; bottom: 2px; margin-left: -42px; }
.fa-fk { display: block; height: 64px; width: auto; overflow: visible; }
.fa-fk .pt, .fa-fk .fa-wheel { transform-box: fill-box; transform-origin: center; }
.fa-fk .pt { opacity: 0; animation: faFly 12s cubic-bezier(.2,.9,.3,1.1) infinite; animation-delay: var(--d); }
.fa-fk .p-forks { animation-name: faForks; }
.fa-fk .fa-box { opacity: 0; animation: faBox 12s ease-in-out infinite; }
.fa-chip { position: absolute; left: calc(50% - 130px); top: 2px; white-space: nowrap; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--kd-blue-dark); background: var(--kd-orange-soft, #FFF4E5); border: 1px solid var(--kd-orange-light); border-radius: 999px; padding: 1px 8px; opacity: 0; pointer-events: none; animation: faChip 12s linear infinite; animation-delay: var(--d); }
.fa-cap { position: absolute; left: calc(50% + 56px); right: 0; top: 50%; transform: translateY(-50%); height: 22px; overflow: hidden; font-size: .8rem; font-weight: 600; color: var(--kd-blue-dark); white-space: nowrap; }
.fa-cap span { position: absolute; left: 0; top: 2px; opacity: 0; }
.fa-cap .c1 { color: var(--kd-muted); animation: faC1 12s linear infinite; }
.fa-cap .c2 { animation: faC2 12s linear infinite; }
.fa-cap .c2.is-only { animation-name: faC2only; }
.fa-cap .c2 i { color: #198754; }
@keyframes faFly { 0% { opacity: 0; transform: translate(var(--fx), var(--fy)) rotate(var(--fr)) scale(.6); } 7% { opacity: 1; transform: none; } 80% { opacity: 1; transform: none; } 86%, 100% { opacity: 0; transform: translateY(6px); } }
@keyframes faForks { 0% { opacity: 0; transform: translate(var(--fx), var(--fy)) rotate(var(--fr)) scale(.6); } 7% { opacity: 1; transform: none; } 22% { transform: none; } 28%, 44% { transform: translateY(-33px); } 50% { transform: none; } 80% { opacity: 1; transform: none; } 86%, 100% { opacity: 0; transform: translateY(6px); } }
@keyframes faChip { 0% { opacity: 0; transform: translateY(4px); } 1.5% { opacity: 1; transform: none; } 5.5% { opacity: 1; } 6.8%, 100% { opacity: 0; } }
@keyframes faBox { 0%, 52% { opacity: 0; transform: translateY(-14px); } 57% { opacity: 1; transform: none; } 80% { opacity: 1; } 86%, 100% { opacity: 0; } }
@keyframes faC1 { 0% { opacity: 0; } 3%, 55% { opacity: 1; } 58%, 100% { opacity: 0; } }
@keyframes faC2 { 0%, 58% { opacity: 0; transform: translateY(6px); } 61%, 82% { opacity: 1; transform: none; } 86%, 100% { opacity: 0; } }
@keyframes faC2only { 0% { opacity: 0; } 3%, 82% { opacity: 1; } 86%, 100% { opacity: 0; } }
@media (max-width: 1199.98px) { .fa-cap { display: none; } }
@media (max-width: 991.98px) { .fa-chip { display: none; } }   /* dar başlık sütununda etiket logonun üstüne düşüyordu */
@media (prefers-reduced-motion: reduce) { .fa-scene *, .fa-scene *::before { animation: none !important; } .fa-fk .pt, .fa-fk .fa-box, .fa-cap .c2 { opacity: 1; } }

/* =========================================================
   Ana sayfa hero: slogan + zeminde süzülen logo
   ========================================================= */
.hero-home { padding: 4.25rem 0 5.5rem; }
.hero-parts { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.hero-parts .p { position: absolute; color: rgba(255,255,255,.09); font-size: 3rem; animation: partDrift 14s ease-in-out infinite; }
.hero-parts .p1 { left: 4%; top: 10%; font-size: 5.5rem; animation-duration: 18s; }
.hero-parts .p2 { left: 36%; top: 72%; font-size: 2.4rem; animation-delay: -4s; }
.hero-parts .p3 { left: 54%; top: 6%; font-size: 3.2rem; animation-delay: -9s; color: rgba(255,167,51,.16); }
.hero-parts .p4 { left: 90%; top: 12%; font-size: 3.6rem; animation-delay: -2s; }
.hero-parts .p5 { left: 70%; top: 80%; font-size: 2.6rem; animation-delay: -7s; color: rgba(255,167,51,.18); }
.hero-parts .p6 { left: 18%; top: 84%; font-size: 4.2rem; animation-delay: -12s; animation-duration: 22s; }
@keyframes partDrift { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(18px, -26px) rotate(28deg); } }

.hero-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #BFE0EF; margin-bottom: 1.1rem; }
.hero-kicker span { position: relative; padding-left: .85rem; transition: color .35s; }
.hero-kicker span::before { content: ""; position: absolute; left: 0; top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: rgba(255,255,255,.35); transition: background .35s, box-shadow .35s; }
.hero-kicker span.on { color: #fff; }
.hero-kicker span.on::before { background: var(--kd-orange); box-shadow: 0 0 0 4px rgba(240,136,0,.28); }
.hero-kicker em { font-style: normal; color: var(--kd-orange-light); }

.hero-slogan { color: #fff; font-size: clamp(2.1rem, 4.8vw, 3.7rem); font-weight: 800; line-height: 1.08; letter-spacing: -.02em; margin-bottom: 1rem; text-shadow: 0 2px 24px rgba(0,0,0,.28); }
.hero-slogan .hl { position: relative; display: inline-block; color: var(--kd-orange-light); white-space: nowrap; padding-bottom: .12em; }
.hero-slogan .hl-line { position: absolute; left: 0; bottom: -.08em; width: 100%; height: .34em; color: var(--kd-orange); stroke-dasharray: 260; stroke-dashoffset: 260; animation: drawLine 1.1s .5s ease-out forwards; }
@keyframes drawLine { to { stroke-dashoffset: 0; } }

.hero-rotator { font-size: 1.15rem; color: #E3F0F7; font-weight: 500; margin-bottom: .5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; }
.hero-rotator .rot { display: inline-block; min-width: 7ch; }
.hero-rotator .rot-word { display: inline-block; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); border-radius: 8px; padding: .02em .55em; color: #fff; font-weight: 800; animation: wordIn .45s ease-out; }
.hero-rotator .rot-word.out { animation: wordOut .3s ease-in forwards; }
@keyframes wordIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes wordOut { to { opacity: 0; transform: translateY(-10px); } }
.hero-home .lead { color: #D4E7F1; margin-bottom: 1.4rem; }

.logo-stage { position: relative; min-height: 400px; display: flex; align-items: center; justify-content: center; }
.logo-glow { position: absolute; width: 140%; height: 140%; left: -20%; top: -20%; background: radial-gradient(closest-side, rgba(255,255,255,.98) 0%, rgba(255,255,255,.82) 42%, rgba(255,255,255,0) 72%); animation: glowPulse 6s ease-in-out infinite; }
.logo-ring { position: absolute; left: 50%; top: 50%; width: 118%; padding-top: 118%; margin-left: -59%; margin-top: -59%; border-radius: 50%; border: 1px solid rgba(255,255,255,.28); animation: ringSpin 32s linear infinite; }
.logo-ring::after { content: ""; position: absolute; top: -6px; left: 50%; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--kd-orange); box-shadow: 0 0 0 5px rgba(240,136,0,.25); }
.logo-ring.r2 { width: 150%; padding-top: 150%; margin-left: -75%; margin-top: -75%; border-style: dashed; border-color: rgba(255,167,51,.35); animation-direction: reverse; animation-duration: 48s; }
.logo-ring.r2::after { background: #fff; box-shadow: 0 0 0 5px rgba(255,255,255,.25); width: 9px; height: 9px; margin-left: -4.5px; top: -5px; }
.logo-float { position: relative; width: 100%; max-width: 470px; animation: logoFloat 6s ease-in-out infinite; filter: drop-shadow(0 18px 30px rgba(0,0,0,.35)); }
@keyframes logoFloat { 0%, 100% { transform: translateY(0) rotate(-.6deg); } 50% { transform: translateY(-14px) rotate(.6deg); } }
@keyframes glowPulse { 0%, 100% { opacity: .9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); } }
@keyframes ringSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.hero-waves { position: absolute; left: 0; right: 0; bottom: 0; height: 90px; pointer-events: none; overflow: hidden; }
.hero-waves svg { width: 120%; height: 100%; display: block; margin-left: -10%; }
.hero-waves .w1 { fill: rgba(255,255,255,.08); animation: waveSway 9s ease-in-out infinite alternate; }
.hero-waves .w2 { fill: rgba(255,255,255,.14); animation: waveSway 7s ease-in-out infinite alternate-reverse; }
@keyframes waveSway { from { transform: translateX(-4%); } to { transform: translateX(4%); } }

@media (max-width: 991.98px) {
  .hero-kicker, .hero-rotator { justify-content: center; }
  .hero-parts .p { display: none; }
  .hero-parts .p1, .hero-parts .p4 { display: block; }
}

/* ---- Ürün liste görünümü (ızgara/liste seçimi) ---- */
.view-toggle .btn { padding: .3rem .6rem; }
.product-list { display: flex; flex-direction: column; gap: .75rem; }
.product-row { display: flex; gap: 1rem; align-items: center; background: #fff; border: 1px solid var(--kd-border); border-radius: var(--kd-radius); padding: .75rem .9rem; transition: box-shadow .2s, transform .2s; }
.product-row:hover { box-shadow: var(--kd-shadow); transform: translateY(-2px); }
.product-row .img { flex: 0 0 96px; width: 96px; height: 96px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--kd-soft-2); border-radius: 10px; background: #fff; padding: 6px; }
.product-row .img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.product-row .body { flex: 1; min-width: 0; }
.product-row .sku { font-size: .78rem; color: var(--kd-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.product-row .meta { font-size: .78rem; color: var(--kd-muted); }
.product-row .title { font-weight: 600; color: var(--kd-blue-dark); font-size: .98rem; line-height: 1.3; }
.product-row .title a { color: inherit; }
.product-row .desc { font-size: .85rem; color: #4B5563; margin-top: .25rem; }
.product-row .actions { flex: 0 0 150px; display: flex; flex-direction: column; gap: .4rem; }
@media (max-width: 575.98px) { .product-row { flex-wrap: wrap; } .product-row .img { flex-basis: 72px; width: 72px; height: 72px; } .product-row .actions { flex: 1 0 100%; flex-direction: row; justify-content: flex-end; } }

/* İletişim formu tuzak alanı (botlar doldurur, insanlar görmez) */
.hp-field { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* =========================================================
   Giriş durumu: müşteri giriş yaptığını bir bakışta anlasın
   — üst barda "Hoş geldiniz" + yeşil nokta, başlıkta baş harfli avatar rozeti
   ("Giriş yapıldı"), giriş sonrası hoş geldiniz kartı, ana sayfada kişisel selam
   ========================================================= */
.header-actions { white-space: nowrap; }
.user-chip .online { width: 9px; height: 9px; border-radius: 50%; background: #22C55E; box-shadow: 0 0 0 0 rgba(34,197,94,.6); animation: kdOnline 2.2s ease-out infinite; }
@keyframes kdOnline { 0% { box-shadow: 0 0 0 0 rgba(34,197,94,.55); } 70% { box-shadow: 0 0 0 7px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
/* Avatar: turuncu zemin, baş harfler */
.avatar { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--kd-orange) 0%, #FFA733 100%); color: #fff; font-weight: 800; font-size: .9rem; letter-spacing: .02em; box-shadow: 0 2px 8px rgba(240,136,0,.35); flex: 0 0 auto; }
.avatar.lg { width: 46px; height: 46px; font-size: 1.05rem; }
.user-chip { padding: .3rem .6rem .3rem .35rem; border: 1.5px solid var(--kd-blue-soft-2, #D4E8F3); background: var(--kd-blue-soft); gap: .55rem; }
.user-chip:hover, .user-chip[aria-expanded="true"] { background: #fff; border-color: var(--kd-blue); }
.user-chip .online { position: absolute; right: -1px; bottom: -1px; border: 2px solid #fff; width: 13px; height: 13px; }
.user-chip .uc-text { flex-direction: column; align-items: flex-start; line-height: 1.15; }
.user-chip .uc-name { font-size: .85rem; font-weight: 700; color: var(--kd-blue-dark); max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-chip .uc-state { font-size: .68rem; font-weight: 600; color: #15803D; display: inline-flex; align-items: center; gap: .25rem; text-transform: uppercase; letter-spacing: .04em; }
.user-chip .uc-state i { font-size: .7rem; }
.user-chip .uc-caret { font-size: .8rem; color: var(--kd-muted, #5F6B7A); }
/* Giriş sonrası ilk sayfa: rozet üç kez nabız atar */
.user-chip.just-in { animation: kdChipIn 1.4s ease-out 3; }
@keyframes kdChipIn { 0% { box-shadow: 0 0 0 0 rgba(240,136,0,.55); } 60% { box-shadow: 0 0 0 10px rgba(240,136,0,0); } 100% { box-shadow: 0 0 0 0 rgba(240,136,0,0); } }
/* Çıkış yapılmışsa giriş düğmesi belirgin */
.header-login { border: 1.5px solid var(--kd-blue); color: var(--kd-blue); }
.header-login:hover { background: var(--kd-blue); color: #fff; }
/* Hesap menüsü */
.user-menu { min-width: 260px; border: 1px solid var(--kd-border); border-radius: 12px; box-shadow: 0 12px 32px rgba(8,63,92,.18); padding: .4rem; }
.user-menu .um-head { display: flex; align-items: center; gap: .65rem; padding: .5rem .6rem .65rem; border-bottom: 1px solid var(--kd-border); margin-bottom: .35rem; }
.user-menu .um-id { min-width: 0; line-height: 1.2; }
.user-menu .um-id strong { display: block; color: var(--kd-blue-dark); font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-menu .um-id small { display: block; color: var(--kd-muted, #5F6B7A); font-size: .74rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-menu .dropdown-item { display: flex; align-items: center; gap: .6rem; border-radius: 8px; padding: .5rem .7rem; font-weight: 500; color: var(--kd-blue-dark); }
.user-menu .dropdown-item i { font-size: 1.05rem; color: var(--kd-blue); width: 1.2rem; text-align: center; }
.user-menu .dropdown-item:hover { background: var(--kd-blue-soft); }
.user-menu .dropdown-item.text-danger i { color: inherit; }
/* Hoş geldiniz kartı (giriş sonrası, sağ altta) */
.welcome-toast { position: fixed; right: 1rem; bottom: 1.25rem; z-index: 1085; width: min(420px, calc(100vw - 2rem)); display: flex; gap: .8rem; align-items: flex-start; background: #fff; border: 1px solid var(--kd-border); border-left: 5px solid #22C55E; border-radius: 14px; padding: .9rem 2.4rem .95rem 1rem; box-shadow: 0 16px 40px rgba(8,63,92,.28); overflow: hidden; animation: kdWtIn .55s cubic-bezier(.2,.9,.3,1.2); }
.welcome-toast.hide { opacity: 0; transform: translateY(12px); transition: opacity .4s, transform .4s; }
@keyframes kdWtIn { from { opacity: 0; transform: translateY(24px) scale(.96); } to { opacity: 1; transform: none; } }
.welcome-toast .wt-title { font-weight: 800; color: #15803D; display: flex; align-items: center; gap: .4rem; margin-bottom: .15rem; }
.welcome-toast .wt-text { font-size: .86rem; color: #333; line-height: 1.35; }
.welcome-toast .wt-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.welcome-toast .wt-actions a { font-size: .78rem; font-weight: 700; color: var(--kd-blue-dark); background: var(--kd-blue-soft); border-radius: 999px; padding: .3rem .7rem; text-decoration: none; }
.welcome-toast .wt-actions a:hover { background: var(--kd-blue); color: #fff; }
.welcome-toast .btn-close { position: absolute; right: .6rem; top: .6rem; font-size: .7rem; }
.welcome-toast .wt-bar { position: absolute; left: 0; bottom: 0; height: 3px; background: #22C55E; width: 100%; animation: kdWtBar 8s linear forwards; }
@keyframes kdWtBar { from { width: 100%; } to { width: 0; } }
/* Ana sayfa: kişisel selam */
.hero-kicker em.hello { color: #fff; background: rgba(34,197,94,.22); border: 1px solid rgba(34,197,94,.55); border-radius: 999px; padding: .2rem .7rem; text-transform: none; letter-spacing: .02em; font-weight: 700; }
@media (max-width: 575.98px) { .user-chip { padding: .25rem; border: 0; background: transparent; } .user-chip .uc-caret { display: none; } }

/* İkon düğmeleri (Sepete Ekle / detay): kare, tooltip ile açıklanır */
.btn-icon { width: 36px; height: 34px; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; font-size: 1.05rem; }
.btn-icon.btn-primary { box-shadow: 0 2px 6px rgba(15,105,151,.25); }
.product-card .actions { justify-content: flex-end; align-items: center; }
.product-row .actions { flex: 0 0 auto; flex-direction: row; align-items: center; }

/* =========================================================
   Mobil başlık (lg altı): logo | forklift | hamburger; hamburger sağdan açılan menü (sayfalar + Giriş/Kayıt); altta uygulama çubuğu
   ========================================================= */
.mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; display: flex; background: #fff; border-top: 1px solid var(--kd-border); box-shadow: 0 -6px 20px rgba(8,63,92,.14); padding-bottom: env(safe-area-inset-bottom); }
.mb-item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: .5rem 0 .4rem; color: var(--kd-muted); font-size: .66rem; font-weight: 600; text-decoration: none; position: relative; }
.mb-item i { font-size: 1.35rem; line-height: 1; }
.mb-item.active { color: var(--kd-blue); }
.mb-item.active::before { content: ""; position: absolute; top: 0; left: 50%; width: 28px; height: 3px; margin-left: -14px; background: var(--kd-orange); border-radius: 0 0 3px 3px; }
.mb-ico { position: relative; display: inline-block; line-height: 1; }
.mb-badge { position: absolute; top: -7px; right: -11px; background: var(--kd-orange); color: #fff; font-size: .62rem; font-weight: 700; min-width: 17px; height: 17px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; border: 2px solid #fff; }
.mb-avatar { width: 24px; height: 24px; border-radius: 50%; background: linear-gradient(135deg, var(--kd-orange) 0%, #FFA733 100%); color: #fff; font-size: .68rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
@media (max-width: 991.98px) {
  body { padding-bottom: 64px; }
  .wa-float { bottom: 78px; width: 48px; height: 48px; font-size: 1.5rem; }
  .welcome-toast { bottom: 76px; }
  .site-header { padding-top: .5rem !important; padding-bottom: .5rem !important; }
  .site-header .logo img { height: 42px; }
}

/* Hamburger (mobil, animasyonun sağında) */
.mburger { width: 46px; height: 42px; border: 1.5px solid var(--kd-blue); border-radius: 10px; background: #fff; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; padding: 0; }
.mburger span { display: block; width: 22px; height: 2.5px; border-radius: 2px; background: var(--kd-blue); transition: transform .2s, opacity .2s; }
.mburger:active { background: var(--kd-blue-soft); }
/* Sağdan açılan menü */
.mobile-menu { width: min(320px, 86vw); }
.mobile-menu .offcanvas-header { background: linear-gradient(135deg, var(--kd-blue-dark) 0%, var(--kd-blue) 100%); color: #fff; padding: .9rem 1rem; }
.mobile-menu .offcanvas-header .btn-close { filter: invert(1) grayscale(1) brightness(2); }
.mobile-menu .mm-brand strong { display: block; font-size: 1.05rem; letter-spacing: .04em; }
.mobile-menu .mm-brand small { color: var(--kd-orange-light); font-weight: 700; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.mobile-menu .mm-user { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.mobile-menu .mm-user strong { display: block; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mobile-menu .mm-user small { display: flex; align-items: center; gap: .3rem; font-size: .7rem; font-weight: 700; color: #86EFAC; text-transform: uppercase; letter-spacing: .04em; }
.mobile-menu .offcanvas-body { padding: .75rem 1rem 1.25rem; }
.mm-login { display: flex; align-items: center; gap: .7rem; background: var(--kd-blue-soft); border: 1.5px solid var(--kd-blue); border-radius: 12px; padding: .7rem .85rem; color: var(--kd-blue-dark); text-decoration: none; margin-bottom: .75rem; }
.mm-login > i:first-child { font-size: 1.7rem; color: var(--kd-blue); }
.mm-login strong { display: block; font-size: .95rem; }
.mm-login small { display: block; color: var(--kd-muted); font-size: .74rem; }
.mm-nav { display: flex; flex-direction: column; }
.mm-link { display: flex; align-items: center; gap: .75rem; padding: .7rem .5rem; border-bottom: 1px solid var(--kd-soft-2); color: var(--kd-blue-dark); font-weight: 600; text-decoration: none; }
.mm-link i { width: 1.4rem; text-align: center; font-size: 1.15rem; color: var(--kd-blue); }
.mm-link.active { color: var(--kd-orange-deep); }
.mm-link.active i { color: var(--kd-orange); }
.mm-link.text-danger i { color: inherit; }
.mm-cta { margin: 1rem 0 .5rem; padding: .7rem; font-weight: 700; }
.mm-section { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--kd-muted); margin: 1rem 0 .25rem; }
.mm-contact { display: flex; flex-direction: column; gap: .45rem; font-size: .88rem; }
.mm-contact a, .mm-contact span { display: flex; align-items: center; gap: .6rem; color: var(--kd-blue-dark); text-decoration: none; }
.mm-contact i { width: 1.4rem; text-align: center; color: var(--kd-blue); }
/* Sepet — mobilde tablo yerine kart düzeni (yatay kaydırma/taşma yok): resim | ad + parça no | sil, altta adet */
.cart-table .c-label { display: none; }
@media (max-width: 767.98px) {
  .cart-table thead { display: none; }
  .cart-table, .cart-table tbody { display: block; width: 100%; }
  .cart-table tr { display: grid; grid-template-columns: 64px 1fr auto; grid-template-areas: "img sku del" "img title del" "qty qty qty"; column-gap: .75rem; row-gap: .15rem; padding: .75rem .9rem; border-bottom: 1px solid var(--kd-border); }
  .cart-table.no-img tr { grid-template-columns: 1fr auto; grid-template-areas: "sku del" "title del" "qty qty"; }   /* sepette görselli ürün yok: resim alanı yok */
  .cart-table td { display: block; border: 0 !important; padding: 0 !important; width: auto !important; }
  .cart-table td.c-img { grid-area: img; }
  .cart-table td.c-title { grid-area: title; font-size: .92rem; line-height: 1.3; }
  .cart-table td.c-sku { grid-area: sku; }
  .cart-table .c-label { display: inline; color: var(--kd-muted); font-family: inherit; }
  .cart-table td.c-qty { grid-area: qty; margin-top: .5rem; }
  .cart-table td.c-del { grid-area: del; align-self: start; }
  .cart-table .qty-group { max-width: 190px; }
  .cart-footer .btn { flex: 1 1 auto; }
  .cart-footer .cart-clear { flex: 0 0 auto; order: 1; }       /* 1. satır: Alışverişe devam + Sepeti boşalt (yalnız simge, esnemez) */
  .cart-footer .cart-custom { flex: 1 1 100%; order: 2; }      /* 2. satır: Katalog dışı kalem */
}
/* Mobil ürün kartı/satırı: marka pili ve parça numarası dar ekranda alt alta, taşmadan (parça no gerekirse üç nokta ile kısalır) */
@media (max-width: 575.98px) {
  .product-card .body { padding: .65rem .7rem .75rem; }
  .product-card .body > .d-flex { flex-direction: column; align-items: flex-start !important; gap: .25rem; }
  .product-card .sku { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
  .brand-pill { font-size: .64rem; padding: .12rem .45rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .product-card .title { font-size: .86rem; }
  .product-row .body > .d-flex { gap: .3rem .6rem; }
  .product-row .sku { flex: 1 1 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* Geliştirici imzası (footer) */
.dev-credit { color: #9DBFD0; text-decoration: none; white-space: nowrap; }
.dev-credit strong { color: #fff; }
.dev-credit:hover { color: var(--kd-orange-light); }
.dev-credit:hover strong { color: var(--kd-orange-light); }

/* Teklif koşulları (müşteri teklif sayfası + yazdırma) */
.quote-terms .qt-title { font-weight: 800; color: var(--kd-blue-dark); letter-spacing: .04em; text-transform: uppercase; font-size: .9rem; margin-bottom: .5rem; }
.quote-terms .qt-table { font-size: .88rem; border-collapse: collapse; }
.quote-terms .qt-table th { font-weight: 700; color: var(--kd-blue-dark); white-space: nowrap; padding: .2rem .6rem .2rem 0; vertical-align: top; text-align: left; }
.quote-terms .qt-table td { padding: .2rem 0; vertical-align: top; }
@media print { .quote-terms .qt-table { font-size: 9pt; } .quote-terms .qt-title { font-size: 9.5pt; margin-bottom: 2mm; } }
/* Hero öne çıkanlar: 5 madde tek sıra (masaüstü), 3 ve 2 sütun (tablet / telefon); etiketler sarılır */
.hero-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem .9rem; }
.hero-stats .num { font-size: 1.35rem; white-space: nowrap; }
.hero-stats .lbl { line-height: 1.25; margin-top: .3rem; }
@media (max-width: 991.98px) { .hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Tedarik edilen markalar: 4 sütun × 4 satır eşit hücreler (simetrik); solda ad, sağ kenarda katalogdaki ürün sayısı; tablette 3, telefonda 2 sütun */
.hero .brand-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; transition: opacity .28s ease; }
.hero .brand-grid.is-fading { opacity: 0; }   /* dönüşüm: solarak sonraki markalar gelir (site.js) */
@media (prefers-reduced-motion: reduce) { .hero .brand-grid { transition: none; } }
.hero .brand-grid a { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: .35rem; padding: .34rem .45rem .34rem .65rem; font-size: .78rem; white-space: nowrap; overflow: hidden; }
.hero .brand-grid .bn { overflow: hidden; text-overflow: ellipsis; }
.hero .brand-grid .bc { flex: 0 0 auto; font-size: .62rem; font-weight: 700; color: #0B5278; background: #fff; border-radius: 999px; padding: .08rem .38rem; min-width: 2rem; text-align: center; font-variant-numeric: tabular-nums; }
.hero .brand-grid .bc-empty { background: rgba(255,255,255,.14); color: rgba(255,255,255,.55); }
.hero .brand-grid a:hover .bc { background: #fff; color: var(--kd-orange-deep); }
@media (max-width: 991.98px) { .hero .brand-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .hero .brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hero .brand-grid a { font-size: .74rem; padding: .33rem .5rem; } }
/* Alt marka şeridi: 6 sütun × 2 satır eşit hücreler (tablette 4, telefonda 3) */
.brand-strip-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .6rem; max-width: 1000px; margin: 0 auto; }
.brand-strip-grid .b { margin: 0; display: flex; align-items: center; justify-content: center; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: .55rem .5rem; }
@media (max-width: 991.98px) { .brand-strip-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .brand-strip-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .brand-strip-grid .b { font-size: .8rem; padding: .45rem .35rem; } }

/* ---- Çalışma saati durumu (App\WorkingHours::badge): yeşil = açık, turuncu = kapanmak üzere, kırmızı = kapalı; nokta açıkken yavaşça yanıp söner ---- */
.wh-status { display: inline-flex; align-items: center; gap: .4rem; font-size: .75rem; font-weight: 700; line-height: 1; padding: .32rem .62rem; border-radius: 999px; background: #E6EEF4; color: var(--kd-blue-dark); vertical-align: middle; white-space: nowrap; }
.wh-status .wh-dot { width: .55rem; height: .55rem; border-radius: 50%; background: #9AA5B1; flex: 0 0 auto; box-shadow: 0 0 0 0 var(--wh-glow, transparent); }
.wh-status.open { --wh-glow: rgba(46, 204, 113, .55); }
.wh-status.open .wh-dot { background: #2ECC71; animation: whPulse 2s ease-out infinite; }
.wh-status.soon { --wh-glow: rgba(245, 166, 35, .6); }
.wh-status.soon .wh-dot { background: #F5A623; animation: whPulse 1.2s ease-out infinite; }
.wh-status.closed .wh-dot { background: #E74C3C; }
.wh-status .wh-detail { font-weight: 500; opacity: .85; }
.wh-status .wh-detail::before { content: "·"; margin: 0 .35rem 0 .1rem; }
@keyframes whPulse { 0% { box-shadow: 0 0 0 0 var(--wh-glow); } 70% { box-shadow: 0 0 0 6px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
/* Koyu zeminler: üst bar, alt bilgi, çağrı bandı */
.topbar .wh-status, .site-footer .wh-status, .cta-band .wh-status { background: rgba(255, 255, 255, .14); color: #fff; }
/* Mobil menü: saat satırı (ikon + iki satır metin) */
.mm-hours { display: flex; align-items: flex-start; gap: .6rem; color: var(--kd-blue-dark); font-size: .88rem; }
.mm-hours > i { width: 1.4rem; text-align: center; color: var(--kd-blue); margin-top: .1rem; }
/* Ana sayfa çağrı bandı: düğmelerin altında saat + durum */
.cta-hours { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: #D4E7F1; font-size: .9rem; margin-top: .25rem; }

/* Hakkımızda: hizmet verilen alanlar (2×2 eşit kutu) ve makine grubu etiketleri */
.about-sectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.about-sectors > div { display: flex; align-items: center; gap: .6rem; background: var(--kd-soft); border-radius: 10px; padding: .65rem .8rem; font-weight: 600; color: var(--kd-blue-dark); font-size: .88rem; line-height: 1.25; }
.about-sectors i { font-size: 1.3rem; color: var(--kd-orange); flex: 0 0 auto; }
.chips-light { display: flex; flex-wrap: wrap; gap: .4rem; }
.chips-light span { background: #fff; border: 1px solid var(--kd-border); border-radius: 999px; padding: .25rem .65rem; font-size: .75rem; font-weight: 700; letter-spacing: .03em; color: var(--kd-blue-dark); }

/* İletişim: #form bağlantısıyla gelince form kartı görünür alana kayar, ilk boş alan odaklanır ve kart kısa süre turuncu vurgulanır */
#form { scroll-margin-top: 24px; }
#form .card.form-pulse { animation: formPulse 1.6s ease-out 1; }
@keyframes formPulse { 0% { box-shadow: 0 0 0 0 rgba(240, 136, 0, .6); } 60% { box-shadow: 0 0 0 10px rgba(240, 136, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(240, 136, 0, 0); } }

/* ---- Parçalı teslimat (müşteri): teslimat türü rozeti, sevk ilerlemesi, sevkiyat listesi, kalem sevk durumu; teklif talebi formunda tür seçimi ---- */
.dtype-badge { font-weight: 700; }
.dtype-badge.is-partial { background: #FFF1E0; color: #A85400; border: 1px solid #F5C58B; }
.dtype-badge.is-complete { background: #E6EEF4; color: var(--kd-blue-dark); border: 1px solid #C9D9E6; }
.ready-summary { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 600; color: var(--kd-blue-dark); background: #fff; border: 1px solid var(--kd-border); border-radius: 999px; padding: .2rem .7rem .2rem .6rem; }
.ready-summary .rs-bar { width: 110px; height: 7px; border-radius: 4px; background: #E6EEF4; overflow: hidden; }
.ready-summary .rs-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--kd-blue) 0%, var(--kd-blue-light) 100%); transition: width .35s; }
.ready-summary .rs-done { display: none; color: #15803D; font-weight: 700; align-items: center; gap: .3rem; }
.ready-summary.is-done { border-color: #7CC79A; background: #E8F7EE; color: #15803D; }
.ready-summary.is-done .rs-fill { background: #198754; }
.ready-summary.is-done .rs-done { display: inline-flex; }
.ship-track .ship-row { border-left: 4px solid var(--kd-orange); }
.ship-item { display: inline-block; background: #F3F6FA; border-radius: 6px; padding: .1rem .45rem; margin: .1rem 0; }
.ship-pill { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; font-weight: 700; border-radius: 999px; padding: .15rem .55rem; background: #EEF2F6; color: var(--kd-muted); white-space: nowrap; }
.ship-pill.is-partial { background: #FFF1E0; color: #A85400; }
.ship-pill.is-done { background: #E8F7EE; color: #15803D; }
.dtype-option { display: flex; gap: .75rem; align-items: flex-start; border: 2px solid var(--kd-border); border-radius: 12px; padding: .75rem .9rem; cursor: pointer; height: 100%; transition: border-color .15s, background .15s; }
.dtype-option:hover { border-color: var(--kd-blue-light); }
.dtype-option:has(input:checked) { border-color: var(--kd-orange); background: #FFF8F0; }
.dtype-option input { margin-top: .35rem; flex: 0 0 auto; }
.dtype-option .dt-ico { width: 40px; height: 40px; border-radius: 10px; background: var(--kd-soft); color: var(--kd-orange); display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; flex: 0 0 auto; }
.dtype-option small { display: block; color: var(--kd-muted); line-height: 1.35; margin-top: .15rem; }

/* Ürün galerisi (.pgal*): assets/css/gallery.css — yönetim penceresiyle paylaşılır */
/* Müşteri teklif sayfası: sayı/fiyat/rozet hücreleri tek satır (ürün adı sütunu dışında sarma yok).
   Kalemler tablosu (.qitems) kendi kuralını kullanır: Parça Adı sarar, başlıklar tek satır, sayılar bölünmez */
.quote-page .table:not(.qitems) td:not(:nth-child(2)), .quote-page .table:not(.qitems) th, .quote-page .table:not(.qitems) tfoot td { white-space: nowrap; }
.table.qitems > tfoot > tr > td { white-space: nowrap; }

/* ---- Yükleniyor: çift halka (arama önerileri beklenirken düğmedeki büyütecin yerine) ---- */
.kd-ring { position: relative; width: 18px; height: 18px; display: inline-block; vertical-align: middle; }
.kd-ring::before, .kd-ring::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2.5px solid transparent; }
.kd-ring::before { border-top-color: #fff; border-right-color: #fff; animation: kdSpin 1s linear infinite; }
.kd-ring::after { inset: 4px; border-bottom-color: #FFD9A8; animation: kdSpin .8s linear infinite reverse; }
@keyframes kdSpin { to { transform: rotate(360deg); } }
/* Arama bekletmesi (Sistem › Bakım): "Parçalar aranıyor…" ekranı — yönetimdeki sayfa perdesiyle (kdBusy) aynı görünüm */
#kdWait { position: fixed; inset: 0; z-index: 2000; background: rgba(243,247,250,.85); backdrop-filter: blur(1px); display: flex; align-items: center; justify-content: center; animation: kdWaitIn .2s ease-out; }
#kdWait .kw-card { background: #fff; border: 1px solid var(--kd-border); border-radius: 14px; padding: 1.25rem 1.75rem; text-align: center; box-shadow: 0 16px 48px rgba(31,51,94,.18); min-width: 260px; max-width: calc(100vw - 32px); }
#kdWait .kd-ring { width: 48px; height: 48px; }
#kdWait .kd-ring::before { border-width: 4px; border-top-color: var(--kd-blue); border-right-color: var(--kd-blue); }
#kdWait .kd-ring::after { inset: 10px; border-width: 4px; border-bottom-color: var(--kd-orange); }
#kdWait .kw-msg { font-weight: 700; color: var(--kd-blue-dark); margin-top: .6rem; }
#kdWait .kw-sub { font-size: .8rem; color: var(--kd-muted); margin-top: .2rem; }
@keyframes kdWaitIn { from { opacity: 0; } to { opacity: 1; } }
/* Hesabım özeti: sayı kutuları tıklanabilir (tüm tekliflere gider) */
.acc-kpi a.card { color: inherit; text-decoration: none; transition: box-shadow .15s ease, border-color .15s ease; }
.acc-kpi a.card:hover { border-color: var(--kd-blue); box-shadow: 0 4px 14px rgba(15,105,151,.12); }

/* ---- Cari kart sayfaları (Firma / Fatura / Yetkililer / Sevkiyat): bölüm başlığı üstte tam genişlik, alanlar altında ---- */
.sec-top { margin-bottom: .85rem; }   /* ilk bölümde çizgi yok: kartın üstüne dayanır */
.row + .sec-top, .bill-box + .sec-top, .table-responsive + .sec-top, .list-group + .sec-top { border-top: 2px solid var(--kd-border); margin-top: 1.25rem; padding-top: .85rem; }   /* yalnız bölümler arasında ayırıcı */
.sec-top-h { font-weight: 800; color: var(--kd-blue-dark); font-size: 1.05rem; display: flex; align-items: center; }
.sec-top-h .bi { color: var(--kd-orange); }
.sec-top-d { font-size: .82rem; color: var(--kd-muted); margin-top: .2rem; line-height: 1.45; }
.row + .sec-top.is-bill, .bill-box + .sec-top.is-bill { border-top-color: var(--kd-orange); }
.sec-top.is-bill .sec-top-h { color: #8A4B00; }
.bill-box { background: #FFF8EE; border: 1px solid #F3D9B4; border-radius: 10px; padding: 1rem; }
/* Yetkili / sevkiyat adresi veri girişi paneli: kapalı gelir, "Yeni … Ekle" ya da kalem açar; Vazgeç + Kaydet sağ altta */
.entry-box { background: #F5F9FC; border: 1px solid var(--kd-border); border-radius: 10px; padding: 1rem; animation: kdEntryIn .2s ease-out; }
.entry-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid var(--kd-border); }
@keyframes kdEntryIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .entry-box { animation: none; } }
.same-switch { background: #fff; border: 1px solid var(--kd-border); border-radius: 8px; padding: .55rem .8rem; }
.addr-read { background: #fff; border: 1px dashed #E3B77A; border-radius: 8px; padding: .6rem .8rem; font-size: .85rem; }
.addr-read .lbl { color: var(--kd-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.addr-title { font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--kd-blue-dark); border-bottom: 1px solid var(--kd-border); padding-bottom: .25rem; }
.bill-box .addr-title { color: #8A4B00; border-bottom-color: #F3D9B4; }
/* Sol menü: "Cari Kart Bilgilerim" altındaki bölüm sayfaları (girintili) */
.acc-sub { padding-left: 2.1rem !important; font-size: .875rem; color: var(--kd-blue-dark); border-left: 3px solid transparent; }
.acc-sub:hover { border-left-color: var(--kd-orange); background: var(--kd-soft); }
.acc-sub.is-on { border-left-color: var(--kd-orange); background: var(--kd-soft); font-weight: 700; }
.acc-sub.is-bill .bi { color: var(--kd-orange); }

/* Satır işlem düğmeleri (yetkili / sevkiyat adresi): düzenle + sil yan yana, eşit boy */
.row-act { display: flex; align-items: center; gap: .35rem; flex: 0 0 auto; }
.row-act form { margin: 0; }
.row-act .btn { width: 34px; height: 31px; display: inline-flex; align-items: center; justify-content: center; padding: 0; }

/* ---- Adres kutuları: yazdıkça arama listesi (ülke / il / ilçe / mahalle) ---- */
.geo-box { position: absolute; z-index: 1060; display: none; background: #fff; border: 1px solid var(--kd-border); border-radius: 10px; box-shadow: var(--kd-shadow); max-height: 260px; overflow-y: auto; }
.geo-box.show { display: block; }
.geo-item { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; padding: .4rem .7rem; cursor: pointer; font-size: .9rem; }
.geo-item + .geo-item { border-top: 1px solid var(--kd-soft-2); }
.geo-item:hover, .geo-item.is-on { background: var(--kd-soft); }
.geo-item .t { color: var(--kd-text); }
.geo-item .n { font-size: .75rem; color: var(--kd-muted); white-space: nowrap; }
.geo-empty { padding: .5rem .7rem; font-size: .85rem; color: var(--kd-muted); }
.geo-item .t b { font-weight: 800; color: var(--kd-blue-dark); }   /* yazılan baş harfler */
/* Tam liste (kutu boşken tıklama) harf ayracı: kaydırırken üstte kalır */
.geo-letter { position: sticky; top: 0; z-index: 1; padding: .15rem .7rem; background: #F3F6FA; border-top: 1px solid var(--kd-border); border-bottom: 1px solid var(--kd-border); font-size: .72rem; font-weight: 800; letter-spacing: .06em; color: var(--kd-blue-dark); }
.geo-letter:first-child { border-top: 0; }
.form-control.is-locked { background: var(--kd-soft); color: var(--kd-muted); cursor: not-allowed; }
.geo-note { background: #FFF8EE; border: 1px solid #F3D9B4; color: #7A4300; border-radius: 8px; padding: .45rem .7rem; }
.geo-help { background: var(--kd-soft); border: 1px solid var(--kd-soft-2); color: var(--kd-blue-dark); border-radius: 8px; padding: .45rem .7rem; }
.form-control.is-finding { background: #FFF8EE; border-color: var(--kd-orange); }
[data-geo-pk-find].active { background: var(--kd-orange-deep); border-color: var(--kd-orange-deep); color: #fff; }

/* "PK ile bul" düğmesi: turuncu, kutunun sağ ucuna yuvarlak biçimde oturur */
.btn-pk-find { --bs-btn-color: var(--kd-orange); --bs-btn-border-color: var(--kd-orange); --bs-btn-bg: #fff;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--kd-orange-deep); --bs-btn-hover-border-color: var(--kd-orange-deep);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--kd-orange-dark); --bs-btn-active-border-color: var(--kd-orange-dark);
  border: 1px solid var(--kd-orange); }
.btn-pk-find.active { background: var(--kd-orange-deep); border-color: var(--kd-orange-deep); color: #fff; }
/* Adres bloğundaki kutu+düğme ikilisi tek yuvarlak parça görünür (Bootstrap'ın 4 px köşeleri yerine 10 px) */
[data-geo-block] .input-group > .form-control { border-radius: 10px 0 0 10px; }
[data-geo-block] .input-group > .btn { border-radius: 0 10px 10px 0; }
.btn-pk-find { padding: .25rem .6rem; }

/* ---- Teklif Al · sevkiyat adresi seçim kartları: seçilen kartta ikon kamyona döner, alt kenarda yol akar ---- */
.ship-pick { display: flex; gap: .75rem; align-items: flex-start; border: 2px solid var(--kd-border); border-radius: 12px; padding: .75rem .9rem; cursor: pointer; position: relative; overflow: hidden; transition: border-color .15s, background .15s, box-shadow .15s; }
.ship-pick + .ship-pick { margin-top: .6rem; }
.ship-pick:hover { border-color: var(--kd-blue-light); }
.ship-pick:has(input:checked) { border-color: var(--kd-orange); background: #FFF8F0; box-shadow: 0 2px 10px rgba(240,136,0,.10); }
.ship-pick.is-off { cursor: default; }
.ship-pick input { margin-top: .3rem; flex: 0 0 auto; }
.ship-ico { width: 40px; height: 40px; border-radius: 10px; background: var(--kd-soft); color: var(--kd-blue); display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; flex: 0 0 auto; transition: background .15s, color .15s; }
.ship-ico.is-warn { background: #FDECEC; color: #B3261E; }
.ship-ico .kamyon { display: none; }
.ship-pick:has(input:checked) .ship-ico { background: #FFE9CC; color: var(--kd-orange); }
.ship-pick:has(input:checked) .ship-ico .tur { display: none; }
.ship-pick:has(input:checked) .ship-ico .kamyon { display: inline-block; animation: shipBob 1.1s ease-in-out infinite; }
.ship-name { font-weight: 700; color: var(--kd-blue); }
.ship-addr { color: #2F3B45; font-size: .93rem; line-height: 1.45; margin-top: .1rem; }
.ship-meta { color: var(--kd-muted); font-size: .86rem; margin-top: .2rem; }
.ship-uyari { color: #B3261E; font-size: .84rem; margin-top: .25rem; }
.ship-tag { border-radius: 999px; font-size: .72rem; font-weight: 700; padding: .1rem .5rem; }
.ship-tag.is-def { background: #E8F3EC; color: #1F7A43; border: 1px solid #BFE0CB; }
.ship-tag.is-cari { background: #EAF1F7; color: var(--kd-blue); border: 1px solid #CCDCEA; }
.ship-road { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; border-radius: 3px; opacity: 0; transition: opacity .2s; background-image: repeating-linear-gradient(90deg, var(--kd-orange) 0 12px, rgba(240,136,0,.18) 12px 26px); background-size: 26px 5px; animation: shipRoad 1.2s linear infinite; }
.ship-pick:has(input:checked) .ship-road { opacity: 1; }
@keyframes shipRoad { to { background-position: -26px 0; } }
@keyframes shipBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@media (prefers-reduced-motion: reduce) { .ship-road, .ship-pick .kamyon { animation: none !important; } }

/* ---- Cari kart doluluk halkası: yay doluluk, lacivert çentik teklif sınırı, çentik sonrası ek bilgiler ---- */
.fill-box { border: 1px solid #E3EAF1; background: #FBFCFD; }
@media (max-width: 575.98px) { .fill-box { flex-wrap: wrap; } .fill-box > .flex-grow-1 { flex-basis: calc(100% - 76px - 1rem); } .fill-box > .btn { margin-left: auto; } }   /* telefonda düğme alta iner, kartı taşırmaz */
.fill-ring { width: 76px; height: 76px; flex: 0 0 auto; }
.fill-ring circle, .fill-ring line { fill: none; }
.fill-ring .iz { stroke: #E9EEF3; stroke-width: 7; }
.fill-ring .ek-iz { stroke: #D7E3EC; stroke-width: 7; }
.fill-ring .yay { stroke: var(--kd-orange); stroke-width: 7; stroke-linecap: round; transition: stroke-dasharray .4s; }
.fill-ring.is-ok .yay { stroke: #2E7D4F; }
.fill-ring .sinir { stroke: var(--kd-blue); stroke-width: 2.5; stroke-linecap: round; }
.fill-ring .oran { font-size: 15px; font-weight: 800; fill: var(--kd-blue); }
.fill-ring .alt { font-size: 7.5px; font-weight: 600; fill: #7B8C9B; letter-spacing: .04em; }
.fill-ring .don { transform: rotate(-90deg); transform-origin: 38px 38px; }

/* ---- Zorunlu alanlar: yıldız yerine kutunun kendisi işaretlenir (boşken yumuşak kırmızı çerçeve) ---- */
.kd-req-form .form-control:required:invalid { border-color: #E9A8A2; background: #FFFBFA; }
.kd-req-form .form-control:required:invalid:focus { border-color: var(--kd-blue-light); background: #fff; box-shadow: 0 0 0 .2rem rgba(31,90,138,.12); }
.kd-req-form .form-control:required:valid { border-color: var(--kd-border); }

/* ---- Yetkili Kişilerim: satır kartları (tablo sıkışmasın; bilgiler kişi yanında gruplanır) ---- */
.pc-row { display: flex; align-items: center; gap: .9rem; padding: .7rem .9rem; border: 1px solid var(--kd-border); border-radius: 12px; background: #fff; transition: border-color .15s; }
.pc-row + .pc-row { margin-top: .5rem; }
.pc-row:hover { border-color: #CFE0EE; }
.pc-bas { width: 38px; height: 38px; border-radius: 50%; background: #EEF4F9; color: var(--kd-blue); font-weight: 700; font-size: .85rem; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.pc-kisi { min-width: 190px; flex: 0 0 auto; }
.pc-gorev { background: #F1F5F9; color: #46596B; border-radius: 999px; font-size: .75rem; font-weight: 600; padding: .1rem .5rem; display: inline-block; margin-top: .15rem; }
.pc-bilgi { flex: 1 1 auto; min-width: 0; }
.pc-veri { color: #2F3B45; font-size: .88rem; display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.pc-veri i { color: #8AA0B2; }
.pc-veri a { color: inherit; text-decoration: none; }
.pc-veri a:hover { color: var(--kd-orange); }
.pc-not { color: var(--kd-muted); font-size: .82rem; margin-top: .1rem; }
@media (max-width: 720px) { .pc-row { flex-wrap: wrap; } .pc-kisi { min-width: 0; } }

/* "Yeni sürüm hazır" kartı (assets/js/surum.js): sağ altta, imza şeridinin ve WhatsApp düğmesinin üstünde */
.kd-surum-card { position: fixed; right: 1rem; bottom: 52px; z-index: 1084; width: min(340px, calc(100vw - 2rem)); background: #fff; border: 1px solid var(--kd-border); border-left: 5px solid var(--kd-orange); border-radius: 14px; padding: .85rem 2.4rem .9rem 1rem; box-shadow: 0 16px 40px rgba(8,63,92,.28); animation: kdWtIn .55s cubic-bezier(.2,.9,.3,1.2); }
.wa-float ~ .kd-surum-card { bottom: 122px; }
.kd-surum-card .btn-close { position: absolute; right: .6rem; top: .6rem; font-size: .7rem; }
.kd-surum-card .ks-title { display: flex; align-items: center; gap: .45rem; margin-bottom: .2rem; font-weight: 800; color: var(--kd-blue-dark); }
.kd-surum-card .ks-title i { font-size: 1.15rem; line-height: 1; color: var(--kd-orange-deep); }
.kd-surum-card .ks-text { font-size: .86rem; line-height: 1.35; color: var(--kd-text); }
.kd-surum-card .ks-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
@media (max-width: 991.98px) { .kd-surum-card { bottom: 76px; } .wa-float ~ .kd-surum-card { bottom: 136px; } }
@media (prefers-reduced-motion: reduce) { .kd-surum-card { animation: none; } }

/* Kalem seçimli teklif onayı (13 Eki 2026): müşteri istemediği kalemin işaretini kaldırır → satır açık kırmızı, tutar toplama girmez.
   Kabulden sonra onaylanmayan kalemler listede kalır (açık kırmızı, "Onaylanmadı — fiyata dahil değil"). */
.qitems .qi-pick { width: 1%; white-space: nowrap; }
.qitems .qi-pick .form-check-input { width: 1.25rem; height: 1.25rem; margin: 0; cursor: pointer; }
.table.qitems > tbody > tr.qi-off > td, .table.qitems > tbody > tr.qi-declined > td { background: #FDEDED; }
.table.qitems > tbody > tr.qi-off > td:not(.qi-pick), .table.qitems > tbody > tr.qi-declined .qi-name a, .table.qitems > tbody > tr.qi-declined .qi-name span.fw-600 { color: #6B7280; }
.table.qitems > tbody > tr.qi-off .qi-num { text-decoration: line-through; }
.qitems .qi-dec-note { font-size: .78rem; font-weight: 700; color: #B02A37; margin-top: 2px; }

/* ---------- Son Gezilenler (20.10.2026, onaylı örnek 1): başlıkta düğme + açılır panel; telefonda alt çubukta "Gezilenler" (assets/js/recent.js) ---------- */
.rv-btn { position: relative; }
.rv-badge { position: absolute; top: -6px; right: -10px; background: var(--kd-orange); color: #fff; border-radius: 999px; font-size: .66rem; font-weight: 800; min-width: 18px; height: 18px; line-height: 18px; text-align: center; padding: 0 4px; }
.rv-pop { position: absolute; right: 0; top: calc(100% + 10px); width: 380px; max-width: calc(100vw - 24px); background: #fff; border-radius: 12px; box-shadow: 0 16px 40px rgba(15,40,70,.25); z-index: 1060; overflow: hidden; text-align: left; display: none; }
.rv-pop.open { display: block; }
.rv-pop-bar { position: fixed; left: 12px; right: 12px; top: auto; bottom: 74px; width: auto; max-width: none; z-index: 1075; }
.rv-pop .rv-list { max-height: min(420px, 60vh); overflow: auto; }
.rv-head { display: flex; align-items: center; gap: .5rem; padding: .7rem .85rem; background: #EAF3F9; border-left: 5px solid var(--kd-orange); font-weight: 800; color: #1F335E; }
.rv-head .rv-n { background: var(--kd-orange); color: #fff; border-radius: 999px; font-size: .72rem; padding: .05rem .45rem; }
.rv-head .rv-clear { margin-left: auto; border: 0; background: none; color: #646B79; font-size: .8rem; font-weight: 600; }
.rv-head .rv-clear:hover { color: #B42318; }
.rv-head .rv-x { border: 0; background: none; color: #1F335E; font-size: 1.1rem; line-height: 1; padding: 0 .2rem; }
.rv-row { display: flex; align-items: center; padding-right: .5rem; border-bottom: 1px solid #EDF1F6; }
.rv-item { flex: 1; min-width: 0; display: flex; align-items: center; gap: .65rem; padding: .55rem .75rem; text-decoration: none; color: inherit; }
.rv-row:hover { background: #F5F9FC; }
.rv-img { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 8px; border: 1px solid #E3E9F0; background: #fff center/contain no-repeat; }
.rv-txt { flex: 1; min-width: 0; }
.rv-pn { display: block; font-family: ui-monospace, Consolas, monospace; font-size: .78rem; color: var(--kd-blue, #0F6997); font-weight: 700; }
.rv-pa { display: block; font-size: .88rem; font-weight: 600; color: #1F335E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-br { display: block; font-size: .72rem; color: #646B79; }
.rv-add { flex: 0 0 auto; border: 1px solid #0F6997; background: #fff; color: #0F6997; border-radius: 8px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; }
.rv-add:hover { background: #0F6997; color: #fff; }
.rv-empty { padding: 1.2rem; text-align: center; color: #646B79; font-size: .9rem; }
@media print { .rv-btn, .rv-pop { display: none !important; } }
