/* FILE: assets/css/style.css */
/* ==========================================================================
   Pagerm - 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: #ebeaea;
    --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;
}

/* .text-blue/.text-yellow'dan FARKLI, kesin marka renkleri (#1a1244 lacivert /
   #eec21a sarı — hero/years-strip'te de kullanılan aynı ton). .text-yellow
   (--color-yellow:#edbf28) ve .text-dark-strong (--text-dark:#17181a) bu
   tondan farklı olduğundan, bu iki rengin tam eşleşmesi gereken yerlerde
   (bkz. "Dünyaya Ulaşan Güçlü Ürün Ağı" başlığı) o class'lar yerine bunlar
   kullanılır. */
.text-navy-strong {
    color: #1a1244;
    font-weight: 500;
}
.text-yellow-accent {
    color: #eec21a;
}

.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 {
    /* var(--color-blue) yerine lacivert #1a1244 (madde 5) — bu class sitede
       SADECE "Ürünleri Keşfet" butonunda kullanılıyor, başka bir yeri
       etkilemiyor. */
    background-color: #1a1244;
    color: #ffffff;
    font-weight: 500;
    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: #120c30;
    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;
}

/* Anasayfa'ya özel sarı CTA butonu (tasarim/_Anasayfa_.png) — .btn-hero-primary
   Error404.cshtml ile PAYLAŞILDIĞI için (bkz. .btn-hero-primary yorumu) onun
   rengini değiştirmek yerine ayrı bir class kullanılıyor. */
.btn-cta-yellow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: #eec21a;
    color: #1a1244;
    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-cta-yellow:hover {
    background-color: #d6ac13;
    color: #1a1244;
}

/* 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: none;
    background-color: #ffffff;
    color: #1a1244;
}
.hero-search-form .search-form-input::placeholder {
    color: #1a1244;
}

.btn-outline-catalog {
    display: inline-block;
    background-color: #ffffff;
    color: #1a1244;
    font-weight: 500;
    font-size: 14px;
    padding: 12px 24px;
    border-radius: 8px;
    border: 1px solid rgba(26,18,68,0.2);
    margin-top: 6px;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.btn-outline-catalog:hover {
    background-color: #1a1244;
    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;
}

/* ==========================================================================
   HEADER / NAVİGASYON
   ========================================================================== */
.site-header {
    background-color: #1a1244;
    z-index: 1040;
}
/* Kurumsal — sticky header opaklığı DENENDİ, KALICI OLARAK VAZGEÇİLDİ:
   sahaparts.com/kurumsal (bu projenin türetildiği orijinal kod tabanı)
   header'ı tamamen opak (rgb(0,0,0)) kullanıyor; saydamlık denemesi
   (rgba background, tek satır dahi olsa) header'ın toplam yüksekliğinin
   fotoğraf bindirme miktarından (70px) fazla olması nedeniyle üstte
   her zaman farklı tonda bir şerit üretiyor. Header artık diğer TÜM
   .page-hero-banner sayfalarıyla (Medya, Markalarımız, İletişim, FAQ,
   Tedarikçi Ol) AYNI opak `.site-header` kuralını kullanıyor — override
   YOK. Fotoğraf artık kendi varsayılan `.page-hero-overlay` rengini
   (rgba(26, 18, 68, 0.55), diğer tüm .page-hero-banner sayfalarıyla
   ortak) kullanıyor — Kurumsal'a özgü bir gradyan override YOK. */
/* 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: #1a1244;
}

.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
   (26px = 52px'in yarısı, ayrı bir width kuralı gerekmez) */
.hamburger-line:nth-child(1),
.hamburger-line:nth-child(3) {
    width: 52px;
}
.hamburger-line:nth-child(2) {
    background-color: #eec21a;
    /* Kısa (yarı uzunlukta) çizgi diğer iki tam boy çizgiyle SOL değil
       SAĞ kenardan hizalı dursun — .hamburger-btn column-flex'inin cross
       axis'inde (yatay) bu tek öğeyi sona (sağa) iter. */
    align-self: flex-end;
}

.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: 25px;
    width: auto;
}

/* -------------------- Mega Menü (Hamburger Dropdown) -------------------- */
.mega-menu {
    background-color: #1a1244;
    /* 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: #eec21a;
    font-weight: 700;
}
.mega-menu-tabs a:hover {
    color: #eec21a;
}
/* 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;
    color: #eec21a;
}
.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: #eec21a;
}

.mega-menu-search {
    background-color: #eec21a;
    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: #1a1244;
    width: 320px;
}
.mobile-menu .offcanvas-header {
    padding: 22px 24px;
    border-bottom: 1px solid rgba(255,255,255,0.3);
}
.mobile-menu-logo img {
    height: 11px;
    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: 11px;
    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: #1a1244;
    padding: 70px 0 90px;
    /* tasarim/edit02.png referansı: lacivert alan sol/sağ alt köşede BELİRGİN
       bir kavisle sarı .years-strip'e insin (keskin köşe DEĞİL). 32px, sitede
       zaten kullanılan köşe yuvarlama ölçeğiyle tutarlı (bkz. .mega-menu 28px).
       KÖK NEDEN + ÇÖZÜM (önceki deneme sadece köşeyi düzleştirmişti, bu
       İSTENEN görünüm değildi): border-radius, section'ın KENDİ kutusundan bu
       32x32'lik köşe parçasını komple ÇIKARIR — o alanda section'ın hiç boyalı
       pikseli kalmaz, dolayısıyla ALTTA (z-index olarak) her ne varsa o görünür.
       .years-strip düz köşeli tam genişlikte bir dikdörtgen olduğundan o
       32x32'lik boşluğa kendiliğinden uzanmaz — sayfanın beyaz zemini görünürdü.
       Çözüm: .years-strip'in kendisine, SADECE bu iki köşe hizasında (tam
       genişlikte DEĞİL, öyle olsa düz orta kısımdaki "35 YIL" yazısını da
       kaplardı) 32x32'lik iki küçük sarı "dolgu" pseudo-element eklendi
       (bkz. .years-strip::before/::after, top:-32px ile bu köşe boşluğuna
       uzanıyor) — z-index sırası (.hero-section:2 > .years-strip:1) sayesinde
       lacivert kendi gerçek pikselleri olan her yerde (düz orta kısım + kavisin
       İÇİ) üstte kalıp dolguyu gizler, dolgu SADECE kavisin dışarıda bıraktığı
       köşe boşluğunda görünür — böylece boşluksuz/kesintisiz bir kavis oluşur. */
    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;
    /* .years-strip'in köşe dolgu pseudo-elementlerinin (z-index:1, bkz. aşağısı)
       ARKASINDA/ALTINDA kalmaması için — ikisi de position:relative olduğundan
       DOM sırası değil, bu açık z-index farkı paint sırasını belirler. */
    z-index: 2;
    /* 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: 26px;
    font-weight: 400;
    line-height: 1.25;
    margin-bottom: 24px;
}
.hero-title-accent {
    color: #eec21a;
}

/* Admin bir görsel/video yüklemediyse (varsayılan durum) sağda gösterilen
   dekoratif ürün görseli (tasarim/slide-img.png) — hero-title/arama/CTA
   sütununun (col-lg-7/col-xl-6) yanında, section'ın sağ yarısını kaplar. */
.hero-decor-img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 46%;
    z-index: 1;
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
.hero-decor-img img {
    max-width: 100%;
    max-height: 105%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.hero-search-form-wrap {
    /* 460px * 1.3 = 598px (madde 4: mevcut genişliğin %30 fazlası) */
    max-width: 598px;
    margin-bottom: 26px;
}

/* ==========================================================================
   ÜRÜNLER HEADER (Ürün Kategorileri / Ürün Grubu Detay / Ürün Detay — ORTAK)
   tasarim/_Ürünler-Header_.png referansı. Views/Shared/_ProductPageHero.cshtml
   içinde kullanılır. Ana Sayfa'nın .hero-section'ı BİLEREK reuse edilmedi —
   o class'ın .years-strip ile (border-radius köşe boşluğu dolgusu, bkz.
   .hero-section yorumu) sıkı bir bağımlılığı var, ürün sayfalarını etkilememesi
   için ayrı bir class. İçindeki arama kutusu ise Ana Sayfa hero'suyla AYNI
   .hero-search-form/.search-form-input class'larını (dolayısıyla AYNI
   js-product-search-* JS davranışını) reuse eder — sadece .product-hero-search-wrap
   ile YATAYDA ORTALANIR (Ana Sayfa'da sol hizalı sütun içinde kalıyor). */
.product-hero-section {
    background-color: #1a1244;
    /* .page-hero-banner ile AYNI bindirme tekniği (margin-top:-70px, bkz. o kuralın
       yorumu) — sticky header'ın kendi 32px köşe yuvarlanması bu section'ın üzerine
       binip kesintisiz tek bir eğri oluşturuyor. padding-top bu -70px'i telafi edip
       ÜSTÜNE 60px görünür boşluk ekliyor (header'ın altından itibaren). */
    margin-top: -70px;
    padding: 130px 0 50px;
    border-bottom-left-radius: 32px;
    border-bottom-right-radius: 32px;
}
.product-hero-eyebrow {
    color: #eec21a;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 16px;
}
/* Kutunun kendi genişliği/yüksekliği Ana Sayfa'daki .hero-search-form ile
   BİREBİR AYNI kalıyor (input'un padding-top/bottom'u — 13px — DEĞİŞMEDİ,
   47px yükseklik buradan geliyor; max-width hâlâ paylaşılan .hero-search-
   form-wrap kuralından). SADECE ikon+yazı, kutunun İÇİNDE bir GRUP olarak
   ortalanıyor: ikon artık solda absolute değil, input'la yan yana akışta
   (.search-form'un gap'i ile ayrılmış) ve ikisi birlikte justify-content:
   center ile ortalanıyor. */
.product-hero-search-wrap {
    margin-left: auto;
    margin-right: auto;
    /* Padding YOK (yükseklik input'un kendi padding'inden gelmeye devam
       etsin diye) — sadece beyaz zemin/köşe, input'un auto genişliğe
       küçülmesiyle kutunun KENDİSİ küçülmesin diye. */
    background-color: #ffffff;
    border-radius: 8px;
}
.product-hero-search-wrap .search-form {
    justify-content: center;
    /* Temel .search-form{gap:14px} ikonla input arasını çok açık bırakıyordu —
       ikon yazıya yakın dursun diye daraltıldı (0 ise fazla yapışık oluyordu). */
    gap: 6px;
}
.product-hero-search-wrap .search-form-btn {
    /* .hero-search-form .search-form-btn eski absolute+dikey-ortalama tekniğinden
       (top:50%;transform:translateY(-50%)) kalan transform, position:static
       olsa da UYGULANMAYA devam edip ikonu yukarı kaydırıyordu — sıfırlandı;
       dikey hizalama artık .search-form'un align-items:center'ından geliyor. */
    position: static;
    transform: none;
}
.product-hero-search-wrap .search-form-input {
    /* Genişlik BURADA sabitlenmiyor — main.js #16 bölümü placeholder metnini
       gerçek fontla ölçüp input'a TAM OTURAN bir width atıyor (bkz. main.js).
       Sabit bir px tahmini (300px vb.) her zaman metinden BÜYÜK kalıp
       görünmez bir boşluk bırakıyordu — grup (ikon+input) kutunun ortasında
       olsa bile bu boşluk yüzünden GÖRÜNEN ikon+yazı gözle ortalı görünmüyordu. */
    flex: 0 0 auto;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
    text-align: left;
}
.product-hero-text {
    color: #ffffff;
    font-size: 14px;
    max-width: 480px;
    margin: 0 auto;
}

/* ==========================================================================
   YIL ŞERİDİ
   ========================================================================== */
.years-strip {
    background-color: #eec21a;
    color: #1a1244;
    text-align: center;
    padding: 4px 0;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 1px;
    /* position+z-index: ::before/::after köşe dolgularının konum referansı
       VE .hero-section'ın (z-index:2) her zaman üstte kalmasını sağlayan
       açık kat sırası (bkz. .hero-section yorumu) için gerekli. */
    position: relative;
    z-index: 1;
}
/* Köşe dolguları: .hero-section'ın 32px'lik yuvarlatılmış alt köşesinin
   AÇTIĞI boşluğu (bkz. .hero-section yorumu) TAM O NOKTADA sarıyla kapatır —
   tam genişlik değil, sadece iki köşede 32x32'lik birer kare (düz orta kısım
   zaten kesintisiz sarı, dokunulmuyor). */
.years-strip::before,
.years-strip::after {
    content: "";
    position: absolute;
    top: -32px;
    width: 32px;
    height: 32px;
    background-color: #eec21a;
}
.years-strip::before {
    left: 0;
}
.years-strip::after {
    right: 0;
}

/* ==========================================================================
   DÜNYAYA ULAŞAN GÜÇLÜ ÜRÜN AĞI
   ========================================================================== */
.world-network-section {
    background-color: #ffffff;
    padding: 70px 0 30px;
}
.world-network-heading {
    max-width: 640px;
    margin: 0 auto;
}
.world-network-heading .section-text {
    max-width: none;
}

.world-network-map {
    position: relative;
    margin-top: 40px;
}
.world-network-map-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-lg);
}
.world-network-boxes-img {
    position: absolute;
    left: 50%;
    bottom: -24%;
    transform: translate(-50%, -50%);
    width: 70%;
    height: auto;
    /* Gölge kaldırıldı (madde 6) */
}
.world-network-btn {
    position: absolute;
    top: 24px;
    /* left:24px (sabit sol köşe) yerine ortalama (madde 5) */
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    margin-top: 0;
    /* .btn-outline-catalog'un temel padding'inden (12px 24px) daha kompakt
       bir buton için override (madde 5) — paylaşılan sınıfın kendisi
       değiştirilmedi, sadece bu bileşende daraltıldı. */
    padding: 8px 30px;
    font-size: 13px;
    /* .btn-outline-catalog'un temel border'ı çok soluk (rgba(26,18,68,0.2))
       — bu buton için tam opak lacivert border'a override edildi. */
    border-color: #1a1244;
}

/* ==========================================================================
   ONE STOP SHOP
   ========================================================================== */
.one-stop-shop-section {
    background-color: #ffffff;
    padding: 60px 0 90px;
}
/* tasarim/edit4.png: tasarim/pagerm-shop.png (2038x839, sağda ürün/dünya
   haritası + solda boş/açık degrade zemin) TEK PARÇA bant arkaplanı olarak
   kullanılıyor — eskiden ayrı bir .one-stop-shop-image kutusunda object-fit:
   cover ile kırpılıyordu, bu da görselin sağ kenarını kesip beyaz köşeli
   AYRI bir kutu gibi gösteriyordu. background-size:cover + aspect-ratio
   (görselin kendi oranı) ile görsel artık kartın TÜM alanını, kesintisiz
   ve oranı bozulmadan kaplıyor; ayrıca madde 6'daki kompakt/yatay bant
   görünümünü de bu aspect-ratio otomatik sağlıyor (kare/dikey değil). */
.one-stop-shop-card {
    /* Butonların (.one-stop-shop-actions) position:absolute referans noktası
       — bkz. aşağısı. */
    position: relative;
    background-color: var(--bg-light-gray);
    background-image: url("../img/pagerm-shop.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    aspect-ratio: 2038 / 839;
    border-radius: var(--radius-lg);
    /* overflow:hidden KALDIRILDI (madde 4) — masaüstünde .one-stop-shop-actions
       artık kartın alt kenarından taşıyor (bkz. aşağısı), overflow:hidden bu
       taşmayı kırpardı. Arkaplan görseli border-radius sayesinde zaten
       otomatik olarak yuvarlak köşelere kırpılıyor (border-box clip),
       overflow:hidden'a bunun için ihtiyaç yoktu. */
    display: flex;
    align-items: center;
}
.one-stop-shop-content {
    padding: 48px var(--radius-lg);
    /* Sol boşluk 24px (--radius-lg) yerine sabit 60px — shorthand'dan SONRA
       tanımlanarak sadece sol değeri override ediyor, üst/sağ/alt aynı
       kalıyor. */
    padding-left: 60px;
    /* Görselin sağ tarafı ürün/harita içeriğiyle dolu — metin/buton bloğu
       sadece solundaki boş/açık alanda kalsın diye genişliği sınırlandı. */
    max-width: 520px;
    /* Butonlar artık bu blok İÇİNDE normal akışta DEĞİL (position:absolute,
       bkz. .one-stop-shop-actions) — DOM'da hâlâ burada duruyorlar ama
       kapladıkları alan bu content bloğunun kendi yüksekliğine dahil
       edilmiyor, bu yüzden altta fazladan boşluk kalmasın diye padding-bottom
       normal 48px'ten daha az bırakıldı. */
    padding-bottom: 24px;
}
.one-stop-shop-logo img {
    height: 22px;
    width: auto;
}
.one-stop-shop-title {
    /* Önceki -webkit-text-stroke: 1px #1a1244 dış hat/kontur efekti
       KALDIRILDI (madde 3) — artık düz/dolgu #eec21a, efektsiz. */
    color: #eec21a;
    font-size: 40px;
    margin: 55px 0 20px;
}
.one-stop-shop-text {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.4;
    color: #1a1244;
    margin-bottom: 26px;
}
/* tasarim/edit4.png (piksel piksel ölçüldü — buton grubunun yatay merkezi
   görselin TAM ORTASINDA, sol metin bloğunun sol kenarıyla DEĞİL): butonlar
   sol metin bloğunun altında değil, TÜM kartın alt-orta noktasında duruyor.
   .one-stop-shop-actions artık HTML'de .one-stop-shop-content'in DIŞINDA,
   kartın doğrudan çocuğu (bkz. Index.cshtml) — en yakın konumlanmış ata
   olan .one-stop-shop-card'a göre left:50%+translateX(-50%) ile yatayda
   TAM ORTALANIYOR. */
.one-stop-shop-actions {
    position: absolute;
    left: 0;
    right: 0;
    /* Buton grubunun DİKEY MERKEZİ kartın alt kenar çizgisiyle çakışsın diye
       (yarısı kart içinde, yarısı dışında taşarak) — ölçülen buton grubu
       yüksekliği artık 37.5px ("Hakkımızda" butonuyla eşitlendi, bkz.
       aşağısı .one-stop-shop-actions .btn), bu yüzden bottom =
       -(37.5/2) = -18.75px. Sadece masaüstünde: mobilde (bkz. responsive.css,
       max-width:991.98px) position:static'e dönüyor, bu değer devre dışı
       kalıyor. */
    bottom: -18.75px;
    display: flex;
    justify-content: center;
    gap: 14px;
}
.one-stop-shop-actions .btn {
    margin-right: 0;
    margin-bottom: 0;
    /* "Dünyaya Ulaşan Güçlü Ürün Ağı" bölümündeki "Hakkımızda" butonuyla
       (.world-network-btn, padding:8px 30px) BİREBİR AYNI render yüksekliği
       (37.5px) için — font-size (15px) değişmeden sadece dikey padding
       6.5px'e düşürüldü (tarayıcıda ölçülerek doğrulandı: 13px->50.5px,
       6.5px->37.5px, .world-network-btn'in yüksekliğiyle birebir eşit). */
    padding-top: 6.5px;
    padding-bottom: 6.5px;
    /* .btn-cta-yellow (display:inline-flex, Bootstrap .btn'den miras 1px
       şeffaf border) ile .btn-primary-custom (display:inline-block,
       border:none) İKİSİ AYNI padding'e sahipken bile farklı render
       yüksekliği veriyordu (mobilde .flex-wrap yüzünden satır kırılınca
       37.5px'e karşı 35.5px — tarayıcıda ölçülerek tespit edildi). İkisini
       AYNI layout moduna (inline-flex + border:1px solid transparent)
       zorlayarak bu 2px'lik farkı ortadan kaldırıyoruz; iki buton da her
       genişlikte birebir 37.5px. */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    box-sizing: border-box;
}

/* ==========================================================================
   GENİŞ ÜRÜN YELPAZESİ GÜÇLÜ HİZMET
   ========================================================================== */
.product-range-section {
    background-color: #ffffff;
    padding: 30px 0 90px;
}
.product-range-heading {
    max-width: 640px;
    margin: 0 auto;
}
.product-range-heading .section-text {
    max-width: none;
}

/* Etiketler video/görselin ÜZERİNE, ProductDiagramTag'teki X/Y yüzdesine göre absolute
   konumlanır (bkz. Index.cshtml, AdminController.UrunSemasi/UrunSemasiEtiketler). Video
   modunda main.js #15 bölümü videoyu bölüm viewport'a her girişte BAŞTAN oynatır,
   çıkışta durdurup başa sarar ve etiketleri/okları tekrar gizler. 'ended' event'inde
   her etiket + kendi bağlı ok/çizgisi main.js'in atadığı transition-delay ile TEK TEK
   (.is-visible class'ı kendi üzerlerine eklenir) görünür olur — bkz. revealTagsStaggered.
   Görsel modunda (video yoksa) main.js aynı sıralı reveal'ı gecikmesiz uygular. */
.product-diagram {
    position: relative;
    max-width: 1100px;
    width: 100%;
    margin: 44px auto;
}
.diagram-media img,
.diagram-media video {
    width: 100%;
    height: auto;
    display: block;
}
/* Tüm etiket kutuları AYNI genişlikte (en uzun metin olan "Süspansiyon & Direksiyon"
   kutusunun gerçek render genişliği ölçülüp yuvarlandı) — kısa metinler
   justify-content:center ile kutu içinde ortalanır. Yükseklik/border-radius/font-size
   ".world-network-btn" ("Hakkımızda" butonu) ile BİREBİR AYNI (37.5px yükseklik,
   8px radius, 13px font — bkz. style.css .world-network-btn tanımı). */
.diagram-tag {
    position: absolute;
    top: var(--tag-y);
    width: 174px;
    height: 37.5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #1a1244;
    color: #ffffff;
    border-radius: 8px;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
    text-decoration: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.45s ease, transform 0.45s ease;
    z-index: 2;
}
/* Gizli haldeyken kutu kendi kenarından (sol/sağ) hafifçe İÇERİDE durur — .is-visible
   olunca kayarak (slide) asıl konumuna (translateX:0) oturur. */
.diagram-tag--left {
    left: 2%;
    transform: translateY(-50%) translateX(-14px);
}
.diagram-tag--right {
    right: 2%;
    transform: translateY(-50%) translateX(14px);
}
.diagram-tag:hover {
    color: #1a1244;
    background-color: #eec21a;
}
.diagram-tag-nolink {
    cursor: default;
}
.diagram-tag.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) translateX(0);
}
/* Bağlantı çizgisi: tasarim/video-01.png referansındaki gibi TAMAMEN YATAY — etiketin
   kenarından (2%/98%), parçanın üzerindeki gerçek noktaya (tag.XPercent) kadar uzanır.
   Genişlik/konum sunucu tarafında (Index.cshtml) hesaplanıp CSS custom property olarak
   geçilir (--connector-left, --connector-width, --connector-y). Kutunun ALTINDA durur
   (z-index düşük) — kutu zaten kenara yaslı olduğundan çizginin başlangıcını doğal olarak
   örter. Etiketle AYNI ANDA (main.js'in atadığı aynı transition-delay ile) fade-in olur —
   video oynarken/bitene kadar TAMAMEN GİZLİ. */
.diagram-tag-connector {
    position: absolute;
    left: var(--connector-left);
    top: var(--connector-y);
    width: var(--connector-width);
    height: 2px;
    background-color: #eec21a;
    transform: translateY(-50%);
    opacity: 0;
    transition: opacity 0.45s ease;
    z-index: 1;
}
.diagram-tag-connector.is-visible {
    opacity: 1;
}
.diagram-tag-connector::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #eec21a;
}
/* Nokta, çizginin PARÇAYA değen ucunda durmalı: sol yaslı etiketlerde çizgi
   kenar(2%)→parça yönünde aktığından nokta SAĞ ucunda; sağ yaslı etiketlerde
   çizgi parça→kenar(98%) yönünde aktığından nokta SOL ucunda. */
.diagram-tag-connector--left::after {
    right: -3px;
}
.diagram-tag-connector--right::after {
    left: -3px;
}

.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;
}

/* ==========================================================================
   MULTI-ITEM CAROUSEL (Marka Logoları Slider'ı)
   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).

   .carousel-item-col aynı zamanda .value-card ile boyut/padding/köşe
   yuvarlaklığı paylaşıyor (aşağıdaki ortak kural) — Değerlerimiz artık
   carousel değil ama kart görünümü aynı kalsın diye stil hâlâ ortak.
   ========================================================================== */
.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;
}

/* Kartların/kutucukların toplam genişliği, üstteki ok navigasyonunun sağ
   kenarına kadar uzanmalı - bu yüzden mevcut genişliği eşit paylaşarak
   BÜYÜRLER (satırı doldururlar). */
.brands-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;
}
/* Gemi görseli iki satırın arasına daha FAZLA binsin diye (kullanıcı isteği)
   metin, gemiyle çakışan kenardan UZAKLAŞTIRILIYOR: üst satırda kutunun
   ÜST kısmına, alt satırda kutunun ALT kısmına itiliyor — böylece ortadaki
   (gemiye yakın) boş alan büyüyor, gemi daha fazla binse bile başlık/metne
   değmiyor. Sadece Değerlerimiz bölümüne özel, .product-card'ı etkilemez.
   ÖNEMLİ: ikisi de justify-content:flex-start kullanıyor (flex-end DEĞİL) —
   flex-end kullanılınca aynı satırdaki kartlar arasında metin uzunluğu
   farklı olduğunda (örn. "Satış Sonrası Destek" vs "Rekabetçi Fiyat")
   başlık Y konumu içerik yüksekliğine göre KAYIYOR, satır içi hizası
   bozuluyordu (kullanıcı fark etti). flex-start + sabit padding-top ile
   başlık konumu HER ZAMAN padding-top'a eşit, içerik uzunluğundan
   bağımsız — satır içi hizalama garantili. */
.values-grid-row:first-child .value-card {
    justify-content: flex-start;
}
.values-grid-row:last-child .value-card {
    justify-content: flex-start;
    padding-top: 95px;
}

.product-card-title,
.value-card-title {
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 8px;
}
.product-card-title {
    color: #1a1244;
}

.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;
}

/* ==========================================================================
   GLOBALDE DEĞERLERİMİZ
   Artık carousel değil — 8 sabit kutu, iki satır (4+4), aralarında
   our-values.png (gemi) görseli. .value-card temel boyutu/padding'i
   Ürün Grubu kartıyla paylaşılan ortak kuralda tanımlı (bkz. MULTI-ITEM
   CAROUSEL bölümü) — sadece burada carousel sarmalayıcısı yerine düz
   bir grid içinde kullanılıyor.
   ========================================================================== */
.values-section {
    background-color: #ffffff;
    /* Üst padding 90px'ten 30px'e indirildi — sayfadaki diğer section
       geçişleriyle (bkz. .product-range-section, .contact-form-section:
       hepsi "30px 0 90px" desenini kullanıyor) tutarlı olsun diye;
       90px 0 kullanınca bir önceki section'ın kendi 90px alt padding'iyle
       toplanıp (180px) sayfadaki en büyük/orantısız section arası boşluğu
       oluşturuyordu (kullanıcı fark etti). */
    padding: 30px 0 90px;
}
.values-heading {
    max-width: 640px;
    margin: 0 auto;
}

.values-grid {
    margin-top: 46px;
}
.values-grid-row {
    display: flex;
    gap: 24px;
}
.values-grid-row .value-card {
    flex: 1 1 0%;
    height: auto;
    /* 190px yeterliyken, alt satırın padding-top:95px'i (gemiye yer açmak
       için, bkz. aşağısı) içerikle birlikte ~211px'e ihtiyaç duyuyordu —
       üst satır 190px'te sabit kalıp alt satırdan KISA görünüyordu
       (kullanıcı fark etti). 212px, tarayıcıda ölçülen alt satır gerçek
       yüksekliğine (210.6px) küçük bir payla göre ayarlandı; artık HER
       İKİ satır da aynı 212px'te, üst satırda kalan fazladan boşluk
       geminin daha rahat binmesine de yarıyor. */
    min-height: 212px;
}
/* tasarim/gemi.png: 4 kutudan Premium Kalite, Güvenilir Çözümler, Tek
   Noktadan Tedarik, Rekabetçi Fiyat sarı (#eec21a) — diğer 4'ü (Global Ağ,
   Zamanında Teslimat, Güçlü İş Ortaklıkları, Satış Sonrası Destek) zaten
   paylaşılan ".product-card, .value-card" kuralındaki var(--bg-light-gray)
   (#f1f2f2) varsayılanını koruyor, üzerine yazmaya gerek yok. */
.value-card--accent {
    background-color: #eec21a;
}
/* ÖNCEKİ (YANLIŞ) YÖNTEM: container'a sabit height:142px + overflow:hidden
   + img'e object-fit:cover veriliyordu. Container'ın en-boy oranı
   (1185/142 ≈ 8.35:1) görselin GERÇEK piksel oranından (our-values.png
   2032x506 ≈ 4.02:1) çok daha "yassı/geniş" olduğundan, cover görseli
   GENİŞLİĞE göre ölçekleyip (1185px) yüksekliği FAZLA gelen kısmı
   (≈295px hesaplanan yükseklik - 142px container = ≈153px, üstten ve
   alttan yaklaşık yarı yarıya) KIRPIYORDU — tam olarak edit7.png'de
   görülen, geminin tekne altının/üst yapının kesilmesi sorunu buydu.
   DOĞRU YÖNTEM: kırpma YOK — width sabitlenir, height'i img'in KENDİ
   piksel oranına göre (aspect-ratio ile) OTOMATİK hesaplanır. Böylece
   görsel her zaman TAMAMEN (tekne altı dahil) görünür, sadece genel
   boyutu değişir. width:950px → height otomatik ≈236px (950 / (2032/506))
   — img satırın ortasında, KIRPILMADAN render ediliyor (mobilde
   max-width:100% + aspect-ratio ile viewport'a göre orantılı küçülüyor,
   yine kırpılmadan — bkz. responsive.css). */
.values-ship-image {
    position: relative;
    z-index: 2;
    /* Üst/alt binme miktarı ASİMETRİK, kullanıcı isteğiyle gemi YUKARI
       kaydırıldı: üst satıra daha FAZLA binsin (-105px), alt satırdaki
       başlıklarla arasında daha FAZLA boşluk kalsın (-50px) — kartlar
       eşit yüksekliğe (212px) çıkarıldıktan SONRA tarayıcıda tekrar
       ölçülerek doğrulandı: üst satırda metnin altında ~8px, alt satırda
       başlığın üstünde ~45px boşluk kalıyor, hiçbir başlık/metni
       örtmüyor. */
    margin-top: -105px;
    margin-bottom: -50px;
    pointer-events: none;
}
.values-ship-image img {
    display: block;
    width: 950px;
    max-width: 100%;
    aspect-ratio: 2032 / 506;
    height: auto;
    margin: 0 auto;
}

/* ==========================================================================
   GÜÇLÜ MARKALAR
   tasarim/edit8.png: başlık BEYAZ zeminde, ayrı; lacivert carousel paneli
   (üst köşeleri yuvarlak) bunun ALTINDA — eskiden tüm section (başlık
   dahil) lacivert arkaplan taşıyordu, artık sadece panel taşıyor.
   Panel'in KENDİSİ (lacivert arkaplan + yuvarlak köşeler) TAM SAYFA
   GENİŞLİĞİNDE (container'a sığdırılmış DEĞİL) — sadece İÇİNDEKİ
   carousel/ok satırı (.brands-carousel-wrap) container genişliğine
   sınırlı, böylece oklar da container'ın sol/sağ kenarında duruyor. */
.brands-section {
    background-color: #ffffff;
    padding: 60px 0 90px;
}
.brands-heading {
    text-align: center;
    margin-bottom: 34px;
}
.brands-heading .section-eyebrow {
    color: var(--text-gray);
}
.brands-panel {
    background-color: #1a1244;
    /* Üst köşeler yuvarlak, alt köşeler düz — tasarim/edit8.png referansı. */
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    padding: 40px 0;
}
.brands-carousel-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}
.brands-carousel-container {
    flex: 1 1 auto;
    min-width: 0;
}
.brands-carousel-arrow {
    flex-shrink: 0;
    /* Yuvarlak çerçeve (border-radius/border/background) KALDIRILDI —
       tasarim/edit8.png'de oklar çerçevesiz, sade ikon olarak duruyor. */
    width: 24px;
    height: 24px;
    border: none;
    background: none;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
}
.brands-carousel-arrow:hover {
    opacity: 0.65;
}
.brands-carousel-arrow img {
    width: 14px;
    height: 14px;
    /* chevron-blue.svg mavi çiziliydi, koyu lacivert şerit üzerinde
       beyaza çevrilir. */
    filter: brightness(0) invert(1);
}
.brands-carousel-arrow-prev img {
    transform: scaleX(-1);
}
.brand-card {
    background-color: #ffffff;
    border-radius: var(--radius-sm);
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}
.brand-card a,
.brand-card img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}

/* ==========================================================================
   SÜREKLİLİK VE İSTİKRAR
   tasarim/edit10.png: İÇERİK YATAY (sol metin + sağ görsel) DEĞİL, DİKEY
   TEK SÜTUN — başlık/metin üstte ortalanmış, kamyon görseli altında TAM
   GENİŞLİKTE, buton en altta ortalanmış. Eskiden .row/.col-lg-5/.col-lg-7
   ile yan yana kuruluyordu (bkz. tasarim/edit9.png, YANLIŞ sonuç).
   ========================================================================== */
.continuity-section {
    background-color: #ffffff;
    padding: 90px 0;
    /* Köşe süslemeleri (::before/::after) için konumlanma bağlamı. */
    position: relative;
    overflow: hidden;
}
/* tasarim/edit10.png: sağ üst ve sol alt köşelerde sarı (#eec21a) "L"
   şeklinde köşe süslemeleri — iki kenarlı border ile oluşturuluyor,
   section'ın kendi kenarlarına göre (container padding'ine göre DEĞİL)
   konumlanıyor. Kalınlık tasarim/edit11.png'de canvas ile piksel piksel
   ölçüldü: 33x33px'lik "L" kutusunda kenar kalınlığı 10px (~%30 oran) —
   bizim 36px'lik kutumuza aynı oranla uygulanınca ~11px çıkıyor
   (eskiden 3px'ti, ÇOK İNCE kalıyordu). */
.continuity-section::before,
.continuity-section::after {
    content: "";
    position: absolute;
    width: 36px;
    height: 36px;
    pointer-events: none;
}
.continuity-section::before {
    top: 28px;
    right: 28px;
    border-top: 11px solid #eec21a;
    border-right: 11px solid #eec21a;
}
.continuity-section::after {
    bottom: 28px;
    left: 28px;
    border-bottom: 11px solid #eec21a;
    border-left: 11px solid #eec21a;
}
.continuity-heading {
    max-width: 640px;
    margin: 0 auto;
}
/* Paylaşılan .section-text'in temel max-width:300px'i zaten doğru
   genişlik — paragraf kasıtlı olarak .continuity-heading'in 640px'lik
   genişliğinden DAHA DAR (300px) tutulup ORTALANIYOR (block eleman
   olduğundan text-align:center yetmez, kendi margin:auto'su gerekiyor). */
.continuity-heading .section-text {
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
}
/* Paylaşılan .section-title varsayılanı (font-weight:400, body'den miras
   #17181a) burada YETERSİZ — tasarim/edit10.png'de başlık kalın ve
   lacivert (#1a1244). Sadece bu bileşene özel override. */
.continuity-heading .section-title {
    color: #1a1244;
    font-weight: 500;
}
.continuity-truck-image {
    margin: 40px 0;
}
.continuity-truck-image img {
    width: 100%;
    height: auto;
    /* border-radius KALDIRILDI — tasarim/edit10.png'de görsel bir "kart"
       içinde değil, sayfanın beyaz zeminine doğrudan (kenarsız) oturuyor. */
    display: block;
}
/* .world-network-btn ("Hakkımızda") ile BİREBİR AYNI render yüksekliği
   için aynı padding/font-size override'ı kullanılıyor — ikisi de aynı
   paylaşılan .btn-outline-catalog temelinden geliyor, tarayıcıda
   ölçülerek doğrulandı (bkz. Index.cshtml). */
.continuity-btn {
    padding: 8px 30px;
    font-size: 13px;
}

/* ==========================================================================
   BİNLERCE ÜRÜN TEK KAYNAK (FORM)
   ========================================================================== */
.contact-form-section {
    background-color: #f1f2f2;
    /* Üst/alt padding EŞİT — tasarim/edit13.png'de üst boşluğun (eskiden
       30px) alt boşluğa (90px) göre belirgin dar kaldığı işaretlendi. */
    padding: 90px 0;
}

.custom-input {
    background-color: #ffffff;
    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;
}
/* İletişim (Kariyer formu) — SADECE bu sayfadaki inputlar gri, paylaşılan
   .custom-input'un (Anasayfa alt form, Tedarikçi Ol) varsayılan beyazına
   dokunulmadı. */
#kariyer .custom-input {
    background-color: #f1f2f2;
}
#kariyer .custom-input:focus {
    background-color: #f1f2f2;
}
/* 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;
}

/* "Araç Listesi" dropdown'u (Binlerce Ürün Tek Kaynak formu) — aynı
   satırdaki Mesaj textarea'sıyla (.custom-textarea, height:127.5px) AYNI
   yükseklikte olsun diye — sadece BU dropdown'a özel (id ile scope'lu),
   paylaşılan select.custom-input'un KENDİSİ (Kariyer formundaki
   "Departmanlar" dropdown'u da kullanıyor) değiştirilmedi. */
#arac-listesi {
    height: 127.5px;
}

/* Sol kolon (eyebrow+başlık+metin+buton), sağdaki form grid'iyle AYNI
   satırda (.row) olduğundan Bootstrap'in varsayılan davranışıyla (flex
   align-items:stretch) zaten sağ kolonla AYNI yükseklikte — tasarim/
   edit13.png: butonun ALT KENARI, sağdaki Mesaj kutusunun ALT KENARIYLA
   hizalı olmalı. Kolonun kendisi flex-column yapılıp butona
   margin-top:auto verilerek buton, kolonun (=satırın=sağ formun) TAM
   altına itiliyor — tarayıcıda ölçülerek doğrulandı (bkz. görev özeti). */
.bottom-form-left-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
/* "Katalog Hesabı Oluştur" — .world-network-btn/.continuity-btn ile AYNI
   teknik: paylaşılan .btn-cta-yellow tabanı üstüne, "Hakkımızda" butonuyla
   birebir aynı render yüksekliğini (37.5px) veren padding/font-size
   override'ı. margin-right/margin-bottom (.btn-cta-yellow'un flex-wrap
   bağlamları içindi) burada tek başına durduğundan sıfırlandı; margin-top
   artık sabit 22px DEĞİL, "auto" — butonu kolonun (üsttekiyle aynı
   yükseklikteki) en altına iter. */
.bottom-form-catalog-btn {
    margin-top: auto;
    margin-right: 0;
    margin-bottom: 0;
    padding: 8px 30px;
    font-size: 13px;
}

/* "Başvur" butonu: eskiden col-12 .message-row içinde kare (.btn-send,
   127.5x127.5px, mavi) bir butondu; artık Mesaj/Araç Listesi ile AYNI
   satırda üçüncü bir col-md-4 hücresi — satırdaki diğer alanlarla
   (Mesaj textarea'sı .custom-textarea{height:127.5px}) aynı yükseklikte,
   hücreyi TAM dolduracak şekilde genişletildi, rengi sarıya (.btn-cta-yellow)
   çevrildi (paylaşılan mavi .btn-send'in KENDİSİ Kariyer/Tedarikçi
   formlarında hâlâ kullanıldığından değiştirilmedi, bkz.
   Iletisim.cshtml/TedarikcimizOl.cshtml). */
.bottom-form-submit-btn {
    width: 100%;
    height: 127.5px;
    margin-right: 0;
    margin-bottom: 0;
}

/* İletişim — tasarim/_İletişim_.png: SADECE Kariyer formundaki (#kariyer)
   "Başvur" butonu sarı — paylaşılan .btn-send (Tedarikçi Ol formunda da
   kullanılıyor, bkz. yukarıdaki yorum) mavi kalmaya devam ediyor. */
#kariyer .btn-send {
    background-color: #eec21a;
    color: #1a1244;
}
#kariyer .btn-send:hover {
    background-color: #d6ad0f;
    color: #1a1244;
}

.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: #f1f2f2;
    color: #1a1244;
    border: 1px solid rgba(26,18,68,0.15);
    border-bottom: none;
    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, color 0.2s ease;
}
.whatsapp-tab:hover {
    background-color: #eec21a;
    color: #1a1244;
}
.whatsapp-tab img {
    width: 25px;
    height: 25px;
    transform: rotate(90deg);
    /* whatsapp.svg beyaz dolgulu (fill="#ffffff"); açık zeminde görünür
       olması için siyaha çevrilir. */
    filter: brightness(0);
}

/* ==========================================================================
   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;
}
/* Anasayfada (body.page-index) footer'dan hemen önceki son section artık
   beyaz DEĞİL, gri (.contact-form-section, #f1f2f2) — bu yüzden SADECE bu
   sayfada .footer-backdrop'un köşe dolgu rengi de aynı griye çevriliyor
   (diğer TÜM sayfalarda üstteki beyaz varsayılan aynen korunuyor, çünkü
   onlarda footer'dan önceki son section hâlâ beyaz). */
body.page-index .footer-backdrop {
    background-color: #f1f2f2;
}

.site-footer {
    background-color: #1a1244;
    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: #eec21a;
}
.footer-nav li:not(:last-child)::after {
    content: "|";
    display: inline-block;
    margin-left: 12px;
    color: rgba(255, 255, 255, 0.4);
}

/* Sol kolon (nav+ayraç+telif) ile AYNI toplam yükseklikte (bkz. Views/
   Shared/_PublicLayout.cshtml yorumu, .row'un varsayılan align-items:
   stretch'i) — flex-column + space-between ile ana logo ÜSTTE, sosyal
   medya ikonları ALTTA (telif satırıyla aynı hizada) duruyor. */
.footer-right-col {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
}

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

/* "PAGERM Online Katalog" linkindeki "PAGERM" kelimesi yerine geçen
   footer-logo.png — .mega-menu-tabs a.brand-tab ile AYNI teknik
   (inline-flex + align-items:center dikey ortalar). */
.footer-nav a.footer-online-katalog-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #eec21a;
}
.footer-online-katalog-logo {
    display: block;
    height: 11px;
    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: 11px;
    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: #eec21a;
    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;
    /* Marka lacivertimiz #1a1244 (rgb 26,18,68) ile birebir eşleşecek şekilde
       RGB kısmı güncellendi — alpha (0.55) aynı kaldı. */
    background-color: rgba(26, 18, 68, 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 {
    /* tasarim/_Kurumsal_.png'de aktif sekme (Hakkımızda) LACİVERT, mavi değil. */
    color: #1a1244;
    font-weight: 700;
}
.corporate-tabs-sep {
    color: var(--text-gray);
    margin: 0 10px;
}

.corporate-panel {
    display: none;
    /* tasarim/_Kurumsal_.png'de paragraflar ORTALANMIŞ (eskiden sola yaslıydı) —
       okunabilirlik için dar bir sütuna (bkz. .corporate-panel p) sığdırılıp
       kendisi ortalanıyor. */
    text-align: center;
}
.corporate-panel.active {
    display: block;
}
.corporate-panel p {
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.8;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 18px;
}
.corporate-panel p:last-child {
    margin-bottom: 0;
}
.corporate-panel strong {
    color: var(--text-dark);
    font-weight: 700;
}

/* tasarim/_Kurumsal_.png — paragraf ile "Tercih Edilen Marka Olmak..." arasındaki
   ince ortalanmış sarı ayırıcı çizgi. */
.corporate-divider {
    width: 60px;
    height: 3px;
    background-color: #eec21a;
    border: none;
    border-radius: 2px;
    margin: 40px auto;
}

.corporate-section-title {
    text-align: center;
    font-size: 26px;
    font-weight: 500;
    margin-bottom: 40px;
}

/* 2x2 kart grid'i — üst iki kart açık gri/lacivert başlık, alt iki kart lacivert
   zemin/sarı başlık (tasarim/_Kurumsal_.png). İçerik (başlık/metin) daha önce hiç
   yoktu, bu görev kapsamında YENİ eklendi (bkz. Program.cs kurumsal.card1-4_*),
   hardcoded/statik UiText — admin panelden yönetilen dinamik bir veri KAYNAĞI yok
   (Index.cshtml'deki .value-card'lar gibi ayrı bir tablo/entity'ye bağlı değil). */
.corporate-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.corporate-card {
    border-radius: var(--radius-md);
    padding: 30px 34px;
    text-align: center;
}
.corporate-card--light {
    background-color: #f1f2f2;
}
.corporate-card--light .corporate-card-title {
    color: #1a1244;
}
.corporate-card--light .corporate-card-text {
    color: var(--text-gray);
}
.corporate-card--dark {
    background-color: #1a1244;
}
.corporate-card--dark .corporate-card-title {
    color: #eec21a;
}
.corporate-card--dark .corporate-card-text {
    color: #ffffff;
}
.corporate-card-title {
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 12px;
}
.corporate-card-text {
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
}

/* Hero'nun ortasındaki "PAGERM is a brand of Saha Automotive" rozeti —
   pagerm-brand.png'nin KENDİ ÇERÇEVESİ zaten görselin içine gömülü (canvas
   pixel-scan + görsel karşılaştırmayla doğrulandı: kenardaki soluk piksel
   çizgisi ve köşelerdeki alpha:0, sıradan bir yuvarlak-köşe tasarımının
   normal şeffaflığıydı — GERÇEK bir kırpma değildi). Önceki turda buraya
   EKLENEN CSS border (ayrı bir 10px radius'lu dikdörtgen) görselin KENDİ
   çerçevesiyle TAM ÖRTÜŞMEDİĞİNDEN iki çerçeve üst üste binip köşelerin
   "kesilmiş/bozuk" görünmesine sebep oluyordu — kaldırıldı. Sarmalayıcı
   artık SADECE ortalama/padding için var, kendi border'ı YOK. */
.corporate-hero-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
}
/* .page-hero-image img{width:100%;height:100%} (class+tag, (0,1,1)) daha yüksek
   özgüllüğe sahip olduğundan tek class'lı bir kural bunu ezemiyordu — bileşik
   seçici (.page-hero-caption img.corporate-hero-badge-logo, (0,3,1)) kullanıldı.
   GERÇEK KÖK NEDEN (kesik köşe sorunu): .page-hero-image img{border-radius:30px}
   (arkaplan fotoğrafı için) bu img'e de (aynı descendant seçici) uygulanıp
   görselin KENDİ ince çerçevesini 30px'lik sert bir kavisle EK olarak kırpıyordu
   — .page-hero-logo için zaten var olan AYNI düzeltme (border-radius:0) burada
   eksikti, eklendi. */
.page-hero-caption img.corporate-hero-badge-logo {
    height: 85px;
    width: auto;
    display: block;
    border-radius: 0;
}

/* Medya sayfası kaldırıldığında (.media-content-section, .media-title vb.
   TAMAMEN sayfaya özel kurallar) buradan silindi — ama .media-empty-state ve
   .media-thumb-hidden GERÇEKTE Medya'ya özel değildi, Ürünler sayfalarınca
   (UrunKategorileri/UrunlerByGrup/_CategoryProductGrid boş-durum metni,
   UrunDetay'ın Fancybox galerisindeki gizli-thumbnail tekniği) da paylaşılan
   genel yardımcı class'lardı — silinmediler, aşağıda korunuyorlar. */
.media-empty-state {
    color: var(--text-gray);
    font-size: 18px;
}
.media-thumb-hidden {
    display: none;
}

/* ==========================================================================
   Ü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: #1a1244;
    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: #1a1244;
    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: #1a1244;
    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 #1a1244;
    background-color: #1a1244;
    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: #1a1244;
    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: #1a1244;
    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)
   ========================================================================== */

/* İletişim hero — tasarim/_İletişim_.png: hero.Title yerine 2 satırlık
   açıklama metni (2. satır sarı), YATAYDA TAM ORTALANMIŞ. Dekoratif
   telefon/nokta/konum/mesaj ikon kümesi (fotoğrafın kendi içeriğinden
   ayrı, ekstra eklenmiş elementlerdi, i01.png'de işaretlendi) KALDIRILDI
   — sadece arkaplan fotoğrafı kalıyor. */
.iletisim-hero-caption {
    align-items: center;
    justify-content: center;
    text-align: center;
    max-width: 640px;
    margin: 0 auto;
}
.iletisim-hero-text {
    color: #ffffff;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.6;
    margin: 0;
}

.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: 40px;
    margin-top: 40px;
    padding-bottom: 28px;
    border-bottom: 1px solid #eec21a;
}
/* tasarim/_İletişim_.png: s-logo.png (kare) yerine konteyner.png (geniş
   konteyner görseli, 1062x399 ≈ 2.66:1) kullanılıyor — sabit genişlik,
   yükseklik görselin kendi oranından (aspect-ratio) otomatik. */
.contact-intro-logo {
    width: 300px;
}
.contact-intro-logo img {
    width: 100%;
    height: auto;
    aspect-ratio: 1062 / 399;
    display: block;
    border-radius: 6px;
}
.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;
}

/* ==========================================================================
   F.A.Q SAYFASI (faq.html)
   ========================================================================== */
/* Hero — F.A.Q'da arkaplan FOTOĞRAF DEĞİL, düz lacivert (kullanıcı isteği):
   fotoğraf (<img>) gizlenir, .page-hero-image kendi arkaplanı düz lacivert
   olur; .page-hero-overlay (rgba(26,18,68,.55)) üzerine binmeye devam eder,
   ton biraz daha koyulaşır — zararsız. */
body.page-faq .page-hero-image img {
    display: none;
}
body.page-faq .page-hero-image {
    background-color: #1a1244;
}

/* Hero — tasarim/faq.png: hero.Title yerine ortalanmış 2 satırlık açıklama
   metni (İletişim'deki aynı desen). */
.faq-hero-caption {
    align-items: center;
    justify-content: center;
    text-align: center;
    max-width: 640px;
    margin: 0 auto;
}
.faq-hero-text {
    color: #ffffff;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.6;
    margin: 0;
}

.faq-content-section {
    background-color: #f5f5f7;
    padding: 90px 0;
    position: relative;
    overflow: hidden;
}
/* tasarim/faq.png: içerik alanının SAĞ tarafında aynı faq-img.png
   fotoğrafı — kendi ORİJİNAL renkleriyle (opacity düşürülmedi, %8 soluk
   watermark denendi ama görsel çoğunlukla açık/beyaz tonlu olduğundan
   fark edilmiyordu) — TAMAMI (kırpılmadan/taşmadan) görünecek şekilde
   container'ın sağ yarısını kaplıyor; accordion sütunu container'ın
   SOLUNDAN başlıyor (ortalanmış değil). top/bottom:-90px (height:100%
   YERİNE) section'ın KENDİ 90px padding'ini bilerek aşıp üst/alt kenara
   TAM BİTİŞİK (padding'den etkilenmeyen) bir dolgu sağlıyor. Dekoratif,
   metin akışını etkilememesi için pointer-events:none; accordion'a
   position:relative + z-index:1 verilerek her zaman üstte boyanması
   garantilendi. */
.faq-content-section::before {
    content: "";
    position: absolute;
    top: -90px;
    bottom: -90px;
    right: 0;
    width: 100%;
    background-image: url("/theme/assets/img/faq-hero.png");
    background-size: contain;
    background-position: center right;
    background-repeat: no-repeat;
    pointer-events: none;
}
.faq-content-inner {
    width: 100%;
    max-width: 650px;
    margin: 0;
    text-align: left;
    position: relative;
    z-index: 1;
}
.faq-accordion .accordion-item {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    margin-bottom: 32px;
}
.faq-accordion .accordion-item:last-of-type {
    margin-bottom: 0;
}
.faq-accordion .accordion-header {
    margin: 0;
    border-bottom: 1px solid #e5e5e5;
}
.faq-accordion .accordion-button {
    padding: 0 4px 18px;
    font-size: 16px;
    font-weight: 500;
    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 sarı (#eec21a)
   aşağı-chevron (kullanıcı isteği); açıkken 180° döner. */
.faq-accordion .accordion-button::after {
    width: 25px;
    height: 25px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23eec21a' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    border: 0;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.faq-accordion .accordion-button:not(.collapsed)::after {
    transform: rotate(180deg);
}
.faq-accordion .accordion-body {
    padding: 20px 4px 0;
    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: #1a1244;
    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;
    /* .btn-hero-primary paylaşılan (anasayfa hero CTA'sı da kullanıyor) —
       rengini değiştirmemek için burada scoped override. */
    background-color: #1a1244;
}
.error404-btn:hover {
    background-color: #241a5e;
}

/* ==========================================================================
   Ç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);
}
