/* ==========================================================================
   CSB - Alivre Yönetim Paneli entegrasyon düzeltmeleri
   Onaylı style.css değiştirilmez; yalnızca entegrasyonun gerektirdiği küçük ekler burada tutulur.
   ========================================================================== */

/* Açılır menünün klavye ile de kullanılabilmesi (hover davranışının focus karşılığı). */
.nav-item-has-dropdown:focus-within .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Onaylı tasarımda 580px mega menü, 821-1239px aralığında sağdan kırpılıyordu (tetikleyici + 580px > ekran).
   Bu aralıkta menü tetikleyicinin altında ortalanır; transform animasyonu korunur, 1240px+ görünüm değişmez. */
@media (min-width: 821px) and (max-width: 1239px) {
  .nav-dropdown-mega {
    left: 50%;
    margin-left: -290px;
  }
}

/* Onaylı tasarımda masaüstü header ~880px genişlik istiyor; 821-899px aralığında "Görüşme Talep Edin"
   butonu ekrandan taşıyordu. Bu dar aralıkta yalnızca header butonu gizlenir (aynı CTA sayfa içinde ve
   sabit telefon butonunda mevcut). Diğer tüm genişliklerde onaylı görünüm aynen korunur. */
@media (min-width: 821px) and (max-width: 899px) {
  .nav-actions .btn {
    display: none;
  }

  /* Aynı aralıkta 290px'lik standart açılır menü de sağdan taşıyordu; tetikleyicinin sağına hizalanır. */
  .nav-dropdown:not(.nav-dropdown-mega) {
    left: auto;
    right: 0;
  }
}

/* Onaylı mobil header (logo + buton + menü ikonu) en az ~393px istiyor; 360-399px telefonlarda menü ikonu
   ekran dışına taşıyor ve mobil menü açılamıyordu. Bu genişliklerde yalnızca header butonu gizlenir
   (aynı CTA hero alanında ve sabit telefon butonunda mevcut). 400px ve üzeri onaylı görünüm aynen korunur. */
@media (max-width: 399px) {
  .nav-actions .btn {
    display: none;
  }
}

/* Danışmanlık mega menüsü 7 aileyi gösterir; 2 sütunlu onaylı ızgarada tek kalan son öğe tam genişlik kullanır. */
.nav-dropdown-mega > a:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

/* Danışmanlık sayfası: bölüm bağlantıları (#aile) yapışkan header'ın altında kalmasın. */
.editorial-row[id] {
  scroll-margin-top: calc(var(--header-height) + 1.5rem);
}

/* Danışmanlık sayfası: her ailedeki danışmanlık alanlarının detay bağlantıları (onaylı .service-item-list stili). */
.csb-consultancy-links a {
  color: var(--corporate-navy);
  font-weight: 700;
  transition: var(--transition-fast);
}

.csb-consultancy-links a:hover,
.csb-consultancy-links a:focus-visible {
  color: var(--accent-gold);
}

/* Uzun danışmanlık alanı adlarında breadcrumb dar ekranda sıkışmak yerine satır kaydırır. */
.breadcrumb-nav {
  flex-wrap: wrap;
  row-gap: 0.25rem;
}

/* Eğitimler sayfası: grup kartı bağlantıları (#grup) yapışkan header'ın altında kalmasın. */
.education-card[id] {
  scroll-margin-top: calc(var(--header-height) + 1.5rem);
}

/* Eğitim kartlarındaki ve eğitim detayındaki eğitim bağlantıları (onaylı .service-item-list stili). */
.csb-training-links a {
  color: var(--corporate-navy);
  font-weight: 600;
  transition: var(--transition-fast);
}

.csb-training-links a:hover,
.csb-training-links a:focus-visible {
  color: var(--accent-gold);
}

.csb-training-links li,
.page-hero-title {
  overflow-wrap: break-word;
}

.csb-training-siblings [aria-current="page"] {
  font-weight: 700;
  color: var(--accent-gold);
}

.detail-main .csb-training-siblings {
  margin-left: 0;
}

/* Eğitim kartlarında liste uzunlukları farklı olduğundan boşluğu paragraf değil liste doldurur;
   böylece başlık, açıklama ve liste kart üstünde hizalı kalır, bağlantı kart altına yaslanır. */
.education-card:has(.csb-training-links) p {
  flex-grow: 0;
}

.education-card .csb-training-links {
  flex-grow: 1;
}

/* ---------- İletişim formu (Faz 5): gerçek gönderimde gereken hata / onay / bağlam durumları ---------- */

/* Onaylı tasarımda adres büyük harfle yazılıyor; değer panelde normal yazımla tutulur (lang="tr" ile İ/I doğru). */
.csb-uppercase {
  text-transform: uppercase;
}

.csb-form-alert {
  border-radius: var(--radius-sm, 6px);
  padding: 0.9rem 1.1rem;
  margin-bottom: 1.5rem;
  font-size: 0.92rem;
  line-height: 1.55;
}

.csb-form-alert p {
  margin: 0;
}

.csb-form-alert ul {
  margin: 0.5rem 0 0;
  padding-left: 1.2rem;
}

.csb-form-alert-error {
  background: #fef2f2;
  border: 1px solid #fca5a5;
  color: #991b1b;
}

.field-error {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #b91c1c;
}

.field-input[aria-invalid="true"],
.field-select[aria-invalid="true"],
.field-textarea[aria-invalid="true"] {
  border-color: #dc2626;
}

.csb-form-context {
  margin: 0 0 0.6rem;
  padding: 0.55rem 0.8rem;
  border-left: 3px solid var(--accent-gold);
  background: var(--accent-gold-light);
  font-size: 0.9rem;
  color: var(--text-main);
}

.csb-form-context a {
  color: var(--corporate-navy);
  font-weight: 700;
}

.csb-consent {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.6rem;
}

.csb-consent input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.15rem;
  flex: 0 0 auto;
  accent-color: var(--corporate-navy);
}

.csb-consent label {
  flex: 1 1 0;
  min-width: 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--text-secondary);
}

.csb-consent label a {
  color: var(--corporate-navy);
  font-weight: 700;
  text-decoration: underline;
}

/* Onaylı style.css girdilerde odak çerçevesini kaldırır; beyan kutusunun klavye odağı görünür kalır. */
.csb-consent input[type="checkbox"]:focus-visible,
.csb-consent label a:focus-visible {
  outline: 2px solid var(--accent-gold);
  outline-offset: 2px;
}

.csb-consent .field-error {
  flex-basis: 100%;
  margin-top: 0;
}

.csb-consent-placeholder {
  font-style: italic;
}

.consult-form-box:focus {
  outline: none;
}

/* ---------- Kurumsal sayfa (Faz 6) ---------- */

/* Ekran okuyucular için görünmez başlık (görsel tasarım değişmez). */
.csb-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Başlık sırası (h1 > h2 > h3) için onaylı h3 / h5 görünümleri h2 / h3 etiketlerinde aynen uygulanır. */
.csb-corporate .editorial-content-box h2 {
  font-family: var(--font-serif);
  font-size: 2.15rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--corporate-navy);
  margin-bottom: 1.25rem;
  letter-spacing: -0.3px;
  overflow-wrap: break-word;
}

.csb-corporate .editorial-cta-text h2 {
  font-family: var(--font-serif);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 0.75rem;
}

.csb-corporate .pillar-item h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--accent-gold);
  margin-bottom: 0.35rem;
}

/* Vizyon / misyon kartlarında müşteri metni birden fazla paragraftan oluşur. */
.csb-corporate-principles .consulting-family-card p:not(:last-child) {
  margin-bottom: 0.75rem;
  flex-grow: 0;
}

/* Müşteri manifestosu beş ilke içerir (onaylı tasarımda dört sütun). */
.csb-corporate .manifesto-pillars {
  grid-template-columns: repeat(5, 1fr);
}

.csb-manifesto-text {
  margin-top: 2rem;
  max-width: 900px;
}

.csb-manifesto-text p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-light-secondary);
}

.csb-manifesto-text p + p {
  margin-top: 1rem;
}

@media (max-width: 1100px) {
  .csb-corporate .manifesto-pillars {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 820px) {
  .csb-corporate .manifesto-pillars {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .csb-corporate .manifesto-pillars {
    grid-template-columns: 1fr;
  }
}

/* Anasayfa değer şeridi müşteri dokümanındaki 6 değeri gösterir (onaylı tasarımda 5 sütun). 1100px altı onaylı düzen aynen kalır. */
@media (min-width: 1101px) {
  .values-strip-grid.csb-values-strip-6 {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* Faz 7: 360px gibi dar ekranlarda iletişim kartındaki telefon butonu (nowrap) sütunu 320px'in dışına taşırıyordu.
   Yalnızca 400px altında kartın butonları satır kırabilir; 390px ve üzeri görünüm değişmez. */
@media (max-width: 400px) {
  .editorial-row > * {
    min-width: 0;
  }

  .editorial-content-box .btn {
    white-space: normal;
  }
}

/* Faz 7: kapalı mobil menü ekran dışında kalsa da bağlantıları klavyeyle odaklanabiliyordu. Kapalıyken menü
   kayma animasyonu bittikten sonra gizlenir (görünüm değişmez, yalnızca sekme sırasından çıkar). */
@media (max-width: 820px) {
  .nav-menu:not(.open),
  .nav-menu:not(.open) .nav-dropdown {
    visibility: hidden;
    transition: left var(--transition-base), visibility 0s linear 0.25s;
  }

  .nav-menu.open {
    visibility: visible;
  }
}

/* Faz 7: onaylı style.css butonlarda odak çerçevesini kaldırıyor (outline: none); klavye odağı görünür kalır. */
button:focus-visible {
  outline: 2px solid var(--accent-gold);
  outline-offset: 2px;
}

/* KVKK / yasal metin sayfası: makale tipografisi (.detail-main) kullanılır; onaylı style.css listelerden madde
   işaretlerini kaldırdığı için yasal metindeki listeler okunabilirlik için işaretli gösterilir. */
.csb-legal ul {
  list-style: disc;
  padding-left: 0.25rem;
}

.csb-legal ol {
  list-style: decimal;
}

.csb-legal h2:first-of-type {
  margin-top: 2.5rem;
}

.csb-legal a {
  color: var(--accent-gold);
  font-weight: 600;
  overflow-wrap: anywhere;
}

.csb-legal .csb-legal-updated {
  margin-top: 2rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
}

/* Altbilgi telif satırındaki aydınlatma metni bağlantısı (mevcut satır içinde, ayrı bölüm eklenmez). */
.footer-bottom-row a.csb-footer-legal {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer-bottom-row a.csb-footer-legal:hover,
.footer-bottom-row a.csb-footer-legal:focus-visible {
  color: var(--accent-gold);
}

.footer-bottom-row .csb-footer-credit {
  display: block;
  margin-top: 0.25rem;
}

.footer-bottom-row .csb-footer-credit a {
  color: inherit;
  text-decoration: none;
}

.footer-bottom-row .csb-footer-credit a:hover,
.footer-bottom-row .csb-footer-credit a:focus-visible {
  color: var(--accent-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}
