/* FILE: assets/css/style.css */
/* ==========================================================================
   Saha Automotive - Anasayfa Özel Stilleri
   NOT: Bu dosyada @media / responsive kod bulunmaz. Tüm responsive kurallar
   assets/css/responsive.css içerisindedir.
   ========================================================================== */

/* -------------------- Yerel Font Tanımı (Outfit) -------------------- */
/* KÖK NEDEN (Türkçe "Ş"/"ş" farklı görünüyordu): outfit-XXX.woff2/.woff
   dosyaları Google Fonts'un "latin" alt kümesiyle sınırlıydı (U+0000-00FF
   + birkaç ek karakter) — Ş (U+015E), ş (U+015F), Ğ, ğ, İ gibi Latin
   Extended-A karakterlerinin glyph'leri bu dosyalarda YOKTU (fontTools/
   fontkit ile doğrulandı: glyphId=0/.notdef). Karakter font dosyasında
   bulunamayınca tarayıcı sessizce font-family listesindeki bir sonraki
   fonta (Arial/Helvetica/sans-serif) düşüyor, bu yüzden sadece o harf
   farklı görünüyordu.
   ÇÖZÜM: Google Fonts'un (fontsource/@fontsource/outfit paketi üzerinden
   indirilen, CDN'siz/yerel) "latin-ext" alt kümesi eklendi (bkz. aşağıdaki
   ikinci blok, outfit-XXX-ext.woff2/.woff — Ş/ş/Ğ/ğ/İ dahil). unicode-range
   ile iki blok birbirini TAMAMLAR: temel Latin karakterler ilk bloktaki
   (latin) dosyadan, Ş/ş gibi Latin Extended-A karakterler ikinci bloktaki
   (latin-ext) dosyadan çiziliyor — ikisi de aynı "Outfit" ailesi/ağırlığı
   olduğundan görsel olarak kesintisiz tek bir font gibi davranıyor. Aralık
   değerleri Google Fonts'un bu iki alt küme için ürettiği DEĞERLERLE
   birebir aynıdır. */
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-300.woff2") format("woff2"),
         url("../fonts/outfit-300.woff") format("woff");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-300-ext.woff2") format("woff2"),
         url("../fonts/outfit-300-ext.woff") format("woff");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-400.woff2") format("woff2"),
         url("../fonts/outfit-400.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-400-ext.woff2") format("woff2"),
         url("../fonts/outfit-400-ext.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-500.woff2") format("woff2"),
         url("../fonts/outfit-500.woff") format("woff");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-500-ext.woff2") format("woff2"),
         url("../fonts/outfit-500-ext.woff") format("woff");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-600.woff2") format("woff2"),
         url("../fonts/outfit-600.woff") format("woff");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-600-ext.woff2") format("woff2"),
         url("../fonts/outfit-600-ext.woff") format("woff");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-700.woff2") format("woff2"),
         url("../fonts/outfit-700.woff") format("woff");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-700-ext.woff2") format("woff2"),
         url("../fonts/outfit-700-ext.woff") format("woff");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-800.woff2") format("woff2"),
         url("../fonts/outfit-800.woff") format("woff");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
    font-family: "Outfit";
    src: url("../fonts/outfit-800-ext.woff2") format("woff2"),
         url("../fonts/outfit-800-ext.woff") format("woff");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* -------------------- Renk Paleti / Değişkenler -------------------- */
:root {
    --color-blue: #0057b8;
    --color-blue-dark: #00458f;
    --color-yellow: #edbf28;
    --bg-local-power: #e2e0e0;
    --bg-light-gray: #f1f2f2;
    --bg-mid-gray: #a7a8ab;
    --text-dark: #17181a;
    --text-gray: #6c6f73;
    /* .container'ın sağ/sol boşluğu — responsive.css bu değişkeni her
       breakpoint'te günceller. Kenara kadar uzanan görseller (örn.
       .local-power-image) bu değeri negatif margin olarak kullanır. */
    --container-pad-x: 360px;
    --radius-lg: 24px;
    --radius-md: 16px;
    --radius-sm: 10px;
}

/* -------------------- Genel / Reset -------------------- */
html {
    scroll-behavior: smooth;
}

body {
    font-family: "Outfit", Arial, Helvetica, sans-serif;
    font-weight: 400;
    color: var(--text-dark);
    /* Hero bölümünün yuvarlatılmış alt köşelerinde açığa çıkan alanın
       beyaz değil gri görünmesi için body arkaplanı --bg-local-power ile
       aynı tona ayarlandı. Diğer bölümlerin kendi (beyaz/gri) arkaplanı
       olduğundan bu değişiklik sadece o köşe boşluğunu etkiler. */
    background-color: var(--bg-local-power);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Outfit", Arial, Helvetica, sans-serif;
    font-weight: 700;
    margin: 0;
}

p {
    margin: 0;
}

a {
    text-decoration: none;
    color: inherit;
}

body.no-scroll {
    overflow: hidden;
}

.custom-input.is-invalid {
    border-color: #e35353;
    background-color: #fff5f5;
}

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

/* -------------------- İçerik Sarmalayıcı (Container) Boşluğu --------------------
   Geniş masaüstü ekranlarda ana içerik sağ/soldan 360px içeride başlar.
   Bootstrap'in kademeli max-width sınırlaması (540/720/960/1140/1320px)
   burada devre dışı bırakılıp (max-width: 100%) boşluk tamamen bu padding
   değeriyle kontrol edilir. Küçük ekranlarda bu değer responsive.css
   içerisindeki @media kurallarıyla kademeli olarak azaltılır. */
.container {
    max-width: 100%;
    padding-left: var(--container-pad-x);
    padding-right: var(--container-pad-x);
}

.text-blue {
    color: var(--color-blue);
}

.text-yellow {
    color: var(--color-yellow);
}

.text-dark-strong {
    color: var(--text-dark);
    font-weight: 600;
}

.section-eyebrow {
    font-size: 15px;
    font-weight: 500;
    color: var(--text-gray);
    margin-bottom: 10px;
    letter-spacing: 0.2px;
}

.section-title {
    font-size: 34px;
    line-height: 1.25;
    font-weight: 400;
    margin-bottom: 22px;
}

.section-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-gray);
    margin-bottom: 16px;
    max-width: 300px;
}

/* -------------------- Ortak Buton Stilleri -------------------- */
.btn-primary-custom {
    background-color: var(--color-blue);
    color: #ffffff;
    font-weight: 600;
    font-size: 15px;
    padding: 13px 28px;
    border-radius: 8px;
    border: none;
    display: inline-block;
    transition: background-color 0.2s ease;
}
.btn-primary-custom:hover {
    background-color: var(--color-blue-dark);
    color: #ffffff;
}

.btn-hero-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: var(--color-blue);
    color: #ffffff;
    font-weight: 500;
    font-size: 15px;
    padding: 13px 26px;
    border-radius: 8px;
    margin-right: 14px;
    margin-bottom: 10px;
    transition: background-color 0.2s ease;
}
.btn-hero-primary:hover {
    background-color: var(--color-blue-dark);
    color: #ffffff;
}
.btn-hero-primary strong {
    font-weight: 800;
}
.btn-pagerm-logo {
    height: 14px;
    width: auto;
}

/* Mobil hero arama kutusu (madde 1) — .btn-hero-primary ile AYNI
   genişlik/yükseklik oranında olması için aynı dikey padding (13px) ve
   aynı border-radius (8px) kullanılıyor; genişlik butonla aynı şekilde
   %100 (bkz. responsive.css .btn-hero-primary{width:100%}). */
.hero-search-form {
    position: relative;
    width: 100%;
    margin-top: 4px;
}
/* İkonu inputun DIŞINDA ayrı bir eleman olarak değil (bkz. .search-form,
   mega menü aramasıyla paylaşılan temel yapı), inputun KENDİ border'ının
   İÇİNDE göstermek için: buton mutlak konumlandırılıp inputun sol
   kenarına bindiriliyor, inputun sol padding'i ikon genişliği kadar
   artırılıyor. Sadece bu bileşene özgü (mega menü aramasını etkilemez). */
.hero-search-form .search-form-btn {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}
.hero-search-form .search-form-btn img {
    width: 20px;
    height: 20px;
    /* .search-form-btn img'nin temel kuralı (mega menü aramasındaki mavi
       bant üzerinde görünür olması için) beyaza çeviren bir filtre taşıyor
       (brightness(0) invert(1)) — search.svg'nin KENDİ çizgi rengi zaten
       --color-blue (#0057b8) ile birebir aynı olduğundan, bu bileşende
       filtre kaldırılınca ikon doğal/mavi haliyle görünür. */
    filter: none;
}
.hero-search-form .search-form-input {
    width: 100%;
    flex: 1 1 auto;
    padding: 13px 20px 13px 52px;
    border-radius: 8px;
    border-color: var(--color-blue);
}

.btn-browse-all {
    display: block;
    width: 100%;
    text-align: center;
    background-color: var(--bg-mid-gray);
    color: #ffffff;
    font-weight: 500;
    font-size: 14px;
    padding: 14px 20px;
    border-radius: 10px;
    /* .carousel-item-row'un kendi padding-bottom'u (28px - Değerlerimiz'in
       aktif kart gölgesine yer açmak için, bkz. .carousel-item-row) kartın
       görünür alt kenarı ile bu satırın ölçülen alt kenarı arasına görünmez
       bir boşluk ekliyor. Gerçek görünen boşluğun (kart görünür alt kenarı
       -> buton üst kenarı) 24px olması için bu 28px'i telafi edecek negatif
       bir margin gerekiyor: 24 - 28 = -4px. */
    margin-top: -4px;
    transition: background-color 0.2s ease;
}
.btn-browse-all:hover {
    background-color: #8f9093;
    color: #ffffff;
}

.btn-pagerm-catalog {
    background-color: #ffffff;
    color: var(--color-blue);
    font-weight: 600;
    font-size: 13px;
    padding: 10px 18px;
    border-radius: 8px;
    white-space: nowrap;
    transition: background-color 0.2s ease;
}
.btn-pagerm-catalog:hover {
    background-color: var(--color-blue-dark);
    color: #ffffff;
}

.btn-outline-catalog {
    display: inline-block;
    background-color: var(--bg-mid-gray);
    color: #ffffff;
    font-weight: 500;
    font-size: 14px;
    padding: 13px 24px;
    border-radius: 8px;
    margin-top: 6px;
    transition: background-color 0.2s ease;
}
.btn-outline-catalog:hover {
    background-color: #8f9093;
    color: #ffffff;
}

.btn-send {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 127.5px;
    height: 127.5px;
    background-color: var(--color-blue);
    color: #ffffff;
    font-weight: 400;
    font-size: 13px;
    padding: 0;
    border: none;
    border-radius: 10px;
    margin-left: 12px;
    flex-shrink: 0;
    transition: background-color 0.2s ease;
}
.btn-send:hover {
    background-color: var(--color-blue-dark);
    color: #ffffff;
}

.badge-pill {
    display: block;
    text-align: center;
    background-color: var(--color-blue);
    color: #ffffff;
    font-weight: 500;
    font-size: 14px;
    padding: 18px 18px;
    border-radius: 12px;
    transition: background-color 0.2s ease;
}
.badge-pill:hover {
    background-color: var(--color-blue-dark);
    color: #ffffff;
}

/* ==========================================================================
   HEADER / NAVİGASYON
   ========================================================================== */
.site-header {
    background-color: #000000;
    z-index: 1040;
}
/* Mega menü açıkken .site-header'ın GÖRÜNÜR alanları (üst satır ve gri
   panel) zaten kendi opak arkaplanlarını taşıyan .site-header > .container
   ve .mega-menu tarafından kaplanıyor (aşağıda). .site-header'ın KENDİ
   arkaplanı sadece bunların KAPLAMADIĞI kalan alanlarda görünür — en
   belirgini .mega-menu-search'ün yuvarlatılmış alt köşe boşluğu. Burada
   gri bırakılırsa (site-header'ı boyayıp backdrop onu karartsa bile)
   köşe, ARKASINDAKİ GERÇEK SAYFAYI değil "karartılmış boş gri"yi
   gösterir ve sayfanın geri kalanındaki karartılmış GERÇEK içerikle
   uyuşmayan bir gri leke gibi görünür. Şeffaf bırakmak, o köşede de
   backdrop'un doğrudan gerçek body/sayfa rengini karartmasını sağlar. */
body.no-scroll .site-header {
    background-color: transparent;
}

/* Üst satırı saran .container (hamburger/EN solda, logo sağda — .header-row
   bunun içinde). .mega-menu-backdrop (z-index:1030, position:fixed, inset:0)
   .site-header içindeki (z-index:1040) diğer her şeyin üstünde boyanıyor,
   çünkü bu kapsayıcının kendi z-index'i yoktu (auto/0) VE arkaplanı
   şeffaftı — bu yüzden hem tıklamalar backdrop'a gidiyordu hem de (üst
   satır griye çevrilince) backdrop'un koyu tonu görsel olarak altından
   sızıyordu. .header-row'a değil, onu saran BU .container'a (padding
   alanı dahil TÜM üst satır genişliğine) uygulanmalı; aksi halde sadece
   .header-row'un kendi kutusu kapanır, kenar boşlukları (--container-pad-x)
   dimlenmiş halde kalır. Çözüm: backdrop'un üstüne çıkar VE (menü
   açıkken) kendi opak gri arkaplanını alır. */
.site-header > .container {
    position: relative;
    z-index: 1032;
}
body.no-scroll .site-header > .container {
    background-color: var(--bg-mid-gray);
}

.header-row {
    /* Önceden 50px/26px (asimetrik) idi — d-flex align-items-center içeriği
       kendi satırında ortalasa da, üstteki fazladan 24px, hamburger/EN/logo'yu
       bandın tam dikey merkezine göre aşağıda gösteriyordu. Toplam yükseklik
       (76px) aynı kalacak şekilde eşit paylaştırıldı (38/38). */
    padding-top: 38px;
    padding-bottom: 38px;
}

.header-left {
    gap: 18px;
}

.hamburger-btn {
    background: none;
    border: none;
    padding: 6px 4px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
}
.hamburger-btn--mobile {
    display: none;
}

.hamburger-line {
    display: block;
    width: 26px;
    height: 2px;
    background-color: #ffffff;
    border-radius: 2px;
    transition: transform 0.2s ease, opacity 0.2s ease, width 0.2s ease;
}
/* 1. ve 3. çizgi (üst/alt) 2 katı uzunlukta; 2. (orta) çizgi aynı kalır */
.hamburger-line:nth-child(1),
.hamburger-line:nth-child(3) {
    width: 52px;
}

.hamburger-btn[aria-expanded="true"] .hamburger-line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.hamburger-btn[aria-expanded="true"] .hamburger-line:nth-child(2) {
    opacity: 0;
}
.hamburger-btn[aria-expanded="true"] .hamburger-line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.lang-btn {
    background: none;
    border: none;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.5px;
    padding: 4px 8px;
}
.lang-btn::after {
    display: none;
}

.lang-menu {
    background-color: #ffffff;
    border-radius: 8px;
    border: none;
    padding: 6px;
    min-width: 90px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}
.lang-menu .dropdown-item {
    font-size: 14px;
    border-radius: 6px;
    padding: 6px 10px;
}
.lang-menu .dropdown-item.active,
.lang-menu .dropdown-item:hover {
    background-color: var(--bg-light-gray);
    color: var(--color-blue);
}

.header-logo img {
    height: 45px;
    width: auto;
}

/* -------------------- Mega Menü (Hamburger Dropdown) -------------------- */
.mega-menu {
    /* tasarim/acilir-hamburger-menu.png referansında panel arkaplanı
       orta gri (piksel ölçümü #a7a8ab = --bg-mid-gray) */
    background-color: var(--bg-mid-gray);
    /* KÖK NEDEN DÜZELTMESİ: .mega-menu-backdrop position:fixed + z-index:1030
       ile tüm viewport'u kaplıyordu. .mega-menu'nün position/z-index'i
       olmadığı (static/auto) için backdrop, normal akıştaki menü
       içeriğinin HER ZAMAN üstünde boyanıyor ve document.elementFromPoint
       ile doğrulandığı üzere linklere giden tüm tıklamaları yutuyordu.
       Menüyü backdrop'un (z-index:1030) üstüne çıkarmak sorunu çözer. */
    position: relative;
    z-index: 1031;
    /* Alt köşeler yuvarlak + taşan çocuklar (mavi arama bandı dahil) bu
       köşeye göre kırpılır, böylece köşe boşluğunda menünün ARKASINDAKİ
       (karartılmış sayfa) görünür — gri değil, transparan gibi davranır. */
    border-bottom-left-radius: 28px;
    border-bottom-right-radius: 28px;
    overflow: hidden;
}
/* Bootstrap'in kendi .collapsing kuralı (bootstrap.min.css: height .35s ease)
   süre olarak zaten uygun (350ms) ama easing'i simetrik değil — burada
   ease-in-out'a çevirip backdrop/hero-section fade'leriyle (ikisi de aynı
   0.35s ease-in-out) aynı "hissi" vermesi sağlanıyor. */
.mega-menu.collapsing {
    transition: height 0.35s ease-in-out;
}

.mega-menu-tabs {
    padding: 20px 0 0;
    /* Link satırını (ve altındaki border'ı, bkz. .mega-menu-tabs ul)
       kapsayıcının TAM ORTASINDA yatayda ortalar. */
    display: flex;
    justify-content: center;
}
.mega-menu-tabs ul {
    list-style: none;
    margin: 0;
    padding: 0 0 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 34px;
    /* Border artık .ul'nin (yani linklerin gerçek genişliğinin) kendi
       kutusunda — flex item olarak içeriği kadar (fit-content) geniş
       olduğundan, border da linklerle birebir aynı genişlikte ve
       merkezde kalır. */
    border-bottom: 1px solid rgba(255,255,255,0.4);
}
.mega-menu-tabs a {
    font-size: 14px;
    font-weight: 400;
    color: rgba(255,255,255,0.85);
    padding-bottom: 10px;
    display: inline-block;
    border-bottom: 2px solid transparent;
}
.mega-menu-tabs a.active {
    color: var(--color-blue);
    font-weight: 700;
}
.mega-menu-tabs a:hover {
    color: var(--color-blue);
}
/* KÖK NEDEN: global "img { display:block }" resetinden dolayı, logo
   inline değil BLOK eleman olarak davranıp metnin ÜSTÜNE düşüyordu (kendi
   satırını alıyordu). ".brand-tab"ı inline-flex yapıp align-items:center
   ile logoyu metnin SOLUNA, aynı satırda hizalıyoruz — li zaten
   flex-wrap:wrap içinde fit-content genişlikte olduğundan taşma olmadan
   büyür. */
.mega-menu-tabs a.brand-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.brand-tab-logo {
    display: block;
    height: 11px;
    width: auto;
}

.mega-submenu {
    /* display:none DEĞİL visibility:hidden: alt menü görünmez olsa bile
       KENDİ YÜKSEKLİĞİ KADAR yer kaplamaya devam eder — böylece menünün
       toplam yüksekliği hangi sekme hover/aktif olursa olsun SABİT kalır
       (bkz. main.js showMegaSubmenuFor/hideAllMegaSubmenus). Menü açılır
       açılmaz JS, Kurumsal'ın alt menüsünü varsayılan olarak görünür yapar
       ve sol hizasını (marginLeft) sekme satırıyla eşitler. */
    visibility: hidden;
    padding-bottom: 48px;
    padding-top: 20px;
}
.mega-submenu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.mega-submenu li {
    /* Sadece sekme satırı ile alt menü arasında TEK bir ayraç
       (.mega-menu-tabs'ın border-bottom'u) kalsın diye, satırlar
       arası tekrarlayan border kaldırıldı. */
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.mega-submenu a {
    font-size: 13px;
    color: rgba(255,255,255,0.85);
}
.mega-submenu a:hover {
    color: #ffffff;
}

.mega-menu-search {
    /* tasarim/acilir-hamburger-menu.png referansında bu bant tam genişlikte
       ve site paletindeki mavi (--color-blue = #0057b8) */
    background-color: var(--color-blue);
    padding: 8px;
    /* Alt köşe yuvarlaması artık üst kapsayıcı olan .mega-menu üzerinde
       (border-radius + overflow:hidden) — bu bant onun son çocuğu olduğu
       için otomatik olarak aynı köşeden kırpılıyor. */
}

.search-form {
    display: flex;
    align-items: center;
    gap: 14px;
}
.search-form-btn {
    background: none;
    border: none;
    display: flex;
    padding: 0;
}
.search-form-btn img {
    width: 36px;
    height: 36px;
    /* İkon dosyası mavi (#0057b8) çizili; mavi bant üzerinde görünür olması
       için beyaza çeviriliyor. */
    filter: brightness(0) invert(1);
}
.search-form-input {
    /* Kutunun kendisi şeffaf/mavi, sadece ince beyaz çerçeve görünür
       (tasarim/acilir-hamburger-menu.png referansı). */
    background-color: transparent;
    border: 1.5px solid rgba(255,255,255,0.85);
    border-radius: 12px;
    outline: none;
    font-family: "Outfit", sans-serif;
    font-size: 14px;
    padding: 6px 20px;
    width: 340px;
    max-width: 100%;
    color: #ffffff;
}
.search-form-input::placeholder {
    color: rgba(255,255,255,0.8);
}

/* Sidebar arama kutusu (Views/Public/_ProductGroupSidebar.cshtml, Ürünler sayfası sol
   sütun) — header/ana sayfadakiyle AYNI .mega-menu-search/.search-form/.search-form-input
   class'larını kullanır (main.js JS'i ".js-product-search-form/.js-product-search-input"
   üzerinden bağlandığından bu class'lar kaldırılamaz), ama o class'ların tasarlandığı geniş
   mavi header bandı dar sidebar sütununda (230px) taşıyor ve okunaksız kalıyordu.
   .sidebar-search-wrapper SADECE bu bağlamda yukarıdaki kuralları override eder — header'daki
   ORİJİNAL mavi kutuya dokunmaz (o hâlâ sadece .mega-menu-search/.search-form-input'a göre render edilir). */
.sidebar-search-wrapper {
    background-color: transparent;
    padding: 0;
}
.sidebar-search-wrapper .search-form-wrap {
    width: 100%;
}
.sidebar-search-wrapper .search-form-input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background-color: var(--bg-light-gray);
    border: 1.5px solid #e5e5e5;
    color: var(--text-dark);
    /* İkon artık inputun İÇİNDE sol kenarda (bkz. .search-form-btn altındaki yorum) —
       metin ikonun üzerine binmesin diye sol padding ikon genişliği kadar artırıldı. */
    padding-left: 30px;
}
.sidebar-search-wrapper .search-form-input::placeholder {
    color: var(--text-gray);
}
/* İkonu inputun DIŞINDA ayrı bir eleman olarak değil (hero-search-form'daki aynı teknik,
   bkz. .hero-search-form .search-form-btn), inputun KENDİ border'ının İÇİNDE göstermek için:
   buton mutlak konumlandırılıp inputun sol kenarına bindiriliyor. Konumlandırma bağlamı
   .search-form-wrap'in position:relative'i (temel kural, bkz. yukarısı). */
.sidebar-search-wrapper .search-form-btn {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}
.sidebar-search-wrapper .search-form-btn img {
    /* Header'daki mavi bant üzerinde ikon beyaza çevriliyordu (bkz. .search-form-btn img) —
       burada zemin açık olduğundan ikon kendi orijinal rengiyle (search.svg stroke="#0057b8") kalır. */
    filter: none;
    /* Dar sidebar sütununa (230px) uygun kompakt ikon boyutu — temel kuraldaki 36x36 burada taşardı. */
    width: 14px;
    height: 14px;
}

/* -------------------- Faz 8: Arama Autocomplete -------------------- */
.search-form-wrap {
    position: relative;
}
.hero-search-form-wrap {
    width: 100%;
}
/* KÖK NEDEN: mega menü açıkken bant, üst kapsayıcısı olan .mega-menu'nün
   overflow:hidden'ı (alt köşe yuvarlama için, bkz. .mega-menu-search yorumu)
   ile kırpılıyor — position:absolute + top:calc(100%+8px) ile bandın altına
   taşan bu dropdown, üst atanın overflow:hidden'ı yüzünden HİÇ görünmüyordu.
   Çözüm: position:fixed (viewport'a göre, overflow:hidden ata tarafından
   kırpılmaz) — top/left/width main.js tarafından input'un
   getBoundingClientRect()'ine göre satır içi (inline style) atanır. */
.search-suggestions {
    display: none;
    position: fixed;
    max-height: 320px;
    overflow-y: auto;
    background-color: #ffffff;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
    z-index: 1050;
}
.search-suggestions.is-open {
    display: block;
}
.search-suggestion-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    color: var(--text-dark);
    transition: background-color 0.15s ease;
}
.search-suggestion-item:hover {
    background-color: var(--bg-light-gray);
}
/* Kutunun kendisi her zaman gri placeholder arkaplanı taşır (.product-card-img/
   .category-product-card'daki görselsiz-placeholder deseniyle aynı mantık) —
   resim varsa üstüne <img> eklenir, yoksa kutu boş/gri kalır. */
.search-suggestion-thumb {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background-color: var(--bg-light-gray);
    flex-shrink: 0;
    overflow: hidden;
}
.search-suggestion-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.search-suggestion-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.search-suggestion-name {
    font-size: 13px;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* OEM kodu — admin listesindeki ikincil/muted satır metniyle aynı ton
   (bkz. .category-product-card-text: color:var(--text-gray)), sadece daha
   küçük punto (bu satır bir alt-başlık, ana metin değil). */
.search-suggestion-oem {
    font-size: 11px;
    line-height: 1.3;
    color: var(--text-gray);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.search-suggestion-empty {
    padding: 14px;
    font-size: 13px;
    color: var(--text-gray);
    text-align: center;
}

.header-address {
    color: #ffffff;
    font-size: 13px;
    font-style: normal;
    line-height: 1.6;
    margin: 0;
    text-align: right;
}

.mega-menu-backdrop {
    position: fixed;
    inset: 0;
    background-color: rgba(0,0,0,0.55);
    opacity: 0;
    visibility: hidden;
    /* Süre/easing .mega-menu.collapsing ve .hero-section'ın opacity geçişiyle
       (ikisi de 0.35s ease-in-out) BİREBİR eşleşir — bkz. o kuralların yorumu.
       "visibility" de transition listesinde: KAPANIRKEN (is-visible kaldırılınca)
       visibility, opacity 0.35s'lik solmayı bitirene KADAR "visible" kalır (0s
       süreli ama 0.35s GECİKMELİ) — aksi halde visibility anında "hidden" olup
       fade-out animasyonunu görünmeden kesiyordu (sert kapanma hissi). AÇILIRKEN
       ise .is-visible kuralındaki "visibility 0s linear 0s" gecikmesiz devreye
       girer, element hemen "visible" olur ve opacity 0'dan 1'e yumuşak açılır. */
    transition: opacity 0.35s ease-in-out, visibility 0s linear 0.35s;
    z-index: 1030;
}
.mega-menu-backdrop.is-visible {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.35s ease-in-out, visibility 0s linear 0s;
}

/* -------------------- Mobil Off-canvas Menü -------------------- */
.mobile-menu {
    background-color: var(--bg-mid-gray);
    width: 320px;
}
.mobile-menu .offcanvas-header {
    padding: 22px 24px;
    border-bottom: 1px solid rgba(255,255,255,0.3);
}
.mobile-menu-logo img {
    height: 30px;
    width: auto;
}
.mobile-menu .offcanvas-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
}

.mobile-nav-list {
    list-style: none;
    margin: 0 0 auto;
    padding: 0;
    flex-grow: 1;
}
.mobile-nav-list li {
    border-bottom: 1px solid rgba(255,255,255,0.3);
}
.mobile-nav-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #ffffff;
    font-size: 15px;
    font-weight: 500;
    padding: 16px 2px;
}
/* Aktif sayfa vurgusu: main.js'te dinamik olarak (gerçek dosya adına
   göre) eklenen "active" class'ı, masaüstü .mega-menu-tabs a.active ile
   aynı renk mantığıyla (mavi) vurgular. */
.mobile-nav-list a.active {
    color: var(--color-blue);
}
.mobile-nav-list a img {
    width: 14px;
    height: 14px;
    opacity: 0.8;
}

/* "Kurumsal" satırı artık kurumsal.html'e gitmiyor; sadece alttaki
   .mobile-nav-sublist'i (Yönetim Kurulu Mesajı / Hakkımızda / Vizyon /
   Misyon / Kurumsal Kit) açıp kapatan bir Bootstrap collapse tetikleyicisi
   — mobilde hover olmadığından masaüstündeki hover-alt-menü davranışının
   yerini alıyor. Alt menüye asıl sayfalara gitmek isteyenler zaten
   "- Hakkımızda" vb. üzerinden ulaşıyor. */
.mobile-nav-toggle .mobile-nav-chevron {
    transition: transform 0.2s ease;
}
.mobile-nav-toggle:not(.collapsed) .mobile-nav-chevron {
    transform: rotate(90deg);
}
.mobile-nav-sublist {
    list-style: none;
    margin: 0;
    padding: 0 0 0 14px;
}
.mobile-nav-sublist li {
    border-bottom: 1px solid rgba(255,255,255,0.3);
}
.mobile-nav-sublist a {
    font-size: 13px;
    color: #ffffff;
}

/* Mobil "PAGERM Online Katalog" — masaüstündeki .brand-tab ile aynı
   mantık: logo metnin SOLUNDA, yan yana. Seçici bilerek ".mobile-nav-list
   a img" (0,1,2) genel kuralını (14x14, opacity:0.8 — chevron ikonları
   için tasarlanmış) EZECEK şekilde (0,3,2) yapıldı, aksi halde logo
   14x14'e sıkışıp bozulurdu. */
.mobile-nav-list a.mobile-brand-tab img.mobile-brand-tab-logo {
    display: block;
    height: 13px;
    width: auto;
    opacity: 1;
}
/* Logo+"Online Katalog" birlikte tek grup olarak sarmalanır; ".mobile-nav-list a"
   zaten justify-content:space-between olduğundan sarmalayıcı olmadan
   logo/metin/chevron üçü eşit aralıklarla dağılır (logo ile metin arasında
   istenmeyen geniş boşluk oluşur) — bu span logo+metni bir arada tutar,
   space-between sadece bu grup ile trailing chevron arasında çalışır. */
.mobile-brand-tab-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* KÖK NEDEN: son menü linki (İletişim, bkz. ".mobile-nav-list li" border-bottom)
   ile bu footer bloğu arka arkaya İKİ çizgi oluşturuyordu (li'nin kendi
   border-bottom'u + bu bloğun border-top'u) — üsttekini (li'ninkini)
   koruyup buradaki alttaki çizgiyi kaldırdık. */
.mobile-menu-footer {
    margin-top: 30px;
    padding-top: 20px;
}
.mobile-menu-address {
    color: rgba(255,255,255,0.85);
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 18px;
}
.mobile-menu-social {
    display: flex;
    gap: 12px;
}
.mobile-menu-social a {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mobile-menu-social img {
    width: 30px;
    height: 30px;
}
/* whatsapp.svg dosyası içinde SABİT YAN SEKME'deki (.whatsapp-tab, 90°
   döndürülmüş) görünüm için yatay aynalanmış (matrix flip) - burada
   döndürme UYGULANMADIĞI için ikon ters/yanlış görünüyordu; footer'daki
   (aynalanmamış) ikonla aynı yönde görünmesi için aynalama iptal ediliyor. */
.mobile-menu-social a[aria-label="Whatsapp"] img {
    transform: scaleX(-1);
}

/* ==========================================================================
   HERO BÖLÜMÜ
   ========================================================================== */
.hero-section {
    background-color: #000000;
    padding: 90px 0 130px;
    border-bottom-left-radius: 32px;
    border-bottom-right-radius: 32px;
    /* position+overflow: video modlarında (bkz. .hero-video-bg) mutlak konumlu iframe/video
       katmanının section'ın kendi sınırları İÇİNDE kalmasını (yuvarlak alt köşeler dahil) ve
       .container'ın z-index ile bunun ÜZERİNDE görünmesini sağlar — Image modunda (background-
       image kullanan mevcut davranış) bu iki özelliğin hiçbir görsel etkisi yoktur. */
    position: relative;
    overflow: hidden;
    /* Mega menü açılırken/kapanırken (bkz. body.no-scroll.hero-section) opacity,
       max-height ve padding'in YUMUŞAK geçmesi için — süre/easing mega menünün
       kendi collapse animasyonuyla (.mega-menu.collapsing, 0.35s ease-in-out) ve
       backdrop fade'iyle (.mega-menu-backdrop, aynı süre/easing) BİREBİR eşleşir
       ki tüm hareket tek bir bütün gibi hissettirsin. max-height'ın gerçek
       (px cinsinden) başlangıç/bitiş değerleri main.js'te (show/hide.bs.collapse)
       JS ile ölçülüp inline style olarak atanır — "auto" yükseklik CSS ile
       doğrudan animasyonlanamadığı için. */
    transition: opacity 0.35s ease-in-out, max-height 0.35s ease-in-out,
        padding-top 0.35s ease-in-out, padding-bottom 0.35s ease-in-out;
}
.hero-section > .container {
    position: relative;
    z-index: 2;
}
/* Ana Sayfa hero'sunda arka plan videosu (YouTube embed veya yüklenen MP4) — section'ın
   tüm alanını kaplar, .hero-title/.hero-text ile aynı görsel yerde ama ARKADA durur. */
.hero-video-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}
.hero-video-bg iframe,
.hero-video-bg video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    border: 0;
}
/* Image modundaki linear-gradient(rgba(0,0,0,.55)...) overlay'iyle AYNI koyuluk — video
   üzerine bindirilen bir <div> olarak (arka plan resmine gömülü gradient yerine, çünkü
   video gerçek bir DOM öğesi, CSS background'a gömülemez). */
.hero-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(0, 0, 0, .55);
    pointer-events: none;
}

/* Mega menü açıkken (tasarim/acilir-hamburger-menu.png referansı) menü
   panelinin altında dimmed olarak görünmesi gereken kısım hero-section
   değil, ondan sonraki (açık renkli, kamyon görselli) local-power-section
   ve devamındaki ürün grupları carousel'i (product-range-section). Zaten
   siyah olan hero-section koyu overlay üzerine bindiğinde ekranda düz
   siyah boşluk gibi göründüğü için menü açıkken gizlenir.
   KÖK NEDEN #1 (DÜZELTİLDİ): eskiden display:none kullanılıyordu — bu,
   section'ı layout akışından ANINDA (geçişsiz) çıkarıp/geri sokuyordu,
   dolayısıyla altındaki her şey (ürün grupları carousel'i dahil) menü
   her açılıp kapandığında SERT bir sıçramayla yukarı/aşağı zıplıyordu
   ("slider birden aşağı gidiyor" şikayeti).
   KÖK NEDEN #2 (DÜZELTİLDİ): sonra sadece opacity:0 kullanıldı (sıçrama
   düzeldi) ama section KENDİ YÜKSEKLİĞİNİ (padding dahil ~500px) korumaya
   devam etti — altındaki gerçek içerik o kadar aşağı itilmiş durumda
   kalıyordu ki menü açıkken arkada gerçek içerik yerine sadece boş/
   karartılmış hero alanı ("düz gri blok" hissi) görünüyordu. Çözüm: max-
   height'ı da (main.js'te JS ile ölçülüp inline atanan px değerinden) 0'a,
   padding'i de 0'a çekmek — böylece section'ın kapladığı alan da YUMUŞAKÇA
   (0.35s, sıçramasız) sıfırlanır ve altındaki içerik yukarı kayarak
   arkada görünür hale gelir. pointer-events:none: soluk haldeyken hero
   içindeki linkler/video tıklanamaz kalır (zaten üstünü mega-menu-backdrop
   kaplıyor). */
body.no-scroll .hero-section {
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    pointer-events: none;
}

.hero-title {
    color: #ffffff;
    font-size: 46px;
    font-weight: 400;
    line-height: 1.25;
    margin-bottom: 22px;
}

.hero-text {
    color: rgba(255,255,255,0.7);
    font-size: 15px;
    line-height: 1.7;
    max-width: 475px;
    margin-bottom: 34px;
}

/* ==========================================================================
   YEREL GÜÇ, GLOBAL VİZYON
   ========================================================================== */
.local-power-section {
    background-color: var(--bg-local-power);
    padding: 30px 0;
}

.local-power-cta {
    gap: 16px;
    margin-top: 8px;
}

.badge-check {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.badge-check img {
    /* verified-badge.svg kendi mavi/beyaz görselini içerir, wrapper
       sadece boyut/hizalama sağlar */
    width: 100%;
    height: 100%;
}

.local-power-image {
    /* Görsel, .container'ın sağ boşluğunu iptal eden negatif margin ile
       sayfanın sağ kenarına kadar uzanır (metin sütunuyla çakışmaz,
       çünkü bu sadece kendi kolonunun/görselin genişliğini etkiler). */
    margin-right: calc(-1 * var(--container-pad-x));
}
.local-power-image img {
    border-radius: var(--radius-lg);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   ÖNE ÇIKAN GENİŞ ÜRÜN YELPAZESİ
   ========================================================================== */
.product-range-section {
    background-color: #ffffff;
    padding: 90px 0;
}

.product-range-row {
    margin-top: 46px;
}

.product-card-img {
    height: 135px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}
.product-card-img img {
    max-height: 100%;
    max-width: 100%;
    width: auto;
}

/* Ürün görseli + başlığını saran link: mevcut görünümü bozmadan tıklanabilir yapar */
.product-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.pagerm-card {
    background-color: var(--color-blue);
    border-radius: var(--radius-md);
    padding: 30px 32px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
/* İçerik bloğu bir bütün olarak kart içinde yatayda ortalanır (kartın
   align-items:center'ı sayesinde kendi içeriğine göre daralır/shrink-wrap
   olur), ama İÇİNDEKİ elemanlar (logo, başlık, buton) kendi aralarında
   sola yaslı kalır - bu yüzden text-align burada YOK. */
.pagerm-card-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.pagerm-card-logo {
    margin: 0 0 20px;
}
.pagerm-card-logo-img {
    height: 20px;
    width: auto;
}
.pagerm-card-title-row {
    margin-top: 14px;
    gap: 30px;
}
.pagerm-card-text {
    color: #ffffff;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}
.pagerm-card-text .text-yellow {
    font-weight: 600;
}
.pagerm-card-url {
    color: rgba(255,255,255,0.75);
    font-size: 13px;
    margin-top: 14px;
}
.pagerm-card-url a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}
.pagerm-card-url a:hover {
    color: var(--color-yellow);
}

/* ==========================================================================
   MULTI-ITEM CAROUSEL (Ürün Grubu Kartları + Değerlerimiz Slider'ları)
   Bootstrap'in Carousel bileşeni üzerine kurulu; her carousel-item içinde
   main.js tarafından ekran genişliğine göre birden fazla .carousel-item-col
   oluşturulur (bkz. assets/js/main.js). Ok butonları artık carousel'in
   kenarlarında değil, bölüm başlığının sağ üst köşesinde (.carousel-nav-row)
   yer alır; data-bs-target ile ilgili carousel'i tetikler.

   Her iki carousel de (Ürün Grubu + Değerlerimiz) aynı .carousel-item-col
   sarmalayıcısını kullandığı için kart boyutu (genişlik/yükseklik) tek bir
   ortak kuralda tanımlanır: kartlar sabit/kompakt boyutta kalır, satırı
   doldurup gerilmez (boş alan kalması normaldir).
   ========================================================================== */
.carousel-item-row {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 20px 0 28px;
}

.carousel-item-col {
    flex: 0 1 260px;
    max-width: 260px;
    min-width: 0;
}

/* Her iki carousel için de özel durum: kartların/kutucukların toplam
   genişliği, üstteki ok navigasyonunun (ve Ürün Grupları'nda ayrıca
   "Tüm Ürün Gruplarını İncele" butonunun) sağ kenarına kadar uzanmalı -
   bu yüzden mevcut genişliği eşit paylaşarak BÜYÜRLER (satırı doldururlar). */
.product-carousel .carousel-item-col,
.values-carousel .carousel-item-col {
    flex: 1 1 0%;
    max-width: none;
}

/* Ürün Grubu kartı + Değerlerimiz kutusu: aynı sabit boyut, padding,
   köşe yuvarlaklığı. Bu sayede her iki carousel'deki kartlar piksel
   bazında birebir aynı görünür. */
.product-card,
.value-card {
    background-color: var(--bg-light-gray);
    border-radius: var(--radius-md);
    padding: 30px 30px 30px;
    height: 250px;
    transition: transform 0.2s ease;
}

/* Ürün Grubu kartına özel: üst/alt padding eşit, içerik ortalanmış.
   Kart sabit yükseklikte (280px) ama içerik (görsel+başlık+metin) bunu
   doldurmayabilir; display:flex + justify-content:center ile içerik
   dikeyde ortalanır, böylece üst ve alt boşluk GÖRSEL olarak da eşit
   kalır (sadece CSS padding değerleri eşit olması yetmez). */
.product-card {
    padding-bottom: 26px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Değerlerimiz kutusuna özel: başlık/metin sola yaslı kalır (text-align
   değişmez), ama kutunun yüksekliğine göre dikeyde ortalanır. Üst/alt
   boşluğun GÖRSEL olarak da eşit olması için (bkz. .product-card'daki
   aynı mantık) padding-bottom, padding-top ile eşitlenir. */
.value-card {
    padding-bottom: 26px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* .value-card--active'e geçişi (arka plan + gölge, bkz. aşağıdaki kural)
       yumuşatır — hem class EKLENİRKEN hem KALDIRILIRKEN aynı geçiş
       uygulansın diye burada, :hover/--active seçicisinde DEĞİL temel
       kuralda tanımlı. Üstteki paylaşılan ".product-card, .value-card"
       kuralındaki "transform 0.2s ease" (Ürün Grubu kartının KENDİ ayrı
       hover'ı için, bkz. .urunler-product-grid .product-card:hover) burada
       da korunuyor ki iki carousel'in davranışı birbirini etkilemesin. */
    transition: transform 0.2s ease, background-color 0.28s ease-in-out, box-shadow 0.28s ease-in-out;
}

.product-card-title,
.value-card-title {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 8px;
}
.product-card-title {
    color: var(--color-blue);
}

.product-card-text,
.value-card-text {
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-gray);
}
/* .value-card--active olunca beyaza dönen başlık/metin rengi — sadece
   Değerlerimiz kartlarına scope'lu (Ürün Grubu kartının başlık/metin
   rengi hiç değişmediğinden .product-card-title/-text'e dokunulmadı). */
.value-card-title,
.value-card-text {
    transition: color 0.28s ease-in-out;
}

.carousel-nav-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    margin-bottom: 14px;
}

.carousel-nav-row .carousel-control-prev,
.carousel-nav-row .carousel-control-next {
    position: static;
    inset: auto;
    width: auto;
    height: auto;
    background: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
    opacity: 1;
    padding: 6px 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.carousel-nav-row .carousel-control-next {
    border-left: 1px solid rgba(23,24,26,0.12);
}

.carousel-nav-icon {
    width: 14px;
    height: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.carousel-nav-icon img {
    width: 100%;
    height: 100%;
    transition: filter 0.2s ease;
}
.carousel-nav-row .carousel-control-prev .carousel-nav-icon img {
    transform: scaleX(-1);
}
.carousel-nav-row .carousel-control-prev:hover .carousel-nav-icon img,
.carousel-nav-row .carousel-control-next:hover .carousel-nav-icon img {
    filter: brightness(0.7);
}

/* ==========================================================================
   BAŞARIMIZIN ARKASINDAKI DEĞERLERİMİZ
   ========================================================================== */
.values-section {
    background-color: #ffffff;
    padding: 90px 0;
}

.values-row {
    margin-top: 46px;
}

/* .value-card temel boyutu/padding'i artık Ürün Grubu kartıyla paylaşılan
   ortak kuralda tanımlı (bkz. MULTI-ITEM CAROUSEL bölümü). */

.value-card--active {
    background-color: var(--color-blue);
    /* tasarim/golge.png referansına göre ayarlandı: kart kenarında neredeyse
       tam kart-mavisi yoğunlukta başlayıp yumuşak/geniş bir bulanıklıkla
       aşağı doğru solan gölge (spread yok/0 - golge.png'de gölge kartın
       kendi genişliğine yakın, keskin şekilde daraltılmamış). Diğer
       kutucuklarla aynı hizada kalması için pozisyon kaydırması
       (translateY) kaldırıldı. */
    box-shadow: 0 20px 30px rgba(0,87,184,0.5);
}
.value-card--active .value-card-title,
.value-card--active .value-card-text {
    color: #ffffff;
}

/* ==========================================================================
   55+ ÜLKEYE GÜVENİLİR TEDARİK
   ========================================================================== */
.global-reach-section {
    background-color: var(--bg-light-gray);
    padding: 90px 0;
}

.global-reach-badges {
    margin-top: 28px;
    --bs-gutter-x: 0.75rem;
}

.world-map-box {
    position: relative;
    background: radial-gradient(circle at 32% 42%, #0d3a66 0%, #071c33 45%, #04101f 100%);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
/* operasyonel.png haritanın kendi içinde "Türkiye" etiketi ve bağlantı
   noktaları (dot) zaten hazır şekilde bulunduğundan, eskiden CSS ile
   üretilen ayrı .world-map-dot/.world-map-label katmanlarına gerek kalmadı. */
.world-map-box img {
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   ARADIĞINIZ ÜRÜNÜ HEMEN BULUN (FORM)
   ========================================================================== */
.contact-form-section {
    background-color: #ffffff;
    padding: 90px 0;
}

.custom-input {
    background-color: var(--bg-light-gray);
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 14px 18px;
    font-family: "Outfit", sans-serif;
    font-size: 14px;
    color: var(--text-dark);
    width: 100%;
}
.custom-input::placeholder {
    color: var(--text-gray);
}
.custom-input:focus {
    outline: none;
    border-color: var(--color-blue);
    box-shadow: none;
    background-color: #ffffff;
}
/* Kariyer formundaki "Departmanlar" dropdown'u — diğer .custom-input
   alanlarıyla aynı görünümü korur, sadece tarayıcının varsayılan ok
   ikonu yerine sitedeki chevron-down.svg kullanılır. */
select.custom-input {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("../img/icons/chevron-down.svg");
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 12px;
    padding-right: 40px;
    cursor: pointer;
}
/* Seçilmemiş durumda ("Departmanlar" placeholder-benzeri option) diğer
   input'ların ::placeholder rengiyle tutarlı görünsün. */
select.custom-input:invalid,
select.custom-input option[value=""] {
    color: var(--text-gray);
}

.custom-textarea {
    resize: none;
    height: 127.5px;
}

.message-row {
    gap: 0;
}
.message-row .custom-input {
    flex-grow: 1;
}

/* ==========================================================================
   WHATSAPP DESTEK (SABİT YAN SEKME)
   ========================================================================== */
.whatsapp-tab {
    position: fixed;
    top: 52%;
    right: 0;
    transform: translateY(-50%) rotate(-90deg);
    transform-origin: right bottom;
    background-color: var(--bg-mid-gray);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 8px 8px 0 0;
    font-size: 13px;
    font-weight: 500;
    z-index: 1020;
    transition: background-color 0.2s ease;
}
.whatsapp-tab:hover {
    background-color: var(--color-blue-dark);
    color: #ffffff;
}
.whatsapp-tab img {
    width: 25px;
    height: 25px;
    transform: rotate(90deg);
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
/* footer.png referansındaki yuvarlak üst köşelerde, body'nin global
   arkaplanı (--bg-local-power, hero bölümünün köşeleri için ayarlanmıştı)
   gri olarak açığa çıkıyordu. .footer-backdrop, footer ile birebir aynı
   kutu boyutunda beyaz bir zemin sağlayarak sadece bu köşe boşluğunu
   beyaza çeviriyor (body arkaplanını global olarak değiştirmeden). */
.footer-backdrop {
    background-color: #ffffff;
}

.site-footer {
    background-color: var(--bg-mid-gray);
    padding: 130px 0 30px;
    /* tasarim/footer.png referansında üst köşeler yuvarlak (piksel
       ölçümünde radius ~32px), alt köşeler sayfanın en altında olduğu
       için düz bırakıldı. */
    border-radius: 32px 32px 0 0;
}

.footer-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 12px;
}
.footer-nav a {
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
}
.footer-nav a:hover {
    color: var(--color-blue-dark);
}
.footer-nav li:not(:last-child)::after {
    content: "|";
    display: inline-block;
    margin-left: 12px;
    color: rgba(255, 255, 255, 0.4);
}

.footer-logo {
    display: flex;
    justify-content: flex-end;
    margin-left: auto;
}
.footer-logo img {
    height: 45px;
    width: auto;
}

.footer-divider {
    border: none;
    margin: 34px 0 26px;
}

.footer-copyright {
    color: #ffffff;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.footer-copyright-logo {
    height: 18px;
    width: auto;
    display: inline-block;
}

.footer-social {
    gap: 14px;
}
/* İkonlar dosya (img/mask) yerine inline <svg fill/stroke="currentColor">
   olarak eklendi: file:// ile doğrudan açıldığında (sunucusuz kullanım)
   mask-image gibi harici kaynak referansları güvenilir çalışmayabiliyor;
   inline SVG + currentColor hiçbir dış kaynağa bağımlı olmadığı için
   hem file:// hem http(s):// altında sorunsuz render olur. */
.footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    transition: color 0.2s ease, transform 0.2s ease;
}
.footer-social a:hover {
    color: var(--color-blue);
    transform: translateY(-4px);
}
.footer-social svg {
    width: 28px;
    height: 28px;
    display: block;
}

/* ==========================================================================
   ALT SAYFA HERO BANNER'I (kurumsal.html, medya.html, ... — .page-hero-*)
   ========================================================================== */
/* tasarim/_Kurumsal_.png / tasarim/_Medya_.png referanslarında bu tip
   sayfalarda anasayfadaki büyük .hero-section yok — üstteki siyah alan
   sadece header'ın kendisi kadar dar bir şerit, bu yüzden yuvarlak alt
   köşe MANTIĞI (bkz. .hero-section) burada doğrudan .site-header'a
   uygulanıyor. Bu tip hero banner'ı kullanan HER sayfada aynı davranışı
   tekrar etmemek için body.page-with-hero-banner ile scope edildi
   (anasayfada header'ın kendisi köşeli kalmaya devam ediyor, yuvarlama
   orada .hero-section'da). */
body.page-with-hero-banner .site-header {
    border-bottom-left-radius: 32px;
    border-bottom-right-radius: 32px;
}

.page-hero-banner {
    background-color: #ffffff;
    /* tasarim/_Kurumsal_.png'de siyah header ile hero banner görseli iki
       AYRI/bitişik kutu değil — header'ın yuvarlak alt köşesi banner'ın
       ÜZERİNE biniyor (tek, kesintisiz bir eğri), banner'ın KENDİ üst
       köşe kavisleri HİÇBİR YERDE açığa çıkmıyor. .site-header zaten
       position:sticky + z-index:1040 olduğundan (pozisyonsuz bu section'ın
       DAİMA üstünde boyanır); ama bindirme miktarı SADECE header'ın kendi
       radius'u (32px) kadar olursa, banner'ın üst köşesi header'ın KENDİ
       yuvarlanma bölgesiyle (header'ın alt 32px'i) aynı yüksekliğe denk
       gelir ve iki eğri tam örtüşmediği için banner'ın kavisi ince bir
       şerit halinde dışarı sızar. Banner'ın üst köşe kavisinin (30px)
       TAMAMEN header'ın DÜZ/opak bölgesinde kalması için bindirme miktarı
       en az header radius + banner radius (32+30=62px) olmalı; birkaç
       piksel güvenlik payıyla 70px kullanıldı. */
    margin-top: -70px;
}
.page-hero-image {
    position: relative;
    /* tasarim/_Kurumsal_.png üzerinde piksel piksel ölçüldü (bkz.
       PowerShell ile köşe eğrisinin x=0..~25px aralığında taranması ve
       daire denklemiyle yarıçap hesaplanması): ölçülen değer ~30px
       (üç farklı noktadan hesaplanan R: 29.75 / 31.1 / 29.24). */
    border-radius: 30px;
    overflow: hidden;
    aspect-ratio: 6.4 / 1;
    /* aspect-ratio desteklemeyen bir ortamda kutu 0 yüksekliğe düşüp
       görsel/köşe hiç görünmeyebilir; padding-top yüzdesi (1/6.4≈%15.6)
       bunun için katı bir yedek yükseklik sağlar. */
    min-height: 1px;
}
.page-hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* Üst kapsayıcının overflow:hidden'ı normalde yeterli olsa da,
       görselin kendi köşesine de aynı radius'u vermek (savunma amaçlı,
       zararsız bir tekrar) herhangi bir katman/compositing senaryosunda
       köşenin köşeli görünmesi ihtimalini ortadan kaldırır. */
    border-radius: 30px;
}
.page-hero-overlay {
    position: absolute;
    inset: 0;
    /* tasarim/_Kurumsal_.png üzerinden piksel örneklemesi (~ rgb(10,33,66)
       ile rgb(17,52,100) arası) koyu lacivert bir ton veriyor. */
    background-color: rgba(4, 28, 64, 0.55);
}
.page-hero-caption {
    position: absolute;
    /* Kutunun (.page-hero-image) üst 70px'i, .page-hero-banner'ın
       margin-top:-70px'i yüzünden HER ZAMAN sticky header'ın arkasında
       kalır (bkz. .page-hero-banner). Caption bu yüzden top:50% gibi
       kutunun TOPLAM yüksekliğine bağlı kırılgan bir hesap yerine,
       doğrudan GÖRÜNEN alana (70px'ten kutunun altına kadar) sabitlenip
       flex ile o alanın içinde ortalanıyor — kutunun toplam yüksekliği/
       aspect-ratio'su değişse bile (bkz. responsive.css mobil override)
       her zaman doğru şekilde görünür ve ortalı kalır. */
    inset: 70px 16px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.page-hero-caption h1 {
    color: #ffffff;
    font-size: 25px;
    font-weight: 300;
    margin: 0;
}
/* urun-kategorileri.html başlığı metin değil, tasarim/pagerm-product.png
   rozeti ("PAGERM is a brand of saha") — bu, eski basit pagerm.png
   kelime logosundan farklı olarak içinde metin+ikincil logo barındıran
   detaylı bir rozet (882x225), bu yüzden eski 22px'lik boyut onu
   okunamayacak kadar küçültürdü; 50px'e çıkarıldı. Oran width:auto ile
   görselin kendi doğal en-boy oranından (882:225) korunuyor. Seçici
   özellikle ".page-hero-caption img.page-hero-logo" (0,2,1) yapıldı
   çünkü bu img, yapısal olarak .page-hero-image'in İÇİNDE (aynı zamanda
   arkaplan fotoğrafını da kapsayan ".page-hero-image img" kuralının,
   0,1,1 özgüllük) — o kural width/height:100% dayattığı için bu kural
   onsuz ezilip img doğal boyutunda render oluyordu. */
.page-hero-caption img.page-hero-logo {
    height: 85px;
    width: auto;
    display: block;
    /* .page-hero-image img (arkaplan fotoğrafı için tanımlı) 30px
       border-radius veriyor; bu img de aynı seçiciye (descendant) dahil
       olduğundan onu da yuvarlıyordu. Logo kendi doğal/köşesiz haliyle
       kalmalı. */
    border-radius: 0;
}

.corporate-content-section {
    background-color: #ffffff;
    padding: 90px 0;
}
.corporate-content-inner {
    /* KÖK NEDEN DÜZELTMESİ (partners/urunler ile aynı tür hata): bu 720px
       sütun aslen "kasıtlı dar metin sütunu" sanılmıştı, ama iletisim/
       partners/urunler sayfalarında olduğu gibi dış kapsayıcı header ile
       AYNI genişlikte olmalı. Paragraf metni (.corporate-panel) zaten
       kendi text-align:left'iyle okunabilir kalıyor; sadece dış sarmalayıcı
       genişletiliyor. */
    width: 100%;
}

.corporate-tabs {
    text-align: center;
    margin-bottom: 34px;
    font-size: 14px;
}
.corporate-tabs a {
    color: var(--text-gray);
    font-weight: 500;
    cursor: pointer;
    /* "Yönetim Kurulu Mesajı" (3 kelime) dar ekranlarda kelime kelime
       bölünüp SADECE "Mesajı" tek başına alt satıra düşüyordu — nowrap
       ile bu sekme artık BÜTÜN olarak ya aynı satırda kalıyor ya da
       tamamı bir sonraki satıra geçiyor. */
    white-space: nowrap;
}
.corporate-tabs a:hover {
    color: var(--color-blue);
}
.corporate-tabs a.active {
    color: var(--color-blue);
    font-weight: 700;
}
.corporate-tabs-sep {
    color: var(--text-gray);
    margin: 0 10px;
}

.corporate-panel {
    display: none;
    text-align: left;
}
.corporate-panel.active {
    display: block;
}
.corporate-panel p {
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 18px;
}
.corporate-panel p:last-child {
    margin-bottom: 0;
}
.corporate-panel strong {
    color: var(--text-dark);
    font-weight: 700;
}

/* ==========================================================================
   MEDYA SAYFASI (medya.html)
   ========================================================================== */
/* tasarim/_Medya_.png'de hero banner overlay'i kurumsal.html'deki gibi tek
   düz bir mavi ton değil — üstte (gökyüzü) daha canlı/açık lacivert,
   altta (zemin) neredeyse siyaha yakın çok koyu bir gece mavisi: piksel
   örneklemesinde üstte ~rgb(35,98,175), altta ~rgb(4,20,53) ölçüldü. Bu
   yüzden düz background-color yerine dikey bir gradyan kullanılıyor. */
.page-hero-overlay--night {
    background: linear-gradient(180deg, rgba(15, 95, 190, 0.58) 0%, rgba(1, 4, 14, 0.9) 100%);
}

.media-content-section {
    background-color: #ffffff;
    padding: 90px 0;
}
.media-content-inner {
    /* KÖK NEDEN DÜZELTMESİ (partners/urunler ile aynı tür hata): dış
       sarmalayıcı artık header ile aynı genişlikte; text-align:left zaten
       vardı, paragraf metninin okunabilirliği bundan etkilenmiyor. */
    width: 100%;
    text-align: left;
}
.media-eyebrow {
    color: var(--color-blue);
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 6px;
}
.media-title {
    color: var(--text-dark);
    font-size: 22px;
    font-weight: 400;
    margin-bottom: 20px;
}
.media-text {
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 32px;
}
.media-image {
    /* tasarim/_Medya_.png üzerinde piksel piksel ölçüldü (köşe eğrisinin
       x/y taranması ve daire denklemiyle yarıçap hesaplanması): üç ayrı
       noktadan hesaplanan R ortalaması ~17.3px. */
    border-radius: 18px;
    overflow: hidden;
}
.media-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 18px;
}

.media-post {
    margin-bottom: 70px;
}
.media-post:last-child {
    margin-bottom: 0;
}
.media-empty-state {
    color: var(--text-gray);
    font-size: 18px;
}

/* -------------------- Medya galerisi (Faz 7) -------------------- */
/* Ana görsel video ise (mainAsset.IsVideo), üstüne ortalanmış oynat
   ikonu bindiren overlay — .media-image zaten border-radius/overflow
   tanımlıyor, konum için .media-image a relative referans olur. */
.media-image a {
    position: relative;
    display: block;
}
.media-video-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(4, 20, 53, 0.28);
}
.media-play-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Küçük thumbnail şeridi — bir haberin ilk görselinin altında, birden
   fazla görsel/videosu varsa gösterilir. Tümü aynı data-fancybox
   grubuna bağlı; görünür olmayanlar (media-thumb-hidden) DOM'da kalır
   ki Fancybox galerisi haberin TÜM öğelerini gezdirebilsin (proje
   detay sayfasındaki .detail-gallery-hidden ile aynı yaklaşım). */
.media-thumb-strip {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}
.media-thumb-item {
    position: relative;
    width: 76px;
    height: 76px;
    flex: 0 0 auto;
    border-radius: 10px;
    overflow: hidden;
    display: block;
    background: #eef1f6;
}
.media-thumb-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .2s ease;
}
.media-thumb-item:hover img {
    opacity: .85;
}
.media-thumb-hidden {
    display: none;
}
.media-thumb-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(4, 20, 53, 0.32);
}
.media-thumb-noimg {
    background: rgba(15, 95, 190, 0.12);
}
.media-thumb-more {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(4, 20, 53, 0.62);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
}

/* -------------------- Daha Fazla Yükle (tasarim/daha-fazla.png) -------------------- */
.media-load-more {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 60px auto 0;
    background: none;
    border: none;
    padding: 0;
    color: var(--text-dark);
    font-family: "Outfit", sans-serif;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
}
.media-load-more:hover {
    opacity: 0.75;
}
.media-load-more img {
    width: 16px;
    height: 16px;
}
/* Yüklenecek başka mock veri kalmayınca main.js bu class'ı ekleyip
   butonu gizler. */
.media-load-more.is-hidden {
    display: none;
}

/* ==========================================================================
   MARKALARIMIZ SAYFASI (markalarimiz.html)
   ========================================================================== */
.partners-content-section {
    background-color: #ffffff;
    padding: 90px 0;
}
/* Sayfanın en üstünde, grid'den ayrı/tekil duran PAGERM kartı — DİĞER
   marka kartlarıyla (.partner-logo-card, aşağıda) birebir aynı boyut/
   stil/hover (grayscale) kullanır; tek fark grid'in DIŞINDA, ortalanmış
   ve tek başına durması. Genişlik, .partners-logo-grid'in (5 sütun,
   20px gap) TEK bir sütununun aynı formülle ((100% - 4*20px) / 5)
   hesaplanan genişliğiyle birebir eşleşir — .partner-logo-card zaten
   aspect-ratio:1/1 olduğundan yükseklik de otomatik eşleşir. */
.partners-featured-logo {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}
.partners-featured-logo .partner-logo-card {
    width: calc((100% - 80px) / 5);
}
/* Kart boyutu diğer marka kartlarıyla birebir aynı kalsın diye
   .partner-logo-card'a dokunulmuyor; sadece bu karttaki logo görseli
   içerik alanına göre %50 küçültülüyor (diğer kartlardaki img'ler
   max-width/max-height:100% ile dolduruyor, burası özel olarak 50%). */
.partners-featured-logo .partner-logo-card img {
    max-width: 50%;
    max-height: 50%;
}
.partners-content-inner {
    /* KÖK NEDEN DÜZELTMESİ: max-width:720px burada bir metin sütunu değil,
       10 kartlık logo grid'ini (.partners-logo-grid) sarıyordu — bu yüzden
       kurumsal.html/medya.html'deki kasıtlı dar metin sütunu deseniyle
       aynı değildi, yanlışlıkla kopyalanmıştı. tasarim/_Partners_.png
       referansında grid, header'daki logo/hamburger ile AYNI kenar
       hizasında (tam .container genişliğinde). */
    width: 100%;
    text-align: center;
}
.partners-title {
    color: var(--text-dark);
    font-size: 22px;
    font-weight: 400;
    margin-bottom: 40px;
}

.partners-logo-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}
.partner-logo-card {
    background-color: #ffffff;
    border: 1px solid #e5e5e5;
    border-radius: var(--radius-sm);
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    /* KÖK NEDEN (SACHS bulanık görünüyordu): tasarim/logolar/ altındaki
       10 dosyanın 9'u native genişlik olarak kartın içerik alanından
       (128px kart - 2*20px padding - 2*1px border = 86px) küçük olduğu
       için 1:1 (ölçeksiz) render oluyordu. sachs.png ise 90px genişlikte
       — yani diğerlerinden DÜŞÜK ÇÖZÜNÜRLÜKLÜ değil, aksine biraz daha
       BÜYÜK — ama 86px'i aştığı için object-fit:contain onu %95.6'ya
       (86/90) küçültüyordu; bu küçük/tam sayı olmayan ölçek, ince
       harflerde (SACHS yazısı) bulanıklaşmaya yol açıyordu. Padding
       20px'ten 16px'e düşürülünce içerik alanı 94px'e çıkıyor (128 -
       2*16 - 2*1), bu da 10 logonun en genişi olan sachs.png'yi (90px)
       bile hiç ölçeklemeden 1:1 render eder. */
    padding: 16px;
}
.partner-logo-card img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    /* Varsayılan durumda renkli; hover'da griye döner (kartın kendi
       arkaplanına artık dokunulmuyor). */
    filter: grayscale(0%);
    transition: filter 0.2s ease;
}
.partner-logo-card:hover img {
    filter: grayscale(100%);
}
/* WebsiteUrl'i olan markalar <a class="partner-logo-card"> olarak render edilir (bkz.
   Markalarimiz.cshtml) — boyut/hover/grayscale birebir aynı kalır, sadece imleç ve link
   rengi/alt çizgisi değişir. Link OLMAYAN kartlar (düz <div>) varsayılan/statik imleçte kalır. */
.partner-logo-card {
    cursor: default;
    color: inherit;
    text-decoration: none;
}
a.partner-logo-card {
    cursor: pointer;
}

/* ==========================================================================
   ÜRÜNLER SAYFASI (urun-kategorileri.html)
   ========================================================================== */
.urunler-content-section {
    background-color: #ffffff;
    padding: 90px 0;
}
.urunler-content-inner {
    /* KÖK NEDEN DÜZELTMESİ: max-width:720px burada bir metin sütunu değil,
       ürün kart grid'ini (.urunler-product-grid) sarıyordu — kurumsal/medya
       sayfalarındaki kasıtlı dar metin sütunu deseniyle karıştırılmış,
       yanlışlıkla kopyalanmıştı. tasarim/_Ürünler_.png referansında grid,
       header'daki logo/hamburger ile AYNI kenar hizasında (tam .container
       genişliğinde). */
    width: 100%;
    text-align: center;
}
.urunler-title {
    color: var(--text-dark);
    font-size: 22px;
    font-weight: 400;
    margin-bottom: 40px;
}
/* Alt grupları OLAN bir üst grubun kendi sayfasında (bkz. UrunlerByGrup.cshtml Durum 2)
   .urunler-title'ın üzerinde görünen breadcrumb — .urunler-detail-breadcrumb ile aynı renk/
   punto, sadece .urunler-content-inner'ın text-align:center'ını miras alıp başlıkla arasına
   biraz boşluk bırakıyor (o sınıf tek başına margin-bottom taşımıyordu, çünkü sidebar'lı
   sayfada flex satırının İÇİNDE kullanılıyor). */
.urunler-content-breadcrumb {
    margin-bottom: 12px;
}

/* .product-card / .product-card-img / .product-card-title / .product-card-text
   anasayfadaki (index.html) ürün grubu carousel'iyle birebir aynı class'lar
   — burada carousel değil, statik grid içinde kullanılıyor (masaüstünde
   tek satırda 3 kart yan yana; responsive kademeler için bkz. responsive.css). */
.urunler-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* tasarim/urun-kategori.png referansı: toplam 11 kategoriden son 2'si
   (Aeresol ve Bakım, Çeki ve Treyler Sistemleri) 3 sütunlu grid'in
   DIŞINDA, kendi satırında ORTALANMIŞ duruyor. Grid'e 12. hayalet bir
   kart eklemeden (ki grid-column ile ortalamak bunu gerektirirdi) ayrı
   bir flex satırı kullanmak daha basit/net: kart genişliği .urunler-product-grid'deki
   TEK bir sütunun genişliğiyle (100% - 2*20px)/3 formülüyle birebir
   eşleşir, böylece üstteki kartlarla AYNI boyutta kalır. */
.urunler-product-grid-last-row {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
}
.urunler-product-grid-last-row .product-card {
    width: calc((100% - 40px) / 3);
    flex: 0 0 calc((100% - 40px) / 3);
}

/* Kartlara hafif hover: .product-card zaten (carousel'den miras) kendi
   transition:transform'unu taşıyor, index.html'deki carousel kartlarını
   ETKİLEMEYECEK şekilde .urunler-product-grid/-last-row ile scope'luyoruz —
   footer-social:hover'daki (translateY(-4px)) ile aynı, projede zaten
   kullanılan hafif kalkma miktarı. Gölge YOK (kullanıcı tercihi). */
.urunler-product-grid .product-card:hover,
.urunler-product-grid-last-row .product-card:hover {
    transform: translateY(-4px);
}

/* ==========================================================================
   ÜRÜNLER DETAY SAYFASI (urunler.html — kategori örneği: Motor)
   tasarim/_Ürünler_.jpg referansı: sağ üstte breadcrumb, solda dar sabit
   genişlikte kategori listesi (dikey ayraçla ayrılmış), sağda geniş
   kart grid'i. Kartlar henüz görselsiz — sadece hafif gri kutu +
   ortalanmış başlık/açıklama (gerçek ürün görselleri eklenene kadar).
   ========================================================================== */
.urunler-detail-section {
    background-color: #ffffff;
    padding: 60px 0 90px;
}
.urunler-detail-breadcrumb {
    font-size: 13px;
    color: var(--text-gray);
    white-space: nowrap;
}
.urunler-detail-breadcrumb a {
    color: var(--text-gray);
}
.urunler-detail-breadcrumb a:hover {
    color: var(--color-blue);
}
.urunler-detail-breadcrumb .breadcrumb-current {
    color: var(--color-blue);
    font-weight: 700;
}

/* KÖK NEDEN (hizalama.png referansı, 2 ayrı hiza çizgisi):
   1) "Motor" başlığı ile breadcrumb AYNI satırda (üst satır, sağ sütun).
   2) "Ürünler" (sol sütun) bu üst satırla DEĞİL, sağdaki KART GRID'İNİN
      üst kenarıyla aynı hizada başlamalı — yani sol sütun bir satır
      AŞAĞIDAN başlıyor. Flex + align-items:flex-start ile bu mümkün
      değildi (iki sütun da aynı Y'de başlar); bunun yerine 2 satırlı bir
      CSS Grid kullanılıyor: 1. satırda SADECE sağ sütunda başlık+breadcrumb
      var (sol sütun için o satırda boş bir "spacer" hücre), 2. satırda
      sol sütunda kategori listesi + sağda kart grid'i aynı hizada
      başlıyor. Spacer'ın kendi içeriği olmadığından 1. satırın yüksekliği
      SADECE başlık+breadcrumb'ın (margin-bottom dahil) yüksekliğine göre
      otomatik belirlenir — bu da 2. satırın (dolayısıyla "Ürünler"in)
      tam kartların başladığı Y'de başlamasını garantiler. */
.urunler-detail-layout {
    display: grid;
    grid-template-columns: 230px 1fr;
    column-gap: 40px;
}
.urunler-detail-sidebar-spacer {
    grid-column: 1;
    grid-row: 1;
}

/* Sol: sabit genişlikte kategori listesi, sağında ince dikey ayraç. */
.urunler-detail-sidebar {
    grid-column: 1;
    grid-row: 2;
    padding-right: 40px;
    border-right: 1px solid #e5e5e5;
}
.urunler-detail-sidebar-title {
    color: var(--color-blue);
    font-size: 28px;
    font-weight: 400;
    margin-bottom: 40px;
}
/* Bir alt grup görüntülenirken sidebar başlığı üst gruba dönen bir link olur — görünüm
   (renk/boyut) düz metin haliyle birebir aynı kalsın diye inherit ediyor, sadece hover'da
   tıklanabilir olduğu belli olsun diye alt çizgi ekleniyor (bkz. UrunlerByGrup.cshtml). */
.urunler-detail-sidebar-title-link {
    color: inherit;
    text-decoration: none;
}
.urunler-detail-sidebar-title-link:hover {
    text-decoration: underline;
}
/* urunler.html'de (madde 15) bu başlık aynı zamanda bir Bootstrap collapse
   tetikleyicisi (.urunler-detail-sidebar-toggle) — ikon SADECE mobilde
   (responsive.css, max-width:991.98px) görünür kılınır; masaüstünde liste
   zaten her zaman açık olduğundan gizli kalır. */
.urunler-detail-sidebar-toggle-icon {
    display: none;
}
/* Masaüstünde kategori listesi Bootstrap'ın "show" class'ından BAĞIMSIZ
   her zaman görünür kalır (collapse akordiyon davranışı SADECE mobilde,
   bkz. responsive.css); bootstrap.min.css'teki ".collapse:not(.show)
   {display:none}" kuralıyla aynı özgüllükte (iki class) olduğundan, HTML
   <head>'de style.css bootstrap.min.css'ten SONRA yüklendiği için bu kural
   kazanır. */
.urunler-detail-nav.collapse,
.urunler-detail-nav-accordion.collapse {
    display: block;
}
.urunler-detail-nav {
    list-style: none;
    margin: 0;
    padding: 0;
}
.urunler-detail-nav li {
    margin-bottom: 22px;
}
.urunler-detail-nav li:last-child {
    margin-bottom: 0;
}
.urunler-detail-nav a {
    font-size: 14px;
    color: var(--text-gray);
    transition: color 0.2s ease;
}
.urunler-detail-nav a:hover {
    color: var(--color-blue);
}
/* "Motor" — şu an içeriği hazır olan tek kategori. */
.urunler-detail-nav a.active {
    color: var(--color-blue);
    font-weight: 700;
}
/* Aktif kategori/marka/ürün adı satırlarında, F.A.Q accordion'undaki (bkz.
   .faq-accordion .accordion-button::after) İLE AYNI dolu kare ikon TEKNİĞİ (border+
   background-color, yeni ikon dosyası yok) — üstteki mavi renk vurgusuna EK olarak.
   Yazı SOLA yaslı, ikon satırın EN SAĞINDA — display:flex (inline-flex DEĞİL) <a>'yı
   <li>'nin tam genişliğine yayar. margin-left:auto (justify-content:space-between
   DEĞİL) kullanıldı çünkü ürün adı satırlarında metnin yanında ayrı bir <span> (ürün
   kodu, bkz. .urunler-detail-nav-product-code) de flex ÖĞESİ oluyor — space-between
   3 öğeyi (metin/kod/ikon) EŞİT aralıklarla dağıtırdı, ikon sağa yaslanmazdı;
   margin-left:auto öğe sayısından BAĞIMSIZ ikonu satırın en sağına iter. */
.urunler-detail-nav a.active {
    display: flex;
    align-items: center;
}
.urunler-detail-nav a.active::after {
    content: "";
    width: 10px;
    height: 10px;
    margin-left: auto;
    border: 2px solid var(--color-blue);
    background-color: var(--color-blue);
    flex-shrink: 0;
}
/* "Ürünler" 3. kademe filtresinde ürün adının yanındaki ürün kodu (bkz.
   _ProductNameFilterList.cshtml) — AYNI isimde farklı kodlu ürünleri ayırt etmek için. */
.urunler-detail-nav-product-code {
    font-size: 12px;
    color: var(--text-gray);
    margin-left: 4px;
}

/* Sağ: geniş içerik — kart grid'i (başlık artık ayrı bir grid hücresi,
   bkz. .urunler-detail-main-header). */
.urunler-detail-main {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
}
/* "Motor" başlığı + breadcrumb AYNI satırda (space-between) — ayrıca
   grid'in 1. satır/2. sütun hücresi: bu hücrenin (margin-bottom dahil)
   yüksekliği, sol sütundaki spacer ile birlikte 1. satırın toplam
   yüksekliğini belirler (bkz. .urunler-detail-layout açıklaması). */
.urunler-detail-main-header {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 40px;
}
.urunler-detail-title {
    color: var(--color-blue);
    font-size: 28px;
    font-weight: 400;
}

.category-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
/* 4. kart (tek başına, üstteki 3'lü grid'in DIŞINDA) kendi satırında
   ORTALANMIŞ duruyor — urun-kategorileri.html'deki son-satır ortalama
   deseniyle aynı mantık: kart genişliği grid'deki TEK bir sütunun
   genişliğiyle (100% - 2*24px)/3 formülüyle birebir eşleşir. */
.category-product-grid-last-row {
    display: flex;
    justify-content: center;
    /* gap: .category-product-grid'in (üstteki 3'lü satırlar) gap'ıyla AYNI değer — bu eksikti,
       kalan 1-2 kartlık son satırda (örn. toplam TAM 2 ürün olduğunda tüm ürünler bu satıra
       düşer) kartlar arasında boşluk kalmayıp birbirine yapışık görünüyordu. */
    gap: 24px;
    margin-top: 24px;
}
.category-product-grid-last-row .category-product-card {
    width: calc((100% - 48px) / 3);
    flex: 0 0 calc((100% - 48px) / 3);
}
/* Görselsiz "placeholder" kart: .product-card'ın aksine TEK PARÇA gri
   kutu (resim alanı + metin ayrımı yok) — metin kutunun ALT kısmında,
   ortalanmış duruyor. Gerçek ürün görselleri eklendiğinde bu class
   yerini .product-card'a bırakacak. */
.category-product-card {
    background-color: var(--bg-light-gray);
    border-radius: var(--radius-md);
    aspect-ratio: 0.86 / 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    text-align: center;
    padding: 0 24px 30px;
    transition: transform 0.2s ease;
}
.category-product-card:hover {
    transform: translateY(-4px);
}
.category-product-card-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 6px;
}
.category-product-card-text {
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-gray);
}

/* .category-product-grid'in ALTINDA (bkz. _CategoryProductGrid.cshtml) — sayfa başına 12
   üründen fazlası olduğunda görünür. Site genelindeki mevcut renk/radius değişkenleri
   (.urunler-detail-nav a.active ile AYNI aktif-durum mantığı) yeniden kullanılıyor, yeni bir
   görsel dil icat edilmedi. */
.urunler-pagination {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}
.urunler-pagination-list {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.urunler-pagination-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 6px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
    background-color: var(--bg-light-gray);
    transition: background-color 0.2s ease, color 0.2s ease;
}
a.urunler-pagination-link:hover {
    background-color: var(--bg-mid-gray);
}
.urunler-pagination-link.active {
    background-color: var(--color-blue);
    color: #ffffff;
}
.urunler-pagination-link.disabled {
    color: var(--bg-mid-gray);
    cursor: default;
}
.urunler-pagination-ellipsis {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    color: var(--text-gray);
}

/* ==========================================================================
   ÜRÜN DETAY SAYFASI (urun-detay.html — örnek: Motor Soğutma & Yağlama >
   Yağ Doldurma Borusu). tasarim/_Ürün-Detay_.jpg referansı: sol sütunda
   "Motor" başlığı + 4 ürün grubu akordiyonu (biri varsayılan açık),
   sağda başlık/breadcrumb + görsel/PAGERM'e Sor + bilgi satırları.
   Sayfa/hiza iskeleti (.urunler-detail-*) urunler.html ile AYNI paylaşılan
   sınıfları kullanıyor; burada sadece akordiyon nav ve bilgi kartı
   class'ları EKLENİYOR.
   ========================================================================== */

/* -------------------- Sol: Ürün Grubu Akordiyonu -------------------- */
.nav-accordion-group {
    margin-bottom: 30px;
}
.nav-accordion-group:last-child {
    margin-bottom: 0;
}
.nav-accordion-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--text-gray);
    transition: color 0.2s ease;
}
.nav-accordion-toggle:hover {
    color: var(--color-blue);
}
/* KÖK NEDEN: chevron-right.svg proje genelinde KOYU arkaplanlar (mobil
   menü, mega-submenu) için stroke="#ffffff" (beyaz) — bu sayfadaki AÇIK/
   beyaz sidebar arkaplanında filtresiz kullanılırsa görünmez olur.
   brightness(0) beyazı siyaha çevirir, opacity ile text-gray tonuna
   yaklaştırılıyor. */
.nav-accordion-toggle-icon {
    width: 11px;
    height: 11px;
    flex-shrink: 0;
    filter: brightness(0);
    opacity: 0.55;
    transition: transform 0.2s ease;
}
/* Grup açıkken (alt linkler görünürken) ">" aşağıyı gösterecek şekilde döner. */
.nav-accordion-toggle:not(.collapsed) .nav-accordion-toggle-icon {
    transform: rotate(90deg);
}
/* Açık grup (ör. "Motor Soğutma & Yağlama") mavi/kalın — Bootstrap
   collapse, hedefi "show" durumdayken tetikleyiciden "collapsed"
   class'ını otomatik kaldırır. */
.nav-accordion-toggle:not(.collapsed) {
    color: var(--color-blue);
    font-weight: 700;
}
/* Sol kenar boşluğu, üst gruptaki ">" ikonu (11px) + gap (8px) = 19px ile
   birebir eşit — alt linkin "-" işareti, grup başlığının METNİNİN
   (ikondan SONRAKİ kısmının) başladığı X ile hizalanır. */
.nav-accordion-sublist {
    list-style: none;
    margin: 14px 0 0;
    padding: 0 0 0 19px;
}
.nav-accordion-sublist li {
    margin-bottom: 11px;
}
.nav-accordion-sublist li:last-child {
    margin-bottom: 0;
}
.nav-accordion-sublist a {
    font-size: 13px;
    color: var(--text-gray);
    transition: color 0.2s ease;
}
.nav-accordion-sublist a:hover {
    color: var(--text-dark);
}
/* Tıklanan alt ürün linki aktif/siyah/kalın olur (main.js ile toggle
   edilir) — diğer sayfalardaki mavi "active" biçiminden FARKLI olarak
   burada koyu/siyah (bkz. referans: "Yağ Doldurma Borusu"). */
.nav-accordion-sublist a.active {
    color: var(--text-dark);
    font-weight: 700;
}

/* -------------------- Sağ: Görsel + Bilgi Kartı -------------------- */
.urun-detay-content {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}
.urun-detay-media {
    flex: 0 0 260px;
    width: 260px;
}
.urun-detay-media-box {
    aspect-ratio: 1 / 1;
    border: 1px solid #e5e5e5;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px;
    margin-bottom: 16px;
}
/* Gerçek ürün fotoğrafı eklenene kadar: soluk/gri PAGERM logosu
   placeholder olarak kullanılıyor (bkz. görev talimatı). */
.urun-detay-media-box img {
    width: 100%;
    height: auto;
    opacity: 0.18;
}
.urun-detay-ask-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background-color: var(--color-blue);
    color: #ffffff;
    font-size: 14px;
    font-weight: 400;
    padding: 14px 20px;
    border-radius: var(--radius-md);
    transition: background-color 0.2s ease;
}
.urun-detay-ask-btn-logo {
    height: 13px;
    width: auto;
    display: block;
}
/* chevron-right.svg varsayılan koyu (#17181a) — mavi buton üzerinde
   BEYAZ görünmesi için filtre uygulanıyor (proje genelinde ayrı bir
   beyaz ikon varyantı yok). */
.urun-detay-ask-btn-chevron {
    width: 10px;
    height: 10px;
    display: block;
    filter: brightness(0) invert(1);
}
.urun-detay-ask-btn:hover {
    background-color: var(--color-blue-dark);
}

.urun-detay-info {
    flex: 1 1 0%;
    min-width: 0;
}
.urun-detay-info-row {
    display: block;
    border: 1px solid #e5e5e5;
    border-radius: var(--radius-sm);
    padding: 14px 18px;
    margin-bottom: 12px;
}
.urun-detay-info-row:last-child {
    margin-bottom: 0;
}
.urun-detay-info-row-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.urun-detay-info-label {
    color: var(--color-blue);
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
}
.urun-detay-info-value {
    color: var(--text-gray);
    font-size: 13px;
    text-align: right;
}
/* "Açıklama" ve "Detay" satırları akordiyon — tetikleyici tıklanınca
   altında test/placeholder metin açılır (bkz. main.js, gerçek içerik
   admin panelden gelecek). */
a.urun-detay-info-toggle {
    display: block;
    cursor: pointer;
}
.urun-detay-info-toggle .urun-detay-info-row-top {
    position: relative;
    padding-right: 22px;
}
.urun-detay-info-toggle .urun-detay-info-row-top::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-blue);
    border-bottom: 2px solid var(--color-blue);
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.2s ease;
}
a.urun-detay-info-toggle:not(.collapsed) .urun-detay-info-row-top::after {
    transform: translateY(-30%) rotate(-135deg);
}
.urun-detay-info-body {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #e5e5e5;
    color: var(--text-gray);
    font-size: 13px;
    line-height: 1.7;
}

/* -------------------- Faz 8: gerçek ürün görseli varsa -------------------- */
/* .urun-detay-media-box img'in varsayılan opacity:0.18'i SADECE soluk PAGERM
   logosu placeholder'ı içindi — gerçek ürün fotoğrafı yüklendiğinde tam opak
   görünmeli. */
.urun-detay-media-box.has-real-image img {
    opacity: 1;
}
/* .category-product-card (urunler.html kart grid'i) varsayılan olarak
   görselsiz düz gri kutu — gerçek ürün fotoğrafı varsa arka plana basılır
   (background-image, inline style ile), kutunun boyutu/grid'i/hover'ı
   AYNEN korunur, sadece arkaplan rengi yerini fotoğrafa bırakır. Başlık/
   metin html-tasarim'deki orijinal stiliyle (renk/boşluk) aynen kalır —
   gradient overlay YOK, sadece görseli ayıran ince gri çerçeve var. */
.category-product-card.has-image {
    background-color: transparent;
    background-size: contain;
    background-position: top;
    border: 1px solid #e5e5e5;
    background-repeat: no-repeat;
}

/* ==========================================================================
   İLETİŞİM SAYFASI (iletisim.html)
   ========================================================================== */
.contact-map-section {
    background-color: #ffffff;
    padding-top: 90px;
}
/* KÖK NEDEN DÜZELTMESİ: Bu sarmalayıcıya eskiden max-width:720px
   veriliyordu — kurumsal.html/medya.html gibi sayfalardaki DAR/ortalanmış
   metin sütunu deseninden (o sayfalarda kasıtlı) kopyalanmıştı. İletişim
   sayfasında ise harita/form blokları header'daki logo/hamburger ile AYNI
   kenar hizasında (yani sitenin genel .container'ı KADAR geniş) olmalı;
   ekstra bir max-width, .container'ın kendi (--container-pad-x ile
   responsive) genişliğini header'dan daha dar hale getiriyordu. Artık bu
   sarmalayıcı sadece yapısal bir div, genişliği .container'dan miras alır. */
.contact-content-inner {
    width: 100%;
}
.contact-map-frame {
    /* tasarim/_İletişim_.png üzerinde piksel piksel ölçüldü (köşe eğrisi
       birden fazla noktada taranıp daire denklemiyle hesaplandı): üç
       noktadan ortalama R≈17.7px — sitedeki diğer 18px'lik köşelerle
       (partners logo kartları, medya görseli) tutarlı. */
    width: 100%;
    height: 350px;
    border: 0;
    border-radius: 18px;
    display: block;
    /* iframe'in kendi (Google) renklerini CSS'ten değiştiremeyiz, bu yüzden
       tüm haritayı gri tonlamaya çeviren bir filtre uygulanıyor. */
    filter: grayscale(100%);
}

/* tasarim/iletisim-ornek.png referansı: s-logo solda (sabit yükseklik),
   sağında Sabit Hat/GSM etiketleri + e-posta + adres. */
/* Alttaki border-bottom .contact-intro-row'un KENDİ genişliğinde —
   .contact-content-inner container'dan %100 genişlik miras aldığından
   (bkz. .contact-map-frame ile aynı sol/sağ kenar) haritayla PİKSEL
   BAZINDA aynı genişlikte başlar/biter. padding-bottom, metin (adres
   satırı) ile border arasında belirgin bir dikey boşluk bırakır. */
.contact-intro-row {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-top: 40px;
    padding-bottom: 28px;
    border-bottom: 1px solid #e5e5e5;
}
/* KÖK NEDEN: tasarim/s-logo.png (209x224) kare logonun SAĞINDA zaten
   kendi şeffaf boşluğu + ince bir çizgi barındırıyor (piksel piksel
   ölçüldü: kare 0-177px, boşluk 178-205px, çizgi 206-208px) — bunu
   OLDUĞU GİBİ göstermek kontrolsüz/asimetrik bir boşluk yaratıyordu.
   Bunun yerine görsel SADECE kareye (~%84.7 genişlik) kırpılıyor. */
.contact-intro-logo {
    width: 103px;
    height: 127px;
    overflow: hidden;
}
.contact-intro-logo img {
    height: 130px;
    width: auto;
    display: block;
}
.contact-intro-info {
    /* Logo (img, üst kenarı tam kutu sınırında) ile metin bloğunun (p/a
       satırları) ÜST kenarları birebir aynı Y'de başlasın diye offset
       YOK — .contact-intro-row'daki align-items:flex-start ikisini de
       aynı çizgiden başlatır. */
}
.contact-intro-label {
    color: var(--text-dark);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.6;
}
.contact-intro-email {
    display: block;
    color: var(--color-blue);
    font-size: 14px;
    font-weight: 600;
    margin: 10px 0;
    transition: color 0.2s ease;
}
.contact-intro-email:hover {
    color: var(--color-blue-dark);
}
.contact-intro-address {
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-gray);
}

.contact-form-block {
    background-color: #ffffff;
    padding: 70px 0;
}

/* Mega menüden "Kariyer" bağlantısıyla (#kariyer) sayfa içi kaydırma
   yapıldığında, sticky .site-header (bkz. .site-header, position:sticky)
   hedef bölümün üst kısmını (başlığı) kapatmasın diye scroll-margin-top
   eklendi — değer Chrome'da ölçülen sticky header yüksekliğiyle eşleşiyor. */
#kariyer {
    scroll-margin-top: 140px;
}

/* Kariyer formunda kullanılan .custom-input zaten sitede tanımlı (soft
   gri arkaplan, ince border, yuvarlak köşe) — burada TEKRAR kullanılıyor,
   yeni bir input stili icat edilmedi. */
.contact-form-fields {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.contact-form-grid {
    display: grid;
    gap: 14px;
}
.contact-form-grid--4col {
    grid-template-columns: repeat(4, 1fr);
}
.contact-form-grid--3col {
    grid-template-columns: repeat(3, 1fr);
}

/* "CV Yükle" / "Döküman Yükle" gerçek <input type="file"> öğelerini
   (.visually-hidden ile) tetikleyen <label>'lar — CV Yükle diğer form
   alanlarıyla aynı .custom-input görünümünü korur, sadece tıklanabilir
   bir imleç ve dosya seçici davranışı ekler. */
.custom-input--file {
    display: flex;
    align-items: center;
    cursor: pointer;
    color: var(--text-gray);
}

/* -------------------- Kariyer -------------------- */
.kariyer-layout {
    display: flex;
    gap: 20px;
    margin-top: 40px;
    align-items: stretch;
}
.kariyer-image {
    position: relative;
    flex: 0 0 220px;
    border-radius: var(--radius-md);
    /* tasarim/_İletişim_.png referansında görsel, gri kutunun ÜST kenarını
       taşıyor (kadının üst gövdesi/kafası kutunun dışında, düz beyaz
       arkaplan üzerinde) — bu yüzden overflow artık visible: kutu sadece
       görselin ALT kısmını saran bir arkaplan, üst taşmayı kırpmıyor. */
    overflow: visible;
    background-color: var(--bg-light-gray);
}
.kariyer-image img {
    /* Görsel doğal en-boy oranıyla (kutu genişliğine göre) render edilip
       alt kenardan hizalanıyor; kutu yüksekliğinden (forma eşit) daha
       uzun olduğu için üst kısmı kutunun üstüne taşıyor — overflow:visible
       sayesinde bu taşma KIRPILMADAN görünüyor. */
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

/* ==========================================================================
   TEDARİKÇİMİZ OL (/tedarikcimiz-ol)
   Eski iletisim.html "Tedarikçimiz Ol" bölümünün yerine geçen, ayrı ve
   kapsamlı bir sayfa — 5 bölümlü form (Genel Bilgiler/Kontak Kişiler/
   Ürün Gamı/Teslimat & Ödeme/Kalite Yönetimi), site genelindeki
   .contact-form-* pattern'iyle (.custom-input, .contact-form-grid, vb.)
   aynı görsel dilde ama kendi (label'lı, çok-alanlı) düzeniyle.
   ========================================================================== */
.contact-form-grid--2col {
    grid-template-columns: repeat(2, 1fr);
}

.supplier-form-intro {
    color: var(--text-gray);
    font-size: 14px;
    line-height: 1.6;
    max-width: 640px;
    margin: 16px 0 0;
}

/* Her bölüm (1..5) kendinden önceki bölümden ince bir üst çizgiyle ayrılır;
   İLK bölüm formun kendi üst boşluğunu (40px, .contact-form-fields'ten
   miras) zaten aldığından ekstra çizgi/boşluk almaz. */
.supplier-form-section {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #e5e5e5;
}
.supplier-form-section:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}
.supplier-form-section-title {
    font-family: "Outfit", sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--text-dark);
    margin: 0 0 20px;
}

/* Tek bir alan (label + input/textarea) — .contact-form-grid'in bir
   hücresi olarak kullanılır. */
.supplier-form-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.supplier-form-field-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-gray);
}
/* Araç Markaları / Kalite Sertifikaları gibi tam-genişlik checkbox
   grupları — grid'in TÜM sütunlarını kaplar. */
.supplier-form-field--full {
    grid-column: 1 / -1;
}

.supplier-form-radio-group,
.supplier-form-checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    padding: 14px 18px;
    background-color: var(--bg-light-gray);
    border-radius: 10px;
}
.supplier-form-radio,
.supplier-form-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--text-dark);
    cursor: pointer;
}
.supplier-form-radio input,
.supplier-form-checkbox input {
    width: 16px;
    height: 16px;
    accent-color: var(--color-blue);
    cursor: pointer;
    flex-shrink: 0;
}

/* ==========================================================================
   F.A.Q SAYFASI (faq.html)
   ========================================================================== */
.faq-content-section {
    background-color: #ffffff;
    padding: 90px 0;
}
.faq-content-inner {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    text-align: left;
}
.faq-accordion .accordion-item {
    background-color: transparent;
    border: 0;
    border-bottom: 1px solid #e5e5e5;
    border-radius: 0;
}
.faq-accordion .accordion-item:first-of-type,
.faq-accordion .accordion-item:last-of-type {
    border-radius: 0;
}
.faq-accordion .accordion-item:first-of-type {
    border-top: 1px solid #e5e5e5;
}
.faq-accordion .accordion-header {
    margin: 0;
}
.faq-accordion .accordion-button {
    padding: 22px 4px;
    font-size: 16px;
    font-weight: 600;
    color: var(--color-blue);
    background-color: transparent;
    box-shadow: none;
}
.faq-accordion .accordion-button:not(.collapsed) {
    color: var(--color-blue);
    background-color: transparent;
    box-shadow: none;
}
.faq-accordion .accordion-button:focus {
    box-shadow: none;
}
/* Bootstrap'in varsayılan ok/chevron ikonu yerine tasarim/faq.png
   referansındaki küçük kare işaretçi: kapalıyken içi boş (sadece kenarlık),
   açıkken dolu mavi kare. */
.faq-accordion .accordion-button::after {
    width: 10px;
    height: 10px;
    background-image: none;
    background-color: transparent;
    border: 2px solid var(--color-blue);
    flex-shrink: 0;
    transition: background-color 0.2s ease;
}
.faq-accordion .accordion-button:not(.collapsed)::after {
    background-color: var(--color-blue);
}
.faq-accordion .accordion-body {
    padding: 0 4px 24px;
    color: var(--text-gray);
    font-size: 15px;
    line-height: 1.8;
}

/* ==========================================================================
   404 SAYFASI (Error404.cshtml) — site paletiyle tutarlı, sade
   ========================================================================== */
.error404-section {
    background-color: #ffffff;
    padding: 130px 0;
}
.error404-inner {
    max-width: 520px;
    margin: 0 auto;
    text-align: center;
}
.error404-code {
    display: block;
    font-size: 110px;
    font-weight: 700;
    color: var(--color-blue);
    line-height: 1;
    margin-bottom: 18px;
}
.error404-title {
    color: var(--text-dark);
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 10px;
}
.error404-message {
    color: var(--text-gray);
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 32px;
}
/* .btn-hero-primary hero'daki flex-wrap satırı için margin-right/bottom
   taşıyor (bkz. tanımı) — burada tek/ortalanmış kullanıldığından sıfırlanır. */
.error404-btn {
    margin: 0;
}

/* ==========================================================================
   ÇEREZ POLİTİKASI BANNER'I (_PublicLayout.cshtml, tüm sayfalar)
   ========================================================================== */
/* Varsayılan gizli — main.js sayfa yüklenince localStorage'daki onay
   durumuna göre (yoksa) display:flex ile açar; FOUC (kısa an görünüp
   kaybolma) olmasın diye başlangıçta CSS'te gizli. */
.cookie-consent-banner {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1060;
    background-color: var(--bg-mid-gray);
    color: #ffffff;
    padding: 18px var(--container-pad-x);
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 16px 24px;
}
.cookie-consent-banner.is-visible {
    display: flex;
}
.cookie-consent-text {
    flex: 1 1 480px;
    font-size: 13px;
    line-height: 1.6;
    color: #ffffff;
    margin: 0;
}
.cookie-consent-text a {
    color: #ffffff;
    text-decoration: underline;
}
.cookie-consent-text a:hover {
    color: var(--color-yellow);
}
.cookie-consent-accept {
    flex: 0 0 auto;
    background-color: var(--color-blue);
    color: #ffffff;
    font-weight: 500;
    font-size: 14px;
    padding: 11px 26px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.cookie-consent-accept:hover {
    background-color: var(--color-blue-dark);
}
