/* ════════════════════════════════════════════════════════════════════════
   site-v2-pencere.css — yeni sitenin teklif penceresi (docs/89-ek dilim 3–6: Dilim 4b, _QuoteRequestModalV2). Pencere main dışında ve her
   sayfada çizildiği için bu dosya her V2 sayfasında koşulsuz yüklenir (SiteV2Styles.Always; bağımsız inceleme E1). Sahibi Hat C (CTO kararı
   29.10); iskeleti Dilim K kurdu, içeriği Hat C yazar.
   1.91.140 (CTO kararı 29.10): birden çok sayfa grubunda çizilen iki ortak parça da burada — "Tüm özellikler" (_CampaignFeaturesV2, kök
   .dcs-feats; kampanya, fiyatlar, ana sayfa) ve kampanya kayıt çubuğu (_CampaignBarV2, kök .dcs-cbar). Her seçici bu üç kökten biriyle
   başlar (@media içi dahil; kök listesi SiteV2Styles.RootsOf, bekçi SiteKitV2UnitTests); sayfa kökü (.dcs-page) ve grup kökleri burada
   kullanılmaz, parçalar her sayfa kökünde (dcs-page, dcs-home) aynı görünür. Renkler yalnızca kimlik tokenlarından (--dcs-*; iki tema).
   Satır içi style=, u-* yardımcı sınıfı ve ws-* eski sınıf yok (H-2, H-5); quote-request.js'in beklediği kimlikler ve data-* öznitelikleri
   işaretlemede kalır.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Tüm özellikler (.dcs-feats): liste CampaignFeatureCatalog'dan, paket etiketi katalogdan ── */
.dcs-feats { padding: clamp(56px, 8vw, 104px) 0; background: var(--dcs-bg); color: var(--dcs-text); font-family: var(--dcs-font-sans); line-height: 1.6; }
.dcs-feats *, .dcs-feats *::before, .dcs-feats *::after { box-sizing: border-box; }
.dcs-feats .dcs-feats__shell { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.dcs-feats .dcs-feats__head { max-width: 760px; }
.dcs-feats .dcs-feats__eyebrow { margin: 0 0 16px; font-family: var(--dcs-font-mono); font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--dcs-text-3); }
.dcs-feats .dcs-feats__title { margin: 0; font-size: clamp(26px, 3.6vw, 40px); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; text-wrap: balance; overflow-wrap: anywhere; color: var(--dcs-text); }
.dcs-feats .dcs-feats__lead { max-width: 62ch; margin: 16px 0 0; font-size: 18px; line-height: 1.6; color: var(--dcs-text-2); }
.dcs-feats .dcs-feats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: clamp(28px, 4vw, 44px); }
.dcs-feats .dcs-feats__group { min-width: 0; padding: 20px 20px 12px; border: 1px solid var(--dcs-line); border-radius: 16px; background: var(--dcs-surface); }
.dcs-feats .dcs-feats__group-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--dcs-line); }
.dcs-feats .dcs-feats__icon { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--dcs-text); color: var(--dcs-bg); }
.dcs-feats .dcs-feats__icon svg { display: block; width: 20px; height: 20px; }
.dcs-feats .dcs-feats__group-title { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 16px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; color: var(--dcs-text); }
.dcs-feats .dcs-feats__count { flex: 0 0 auto; display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 8px; border: 1px solid var(--dcs-line); border-radius: 999px; background: var(--dcs-surface-2); color: var(--dcs-text); font-family: var(--dcs-font-mono); font-size: 12px; font-weight: 500; }
.dcs-feats .dcs-feats__list { margin: 0; padding: 0; list-style: none; }
.dcs-feats .dcs-feats__list li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--dcs-line); }
.dcs-feats .dcs-feats__list li:last-child { border-bottom: 0; }
.dcs-feats .dcs-feats__tick { display: block; width: 18px; height: 18px; margin-top: 2px; color: var(--dcs-accent-text); }
.dcs-feats .dcs-feats__list p { min-width: 0; margin: 0; font-size: 15px; line-height: 1.35; }
.dcs-feats .dcs-feats__list strong { display: block; font-weight: 600; color: var(--dcs-text); overflow-wrap: anywhere; }
.dcs-feats .dcs-feats__list span { display: block; margin-top: 2px; font-size: 13px; color: var(--dcs-text-3); }
.dcs-feats .dcs-feats__plan { display: inline-block; margin-left: 6px; padding: 0 8px; border: 1px solid var(--dcs-line); border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.6; color: var(--dcs-text-2); vertical-align: 1px; white-space: nowrap; }
.dcs-feats .dcs-feats__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 36px; }
/* Düğme rengi iki sınıflı: sayfa kapsamındaki a { color: inherit } kuralları (.camp a, .ws-blog-page a; 0,1,1) kit rengini ezmesin */
.dcs-feats .dcs-feats__cta .dcs-btn { gap: 8px; min-height: 52px; padding: 0 24px; font-size: 16px; color: var(--dcs-on-signal); }
.dcs-feats .dcs-feats__cta .dcs-btn:focus-visible { outline: 2px solid var(--dcs-focus); outline-offset: 3px; }
.dcs-feats .dcs-feats__note { margin: 0; font-size: 14px; font-weight: 500; color: var(--dcs-text-2); }
@media (max-width: 1179px) { .dcs-feats .dcs-feats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .dcs-feats .dcs-feats__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .dcs-feats .dcs-feats__lead { font-size: 17px; }
  .dcs-feats .dcs-feats__group { padding: 16px 16px 8px; }
  .dcs-feats .dcs-feats__group-head { gap: 10px; padding-bottom: 12px; }
  .dcs-feats .dcs-feats__icon { width: 36px; height: 36px; border-radius: 10px; }
  .dcs-feats .dcs-feats__icon svg { width: 18px; height: 18px; }
  .dcs-feats .dcs-feats__list li { gap: 9px; padding: 9px 0; }
  .dcs-feats .dcs-feats__cta { flex-direction: column; align-items: stretch; text-align: center; }
  .dcs-feats .dcs-feats__cta .dcs-btn { width: 100%; white-space: normal; }
}

/* ── Kampanya kayıt çubuğu (.dcs-cbar): sayfanın son öğesi, yapışkan. Sayfa boyunca alttadır, sonda kendi yerine oturur (alt bilgiyi örtmez,
   gövdeye alt pay gerekmez). Açık temada mürekkep (üst kenar bant çizgisi, 4b inceleme Öneri 4), koyu temada yüzey 2 (kapanış bandıyla aynı); bant içi odak sinyal. ── */
.dcs-cbar { position: sticky; bottom: 0; z-index: 50; padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--dcs-band-line); background: var(--dcs-ink); color: var(--dcs-paper); font-family: var(--dcs-font-sans); }
html[data-theme="dark"] .dcs-cbar { border-top-color: var(--dcs-line); background: var(--dcs-surface-2); }
.dcs-cbar *, .dcs-cbar *::before, .dcs-cbar *::after { box-sizing: border-box; }
.dcs-cbar .dcs-cbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.dcs-cbar .dcs-cbar__copy { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; min-width: 0; margin: 0; line-height: 1.3; }
.dcs-cbar .dcs-cbar__headline { font-size: 17px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; color: var(--dcs-paper); }
.dcs-cbar .dcs-cbar__details { display: inline-flex; flex-wrap: wrap; gap: 2px 0; font-size: 14px; color: var(--dcs-band-text); }
.dcs-cbar .dcs-cbar__detail + .dcs-cbar__detail::before { content: "·"; margin: 0 8px; color: var(--dcs-band-line); }
.dcs-cbar .dcs-cbar__btn { flex: 0 0 auto; gap: 8px; min-height: 48px; padding: 0 24px; font-size: 16px; color: var(--dcs-on-signal); }
.dcs-cbar .dcs-cbar__btn:focus-visible { outline: 2px solid var(--dcs-signal); outline-offset: 3px; }
@media (max-width: 899px) { .dcs-cbar .dcs-cbar__detail--wide { display: none; } }
@media (max-width: 639px) {
  .dcs-cbar { padding-top: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
  .dcs-cbar .dcs-cbar__inner { gap: 10px; padding: 0 12px; }
  .dcs-cbar .dcs-cbar__copy { flex-direction: column; align-items: flex-start; gap: 1px; }
  .dcs-cbar .dcs-cbar__headline { font-size: 16px; }
  .dcs-cbar .dcs-cbar__details { font-size: 13px; }
  .dcs-cbar .dcs-cbar__detail + .dcs-cbar__detail::before { content: none; }
  .dcs-cbar .dcs-cbar__btn { min-height: 46px; padding: 0 18px; font-size: 15px; }
}
@media (max-width: 359px) { .dcs-cbar .dcs-cbar__btn { padding: 0 14px; } .dcs-cbar .dcs-cbar__arrow { display: none; } }
@media (forced-colors: active) { .dcs-cbar { border-top-color: CanvasText; } }
@media print { .dcs-cbar { display: none; } }

/* ── Teklif penceresi (.dcs-quote, _QuoteRequestModalV2): main dışında, her V2 sayfasında. İşaretleme _QuoteRequestModal ile aynı, yalnızca
   sınıf adları farklı (quote-request.js kimlik ve data-* ile çalışır). Dar ekranda alttan açılan sayfa, 560 px'ten ortada pencere. Pencere
   yüzeyde, alanlar zeminde; alan kenarı zeminle ve yüzeyle en az 3:1, odak halkası temanın odak rengi, hata metni yalnızca renkle değil
   kenarla da ayrışır. Kart düzeni ve kit alanı (.dcs-page .dcs-field) main içinde kaldığı için pencere kendi alan kurallarını taşır. ── */
.dcs-quote { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: flex-end; justify-content: center; padding: 0; background: color-mix(in srgb, var(--dcs-ink) 60%, transparent); font-family: var(--dcs-font-sans); }
.dcs-quote[hidden] { display: none; }
/* 4b inceleme Öneri 8: koyu temada form denetimleri (seçim kutusu, sayı oku, otomatik doldurma) koyu çizilir; kitteki .dcs-field__input deseni.
   Cihazın koyu teması başlıktaki betikle data-theme="dark" olur; pencere betikle açıldığı için betiksiz hâl yok. */
html[data-theme="dark"] .dcs-quote { color-scheme: dark; }
.dcs-quote *, .dcs-quote *::before, .dcs-quote *::after { box-sizing: border-box; }
.dcs-quote .dcs-quote__dialog { position: relative; width: 100%; max-width: 480px; max-height: min(92vh, 760px); overflow-y: auto; padding: 24px 20px calc(20px + env(safe-area-inset-bottom)); border: 1px solid var(--dcs-line); border-radius: 20px 20px 0 0; background: var(--dcs-surface); color: var(--dcs-text); line-height: 1.5; }
.dcs-quote .dcs-quote__close { position: absolute; top: 10px; right: 10px; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: transparent; color: var(--dcs-text-2); font: inherit; font-size: 26px; line-height: 1; cursor: pointer; }
.dcs-quote .dcs-quote__close:hover { background: var(--dcs-bg); color: var(--dcs-text); }
.dcs-quote .dcs-quote__title { margin: 0 48px 8px 0; font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; color: var(--dcs-text); text-wrap: balance; }
.dcs-quote .dcs-quote__desc { margin: 0 0 16px; font-size: 15px; line-height: 1.5; color: var(--dcs-text-2); }
.dcs-quote .dcs-quote__alert { margin: 0 0 12px; padding: 10px 12px; border: 2px solid var(--dcs-error); border-radius: 12px; background: var(--dcs-bg); color: var(--dcs-error); font-size: 15px; font-weight: 600; }
.dcs-quote .dcs-quote__alert[data-variant="ok"] { border: 1px solid var(--dcs-line); border-left: 4px solid var(--dcs-text); color: var(--dcs-text); font-weight: 500; }
.dcs-quote .dcs-quote__form { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.dcs-quote .dcs-quote__field label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--dcs-text); }
.dcs-quote .dcs-quote__field input,
.dcs-quote .dcs-quote__field textarea { display: block; width: 100%; min-height: 44px; margin: 0; padding: 10px 14px; border: 1px solid var(--dcs-field-line); border-radius: 12px; background: var(--dcs-bg); color: var(--dcs-text); font: inherit; font-size: 16px; }
.dcs-quote .dcs-quote__field textarea { min-height: 104px; resize: vertical; }
.dcs-quote .dcs-quote__field input::placeholder,
.dcs-quote .dcs-quote__field textarea::placeholder { color: var(--dcs-text-3); opacity: 1; }
.dcs-quote .dcs-quote__field input:focus-visible,
.dcs-quote .dcs-quote__field textarea:focus-visible { outline: 2px solid var(--dcs-focus); outline-offset: 2px; border-color: var(--dcs-text); }
.dcs-quote .dcs-quote__req { color: var(--dcs-error); }
.dcs-quote .dcs-quote__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dcs-quote .dcs-quote__trap { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.dcs-quote .dcs-quote__turnstile { min-height: 4px; }
.dcs-quote .dcs-quote__check { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; font-size: 14px; line-height: 1.5; color: var(--dcs-text-2); cursor: pointer; }
.dcs-quote .dcs-quote__check input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--dcs-text); }
.dcs-quote .dcs-quote__check input:focus-visible { outline: 2px solid var(--dcs-focus); outline-offset: 2px; }
/* website.css a { color: inherit; text-decoration: none }: onay bağlantısı metinden ayırt edilir (WCAG 1.4.1) */
.dcs-quote .dcs-quote__check a { color: var(--dcs-text); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.dcs-quote .dcs-quote__check a:focus-visible { outline: 2px solid var(--dcs-focus); outline-offset: 2px; }
.dcs-quote .dcs-quote__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 6px; }
.dcs-quote .dcs-quote__actions .dcs-btn { cursor: pointer; }
.dcs-quote .dcs-quote__actions .dcs-btn--primary { color: var(--dcs-on-signal); }
.dcs-quote .dcs-quote__actions .dcs-btn--primary:disabled { opacity: .5; cursor: not-allowed; }
.dcs-quote .dcs-quote__actions .dcs-btn:focus-visible,
.dcs-quote .dcs-quote__close:focus-visible { outline: 2px solid var(--dcs-focus); outline-offset: 2px; }
@media (min-width: 560px) {
  .dcs-quote { align-items: center; padding: 20px; }
  .dcs-quote .dcs-quote__dialog { padding: 28px 28px 24px; border-radius: 20px; }
}
@media (max-width: 420px) { .dcs-quote .dcs-quote__pair { grid-template-columns: minmax(0, 1fr); } }
@media (forced-colors: active) { .dcs-quote .dcs-quote__dialog { border-color: CanvasText; } }
