/* ============================================================
   Ayla Uğur — Ortak Frontend Bileşen Standartları (REFERANS)
   Tema CSS'ine dokunmadan, tüm sayfalarda tutarlı görünüm için.
   Görsel/ürün kartlarındaki metinler (ürün adı, kreasyon, kod, buton)
   bu standartla aynı font ve boyutta olmalıdır.
============================================================ */

/* ---- ÜRÜN / GÖRSEL KARTI METİN STANDARDI ----
   Ürün adı (en büyük): tema .gl-product-info h3
       → font: var(--font-serif), boyut: clamp(16px,1.8vw,22px), weight 400
   Aşağıdaki öğeler ürün adından KÜÇÜK kalır. */

/* Atölye hero — başlık/metin daha şık (dengeli kırılım, ferah) */
.gl-atl-hero-title{ text-wrap:balance; }
.gl-atl-hero-lede{ text-wrap:pretty; }

/* Atölye — hero altı hızlı erişim şeridi (okunaklı, sticky) */
.gl-atl-jumpbar{
    position:sticky; top:0; z-index:50;
    display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
    gap:8px 38px; padding:16px 24px;
    background:rgba(20,16,14,.96); backdrop-filter:blur(6px);
    border-top:1px solid rgba(201,169,110,.25);
    border-bottom:1px solid rgba(201,169,110,.25);
}
.gl-atl-jumpbar a{
    display:inline-flex; align-items:center; gap:8px;
    color:#e8e0d4; font-size:14px; letter-spacing:.08em; text-transform:uppercase;
    font-weight:500; transition:.15s; white-space:nowrap;
}
.gl-atl-jumpbar a:hover{ color:#c9a96e; }
.gl-atl-jb-no{ color:#c9a96e; font-size:12px; font-weight:600; }
@media (max-width:575px){
    .gl-atl-jumpbar{ gap:6px 20px; padding:12px 14px; }
    .gl-atl-jumpbar a{ font-size:12px; letter-spacing:.05em; }
}

/* Kreasyon detay "parçalar" grid'i — tek/az kart dev olmasın (sabit genişlik, ortalı) */
.gl-krd-pieces-grid{
    grid-template-columns:repeat(auto-fill, minmax(220px, 260px)) !important;
    justify-content:center;
}

/* ---- ÜRÜN ETİKET ROZETLERİ (outline) ----
   Birden fazla etiket alt alta dizilir; uzun yazılar (Sınırlı Üretim) kırpılmaz. */
.gl-product-badges{
    position:absolute; top:12px; left:12px; z-index:2;
    display:flex; flex-direction:column; align-items:flex-start; gap:6px;
}
.gl-product-badge{
    position:static !important;        /* tema absolute konumunu ez */
    top:auto !important; left:auto !important;
    /* renk satır içinden gelir — okunur_metin_rengi() etiket rengine göre seçer */
    border:none;
    padding:5px 12px;
    font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; line-height:1.2;
    border-radius:4px; white-space:nowrap;          /* kırpılmasın */
    box-shadow:0 2px 10px rgba(0,0,0,.28);
    text-shadow:0 1px 2px rgba(0,0,0,.25);
}
/* Detay sayfası rozeti
   NOT: renk artık satır içinde `okunur_metin_rengi()` ile geliyor (etiket rengine
   göre siyah/beyaz). Buraya `color:#fff !important` YAZMA — satır içini ezer ve
   açık zeminli etiketlerde yazı okunmaz olur. */
.gl-ud-badge{
    border:none;
    white-space:nowrap;
    font-weight:600; letter-spacing:.06em;
    box-shadow:0 2px 10px rgba(0,0,0,.28);
    text-shadow:0 1px 2px rgba(0,0,0,.25);
}

/* Kreasyon / koleksiyon adı — üründen küçük */
.gl-product-kreasyon{
    display:block;
    margin:3px 0 0;
    font-size:14px;
    color:rgba(240, 232, 220, .78);
}

/* Kod + buton alt alta, ortalı */
.gl-product-foot{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    margin-top:8px;
}

/* Ürün kodu — butonla orantılı, ortalı */
.gl-product-kod{
    font-size:12px;
    letter-spacing:.6px;
    color:rgba(240, 232, 220, .85);
    font-weight:600;
    line-height:1;
    text-align:center;
}

/* "Bilgi Al" — nötr outline, hover'da yeşil (solid değil) */
.gl-product-wa{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.55);
    padding:6px 14px;
    border-radius:4px;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    transition:.18s;
    white-space:nowrap;
}
.gl-product-wa:hover{
    background:rgba(37,211,102,.12);
    border-color:#25d366;
    color:#25d366;
}
.gl-product-wa i{ font-size:14px; }

/* ===== Ürün Detay — Bilgi Sekmeleri (Akordeon) ===== */
.gl-ud-accordion{ margin:26px 0 4px; border-top:1px solid rgba(255,255,255,.12); }
.gl-ud-acc-item{ border-bottom:1px solid rgba(255,255,255,.12); }
.gl-ud-acc-head{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:16px 2px; cursor:pointer; list-style:none;
    font-family:var(--font-serif,serif); font-size:clamp(15px,1.4vw,17px);
    color:inherit; transition:color .2s;
}
.gl-ud-acc-head::-webkit-details-marker{ display:none; }
.gl-ud-acc-head:hover{ color:#c9a96e; }
.gl-ud-acc-icon{ font-size:13px; color:#c9a96e; transition:transform .25s; flex:0 0 auto; }
.gl-ud-acc-item[open] .gl-ud-acc-icon{ transform:rotate(45deg); }
.gl-ud-acc-body{ padding:0 2px 18px; }
.gl-ud-acc-body p{
    margin:0; font-size:14px; line-height:1.7; opacity:.82;
}

/* ===== Koleksiyonlar Hero — atölye hero ile aynı yükseklik (70vh, dikey ortalı) ===== */
.gl-page-hero{
    min-height:70vh !important;
    height:auto !important;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding-top:clamp(63px,9.9vh,110px) !important;
    padding-bottom:clamp(36px,6.6vh,66px) !important;
}

/* ===== Atölye Hero — iki kolon (sol başlık · sağ açıklama dikey ortalı, sağa yaslı) ===== */
/* Simetrik padding → içerik hero'nun dikey tam ortasında */
.gl-atl-hero{
    padding-top:clamp(48px,7vh,80px) !important;
    padding-bottom:clamp(48px,7vh,80px) !important;
}
/* Mini başlık (eyebrow) — tutarlı boyut + dengeli satır yüksekliği */
.gl-atl-hero-eyebrow{
    font-size:clamp(12px,1.05vw,14px) !important;
    line-height:1.4 !important;
}
.gl-atl-hero-split{
    max-width:1240px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:clamp(32px,6vw,90px);
}
.gl-atl-hero-main{ flex:1 1 50%; min-width:0; }
.gl-atl-hero-aside{
    flex:0 1 46%;
    display:flex;
    align-items:center;       /* dikey ortalı */
    justify-content:flex-end;  /* sağa yaslı */
    /* Yazıyı sağ kenara yaklaştırmak için hero'nun kendi dolgusunun İÇİNE
       taşıyoruz. Çekme miktarı dolguya BAĞLI olmalı:

       ⚠️ Buradaki değer sabit -100px idi. Hero'nun yatay dolgusu ise
       clamp(20px, 5vw, 80px) — yani 1024px'te yalnızca 51px. 100px çekince
       metin 49px viewport DIŞINA taşıyor, `overflow:hidden` de onu kesiyordu:
       "…on dört za|" (zanaatkâr), "…burada t|" (topladık). 981-1300px
       bandında, yani tipik dizüstü genişliklerinde okunmaz haldeydi.

       Formül metnin sağ kenarını her genişlikte tam 24px içeride tutar:
         sağ boşluk = dolgu − çekme = 24px  →  çekme = dolgu − 24px */
    margin-right: calc(24px - clamp(20px, 5vw, 80px));
}
.gl-atl-hero-aside .gl-atl-hero-lede{
    margin:0;
    text-align:right;
    max-width:none;
    font-size:clamp(17px,1.55vw,21px);
    line-height:1.7;
}
@media (max-width:980px){
    .gl-atl-hero-split{ flex-direction:column; align-items:flex-start; gap:24px; }
    .gl-atl-hero-aside{ justify-content:flex-start; margin-right:0; }
    .gl-atl-hero-aside .gl-atl-hero-lede{ text-align:left; max-width:none; }
}

/* ===== Ürün kartı görseli — alanı doldurur, dikey ortadan hizalı ===== */
.gl-product-img .p-main,
.gl-product-img .p-hover{
    object-fit:cover !important;
    object-position:center center !important;
    background:#15110d;
}

/* ===== Ürün DETAY ana görseli — kırpma yok (etek dahil tam görünür) ===== */
.gl-ud-main-img img{
    object-fit:contain !important;
    object-position:center !important;
}

/* ===== Antrasit gradyan arka plan tüm sitede =====
   Antrasit gradyan body.dark-theme::before ile global (fixed katman). Sayfaların
   içerik bölümleri kahve-siyah bg ile onu örtüyordu; o düz örtüleri kaldırıyoruz.
   Görselli hero'lar ([class*="hero"]) HARİÇ — onların arka plan görseli korunur.

   ⚠️ BUTON/BAĞLANTILAR HARİÇ: desen `[class*="-cta"]` yalnız bölümleri değil,
   `gl-br-cta-btn-primary` gibi BUTONLARI da yakalıyordu. Butonun altın zemini
   siliniyor, geriye koyu zeminde koyu yazı (#1a1612) kalıyordu — görünmez buton.
   Kontrast ölçümünde 1.06 oranıyla yakalandı. */
.gelinlik-body [class*="-cta"]:not(a):not(button):not([class*="-btn"]),
.gelinlik-body [class*="-manifesto"],
.gelinlik-body [class*="-stats"],
.gelinlik-body [class*="-founder"],
.gelinlik-body [class*="-vm"],
.gelinlik-body [class*="-values"],
.gelinlik-body [class*="-process"],
.gelinlik-body [class*="-visits"],
.gelinlik-body [class*="-measure"],
.gelinlik-body [class*="-zones"],
.gelinlik-body [class*="-related"],
.gelinlik-body [class*="-timeline"],
.gelinlik-body [class*="-lookbook"],
.gelinlik-body [class*="-notes"],
.gelinlik-body [class*="-editorial"],
.gelinlik-body [class*="-products"],
.gelinlik-body [class*="-appt"],
.gelinlik-body .gl-ilt-main,
.gelinlik-body .gl-ilt-map,
.gelinlik-body .gl-kvk-main,
.gelinlik-body .gl-kol-section,
.gelinlik-body .gl-ud-main,
.gelinlik-body .gl-fav-page,
.gelinlik-body .gl-sss-main,
.gelinlik-body .gl-br-main{
    background-color:transparent !important;
    background-image:none !important;
}

/* ===== Koleksiyonlar filtre barı — yazılar 9px çok küçüktü, büyütüldü ===== */
.gl-filter-toggle-btn,
.gl-kol-tab,
.gl-kol-count,
.gl-kol-sort span,
.gl-kol-sort select{
    font-size:12px !important;
    letter-spacing:1.4px !important;
}
/* Filtre drawer (açılan panel) içi yazılar — aynı oranda
   (.gl-fd-group-trigger buradan çıkarıldı → dosya sonu "FİLTRE GRUP BAŞLIKLARI") */
.gl-fd-reset,
.gl-fd-apply,
.gl-fd-active-count{
    font-size:12px !important;
}
/* 2026-08-05: 13px → --ty-mini (14px). Ölçekte 13px diye bir kademe yok.
   `!important` KORUNDU — buradaki tema kurallarını ezmek için konmuş; kaldırılırsa
   filtre çekmecesindeki etiketler tema değerine geri döner. */
.gl-fd-opt-label{
    font-size: var(--ty-mini) !important;
}

/* ===== Footer okunabilirliği (koyu zeminde #555/#444 çok karanlıktı) ===== */
.dark-theme .bridal-footer-col a{ color:rgba(240, 232, 220,.6); }
.dark-theme .bridal-footer-col a:hover{ color:#c9a96e; }
.dark-theme .bridal-footer-brand p{ color:#e8e0d4; }
.dark-theme .bridal-footer-social a{ color:rgba(240, 232, 220,.55); }
.dark-theme .bridal-footer-social a:hover{ color:#c9a96e; }
.dark-theme .bridal-footer-bottom p{ color:rgba(240, 232, 220,.45); }

/* ===== Genel gövde metin rengi =====
   Başlıklar (h1-h6) ve hero alanları kendi rengini korur.

   #e8e0d4 → #dcd5ca (2026-08-02, kullanıcı isteği): metnin ekrandaki
   AÇIKLIĞINI eski haline döndürmek için. Gerekçe ve ölçüm:

   Uzun süre tarayıcılar önbellekteki eski CSS yüzünden metni Montserrat
   sanıp macOS sistem fontu "Helvetica Neue" ile çiziyordu. Önbellek
   sürümlemesi eklenince site kendi fontuna (Jost) döndü. Renk DEĞERİ
   değişmedi ama Jost aynı renkte %7.2 daha fazla "mürekkep" bırakıyor
   (canvas ile ölçüldü: mürekkep 7.262 vs 6.775), yani metin dolgunlaştı.

   Bu renk, Jost ile ESKİ ekran açıklığını birebir veren karşılık:
   doğrulama mürekkep 6.762 ≈ hedef 6.775.

   ⚠️ Bu değişiklik metni bir miktar SÖNÜKLEŞTİRİR — okunaklık artırma
   yönündeki çalışmayla ters yönde. Kontrast 14.56 → 13.08:1, eşiğin
   çok üstünde kaldığı için güvenli. Geri almak için değeri #e8e0d4
   yapmak yeterli. */
.gelinlik-body p,
.gelinlik-body li,
.gelinlik-body dd,
.gelinlik-body td,
.gelinlik-body label,
.gelinlik-body figcaption,
.gelinlik-body blockquote{
    color:#dcd5ca;
}

/* Editöryal kart paragrafı kendi (daha sakin) tonunu kullanıyor —
   onun da Jost karşılığı: #a89f8e → #9e9586, kontrast 7.27 → 6.44:1 */
.dark-theme .gl-editorial-right p{
    color:#9e9586;
}
/* Hero alanları + küçük dekoratif/CTA alıntıları hariç (kendi tema rengini korusun) */
.gelinlik-body [class*="-hero"] p,
.gelinlik-body [class*="-hero"] li,
.gelinlik-body [class*="-hero"] label,
.gelinlik-body [class*="-hero"] dd,
.gelinlik-body .gl-appt p,
.gelinlik-body [class*="-cta"] p,
.gelinlik-body [class*="-cta-lede"],
.gelinlik-body [class*="-cta-sub"]{
    color:revert;
}

/* ===== Koleksiyonlar hero, Atölye banner'ının aynısı =====
   Blade'de doğrudan .gl-atl-hero* sınıfları kullanılıyor (bileşen paylaşılıyor).

   .gl-hero-okunakli — okunabilirlik katmanı.
   Atölye'nin fotoğrafı koyu olduğu için orada katman yok; Koleksiyonlar'a her türlü
   görsel yüklenebildiği için metnin altına kontrast garantisi koyuyoruz.
   Düz koyu perde fotoğrafı öldürür — bunun yerine YATAY gradyan: metnin oturduğu
   iki kenar koyu, fotoğrafın nefes aldığı orta bölge açık. */
.gl-hero-okunakli::before{
    content: '';
    position: absolute;
    inset: 0;
    /* Katman sırası: -bg (z:0) → scrim (z:1, ::before olduğu için DOM'da önce)
       → -inner (z:1, DOM'da sonra ⇒ metin en üstte). Scrim'e 0 verilirse
       -bg div'i DOM'da sonra geldiği için scrim'i örter. */
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg,
            rgba(10,8,6,.78) 0%,
            rgba(10,8,6,.42) 38%,
            rgba(10,8,6,.34) 55%,
            rgba(10,8,6,.72) 100%),
        linear-gradient(180deg,
            rgba(10,8,6,.30) 0%,
            transparent 30%,
            transparent 70%,
            rgba(10,8,6,.40) 100%);
}

/* Açıklama: tema onu İTALİK Cormorant serif olarak veriyor — koyu düz zeminde
   zarif, ama detaylı fotoğraf üstünde ince tırnaklı harfler kayboluyor.
   Yazı karakterini değiştirmiyoruz (tasarım dili bozulmasın); bunun yerine
   metnin arkasına KENARI YUMUŞAK yerel bir perde koyuyoruz. Kutu görünmez,
   sadece o bölgedeki fotoğraf sakinleşir. */
.gl-hero-okunakli .gl-atl-hero-aside{
    position: relative;
    isolation: isolate;             /* ::before yalnızca bu blokta katmanlansın */
}
.gl-hero-okunakli .gl-atl-hero-aside::before{
    content: '';
    position: absolute;
    inset: -30px -40px -30px -60px;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(ellipse at 62% 50%,
        rgba(8,6,5,.80) 0%,
        rgba(8,6,5,.66) 48%,
        rgba(8,6,5,.34) 74%,
        transparent 92%);
}

/* İtalik serifin gövdesini biraz kalınlaştır — 400'de tırnaklar çok inceydi. */
.gl-hero-okunakli .gl-atl-hero-lede{
    color: rgba(252, 249, 244, .97);
    font-weight: 500;
    text-shadow: 0 1px 4px rgba(0,0,0,.6);
}
.gl-hero-okunakli .gl-atl-hero-title{
    text-shadow: 0 2px 14px rgba(0,0,0,.45);
}
.gl-hero-okunakli .gl-atl-hero-eyebrow{
    color: #d9bd85;                 /* altın, fotoğraf üstünde .85 opaklık sönük kalıyordu */
    text-shadow: 0 1px 3px rgba(0,0,0,.5);
}

/* Dar ekranda iki sütun alt alta gelir; gradyan da dikeye döner */
@media (max-width: 980px){
    .gl-hero-okunakli::before{
        background: linear-gradient(180deg,
            rgba(10,8,6,.55) 0%,
            rgba(10,8,6,.40) 45%,
            rgba(10,8,6,.72) 100%);
    }
}

/* ============================================================
   HERO TİPOGRAFİ BİRLİĞİ
   Denetimde üç sürüklenme çıktı; tema dosyalarına dokunmadan burada tekleştiriliyor:
     1) Ana başlık üç ayrı ölçekteydi  → 76 / 84 / 78 px
     2) Başlık rengi ikiye ayrılmıştı  → #f5e3b8 (altın) ve #f0e8dc (krem)
     3) Hakkımızda açıklaması aykırıydı → sabit 14px, %55 opak beyaz
   Mini başlık (eyebrow) zaten tutarlıydı: 14px / .36em / altın .85 / uppercase.
============================================================ */

/* 0 — Mini başlık: masaüstünde zaten 14px'te buluşuyor, küçük ekranda 12px'e iner.
   0.36em harf aralığıyla sabit 14px dar ekranda kötü sarıyordu. */
.gl-atl-hero-eyebrow,
.gl-hkk-hero-eyebrow,
.gl-ilt-hero-eyebrow,
.gl-sss-hero-eyebrow,
.gl-kvk-hero-eyebrow,
.gl-br-hero-eyebrow{
    font-size: clamp(12px, 1.05vw, 14px);
    line-height: 1.4;
}

/* 1+2 — Tek ölçek, tek renk. Ortadaki değer seçildi; en uzun başlık (Atölye,
   üç satır) 78px'te taşmıyor, en kısa başlık (KVK) boşlukta kaybolmuyor. */
.gl-atl-hero-title,
.gl-hkk-hero-title,
.gl-ilt-hero-title,
.gl-sss-hero-title,
.gl-kvk-hero-title,
.gl-br-hero-title{
    font-size: clamp(40px, 6vw, 78px);
    line-height: 1.05;
    letter-spacing: .01em;
    font-weight: 400;
    color: #f0e8dc;
    text-wrap: balance;          /* satır kırılımı dengeli olsun */
}

/* 3 — Açıklama metinleri. Hakkımızda'nınki en uzun hero'da en küçük ve en soluk
   metindi (14px, %55 beyaz); artık yığılmış hero'ların hepsi aynı davranıyor.

   DİKKAT: İki kolonlu hero'larda (Atölye · Koleksiyonlar) açıklama SAĞ SÜTUNDA ve
   bilinçli olarak daha büyük (17-21px) — orada başlığın karşı ağırlığı, ikincil
   metin değil. O kural yukarıda `.gl-atl-hero-aside .gl-atl-hero-lede` ile tanımlı
   ve daha spesifik olduğu için buradaki boyutu EZER; kasıtlıdır, kaldırma. */
.gl-atl-hero-lede,
.gl-hkk-hero-lede,
.gl-ilt-hero-lede,
.gl-sss-hero-lede,
.gl-kvk-hero-lede,
.gl-br-hero-lede{
    font-size: clamp(15px, 1.6vw, 18px);
    line-height: 1.75;
    color: rgba(245, 238, 228, .78);
    text-wrap: pretty;           /* tek kelimelik son satır oluşmasın */
}

/* ===== Kreasyonlar hero — açıklama (motto altında) =====
   Motto italik SERİF (slogan). Açıklama aynı karakterde olsaydı iki satır
   birbiriyle yarışırdı; bu yüzden SANS gövde sesi kullanılıyor.
   Hiyerarşi: eyebrow → başlık → motto → açıklama → butonlar. */
.gl-kr-vh-lede{
    font-family: var(--font-sans);
    font-size: clamp(14px, 1.25vw, 16px);
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .01em;
    color: rgba(255, 250, 240, .74);      /* mottodan (.88) daha sakin */
    max-width: 620px;
    margin: 0 auto 30px;
    text-shadow: 0 2px 10px rgba(0,0,0,.5);
    text-wrap: pretty;
}

/* Açıklama eklenince içerik uzuyor ve alttaki "Keşfet" kaydırma göstergesiyle
   çakışıyordu. Dikey ritmi, eklenen yüksekliği telafi edecek kadar sıkıyoruz —
   yalnızca açıklama VARKEN (has-lede), diğer durumda tema ritmi bozulmasın. */
.gl-kr-vh-tagline.has-lede{ margin-bottom: 14px; }
.gl-kr-vh-content:has(.gl-kr-vh-lede) .gl-kr-vh-eyebrow{ margin-bottom: 22px; padding-bottom: 14px; }
.gl-kr-vh-content:has(.gl-kr-vh-lede) .gl-kr-vh-title{ margin-bottom: 18px; }

@media (max-width: 767px){
    .gl-kr-vh-lede{ font-size: 14px; line-height: 1.7; margin-bottom: 24px; }
}

/* Hero 100vh; kısa ekranlarda (dizüstü, yatay tablet) eklenen açıklama içeriği
   aşağıdaki "Keşfet" göstergesine yaklaştırıyor. Ritmi biraz daha sık,
   çok kısa ekranda ise dekoratif göstergeyi gizle (sayfa zaten kaydırılabiliyor). */
@media (max-height: 800px){
    .gl-kr-vh-content:has(.gl-kr-vh-lede) .gl-kr-vh-title{ margin-bottom: 14px; }
    .gl-kr-vh-content:has(.gl-kr-vh-lede) .gl-kr-vh-lede{ margin-bottom: 24px; }
}
@media (max-height: 730px){
    .gl-kr-vh-content:has(.gl-kr-vh-lede) ~ .gl-kr-vh-scroll{ display: none; }
}

/* ============================================================
   HERO — HEADER PAYI + GİRİŞ ANİMASYONU
============================================================ */

/* 1) Sabit header (80px) hero'nun ÜSTÜNE biniyor. Bu hero'lar içeriği dikey
   ortalıyor; kısa yükseklikte (50-58vh) mini başlık menünün altında kalıyordu.
   Atölye'de zaten padding-top vardı, sorun onda yoktu — aynı çözüm buraya. */
.gl-ilt-hero,
.gl-br-hero,
.gl-sss-hero,
.gl-kvk-hero{
    padding-top: var(--header-h, 80px);
}

/* 2) Giriş animasyonu — anasayfadaki `glFadeUp` (22px aşağıdan yukarı + fade),
   aynı easing. Gecikmeler temanın içerik-hero ritmini izler (eyebrow .35s,
   başlık .55s), açıklama üçüncü basamak olarak eklendi. */
.gl-atl-hero-eyebrow,
.gl-hkk-hero-eyebrow,
.gl-ilt-hero-eyebrow,
.gl-sss-hero-eyebrow,
.gl-kvk-hero-eyebrow,
.gl-br-hero-eyebrow{
    animation: glFadeUp .8s cubic-bezier(.4,0,.2,1) .35s both;
}
.gl-atl-hero-title,
.gl-hkk-hero-title,
.gl-ilt-hero-title,
.gl-sss-hero-title,
.gl-kvk-hero-title,
.gl-br-hero-title{
    animation: glFadeUp 1s cubic-bezier(.4,0,.2,1) .55s both;
}
.gl-atl-hero-lede,
.gl-hkk-hero-lede,
.gl-ilt-hero-lede,
.gl-sss-hero-lede,
.gl-kvk-hero-lede,
.gl-br-hero-lede{
    animation: glFadeUp 1s cubic-bezier(.4,0,.2,1) .75s both;
}

/* Hareket azaltma tercihi: animasyon kapalı, içerik anında görünür
   (`both` yüzünden opacity:0'da takılı kalmasın diye animation:none yetmez) */
@media (prefers-reduced-motion: reduce){
    .gl-atl-hero-eyebrow, .gl-hkk-hero-eyebrow, .gl-ilt-hero-eyebrow,
    .gl-sss-hero-eyebrow, .gl-kvk-hero-eyebrow, .gl-br-hero-eyebrow,
    .gl-atl-hero-title, .gl-hkk-hero-title, .gl-ilt-hero-title,
    .gl-sss-hero-title, .gl-kvk-hero-title, .gl-br-hero-title,
    .gl-atl-hero-lede, .gl-hkk-hero-lede, .gl-ilt-hero-lede,
    .gl-sss-hero-lede, .gl-kvk-hero-lede, .gl-br-hero-lede{
        animation: none;
        opacity: 1;
        transform: none;
    }
}

/* ============================================================
   ÜRÜN DETAY — SAĞ SÜTUN TİPOGRAFİSİ
   Denetimde iki sorun çıktı:
     1) Dört ayrı öğe 9px'ti (koleksiyon etiketi, ref, fiyat notu, garanti) —
        bilgi taşıyan metinler için okunamayacak kadar küçük.
     2) Kontrastlar %20-30 beyazdı; koyu zeminde neredeyse görünmüyorlardı.
   Çözüm: net bir küçük-metin kademesi (11px etiket · 12px cümle · 14px değer)
   ve kontrastların okunur seviyeye çekilmesi.
============================================================ */

/* Ürün adı: 68px, 16px'lik gövdeye karşı orantısız büyüktü — ölçek yumuşatıldı */
.gl-ud-name{
    font-size: clamp(32px, 4.2vw, 52px);
    line-height: 1.06;
}

/* — Etiket kademesi: 12px (--ty-micro), okunur kontrast —
   2026-08-05: 11px'ten 12px'e çekildi. Ölçeğin tabanı 12px ve gerekçesi
   dosyanın başında yazılı (ölçülen couture emsalleri 12px'in altına inmiyor);
   bu üç etiket o kuralın dışında kalmış son öğelerdi. Hepsi .12–.16em harf
   aralıklı BÜYÜK HARF — o biçimde 11px okunurluğu ayrıca düşürüyordu.
   ⚠️ .gl-ud-collection-tag'deki 11px ÖLÜ: dosyanın sonundaki tipografi ölçeği
   (`.gelinlik-body .gl-ud-collection-tag`) onu --ty-eyebrow-sans ile eziyor,
   sayfada 14px basılıyor. Buradaki değeri düzeltmek görüntüyü değiştirmez —
   şaşırtmasın diye bırakıldı. */
.gl-ud-collection-tag{
    font-size: 11px;                   /* ← ölü, gerçek değer 14px (bkz. yukarıdaki not) */
    letter-spacing: .26em;
    color: rgba(201, 169, 110, .9);
}
.gl-ud-ref{
    font-size: var(--ty-micro);        /* 11px idi */
    letter-spacing: .16em;
    color: rgba(240, 232, 220, .55);   /* .2 idi — neredeyse görünmezdi */
}
.gl-ud-spec-label{
    font-size: var(--ty-micro);        /* 11px idi */
    letter-spacing: .16em;
    color: rgba(240, 232, 220, .55);   /* .28 idi */
}
.gl-ud-guarantee{
    font-size: var(--ty-micro);        /* 11px idi (custom.css'te 9px) */
    letter-spacing: .12em;
    color: rgba(240, 232, 220, .5);    /* .28 idi */
}

/* — Değer kademesi — */
.gl-ud-spec-val{
    font-size: 14px;
    color: rgb(232, 224, 212);
    letter-spacing: .01em;
}

/* — Cümle kademesi — */
/* Fiyat notu bir etiket değil, bilgi cümlesi: harf aralığı düşük, punto biraz büyük */
.gl-ud-price-note{
    font-size: 12px;
    letter-spacing: .06em;
    line-height: 1.6;
    color: rgba(240, 232, 220, .62);   /* .3 idi */
    text-transform: none;              /* tümü büyük harf cümle olarak yorucuydu */
}
.gl-ud-desc{
    color: rgba(240, 232, 220, .82);   /* .7 idi */
    /* 2026-08-05 — GÖVDE METNİ JOST OLMALI.
       custom.css bu paragrafa `var(--font-serif)` + clamp(14px,1.3vw,16px)
       veriyordu; ürün açıklaması sayfadaki tek serif gövde metniydi ve hemen
       üstündeki fiyat satırı Jost olduğu için ikisi yan yana ayrışıyordu.
       Cormorant'ın tasarımcısı fontu "display type family" olarak tanımlıyor —
       gövde puntosunda kullanılmak için çizilmemiş (bkz. dosya başı, 3. dayanak).
       Akordeon başlıkları (17px Cormorant) BAŞLIK rolünde, onlara dokunulmadı. */
    font-family: var(--font-sans);
    font-size: var(--ty-body);
}

/* ---------------------------------------------------------------------------
   12px TABANI — ölçeğin altında kalan son öğeler (2026-08-05)
   Denetimde 11 öğe 10-11px basıyordu; hepsi bu iki detay sayfasında toplanmıştı.
   Ölçeğin tabanı 12px ve altına inilmiyor (dosya başı, 4. dayanak).
   Seçiciler custom.css'teki tanımlarla AYNI özgüllükte (0,1,1) — bu dosya sonra
   yüklendiği için kazanıyor, !important gerekmiyor.
   --------------------------------------------------------------------------- */
.gl-ud-badge{ font-size: var(--ty-micro); }          /* 10px idi */

/* ---------------------------------------------------------------------------
   ÖLÇEK DIŞI KADEMELER — 2026-08-05 denetimi
   13px ve 15.8px sitede tanımlı bir kademe değildi; ölçek 12 · 14 · 17 · 20 · 22
   · 26 · 48 · 78 üzerine kurulu. Bu üç tablo/etiket grubu --ty-mini'ye (14px)
   bağlandı — özellikle beden ölçüleri müşterinin okumak için geldiği asıl veri.
   --------------------------------------------------------------------------- */
.gl-br-table{ font-size: var(--ty-mini); }        /* 13px — beden ölçü değerleri */
.gl-kvk-table{ font-size: var(--ty-mini); }       /* 13px — saklama süresi tablosu */
/* .gl-fd-opt-label buraya YAZILMAZ — dosyanın başında `!important`li kendi kuralı
   var (filtre barı bölümü) ve oradan --ty-mini'ye bağlandı. Buraya da yazılırsa
   iki ayrı yerde aynı öğe tanımlanmış olur. */
.gl-br-controls-sub{ font-size: var(--ty-mini); } /* 15.8px — tekil kaçak, yardımcı metin */

/* "Sorularınız mı var?" — kart başlığı kademesine hizalandı (24 → 26px).
   SSS soru metni (19px) ve KVK alt başlıkları (18px) BİLEREK dokunulmadı:
   ölçeğin başlık kademesi 26px ve oraya çekmek %37'ye varan büyüme demek. */
.gl-kvk-bottom-cta h3{ font-size: var(--ty-h3); }
/* Etiket sütunu 11→12px ile genişledi: "ÜRETİM SÜRESİ" 102px'e çıkıp
   custom.css'teki min-width:100px'i aştı ve o satırın değeri 2px kaydı.
   ⚠️ Özellik tipleri PANELDEN yönetiliyor — daha uzun bir etiket eklenirse
   (ör. "KOL DETAYI TİPİ") bu sütun yine taşar. 120px mevcut en uzun etikete
   18px pay bırakıyor; yeni etiket eklenince buranın kontrol edilmesi gerekir. */
.gl-ud-spec-label{ min-width: 120px; }
.gl-krd-stat span{ font-size: var(--ty-micro); }     /* 10px idi — "Parça", "Ay Atölye", "Kumaş" */
.gl-krd-piece-info p{ font-size: var(--ty-micro); }  /* 10px idi — kategori · ürün kodu */
.gl-kr-vh-scroll-label{ font-size: var(--ty-micro); }/* 10px idi — video hero "Keşfet" */

.gl-ud-price{ font-size: 22px; }

@media (max-width: 767px){
    .gl-ud-name{ font-size: clamp(28px, 8vw, 38px); }
    .gl-ud-spec-val{ font-size: 13.5px; }
}

/* ============================================================
   SİTE GENELİ TİPOGRAFİ TABANI
   Tema, lüks moda dilinde çok küçük + geniş harf aralıklı etiketler kullanıyor
   (9-11px). Bu dil korunuyor, ama okunabilirlik tabanı yükseltiliyor:

     11px  → dekoratif mikro etiket (rozet, sayaç, ikon yanı)
     12.5px→ arayüz metni (menü, buton, form, bağlantı)
     14px  → içerik/paragraf
     16px+ → gövde metni

   Not: 300+ kural 12px altındaydı; hepsini toptan büyütmek düzeni bozardı.
   Burada yalnızca ziyaretçinin OKUDUĞU roller hedeflendi.
============================================================ */

/* — Arayüz metni — */
.bridal-nav a{ font-size: 12.5px; }
.bridal-product-info p{ font-size: 12.5px; }
.bridal-product-actions button{ font-size: 12px; }
.bridal-footer-col h4{ font-size: 11.5px; }
.bridal-footer-bottom p{ font-size: 12px; }
.bridal-filter-header h2{ font-size: 12px; }
.bridal-filter-tag{ font-size: 11.5px; }
.gl-header-appt{ font-size: 11px; }

/* — İçerik metni — */
.bridal-section-subtitle{ font-size: 13px; line-height: 1.7; }
.bridal-page-header-content p{ font-size: 13px; line-height: 1.75; }
.gl-page-hero-scroll{ font-size: 11px; }

/* — Dekoratif mikro etiketler: 9px'ten 10.5-11px'e (kompakt kalmalı) — */
.bridal-product-badge,
.bridal-collection-label span,
.bridal-mobile-nav-copy{ font-size: 10.5px; }

/* ============================================================
   BAĞLANTILAR — HOVER'DA ALT ÇİZGİ YOK
   Kaynak: theme.css → `a:not(.btn):hover { text-decoration: underline }`
   ve custom.css'te 8 ayrı kural. Premium his için alt çizgi yerine
   renk geçişi kullanılıyor.
   Erişilebilirlik: klavye odağı (:focus-visible) korunuyor.
============================================================ */
.gelinlik-body a,
.gelinlik-body a:hover,
.gelinlik-body a:focus,
.gelinlik-body a:active,
.gelinlik-body a:not(.btn):hover,
.gelinlik-body .gl-ilt-info-body a:hover,
.gelinlik-body .gl-rnd-side-list a:hover,
.gelinlik-body .gl-ss-tos a:hover,
.gelinlik-body .gl-auth-forgot:hover,
.gelinlik-body .gl-auth-alt a:hover,
.gelinlik-body .gl-hes-logout:hover,
.gelinlik-body .gl-hes-help-phone:hover,
.gelinlik-body .gl-hes-address-make-default:hover{
    text-decoration: none;
}

/* Klavyeyle gezinenler bağlantıyı görebilmeli — alt çizgi kalktı, halka kalıyor */
.gelinlik-body a:focus-visible{
    outline: 1px solid rgba(201, 169, 110, .85);
    outline-offset: 3px;
    border-radius: 2px;
}

/* ============================================================
   KONTRAST DÜZELTMELERİ (tarayıcıda ölçülerek bulundu)
   Her biri WCAG oranı hesaplanarak tespit edildi; eşik 4.5:1 (küçük metin).
============================================================ */

/* Filtre barı — 2.47:1 idi, okunmuyordu */
.gl-kol-count,
.gl-kol-sort span,
.gl-kol-sort select{ color: rgba(240, 232, 220, .82); }
.gl-kol-count strong{ color: #c9a96e; }
.gl-kol-tab{ color: rgba(240, 232, 220, .72); }      /* 3.56 → okunur */
.gl-kol-tab.active{ color: #c9a96e; }
.gl-fd-reset{ color: rgba(240, 232, 220, .82); }      /* 3.82 */

/* Footer telif — 3.79 */
.dark-theme .bridal-footer-bottom p{ color: rgba(240, 232, 220, .68); }

/* Beden rehberi birim etiketi ("cm") — 3.82 */
.gl-br-unit small,
.gl-br-table small{ color: rgba(240, 232, 220, .75); }

/* Rozet yazı rengi artık etiket rengine göre PHP'de hesaplanıyor
   (okunur_metin_rengi helper'ı) — sabit beyaz, açık zeminlerde okunmuyordu.
   Gölge yalnız kenar netliği için kalıyor. */
.gl-product-badge{ text-shadow: 0 1px 2px rgba(0,0,0,.22); }

/* Tablo hücrelerindeki birim etiketleri ("78 cm" içindeki cm) — %40 beyaz / 10px'ti,
   ölçümde 3.82:1 çıktı. Sınıfları olmadığı için hücre bağlamından hedefleniyor. */
.gelinlik-body td small,
.gelinlik-body th small{
    color: rgba(240, 232, 220, .72);
    font-size: 10.5px;
}

/* Form alan ipuçları — "(opsiyonel)" 9px/%2.66 idi, alanın zorunlu olup olmadığını
   söyleyen bilgi; okunmalı. "(WhatsApp)" da aynı grupta. */
.gl-ilt-opt,
.gl-ilt-form small,
.gl-ilt-info-body small{
    font-size: 11px;
    color: rgba(240, 232, 220, .72);
    letter-spacing: .04em;
}

/* Atölye bölüm numaraları — dekoratif ama 4.19 ile eşiğin hemen altındaydı */
.gl-atl-zone-no{ color: rgba(201, 169, 110, .95); }

/* Son iki bulgu */
.gl-ud-related-eyebrow{ color: rgba(201, 169, 110, .95); }   /* 4.19 → eşik üstü */
/* Süreç adım numarası — 2026-08-05 düzeltmesi.
   Eski yorum "57px'lik rakam, 3:1 üstüne çıkarılıyor" diyordu ama iki şey
   değişmişti: (a) rakam ölçek revizyonuyla 57px'ten 34px'e indi, (b) .42
   opaklık zemin rgb(14,16,19) üzerinde 2.43:1 veriyor — yani hedeflenen eşiğin
   ALTINDA kalmış. .55'te 3.33:1 oluyor, filigran karakteri korunuyor.
   `aria-hidden` bilerek EKLENMEDİ: 01-04 adım sırası bilgi taşıyor ve artık
   kontrast eşiğini geçtiği için gizlemek gerekmiyor (anasayfadaki dekoratif
   yıl rakamından farkı bu — o 1.42:1 ve okunacak içerik değil). */

/* ============================================================
   ÖNE ÇIKAN ÜRÜNLER — SCROLL'DA 3D BELİRME
   Izgara, kart tasarımı ve içerik DEĞİŞMEZ. Tema zaten her
   .gl-product-card'a scroll-reveal veriyor (gelinlik-animations.js
   → .gl-reveal + ekrana girince .gl-visible); burada yalnızca o
   reveal'ın dönüşümü bu bölüm için 3D'ye çevriliyor. Yeni JS yok.

   perspective kart transform'unun İÇİNDE (ızgaraya değil): böylece her
   kartın kaçış noktası kendi merkezi olur ve hepsi aynı açıyla kalkar.
   Izgaraya verilseydi kenardaki kartlar ortak kaçış noktası yüzünden
   yamuk görünürdü.
   ============================================================ */
.gl-products-section .gl-product-card.gl-reveal{
    transform: perspective(900px) translateY(34px) translateZ(-70px) rotateX(9deg);
    transform-origin: 50% 100%;   /* kartlar alt kenarından doğrulur */
}
/* perspective() iki durumda da yazılı: dönüşüm listeleri eşleşmezse
   tarayıcı yumuşak geçiş yerine ani sıçrama yapar. */
.gl-products-section .gl-product-card.gl-reveal.gl-visible{
    transform: perspective(900px) translateY(0) translateZ(0) rotateX(0deg);
}

/* Eşit sıralı gecikme. Tema kardeş gecikmesini satır içi stille yalnızca
   ilk 5 karta veriyor; 8 ürünlü ızgarada 7-8. kartlar 6.'dan ÖNCE beliriyor.
   Satır içi stili ezmek için !important şart (tema .gl-stagger-* de öyle). */
.gl-products-section .gl-product-card:nth-child(1) { transition-delay: 0s     !important; }
.gl-products-section .gl-product-card:nth-child(2) { transition-delay: .07s   !important; }
.gl-products-section .gl-product-card:nth-child(3) { transition-delay: .14s   !important; }
.gl-products-section .gl-product-card:nth-child(4) { transition-delay: .21s   !important; }
.gl-products-section .gl-product-card:nth-child(5) { transition-delay: .28s   !important; }
.gl-products-section .gl-product-card:nth-child(6) { transition-delay: .35s   !important; }
.gl-products-section .gl-product-card:nth-child(7) { transition-delay: .42s   !important; }
.gl-products-section .gl-product-card:nth-child(8) { transition-delay: .49s   !important; }

/* Hareket azaltma tercihi: 3D yok, kart anında yerinde */
@media (prefers-reduced-motion: reduce){
    .gl-products-section .gl-product-card.gl-reveal,
    .gl-products-section .gl-product-card.gl-reveal.gl-visible{
        transform: none;
        transition: none;
        transition-delay: 0s !important;
    }
}

/* ============================================================
   DEFİLE VİDEOLARI — anasayfa sinematik bandı
   Ölçü ve tipografi Kart 2'den (.gl-cinematic) devralınır; burada
   yalnızca videoya ve slayt geçişine ait ekler var.
   ============================================================ */
.gl-defile{ background: #0e1013; }

.gl-defile-slide{
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .9s ease;
}
.gl-defile-slide.is-active{
    opacity: 1;
    visibility: visible;
}

/* .gl-cinematic img ile aynı yerleşim — video da bandı doldurur */
.gl-defile-video{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    background: #0e1013;
}
/* Kart 2'de görsel 0.38'e kısılıyor; videoda hareket okunmalı diye
   biraz daha aydınlık, metin kontrastı overlay gradyanından geliyor. */
.dark-theme .gl-defile-video{ filter: brightness(0.52); }

/* ---- Gezinme (noktalar + oklar) ---- */
.gl-defile-nav{
    position: absolute;
    left: 0; right: 0; bottom: clamp(16px, 2.5vw, 30px);
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}
.gl-defile-dots{ display: flex; align-items: center; gap: 9px; }
.gl-defile-dot{
    width: 8px; height: 8px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: background .3s ease, border-color .3s ease, transform .3s ease;
}
.gl-defile-dot.is-active{
    background: #c9a96e;
    border-color: #c9a96e;
    transform: scale(1.25);
}
.gl-defile-arrow{
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    padding: 0 0 3px;
    font-size: 22px;
    line-height: 1;
    color: rgba(240, 232, 220, .85);
    background: transparent;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    cursor: pointer;
    transition: color .3s ease, border-color .3s ease;
}
.gl-defile-arrow:hover{ color: #c9a96e; border-color: #c9a96e; }
.gl-defile-dot:focus-visible,
.gl-defile-arrow:focus-visible,
.gl-defile-ses:focus-visible{ outline: 2px solid #c9a96e; outline-offset: 2px; }

/* ---- Ses aç/kapat ----
   Nokta/oklardan bağımsız konumlanır: tek video varsa gezinme çubuğu hiç
   basılmıyor ama ses butonu yine görünmeli. */
.gl-defile-ses{
    position: absolute;
    right: clamp(16px, 4vw, 44px);
    bottom: clamp(16px, 2.5vw, 30px);
    z-index: 4;
    width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
    font-size: 14px;
    color: rgba(240, 232, 220, .85);
    background: rgba(0,0,0,.28);
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    cursor: pointer;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    transition: color .3s ease, border-color .3s ease, background .3s ease;
}
.gl-defile-ses:hover{ color: #c9a96e; border-color: #c9a96e; }
/* Ses açıkken buton "etkin" görünür — durum yalnızca ikondan anlaşılmasın */
.gl-defile-ses[aria-pressed="true"]{
    color: #c9a96e;
    border-color: #c9a96e;
    background: rgba(201,169,110,.14);
}

@media (max-width: 640px){
    .gl-defile-arrow{ width: 30px; height: 30px; font-size: 19px; }
    .gl-defile-ses{ width: 34px; height: 34px; font-size: 13px; }
}

/* Hareket azaltma tercihi: çapraz geçiş yok, slayt anında değişir */
@media (prefers-reduced-motion: reduce){
    .gl-defile-slide{ transition: none; }
}

/* ===== Beğenilenler barı — iletişim sayfası select/buton dili (altın), kompakt ölçek ===== */
.gl-fav-bar-actions{
    display:flex;
    gap:10px;
    align-items:stretch;
    flex-wrap:wrap;
}
/* Sıralama select — .gl-ilt-select dilini alır, bar boyutuna küçültülür */
.gl-fav-sort-wrap{ display:inline-block; }
.gl-fav-sort-wrap .gl-ilt-select{
    width:auto;
    min-width:170px;
    padding:10px 42px 10px 16px;
    font-size:12px;
    letter-spacing:0.04em;
}
.gl-fav-sort-wrap .gl-ilt-select-arrow{ right:16px; font-size:9px; }
/* Tümünü Temizle — .gl-ilt-submit dilinde ama kompakt */
.gl-fav-clear-btn.gl-ilt-submit{
    width:auto;
    margin-top:0;
    padding:11px 20px;
    font-size:10px;
    letter-spacing:0.2em;
}
.gl-fav-clear-btn.gl-ilt-submit:hover{ letter-spacing:0.24em; }

/* ============================================================
   HERO MİNİ BAŞLIĞI (eyebrow) — renk kazası + Koleksiyonlar dokunuşu
   ============================================================ */

/* 1) HATA DÜZELTMESİ — `revert` altın rengi siliyordu.
   Yukarıdaki `.gelinlik-body [class*="-hero"] p{color:revert}` kuralı (0,2,1)
   hero paragraflarını "kendi tema rengini korusun" diye istisna tutuyor; ama
   `revert` yazar (author) katmanının TAMAMINI geri alır — temanın altınını da.
   Sonuç: tüm hero mini başlıkları krem (#e8e0d4) kalıyordu, oysa hem tema
   (.gl-atl-hero-eyebrow) hem okunabilirlik katmanı altın istiyor.
   Bu kural (0,3,0) ile niyeti geri getiriyor. */
.gelinlik-body [class*="-hero"] [class*="-eyebrow"]{
    /* 2026-08-05: eskiden #d9bd85 (bir tık açık altın) idi. Bölüm mini başlıkları
       #c9a96e kullanıyordu; aynı rolün iki farklı altını olmasın diye site
       aksanında birleştirildi. Okunurluğu aşağıdaki text-shadow taşıyor. */
    color: #c9a96e;
}

/* 2) TÜM hero mini başlıkları — ana başlıkla aynı yazı ailesi.
   Kapsam: anasayfa (.gl-hero-eyebrow), atölye/koleksiyonlar (.gl-atl-…),
   kreasyonlar video hero (.gl-kr-vh-…), hakkımızda, iletişim, sss, kvk,
   beden rehberi. Öznitelik seçici hepsini birden yakalar — yeni bir hero
   eklendiğinde de kendiliğinden kapsanır.

   ⚠️ Tema `--font-sans`'ı 'Montserrat' olarak tanımlıyor ama Montserrat siteye
   HİÇ yüklenmiyor (gelinlik-theme.css yalnız Cormorant Garamond + Jost çekiyor)
   — yani mini başlıklar sistem yazı tipine (Helvetica/Arial) düşüyordu.
   Serif küçük puntoda zayıf kalmasın diye punto ve ağırlık bir tık yükseltildi. */
.gelinlik-body [class*="-hero"] [class*="-eyebrow"]{
    font-family: var(--font-serif);
    font-size: var(--ty-eyebrow-hero) !important;   /* 14 → 18px, 2026-08-05'te 13→16'dan büyütüldü */
    font-weight: 600;                               /* 500'dü — bkz. aşağıdaki ağırlık notu */
    letter-spacing: .3em;
    text-shadow: 0 1px 6px rgba(0,0,0,.55);
}

/* 3) Koleksiyonlar hero'su — mini başlık kuyumcu detayı (yalnız bu sayfa).
   "KOLEKSİYONLAR AYLA UĞUR" uzun tek satır olarak düz bir etiket gibi duruyordu;
   yazının ardından soluklaşan ince altın çizgi couture editoryal his veriyor. */
/* margin-bottom BİLEREK yok: aşağıdaki "DİKEY RİTİM" bölümü tüm hero mini
   başlıklarına ortak oranı (1.4em) veriyor. Buraya margin yazılırsa bu sayfa
   yine ayrışır — düzeltilen sorunun ta kendisi. */
.gl-kol-hero .gl-atl-hero-eyebrow{
    display: inline-flex;
    align-items: center;
    gap: clamp(12px, 1.4vw, 18px);
}
/* Çizgi SONDA: başa alındığında yazı, dev başlığın sol kenarından ~72px içeri
   kayıyor ve hero'nun omurgası olan sol hizalama bozuluyordu. */
.gl-kol-hero .gl-atl-hero-eyebrow::after{
    content: '';
    flex: 0 0 auto;
    width: clamp(26px, 4vw, 56px);
    height: 1px;
    background: linear-gradient(90deg, #c9a96e, rgba(201,169,110,0));
}

/* ============================================================
   KOLEKSİYONLAR FİLTRE BARI — MOBİL DÜZEN
   Masaüstü kuralları @media(min-width:992px)'te; altında düzen yoktu →
   kategori sekmeleri FİLTRELE'nin yanındaki dar alanda dikey sarıp
   barı 250px'e şişiriyordu. Mobilde bar dikey yığılır; sekmeler tek
   satırda parmakla kaydırılır (yatay şerit).
   ============================================================ */
@media (max-width: 991px){
    .gl-kol-filter-bar{
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding:0;
    }
    /* Üst satır: FİLTRELE + yatay kaydırılabilir sekme şeridi.
       width:100%+min-width:0 → iç içe flex'in min-content taşmasını keser,
       böylece şerit viewport'a sığıp içinde kayar (yoksa 649px'e genişliyordu). */
    .gl-kol-toolbar-left{
        width:100%;
        min-width:0;
        align-items:center;
        gap:0;
        padding:2px 14px;
        border-bottom:1px solid rgba(255,255,255,0.06);
    }
    .gl-kol-toolbar-right{ width:100%; min-width:0; }
    .gl-filter-toggle-btn{
        height:46px;
        margin-right:14px;
        padding:0 14px 0 0;
        flex-shrink:0;
    }
    .gl-kol-tabs{
        flex:1 1 auto;
        min-width:0;            /* flex:1 shrink edebilsin — yoksa şerit içerik boyuna genişler */
        flex-wrap:nowrap;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        -ms-overflow-style:none;
    }
    .gl-kol-tabs::-webkit-scrollbar{ display:none; }
    .gl-kol-tab{
        flex-shrink:0;
        padding:14px 14px;
    }
    /* Alt satır: ürün sayısı solda, sıralama sağda */
    .gl-kol-toolbar-right{
        justify-content:space-between;
        align-items:center;
        height:auto;
        padding:11px 16px;
    }
    .gl-kol-count{
        border-right:none;
        padding:0;
    }
    .gl-kol-sort{
        padding:0;
        gap:10px;
    }
    .gl-kol-sort select{ padding:10px 32px 10px 14px; }
}

/* ============================================================
   DİKEY RİTİM — BAŞLIK BOŞLUKLARI (tüm site)

   Denetimde aynı rolü oynayan öğeler sayfadan sayfaya farklı boşluk
   kullanıyordu:
     hero mini başlık → başlık : 14 · 22×6 · 26 · 32   (4 farklı değer)
     hero başlık → açıklama    : 22×2 · 24×3 · 26 · 28×2 · 32
     bölüm mini başlık → başlık: 14×3 · 18×2 · 24
     CTA açıklama → buton      : 30 · 32 · 36 · 38 · 40×2
   Ayrıca Hakkımızda'da mini başlığın alt boşluğu (24) başlığınkinden (18)
   BÜYÜKTÜ — mini başlık kendi başlığından kopup üstteki bloğa yapışıyordu.

   ⚠️ ASIL ORANTI HATASI: başlık puntoları clamp() ile ölçekleniyor
   (hero başlık 40px↔78px), ama boşluklar sabit px'ti. Mobilde punto
   küçülüp boşluk aynı kalınca oran bozuluyordu.

   ÇÖZÜM: boşluklar `em` — yani her başlığın KENDİ puntosunun oranı.
   Punto küçülünce boşluk da aynı oranda küçülür.

   Oranlar (büyük punto optik olarak daha SIKI boşluk ister — bu yüzden
   hero başlığı .36em, daha küçük bölüm başlığı .5em):
     mini başlık → başlık : 1.4em   (kendi puntosunun)
     hero başlık → açıklama: 0.36em
     bölüm/CTA başlık → açıklama: 0.5em
     CTA açıklama → buton : 2em

   Yalnızca `margin-bottom` yazılır, kısayol (`margin`) DEĞİL — birçok
   açıklama `margin:0 auto` ile ortalanıyor, kısayol o ortalamayı siler.

   KAPSAM DIŞI (bilerek):
   · `.gl-kr-vh-*` (kreasyonlar video hero) — 100vh içinde "Keşfet"
     göstergesiyle çakışmamak için `:has()` ile ayrıca ayarlanmış; ortak
     orana çekilirse o denge bozulur.
   · Kart/panel başlıkları (`-pane-title`, `-step-title`, `-visit-title`)
     — ayrı bir kademe, ekran görüntüsüyle ayrıca değerlendirilecek.
============================================================ */

/* ---- 1. Hero: mini başlık → başlık ---- */
.gl-hero-eyebrow,
.gl-page-hero-eyebrow,
.gl-atl-hero-eyebrow,
.gl-hkk-hero-eyebrow,
.gl-ilt-hero-eyebrow,
.gl-sss-hero-eyebrow,
.gl-kvk-hero-eyebrow,
.gl-br-hero-eyebrow{
    margin-bottom: 1.4em;
}

/* ---- 2. Hero: başlık → açıklama ---- */
.gl-hero-title,
.gl-page-hero-title,
.gl-atl-hero-title,
.gl-hkk-hero-title,
.gl-ilt-hero-title,
.gl-sss-hero-title,
.gl-kvk-hero-title,
.gl-br-hero-title{
    margin-bottom: 0.36em;
}

/* ---- 3. Hero: açıklama → buton (yalnız buton izleyen iki hero) ----
   İki kolonlu hero'da açıklama sağ sütunda ve altında buton yok; oradaki
   `.gl-atl-hero-aside .gl-atl-hero-lede{margin:0}` (0,2,0) bunu ezer.

   Bu boşluk `em` DEĞİL sabit: metin bloğu ile buton bloğu arasındaki
   yapısal ayrım, metnin kendi puntosunun oranı değil. Bkz. 6. maddedeki
   aynı gerekçe. */
.gl-atl-hero-lede,
.gl-kvk-hero-lede{
    margin-bottom: clamp(26px, 3vw, 36px);
}

/* ---- 4. Bölüm: mini başlık → başlık ---- */
.gl-section-eyebrow,
.gl-atl-section-eyebrow,
.gl-hkk-section-eyebrow,
.gl-ilt-section-eyebrow,
.gl-krd-section-eyebrow,
.gl-br-section-eyebrow,
.gl-kr-eyebrow,
.gl-ud-related-eyebrow{
    margin-bottom: 1.4em;
}

/* ---- 5. Bölüm: başlık → açıklama ---- */
.bridal-section-title,
.gl-atl-section-title,
.gl-hkk-section-title,
.gl-ilt-section-title,
.gl-krd-section-title{
    margin-bottom: 0.5em;
}

/* ---- 6. CTA blokları: mini başlık → başlık → açıklama → buton ---- */
.gl-krd-cta-eyebrow,
.gl-sss-cta-eyebrow,
.gl-br-cta-eyebrow{
    margin-bottom: 1.4em;
}
.gl-atl-cta-title,
.gl-hkk-cta-title,
.gl-ilt-cta-title,
.gl-krd-cta-title,
.gl-sss-cta-title,
.gl-br-cta-title,
.gl-kr-cta-title{
    margin-bottom: 0.5em;
}
/* Açıklama → buton: `em` DEĞİL sabit. Bu CTA açıklamalarının puntoları
   eşit değil (Atölye 18px, Hakkımızda/SSS 14px); `2em` verilseydi boşluk
   36px ve 28px olur, düzeltmeye çalıştığımız tutarsızlık geri gelirdi.
   Buradaki boşluk metin bloğu ile buton bloğu arasındaki YAPISAL ayrım —
   metnin puntosuna değil, sayfa ritmine ait. */
.gl-atl-cta-lede,
.gl-hkk-cta-lede,
.gl-ilt-cta-lede,
.gl-krd-cta-lede,
.gl-sss-cta-lede,
.gl-br-cta-lede{
    margin-bottom: clamp(26px, 3vw, 36px);
}

/* ---- 7. Başıboş ÜST boşluklar ----
   Bu üç başlıkta 14-16px üst boşluk vardı, sitedeki başka hiçbir başlıkta
   yok. Üstteki ayrımı bölüm dolgusu (padding) veriyor; başlığın kendi üst
   boşluğu onun üstüne binip bloğu aşağı kaydırıyordu. */
.gl-ilt-cta-title,
.gl-atl-cta-title,
.gl-atl-measure-title{
    margin-top: 0;
}

/* ============================================================
   DİKEY RİTİM — 2. PARTİ: KART / PANEL KADEMESİ

   Bölüm başlıklarının bir altındaki kademe. Ölçülen oranlar (boşluk ÷ punto):
     .gl-atl-visit-title      32px / 10px = 0.31em   ← en sıkı
     .gl-br-pane-title        36px / 14px = 0.39em
     .gl-ilt-pane-title       40px / 16px = 0.40em
     .gl-kr-step-title        26px / 12px = 0.46em
     .gl-atl-measure-title    42px / 22px = 0.52em
     .gl-hkk-founder-title    44px / 28px = 0.64em
     .gl-hkk-vm-title         34px / 22px = 0.65em   ← en gevşek
   Aynı rol için 0.31–0.65em, yani iki kattan fazla fark.
   Bölüm başlıklarıyla aynı orana (0.5em) çekiliyor — bu bir alt kademe,
   ayrı bir dil değil. Hiçbir öğe 6px'ten fazla oynamıyor.

   ⚠️ KAPSAM DIŞI ve NEDENİ (tahmin değil, tarayıcıda ölçüldü):

   · `.gl-kvk-sec-title` — margin'i 0; kapsayıcısı `.gl-kvk-sec-head`
     display:flex + gap:16px. Boşluk flex gap'ten geliyor; margin eklenirse
     ÇİFT boşluk olur. Genel kural: margin'i zaten 0 olan başlık boşluğunu
     başka yerden alıyordur, dokunma.

   · `.gl-krd-title` — clamp(48px, 9vw, 120px), oran 0.20em. Dev display
     puntosu kendi optik sınıfında; 0.5em verilseydi boşluk 24px'ten 60px'e
     çıkardı. Çok büyük punto orantısal olarak daha SIKI boşluk ister.

   · `.gl-rnd-*`, `.gl-hes-*`, `.gl-auth-*`, `.gl-ss-*`, `.gl-si-*`,
     `.gl-pd-*`, `.gl-shop-*` — hiçbir blade dosyasında kullanılmıyor
     (randevu/hesabım/giriş/sepet/sipariş/mağaza sayfaları bu projede yok).
     1. partide eklenen `.gl-rnd-*` seçicileri bu yüzden geri çıkarıldı.
============================================================ */

/* ---- 8. Kart/panel başlığı → altındaki metin ---- */
.gl-ilt-pane-title,
.gl-br-pane-title,
.gl-br-controls-title,
.gl-hkk-vm-title,
.gl-hkk-founder-title,
.gl-atl-measure-title,
.gl-atl-visit-title,
.gl-kr-step-title{
    margin-bottom: 0.5em;
}

/* ---- 9. Küçük etiketler → içerik ----
   Mini başlıklarla (eyebrow) aynı rol: üstte duran küçük, harf aralıklı
   etiket. Ölçülenler 0.46em ile 2.15em arasına savrulmuştu:
     .gl-krd-other-eyebrow      13px /  6px = 0.46em  ← etiketi içeriğe yapıştırıyordu
     .gl-search-sugg-title       9px / 14px = 1.56em
     .gl-kvk-toc-title          10px / 18px = 1.80em
     .gl-krd-statement-eyebrow  13px / 28px = 2.15em  ← etiketi başlığından koparıyordu
   Hepsi mini başlık oranına (1.4em) katılıyor. */
.gl-krd-statement-eyebrow,
.gl-krd-other-eyebrow,
.gl-kvk-toc-title,
.gl-search-label,
.gl-search-sugg-title,
.gl-sss-search-label,
.gl-ilt-socials-label{
    margin-bottom: 1.4em;
}

/* ---- 10. Kart metni → sonraki blok ----
   Yapısal ayrım, bu yüzden `em` değil sabit (6. maddedeki gerekçe).
   Ölçülenler: 22 · 26 · 28 · 30px → tek değere iniyor. */
.gl-kr-lede,
.gl-kr-ft-desc,
.gl-atl-measure-lede,
.gl-ud-desc{
    margin-bottom: clamp(22px, 2.4vw, 28px);
}

/* ============================================================
   DİKEY RİTİM — 3. PARTİ: BLOK DOLGULARI (üst = alt)

   Ölçüm (1440px, tarayıcıda): bölüm üst/alt dolguları ZATEN simetrikti —
   6/6 ve 10/10 bölüm. Yani "üst neyse alt da o" ilkesi doğru yerde
   uygulanmış. Eksik olan ORAN'dı: aynı rol için yedi ayrı değer.

     Atölye bölümleri      36.5px   ← vh tabanlı, aşağıya bak
     SSS CTA               70px
     İletişim ana bölüm    72px
     Hakkımızda, Kreasyon  77px
     Kreasyonlar CTA       79.2px
     SSS/Beden ana bölüm   80px
     KVK ana bölüm         90px

   ⚠️ ATÖLYE'DE `vh` KAZASI: Atölye'nin beş bölümü dikey dolguda
   `clamp(36px, 5.5vh, 66px)` kullanıyordu — viewport YÜKSEKLİĞİ. Diğer
   tüm sayfalar `vw` (genişlik) kullanıyor. 663px yüksekliğinde bir dizüstü
   penceresinde Atölye 36px alırken aynı rol diğer sayfalarda 77px oluyordu,
   yarıdan az. Dikey dolgu pencere yüksekliğine bağlanmamalı: pencere
   kısaldıkça bölümler sıkışır, uzadıkça şişer.

   ÖLÇEK (×1.5, üst = alt):
     xl  clamp(44px, 5vw, 72px)    ana içerik bölümleri
     lg  clamp(30px, 3.4vw, 48px)  ara şeritler / yoğun bloklar

   Yalnızca `padding-top`/`padding-bottom` yazılır — yatay dolgu (her
   sayfada farklı ve kasıtlı) korunur.

   KAPSAM DIŞI:
   · Hero'lar — sabit header (80px) üstlerine bindiği için üst dolgunun
     fazla olması KASITLI. Ölçümde 80/0 çıkanlar bunlar.
   · Bir tarafı 0 olan bloklar (`.gl-kr-seasons`, `.gl-kr-process`,
     `.gl-products-section`) — boşluğu komşu bölüm veriyor, zorlamak
     çift boşluk yaratır.
   · Kart dolguları (22-31px) — zaten simetrik, sadece yuvarlak sayı
     değiller. 31'i 32 yapmak görünmez; 22'yi 32 yapmak SSS akordeonunu
     gereksiz gevşetir. Dokunmuyorum.
============================================================ */

/* ---- 11. Ana içerik bölümleri ---- */
.gl-atl-zones,
.gl-atl-process,
.gl-atl-measure,
.gl-atl-visits,
.gl-atl-cta,
.gl-hkk-manifesto,
.gl-hkk-founder,
.gl-hkk-vm,
.gl-hkk-values,
.gl-ilt-main,
.gl-kr-cta,
.gl-krd-statement,
.gl-krd-pieces,
.gl-krd-lookbook,
.gl-sss-main,
.gl-sss-cta,
.gl-kvk-main,
.gl-br-main,
.gl-br-cta{
    padding-top: clamp(44px, 5vw, 72px);
    padding-bottom: clamp(44px, 5vw, 72px);
}

/* ---- 12. Ara şeritler / yoğun bloklar ----
   İkisi gerçek asimetriydi (ikisi de sıfırdan farklı, yani kasıtlı değil):
     .gl-kr-section-head  55 / 44  → 11px fark
     .gl-ud-main          40 / 44  →  4px fark
   `.gl-krd-lookbook` de 77/55 ile asimetrikti; o bir tam bölüm olduğu için
   yukarıdaki xl kademesine alındı. */
.gl-hkk-stats,
.gl-krd-stats,
.gl-ilt-map,
.gl-kr-section-head,
.gl-kr-step,
.gl-ud-main,
.gl-ud-related{
    padding-top: clamp(30px, 3.4vw, 48px);
    padding-bottom: clamp(30px, 3.4vw, 48px);
}

/* ============================================================
   GÖVDE METNİ ÖLÇEĞİ (site geneli)

   Anasayfa editöryal paragrafındaki artış onaylandı, siteye uyarlandı.

   Öncesi — okunan gövde metni 11px ile 18px arasına dağılmıştı, ölçek yoktu:
     11px    .gl-ilt-check-text            (KVK onay kutusu etiketi)
     12px    KVK paragrafları, kreasyon adım metni, beden rehberi
     12.5px  Hakkımızda değer kartları
     13px    Hakkımızda/İletişim/Beden lede'leri, kreasyon açıklamaları
     13.5px  Atölye bölge metinleri, Hakkımızda vizyon/misyon
     14px    SSS cevapları, ürün bilgi akordeonu, kreasyon detay
     16-18px Atölye lede'leri (zaten iyiydi)

   ⚠️ En kritik ikisi: KVK metni 12px, iletişim formundaki KVK onay etiketi
   11px'ti — ikisi de ziyaretçinin GERÇEKTEN okuması gereken, hukuki sonuç
   doğuran metinler ve sitenin en küçük puntosundaydılar.

   İki kademe:
     ana gövde  clamp(15px, 1.2vw, 17px)      okunan metin, lede, madde
     ikincil    clamp(13.5px, 1.05vw, 15px)   yardımcı/etiket metni

   KAPSAM DIŞI:
   · Mikro etiketler (rozet, sayaç, ürün kodu — 10-12px): okunan metin
     değil, işaret. Ayrı kademe, dokunulmadı.
   · `.gelinlik-body`nin kendi 14px'i: gövde varsayılanı, değiştirmek her
     yere öngörülemez şekilde yayılır.
   · Başlıklar, alıntılar (`.gl-motto` 30px, `.gl-sss-q-text` 19px).

   Punto büyüdüğü için sayfa yükseklikleri artar; KVK ve SSS gibi uzun
   metinlerde belirgin olur — beklenen davranış.
============================================================ */

/* ---- Ana gövde: okunan metin ---- */
.gl-editorial-right p,
.gl-appt p,
.gl-atl-section-lede,
.gl-atl-measure-lede,
.gl-atl-measure-text,
.gl-atl-step-body,
.gl-atl-step-body p,
.gl-atl-zone p,
.gl-atl-measure-list li,
.gl-atl-checklist li,
.gl-atl-cta-lede,
.gl-hkk-section-lede,
.gl-hkk-manifesto-body,
.gl-hkk-founder-text,
.gl-hkk-founder-body,
.gl-hkk-vm-body,
.gl-hkk-value p,
.gl-kr-step-text,
.gl-kr-ft-desc,
.gl-kr-cta-text,
.gl-kr-note-quote p,
.gl-krd-statement-body,
.gl-ilt-section-lede,
.gl-ilt-pane-lede,
.gl-ilt-info-body,
.gl-ilt-info-body p,
.gl-ilt-check-text,
.gl-sss-a p,
.gl-sss-cta-lede,
.gl-kvk-section p,
.gl-kvk-mt,
.gl-kvk-bullet li,
.gl-kvk-cat-card p,
.gl-kvk-cookie p,
.gl-kvk-bottom-cta p,
.gl-br-pane-lede,
.gl-br-cta-lede,
.gl-br-tip p,
.gl-br-step-body p,
.gl-br-callout p,
.gl-ud-acc-body,
.gl-ud-acc-body p{
    /* 2026-08-05 — ÖLÇEĞE BAĞLANDI.
       Önceki değer clamp(16.5px, 1.25vw, 18px) idi ve 1440px'te 18px veriyordu;
       ölçeğin --ty-body'si ise 17px. Sonuç: aynı rol iki boyutta basılıyordu —
       KVK/SSS/iletişim 18px, hakkımızda/beden rehberi/kreasyonlar 17px.
       Bölünmenin sebebi aşağıdaki 6. bölümdeki gövde kuralının ÖLÜ sınıf
       adlarına yazılmış olmasıydı (.gl-kvk-sec-body / .gl-sss-answer — ikisi de
       DOM'da yok); o kural bu sayfalara hiç ulaşamıyordu.
       ⚠️ Eski yorumun uyarısı hâlâ geçerli: TABAN belirleyicidir, tavan değil.
       --ty-body'nin tabanı 16px (clamp'in alt ucu), 1205px'lik bir pencerede
       ~16.1px basar — eski kuralın şikâyet ettiği "15px'te sabitlenme" sorunu
       tekrarlamaz. */
    font-size: var(--ty-body);
    line-height: 1.75;
}

/* ---- Bölüm mini başlıkları (eyebrow) — 13px → 17px ----
   Kullanıcı isteği. Hero mini başlıkları KAPSAM DIŞI: onların ayrı bir
   kuralı var (serif + !important), orada 13.9px kalıyor.

   clamp kullanıldı çünkü 17px, 0.26em harf aralıklı BÜYÜK HARF metinde
   dar ekranda kötü sarıyor: 850px üstünde tam 17px, altında kademeli iner.

   ⚠️ Alt boşlukları `1.4em` olarak tanımlı (bkz. dikey ritim bölümü);
   punto büyüyünce boşluk da kendiliğinden 18.2px'ten 23.8px'e çıkar —
   oran korunur, ayrıca ayarlamak gerekmez. */
.gl-section-eyebrow,
.gl-atl-section-eyebrow,
.gl-hkk-section-eyebrow,
.gl-ilt-section-eyebrow,
.gl-krd-section-eyebrow,
.gl-krd-statement-eyebrow,
.gl-krd-cta-eyebrow,
.gl-krd-other-eyebrow,
.gl-br-section-eyebrow,
.gl-br-cta-eyebrow,
.gl-sss-cta-eyebrow,
.gl-kr-eyebrow,
.gl-ud-related-eyebrow{
    font-size: clamp(14px, 2vw, 17px);
}

/* ---- Kreasyonlar bölüm başlığı — Atölye'nin başlık dili ----
   İstek: Kreasyonlar'daki "Her sezon, bir hikaye. Her hikaye, bir gelin."
   satırı, Atölye'deki "Atölyenin Yedi Odası" başlığına uyarlansın.

   Sebep: iki sayfanın bölüm başlığı yapısı ayrışmıştı —
     Atölye      : eyebrow + BÜYÜK BAŞLIK (48px) + italik açıklama
     Kreasyonlar : eyebrow + küçük italik satır (16.5px), büyük başlık YOK
   Kreasyonlar'da o italik satır fiilen bölümün başlığıydı ama başlık gibi
   görünmüyordu. Artık Atölye ile aynı ölçekte.

   Kaynak (.gl-atl-section-title): Cormorant · normal · w400 ·
   clamp(30px,4vw,48px) · satır 1.1 · harf aralığı .02em · #f5e3b8

   ⚠️ `.gl-kr-section-sub` yukarıdaki GÖVDE METNİ kademesinden çıkarıldı —
   artık gövde metni değil, başlık. Orada bırakılsaydı 16.5px'e sabitlenirdi. */
.gl-kr-section-sub{
    font-family: var(--font-serif);
    font-size: clamp(30px, 4vw, 48px);
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1.1;
    color: #f5e3b8;
    text-wrap: balance;      /* iki satıra dengeli bölünsün */
}

/* ---- İkincil: yardımcı / etiket metni ----
   ⚠️ 2026-08-05: `.gl-br-controls-sub` bu listeden ÇIKARILDI. Bu kural 15.84px
   veriyor ve ölçekte böyle bir kademe yok; o öğe yukarıdaki "ölçek dışı
   kademeler" bloğunda --ty-mini'ye bağlandı. Listede kalsaydı bu kural dosyada
   daha sonra geldiği için (aynı özgüllük, 0,1,0) yeni kuralı sessizce ezerdi —
   nitekim ilk denemede öyle oldu. */
.gl-atl-visit-sub,
.gl-ilt-info-item,
.gl-cinematic-text,
.bridal-footer-brand p{
    /* Taban aynı sebeple yükseltildi (bkz. ana gövde notu) */
    font-size: clamp(15px, 1.1vw, 16px);
    line-height: 1.7;
}

/* ============================================================
   MOBİL DOKUNMA HEDEFLERİ
   390px'te ölçüldü: mobil menü butonu 28×28, header ikon butonları
   33×31. Apple 44pt / Android 48dp önerisinin altında; menü butonu
   sitenin BİRİNCİL mobil gezinme denetimi olduğu için önemli.

   Görsel boyut DEĞİŞMİYOR — dokunma alanı görünmez bir ::after ile
   genişletiliyor, ikonlar aynı kalıyor.

   ⚠️ Yatay genişletme yalnız menü butonunda: iki header ikon butonu
   arasında sadece 2px boşluk var, onları yanlara büyütmek komşunun
   üstüne biner ve yanlış butona basılır. Onlarda yalnızca dikey
   büyütme yapılıyor (48px'lik barda yer var).
============================================================ */
@media (max-width: 991px){
    /* Menü butonu: solunda 162px, sağında 16px boşluk → 44×44 güvenli */
    .bridal-menu-toggle{ position: relative; }
    .bridal-menu-toggle::after{
        content: '';
        position: absolute;
        inset: -8px;          /* 28 + 2×8 = 44px */
    }
    /* İkon butonları: yalnız dikey (yatayda komşuyla 2px boşluk var) */
    .gl-hdr-icon-btn{ min-height: 44px; }
}

/* ---- 13. Anasayfa bölüm başlığı bloğu ----
   `.gl-section-head` (anasayfada iki yerde: "2026 Kreasyonları / Her Gelin
   İçin Bir Hikaye" ve "@aylaugurgelinlik / Instagram'da Bizi Takip")
   dolgusu `clamp(18px, 2.8vw, 35px) … 0` idi — üstte 35px, altta HİÇ.
   Ölçüm: başlığın üstünde 60.9px boşluk, altında 16px (o da yalnızca
   satır yüksekliğinin payı). Başlık ızgaraya yapışıyordu.

   Eşitlenmesi gereken şey dolgu değil, GÖRÜNEN aralık:
     ÜST = bölümün üst dolgusu + head'in üst dolgusu
     ALT = head'in alt dolgusu + head'in kendi alt margin'i
   Yapısal sebep: bölümün ÜST dolgusu başlığın hemen üstünde duruyor; ALT
   dolgusu ise ızgaranın altında kalır, başlık bloğunun altına düşmez. Bu
   yüzden alt dolgu üsttekiyle aynı sayı DEĞİL, farkı kapatan sayı olmalı.

   Sabit sayı yerine formül — her ekran genişliğinde eşitlik korunsun diye:

       alt dolgu = bölüm üst dolgusu + head üst dolgusu − head alt margin'i

   Doğrulama:  1440px → 25.9 + 35   − 16 = 44.9  → ALT 60.9 = ÜST 60.9 ✓
               1000px → 18   + 28   − 14 = 32    → ALT 46   = ÜST 46   ✓
                390px → 14   + 18   − 10 = 22    → ALT 32   = ÜST 32   ✓

   Instagram bölümü de aynı kurala bağlı: `home.blade.php`'de o bölümün
   satır içi üst dolgusu `.gl-section` ile aynı clamp'e çekildi ve
   ızgaranın `margin-top`'u kaldırıldı. Böylece iki blok yapıca birebir
   aynı oldu, ayrı bir kural gerekmiyor.

   ⚠️ Formülün üç bileşeni de başka yerden geliyor; biri değişirse burası
   da güncellenmeli:
     · bölüm üst dolgusu → `.gl-section` (custom.css:1818) ve
       `home.blade.php` Instagram bölümünün satır içi dolgusu
     · head üst dolgusu  → custom.css:4079
     · head alt margin'i → custom.css:1823
   Medya sorgusu YOK: üç bileşen de clamp'li olduğu için oran mobilde de
   kendiliğinden korunuyor. (Önceden bu kural 768px üstüyle sınırlıydı;
   gerekçesi hatalıydı — custom.css:1823 medya sorgusu içinde değil, yani
   mobilde de geçerli. O sınır yüzünden başlık mobilde ızgaraya yapışık
   kalıyordu.) */
.gl-section-head{
    padding-top: clamp(18px, 2.8vw, 35px);
    padding-bottom: calc(
        clamp(14px, 1.8vw, 28px)     /* bölümün üst dolgusu  (.gl-section) */
      + clamp(18px, 2.8vw, 35px)     /* head'in üst dolgusu               */
      - clamp(10px, 1.4vw, 16px)     /* head'in kendi alt margin'i        */
    );
}

/* ============================================================
   Atölye → Beden Rehberi geçişi
   Ölçü hazırlık notlarının altında duran ince bağlantı. Buton
   değil metin bağlantısı: bölümün asıl eylemi randevu almak,
   bu ikincil bir yönlendirme — buton yapılsa CTA ile yarışırdı.
   ============================================================ */
.gl-atl-measure-link{
    display:inline-flex;align-items:center;gap:9px;margin-top:22px;
    font-family:var(--font-sans);font-size:14px;letter-spacing:.02em;
    color:var(--bridal-gold,#c9a96e);text-decoration:none;
    padding-bottom:3px;border-bottom:1px solid rgba(201,169,110,.35);
    transition:border-color .25s ease,gap .25s ease;
}
.gl-atl-measure-link:hover,
.gl-atl-measure-link:focus-visible{
    color:var(--bridal-gold,#c9a96e);
    border-bottom-color:rgba(201,169,110,.9);
    gap:13px;   /* ok ileri kayar */
}
.gl-atl-measure-link i{font-size:12px;transition:transform .25s ease}
.gl-atl-measure-link:hover i{transform:translateX(2px)}

@media (prefers-reduced-motion:reduce){
    .gl-atl-measure-link,
    .gl-atl-measure-link i{transition:none}
    .gl-atl-measure-link:hover{gap:9px}
    .gl-atl-measure-link:hover i{transform:none}
}

/* ==========================================================================
   KREASYONLAR — Tasarımcı Notları sticky timeline
   2026-08-04: kreasyonlar.blade.php içine gömülü <style> bloğundan taşındı
   (proje kuralı: ortak özelleştirmeler bu dosyada durur).
   !important'lar kaldırıldı — bu dosya custom.css'ten SONRA yüklendiği için
   aynı özgüllükteki kural zaten kazanıyor. Sırayı değiştirirsen kontrol et.
   ========================================================================== */
.gl-kr-notes-layout{
    display:flex;
    max-width:1200px;
    margin:0 auto;
    gap:60px;
    position:relative;
    padding:0 20px;
}

.gl-kr-timeline{
    width:150px;
    flex-shrink:0;
    position:relative;
    display:none;            /* mobilde gizli, 992px'te açılır */
}

/* çizgi kapsayıcı boyunca iner; altta yumuşak biter */
.gl-kr-timeline::before{
    content:'';
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    width:1px;
    background:linear-gradient(
        to bottom,
        rgba(201,169,110,0.5) 0%,
        rgba(201,169,110,0.5) 90%,
        transparent 100%
    );
    z-index:1;
}

@media (min-width:992px){
    .gl-kr-timeline{display:block}
}

.gl-kr-timeline-inner{
    position:sticky;
    top:150px;               /* sabit header payı */
}

.gl-kr-timeline-title{
    font-size:11px;
    letter-spacing:0.2em;
    color:var(--bridal-gold,#c9a96e);
    text-transform:uppercase;
    display:block;
    margin-bottom:30px;
}

.gl-kr-timeline-nav{
    list-style:none;
    padding:0;
    margin:0;
    border-left:none;
    padding-top:10px;
    position:relative;
}

.gl-kr-timeline-nav li{
    position:relative;
    margin-bottom:60px;
}

.gl-kr-timeline-link{
    display:flex;
    align-items:center;
    color:#888;
    text-decoration:none;
    font-size:14px;
    transition:all 0.3s ease;
    padding-left:20px;
    font-family:var(--font-serif);
    font-style:italic;
}

.gl-kr-timeline-dot{
    position:absolute;
    left:-4px;
    top:50%;
    transform:translateY(-50%);
    width:7px;
    height:7px;
    border-radius:50%;
    transition:all 0.3s ease;
}

/* ⚠️ Nokta rengi ayrı ve `.gelinlik-body` önekli yazılmak ZORUNDA.
   Yukarıdaki antrasit şeffaflaştırma kuralı
   `.gelinlik-body [class*="-timeline"]{background-color:transparent!important}`
   bölüm kapsayıcılarını hedefliyor, ama bu noktacığın sınıfı da "-timeline"
   içerdiği için ona da uyuyor. O kural (0,2,0) + !important olduğundan,
   sade `.gl-kr-timeline-dot` (0,1,0) !important ile bile kaybeder —
   eşit özgüllüğe çıkıp sonra gelmek gerekiyor. */
.gelinlik-body .gl-kr-timeline-dot{
    background-color:#444 !important;
}

.gl-kr-timeline-link:hover,
.gl-kr-timeline-link.active{
    color:var(--bridal-gold,#c9a96e);
    font-size:18px;
}

.gl-kr-timeline-link:hover .gl-kr-timeline-dot,
.gl-kr-timeline-link.active .gl-kr-timeline-dot{
    background-color:var(--bridal-gold,#c9a96e) !important;   /* bkz. yukarıdaki not */
    box-shadow:0 0 10px rgba(201,169,110,0.5);
    transform:translateY(-50%) scale(1.3);
}

.gl-kr-notes-list{
    flex-grow:1;
}

/* yıl etiketleri — custom.css:3931'deki tanımı bilinçli olarak ezer */
.gl-kr-note-label{
    background:rgba(0,0,0,0.7);
    color:#fff;
    border:none;
}
.gl-kr-note-label--gold{
    border:1px solid var(--bridal-gold,#c9a96e);
    color:var(--bridal-gold,#c9a96e);
    background:rgba(0,0,0,0.5);
}

/* ==========================================================================
   position:sticky onarımı — 2026-08-04
   gelinlik-theme.css:2119 `body.gelinlik-body{overflow-x:hidden}` diyor.
   `hidden` gövdeyi kaydırma kabı (scroll container) yapar; bu da içerideki
   position:sticky öğelerinin HİÇ yapışmamasına yol açıyordu — kreasyonlar
   sayfasındaki yıl şeridi bunun yüzünden sayfayla birlikte yukarı kayıyordu.
   `clip` aynı kırpmayı yapar ama kaydırma kabı OLUŞTURMAZ, sticky çalışır.
   ⚠️ Geri almak istersen bu bloğu sil; timeline yapışmayı bırakır.
   ========================================================================== */
body.gelinlik-body{
    overflow-x:clip;
}

/* ============================================================================
   TİPOGRAFİ ÖLÇEĞİ  —  2026-08-04
   ----------------------------------------------------------------------------
   Sitede 20 farklı font boyutu, 913 bildirim ve 106 ayrı clamp() ifadesi vardı.
   Aynı rol sayfadan sayfaya 9px ile 12px arasında oynuyordu. Bu bölüm ölçeği
   TEK KAYNAKTAN kurar; aşağıdaki kurallar dosyanın sonunda olduğu için önceki
   tüm bildirimleri ezer.

   ÖLÇÜLMÜŞ DAYANAKLAR (bunları bilmeden değer değiştirme):

   1) Cormorant Garamond ile Jost aynı px'te AYNI BÜYÜKLÜKTE GÖRÜNMEZ.
      Ölçülen x-height: Cormorant 0.386em, Jost 0.460em → Cormorant %19 küçük
      görünür. Büyük harfte oran farklı (cap-height 0.625 / 0.700 → %12).
      Bu yüzden serif başlıklar sans gövdeden orantısal olarak daha büyüktür.

   2) Cormorant 400, Jost 400'den %29 daha az mürekkep taşır (glif alanı
      0.287 / 0.371) — yani Cormorant 400 ≈ Jost 330 rengindedir. Koyu zeminde
      açık metin ayrıca optik olarak incelir. İki etki üst üste binmesin diye
      Cormorant'ın ağırlık tabanı boyuta göre yükseltilir (aşağıda).

   3) Cormorant tasarımcısı fontu "display type family" olarak tanımlıyor —
      küçük boyut için değil. Gövde metni her zaman Jost'tur.

   4) Taban 12px: ölçülen couture emsalleri (Vera Wang, Monique Lhuillier)
      12px'in altına inmiyor. Eski 9/10/10.5/11/11.5px kademeleri elendi.

   5) Tüm clamp()'ler TEK viewport aralığından türetildi: 320px → 1440px.
      Eskiden devir noktaları 350px ile 1455px arasına saçılmıştı; bu yüzden
      900px'te hero zaten tavana yaklaşmışken gövde hâlâ tabandaydı.
      Formül: slope=(maxPx-minPx)/(1440-320) · vw=slope*100 · rem=minPx-slope*320
      ⚠️ max/min oranı 2.5'i AŞMAMALI (WCAG 1.4.4 — tarayıcı zoom'u vw'yi
      büyütmez, agresif ölçek zoom'u etkisiz kılar). En büyüğümüz 2.17.
   ============================================================================ */

:root{
    /* — Jost (arayüz/gövde) — sabit kademeler */
    /* 2026-10-06 — LA OBRIGE + LIBRE CASLON DISPLAY GEÇİŞİ
       Aileler: --font-serif = La Obrige (başlık/vurgu), --font-sans = Libre
       Caslon Display (detay/metin). Tanım + size-adjust gerekçesi:
       gelinlik-theme.css baştaki "YAZI TİPLERİ" bloğu. Bu dosyadaki eski
       yorumlarda geçen "Cormorant"/"Jost" ölçümleri önceki ailelere aittir.
       Değişenler: micro 12→13, mini 14→15 (Caslon Display bir DISPLAY kesimi,
       küçük boyutta ince çizgileri kaybolur), body 17→18 tavan, h3 26→28,
       h2 48→56, h1 78→76 (bkz. --ty-h1 notu). Hepsi aynı 320→1440 formülünden türetildi.
       Sonradan eklenen sabit başlık boyutları (52-104px, 40-68px, 24px
       !important…) bu token'lara bağlandı — ölçek yeniden tek kaynak. */
    --ty-micro:  0.8125rem;                                        /* 13px — rozet, ürün kodu, meta */
    --ty-mini:   0.9375rem;                                        /* 15px — buton, menü, form etiketi, sekme */

    /* — akışkan kademeler (320px → 1440px) */
    --ty-body:   clamp(1.0625rem, 1.0446rem + 0.0893vw, 1.125rem); /* 17 → 18px  gövde */
    --ty-lede:   clamp(1.125rem,  1.054rem + 0.36vw, 1.375rem);    /* 18 → 22px  bölüm açıklaması */
    --ty-h3:     clamp(1.3125rem, 1.1875rem + 0.625vw, 1.75rem);   /* 21 → 28px  kart başlığı */
    --ty-h2:     clamp(1.875rem,  1.4107rem + 2.3214vw, 3.5rem);   /* 30 → 56px  bölüm başlığı · oran 1.87 */
    --ty-h1:     clamp(2.25rem,   1.5357rem + 3.5714vw, 4.75rem);  /* 36 → 76px  hero · oran 2.11
                    36px taban: 390px telefonda 36 karakterlik başlık 2 satıra sığsın diye.
                    ⚠️ 88px denendi: La Obrige geniş bir yüz, Atölye/Koleksiyonlar'ın
                    iki sütunlu hero'sunda (631px) ilk satır 727px tutup 3. satıra iniyordu. */

    /* — mini başlıklar (eyebrow). Serif olan, cap-height farkı yüzünden daha büyük.
       2026-08-05: hero ve bölüm mini başlıkları Cormorant'ta birleştirildi
       (bkz. dosya sonundaki 6. bölüm). Hero bir kademe büyük — sayfanın ilk
       yazısı ve geniş harf aralığıyla tek satır halinde duruyor.
       Aynı gün ikisi de bir kademe daha büyütüldü (18→22 / 16→20px).
       ⚠️ ALT SINIRLAR BİLEREK DÜŞÜK (14 / 13px), tavanla orantılı değil:
       .3em harf aralığıyla "KOLEKSİYONLAR AYLA UĞUR" gibi uzun mini başlıklar
       390px'lik telefonda ~377px yer istiyor ve ikinci satıra iniyordu.
       Ölçüm: 22px'te metin 456px → punto ile doğrusal (letter-spacing em bazlı).
       ⚠️ İkisi BİRLİKTE değiştirilir: hero her zaman bölümden bir kademe
       büyük kalmalı. Yalnız hero'nun tabanı düşürülseydi mobilde bölüm mini
       başlığı hero'dan büyük görünür, hiyerarşi ters dönerdi.
       max/min oranları 1.57 ve 1.54 — WCAG 1.4.4 için tuttuğumuz 2.5 tavanının altında.
       --ty-eyebrow-sans artık YALNIZ eyebrow olmayan mini metinlerde
       (footer başlıkları, ürün kreasyon etiketi, sayfa alt başlığı). */
    --ty-eyebrow-hero:  clamp(0.875rem,  0.732rem + 0.71vw, 1.375rem); /* 14 → 22px  Cormorant, hero */
    --ty-eyebrow-serif: clamp(0.8125rem, 0.688rem + 0.63vw, 1.25rem);  /* 13 → 20px  Cormorant, bölüm */
    --ty-eyebrow-sans:  clamp(0.8125rem, 0.7768rem + 0.1786vw, 0.9375rem); /* 13 → 15px  Caslon */

    /* — satır yüksekliği: boyutla TERS orantılı (büyük başlık sıkı, gövde açık) */
    --lh-h1: 1.1;                      /* La Obrige'nin kuyruklu g/y'si 1.05'te alt satıra değiyor */
    --lh-h2: 1.12;
    --lh-h3: 1.25;
    --lh-body: 1.6;
    --lh-mini: 1.4;
}

/* ---------------------------------------------------------------------------
   1. HERO BAŞLIĞI
   Eskiden 52 / 78 / 88 / 107.6 / 120px — beş ayrı değer, tek rol.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-hero-title,
.gelinlik-body .gl-kr-vh-title,
.gelinlik-body .gl-krd-title,
.gelinlik-body .gl-ud-name,
.gelinlik-body .gl-page-title,
.gelinlik-body [class*="-hero"] [class*="-title"],
.gelinlik-body .gl-atl-hero-title,
.gelinlik-body .gl-hkk-hero-title,
.gelinlik-body .gl-ilt-hero-title,
.gelinlik-body .gl-br-hero-title,
.gelinlik-body .gl-sss-hero-title,
.gelinlik-body .gl-kvk-hero-title{
    font-size: var(--ty-h1);
    line-height: var(--lh-h1);
    font-weight: 300;                  /* ≥40px'te Cormorant 300 güvenli */
}

/* ---------------------------------------------------------------------------
   2. BÖLÜM BAŞLIĞI (h2)
   Eskiden 32 / 36 / 38 / 40 / 42 / 44 / 46 / 48 / 52 / 56 / 60 / 64px.
   On iki değer, tek rol. Ağırlık da 300 ile 400 arasında kararsızdı.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-section-title,
.gelinlik-body .gl-kr-h2,
.gelinlik-body .gl-kr-cta-title,
.gelinlik-body .gl-atl-section-title,
.gelinlik-body .gl-atl-measure-title,
.gelinlik-body .gl-atl-cta-title,
.gelinlik-body .gl-hkk-section-title,
.gelinlik-body .gl-hkk-founder-title,
.gelinlik-body .gl-hkk-manifesto-quote,
.gelinlik-body .gl-hkk-cta-title,
.gelinlik-body .gl-ilt-section-title,
.gelinlik-body .gl-ilt-pane-title,
.gelinlik-body .gl-br-pane-title,
.gelinlik-body .gl-br-cta-title,
.gelinlik-body .gl-sss-cta-title,
.gelinlik-body .gl-kvk-sec-title,
.gelinlik-body .gl-krd-section-title,
.gelinlik-body .gl-krd-statement-quote,
.gelinlik-body .gl-ud-related-title,
.gelinlik-body .gl-rnd-pane-title{
    font-size: var(--ty-h2);
    line-height: var(--lh-h2);
    font-weight: 400;                  /* 24–40px bandında Cormorant 300 fazla soluk */
    letter-spacing: normal;            /* bazı sayfalarda -2.6px vardı, bazılarında +1.12px */
}

/* ---------------------------------------------------------------------------
   3. KART / PANEL BAŞLIĞI (h3–h4)
   Eskiden 16 / 17 / 18 / 19 / 22 / 24 / 26 / 30 / 32 / 34 / 64.6px.
   ⚠️ 64.6px'lik `.gl-kr-ft-name`, sayfanın h2'sinden (48px) büyüktü.
   ⚠️ /kvk h4 (17px) ve /beden-rehberi h4 (16px) gövde metninden (17.9px) küçüktü.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-kr-ft-name,
.gelinlik-body .gl-kr-sd-name,
.gelinlik-body .gl-kr-step-title,
.gelinlik-body .gl-atl-visit-title,
.gelinlik-body .gl-atl-zone h3,
.gelinlik-body .gl-atl-step-body h3,
.gelinlik-body .gl-hkk-vm-title,
.gelinlik-body .gl-hkk-value h3,
.gelinlik-body .gl-col-overlay h3,
.gelinlik-body .gl-kvk-sec-body h3,
.gelinlik-body .gl-kvk-sec-body h4,
.gelinlik-body .gl-br-pane h4,
.gelinlik-body .gl-ilt-info-card h3,
.gelinlik-body .gl-krd-piece h3,
.gelinlik-body .gl-fav-empty h3,
.gelinlik-body .gl-kol-empty h3{
    font-size: var(--ty-h3);
    line-height: var(--lh-h3);
    font-weight: 500;                  /* <24px'te Cormorant 500 gerekiyor (mürekkep ölçümü) */
}

/* ---------------------------------------------------------------------------
   4. BÖLÜM AÇIKLAMASI (lede) — 22px, JOST
   Başlık Cormorant, açıklaması da Cormorant olunca ikisi ayrışmıyordu.
   ⚠️ Jost'un italik kesimi siteye YÜKLENMİYOR — italic verilirse tarayıcı
   sahte italik üretir ve harfler bozulur. font-style: normal bilinçli.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-atl-section-lede,
.gelinlik-body .gl-atl-measure-lede,
.gelinlik-body .gl-atl-cta-lede,
.gelinlik-body .gl-hkk-section-lede,
.gelinlik-body .gl-hkk-cta-lede,
.gelinlik-body .gl-ilt-section-lede,
.gelinlik-body .gl-ilt-pane-lede,
.gelinlik-body .gl-br-pane-lede,
.gelinlik-body .gl-br-cta-lede,
.gelinlik-body .gl-sss-cta-lede,
.gelinlik-body .gl-kr-cta-text,
.gelinlik-body .gl-krd-cta-lede,
.gelinlik-body .gl-section-lede,
.gelinlik-body [class*="-section-lede"],
.gelinlik-body [class*="-cta-lede"]{
    font-family: var(--font-sans);
    font-size: var(--ty-lede);
    font-weight: 300;
    font-style: normal;
    line-height: 1.55;
}

/* ---------------------------------------------------------------------------
   5. GÖVDE METNİ — 17px
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-atl-zone p,
.gelinlik-body .gl-atl-step-body p,
.gelinlik-body .gl-atl-measure-list li,
.gelinlik-body .gl-atl-checklist li,
.gelinlik-body .gl-atl-visit-sub,
.gelinlik-body .gl-hkk-vm-body,
.gelinlik-body .gl-hkk-value p,
.gelinlik-body .gl-hkk-founder-body,
.gelinlik-body .gl-hkk-manifesto-body,
.gelinlik-body .gl-kr-step-text,
.gelinlik-body .gl-kr-ft-desc,
/* ⚠️ 2026-08-05: bu listedeki iki seçici ÖLÜYDÜ — `.gl-kvk-sec-body` ve
   `.gl-sss-answer` hiçbir DOM öğesiyle eşleşmiyor (blade'deki gerçek sınıflar
   `.gl-kvk-section` ve `.gl-sss-a`). Bu yüzden KVK ve SSS gövde metni ölçeğe
   hiç bağlanmamış, yukarıdaki eski kuraldan 18px alıyordu. Doğrusu yazıldı.
   Yeni bir seçici eklerken blade'de gerçekten var olduğunu doğrula. */
.gelinlik-body .gl-kvk-section p,
.gelinlik-body .gl-kvk-bullet li,
.gelinlik-body .gl-br-pane p,
.gelinlik-body .gl-ilt-faq-body,
.gelinlik-body .gl-sss-a p,
.gelinlik-body .gl-editorial-right p,
.gelinlik-body .gl-appt p{
    font-size: var(--ty-body);
    line-height: var(--lh-body);
}

/* ---------------------------------------------------------------------------
   6. MİNİ BAŞLIKLAR (eyebrow)
   Hero eyebrow Cormorant kalır (marka sesi), bölüm eyebrow Jost.
   Serif olan cap-height farkı yüzünden 2px daha büyük — optik olarak eşit.
   --------------------------------------------------------------------------- */
/* 2026-08-05 — MİNİ BAŞLIKLAR TEK AİLEDE BİRLEŞTİRİLDİ.
   Öncesinde hero mini başlığı Cormorant (16px/500), bölüm mini başlığı Jost
   (14px/400) idi; aynı rol iki ayrı ailede, iki ayrı altındaydı. Artık ikisi de
   Cormorant + #c9a96e. Hero bir kademe büyük (18px), bölüm 16px.

   ⚠️ AĞIRLIK NEDEN 600: dosyanın başındaki 2. dayanak — Cormorant 400, Jost
   400'den %29 az mürekkep taşır (glif alanı 0.287 / 0.371). Buna .26–.3em harf
   aralığı ve koyu zeminde optik incelme eklenince 500 soluk kalıyordu.
   600 Google Fonts import'unda YÜKLÜ (Cormorant 300;400;500;600) — sahte kalın
   üretilmez. Daha yükseğine çıkarma, 700 kesimi çekilmiyor. */
.gelinlik-body [class*="-hero"] [class*="-eyebrow"]{
    font-family: var(--font-serif);
    font-size: var(--ty-eyebrow-hero);
    font-weight: 600;
    line-height: var(--lh-mini);
}
.gelinlik-body .gl-section-eyebrow,
.gelinlik-body .gl-atl-section-eyebrow,
.gelinlik-body .gl-hkk-section-eyebrow,
.gelinlik-body .gl-ilt-section-eyebrow,
.gelinlik-body .gl-br-section-eyebrow,
.gelinlik-body .gl-sss-section-eyebrow,
.gelinlik-body .gl-kr-eyebrow,
.gelinlik-body .gl-krd-section-eyebrow{
    font-family: var(--font-serif);
    font-size: var(--ty-eyebrow-serif);
    font-weight: 600;
    line-height: var(--lh-mini);
}
/* Bunlar mini BAŞLIK değil — sayfa alt başlığı ve ürün detaydaki kreasyon
   etiketi. Rolleri gövde/meta olduğu için Jost'ta kalırlar; yukarıdaki
   birleştirmenin dışındalar. */
.gelinlik-body .gl-page-subtitle,
.gelinlik-body .gl-ud-collection-tag{
    font-family: var(--font-sans);
    font-size: var(--ty-eyebrow-sans);
    font-weight: 400;
    line-height: var(--lh-mini);
}

/* ---------------------------------------------------------------------------
   7. BUTON / CTA — 14px, tek boyut
   Eskiden 9 / 10 / 11 / 12px ve dört ayrı ağırlık (300/400/500/600).
   ⚠️ Mobilde dokunulan tüm birincil butonlar 11px'ti ve hiç büyümüyordu.
   --------------------------------------------------------------------------- */
.gelinlik-body .btn-bridal,
.gelinlik-body .gl-hero-cta,
.gelinlik-body .gl-col-cta,
.gelinlik-body .gl-view-all a,
.gelinlik-body .gl-kr-all-link,
.gelinlik-body .gl-kr-sd-cta,
.gelinlik-body .gl-kr-ft-cta,
.gelinlik-body .gl-kr-intro-cta,
.gelinlik-body .gl-kr-vh-btn,
.gelinlik-body .gl-kr-cta-btn,
.gelinlik-body .gl-krd-view-all,
.gelinlik-body .gl-atl-cta-btn-primary,
.gelinlik-body .gl-atl-cta-btn-secondary,
.gelinlik-body .gl-atl-measure-link,
.gelinlik-body .gl-hkk-cta-btn,
.gelinlik-body .gl-ilt-map-link,
.gelinlik-body .gl-ilt-submit-label,
.gelinlik-body .gl-br-cta-btn-primary,
.gelinlik-body .gl-br-cta-btn-ghost,
.gelinlik-body .gl-br-unit-btn,
.gelinlik-body .gl-sss-cta-btn-primary,
.gelinlik-body .gl-sss-cta-btn-ghost,
.gelinlik-body .gl-kvk-cta-btn,
.gelinlik-body .gl-product-wa,
.gelinlik-body .gl-ud-btn-primary,
.gelinlik-body .gl-ud-btn-secondary,
.gelinlik-body .gl-cinematic-text a,
.gelinlik-body .gl-fav-clear,
.gelinlik-body .gl-kol-tab,
.gelinlik-body .gl-filter-toggle-btn,
.gelinlik-body .gl-fd-apply,
.gelinlik-body .gl-fd-reset{
    font-size: var(--ty-mini);
    font-weight: 400;
    line-height: var(--lh-mini);
}

/* ---------------------------------------------------------------------------
   8. META / ROZET / ETİKET — 12px taban
   Eskiden 9 / 10 / 10.5 / 11 / 12px. En küçük boyutla en ince ağırlık
   (9px + w300) yedi yerde birleşiyordu — okunmuyordu.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-product-badge,
.gelinlik-body .gl-product-kod,
.gelinlik-body .gl-product-kreasyon,
.gelinlik-body .gl-krd-piece-tag,
.gelinlik-body .gl-atl-visit-tag,
.gelinlik-body .gl-atl-step-meta,
.gelinlik-body .gl-atl-jb-no,
.gelinlik-body .gl-kr-note-label,
.gelinlik-body .gl-kr-sd-season,
.gelinlik-body .gl-kvk-cookie-badge,
.gelinlik-body .gl-kvk-cookie-badge-req,
.gelinlik-body .gl-kvk-cookie-badge-fn,
.gelinlik-body .gl-hkk-founder-cap,
.gelinlik-body .gl-fav-count,
.gelinlik-body .gl-kol-count,
.gelinlik-body .gl-search-sugg-title,
.gelinlik-body .gl-search-tag,
.gelinlik-body .gl-ilt-label,
.gelinlik-body .gl-ilt-opt,
.gelinlik-body .gl-sss-search-label,
.gelinlik-body .gl-br-size-pill,
.gelinlik-body .gelinlik-body th,
.gelinlik-body table th{
    font-size: var(--ty-micro);
    line-height: var(--lh-mini);
}
/* Rozetler küçük olduğu için ağırlıkla ayrışır, boyutla değil */
.gelinlik-body .gl-product-badge,
.gelinlik-body .gl-krd-piece-tag,
.gelinlik-body .gl-kvk-cookie-badge,
.gelinlik-body .gl-atl-visit-tag{ font-weight: 500; }

/* ---------------------------------------------------------------------------
   9. DEKORATİF SAYILAR
   --------------------------------------------------------------------------- */

/* EDİTÖRYAL YIL RAKAMI (anasayfa "Hikayemiz" bloğu) — 2026-08-05
   Rol: ZEMİN KATMANI (filigran). Okuma sırası eyebrow → h2 → p bozulmadan
   bloğa derinlik verir.

   ⚠️ SEÇİCİ (0,3,0) OLMAK ZORUNDA. Eskiden `.gelinlik-body .gl-editorial-number`
   (0,2,0) yazılıydı ve §12'deki `.gelinlik-body .gl-editorial-right > span`
   (0,2,1) onu SESSİZCE eziyordu: rakam sayfada 14px/lh 19.6px basılıyordu,
   yani bu bölümün tamamı yıllarca ölü kuraldı. `> span` listesinden
   `.gl-editorial-right` çıkarıldı ama seçici yine de (0,3,0) tutuluyor —
   ileride o listeye geri eklenirse aynı hata tekrarlanmasın.

   ⚠️ 192px, h1 tavanından (78px) BÜYÜK. Eski yorum "dekoratif öğe h1'i
   geçmemeli" diyordu; bilinçli olarak terk edildi:
     · h1 bu kompozisyonda yok — aynı blokta yarışan öğe h2 (48px).
     · Dikkat ağırlığı boyut × kontrast: 192px @ 1.44:1 zemin katmanıdır,
       48px @ 9.4:1 başlıktan daha az dikkat çeker.
     · 1.5–2.5× bandı "yanlış boyutlanmış başlık" gibi okunur; 4.0× o bandın
       dışında, açıkça dekoratif.
   Yerine geçen kural: dekoratif sayı başlıktan büyük olabilir — koşul (i)
   kontrast 2:1 altında, (ii) başlığın ≥3 katı, (iii) `aria-hidden`.

   Alfa ayar aralığı 0.14 (1.28:1) – 0.28 (1.66:1); 0.20 = 1.44:1.
   margin-bottom em bazlı — punto ile birlikte oynar. Aralık −0.12em (temas)
   … −0.22em (belirgin tuck). Daha derini altın-üstü-altın çamuru yapar. */
.gelinlik-body .gl-editorial-right > .gl-editorial-number{
    font-family: var(--font-serif);
    font-size: clamp(5rem, 3rem + 10vw, 12rem);   /* 80 → 192px · oran 2.40 ≤ 2.5 (WCAG 1.4.4) */
    font-weight: 300;                             /* ölçek kuralı: ≥40px → 300 */
    font-style: normal;                           /* h2 italik — yıl bilerek roman, tek ailede iki ses */
    line-height: 0.85;
    letter-spacing: 0.02em;
    color: rgba(201,169,110,0.20);
    margin-bottom: -0.18em;
    display: block;
    user-select: none;                            /* kopyalanan metne karışmasın */
}
.gelinlik-body .gl-atl-step-no,
.gelinlik-body .gl-atl-zone-no,
.gelinlik-body .gl-hkk-value-no{ font-size: clamp(1.375rem, 1.161rem + 1.07vw, 2.5rem); }

/* ---------------------------------------------------------------------------
   10. SATIR UZUNLUĞU
   Kaynak uyumu 55–75 karakter (Bringhurst 45–75, Butterick 45–90, Baymard 50–75).
   Jost 17px'te 38rem ≈ 68 karakter.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-atl-section-lede,
.gelinlik-body .gl-hkk-section-lede,
.gelinlik-body .gl-ilt-section-lede,
.gelinlik-body .gl-br-pane-lede,
.gelinlik-body .gl-kvk-sec-body p,
.gelinlik-body .gl-hkk-manifesto-body{ max-width: 38rem; }

/* ---------------------------------------------------------------------------
   11. HEADER / FOOTER — ölçeğe bağlanmamış son adacıklar
   Footer 12 sayfada tutarlıydı ama kendi değerlerini kullanıyordu
   (h4 11.5px · link 13px · lede 15.84px). Dil seçici 10px'te kalmıştı —
   sitedeki en küçük metinlerden biri.
   --------------------------------------------------------------------------- */
.gelinlik-body .bridal-footer-col h4,
.gelinlik-body .gl-pd-title{
    font-size: var(--ty-eyebrow-sans);
    line-height: var(--lh-mini);
    font-weight: 500;
}
.gelinlik-body .bridal-footer-col a,
.gelinlik-body .bridal-footer-col li a,
.gelinlik-body .gl-pd-links li a,
.gelinlik-body .bridal-footer-bottom p,
.gelinlik-body .gl-header-nav .bridal-nav a,
.gelinlik-body .bridal-nav a,
.gelinlik-body .gl-dropdown li a,
.gelinlik-body .gl-search-label,
.gelinlik-body .gl-nav-appt,
.gelinlik-body .gl-header-appt{
    font-size: var(--ty-mini);
    line-height: var(--lh-mini);
}
.gelinlik-body .bridal-footer-brand p,
.gelinlik-body .gl-pd-sub{
    font-size: var(--ty-body);
    line-height: var(--lh-body);
}
/* Dil seçici: eskiden 9 / 9.5 / 10 / 10.5 / 11px arasında beş değere dağılmıştı */
.gelinlik-body .gl-lang-current-code,
.gelinlik-body .gl-lang-trigger,
.gelinlik-body .gl-lang-menu button,
.gelinlik-body .gl-lang-menu button .gl-lang-name{
    font-size: var(--ty-micro);
    line-height: var(--lh-mini);
}

/* Liste içi vurgu başlıkları — Cormorant 24px altında 500 ağırlık ister */
.gelinlik-body .gl-atl-measure-list li strong,
.gelinlik-body .gl-atl-checklist li strong,
.gelinlik-body .gl-kvk-sec-body li strong{ font-weight: 500; }

/* Hero açıklaması — `.gl-atl-hero-aside .gl-atl-hero-lede` (0,2,0) ölçek kuralını
   yendiği için burada aynı özgüllükle yakalanıyor. */
.gelinlik-body [class*="-hero"] [class*="-lede"],
.gelinlik-body .gl-atl-hero-aside .gl-atl-hero-lede{
    font-size: var(--ty-lede);
    line-height: 1.5;
}
/* Dil menüsü: açılır listedeki butonlar custom.css'te !important ile 10px'e
   sabitlenmişti — ölçeğin altında kalan son öğelerdi. */
.gelinlik-body .gl-lang-menu li button,
.gelinlik-body .gl-lang-menu li button .gl-lang-code,
.gelinlik-body #gl-lang-mob-header .gl-lang-menu li button{
    font-size: var(--ty-micro) !important;
    line-height: var(--lh-mini);
}

/* ---------------------------------------------------------------------------
   12. ANASAYFA — sınıfsız başlıklar
   Anasayfadaki editöryal/sinematik/randevu blokları başlıklarına sınıf vermiyor;
   ölçek onları yakalayamıyordu. Sonuç: tek sayfada 47.9 / 52 / 60 / 64 / 88px
   olmak üzere beş ayrı h2 boyu vardı.
   --------------------------------------------------------------------------- */
/* Editöryal ve sinematik başlıklar italik — 2026-08-05.
   Kart 2 (.gl-cinematic-text h2) custom.css'te zaten italikti, editöryal
   değildi; ikisi tek sese getirildi. Yıl rakamı bilerek roman kalır.
   ⚠️ Bu kural AYRI tutulur: aşağıdaki paylaşımlı listeye `font-style`
   yazılırsa anasayfanın TÜM h2'leri (lookbook, hikaye, instagram, section > h2)
   italikleşir.
   ⚠️ Cormorant italik yalnız 300/400/500 yüklü — 600 YOK. Bu kuralın kapsamına
   weight 600 taşıyan bir öğe (ör. .gl-section-eyebrow) sokulursa tarayıcı
   sahte italik üretir. Buradaki h2'ler 400. */
.gelinlik-body .gl-editorial-right h2,
.gelinlik-body .gl-cinematic-text h2{
    font-style: italic;
}
.gelinlik-body .gl-editorial-right h2,
.gelinlik-body .gl-cinematic-text h2,
.gelinlik-body .gl-appt h2,
.gelinlik-body .gl-lookbook h2,
.gelinlik-body .gl-hikaye h2,
.gelinlik-body .gl-instagram h2,
.gelinlik-body section > h2{
    font-size: var(--ty-h2);
    line-height: var(--lh-h2);
    font-weight: 400;
}
/* Kart 2 ve defile bandının mini başlıkları blade'de SINIFSIZ `<span>` —
   `.gl-section-eyebrow` sınıfı taşımadıkları için 2026-08-05 Cormorant
   birleştirmesi onları ilk turda atlamıştı ve anasayfada yan yana iki farklı
   mini başlık stili çıkıyordu (Jost 14px / Cormorant 20px). Sınıfı blade'e
   eklemek yerine seçiciyle çözüldü: eyebrow metni panelden yönetiliyor,
   blade'deki yapı değişmiyor.
   ⚠️ `.gl-editorial-right > span` bilerek bu listede YOK — o kapsayıcıdaki iki
   span'in ikisi de (dekoratif yıl + .gl-section-eyebrow) kendi kuralına sahip.
   Listede kalsaydı §9'daki yıl rakamını ezmeye devam ederdi (bkz. §9 notu). */
.gelinlik-body .gl-cinematic-text > span,
.gelinlik-body .gl-appt > span{
    font-family: var(--font-serif);
    font-size: var(--ty-eyebrow-serif);
    font-weight: 600;
    line-height: var(--lh-mini);
}
.gelinlik-body .gl-editorial-right .gl-section-eyebrow{
    font-size: var(--ty-eyebrow-serif);
    line-height: var(--lh-mini);
    /* Tema (gelinlik-theme.css) tüm .gl-section-eyebrow'lara
       `display:flex !important; justify-content:center` veriyor — mini başlığın
       iki yanına ince çizgi koymak için. `.gl-eyebrow-plain` o çizgileri
       kaldırıyor ama ORTALAMAYI kaldırmıyor. Bu blokta yıl, başlık, paragraf ve
       buton sola hizalı; ortada duran tek öğe mini başlıktı. 14px'lik yıl
       rakamıyla fark edilmiyordu, 192px'e çıkınca rakamın son hanesiyle
       çakıştı. Sola alınıyor — `display:flex`e dokunulmuyor (o !important). */
    justify-content: flex-start;
}
.gelinlik-body .gl-editorial-right p,
.gelinlik-body .gl-cinematic-text p,
.gelinlik-body .gl-appt p{
    font-size: var(--ty-body);
    line-height: var(--lh-body);
}

/* Kreasyonlar sayfasının kendi mini öğeleri — ölçek dışında kalmışlardı */
.gelinlik-body .gl-kr-timeline-title,
.gelinlik-body .gl-kr-timeline-year,
.gelinlik-body .gl-kr-ft-stats li,
.gelinlik-body .gl-kr-intro-tag,
.gelinlik-body .gl-kr-note-label{
    font-size: var(--ty-micro);
    line-height: var(--lh-mini);
}

/* ---------------------------------------------------------------------------
   13. HAKKIMIZDA / KVK / BEDEN REHBERİ — sayfaya özel mini öğeler
   Bu üç sayfa kendi isim uzayını kullandığı için ölçek dışında kalmışlardı:
   istatistik etiketleri 10px, KVK bölüm numaraları ve tanım listesi 10–11px,
   birim etiketi 10.5px.
   --------------------------------------------------------------------------- */
.gelinlik-body .gl-hkk-stat span,
.gelinlik-body .gl-hkk-stat p,
.gelinlik-body .gl-hkk-stats-grid span,
.gelinlik-body .gl-kvk-toc-title,
.gelinlik-body .gl-kvk-toc-pdf,
.gelinlik-body .gl-kvk-toc-link,
.gelinlik-body .gl-kvk-sec-num,
.gelinlik-body .gl-kvk-info-row dt,
.gelinlik-body .gl-kvk-basvuru dt,
.gelinlik-body .gl-br-table small,
.gelinlik-body .gelinlik-body small,
.gelinlik-body td small,
.gelinlik-body th small{
    font-size: var(--ty-micro);
    line-height: var(--lh-mini);
}
.gelinlik-body .gl-kvk-bottom-btn-primary,
.gelinlik-body .gl-kvk-bottom-btn-ghost,
.gelinlik-body .gl-br-unit-toggle button{
    font-size: var(--ty-mini);
    line-height: var(--lh-mini);
}

/* İletişim bilgi kartlarının başlıkları 10px'ti — gövde metninden (17px) küçük,
   sitedeki en ağır hiyerarşi kırılmalarından biri. */
.gelinlik-body .gl-ilt-info-body h3,
.gelinlik-body .gl-ilt-info-item h3{
    font-size: var(--ty-mini);
    line-height: var(--lh-mini);
    font-weight: 500;
}
.gelinlik-body .gl-sss-cta-btn-secondary,
.gelinlik-body .gl-ilt-check-text,
.gelinlik-body .gl-ilt-err{
    font-size: var(--ty-mini);
    line-height: var(--lh-mini);
}

/* İletişim sayfasındaki parantezli açıklamalar — <small> etiketi */
.gelinlik-body small,
.gelinlik-body .gl-ilt-form small,
.gelinlik-body .gl-ilt-info-body small{
    font-size: var(--ty-micro);
    line-height: var(--lh-mini);
}

/* Son iki adacık: KVK başvuru yolları tablosu ve beğenilenler boş durum metni */
.gelinlik-body .gl-kvk-basvuru li strong,
.gelinlik-body .gl-kvk-basvuru dt,
.gelinlik-body .gl-kvk-yol strong,
.gelinlik-body .gl-fav-empty p,
.gelinlik-body .gl-kol-empty p,
.gelinlik-body .gl-sepet-empty p{
    font-size: var(--ty-mini);
    line-height: var(--lh-body);
}

/* KVK başvuru kanalları — "E-posta / KEP Adresi / Posta / Web Formu" etiketleri */
.gelinlik-body .gl-kvk-channel strong,
.gelinlik-body .gl-kvk-channel span,
.gelinlik-body .gl-kvk-channel-grid strong{
    font-size: var(--ty-mini);
    line-height: var(--lh-mini);
}

/* ============================================================================
   SAYFA REFERANSI: KVK  —  2026-08-05
   ----------------------------------------------------------------------------
   Kullanıcı kararı: /tr/kvk sayfasının tipografisi ölçüt kabul edildi, diğer
   sayfalar ona hizalanıyor. Ölçülen referans değerler (1440px):

     hero mini başlık  22px   Cormorant 600  #c9a96e
     hero başlık       78px   Cormorant 300  #f0e8dc
     hero açıklama     22px   Jost 300 italic  #f0e8dc
     bölüm başlığı     48px   Cormorant 400  #f0e8dc
     gövde             17px   Jost 300       #dcd5ca
     alt başlık        18px   Cormorant 400  #f0e8dc
     tablo             14px   Jost 300       #dcd5ca

   Mini başlık ve hero başlığı zaten tüm sayfalarda aynıydı; aşağıdaki kurallar
   yalnızca SAPAN üç rolü hizalar. Bu blok dosyanın sonunda: hem custom.css'i hem
   yukarıdaki tipografi ölçeğini bilinçli olarak ezer.

   ⚠️ JOST'UN İTALİK KESİMİ YÜKLENMİYOR (@import: wght@300;400;500;600;700 —
   italik yok). Yani hero açıklamasındaki italik SENTETİKTİR; tarayıcı harfleri
   eğerek taklit üretir, gerçek italik çiziminin inceliği olmaz. Bu durum
   kullanıcıya bildirildi ve referansın korunmasına karar verildi. Gerçek italik
   isteniyorsa iki yol var: (a) @import'a `ital,wght@1,300` eklemek,
   (b) aileyi var(--font-serif) yapmak (Cormorant italik 300/400/500 YÜKLÜ).
   ============================================================================ */

/* 1 — Hero açıklaması. Sapanlar: Atölye/Koleksiyonlar (Cormorant 500 #e8e0d4),
   Kreasyonlar (Cormorant 300 #e8e0d4), Hakkımızda (Jost ama düz). */
.gelinlik-body [class*="-hero"] [class*="-lede"],
.gelinlik-body .gl-kr-vh-lede{
    font-family: var(--font-sans);
    font-weight: 300;
    font-style: italic;
    color: #f0e8dc;
}
/* ⚠️ Fotoğraf üstü hero'ların okunurluk katmanı KORUNUR. `.gl-hero-okunakli`
   (Atölye ve Koleksiyonlar blade'lerinde) açıklamayı bilerek daha parlak
   basıyor; yukarıdaki kural (0,3,0) onu ezerdi. Bu satır aynı özgüllükte ama
   sonra geldiği için kazanır — silinirse o iki sayfada metin fotoğraf üstünde
   soluklaşır. */
.gelinlik-body .gl-hero-okunakli [class*="-lede"]{
    color: rgba(252, 249, 244, .97);
}

/* KONTRAST DÜZELTMESİ — 2026-08-05 palet birleştirmesinin yan etkisi.
   "Filtrele" düğmesi rgba(255,255,255,.45) iken 4.43:1 ile eşiğin (4.5) hemen
   altındaydı; krem tabanı beyazdan koyu olduğu için çevrim sonrası 3.93:1'e
   düştü. Alfa .52'ye çekilerek 4.87:1'e çıkarıldı — hover değeri (.85) aynı
   kalıyor, yani etkileşim geri bildirimi korunuyor. */
.gelinlik-body .gl-filter-toggle-btn{
    color: rgba(240, 232, 220, .52);
}

/* 2 — Bölüm başlığı rengi. Atölye (.gl-atl-section-title) ve Kreasyonlar
   (.gl-kr-section-sub) #f5e3b8 (altınımsı) kullanıyordu; referans krem. */
.gelinlik-body .gl-atl-section-title,
.gelinlik-body .gl-kr-section-sub{
    color: #f0e8dc;
}

/* 3 — Hakkımızda: yalnızca hero açıklaması sapıyordu (düzdü), yukarıdaki
   1. kural onu italiğe çevirdi.

   ⚠️ "Bölüm başlığı italik" diye bir sapma YOK — ilk ölçüm `section h2`
   seçicisiyle sayfanın ilk h2'sini almış, o da `.gl-hkk-manifesto-quote`
   çıkmıştı: bir ALINTI, başlık değil. İtalik olması kasıtlı, dokunulmuyor.
   Gerçek bölüm başlıkları `.gl-hkk-section-title` ve `.gl-hkk-founder-title`
   ve ikisi de zaten referansa uygun (48px · Cormorant 400 · düz · #f0e8dc).
   Buraya `font-style:normal` yazılsaydı alıntıyı bozmadan hiçbir işe yaramayan
   ölü bir kural olurdu. */

/* =============================================================================
   EL YAZISI BAŞLIK SİSTEMİ — Alex Brush            (2026-08-17)
   =============================================================================
   Kural: SİTE GENELİ. Büyük başlıklar (hero + bölüm başlıkları/h2 + motto)
   el yazısı; ürün adı/kart başlığı (h3), gövde, menü, buton DEĞİŞMEZ.

   Aile `gelinlik-theme.css` → --font-script (@import'a Alex Brush eklendi).

   ⚠️ Script fontta ZORUNLU üç sıfırlama — biri unutulursa harfler bozulur:
      1) text-transform:none  → büyük harfte bağlantı çizgileri kopar, okunmaz
      2) letter-spacing:0     → tracking el yazısının bağlarını fiziksel olarak kırar
      3) font-style:normal    → Alex Brush'ın italik kesimi YOK; italik istenirse
                                tarayıcı sahte italik (synthetic oblique) üretir
   ⚠️ Boyut: Alex Brush'ın gövdesi Cormorant'tan dar ve ince görünür; aynı px'te
      küçük durur. Bu yüzden clamp değerleri Cormorant karşılıklarından ~%40 büyük.
      Tüm clamp'ler CLAUDE.md'deki 320→1440px formülünden türetildi.
   ============================================================================= */

/* --- 1. Hero başlığı ---
   ⚠️ ÖZGÜLLÜK: satır ~1886'daki `.gelinlik-body [class*="-hero"] [class*="-title"]`
   (0,3,0) ağırlığında. Hero `section.bridal-hero` içinde ve başlık `gl-hero-title`,
   yani ikisine de uyuyor. Düz `.gelinlik-body .gl-hero-title` (0,2,0) ona YENİLİR —
   font-family geçer ama font-weight/line-height sessizce eski değerde kalır.
   Bu yüzden burada da (0,3,0) kullanılıyor; dosyada sonra geldiği için kazanır.

   KAPSAM (2026-08-17): SİTE GENELİ — referans ANASAYFA HERO'su. Öncesinde diğer
   sayfaların hero başlıkları `var(--ty-h1)` ile 78px Cormorant'ta kalıyordu,
   anasayfa ise 104px script'e çıkmıştı; iki ayrı hero ölçüsü vardı.
   `[class*="-hero"] [class*="-title"]` deseni 8 hero sınıfını birden yakalar
   (atl/hkk/ilt/br/sss/kvk + anasayfa) ve yeni hero eklenince kendiliğinden kapsar. */
.gelinlik-body [class*="-hero"] .gl-hero-title,
.gelinlik-body [class*="-hero"] [class*="-title"],
.gelinlik-body .gl-page-title,
.gelinlik-body .gl-kr-vh-title,
.gelinlik-body .gl-krd-title{
    font-family: var(--font-script);
    font-weight: 400;
    font-style: normal;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.14;
    font-size: var(--ty-h1);           /* 2026-10-06: clamp(52px,7vw,104px) ölçek dışıydı */
}
/* 2026-10-06 — "hero en fazla 2 satır" kuralı La Obrige ile.
   La Obrige geniş bir yüz; Atölye/Koleksiyonlar hero'su iki sütunlu (başlık
   sütunu viewport'un ~%44'ü), Hakkımızda/Beden Rehberi'nde metin uzun. Masaüstünde
   başlık 4.8vw'yi geçmez: 1440px'te 69px, 1024px'te 49px. Ölçüldü: 9 sayfa ×
   1440/1200/1024 hepsi 2 satır.
   ⚠️ container query (cqi) DENENDİ, BIRAKILDI: h1'in ebeveyni birçok hero'da
   içeriğe göre boyutlanıyor; container-type o kutuyu 0 genişliğe çökertip
   başlığı yok etti (kreasyonlar, iletişim, sss, kvk, beden rehberi). */
@media (min-width: 992px){
    .gelinlik-body [class*="-hero"] .gl-hero-title,
    .gelinlik-body [class*="-hero"] [class*="-title"],
    .gelinlik-body .gl-page-title,
    .gelinlik-body .gl-kr-vh-title,
    .gelinlik-body .gl-krd-title{
        font-size: min(var(--ty-h1), 4.8vw);
    }
}

/* Diğer sayfaların hero ÜST BAŞLIĞI da anasayfayla eşitlenir (21.9px → 24px).
   Aynı (0,3,0) + !important gerekçesi için bkz. aşağıdaki 4. madde. */
.gelinlik-body [class*="-hero"] [class*="-eyebrow"]{
    font-family: var(--font-serif);
    font-size: var(--ty-eyebrow-hero) !important;   /* 2026-10-06: sabit 24px'ti */
    font-weight: 600;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: .26em;
    line-height: 1.4;
    color: #c9a96e;
}

/* --- 2. Tüm bölüm başlıkları (h2) — site geneli ---
   İSTİSNALAR (üçü de markup'ta h2 ama BAŞLIK DEĞİL — script'e girmezler):
   · .gl-kvk-sec-title      → KVK'nın hukuki bölüm başlıkları; taranarak okunan
                              yasal metin, el yazısı hem okunurluğu hem tonu bozar
   · .gl-kr-section-sub     → bölüm ALT AÇIKLAMASI (lede); script'te 5 satırlık
                              dev blok oluyordu (2026-08-17'de görüldü)
   · .gl-hkk-manifesto-quote→ italik Cormorant ALINTI; Alex Brush'ın italiği yok,
                              kural font-style:normal dayatıp alıntıyı düzleştiriyordu */
.gelinlik-body h2:not(.gl-kvk-sec-title):not(.gl-kr-section-sub):not(.gl-hkk-manifesto-quote),
.gelinlik-body .gl-section-title,
.gelinlik-body .gl-cinematic-text h2{
    font-family: var(--font-script);
    font-weight: 400;
    font-style: normal;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.24;
    font-size: var(--ty-h2);           /* 2026-10-06: clamp(40px,4.8vw,68px) ölçek dışıydı */
}

/* --- 3. Anasayfa motto'su ---
   Kaynağında uppercase + 3px tracking vardı; ikisi de yukarıdaki 1-2 numaralı
   sebeplerle sıfırlanmak zorunda. */
.gelinlik-body .gl-motto p{
    font-family: var(--font-script);
    font-weight: 400;
    font-style: normal;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.30;
    font-size: clamp(1.75rem, 1.4643rem + 1.4286vw, 2.75rem);   /* 28 → 44px — h3 ile h2 arası */
}

/* --- 4. Üst başlıklar (eyebrow) tek tip ---
   Üçü üç ayrı değerdeydi: hero 21.9px/altın · bölüm 20px/altın · defile 20px/BEYAZ.
   Referans "2026 Kreasyonları" alınıp üçü de aynı font/renk/boyuta çekildi.
   Bunlar Cormorant'ta KALIR — uppercase + geniş tracking istiyorlar, script bunu
   kaldırmaz (bkz. yukarıdaki 1-2 numaralı sıfırlamalar).

   ⚠️ ÖZGÜLLÜK + !important: satır ~1016'daki
   `.gelinlik-body [class*="-hero"] [class*="-eyebrow"]` hem (0,3,0) hem de
   `font-size: var(--ty-eyebrow-hero) !important` taşıyor. Hero eyebrow'u eşitlemek
   için burada da (0,3,0) + `!important` şart; aksi halde hero'daki üst başlık
   diğer ikisiyle aynı boyuta GELMEZ (24px yerine ~18px'te kalır). */
.gelinlik-body [class*="-hero"] .gl-hero-eyebrow,
.gelinlik-body .gl-section-eyebrow,
.gelinlik-body .gl-cinematic-text > span:first-child{
    font-family: var(--font-serif);
    font-size: var(--ty-eyebrow-hero) !important;   /* 2026-10-06: sabit 24px'ti */
    font-weight: 600;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: .26em;
    line-height: 1.4;
    color: #c9a96e;
}

/* --- 5. Okunabilirlik — script ince gövde için ZORUNLU ---
   Alex Brush'ın strokeları Cormorant'tan belirgin ince. Hero/defile videolarının
   parlak karelerinde başlık kayboluyordu.
   ⚠️ Hero scrim'i yeniden hizalandı: eski gradyan 0%:.30 → 40%:.10 → 100%:.55 idi,
   yani EN KOYU noktası metnin ALTINDA kalıyordu. Başlık %64–89 bandında duruyor;
   koyu bant oraya taşındı. Bu duraklara dokunmadan script font hero'da okunmaz. */
.bridal-hero-overlay{
    background: linear-gradient(180deg,
        rgba(0,0,0,.34) 0%,
        rgba(0,0,0,.14) 34%,
        rgba(0,0,0,.52) 62%,
        rgba(0,0,0,.72) 100%);
}
.gl-cinematic-overlay{
    background: linear-gradient(100deg,
        rgba(0,0,0,.66) 0%,
        rgba(0,0,0,.42) 42%,
        rgba(0,0,0,.08) 78%,
        rgba(0,0,0,0) 100%);
}
.gelinlik-body [class*="-hero"] .gl-hero-title,
.gelinlik-body [class*="-hero"] .gl-hero-eyebrow,
.gelinlik-body .gl-cinematic-text > span:first-child,
.gelinlik-body .gl-cinematic-text h2{
    text-shadow: 0 1px 3px rgba(0,0,0,.5), 0 6px 26px rgba(0,0,0,.55);
}

/* =============================================================================
   TASARIMCI NOTLARI — GENİŞ YERLEŞİM                (2026-08-17)
   =============================================================================
   Eski hâli: her not dikey ortalanmış dar bir sütundu (görsel 600px + altında
   600px alıntı, hepsi ortada). Kullanıcı geri bildirimi: "alan genişlesin,
   alt alta çok karışık". Yeni: masaüstünde görsel SOL + alıntı SAĞ, notes-list
   genişliğinin tamamı kullanılır; mobilde alt alta düşer.
   Bu stiller eskiden blade'de inline'dı (kreasyonlar.blade.php) — inline stil
   CSS'ten ezilemediği için buraya taşındı. Blade'e inline stil GERİ EKLEME. */
.gl-kr-note-single{
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 26px;
    margin-bottom: 72px;
}
.gl-kr-note-image{
    position: relative;
    display: block;
    width: 100%;
    max-width: 600px;
}
.gl-kr-note-image img{
    width: 100%;
    border-radius: 4px;
}
.gl-kr-note-single .gl-kr-note-label{
    position: absolute;
    bottom: 20px;
    left: 20px;
}
.gl-kr-note-quote{
    max-width: 640px;
    border-left: 2px solid rgba(201, 169, 110, .55);   /* beyazdı; site aksanına çekildi */
    padding-left: 24px;
    text-align: left;                                  /* alıntı ortalanmaz, okunmaz */
    margin: 0;
}
.gl-kr-note-quote p{
    font-family: var(--font-serif);
    font-style: italic;            /* Cormorant italik kesimi YÜKLÜ (ital,wght@1,300..500) */
    color: #eaeaea;
    margin-bottom: 10px;
    /* boyut tipografi ölçeğinden gelir (yukarıdaki --ty-lede grubu) */
}
.gl-kr-note-quote cite{
    color: #c9a96e;
    font-size: var(--ty-mini, 14px);
    font-style: normal;
}
@media (min-width: 992px){
    .gl-kr-note-single{
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 48px;
        margin-bottom: 96px;
    }
    .gl-kr-note-image{
        flex: 0 0 46%;
        max-width: 460px;
    }
    .gl-kr-note-quote{
        flex: 1;
        max-width: none;           /* alan artık tam genişlik — istenen "genişleme" bu */
    }
}

/* =============================================================================
   HERO BAŞLIKLARI EN FAZLA 2 SATIR                  (2026-08-17)
   =============================================================================
   Kural: hero başlığı 3. satıra İNMEZ. İki mekanizma birlikte:
   1) `text-wrap: balance` — satırları eşit doldurur (tek uzun + tek kısa yerine
      iki dengeli satır), erken kırılmayı önler.
   2) Uzun başlıklar için akıllı küçülme: başlık kapsayıcıya sığmıyorsa clamp'in
      vw ayağı zaten küçültür; ek olarak hero metin kapsayıcılarının max-width'i
      açılır ki satır kırma alanı genişlesin. */
.gelinlik-body [class*="-hero"] .gl-hero-title,
.gelinlik-body [class*="-hero"] [class*="-title"],
.gelinlik-body .gl-kr-vh-title,
.gelinlik-body .gl-cinematic-text h2{
    text-wrap: balance;
}
/* Defile bandı başlığı ("Haliç Kongremerkezi…") 1440px'te bile 3 satıra iniyordu:
   metin kutusu bandın %50'siyle sınırlıydı. %64'e açıldı + script boyutu bir
   kademe düşürüldü (68 → 56px tavan); ikisi birlikte 2 satıra indiriyor. */
.gl-cinematic-text{
    max-width: 64%;
}
.gelinlik-body .gl-cinematic-text h2{
    font-size: var(--ty-h2);           /* 2026-10-06: clamp(36px,4vw,56px) ölçek dışıydı */
}
@media (max-width: 991px){
    .gl-cinematic-text{ max-width: 92%; }
}

/* Kreasyonlar bölüm başlığı kapsayıcısı: 720px'ti — Alex Brush 68px başlık
   bu darlıkta 2-3 dar satıra kırılıp "sayfayı kaplıyor" hissi veriyordu
   (2026-08-17 kullanıcı geri bildirimi: "sayfaya yay"). Script başlık nefes
   alsın diye genişletildi; alt açıklama (.gl-kr-section-sub) okunurluk için
   kendi dar ölçüsünde tutuluyor. */
.gelinlik-body .gl-kr-section-head{
    max-width: 1160px;
}
.gelinlik-body .gl-kr-section-head .gl-kr-section-sub{
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* .gl-kr-section-sub: markup'ta h2 ama rolü BÖLÜM ALT AÇIKLAMASI (lede).
   2026-08-05 ölçek pasosunda yanlışlıkla h2 grubuna (--ty-h2, 48px) girmişti;
   script başlık gelince altındaki 48px "açıklama" başlıkla yarışıyordu
   (2026-08-17 geri bildirimi). h2 grubundan çıkarıldı, lede ölçüsüne indirildi.
   İtalik, custom.css'teki özgün tasarımından geliyor — Cormorant italiği yüklü. */
.gelinlik-body .gl-kr-section-sub{
    font-size: var(--ty-lede);
    line-height: var(--lh-lede);
    font-weight: 400;
    font-style: italic;
    letter-spacing: 0.02em;
    color: rgba(240, 232, 220, 0.6);
}

/* =============================================================================
   BEDEN REHBERİ — ÖLÇÜ SİLÜETİ, ATÖLYE ÖLÇÜSÜNDE   (2026-08-17)
   =============================================================================
   custom.css'te silüet sütunu sabit 240px (padding sonrası görsel ~180px) —
   Atölye'deki aynı silüet `minmax(260px, 0.6fr)` ile ~450px+ basılıyor.
   Kullanıcı isteği: ikisi aynı boyutlansın. Referans: .gl-atl-measure-grid
   (custom.css ~8705). custom.css'e dokunulmaz (proje kuralı), ezme burada. */
.gelinlik-body .gl-br-measure{
    grid-template-columns: minmax(260px, 0.6fr) minmax(0, 1fr);
    /* Atölye'deki gibi dikeyde ortala — eski sticky üst hizada kalıp sol altta
       boşluk bırakıyordu; 4 adımlık kısa listede sticky zaten iş yapmıyor */
    align-items: center;
}
.gelinlik-body .gl-br-measure-figure{
    position: static;
}
@media (max-width: 992px){
    /* tek sütuna düşünce Atölye'yle aynı tavan (280 → 320px) */
    .gelinlik-body .gl-br-measure{ grid-template-columns: 1fr; }
    .gelinlik-body .gl-br-measure-figure{ max-width: 320px; }
}

/* =============================================================================
   KREASYONLAR — ZAMAN ÇİZELGESİ RAFİNESİ            (2026-08-17)
   =============================================================================
   custom.css/au-frontend'deki eski halin sorunları:
   · hover/active'te font-size 14→18px BÜYÜYORDU → her geçişte liste zıplıyor
     (yerleşim kayması = en belirgin "amatör" his; boyut yerine renk + 4px kayma)
   · yıllar italik, gri #888, noktayla optik hizasız
   · nokta dolu gri disk → pasif halde bile ağır duruyordu; çizgi üstünde içi boş
     halka (ring) pasif, dolu altın + halo aktif: durum farkı tek bakışta okunur
   Yıl rakamları Cormorant + tabular-nums: alt alta rakamlar sütun gibi hizalanır. */
.gelinlik-body .gl-kr-timeline-title{
    font-family: var(--font-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .3em;
    color: rgba(201, 169, 110, .85);
}
.gelinlik-body .gl-kr-timeline-nav li{
    margin-bottom: 44px;               /* 60px fazlaydı; ritim sıkılaştı */
}
.gelinlik-body .gl-kr-timeline-link{
    font-family: var(--font-serif);
    font-style: normal;                /* italik kalktı — rakamda italik özensiz durur */
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .06em;
    font-variant-numeric: tabular-nums;
    color: rgba(240, 232, 220, .45);
    transition: color .25s ease, transform .25s ease;
}
.gelinlik-body .gl-kr-timeline-link:hover,
.gelinlik-body .gl-kr-timeline-link.active{
    font-size: 16px;                   /* eski 18px büyümesini ezer — zıplama biter */
    color: var(--bridal-gold, #c9a96e);
    transform: translateX(4px);
}
/* pasif nokta: içi boş ince halka (bkz. custom.css'teki !important notu —
   şeffaflaştırma kuralını yenmek için aynı silahla eziliyor) */
.gelinlik-body .gl-kr-timeline-dot{
    width: 9px;
    height: 9px;
    left: -5px;
    background-color: transparent !important;
    border: 1px solid rgba(201, 169, 110, .45);
}
.gelinlik-body .gl-kr-timeline-link:hover .gl-kr-timeline-dot,
.gelinlik-body .gl-kr-timeline-link.active .gl-kr-timeline-dot{
    background-color: var(--bridal-gold, #c9a96e) !important;
    border-color: var(--bridal-gold, #c9a96e);
    box-shadow: 0 0 0 4px rgba(201, 169, 110, .15), 0 0 12px rgba(201, 169, 110, .45);
    transform: translateY(-50%) scale(1.15);
}
/* çizgi: tepede ve dipte yumuşak biten daha zarif bir iz */
.gl-kr-timeline::before{
    background: linear-gradient(to bottom,
        transparent 0%,
        rgba(201, 169, 110, .45) 8%,
        rgba(201, 169, 110, .45) 86%,
        transparent 100%);
}

/* =============================================================================
   ÜRÜN DETAY — ÜST BOŞLUK + TİPOGRAFİK DENGE       (2026-08-17)
   =============================================================================
   Üç kullanıcı geri bildirimi (gelinlik.test/tr/koleksiyonlar/{slug}):
   1) "Menü ile ürün başlığı çakışıyor" — header fixed 80px, .gl-ud-main'in üst
      dolgusu 24-40px'ti → koleksiyon etiketi menünün ARKASINDA kalıyordu
      (ölçüldü: etiket üst kenarı y<80). Dolguya header payı eklendi.
   2) "Ürün adı çok büyük" — ölçek grubu --ty-h1 (78px tavan) veriyordu; ürün
      sayfası hero değil, ürün adı vitrin başlığı gibi bağırmamalı → 56px tavan.
   3) "Diğer metinler biraz büyümeli" — 12px'lik ref/etiket/spec dengesizdi;
      birer kademe yukarı (12→13, 14→15, 17→18). 12px alt sınırın altına inen yok. */
.gelinlik-body .gl-ud-main{
    padding-top: calc(var(--header-h, 80px) + clamp(28px, 4vw, 48px));
}
.gelinlik-body .gl-ud-name{
    font-size: clamp(1.75rem, 1.4643rem + 1.4286vw, 2.75rem);   /* 28 → 44px (2026-10-06: 56 "çok büyük") */
    line-height: 1.1;
}
.gelinlik-body .gl-ud-desc{
    font-size: var(--ty-body);
    line-height: 1.7;
}
.gelinlik-body .gl-ud-collection-tag{ font-size: 17px; }   /* 15'ti — 2026-10-06 "biraz artsın" */
.gelinlik-body .gl-ud-ref{ font-size: 16px; }   /* 14'tü — 2026-10-06 "okunmuyor" */
.gelinlik-body .gl-ud-price-note{ font-size: 13px; }
/* 2026-10-06 — detay satırı: başlık La Obrige (başlık rolü), değer açıklamayla
   aynı font/renk/boyut. Ş/İ gibi La Obrige'de olmayan harfler unicode-range ile
   Caslon'dan gelir (bkz. gelinlik-theme.css @font-face). */
.gelinlik-body .gl-ud-spec-label{
    font-family: var(--font-serif);
    font-size: 15px;
    letter-spacing: .12em;
    color: #c9a96e;                       /* .55 krem silik kalıyordu — altın aksan */
    /* "Bold olsun": La Obrige tek kesim, font-synthesis kapalı → kalınlık ince
       konturla verilir (sahte bold'dan kontrollü, harfleri bulaştırmaz). */
    -webkit-text-stroke: .4px currentColor;
}
.gelinlik-body .gl-ud-spec-val{
    font-family: var(--font-sans);
    font-size: var(--ty-body);
    color: rgba(240, 232, 220, .82);   /* .gl-ud-desc ile aynı */
    letter-spacing: normal;
}


/* =============================================================================
   SAHTE KALIN / İTALİK KAPALI                        (2026-10-06)
   =============================================================================
   La Obrige ve Libre Caslon Display TEK kesim (Regular). Sitede yüzlerce
   font-weight 500/600 ve font-style:italic bildirimi var; açık kalsa tarayıcı
   harfleri yapay kalınlaştırıp eğerek bulaştırırdı. Kapatıldığında bu
   bildirimler düz basılır. Yeni bir kalın/italik isteniyorsa önce o kesimi
   @font-face ile yükle, sonra bu kuralı daralt. */
body{
    font-synthesis: none;
}

/* =============================================================================
   TÜM HERO'LAR TAM EKRAN                             (2026-10-06)
   =============================================================================
   Kullanıcı kararı: tüm sayfa hero'ları anasayfa video hero'su kadar — ekranın
   tamamı. Anasayfa `.bridal-hero` 100svh kullanıyor (gelinlik-theme.css, iOS
   adres çubuğu düzeltmesi); aynı birim. svh desteklemeyen tarayıcı ilk satırdaki
   100vh'de kalır. Kreasyonlar `.gl-kr-video-hero` zaten 100vh — listede yok.
   Önceki yükseklikler: atl 70vh (Atölye + Koleksiyonlar) · hkk 92dvh ·
   ilt 60dvh · br/sss 56dvh · kvk 58dvh · page-hero 70vh (Beğenilenler, Arama).
   ⚠️ min-height kullanılır, height DEĞİL: kısa ekranda (yatay telefon) uzun
   başlık + açıklama sığmazsa hero uzar, içerik kesilmez.
   ⚠️ Özgüllük (0,2,0): custom.css'teki mobil `@media` kuralları (ör.
   `.gl-atl-hero{min-height:60vh}`, `.gl-hkk-hero{min-height:auto}`) (0,1,0)
   — yenilir. `.gl-page-hero` au-frontend.css başında `70vh !important`
   taşıdığı için burada da !important şart. */
.gelinlik-body .gl-atl-hero,
.gelinlik-body .gl-hkk-hero,
.gelinlik-body .gl-ilt-hero,
.gelinlik-body .gl-br-hero,
.gelinlik-body .gl-sss-hero,
.gelinlik-body .gl-kvk-hero{
    min-height: 100vh;
    min-height: 100svh;
}
.gelinlik-body .gl-page-hero{
    min-height: 100vh !important;
    min-height: 100svh !important;
}


/* =============================================================================
   ÜRÜN DETAY — MOBİLDE GALERİ YAPIŞMASIN            (2026-10-06)
   =============================================================================
   custom.css galeriye position:sticky veriyor; iki sütunda doğru (resim yanda
   durur, metin akar). ≤991px'te grid tek sütuna düşünce sticky açık kalıyordu
   → resim tepeye yapışıyor, yazılar üstünden kayıyordu. Tek sütunda normal akış. */
@media (max-width: 991px){
    .gelinlik-body .gl-ud-gallery{
        position: static;
    }
}


/* =============================================================================
   FİLTRE GRUP BAŞLIKLARI — OKUNURLUK                 (2026-10-06)
   =============================================================================
   "Okunaklı değil": 12px, %55 soluk krem, .22em harf aralığıydı. Ürün detayındaki
   detay başlıklarıyla (.gl-ud-spec-label) aynı dil: La Obrige 15px, altın,
   ince konturla kalın (La Obrige tek kesim, font-synthesis kapalı). */
.gelinlik-body .gl-fd-group-trigger{
    font-family: var(--font-serif);
    font-size: 15px;
    letter-spacing: .12em;
    color: #c9a96e;
    -webkit-text-stroke: .4px currentColor;
}
.gelinlik-body .gl-fd-group-trigger:hover{ color: #e0c48f; }
.gelinlik-body .gl-fd-group-trigger i.gl-fd-icon{ color: rgba(201,169,110,.9); }
.gelinlik-body .gl-fd-group-count{ -webkit-text-stroke: 0; }


/* =============================================================================
   HERO GİRİŞ ANİMASYONU — LCP DOSTU                  (2026-10-06, SEO)
   =============================================================================
   glFadeUp (gelinlik-theme.css) opacity:0'dan başlıyordu. Chrome opacity:0
   öğeyi LCP adayı saymaz → hero başlığı (anasayfanın LCP öğesi) 0.55–0.7 sn
   gecikme + animasyon boyunca "yok" sayılıyor, LCP o kadar geç ölçülüyordu.
   .01 gözle ayırt edilmez (efekt aynı), ama başlık ilk karede aday olur.
   Aynı adla yeniden tanımlandı: sonra yüklenen @keyframes kazanır; tüm hero
   eyebrow/başlık/lede/cta'ları kapsar. Tekrar 0 YAPMA. */
@keyframes glFadeUp{
    from{ opacity: .01; transform: translateY(22px); }
    to  { opacity: 1;   transform: translateY(0); }
}


/* =============================================================================
   BAŞLIK ALTI METİN — TEK STANDART                   (2026-10-06)
   =============================================================================
   Referans: İletişim → Mesaj Bırakın → "Bize Yazın" altındaki açıklama
   (.gl-ilt-pane-lede): Libre Caslon, --ty-lede (18→22px), satır 1.55, krem
   rgb(220,213,202), harf aralığı normal. Kullanıcı listesi tek tek eşlendi;
   sayfadan sayfaya renk/harf aralığı/font sapıyordu (ör. kr-cta-text .44px,
   kr-ft-desc .36px, hkk/kvk gövdesi 18px sabit). Yeni bir "başlık altı metin"
   eklenirse bu listeye ekle.
   `body.` öneki bilinçli: `.gelinlik-body .gl-br-pane p` ve CTA kutularındaki
   `[class*="-cta"] p{color:revert}` (0,2,1) bu bloğu eziyordu. Hero lede'lerinin
   RENGİ (fotoğraf üstü, açık krem) bilerek hero kuralında kalır. */
body.gelinlik-body .gl-ilt-pane-lede,
body.gelinlik-body .gl-editorial-right > p,         /* Anasayfa — Hikayemiz (El İşçiliği ile Mükemmellik) */
body.gelinlik-body .gl-appt p,                         /* Anasayfa — Atölyemizde Sizi Ağırlamak İstiyoruz */
body.gelinlik-body .gl-kr-ft-desc,                     /* Kreasyonlar — Vitrin açıklaması */
body.gelinlik-body .gl-kr-section-sub,                 /* Tasarımcının Notları / Süreç alt metni */
body.gelinlik-body .gl-kr-note-quote p,                /* Notlar — görsellerin yanındaki metin */
body.gelinlik-body .gl-kr-cta-text,                    /* Birebir Görüşme */
body.gelinlik-body .gl-hkk-manifesto-body,             /* Hakkımızda — Felsefemiz */
body.gelinlik-body .gl-hkk-founder-body,               /* Kurucu Mesajı */
body.gelinlik-body .gl-hkk-section-lede,               /* Değerlerimiz */
body.gelinlik-body .gl-ilt-section-lede,               /* İletişim — Konum */
body.gelinlik-body .gl-br-controls-sub,                /* Beden — cm/inch solundaki açıklama */
body.gelinlik-body .gl-br-pane-lede,                   /* Standart / Profesyonel / Ölçü Almak / Karşılaştırma */
body.gelinlik-body .gl-br-cta-lede,
body.gelinlik-body .gl-sss-hero-lede,                  /* SSS — hero metni */
body.gelinlik-body .gl-sss-a p,                        /* SSS — cevaplar */
body.gelinlik-body .gl-sss-cta-lede,                   /* Hâlâ bir sorunuz mu var? */
body.gelinlik-body .gl-kvk-section > p,                /* KVK — 6 bölümün başlık altı metni */
body.gelinlik-body .gl-kvk-cat-card p,                 /* KVK — işlenen veri kutuları */
body.gelinlik-body .gl-kvk-bottom-cta p,               /* KVK — Sorularınız mı var? */
body.gelinlik-body .gl-atl-section-lede,               /* Atölye — Alanlar / Süreç / Ziyaret */
body.gelinlik-body .gl-atl-step-body p,                /* Atölye — süreç zaman çizelgesi */
body.gelinlik-body .gl-atl-measure-lede,               /* Ölçü Alımı */
body.gelinlik-body .gl-atl-cta-lede{                   /* Atölyeye Davetimiz */
    font-family: var(--font-sans);
    font-size: var(--ty-lede);
    font-weight: 400;
    font-style: normal;
    line-height: 1.55;
    letter-spacing: normal;
    text-transform: none;
    color: rgb(220, 213, 202);
}

/* Kreasyonlar — vitrin kartında sezon adının (İlkbahar 2025) altındaki kısa çizgi kalktı */
.gelinlik-body .gl-kr-ft-meta .gl-kr-eyebrow::after{ display: none; }
.gelinlik-body .gl-kr-ft-meta .gl-kr-eyebrow{ padding-bottom: 0; }

/* Koleksiyonlar — filtre barı: boyut iyi, okunurluk düşüktü (.52–.72 krem).
   Başlık dili (La Obrige + ince kontur, bkz. .gl-ud-spec-label). */
.gelinlik-body .gl-filter-toggle-btn,
.gelinlik-body .gl-kol-tab{
    font-family: var(--font-serif);
    color: rgb(240, 232, 220);
    -webkit-text-stroke: .3px currentColor;
}
.gelinlik-body .gl-kol-tab.active,
.gelinlik-body .gl-filter-toggle-btn:hover,
.gelinlik-body .gl-kol-tab:hover{ color: #c9a96e; }

/* Hakkımızda — rakamların altındaki etiketler: vurgu arttı (.55 krem → altın) */
.gelinlik-body .gl-hkk-stat span{
    color: #c9a96e;
    -webkit-text-stroke: .3px currentColor;
}

/* SSS — soru başlığı cevaptan ayrışsın: cevap referans metin (krem, 18→22px),
   soru bir kademe büyük (--ty-h3 20→26px) ve altın — boyut + renk farkı birlikte. */
.gelinlik-body .gl-sss-q-text{
    font-size: var(--ty-h3);
    color: #c9a96e;
    -webkit-text-stroke: .3px currentColor;
}


/* =============================================================================
   KREASYONLAR — YILLAR ZAMAN ÇİZELGESİ: BAŞLIK ÇİZGİNİN TEPESİNDE  (2026-10-06)
   =============================================================================
   İstek: rakamlar ve "YILLAR" büyüsün, yıl aralığı dengelensin; başlık çizginin
   en üstünde dursun, çizgi başlığın ORTASINDAN aşağı insin.
   Eskiden çizgi aside boyunca (statik) uzanıyor, başlık sticky iç kutuda
   kayıyordu → kaydırınca başlık çizginin üstünden geçiyordu. Çizgi artık
   sticky kutunun içinde (nav::before): başlık + çizgi + yıllar tek birim.
   --tl-x = çizginin x konumu; başlık bu noktaya ortalanır (translateX(-50%)). */
.gelinlik-body .gl-kr-timeline{ width: 180px; }
.gelinlik-body .gl-kr-timeline::before{ display: none; }
.gelinlik-body .gl-kr-timeline-inner{ --tl-x: 64px; }
.gelinlik-body .gl-kr-timeline-title{
    display: block;
    width: max-content;
    margin: 0 0 0 var(--tl-x);
    transform: translateX(-50%);
    padding-bottom: 14px;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: .3em;
    text-indent: .3em;                 /* son harfin harf aralığı ortalamayı kaydırmasın */
    color: #c9a96e;
}
.gelinlik-body .gl-kr-timeline-nav{
    margin-left: var(--tl-x);
    padding-top: 34px;                 /* çizginin başlıkla ilk yıl arasındaki kısmı */
    padding-bottom: 8px;
}
.gelinlik-body .gl-kr-timeline-nav::before{
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: -48px;                     /* son yılın altında yumuşak biter */
    width: 1px;
    background: linear-gradient(to bottom,
        rgba(201, 169, 110, .6) 0%,
        rgba(201, 169, 110, .45) 70%,
        transparent 100%);
}
.gelinlik-body .gl-kr-timeline-nav li{ margin-bottom: 38px; }
.gelinlik-body .gl-kr-timeline-nav li:last-child{ margin-bottom: 0; }
.gelinlik-body .gl-kr-timeline-link,
.gelinlik-body .gl-kr-timeline-link:hover,
.gelinlik-body .gl-kr-timeline-link.active{
    font-size: 22px;
    line-height: 1.2;
    padding-left: 24px;
    letter-spacing: .04em;
}
.gelinlik-body .gl-kr-timeline-year{ font-size: inherit; line-height: inherit; }
/* Aktif/hover'daki 4px kayma eskiden link'e veriliyordu → nokta da çizgiden
   kayıyordu. Kayma yalnız yıl yazısında; nokta çizginin üstünde sabit. */
.gelinlik-body .gl-kr-timeline-link:hover,
.gelinlik-body .gl-kr-timeline-link.active{ transform: none; }
.gelinlik-body .gl-kr-timeline-year{ transition: transform .25s ease; }
.gelinlik-body .gl-kr-timeline-link:hover .gl-kr-timeline-year,
.gelinlik-body .gl-kr-timeline-link.active .gl-kr-timeline-year{ transform: translateX(4px); }
.gelinlik-body .gl-kr-timeline-dot{ left: -4px; }   /* 11px halka, 1px çizginin tam ortasında */


/* =============================================================================
   MİNİ BAŞLIK · BAŞLIK · AÇIKLAMA — TEK RENK ÜÇLÜSÜ  (2026-10-06)
   =============================================================================
   Referans: Kreasyonlar → "Birebir Görüşme" CTA bloğu.
     mini başlık (eyebrow) #c9a96e altın   (.gl-kr-eyebrow)
     başlık                #f5e6c4 şampanya (.gl-kr-cta-title)
     açıklama              #dcd5ca krem     (bkz. "BAŞLIK ALTI METİN — TEK STANDART")
   Önce: eyebrow'ların altısı krem (#dcd5ca/#e8e0d4), başlıklar beyaz / #f0e8dc /
   #f5e3b8 arasında dağınıktı. Ürün adları (kart + ürün detay h1) ve filtre
   çekmecesi başlığı BİLEREK hariç — bölüm başlığı değiller.
   Hero lede rengi (fotoğraf üstü açık krem) bilerek kendi kuralında kalır. */
body.gelinlik-body [class*="-eyebrow"]{ color: #c9a96e; }

body.gelinlik-body .gl-hero-title,
body.gelinlik-body [class*="-hero-title"],
body.gelinlik-body .gl-kr-vh-title,
body.gelinlik-body .gl-krd-title,
body.gelinlik-body .gl-page-title,
body.gelinlik-body .gl-section-title,
body.gelinlik-body .gl-editorial-right h2,
body.gelinlik-body .gl-cinematic-text h2,
body.gelinlik-body .gl-defile h2,
body.gelinlik-body .gl-appt h2,
body.gelinlik-body .gl-kr-h2,
body.gelinlik-body .gl-kr-cta-title,
body.gelinlik-body .gl-krd-section-title,
body.gelinlik-body .gl-krd-statement-quote,
body.gelinlik-body .gl-hkk-manifesto-quote,
body.gelinlik-body .gl-hkk-founder-title,
body.gelinlik-body .gl-hkk-section-title,
body.gelinlik-body .gl-ilt-pane-title,
body.gelinlik-body .gl-ilt-section-title,
body.gelinlik-body .gl-br-pane-title,
body.gelinlik-body .gl-br-cta-title,
body.gelinlik-body .gl-sss-cta-title,
body.gelinlik-body .gl-kvk-sec-title,
body.gelinlik-body .gl-kvk-bottom-cta h3,
body.gelinlik-body .gl-atl-section-title,
body.gelinlik-body .gl-atl-measure-title,
body.gelinlik-body .gl-atl-cta-title,
body.gelinlik-body .gl-ud-related-title{
    color: #f5e6c4;
}
