/* ============================================================
   Ekin Medikal — 3D sürüm cila katmanı (3d.css'ten SONRA yüklenir)
   Amaç: açık temadan kalan yüzeyleri, soluk teal'i, kaybolan/parlayan
   kenarlıkları, açık renge dönen hover'ları ve odak halkalarını
   koyu cam diline oturtmak. Yalnızca renk/yüzey/kenarlık; içerik ve
   yerleşim yapısı değişmez. Ürün fotoğrafı ve logo kutularına
   (.logo-img, .p-media, .group-thumb, .pm-media) dokunulmaz.
   ============================================================ */

/* ---------- 1. Tokenlar ----------
   kurumsal.css `:root` bloğu, style.css'in [data-theme="dark"] değerlerini
   (aynı özgüllük, sonra yüklenme) eziyordu: --teal #0a6b5d, --line #e1e0d9,
   --line-strong #c8c7be, --teal-tint #e3f0ec açık tema değerleriyle kalıyordu.
   --bg-2 bilerek burada DEĞİŞTİRİLMEZ (.pm-media onu kullanıyor); tüketicileri
   aşağıda tek tek koyulaştırılır. */
:root,
:root[data-theme="dark"] {
  --bg: #04101a;
  --surface: #0a1b29;
  --line: rgba(255, 255, 255, 0.11);
  --line-strong: rgba(255, 255, 255, 0.24);
  --ink: #e9f1f6;
  --ink-2: #b9c8d4;
  --ink-3: #94a7b6;
  --teal: #35c9b0;
  --teal-hover: #5fe0c8;
  --teal-tint: rgba(53, 201, 176, 0.13);
  --navy: #061420;
  --navy-2: #0a2030;
  --navy-ink: #e6eef5;
  --wa: #15803d;
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.45), 0 18px 44px -18px rgba(0, 0, 0, 0.8);

  --glass: rgba(8, 24, 36, 0.62);
  --glass-b: rgba(255, 255, 255, 0.11);
  --px-accent: #5fe0c8;
  --px-accent-hi: #8cf0dc;
  --px-on-accent: #03221d;
  --px-hair: rgba(95, 224, 200, 0.42);
  --px-field: rgba(2, 10, 16, 0.6);
  --px-focus: #8cf0dc;
}

html { scrollbar-color: rgba(95, 224, 200, 0.38) #04101a; }
::selection { background: rgba(95, 224, 200, 0.3); color: #fff; }

/* Serbest duran metin 3D sahnenin parlak nesnesi üstünden geçerken okunur kalsın */
main { text-shadow: 0 0 14px rgba(4, 16, 26, 0.9), 0 1px 2px rgba(4, 16, 26, 0.55); }
.hero-3d h1, .btn, .chip, mark, input, select, textarea, .hero-tag, .avatar, .cert-thumb, #globeSvg { text-shadow: none; }

/* ---------- 2. Odak ---------- */
:focus-visible { outline: 2px solid var(--px-focus); outline-offset: 3px; }
.btn:focus-visible, .chip:focus-visible, .faq-q:focus-visible, .lg-chip:focus-visible,
.globe-zoom button:focus-visible, .pm-close:focus-visible, .lb-close:focus-visible,
.to-top:focus-visible, .burger:focus-visible, .cert-thumb:focus-visible, .socials a:focus-visible {
  outline: 2px solid var(--px-focus); outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(4, 16, 26, 0.9), 0 0 0 7px rgba(140, 240, 220, 0.25);
}
.faq-q:focus-visible { outline-offset: -3px; box-shadow: none; border-radius: 8px; }
.cert-thumb:focus-visible { outline-offset: -3px; box-shadow: none; }
.route:focus-visible, .group-card:focus-visible, .cta-routes a:focus-visible { outline-offset: -2px; }
main:focus { outline: none; }
.form-panel:focus { outline: none; }

/* ---------- 3. Bağlantılar ve vurgu metni ---------- */
.link { color: var(--px-accent); }
a.link:hover, button.link:hover, .group-card:hover .link { color: var(--px-accent-hi); }
.legal-doc a, .gm-facts a, .form-privacy a, .map-consent p a, .reg-note a, .note a, .faq-a a, .net-note a {
  color: var(--px-accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(95, 224, 200, 0.5);
}
.legal-doc a:hover, .gm-facts a:hover, .form-privacy a:hover, .map-consent p a:hover, .faq-a a:hover { color: var(--px-accent-hi); text-decoration-color: currentColor; }
.route .mono, .route .arrow, .svc .n, .svc-row .n, .step::before, .tl.light li::before, .pm-brand { color: var(--px-accent); }
.contact-card a:hover { color: var(--px-accent); }
.crumbs a:hover { color: #fff; }
.muted, .net-note, .pm-note, .form-privacy, .contact-card small, .contact-card h3, .cta-routes small { color: var(--ink-3); }
.topline a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 4. Düğmeler ---------- */
.btn { border-radius: 6px; font-weight: 600; }
:root:root .btn.btn-primary {
  background: linear-gradient(180deg, #6fe6d0 0%, #35c9b0 100%);
  color: var(--px-on-accent);
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 10px 28px -12px rgba(53, 201, 176, 0.65);
}
:root:root .btn.btn-primary:hover {
  background: linear-gradient(180deg, #a2f5e4 0%, #5fe0c8 100%);
  color: var(--px-on-accent);
  border-color: rgba(255, 255, 255, 0.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 14px 34px -12px rgba(95, 224, 200, 0.8);
}
:root:root .btn.btn-secondary {
  background: rgba(255, 255, 255, 0.045);
  color: var(--ink);
  border-color: rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
:root:root .btn.btn-secondary:hover {
  background: rgba(53, 201, 176, 0.14);
  color: #fff;
  border-color: var(--px-accent);
}
:root:root .btn.btn-wa { background: var(--wa); color: #fff; border-color: rgba(255, 255, 255, 0.16); }
:root:root .btn.btn-wa:hover { background: #126c34; border-color: rgba(255, 255, 255, 0.32); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }

/* ---------- 5. Üst bar / gezinme ---------- */
.topline { border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.nav > a:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }
.nav > a[aria-current="page"], .nav > a.active { color: var(--px-accent); box-shadow: inset 0 -2px 0 var(--px-accent); }
.burger { border-color: rgba(255, 255, 255, 0.22); background: rgba(255, 255, 255, 0.04); }
.burger:hover { border-color: var(--px-accent); }
.skip-link { background: #0a1b29; color: #fff; border-color: var(--px-accent); }
@media (max-width: 1100px) {
  .nav { background: rgba(5, 17, 27, 0.97); border-left: 1px solid var(--glass-b); box-shadow: -30px 0 60px -20px rgba(0, 0, 0, 0.7); }
  .nav-contact { border-top-color: var(--glass-b); }
  .nav-contact .mono { color: var(--ink-3); }
}

/* ---------- 6. Cam yüzeyler (3d.css listesinde olmayanlar) ---------- */
.group-card, .model, .cta, .catalog-cta, .route-card, .empty-state, .legal-doc {
  background: var(--glass); border-color: var(--glass-b);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.group-card:hover, .p-card:hover, .cert-card:hover, .route-card:hover { border-color: rgba(95, 224, 200, 0.45); }
.route:hover { background: rgba(53, 201, 176, 0.12); }
.routes-grid { border-color: var(--glass-b); }
.route { border-color: var(--glass-b); }
.model.hi { border-color: rgba(95, 224, 200, 0.6); box-shadow: inset 0 3px 0 var(--px-accent), 0 24px 60px -30px rgba(53, 201, 176, 0.5); }
.band-dark {
  background: linear-gradient(135deg, rgba(12, 48, 54, 0.66) 0%, rgba(6, 22, 34, 0.74) 55%, rgba(8, 28, 48, 0.7) 100%);
  border: 1px solid var(--glass-b);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 30px 80px -40px rgba(0, 0, 0, 0.8);
}
.page-hero.dark { background: linear-gradient(180deg, rgba(4, 16, 26, 0.2) 0%, rgba(4, 16, 26, 0.55) 100%); border-bottom: 1px solid var(--glass-b); }
.cta-routes a { border-color: var(--glass-b); background: rgba(255, 255, 255, 0.025); }
.cta-routes a:hover { background: rgba(53, 201, 176, 0.12); border-color: rgba(95, 224, 200, 0.5); }
.cta-routes svg { color: var(--px-accent); }
.empty-state { border-color: rgba(255, 255, 255, 0.24); }

/* Editoryal üst çizgiler: düz beyaz yerine teal saç çizgisi */
.cred-row, .svc-grid, .svc-rows, .tl.light li { border-top-color: var(--px-hair); }
.cred-row { border-bottom-color: var(--glass-b); }
.col { border: 1px solid var(--glass-b); border-top-color: var(--px-hair); border-radius: 6px; padding: 22px 22px 24px; }
.step { border-top-color: var(--glass-b); }

/* Hizmet sütunları: cam zemin tek panele alınır, metin kenara yapışmaz */
.svc-grid { background: var(--glass); border: 1px solid var(--glass-b); border-top-color: var(--px-hair); border-radius: 6px; overflow: hidden; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.svc-grid .svc { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; padding: 26px 24px 30px; }

/* ---------- 7. Etiket, not, rozet ---------- */
.hero-tag {
  background: rgba(4, 16, 26, 0.84); color: #e9f1f6;
  border: 1px solid rgba(95, 224, 200, 0.4);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 12px 30px -14px rgba(0, 0, 0, 0.8);
}
.hero-tag b { color: var(--px-accent); }
.label, .label-title { border-color: rgba(255, 255, 255, 0.2); }
.label dt { color: var(--ink-3); }
.note, .reg-note { background: rgba(53, 201, 176, 0.1); border-color: var(--glass-b); border-left-color: var(--px-accent); color: var(--ink-2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.note strong, .reg-note strong { color: #fff; }
.scope span { background: rgba(255, 255, 255, 0.045); border-color: rgba(255, 255, 255, 0.2); color: var(--ink); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.tech-pills span { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.2); color: var(--ink-2); }
.chips-mono span { border-color: rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.03); }
.avatar { background: rgba(53, 201, 176, 0.16); color: var(--px-accent); box-shadow: inset 0 0 0 1px rgba(95, 224, 200, 0.35); }
mark.todo { background: rgba(255, 196, 61, 0.13); color: #ffd98a; border: 1px dashed rgba(255, 196, 61, 0.5); }
.tick li::before { background: var(--px-accent); }
.gm-lead { border-left-color: var(--px-accent); }
.gm-facts { border-top-color: var(--glass-b); }
.story-media img, .gm-photo, .gm-fig img, .mission-img, .facility-imgs img, .hero-photos img { border-color: rgba(255, 255, 255, 0.14); }

/* ---------- 8. Belgeler ---------- */
/* Belge taraması beyaz kâğıt olarak kalır; çevresindeki açık gri kutu koyu paspartuya döner */
.cert-thumb { background: rgba(2, 10, 16, 0.62); border-bottom-color: var(--glass-b); padding: 14px 14px 0; }
.cert-thumb img { background: transparent; object-position: center bottom; filter: brightness(0.94); transition: filter 0.25s; }
.cert-card:hover .cert-thumb img, .cert-thumb:focus-visible img { filter: none; }

/* ---------- 9. SSS ---------- */
.faq-list { gap: 10px; }
.faq-item, .faq-item:last-child { border: 1px solid var(--glass-b); border-radius: 8px; overflow: hidden; transition: border-color 0.2s, background 0.2s; }
.faq-item:hover { border-color: rgba(255, 255, 255, 0.22); }
.faq-item.open { border-color: rgba(95, 224, 200, 0.45); background: rgba(9, 30, 42, 0.72); }
.faq-q { padding: 18px 22px; color: var(--ink); }
.faq-q:hover { color: #fff; }
.faq-q svg { color: var(--px-accent); }
.faq-a p { padding: 0 22px 20px; }

/* ---------- 10. Formlar ---------- */
.form-field label { color: var(--ink); }
.form-field label small { color: var(--ink-3); }
.form-field input, .form-field select, .form-field textarea, .search-box input {
  background: var(--px-field); color: var(--ink);
  border-color: rgba(255, 255, 255, 0.22);
  caret-color: var(--px-accent);
}
.form-field input:hover, .form-field select:hover, .form-field textarea:hover, .search-box input:hover { border-color: rgba(255, 255, 255, 0.38); }
.form-field input::placeholder, .form-field textarea::placeholder, .search-box input::placeholder { color: #8499a9; opacity: 1; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus, .search-box input:focus {
  border-color: var(--px-accent);
  box-shadow: 0 0 0 3px rgba(95, 224, 200, 0.28);
  background: rgba(2, 10, 16, 0.78);
}
.form-field input:focus-visible, .form-field select:focus-visible, .form-field textarea:focus-visible, .search-box input:focus-visible { outline: 2px solid var(--px-focus); outline-offset: 1px; }
.form-field select option, .form-field select optgroup { background: #0a1b29; color: #e9f1f6; }
.form-field input:-webkit-autofill, .form-field textarea:-webkit-autofill {
  -webkit-text-fill-color: #e9f1f6; box-shadow: 0 0 0 1000px #0a1b29 inset; caret-color: #e9f1f6;
}
.form-field.invalid input, .form-field.invalid textarea, .form-field.invalid select { border-color: #ff7b7b; box-shadow: 0 0 0 3px rgba(255, 123, 123, 0.2); }
.form-hint { color: #ff9a9a; }
.search-box svg { color: var(--ink-3); }
.search-box input::-webkit-search-cancel-button { filter: invert(1) opacity(0.7); }

/* ---------- 11. Filtre çipleri ---------- */
.chip { background: rgba(255, 255, 255, 0.045); border-color: rgba(255, 255, 255, 0.2); color: var(--ink-2); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.chip:hover { border-color: var(--px-accent); color: #fff; background: rgba(53, 201, 176, 0.1); }
.chip.active { background: rgba(53, 201, 176, 0.2); border-color: var(--px-accent); color: #d9fff7; }
.chip .cnt { opacity: 0.8; }

/* ---------- 12. Yasal sayfalar ---------- */
.legal-doc { border: 1px solid var(--glass-b); border-radius: 10px; padding: clamp(22px, 4vw, 48px); background: rgba(6, 20, 31, 0.66); }
.legal-doc h2 { color: #fff; }
.legal-doc strong { color: var(--ink); }
.legal-doc .kv { border-color: var(--glass-b); }
.legal-doc .kv dt, .legal-doc .meta { color: var(--ink-3); }
.legal-doc .kv dd { color: var(--ink); }
.legal-table { background: rgba(2, 10, 16, 0.4); }
.legal-table th, .legal-table td { border-color: rgba(255, 255, 255, 0.14); color: var(--ink-2); }
.legal-table th { background: rgba(53, 201, 176, 0.13); color: #c9f5ec; }
.table-wrap { scrollbar-color: rgba(95, 224, 200, 0.4) transparent; }

/* ---------- 13. Harita ---------- */
.map-frame { border-color: var(--glass-b); background: var(--glass); }
/* .map-frame line-height:0 taşıyor; onay metninin satırları üst üste biniyordu */
.map-consent { line-height: 1.6; border: 0; border-radius: 0; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; min-height: 220px; align-content: center; color: var(--ink-2); }
.map-consent p { max-width: 70ch; }
.map-consent strong { color: #fff; }

/* ---------- 14. Küresel ağ sayfası ---------- */
.net-stats span { background: var(--glass); border-color: var(--glass-b); color: var(--ink-2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.net-stats b { color: #fff; }
.globe-wrap { border-color: var(--glass-b); }
.route-tags span { background: rgba(255, 255, 255, 0.06); color: var(--ink-2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07); }
.route-card .net-note { color: var(--ink-3); }
.globe-zoom button { border-color: rgba(255, 255, 255, 0.24); }
.globe-zoom button:hover { background: rgba(53, 201, 176, 0.25); border-color: var(--px-accent); }

/* ---------- 15. Diyaloglar ---------- */
.modal, #lightbox { background: rgba(2, 8, 13, 0.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.pm-card { background: rgba(7, 21, 32, 0.97); border-color: rgba(255, 255, 255, 0.16); box-shadow: 0 40px 100px -30px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(95, 224, 200, 0.08); }
.pm-name { color: #fff; }
.pm-desc, .pm-feats li { color: var(--ink-2); }
.pm-feats svg { color: var(--px-accent); }
.pm-close { background: rgba(4, 16, 26, 0.85); border-color: rgba(255, 255, 255, 0.28); color: #fff; }
.pm-close:hover, .lb-close:hover { border-color: var(--px-accent); background: rgba(53, 201, 176, 0.22); }
.lb-close { background: rgba(4, 16, 26, 0.7); border-color: rgba(255, 255, 255, 0.34); }
#lightbox img { box-shadow: 0 30px 90px -20px rgba(0, 0, 0, 0.9); }
.lb-cap { color: var(--ink); }

/* ---------- 16. Alt bilgi ve yüzen öğeler ---------- */
.footer { border-top: 1px solid var(--glass-b); color: rgba(230, 238, 245, 0.8); }
.footer h3 { color: var(--px-accent); }
.footer li svg { color: var(--px-accent); }
.footer li a:hover, .f-legal-nav a:hover { color: #fff; }
.f-legal-nav a { color: var(--ink-2); opacity: 1; text-decoration-color: rgba(255, 255, 255, 0.35); }
.f-legal-nav a:hover { text-decoration-color: var(--px-accent); }
.f-legal, .f-bottom, .f-bottom .mono { color: rgba(230, 238, 245, 0.66); }
.f-bottom { border-top-color: var(--glass-b); }
.socials a { border-color: rgba(255, 255, 255, 0.2); }
.socials a:hover { border-color: var(--px-accent); background: rgba(53, 201, 176, 0.16); color: #fff; }
.to-top { background: rgba(8, 24, 36, 0.8); border-color: rgba(255, 255, 255, 0.24); color: var(--ink); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.to-top:hover { border-color: var(--px-accent); color: var(--px-accent); }
.wa-float { border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.8); }
/* Sabit WhatsApp / yukarı düğmeleri sayfa sonunda alt satırın üstüne binmesin */
@media (max-width: 1500px) {
  .f-bottom { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- 17. Dar ekran ---------- */
@media (max-width: 1024px) {
  .svc-grid .svc:nth-child(n+3) { border-top-color: var(--glass-b); }
}
@media (max-width: 600px) {
  .svc-grid .svc + .svc { border-top: 1px solid var(--glass-b); }
  .faq-q { padding: 16px 16px; }
  .faq-a p { padding: 0 16px 18px; }
  .col { padding: 18px 18px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .cert-thumb img, .faq-item { transition: none; }
}
