/* KuarkTek site geneli duzeltmeler */

/* Bulten (reveal) formu: input metni sola hizali olmali */
.reveal-form input,
.reveal-form input[type="email"] {
  text-align: left;
}

/* Bricks body'ye -webkit-font-smoothing: antialiased basar; prototipte yok.
   Mac'te antialiased fontlari inceltir; prototiple ayni render icin geri aliyoruz. */
html body {
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}

/* Ana sayfa: mobilde callout'lar arasinda scroll-anim sahnesinin statik karesi.
   Masaustunde canvas katmani calistigi icin gizli. Kaynak kare 1920x1080 ve
   urun sahnesi ortadaki ~kare alanda; 16:9 oraninda basilinca urun kucuk
   kaliyor ve iki yanda genis beyaz bosluk olusuyordu. 1:1 kirpma (object-fit
   cover) yan bosluklari atar, urunu ~1.8x buyutur; sahne 1080px'lik merkez
   karede kaldigi icin kirpilan yalniz bos zemindir. */
.partners-scene-mobile {
  display: none;
}
@media (max-width: 860px) {
  .partners-scene-mobile {
    display: block;
    margin: 12px auto;
    max-width: 480px;
  }
  .partners-scene-mobile img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }
}

/* Ana sayfa kapanis bolumu: sag metin kolonunu footer'in copy kolonuyla ayni
   sol hizaya getirir (footer-cta ile ayni oran ve bosluk; asimetri giderildi).
   Yalniz genis masaustu ekranlarda (>=1600px); MacBook ve altinda prototip
   duzeni gecerli kalir. */
@media (min-width: 1600px) {
  .title-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
    column-gap: clamp(40px, 6vw, 110px);
  }
}

/* Builder canvas'i: dekoratif/bos elementlerin (cizgi, ray, ayrac, scrim, grain,
   runway) icine Bricks'in ekledigi gri yer tutucu kutuyu gizle; element kendi
   CSS'iyle (ince cizgi vb.) gorunsun. Frontend'te bu dugum hic olusmaz. */
[aria-hidden="true"] > .bricks-element-placeholder,
.partners-callout__rule > .bricks-element-placeholder,
.slider-track > .bricks-element-placeholder,
.metric-divider > .bricks-element-placeholder,
.hero-scrim > .bricks-element-placeholder,
.hero-grain > .bricks-element-placeholder,
.scroll-runway > .bricks-element-placeholder,
.rg-idea-benefits-image > .bricks-element-placeholder {
  display: none !important;
}

/* Urun paneli (hotspots) artik Bricks icinde yasar:
   1) Builder'da statik ve tam gorunur (duzenlenebilir),
   2) Frontend'te kucuk bir script paneli body'ye tasir; fixed overlay davranisi
      site.js'in scroll-scrub akisiyla aynen devam eder. */
body:not(.bricks-is-frontend) .products-final {
  position: static !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
}
body:not(.bricks-is-frontend) .products-final .hotspot__label {
  pointer-events: auto;
}

/* Fake-3D hero canvas'i builder'da bos kalmasin: temsili notr kare. Frontend'te
   site.js canvas'a cizim yaptigi icin arka plan gorunmez. */
body:not(.bricks-is-frontend) .hero-fake3d {
  background: url('/wp-content/themes/kuarktek-child/assets/frames/intro/056.webp') center / cover no-repeat;
}

/* Hero metinlerinde golge istenmiyor (tum sayfalar, tum hero varyantlari). */
.hero-content *,
.hero-title, .hero-title *,
.hero-eyebrow, .hero-subline,
.rg-about-hero *,
.rg-hero-shell *,
.rg-content .rg-h1, .rg-content .rg-h1 *, .rg-content .rg-body {
  text-shadow: none !important;
}

/* Koyu header varyanti: urun tekil sayfalari (ornek: Regenyal Idea, eski page-id-7; sayfa urun CPT'sine tasindi). */
      body.single-urun .site-header:not(.is-scrolled) {
        background: transparent;
      }

      body.single-urun .site-header:not(.is-scrolled) .header-logo__light {
        opacity: 0;
      }

      body.single-urun .site-header:not(.is-scrolled) .header-logo__dark {
        opacity: 1;
      }

      body.single-urun .site-header:not(.is-scrolled) .header-nav {
        color: rgba(0, 20, 66, 0.68);
      }

      body.single-urun .site-header:not(.is-scrolled) .header-nav a:hover,
      body.single-urun .site-header:not(.is-scrolled) .header-nav__trigger:hover,
      body.single-urun .site-header:not(.is-scrolled) .header-nav__item:focus-within .header-nav__trigger,
      body.single-urun .site-header:not(.is-scrolled) .header-nav__item.is-mega-open .header-nav__trigger {
        color: var(--brand-navy, #001442);
      }

      body.single-urun .site-header:not(.is-scrolled) .header-lang {
        color: rgba(0, 20, 66, 0.55);
      }

      body.single-urun .site-header:not(.is-scrolled) .header-lang:hover,
      body.single-urun .site-header:not(.is-scrolled) .header-lang:focus-visible {
        color: var(--brand-navy, #001442);
      }

      body.single-urun .site-header:not(.is-scrolled) .header-contact {
        background: var(--brand-navy, #001442);
        color: #fff;
        box-shadow: none;
      }

      body.single-urun .site-header:not(.is-scrolled) .header-contact:hover,
      body.single-urun .site-header:not(.is-scrolled) .header-contact:focus-visible {
        background: rgba(0, 20, 66, 0.08);
        color: var(--brand-navy, #001442);
        box-shadow: inset 0 0 0 1.5px rgba(0, 20, 66, 0.45);
      }
      body.single-urun .site-header:not(.is-scrolled) .header-burger__box span {
        background: var(--brand-navy, #001442);
      }

/* ── Builder canvas normalizasyonu: fixed/gizli overlay parcalari builder'da
      duzenlenebilir STATIK bloklara doner (frontend davranisi degismez). ── */
body:not(.bricks-is-frontend) .reveal-section,
body:not(.bricks-is-frontend) .rg-toc,
body:not(.bricks-is-frontend) .rg-bar {
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: 0 !important;
  z-index: auto !important;
}
body:not(.bricks-is-frontend) .products-final {
  line-height: normal !important;
  height: auto !important;
  inset: auto !important;
}
body:not(.bricks-is-frontend) .products-final__stage {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  height: auto !important;
  width: 100% !important;
}
body:not(.bricks-is-frontend) .products-final__img {
  width: 100%;
  height: auto;
}

/* Builder canvas: sahne gorseli/basligi mutlak konumdan cikar (beyaz bos bolum fix) */
body:not(.bricks-is-frontend) .products-final__img {
  position: static !important;
  width: 100% !important;
  height: auto !important;
}
/* Panel basligi frontend'teki gibi cover'in SOL USTUNDE durur (panel relative). */
body:not(.bricks-is-frontend) .products-final {
  position: relative !important;
}

/* Builder canvas: salt animasyon aralayicilarindan gelen bos scroll'u kaldir */
body:not(.bricks-is-frontend) .scroll-runway {
  display: none !important;
}
body:not(.bricks-is-frontend) .products-section {
  height: auto !important;
  min-height: 0 !important;
}
body:not(.bricks-is-frontend) .content-wrapper {
  margin-bottom: 0 !important; /* bulten paneli sabit olmadigi icin bosluk payi gereksiz */
}

/* Builder: bos dekoratif elementlere verilen 90x90 min boyut + cerceve kaldirilir
   (Bricks :where(.brx-draggable:empty) kurali); elementler gercek olculerinde gorunur. */
body:not(.bricks-is-frontend) .partners-callout__rule,
body:not(.bricks-is-frontend) .slider-track,
body:not(.bricks-is-frontend) .metric-divider,
body:not(.bricks-is-frontend) .rg-bar-dot,
body:not(.bricks-is-frontend) .hero-scrim,
body:not(.bricks-is-frontend) .hero-grain,
body:not(.bricks-is-frontend) .rg-toc-thumb {
  min-height: 0 !important;
  min-width: 0 !important;
  outline: none !important;
}

/* Builder: bulten paneli icin body sonuna eklenen 50vh'lik bosluk payi kaldirilir. */
body:not(.bricks-is-frontend)::after {
  display: none !important;
  height: 0 !important;
}

/* Urun paneli: temel kuraldaki visibility:hidden + overflow:hidden builder'da acilir. */
body:not(.bricks-is-frontend) .products-final {
  visibility: visible !important;
  overflow: visible !important;
}

/* Ana sayfa # Surec karuseli (mobil): site.css'in "Mobil duzeltmeler 2. tur"
   blogu bento'yu 100vw tam kanat yapar ve kartlari Avantajlar (benefit-card)
   olcusune esitler; ama Bricks'in [class*=brxe-]{max-width:100%} battaniyesi
   bento'yu kabin ic genisligine (330), karti da 270'e kirpiyordu. Kartlar
   kutu kenarinda kesiliyor, sol hiza ok butonuyla tutmuyordu. Serbest birak:
   100vw + align-self center devreye girer, kart solu = ok solu (30px),
   kesim EKRAN kenarinda olur. */
@media (max-width: 860px) {
  .expertise-bento,
  .expertise-card {
    max-width: none;
  }
  /* Kart olcusu Avantajlar'daki benefit-card ile BIREBIR (76vw); site.css'in
     clamp tabani 390'da 8px dar kaliyordu. */
  .expertise-card {
    flex-basis: 76vw;
  }
}

/* Hotspot tooltip'i: Bricks'in [class*=brxe-]{max-width:100%} kurali, 34px'lik
   hotspot noktasinin cocugu olan karti daraltiyor (builder VE frontend). Acilir. */
.hotspot .hotspot__label {
  max-width: none !important;
}
.hotspot .hotspot__label * {
  max-width: none;
}

/* RESPONSIVE PARITE ILKESI: builder onizlemesi frontend'in responsive
   davranisini aynalar; mobil icerik builder'in mobil gorunumunde, masaustu
   icerik masaustu gorunumunde gorunur (media query'lere mudahale edilmez).
   Builder'a ozel gizleme/gosterme yalniz salt animasyon altyapisi icindir. */

/* ── Bulten formu: prototipin pill tasarimi CF7 yapisina koprulenir.
      (.reveal-form kabugu CF7 form iceriginde; taban stilleri site.css'ten.
      Sarmalayici: footer sablonundaki shortcode elementi .rg-cf7-bulten.
      Onceki Bricks form koprusu kaldirildi; form artik CF7 "Bülten Formu".) ── */
.rg-cf7-bulten {
  width: 100%;
}
.rg-cf7-bulten .wpcf7 form {
  margin: 0;
}
.rg-cf7-bulten .reveal-form {
  position: relative; /* dogrulama ucu pill'e gore konumlanir */
  margin-inline: auto;
  flex-wrap: nowrap;
}
/* CF7'nin input sarmalayicisi (control-wrap) pill flex zincirine katilir.
   position: static SART: CF7 cekirdegi wrap'e relative basar ve dogrulama
   ucu o zaman pill'e degil yalniz input bandina gore ortalanir. */
.rg-cf7-bulten .reveal-form .wpcf7-form-control-wrap {
  position: static;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: stretch;
}
/* Dogrulama durumunda pill kenarligi da hafifce kizarir (yumusak ipucu) */
.rg-cf7-bulten .reveal-form:has(.wpcf7-not-valid) {
  border-color: rgba(192, 57, 43, 0.45);
}
.reveal-form input[type="email"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 0 18px;
  border: 0;
  background: transparent;
  color: #0f1c3f;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.1px;
  min-height: 44px;
}
/* Submit sarmalayicisi hap butonun kendisidir; icindeki CF7 input seffaf.
   Ok ikonu sarmalayicinin ::after'inda (input'ta ::after calismaz). */
.rg-cf7-bulten .rg-cf7-submit {
  position: relative; /* spinner butonun uzerine biner, akista yer tutmaz */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  min-height: 44px;
  padding-right: 22px;
  border-radius: 999px;
  background: var(--brand-navy, #001442);
  color: #fff;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.rg-cf7-bulten .rg-cf7-submit input[type="submit"] {
  min-height: 44px;
  padding: 0 0 0 22px;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.rg-cf7-bulten .rg-cf7-submit:hover,
.rg-cf7-bulten .rg-cf7-submit:focus-within {
  background: #0189d4;
}

/* ── Basvuru modali formu: temel duzen (Bricks form yapisina uygun) ── */
/* onay kutusu metinleri (rıza) gorunur kalmali; alan etiketleri form ayarindan kapali */
.rg-modal-form input[type="text"],
.rg-modal-form input[type="email"] {
  width: 100%;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid rgba(15, 28, 63, 0.16);
  border-radius: 10px;
  font-size: 15px;
}
.rg-modal-form input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-right: 8px;
}
.rg-modal-form .bricks-button {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  background: var(--brand-navy, #001442);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

/* Cover gorseli tiklanabilir degil; hotspot noktalar ayri interaktif katman. */
.products-final__img {
  pointer-events: none;
}

/* Abone Ol butonuna prototipteki ok ikonu (mask ile, renk currentColor). */
.rg-cf7-bulten .rg-cf7-submit::after {
  content: "";
  flex: 0 0 auto;
  width: 0.9em;
  height: 0.9em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.7 17.3 15.2 8.8H8V6h12v12h-2.8v-7.2l-8.5 8.5z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.7 17.3 15.2 8.8H8V6h12v12h-2.8v-7.2l-8.5 8.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Bulten input'u: tarayicinin varsayilan odak halkasi kaldirilir; erisilebilirlik
   icin odak vurgusu hap kabugun kenarligina tasinir (tasarim diline uygun). */
.reveal-form input[type="email"]:focus,
.reveal-form input[type="email"]:focus-visible {
  outline: none;
  border: 0;
  box-shadow: none;
}
.reveal-form:focus-within {
  border-color: rgba(1, 137, 212, 0.55);
  box-shadow: 0 10px 30px rgba(0, 20, 66, 0.12);
}

/* Bulten CF7 mesajlari. Tek mesaj ilkesi: dogrulama hatasinda yalniz alan
   ucu gorunur (genel kutu gizli; ayni anda iki kirmizi mesaj gurultuydu),
   gonderim sonucu (sent/failed/spam) ise pill altinda ortali tek kapsul.
   DIKKAT: CF7 cekirdek CSS'i ".wpcf7 form .wpcf7-response-output" (0,3,1)
   ozgullugunde margin/border/padding basar; koprumuz ayni zincirle yazilir,
   yoksa kutu sola kayik ve 2px sert kenarlikli kalir. */
.rg-cf7-bulten .wpcf7-not-valid-tip {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  color: #c0392b;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}
.rg-cf7-bulten .wpcf7 form .wpcf7-response-output {
  width: fit-content;
  max-width: min(560px, 100%);
  margin: 34px auto 0; /* ust bosluk dogrulama ucunun bandini da temizler */
  padding: 10px 20px;
  border: 1px solid rgba(15, 28, 63, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.7);
  color: #0f1c3f;
  font-size: 13.5px;
  line-height: 1.5;
  text-align: center;
}
.rg-cf7-bulten .wpcf7 form.invalid .wpcf7-response-output {
  display: none; /* alan ucu yeterli */
}
.rg-cf7-bulten .wpcf7 form.sent .wpcf7-response-output {
  border-color: rgba(46, 125, 50, 0.4);
  background: rgba(46, 125, 50, 0.08);
  color: #2e7d32;
}
.rg-cf7-bulten .wpcf7 form.failed .wpcf7-response-output,
.rg-cf7-bulten .wpcf7 form.spam .wpcf7-response-output {
  border-color: rgba(192, 57, 43, 0.35);
  background: rgba(192, 57, 43, 0.06);
  color: #c0392b;
}
/* Spinner gonderim sirasinda butonun uzerine biner (akista yer tutmaz) */
.rg-cf7-bulten .rg-cf7-submit .wpcf7-spinner {
  position: absolute;
  top: 50%;
  right: 10px;
  margin: 0;
  transform: translateY(-50%);
}
/* Honeypot sarmalayicisi gorunmez; pill disinda kendi div'inde durur */
.rg-cf7-bulten .rg-cf7-hp {
  height: 0;
  margin: 0;
  overflow: hidden;
}
.rg-cf7-bulten .rg-cf7-hp p {
  margin: 0;
}

/* Gizli (smart-sticky) header etkilesim almaz: menu ogelerinin altindaki 28px'lik
   gorunmez hover koprusu (::after) ekran ustune tasip mega menuyu aciyordu.
   Yalniz header'a none vermek YETMEZ: site.css'teki ".site-header > *
   { pointer-events: auto }" kurali cocuklari yeniden hit-target yapar ve
   pointer-events hit-testing'inde atadaki none, acikca auto verilen alt
   elemani engellemez. Cocuklara da none verilir; alt agac bunu miras alir. */
.site-header.is-hidden,
.site-header.is-hidden > * {
  pointer-events: none;
}

/* Mega menu panelleri artik Bricks shortcode elementlerinden render edilir;
   Bricks'in sarmalayici div'i grid/ul yerlesimini bozmasin (icerik dogrudan
   ebeveynin cocugu gibi davranir). */
.mega-menu__grid > .brxe-shortcode,
.mobile-menu__list > .brxe-shortcode {
  display: contents;
}

/* Footer mobil rotuslari. Ozgulluk (0,2,0): idea.css'teki kanonik footer
   kopyasi custom.css'ten SONRA yuklendigi icin tek sinif kural orada ezilir. */
@media (max-width: 860px) {
  /* Urunler / Kaynaklar / Kurumsal menu gruplarinin altina nefes payi */
  .footer-nav .footer-nav__group {
    margin-bottom: 20px;
  }
  .footer-primary .footer-primary__text {
    max-width: 180px;
    line-height: 1.4;
  }
  /* Basa don butonunun ustune bosluk */
  .footer-section .footer-top {
    margin-top: 28px;
  }
}

/* ══ CF7 form koprusu (.rg-cf7) — SITE GENELI ═══════════════════════════
   Kullanan yerler: /iletisim/ form paneli + popup 81 basvuru formu (her
   sayfada acilabilir; bu yuzden koprunun yeri sayfa CSS'i degil custom.css).
   Desen: popup 81'in onayli form dili (yuzen etiket, 12px radius input,
   lacivert pill submit). Ayrinti: notlar/05-tasarim-dili.md */

.rg-cf7 .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.rg-cf7 .rg-cf7-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 16px;
}

.rg-cf7 .rg-cf7-field {
  position: relative;
  width: 100%;
}

.rg-cf7 .rg-cf7-field > p {
  margin: 0;
}

.rg-cf7 .rg-cf7-field--half {
  width: calc(50% - 8px);
}

.rg-cf7 .rg-cf7-field input,
.rg-cf7 .rg-cf7-field select,
.rg-cf7 .rg-cf7-field textarea {
  width: 100%;
  padding: 16px 20px;
  border: 1px solid var(--surface-line);
  border-radius: 12px;
  outline: none;
  background: #fff;
  color: #111;
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  transition: border-color 0.15s ease;
}

.rg-cf7 .rg-cf7-field input:focus,
.rg-cf7 .rg-cf7-field select:focus,
.rg-cf7 .rg-cf7-field textarea:focus {
  border-color: var(--brand-blue);
}

.rg-cf7 .rg-cf7-field textarea {
  min-height: 150px;
  resize: vertical;
}

/* Yuzen etiket: placeholder gizli tutulur, durum :placeholder-shown ile
   okunur (popup 81 deseni). Select'te etiket kalici olarak yukarida. */
.rg-cf7 .rg-cf7-field input::placeholder,
.rg-cf7 .rg-cf7-field textarea::placeholder {
  color: transparent;
}

.rg-cf7 .rg-cf7-label {
  position: absolute;
  top: 16px;
  left: 20px;
  z-index: 2;
  padding: 0 4px;
  background: #fff;
  color: rgba(26, 26, 26, 0.45);
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  pointer-events: none;
  transition: top 0.15s ease, font-size 0.15s ease, color 0.15s ease;
}

.rg-cf7 .rg-cf7-field:focus-within .rg-cf7-label,
.rg-cf7 .rg-cf7-field:has(input:not(:placeholder-shown)) .rg-cf7-label,
.rg-cf7 .rg-cf7-field:has(textarea:not(:placeholder-shown)) .rg-cf7-label,
.rg-cf7 .rg-cf7-field--select .rg-cf7-label {
  top: -8px;
  color: var(--brand-blue);
  font-size: 12px;
}

/* Select: yerli ok yerine marka okuyla */
.rg-cf7 .rg-cf7-field select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 48px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23001442' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  background-size: 14px;
  cursor: pointer;
}

/* Honeypot sarmalayicisi (autop'un actigi p) flex izgarada bos gap
   slotu acmasin; alanin kendisi zaten eklenti tarafindan gizli. */
.rg-cf7 .rg-cf7-grid > p:has([data-cf7apps-honeypot]) {
  display: none;
}

/* Onay satirlari (acceptance) */
.rg-cf7 .rg-cf7-consent {
  width: 100%;
}

.rg-cf7 .rg-cf7-consent .wpcf7-list-item {
  display: block;
  margin: 0;
}

.rg-cf7 .rg-cf7-consent .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: rgba(0, 20, 66, 0.48);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: none;
  cursor: pointer;
}

.rg-cf7 .rg-cf7-consent input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--brand-blue);
  cursor: pointer;
}

.rg-cf7 .rg-cf7-consent a {
  color: rgba(0, 20, 66, 0.75);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.rg-cf7 .rg-cf7-consent a:hover {
  color: var(--brand-blue);
}

/* Gonder: lacivert hap buton; metin DAIMA ortali (miras sola yaslar) */
.rg-cf7 .rg-cf7-submit {
  position: relative; /* spinner butonun uzerine biner, akista yer tutmaz */
  width: 100%;
}

.rg-cf7 .rg-cf7-submit input[type="submit"] {
  width: 100%;
  padding: 18px;
  border: 0;
  border-radius: 24px;
  background: #001334;
  color: #fff;
  cursor: pointer;
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 300;
  text-align: center;
  transition: background 0.2s ease;
}

.rg-cf7 .rg-cf7-submit input[type="submit"]:hover {
  background: var(--brand-blue);
}

/* Spinner: gizliyken 36px'lik olu bosluk birakiyordu (visibility: hidden
   akista yer tutar); butonun sag icine absolute alindi. */
.rg-cf7 .rg-cf7-submit .wpcf7-spinner {
  position: absolute;
  top: 50%;
  right: 18px;
  margin: 0;
  transform: translateY(-50%);
}

/* Dogrulama ve durum mesajlari */
.rg-cf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: #c0392b;
  font-size: 12.5px;
  font-weight: 400;
}

.rg-cf7 .rg-cf7-field input.wpcf7-not-valid,
.rg-cf7 .rg-cf7-field select.wpcf7-not-valid,
.rg-cf7 .rg-cf7-field textarea.wpcf7-not-valid {
  border-color: rgba(192, 57, 43, 0.55);
}

/* Onay satiri hata ipucu (acceptance_as_validation) */
.rg-cf7 .rg-cf7-consent .wpcf7-not-valid-tip {
  margin-top: 6px;
}

.rg-cf7 .wpcf7 form .wpcf7-response-output {
  width: 100%;
  margin: 4px 0 0;
  padding: 14px 18px;
  border: 1px solid var(--surface-line);
  border-radius: 12px;
  color: var(--brand-navy);
  font-size: 14.5px;
  line-height: 1.5;
}

.rg-cf7 .wpcf7 form.sent .wpcf7-response-output {
  border-color: rgba(46, 125, 50, 0.4);
  background: rgba(46, 125, 50, 0.06);
  color: #2e7d32;
}

.rg-cf7 .wpcf7 form.invalid .wpcf7-response-output,
.rg-cf7 .wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: rgba(178, 106, 0, 0.4);
  background: rgba(178, 106, 0, 0.06);
  color: #8a5300;
}

.rg-cf7 .wpcf7 form.failed .wpcf7-response-output,
.rg-cf7 .wpcf7 form.aborted .wpcf7-response-output,
.rg-cf7 .wpcf7 form.spam .wpcf7-response-output {
  border-color: rgba(192, 57, 43, 0.4);
  background: rgba(192, 57, 43, 0.05);
  color: #c0392b;
}

@media (max-width: 560px) {
  .rg-cf7 .rg-cf7-field--half {
    width: 100%;
  }
}

/* Popup 81 icindeki CF7: modal govdesiyle ayni ritim */
.brxe-popup-81 .rg-cf7 {
  width: 100%;
}

.brxe-popup-81 .rg-cf7 .wpcf7 {
  margin-top: 4px;
}

/* ── Mobil dokunma hedefleri (22 Tem 2026, mobil denetim turu) ──
   Kucuk vurus alanlari gorunum degismeden buyutulur (WCAG 2.5.8 hedef 24px).
   Metin linklerinde dikey dolgu + esit negatif margin ritmi korur; kutu
   kontrollerinde gorunmez ::after katmani vurus alanini genisletir. */
@media (max-width: 768px) {
  .footer-nav__link,
  .footer-legal__links a {
    padding-block: 5px;
    margin-block: -5px;
  }
}

/* rg-modal-close zaten position:absolute (idea.css); position'ina dokunulmaz,
   ::after konumu icin mevcut absolute kutusu yeterli containing block. */
.rg-toc-close,
.rg-bar-cta {
  position: relative;
}

.rg-modal-close::after,
.rg-toc-close::after {
  content: "";
  position: absolute;
  inset: -10px;
}

.rg-bar-cta::after {
  content: "";
  position: absolute;
  inset: -14px -10px;
}

/* ── Ana sayfa mobil 16px standardi (22 Tem 2026, oneri uygulamasi) ──
   390'da 15px olculen icerik metinleri aile standardina cekildi: urun
   kartlari, metrik etiketleri, partner/uzmanlik metinleri. Eyebrow/kicker
   (12px) ve chrome bilincli kapsam disi. */
@media (max-width: 560px) {
  .pm-card__desc,
  .products-mobile__sub,
  .metric-label,
  .partners-callout__copy,
  .expertise-cta__copy {
    font-size: 16px;
  }
}

/* Mega menu Urunlerimiz kicker'i artik Tum Urunler linki (text-link).
   Kicker gorunumu "# Kurumsal" span'iyla BIREBIR ayni kalmali; ancak
   site.css .header-nav a kurali (font: inherit, color: inherit, inline-flex)
   anchor'da kicker tipografisini eziyordu. Ayni ozellikler kicker
   degerleriyle daha guclu secicide (0,2,1) geri yazilir; hover lacivert. */
.header-nav a.mega-menu__kicker {
  display: block;
  margin: 0 0 16px;
  padding-left: 14px;
  color: var(--brand-blue);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.25s ease;
}

.header-nav a.mega-menu__kicker:hover,
.header-nav a.mega-menu__kicker:focus-visible {
  color: var(--brand-navy);
}

/* Urunler panelinin sekme satirinda (mega-menu__head) kicker dikeyde satirla
   ortalanir: site.css'in head kapsamli margin/padding sifirlamasini yukaridaki
   parite blogu (0,2,1) ezmisti, link sekmelerden yukari kaciyordu; ayni
   sifirlama daha guclu secicide geri verilir. */
.header-nav .mega-menu__head a.mega-menu__kicker {
  margin: 0;
  padding: 0;
}

/* ── Mobil menu cekmece linkleri: masaustu mega menu paritesi (23 Tem 2026) ──
   Desktop mega'daki gibi: onde CSS sayacindan 01/02 numarasi, pill govde,
   hover/focus'ta beyaz zemin + mavi metin + sagda beliren ok. Numara yalniz
   cekmecenin UST seviye ogelerinde (masaustunde de yalniz kategoriler
   numaralanir); girintili alt urunler (sublist) ve Tum Urunler toplama
   linki numarasizdir. site.css'teki taban kurallar (inline-flex, padding
   10px 0, translateX hover) burada pill duzenine cevrilir. */
.mobile-menu__list {
  counter-reset: mmitem;
  display: grid;
  gap: 2px;
}
/* Cekmece sonu nefesi yalniz UST seviye son ogede. Battaniye
   ".mobile-menu__list li:last-child" YAZMA: sublist'in son ogesi de (Bioregen)
   ayni kuralla eslesip marka arasina buyuk bosluk aciyordu. */
.mobile-menu__list > li:last-child,
.mobile-menu__list > .brxe-shortcode > li:last-child {
  padding-bottom: 18px;
}
.mobile-menu__sublist li:last-child {
  padding-bottom: 2px;
}
.mobile-menu__list .mobile-menu__link {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border-radius: 12px;
  color: rgba(0, 20, 66, 0.78);
  font-size: 15.5px;
  font-weight: 500;
  letter-spacing: -0.1px;
  transition: background-color 0.2s ease, color 0.2s ease;
  transform: none;
}
.mobile-menu__list .mobile-menu__link:hover,
.mobile-menu__list .mobile-menu__link:focus-visible,
.mobile-menu__list .mobile-menu__link:active {
  background: #ffffff;
  color: var(--brand-blue);
  transform: none;
}
/* Numara: desktop .mega-menu__category::before ile ayni dil. DIKKAT:
   listeler Bricks shortcode sarmalayicisinda durur (.mobile-menu__list >
   .brxe-shortcode > li; display:contents yalniz YERLESIMI duzeltir, secici
   hiyerarsisini degil); bu yuzden "> li >" zinciri yerine sinif dislama
   kullanilir: sublist (--sub) ve Tum Urunler (--more) numarasiz. */
.mobile-menu__list .mobile-menu__link:not(.mobile-menu__link--sub):not(.mobile-menu__link--more)::before {
  counter-increment: mmitem;
  content: counter(mmitem, decimal-leading-zero);
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--brand-blue);
  opacity: 0.5;
  transition: opacity 0.2s ease;
}
.mobile-menu__list .mobile-menu__link:not(.mobile-menu__link--sub):hover::before,
.mobile-menu__list .mobile-menu__link:not(.mobile-menu__link--sub):focus-visible::before,
.mobile-menu__list .mobile-menu__link:not(.mobile-menu__link--sub):active::before {
  opacity: 1;
}
/* Sagda beliren ok (desktop mega link paritesi) */
.mobile-menu__list .mobile-menu__link::after {
  content: "\2192";
  flex: 0 0 auto;
  margin-left: auto;
  color: var(--brand-blue);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}
.mobile-menu__list .mobile-menu__link:hover::after,
.mobile-menu__list .mobile-menu__link:focus-visible::after,
.mobile-menu__list .mobile-menu__link:active::after {
  opacity: 1;
  transform: translateX(0);
}

/* Marka altindaki gercek alt urunler: dikey cizgi tam numaranin (01) altinda
   ortalanir; numara linkin 14px dolgusundan sonra baslar ve ~14px genistir,
   merkezi ~21px. Alt linklerin metni ustteki marka ETIKETIYLE hizalanir
   (14 dolgu + numara + 12 gap ~= 21 cizgi + 7 ul dolgu + 12 link dolgu). */
.mobile-menu__sublist {
  margin: 0 0 4px 21px;
  padding: 0 0 2px 7px;
  border-left: 1px solid rgba(0, 20, 66, 0.14);
}
.mobile-menu__sublist .mobile-menu__link--sub {
  min-height: 38px;
  padding: 7px 12px;
  font-size: 14px;
  font-weight: 400;
  color: rgba(0, 20, 66, 0.58);
}

/* Tum Urunler toplama linki: ayirici cizgisiz, kicker dilinde kompakt satir
   (masaustu mega'nin "# Urunlerimiz -> Tum Urunler" koprusunun mobil esi);
   ok metnin hemen yaninda ve daima gorunur. */
.mobile-menu__list li.mobile-menu__more-item {
  margin-top: 4px;
}
.mobile-menu__list .mobile-menu__link--more {
  min-height: 40px;
  color: var(--brand-blue);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.mobile-menu__list .mobile-menu__link--more::after {
  content: none; /* kullanici istegi: Tum Urunler satirinda ikon yok */
}

/* Linkli logo: Bricks class'lari en dis anchor'a tasir; icteki img kabugu
   doldursun (kaynak 2335px, kural anchor'da kalinca img dogal olcusune
   sicrardi). */
a.mobile-menu__logo {
  display: block;
}
a.mobile-menu__logo img {
  width: 100%;
  height: auto;
  display: block;
}

/* Mobil menu tetikleyicileri: dokunmatik tiklamada yapisan mavi odak halkasi
   gorunmesin (img2 kusuru). Klavye erisilebilirligi site.css'teki
   :focus-visible kuraliyla surer; buradaki kural yalniz fare/dokunma sonrasi
   focus'un halka birakmasini engeller (site.js tiklama sonrasi blur eder,
   bu kural JS gecikmesine karsi guvence). */
.mobile-menu__trigger:focus:not(:focus-visible),
.mobile-menu__link:focus:not(:focus-visible) {
  outline: none;
  background: transparent;
}

/* EN hero h1 dar ekran klip duzeltmesi (tuzak 29 olcumu, animasyon durulduktan
   sonra: 320'de "in Aesthetic Medicine" 36px'te 298px, kap 240px; gerekli
   font = 36 x 240/298 ~= 29px). Yalniz EN dili + 360 alti; TR tasarimi
   birebir ayni kalir. Satir maskesi tek satir varsayar, sarma riskli;
   cozum fonttan. */
@media (max-width: 360px) {
  html[lang^="en"] .hero-title {
    font-size: 29px;
  }
}

/* KARUSEL KUYRUK PAYI (site geneli): .carousel-track'ler solda gutter tasir,
   sagda 0; sona gelindiginde son kart ekranin sagina yapisiyordu. Uc (sag)
   padding scroll tasmasina guvenilir sayilmadigi icin pay ::after ile gercek
   flex ogesi olarak verilir. Masaustu 50px + 10px gap = 60 (sol gutter ile
   simetrik); 860 alti 20px + 10 gap = 30 (mobil hiza standardi). */
.carousel-track::after {
  content: "";
  flex: 0 0 50px;
}
@media (max-width: 860px) {
  .carousel-track::after {
    flex-basis: 20px;
  }
}

/* ANA SAYFA MOBIL BOSLUK AYARLARI (25 Tem, kullanici istegi):
   1) Vision "Regecorp Hakkında" linki: ustundeki bosluk azalir (metne
      yaklasir), altindaki bosluk artar (metrik kartina nefes).
   2) "Vizyoner Hekimler İçin" callout'u ustteki sahne karesine yaklasir
      (frame gorselinin kendi ic beyaz payi da oldugundan DOM boslugu
      136px'ten ~50px'e iner; negatif deger gorsel KUTUSUNUN altinda kalir,
      icerikle binisme olmaz). */
@media (max-width: 860px) {
  .vision-main .partners-callout__link {
    margin-top: 0;
    margin-bottom: 32px;
  }
  .partners-callout--end {
    margin-top: -86px;
  }
}

/* YATAY TELEFON (kisa yukseklik): hero icerigi dikeyde ortali degil,
   SLAYTIN ALTINA yaslanir (kullanici istegi 25 Tem); alt bosluk mutlak
   konumlu .hero-slider kontrollerini (bottom 24 + ~46px) temiz gecer.
   padding-top, icerik uzun olup slayt uzadiginda logo binismesine karsi
   guvenlik payidir. Marka etiketleri bu goruntude gizli. Dikey mobil ve
   masaustu etkilenmez. */
@media (orientation: landscape) and (max-height: 500px) {
  .hero-content {
    justify-content: flex-end;
    padding-top: 104px;
    padding-bottom: 100px;
  }
  .brand-tags {
    display: none;
  }
}

/* ══ RESPONSIVE DUZELTME TURU (27 Tem 2026, kullanici istekleri) ═══════════
   Sayfa CSS'leri custom.css'ten SONRA yuklendigi icin buradaki kurallar
   kopya kurallari OZGULLUKLE gecer (footer rotusu blogundaki ilke). ── */

/* 1) rg-bar (Uzman Ekibimizle Tanisin / Hemen Basvurun): sayfa CSS'lerinin
   860 alti "width: calc(100vw - 40px)" kurali cubugu kenardan kenara
   aciyordu; kullanici istegi buyuk ekranlardaki kucuk ortali hap gorunumu.
   Icerik 561px'e kadar hap olarak sigar; 560 altindaki kompakt kural
   (baslik gizli, yalniz CTA) sayfa CSS'lerinde aynen surer. */
@media (min-width: 561px) {
  body .rg-bar {
    width: auto;
    max-width: calc(100vw - 40px);
    justify-content: center;
    gap: 30px;
  }
}

/* 2) Karusel baslik bandi (Protokoller / Bilimsel Yaklasimimiz / Bilimsel
   Kanitlar ve tum .carousel-section'lar): dar ekranda basligi oklarla ayni
   satira sikistirmak headline'i 3-4 kisa satira boluyordu. 700 altinda
   baslik tam genislige acilir, oklar altta kendi satirina iner. */
@media (max-width: 700px) {
  .carousel-header-container .carousel-header {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 20px;
  }
  .carousel-header .carousel-heading {
    flex: 1 1 100%;
    min-width: 100%;
  }
  .carousel-header .carousel-headline {
    max-width: none;
  }
}

/* 3) Karusel kartlari 560 alti: sabit %82 basis kartlari "tek tek" akitiyordu;
   kullanici istegi ekran pikseline gore kademeli kuculme. min() tabani kucuk
   ekranda orani buyutur ama karti 320px ile sinirlar; her genislikte yandaki
   kartin ucu gorunur (kaydirilabilirlik ipucu). Tipografi kart olcusuyle
   birlikte iner; metin agirlikli kartlar (Bilimsel...) 14.5px'te okunur kalir. */
@media (max-width: 560px) {
  .carousel-track .carousel-card {
    min-height: 0;
    flex-basis: min(66%, 320px);
  }
  .carousel-track .carousel-card__title {
    font-size: clamp(21px, 6vw, 28px);
  }
  .carousel-track .carousel-card__copy {
    font-size: 14.5px;
  }
}

/* 4) Ic sayfa hero metinleri 561-860 bandi: baslik 780px tavaniyla neredeyse
   tam genislige yayilirken subline 480px'te kaliyordu; blok "sola dokulmus"
   okunuyordu. Baslik ve subline ayni 600px kolon tavaninda toplanir, punto
   bir kademe iner (820'de 46.7 -> ~43). 560 alti telefon dili sayfa
   CSS'lerinde degismeden kalir. */
@media (min-width: 561px) and (max-width: 860px) {
  #brx-content .rg-about-hero .hero-split-layout .hero-title {
    max-width: 600px;
    font-size: clamp(36px, 5.2vw, 44px);
    letter-spacing: -1.6px;
  }
  #brx-content .rg-about-hero .hero-split-layout .hero-split-right__inner {
    max-width: 600px;
  }
  #brx-content .rg-about-hero .hero-split-layout .hero-split-right .hero-subline {
    max-width: 560px;
    font-size: 16.5px;
  }
}

/* 5) Kalite ve Sertifikalar "# Nasil Yapiyoruz": 860 altinda yigilinca dev
   gorsel bos lacivert alaniyla tek basina kaliyor, baslik altta kopuk
   duruyordu (butunluk bozulmasi). Baslik blogu gorselin lacivert gradyan
   alanina bindirilir; gradyan (%82 lacivert sol serit) kontrasti hazir
   sagliyor. EN sayfasi ayni #kaliteSurec id'sini kullanir, kural ikisini
   de kapsar. Ozgulluk: kurumsal.css (1,1,x) kurallarini (1,2,x) ile gecer. */
@media (max-width: 860px) {
  #kaliteSurec .krm-surec-outer {
    position: relative;
  }
  #kaliteSurec .krm-surec-list .krm-surec-head {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    padding: 34px 30px 0;
  }
  #kaliteSurec .krm-surec-list .krm-surec-head h2 {
    color: #fff;
    font-size: clamp(30px, 5.4vw, 40px);
    letter-spacing: -1.4px;
  }
  #kaliteSurec .krm-surec-list .krm-surec-head h2 span {
    color: #4fb3e8;
  }
}
